diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-06-15 22:08:57 -0400 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-06-15 22:08:57 -0400 |
commit | 0a779312c8a5911620ef43eaefbecdbac9fa7b33 (patch) | |
tree | 46e7d19c2aec0e65ab446c7916e5d8aeb38bfe48 | |
parent | 4b1f25117c0fbb08d93e5d45ada81feee9d37a48 (diff) | |
parent | c8213423cefc83310bc62ca8bcc17d7b6b42e442 (diff) |
Merge branch 'master' of https://github.com/pret/pokeruby
-rw-r--r-- | asm/pokedex.s | 5294 | ||||
-rw-r--r-- | data/graphics/pokemon/footprint_table.inc | 415 | ||||
-rw-r--r-- | data/pokedex.s | 538 | ||||
-rw-r--r-- | data/pokedex_entries.inc | 4164 | ||||
-rw-r--r-- | data/pokedex_orders.inc | 1191 | ||||
-rw-r--r-- | include/graphics.h | 2412 | ||||
-rw-r--r-- | include/menu.h | 2 | ||||
-rw-r--r-- | include/pokedex.h | 144 | ||||
-rw-r--r-- | include/pokemon.h | 3 | ||||
-rw-r--r-- | include/songs.h | 42 | ||||
-rw-r--r-- | include/text.h | 53 | ||||
-rwxr-xr-x | ld_script.txt | 3 | ||||
-rw-r--r-- | src/data/pokedex_entries_en.h | 9651 | ||||
-rw-r--r-- | src/data/pokedex_orders.h | 1192 | ||||
-rw-r--r-- | src/menu.c | 2 | ||||
-rw-r--r-- | src/pokedex.c | 4176 | ||||
-rw-r--r-- | src/pokemon_3.c | 2 | ||||
-rw-r--r-- | src/starter_choose.c | 2 |
18 files changed, 16575 insertions, 12711 deletions
diff --git a/asm/pokedex.s b/asm/pokedex.s deleted file mode 100644 index 6416bf938..000000000 --- a/asm/pokedex.s +++ /dev/null @@ -1,5294 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8090750 -sub_8090750: @ 8090750 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08090778 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r6, [r0, 0xA] - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r4, r1, 0 - cmp r0, 0x6 - bhi _0809079C - lsls r0, 2 - ldr r1, _0809077C @ =_08090780 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090778: .4byte gTasks -_0809077C: .4byte _08090780 - .align 2, 0 -_08090780: - .4byte _0809079C - .4byte _080907E0 - .4byte _0809085C - .4byte _080908A0 - .4byte _08090960 - .4byte _080909B8 - .4byte _080909F4 -_0809079C: - ldr r0, _080907D0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080907AA - b _08090A26 -_080907AA: - ldr r1, _080907D4 @ =gUnknown_03005CEC - ldr r0, _080907D8 @ =gMain - ldr r0, [r0, 0xC] - str r0, [r1] - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 1 - bl sub_8091060 - ldr r1, _080907DC @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _08090A26 - .align 2, 0 -_080907D0: .4byte gPaletteFade -_080907D4: .4byte gUnknown_03005CEC -_080907D8: .4byte gMain -_080907DC: .4byte gTasks -_080907E0: - ldr r0, _08090840 @ =gPokedexMenu_Gfx - ldr r1, _08090844 @ =0x06004000 - bl LZ77UnCompVram - ldr r0, _08090848 @ =gUnknown_08E96BD4 - ldr r4, _0809084C @ =0x06007800 - adds r1, r4, 0 - bl LZ77UnCompVram - movs r2, 0 - lsls r5, r7, 2 - mov r12, r5 - movs r0, 0x80 - lsls r0, 6 - adds r6, r0, 0 - ldr r3, _08090850 @ =0x0000027f -_08090800: - lsls r0, r2, 1 - adds r0, r4 - ldrh r5, [r0] - adds r1, r6, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08090800 - ldr r0, _08090854 @ =gTasks - mov r1, r12 - adds r4, r1, r7 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0xA] - movs r2, 0xFF - lsls r2, 2 - movs r1, 0x2 - bl sub_8091738 - bl ResetPaletteFade - ldr r0, _08090858 @ =gPokedexMenu_Pal + 0x2 - movs r1, 0x21 - movs r2, 0x9E - bl LoadPalette - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08090A26 - .align 2, 0 -_08090840: .4byte gPokedexMenu_Gfx -_08090844: .4byte 0x06004000 -_08090848: .4byte gUnknown_08E96BD4 -_0809084C: .4byte 0x06007800 -_08090850: .4byte 0x0000027f -_08090854: .4byte gTasks -_08090858: .4byte gPokedexMenu_Pal + 0x2 -_0809085C: - ldr r4, _0809088C @ =gWindowConfig_81E7064 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r2, _08090890 @ =0x0600c000 - add r1, sp, 0x4 - movs r0, 0 - strh r0, [r1] - ldr r0, _08090894 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08090898 @ =0x81000100 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r1, _0809089C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _080909E0 - .align 2, 0 -_0809088C: .4byte gWindowConfig_81E7064 -_08090890: .4byte 0x0600c000 -_08090894: .4byte 0x040000d4 -_08090898: .4byte 0x81000100 -_0809089C: .4byte gTasks -_080908A0: - ldr r0, _080908C8 @ =gDexText_RegisterComplete - movs r1, 0x2 - movs r2, 0 - movs r3, 0xD0 - bl sub_8072BD8 - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _080908CC - adds r0, r6, 0 - bl NationalToHoennOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - movs r2, 0x3 - bl sub_8091154 - b _080908D6 - .align 2, 0 -_080908C8: .4byte gDexText_RegisterComplete -_080908CC: - adds r0, r6, 0 - movs r1, 0xD - movs r2, 0x3 - bl sub_8091154 -_080908D6: - adds r0, r6, 0 - movs r1, 0x10 - movs r2, 0x3 - bl sub_80911C8 - ldr r0, _0809094C @ =gDexText_UnknownPoke - movs r1, 0xB - movs r2, 0x5 - bl MenuPrint - ldr r0, _08090950 @ =gDexText_UnknownHeight - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint - ldr r0, _08090954 @ =gDexText_UnknownWeight - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint - lsls r4, r6, 3 - adds r4, r6 - lsls r4, 2 - ldr r6, _08090958 @ =gPokedexEntries - adds r5, r4, r6 - adds r0, r5, 0 - movs r1, 0xB - movs r2, 0x5 - bl sub_8091304 - ldrh r0, [r5, 0xC] - movs r1, 0x10 - movs r2, 0x7 - bl sub_8091458 - ldrh r0, [r5, 0xE] - movs r1, 0x10 - movs r2, 0x9 - bl sub_8091564 - adds r6, 0x10 - adds r4, r6 - ldr r0, [r4] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - movs r1, 0xFF - lsls r1, 2 - movs r0, 0xE - bl sub_80917CC - ldr r1, _0809095C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - b _080909E0 - .align 2, 0 -_0809094C: .4byte gDexText_UnknownPoke -_08090950: .4byte gDexText_UnknownHeight -_08090954: .4byte gDexText_UnknownWeight -_08090958: .4byte gPokedexEntries -_0809095C: .4byte gTasks -_08090960: - adds r0, r6, 0 - movs r1, 0x30 - movs r2, 0x38 - movs r3, 0 - bl sub_80918EC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080909AC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080909B0 @ =gUnknown_03005CEC - ldr r0, [r0] - bl SetVBlankCallback - ldr r1, _080909B4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0xE] - b _080909E0 - .align 2, 0 -_080909AC: .4byte gSprites -_080909B0: .4byte gUnknown_03005CEC -_080909B4: .4byte gTasks -_080909B8: - ldr r0, _080909E8 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _080909EC @ =REG_BG3CNT - ldr r2, _080909F0 @ =0x00000f07 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r5, 0xE2 - lsls r5, 5 - adds r0, r5, 0 - strh r0, [r1] - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r4 -_080909E0: - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _08090A26 - .align 2, 0 -_080909E8: .4byte REG_BLDCNT -_080909EC: .4byte REG_BG3CNT -_080909F0: .4byte 0x00000f07 -_080909F4: - ldr r0, _08090A30 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08090A26 - adds r0, r6, 0 - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl PlayCry1 - ldr r1, _08090A34 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xC] - strh r5, [r0, 0x10] - ldr r1, _08090A38 @ =sub_8090A3C - str r1, [r0] -_08090A26: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090A30: .4byte gPaletteFade -_08090A34: .4byte gTasks -_08090A38: .4byte sub_8090A3C - thumb_func_end sub_8090750 - - thumb_func_start sub_8090A3C -sub_8090A3C: @ 8090A3C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08090A8C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08090AA4 - ldr r0, _08090A90 @ =0x0000fffc - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r3, _08090A94 @ =gSprites - ldr r0, _08090A98 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, 0x1C - adds r0, r3 - ldr r2, _08090A9C @ =sub_8090C28 - str r2, [r0] - ldr r0, _08090AA0 @ =sub_8090B8C - str r0, [r1] - b _08090B7A - .align 2, 0 -_08090A8C: .4byte gMain -_08090A90: .4byte 0x0000fffc -_08090A94: .4byte gSprites -_08090A98: .4byte gTasks -_08090A9C: .4byte sub_8090C28 -_08090AA0: .4byte sub_8090B8C -_08090AA4: - movs r0, 0x1 - mov r8, r0 - ands r0, r1 - lsls r7, r6, 2 - cmp r0, 0 - beq _08090B44 - ldr r0, _08090B00 @ =gTasks - adds r1, r7, r6 - lsls r1, 3 - adds r5, r1, r0 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08090B0C - ldrh r4, [r5, 0xA] - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _08090B04 @ =gPokedexEntries - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, 0x14 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r1, _08090B08 @ =0x06007aca - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - mov r0, r8 - strh r0, [r5, 0x10] - movs r0, 0x15 - bl PlaySE - b _08090B44 - .align 2, 0 -_08090B00: .4byte gTasks -_08090B04: .4byte gPokedexEntries -_08090B08: .4byte 0x06007aca -_08090B0C: - ldr r0, _08090B34 @ =0x0000fffc - str r2, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _08090B38 @ =gSprites - movs r0, 0xE - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08090B3C @ =sub_8090C28 - str r1, [r0] - ldr r0, _08090B40 @ =sub_8090B8C - str r0, [r5] - b _08090B7A - .align 2, 0 -_08090B34: .4byte 0x0000fffc -_08090B38: .4byte gSprites -_08090B3C: .4byte sub_8090C28 -_08090B40: .4byte sub_8090B8C -_08090B44: - ldr r1, _08090B68 @ =gTasks - adds r0, r7, r6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xC] - adds r1, 0x1 - strh r1, [r0, 0xC] - movs r0, 0x10 - ands r1, r0 - cmp r1, 0 - beq _08090B70 - ldr r0, _08090B6C @ =gPokedexMenu_Pal + 0x2 - movs r1, 0x51 - movs r2, 0xE - bl LoadPalette - b _08090B7A - .align 2, 0 -_08090B68: .4byte gTasks -_08090B6C: .4byte gPokedexMenu_Pal + 0x2 -_08090B70: - ldr r0, _08090B88 @ =gPokedexMenu2_Pal + 0x2 - movs r1, 0x51 - movs r2, 0xE - bl LoadPalette -_08090B7A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090B88: .4byte gPokedexMenu2_Pal + 0x2 - thumb_func_end sub_8090A3C - - thumb_func_start sub_8090B8C -sub_8090B8C: @ 8090B8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08090C14 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08090C0C - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08090C18 @ =gUnknown_08D00524 - ldr r1, _08090C1C @ =0x0600c000 - movs r2, 0x80 - lsls r2, 4 - bl CpuSet - bl sub_800D74C - ldr r0, _08090C20 @ =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0xA] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4, 0x22] - lsls r1, 16 - ldrh r2, [r4, 0x20] - orrs r1, r2 - ldrh r2, [r4, 0x26] - lsls r2, 16 - ldrh r3, [r4, 0x24] - orrs r2, r3 - ldr r5, _08090C24 @ =gSprites - movs r3, 0xE - ldrsh r4, [r4, r3] - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r3, r5 - ldrb r4, [r3, 0x5] - lsrs r4, 4 - bl species_and_otid_get_pal - lsls r4, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - orrs r4, r1 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - adds r0, r6, 0 - bl DestroyTask -_08090C0C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08090C14: .4byte gPaletteFade -_08090C18: .4byte gUnknown_08D00524 -_08090C1C: .4byte 0x0600c000 -_08090C20: .4byte gTasks -_08090C24: .4byte gSprites - thumb_func_end sub_8090B8C - - thumb_func_start sub_8090C28 -sub_8090C28: @ 8090C28 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0x77 - bgt _08090C3A - adds r0, r2, 0x2 - strh r0, [r1, 0x20] -_08090C3A: - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0x78 - ble _08090C48 - subs r0, r2, 0x2 - strh r0, [r1, 0x20] -_08090C48: - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x4F - bgt _08090C56 - adds r0, r2, 0x1 - strh r0, [r1, 0x22] -_08090C56: - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x50 - ble _08090C64 - subs r0, r2, 0x1 - strh r0, [r1, 0x22] -_08090C64: - pop {r0} - bx r0 - thumb_func_end sub_8090C28 - - thumb_func_start sub_8090C68 -sub_8090C68: @ 8090C68 - push {r4,r5,lr} - ldr r4, _08090CD0 @ =gUnknown_0202FFBC - ldr r0, [r4] - ldrb r1, [r0, 0x2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08090D2A - ldr r5, _08090CD4 @ =gPokedexView - ldr r0, [r5] - ldr r1, _08090CD8 @ =0x0000064e - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08090CE4 - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08090CDC @ =gPokedexEntries - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, 0x14 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, [r5] - ldr r1, _08090CD8 @ =0x0000064e - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r1, _08090CE0 @ =0x06007aca - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x15 - bl PlaySE - b _08090D2A - .align 2, 0 -_08090CD0: .4byte gUnknown_0202FFBC -_08090CD4: .4byte gPokedexView -_08090CD8: .4byte 0x0000064e -_08090CDC: .4byte gPokedexEntries -_08090CE0: .4byte 0x06007aca -_08090CE4: - movs r0, 0x2 - movs r1, 0xD - movs r2, 0x1B - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r2, _08090D30 @ =gPokedexEntries - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, 0x10 - adds r0, r2 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, [r5] - ldr r1, _08090D34 @ =0x0000064e - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _08090D38 @ =0x06007aca - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - adds r1, 0x40 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0x15 - bl PlaySE -_08090D2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090D30: .4byte gPokedexEntries -_08090D34: .4byte 0x0000064e -_08090D38: .4byte 0x06007aca - thumb_func_end sub_8090C68 - - thumb_func_start GetPokemonCategory -GetPokemonCategory: @ 8090D3C - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08090D50 @ =gPokedexEntries - adds r0, r1 - bx lr - .align 2, 0 -_08090D50: .4byte gPokedexEntries - thumb_func_end GetPokemonCategory - - thumb_func_start GetPokedexHeightWeight -GetPokedexHeightWeight: @ 8090D54 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _08090D6A - cmp r1, 0x1 - beq _08090D7C - movs r0, 0x1 - b _08090D88 -_08090D6A: - ldr r0, _08090D78 @ =gPokedexEntries - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0xC] - b _08090D88 - .align 2, 0 -_08090D78: .4byte gPokedexEntries -_08090D7C: - ldr r0, _08090D8C @ =gPokedexEntries - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0xE] -_08090D88: - pop {r1} - bx r1 - .align 2, 0 -_08090D8C: .4byte gPokedexEntries - thumb_func_end GetPokedexHeightWeight - - thumb_func_start GetNationalPokedexFlag -GetNationalPokedexFlag: @ 8090D90 - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 24 - lsrs r2, r1, 24 - adds r3, r2, 0 - ldr r1, _08090DC4 @ =0xffff0000 - adds r0, r1 - lsrs r1, r0, 16 - lsrs r0, 19 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x7 - ands r1, r0 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r1 - lsrs r5, r0, 24 - movs r6, 0 - cmp r2, 0x1 - beq _08090E24 - cmp r2, 0x1 - bgt _08090DC8 - cmp r2, 0 - beq _08090DD4 - b _08090F0A - .align 2, 0 -_08090DC4: .4byte 0xffff0000 -_08090DC8: - cmp r3, 0x2 - beq _08090EBC - cmp r3, 0x3 - bne _08090DD2 - b _08090EFC -_08090DD2: - b _08090F0A -_08090DD4: - ldr r1, _08090E14 @ =gSaveBlock2 - adds r0, r1, 0 - adds r0, 0x5C - adds r0, r4, r0 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, 0 - cmp r2, 0 - bne _08090DE8 - b _08090F0A -_08090DE8: - ldr r0, _08090E18 @ =gSaveBlock1 - ldr r3, _08090E1C @ =0x00000938 - adds r1, r0, r3 - adds r1, r4, r1 - ldrb r1, [r1] - ands r1, r5 - adds r6, r0, 0 - cmp r2, r1 - bne _08090E08 - ldr r1, _08090E20 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - beq _08090E62 -_08090E08: - adds r1, r7, 0 - adds r1, 0x5C - adds r1, r4, r1 - mvns r3, r5 - b _08090E8E - .align 2, 0 -_08090E14: .4byte gSaveBlock2 -_08090E18: .4byte gSaveBlock1 -_08090E1C: .4byte 0x00000938 -_08090E20: .4byte 0x00003a8c -_08090E24: - ldr r1, _08090E68 @ =gSaveBlock2 - adds r0, r1, 0 - adds r0, 0x28 - adds r0, r4, r0 - ldrb r2, [r0] - ands r2, r5 - adds r7, r1, 0 - cmp r2, 0 - beq _08090F0A - adds r0, r7, 0 - adds r0, 0x5C - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - ldr r6, _08090E6C @ =gSaveBlock1 - cmp r2, r0 - bne _08090E78 - ldr r3, _08090E70 @ =0x00000938 - adds r0, r6, r3 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _08090E78 - ldr r1, _08090E74 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r0, [r0] - ands r0, r5 - cmp r2, r0 - bne _08090E78 -_08090E62: - movs r6, 0x1 - b _08090F0A - .align 2, 0 -_08090E68: .4byte gSaveBlock2 -_08090E6C: .4byte gSaveBlock1 -_08090E70: .4byte 0x00000938 -_08090E74: .4byte 0x00003a8c -_08090E78: - adds r1, r7, 0 - adds r1, 0x28 - adds r1, r4, r1 - mvns r3, r5 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - adds r1, r7, 0 - adds r1, 0x5C - adds r1, r4, r1 -_08090E8E: - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldr r0, _08090EB4 @ =0x00000938 - adds r1, r6, r0 - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08090EB8 @ =0x00003a8c - adds r0, r6, r1 - adds r0, r4, r0 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - movs r6, 0 - b _08090F0A - .align 2, 0 -_08090EB4: .4byte 0x00000938 -_08090EB8: .4byte 0x00003a8c -_08090EBC: - ldr r1, _08090EEC @ =gSaveBlock2 - adds r1, 0x5C - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r5, 0 - orrs r0, r2 - strb r0, [r1] - ldr r1, _08090EF0 @ =gSaveBlock1 - ldr r3, _08090EF4 @ =0x00000938 - adds r2, r1, r3 - adds r2, r4, r2 - ldrb r3, [r2] - adds r0, r5, 0 - orrs r0, r3 - strb r0, [r2] - ldr r0, _08090EF8 @ =0x00003a8c - adds r1, r0 - adds r1, r4, r1 - ldrb r2, [r1] - adds r0, r5, 0 - orrs r0, r2 - strb r0, [r1] - b _08090F0A - .align 2, 0 -_08090EEC: .4byte gSaveBlock2 -_08090EF0: .4byte gSaveBlock1 -_08090EF4: .4byte 0x00000938 -_08090EF8: .4byte 0x00003a8c -_08090EFC: - ldr r0, _08090F14 @ =gSaveBlock2 - adds r0, 0x28 - adds r0, r4, r0 - ldrb r2, [r0] - adds r1, r5, 0 - orrs r1, r2 - strb r1, [r0] -_08090F0A: - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08090F14: .4byte gSaveBlock2 - thumb_func_end GetNationalPokedexFlag - - thumb_func_start GetNationalPokedexCount -GetNationalPokedexCount: @ 8090F18 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0 - ldr r7, _08090F30 @ =0x00000181 -_08090F24: - cmp r6, 0 - beq _08090F34 - cmp r6, 0x1 - beq _08090F3E - adds r4, r0, 0x1 - b _08090F56 - .align 2, 0 -_08090F30: .4byte 0x00000181 -_08090F34: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - movs r1, 0 - b _08090F46 -_08090F3E: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - movs r1, 0x1 -_08090F46: - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _08090F56 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08090F56: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, r7 - bls _08090F24 - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetNationalPokedexCount - - thumb_func_start GetHoennPokedexCount -GetHoennPokedexCount: @ 8090F68 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0 -_08090F72: - cmp r6, 0 - beq _08090F7E - cmp r6, 0x1 - beq _08090F90 - adds r4, r0, 0x1 - b _08090FB0 -_08090F7E: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - b _08090FA0 -_08090F90: - adds r4, r0, 0x1 - lsls r0, r4, 16 - lsrs r0, 16 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 -_08090FA0: - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _08090FB0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08090FB0: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bls _08090F72 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetHoennPokedexCount - - thumb_func_start sub_8090FC0 -sub_8090FC0: @ 8090FC0 - push {r4,lr} - movs r0, 0 -_08090FC4: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl HoennToNationalOrder - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - bne _08090FE4 - movs r0, 0 - b _08090FEC -_08090FE4: - adds r0, r4, 0 - cmp r0, 0xC7 - bls _08090FC4 - movs r0, 0x1 -_08090FEC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8090FC0 - - thumb_func_start sub_8090FF4 -sub_8090FF4: @ 8090FF4 - push {r4,r5,lr} - movs r0, 0 -_08090FF8: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _08091046 - adds r0, r4, 0 - cmp r0, 0x95 - bls _08090FF8 - movs r0, 0x98 -_08091014: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - beq _08091046 - adds r0, r4, 0 - cmp r0, 0xF9 - bls _08091014 - movs r0, 0xFC - ldr r5, _0809104C @ =0x0000017f -_08091032: - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - movs r1, 0x1 - bl GetNationalPokedexFlag - lsls r0, 24 - cmp r0, 0 - bne _08091050 -_08091046: - movs r0, 0 - b _08091058 - .align 2, 0 -_0809104C: .4byte 0x0000017f -_08091050: - adds r0, r4, 0 - cmp r0, r5 - bls _08091032 - movs r0, 0x1 -_08091058: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8090FF4 - - thumb_func_start sub_8091060 -sub_8091060: @ 8091060 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - movs r0, 0x80 - lsls r0, 1 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _0809108E - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809112C @ =0x0000feff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091130 @ =REG_BG0CNT - strh r3, [r0] - adds r0, 0x8 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_0809108E: - movs r0, 0x80 - lsls r0, 2 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080910B4 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08091134 @ =0x0000fdff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091138 @ =REG_BG1CNT - strh r3, [r0] - adds r0, 0xA - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_080910B4: - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _080910DA - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809113C @ =0x0000fbff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091140 @ =REG_BG2CNT - strh r3, [r0] - adds r0, 0xC - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_080910DA: - movs r0, 0x80 - lsls r0, 4 - ands r0, r4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _08091100 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08091144 @ =0x0000f7ff - ands r0, r1 - strh r0, [r2] - ldr r0, _08091148 @ =REG_BG3CNT - strh r3, [r0] - adds r0, 0xE - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] -_08091100: - movs r0, 0x80 - lsls r0, 5 - ands r5, r0 - cmp r5, 0 - bne _08091124 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0809114C @ =0x0000efff - ands r0, r1 - strh r0, [r2] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08091150 @ =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] -_08091124: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809112C: .4byte 0x0000feff -_08091130: .4byte REG_BG0CNT -_08091134: .4byte 0x0000fdff -_08091138: .4byte REG_BG1CNT -_0809113C: .4byte 0x0000fbff -_08091140: .4byte REG_BG2CNT -_08091144: .4byte 0x0000f7ff -_08091148: .4byte REG_BG3CNT -_0809114C: .4byte 0x0000efff -_08091150: .4byte gReservedSpritePaletteCount - thumb_func_end sub_8091060 - - thumb_func_start sub_8091154 -sub_8091154: @ 8091154 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r5, sp - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5] - mov r5, sp - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5, 0x1] - mov r5, sp - adds r0, r4, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r5, 0x2] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x3] - mov r0, sp - adds r1, r6, 0 - mov r2, r8 - bl MenuPrint - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8091154 - - thumb_func_start sub_80911C8 -sub_80911C8: @ 80911C8 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r4, 0 - movs r2, 0xFF -_080911DC: - mov r1, sp - adds r0, r1, r4 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _080911DC - adds r0, r3, 0 - bl NationalPokedexNumToSpecies - adds r3, r0, 0 - cmp r3, 0 - beq _08091238 - movs r4, 0 - ldr r2, _08091234 @ =gSpeciesNames - movs r0, 0xB - adds r1, r3, 0 - muls r1, r0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809124C - adds r3, r2, 0 - adds r2, r1, 0 -_08091212: - mov r0, sp - adds r1, r0, r4 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809124C - cmp r4, 0x9 - bls _08091212 - b _0809124C - .align 2, 0 -_08091234: .4byte gSpeciesNames -_08091238: - movs r4, 0 - movs r1, 0xAE -_0809123C: - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0809123C -_0809124C: - mov r0, sp - adds r1, r6, 0 - adds r2, r5, 0 - bl MenuPrint - adds r0, r4, 0 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80911C8 - - thumb_func_start sub_8091260 -sub_8091260: @ 8091260 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x28 - adds r4, r3, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080912CC @ =gUnknown_083B5558 - mov r0, sp - bl StringCopy - adds r6, r0, 0 - mov r0, sp - strb r4, [r0, 0x2] - adds r0, r5, 0 - bl NationalPokedexNumToSpecies - adds r5, r0, 0 - cmp r5, 0 - beq _080912D4 - movs r4, 0 - ldr r2, _080912D0 @ =gSpeciesNames - movs r0, 0xB - adds r1, r5, 0 - muls r1, r0 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080912E6 - adds r3, r2, 0 - adds r2, r1, 0 -_080912AC: - adds r1, r6, r4 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, r2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080912E6 - cmp r4, 0x9 - bls _080912AC - b _080912E6 - .align 2, 0 -_080912CC: .4byte gUnknown_083B5558 -_080912D0: .4byte gSpeciesNames -_080912D4: - movs r4, 0 - movs r1, 0xAE -_080912D8: - adds r0, r6, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080912D8 -_080912E6: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r8 - adds r2, r7, 0 - bl MenuPrint - adds r0, r4, 0 - add sp, 0x28 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8091260 - - thumb_func_start sub_8091304 -sub_8091304: @ 8091304 - push {r4-r7,lr} - sub sp, 0x20 - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - lsls r2, 24 - lsrs r7, r2, 24 - movs r4, 0 - ldrb r0, [r3] - ldr r6, _08091340 @ =gDexText_UnknownPoke - cmp r0, 0xFF - beq _0809133A -_0809131E: - mov r0, sp - adds r1, r0, r4 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0809133A - cmp r4, 0xA - bls _0809131E -_0809133A: - movs r3, 0 - ldrb r0, [r6] - b _0809134E - .align 2, 0 -_08091340: .4byte gDexText_UnknownPoke -_08091344: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r6 - ldrb r0, [r0] -_0809134E: - cmp r0, 0xAC - beq _08091344 - cmp r0, 0 - beq _08091344 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08091388 - adds r5, r6, 0 -_08091366: - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, sp - adds r2, r0, r1 - adds r1, r3, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r1, r5 - ldrb r0, [r1] - strb r0, [r2] - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08091366 -_08091388: - mov r0, sp - adds r1, r0, r4 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r12 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_8072B80 - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091304 - - thumb_func_start unref_sub_80913A4 -unref_sub_80913A4: @ 80913A4 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r5, 0 - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080913CE - mov r0, sp - strb r5, [r0] - b _080913D6 -_080913CE: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1] - movs r5, 0x1 -_080913D6: - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080913FC - cmp r5, 0 - bne _080913FC - mov r0, sp - strb r5, [r0, 0x1] - b _08091402 -_080913FC: - mov r1, sp - adds r0, 0xA1 - strb r0, [r1, 0x1] -_08091402: - mov r5, sp - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r5, 0x2] - mov r1, sp - movs r0, 0xAD - strb r0, [r1, 0x3] - mov r5, sp - adds r0, r4, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r5, 0x4] - mov r1, sp - movs r0, 0xFF - strb r0, [r1, 0x5] - mov r0, sp - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80913A4 - - thumb_func_start sub_8091458 -sub_8091458: @ 8091458 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r1, _080914D4 @ =0x00002710 - muls r0, r1 - movs r1, 0xFE - bl __divsi3 - adds r7, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _0809148A - adds r7, 0xA -_0809148A: - adds r0, r7, 0 - movs r1, 0x78 - bl __udivsi3 - adds r6, r0, 0 - lsls r0, r6, 4 - subs r0, r6 - lsls r0, 3 - subs r0, r7, r0 - movs r1, 0xA - bl __udivsi3 - adds r7, r0, 0 - mov r1, sp - movs r0, 0xFC - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x13 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - adds r2, r0, 0 - cmp r2, 0 - bne _080914D8 - mov r1, sp - adds r1, 0x2 - movs r0, 0x12 - strb r0, [r1] - movs r5, 0x4 - adds r1, 0x1 - adds r0, r6, 0 - adds r0, 0xA1 - strb r0, [r1] - b _080914F8 - .align 2, 0 -_080914D4: .4byte 0x00002710 -_080914D8: - mov r1, sp - adds r1, 0x2 - movs r0, 0xC - strb r0, [r1] - adds r1, 0x1 - adds r0, r2, 0 - adds r0, 0xA1 - strb r0, [r1] - movs r5, 0x5 - add r4, sp, 0x4 - adds r0, r6, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4] -_080914F8: - adds r1, r5, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - add r1, sp - movs r0, 0xB4 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - mov r0, sp - adds r4, r0, r2 - adds r0, r7, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, sp - adds r4, r1, r6 - adds r0, r7, 0 - movs r1, 0xA - bl __umodsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - adds r2, r1, r5 - movs r1, 0xB2 - strb r1, [r2] - mov r2, sp - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r9 - mov r2, r8 - bl MenuPrint - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091458 - - thumb_func_start sub_8091564 -sub_8091564: @ 8091564 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - ldr r7, _080915BC @ =0x000186a0 - muls r0, r7 - ldr r1, _080915C0 @ =0x000011b8 - bl __divsi3 - adds r6, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _08091598 - adds r6, 0xA -_08091598: - movs r5, 0 - mov r4, sp - adds r0, r6, 0 - adds r1, r7, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _080915C4 - mov r0, sp - strb r5, [r0] - movs r7, 0x2 - adds r0, 0x1 - strb r5, [r0] - b _080915C8 - .align 2, 0 -_080915BC: .4byte 0x000186a0 -_080915C0: .4byte 0x000011b8 -_080915C4: - movs r5, 0x1 - movs r7, 0x1 -_080915C8: - ldr r1, _0809160C @ =0x000186a0 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - mov r0, sp - adds r4, r0, r7 - ldr r1, _08091610 @ =0x00002710 - adds r0, r6, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _08091614 - cmp r5, 0 - bne _08091614 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r3, sp - adds r0, r3, r1 - strb r5, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r2 - strb r5, [r0] - b _0809161C - .align 2, 0 -_0809160C: .4byte 0x000186a0 -_08091610: .4byte 0x00002710 -_08091614: - movs r5, 0x1 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0809161C: - ldr r1, _08091660 @ =0x00002710 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - mov r0, sp - adds r4, r0, r7 - movs r1, 0xFA - lsls r1, 2 - adds r0, r6, 0 - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA1 - bne _08091664 - cmp r5, 0 - bne _08091664 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r3, sp - adds r0, r3, r1 - strb r5, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r3, r2 - strb r5, [r0] - b _0809166A - .align 2, 0 -_08091660: .4byte 0x00002710 -_08091664: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0809166A: - movs r1, 0xFA - lsls r1, 2 - adds r0, r6, 0 - bl __umodsi3 - adds r6, r0, 0 - adds r1, r7, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r5, r7, 0 - mov r0, sp - adds r4, r0, r1 - adds r0, r6, 0 - movs r1, 0x64 - bl __udivsi3 - adds r0, 0xA1 - movs r1, 0 - mov r9, r1 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x64 - bl __umodsi3 - adds r6, r0, 0 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r1, r7, 0 - mov r2, sp - adds r0, r2, r5 - movs r3, 0xAD - mov r8, r3 - mov r2, r8 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r5, r7, 0 - mov r3, sp - adds r4, r3, r1 - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - adds r0, 0xA1 - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r1, r7, 0 - mov r2, sp - adds r0, r2, r5 - mov r3, r9 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - add r1, sp - movs r0, 0xE0 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r3, r7, 0 - mov r0, sp - adds r1, r0, r2 - movs r0, 0xD6 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r2, r7, 0 - mov r0, sp - adds r1, r0, r3 - movs r0, 0xE7 - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r3, sp - adds r1, r3, r2 - mov r2, r8 - strb r2, [r1] - adds r1, r3, r0 - movs r0, 0xFF - strb r0, [r1] - mov r0, sp - mov r1, r10 - ldr r2, [sp, 0x10] - bl MenuPrint - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8091564 - - thumb_func_start sub_8091738 -sub_8091738: @ 8091738 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x80 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r6, _080917C8 @ =gMonFootprintTable - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r0, 14 - adds r0, r6 - ldr r0, [r0] - mov r12, r0 - movs r7, 0 - movs r1, 0 - lsls r4, 14 - mov r8, r4 - lsls r5, 5 -_0809176A: - mov r2, r12 - adds r0, r2, r1 - ldrb r3, [r0] - movs r6, 0 - adds r4, r1, 0x1 -_08091774: - lsls r1, r6, 1 - adds r2, r3, 0 - asrs r2, r1 - movs r0, 0x1 - ands r2, r0 - movs r0, 0x2 - lsls r0, r1 - ands r0, r3 - cmp r0, 0 - beq _0809178C - movs r0, 0x10 - orrs r2, r0 -_0809178C: - mov r1, sp - adds r0, r1, r7 - strb r2, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08091774 - lsls r0, r4, 16 - lsrs r1, r0, 16 - cmp r1, 0x1F - bls _0809176A - movs r1, 0xC0 - lsls r1, 19 - adds r1, r5, r1 - add r1, r8 - mov r0, sp - movs r2, 0x40 - bl CpuSet - add sp, 0x80 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080917C8: .4byte gMonFootprintTable - thumb_func_end sub_8091738 - - thumb_func_start sub_80917CC -sub_80917CC: @ 80917CC - push {r4,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsrs r0, 5 - ldr r2, _08091808 @ =0x06000232 - adds r3, r0, r2 - movs r4, 0xF0 - lsls r4, 8 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _0809180C @ =0x06000234 - adds r3, r0, r2 - adds r4, 0x1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _08091810 @ =0x06000272 - adds r3, r0, r2 - adds r4, 0x1 - adds r2, r1, r4 - strh r2, [r3] - ldr r2, _08091814 @ =0x06000274 - adds r0, r2 - adds r4, 0x1 - adds r1, r4 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091808: .4byte 0x06000232 -_0809180C: .4byte 0x06000234 -_08091810: .4byte 0x06000272 -_08091814: .4byte 0x06000274 - thumb_func_end sub_80917CC - - thumb_func_start sub_8091818 -sub_8091818: @ 8091818 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r1, 16 - lsrs r0, r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - cmp r4, 0x1 - beq _08091844 - cmp r4, 0x1 - bgt _0809183A - cmp r4, 0 - beq _0809184C - b _0809186C -_0809183A: - cmp r5, 0x2 - beq _0809185E - cmp r5, 0x3 - beq _08091852 - b _0809186C -_08091844: - cmp r0, r2 - bls _0809186C - subs r0, 0x1 - b _08091864 -_0809184C: - cmp r0, r3 - bcs _0809186C - b _08091862 -_08091852: - cmp r0, r2 - bls _0809185A - subs r0, 0x1 - b _08091864 -_0809185A: - adds r0, r3, 0 - b _0809186C -_0809185E: - cmp r0, r3 - bcs _0809186A -_08091862: - adds r0, 0x1 -_08091864: - lsls r0, 16 - lsrs r0, 16 - b _0809186C -_0809186A: - adds r0, r2, 0 -_0809186C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8091818 - - thumb_func_start nullsub_59 -nullsub_59: @ 8091874 - bx lr - thumb_func_end nullsub_59 - - thumb_func_start sub_8091878 -sub_8091878: @ 8091878 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _080918A0 @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _080918A4 @ =gUnknown_083B57A4 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _080918A8 @ =gUnknown_083B5794 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _080918AC @ =gSpriteAnimTable_81E7C64 - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080918A0: .4byte gUnknown_02024E8C -_080918A4: .4byte gUnknown_083B57A4 -_080918A8: .4byte gUnknown_083B5794 -_080918AC: .4byte gSpriteAnimTable_81E7C64 - thumb_func_end sub_8091878 - - thumb_func_start sub_80918B0 -sub_80918B0: @ 80918B0 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _080918DC @ =gUnknown_02024E8C - adds r3, r4, 0 - ldr r2, _080918E0 @ =gUnknown_083B57A4 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _080918E4 @ =gUnknown_083B5794 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _080918E8 @ =gUnknown_081EC2A4 - ldr r0, [r0] - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080918DC: .4byte gUnknown_02024E8C -_080918E0: .4byte gUnknown_083B57A4 -_080918E4: .4byte gUnknown_083B5794 -_080918E8: .4byte gUnknown_081EC2A4 - thumb_func_end sub_80918B0 - - thumb_func_start sub_80918EC -sub_80918EC: @ 80918EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - adds r0, r7, 0 - bl NationalPokedexNumToSpecies - adds r7, r0, 0 - cmp r7, SPECIES_UNOWN - beq _0809199C - movs r0, 0x9A - lsls r0, 1 - cmp r7, r0 - beq _08091958 - lsls r6, r7, 3 - ldr r0, _0809194C @ =gMonFrontPicTable - adds r0, r6, r0 - ldr r1, _08091950 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091954 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - bl DecompressPicFromTable_2 - b _080919CE - .align 2, 0 -_0809194C: .4byte gMonFrontPicTable -_08091950: .4byte gMonFrontPicCoords -_08091954: .4byte gUnknown_083B5584 -_08091958: - lsls r6, r7, 3 - ldr r0, _0809198C @ =gMonFrontPicTable - adds r0, r6 - ldr r2, _08091990 @ =gMonFrontPicCoords - lsls r1, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091994 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _08091998 @ =gSaveBlock2 - ldr r4, [r4, 0x20] - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl LoadSpecialPokePic - b _080919CE - .align 2, 0 -_0809198C: .4byte gMonFrontPicTable -_08091990: .4byte gMonFrontPicCoords -_08091994: .4byte gUnknown_083B5584 -_08091998: .4byte gSaveBlock2 -_0809199C: - lsls r6, r7, 3 - ldr r0, _08091A30 @ =gMonFrontPicTable - adds r0, r6 - ldr r2, _08091A34 @ =gMonFrontPicCoords - lsls r1, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091A38 @ =gUnknown_083B5584 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _08091A3C @ =gSaveBlock2 - ldr r4, [r4, 0x1C] - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl LoadSpecialPokePic -_080919CE: - ldr r0, _08091A40 @ =gMonPaletteTable - adds r0, r6, r0 - ldr r0, [r0] - mov r1, r8 - lsls r4, r1, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - mov r3, r8 - lsls r1, r3, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8091878 - ldr r0, _08091A44 @ =gUnknown_02024E8C - mov r5, r9 - lsls r1, r5, 16 - asrs r1, 16 - mov r3, r10 - lsls r2, r3, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08091A48 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08091A30: .4byte gMonFrontPicTable -_08091A34: .4byte gMonFrontPicCoords -_08091A38: .4byte gUnknown_083B5584 -_08091A3C: .4byte gSaveBlock2 -_08091A40: .4byte gMonPaletteTable -_08091A44: .4byte gUnknown_02024E8C -_08091A48: .4byte gSprites - thumb_func_end sub_80918EC - - thumb_func_start sub_8091A4C -sub_8091A4C: @ 8091A4C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r9, r3 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r0, r5, 3 - ldr r1, _08091AE4 @ =gTrainerFrontPicTable - adds r0, r1 - ldr r1, _08091AE8 @ =gTrainerFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08091AEC @ =gUnknown_083B5584 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - bl DecompressPicFromTable_2 - adds r0, r5, 0 - movs r1, 0 - bl sub_80918B0 - ldr r0, _08091AF0 @ =gUnknown_02024E8C - lsls r6, 16 - asrs r6, 16 - mov r3, r8 - lsls r3, 16 - asrs r3, 16 - mov r8, r3 - adds r1, r6, 0 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08091AF4 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - mov r1, r9 - lsls r1, 4 - mov r9, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - mov r3, r9 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08091AE4: .4byte gTrainerFrontPicTable -_08091AE8: .4byte gTrainerFrontPicCoords -_08091AEC: .4byte gUnknown_083B5584 -_08091AF0: .4byte gUnknown_02024E8C -_08091AF4: .4byte gSprites - thumb_func_end sub_8091A4C - - thumb_func_start sub_8091AF8 -sub_8091AF8: @ 8091AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x4] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x8] - lsls r5, 24 - lsrs r5, 24 - mov r10, r5 - bl SortPokedex - movs r5, 0 - movs r6, 0 - ldr r4, _08091D08 @ =0x00000181 - ldr r3, _08091D0C @ =gPokedexView -_08091B32: - ldr r2, [r3] - lsls r0, r5, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x2] - lsls r0, 31 - cmp r0, 0 - beq _08091B4E - lsls r0, r6, 2 - adds r0, r2, r0 - ldr r1, [r1] - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091B4E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r4 - bls _08091B32 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - adds r1, r6, 0 - strh r6, [r0] - cmp r7, 0xFF - beq _08091C04 - movs r5, 0 - lsls r0, r1, 16 - movs r6, 0 - cmp r0, 0 - beq _08091BFA - lsls r7, 2 - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, 0x3 - adds r0, r7, r0 - str r0, [sp, 0xC] - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, r7 - mov r9, r0 -_08091B82: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - lsls r4, r5, 2 - adds r0, r4 - ldrh r0, [r0] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091D18 @ =gSpeciesNames - movs r0, 0xB - muls r0, r2 - adds r0, r1 - ldrb r2, [r0] - adds r3, r2, 0 - mov r0, r9 - ldrb r0, [r0] - cmp r2, r0 - bcc _08091BBA - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08091D14 @ =gUnknown_083B57BC - adds r1, 0x1 - adds r1, r7, r1 - ldrb r1, [r1] - adds r0, r1 - cmp r2, r0 - blt _08091BD2 -_08091BBA: - ldr r0, _08091D14 @ =gUnknown_083B57BC - adds r0, 0x2 - adds r0, r7, r0 - ldrb r2, [r0] - cmp r3, r2 - bcc _08091BE6 - ldrb r1, [r0] - ldr r2, [sp, 0xC] - ldrb r0, [r2] - adds r1, r0 - cmp r3, r1 - bge _08091BE6 -_08091BD2: - ldr r2, _08091D0C @ =gPokedexView - ldr r0, [r2] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091BE6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091B82 -_08091BFA: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091C04: - ldr r0, [sp, 0x4] - cmp r0, 0xFF - beq _08091C74 - movs r5, 0 - movs r6, 0 - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091C6A - adds r7, r1, 0 - ldr r0, _08091D1C @ =gBaseStats - mov r8, r0 -_08091C22: - ldr r0, [r7] - lsls r4, r5, 2 - adds r0, r4 - ldrh r0, [r0] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x19] - lsls r0, 25 - lsrs r0, 25 - ldr r1, [sp, 0x4] - cmp r1, r0 - bne _08091C58 - ldr r0, [r7] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091C58: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r7] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091C22 -_08091C6A: - ldr r1, _08091D0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091C74: - ldr r0, [sp, 0x8] - cmp r0, 0xFF - bne _08091C8A - mov r1, r10 - cmp r1, 0xFF - bne _08091C82 - b _08091DA6 -_08091C82: - mov r2, r10 - str r2, [sp, 0x8] - movs r0, 0xFF - mov r10, r0 -_08091C8A: - mov r1, r10 - cmp r1, 0xFF - bne _08091D20 - movs r5, 0 - movs r6, 0 - ldr r2, _08091D0C @ =gPokedexView - ldr r0, [r2] - ldr r1, _08091D10 @ =0x0000060c - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091D9C - adds r3, r2, 0 - mov r7, sp - mov r8, r2 -_08091CA8: - ldr r0, [r3] - lsls r4, r5, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x2] - lsls r0, 30 - cmp r0, 0 - bge _08091CF2 - ldrh r0, [r1] - str r3, [sp, 0x10] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091D1C @ =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - strb r1, [r7] - ldrb r0, [r0, 0x7] - strb r0, [r7, 0x1] - ldr r3, [sp, 0x10] - ldr r2, [sp, 0x8] - cmp r1, r2 - beq _08091CE0 - cmp r0, r2 - bne _08091CF2 -_08091CE0: - ldr r0, [r3] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091CF2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - mov r1, r8 - ldr r0, [r1] - ldr r2, _08091D10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091CA8 - b _08091D9C - .align 2, 0 -_08091D08: .4byte 0x00000181 -_08091D0C: .4byte gPokedexView -_08091D10: .4byte 0x0000060c -_08091D14: .4byte gUnknown_083B57BC -_08091D18: .4byte gSpeciesNames -_08091D1C: .4byte gBaseStats -_08091D20: - movs r5, 0 - movs r6, 0 - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r6, r0 - bcs _08091D9C - mov r7, sp -_08091D34: - ldr r0, [r1] - lsls r1, r5, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x2] - lsls r0, 30 - adds r4, r1, 0 - cmp r0, 0 - bge _08091D88 - ldrh r0, [r2] - bl NationalPokedexNumToSpecies - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _08091E14 @ =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - strb r1, [r7] - ldrb r0, [r0, 0x7] - strb r0, [r7, 0x1] - ldr r2, [sp, 0x8] - cmp r1, r2 - bne _08091D6A - cmp r0, r10 - beq _08091D74 -_08091D6A: - cmp r1, r10 - bne _08091D88 - ldr r1, [sp, 0x8] - cmp r0, r1 - bne _08091D88 -_08091D74: - ldr r2, _08091E0C @ =gPokedexView - ldr r0, [r2] - lsls r1, r6, 2 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08091D88: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - ldrh r0, [r0] - cmp r5, r0 - bcc _08091D34 -_08091D9C: - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r0, r2 - strh r6, [r0] -_08091DA6: - ldr r1, _08091E0C @ =gPokedexView - ldr r0, [r1] - ldr r2, _08091E10 @ =0x0000060c - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, 0 - beq _08091DFA - adds r5, r0, 0 - ldr r0, _08091E18 @ =0x00000181 - cmp r5, r0 - bhi _08091DFA - ldr r4, _08091E0C @ =gPokedexView - movs r1, 0x2 - negs r1, r1 - mov r10, r1 - movs r2, 0x3 - negs r2, r2 - mov r9, r2 - mov r8, r0 - ldr r0, _08091E1C @ =0x0000ffff - adds r7, r0, 0 -_08091DD0: - ldr r1, [r4] - lsls r3, r5, 2 - adds r1, r3 - ldrh r0, [r1] - orrs r0, r7 - strh r0, [r1] - ldrb r2, [r1, 0x2] - mov r0, r10 - ands r0, r2 - strb r0, [r1, 0x2] - ldr r1, [r4] - adds r1, r3 - ldrb r2, [r1, 0x2] - mov r0, r9 - ands r0, r2 - strb r0, [r1, 0x2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bls _08091DD0 -_08091DFA: - adds r0, r6, 0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08091E0C: .4byte gPokedexView -_08091E10: .4byte 0x0000060c -_08091E14: .4byte gBaseStats -_08091E18: .4byte 0x00000181 -_08091E1C: .4byte 0x0000ffff - thumb_func_end sub_8091AF8 - - thumb_func_start sub_8091E20 -sub_8091E20: @ 8091E20 - push {lr} - sub sp, 0x8 - movs r1, 0x20 - str r1, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r1, 0x9 - movs r2, 0x78 - movs r3, 0xD0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8091E20 - - thumb_func_start sub_8091E3C -sub_8091E3C: @ 8091E3C - push {lr} - ldr r0, _08091E50 @ =sub_8091E54 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08091E50: .4byte sub_8091E54 - thumb_func_end sub_8091E3C - - thumb_func_start sub_8091E54 -sub_8091E54: @ 8091E54 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08091E78 @ =gMain - ldr r2, _08091E7C @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x4 - bhi _08091E98 - lsls r0, 2 - ldr r1, _08091E80 @ =_08091E84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091E78: .4byte gMain -_08091E7C: .4byte 0x0000043c -_08091E80: .4byte _08091E84 - .align 2, 0 -_08091E84: - .4byte _08091E98 - .4byte _08091F50 - .4byte _08091FC0 - .4byte _08091FE0 - .4byte _0809200C -_08091E98: - ldr r0, _08091F1C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08091EA6 - b _08092030 -_08091EA6: - ldr r0, _08091F20 @ =gPokedexView - ldr r0, [r0] - ldr r1, _08091F24 @ =0x0000064a - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - movs r0, 0 - bl sub_8091060 - ldr r0, _08091F28 @ =gPokedexMenuSearch_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08091F2C @ =gUnknown_08E96D2C - ldr r1, _08091F30 @ =0x06007800 - bl LZ77UnCompVram - ldr r0, _08091F34 @ =gPokedexMenuSearch_Pal + 0x2 - movs r1, 0x1 - movs r2, 0x7E - bl LoadPalette - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08091F10 - movs r4, 0 - ldr r2, _08091F38 @ =0x06007a80 - mov r8, r2 - ldr r0, _08091F3C @ =0x06007b00 - mov r12, r0 - movs r5, 0x1 - ldr r7, _08091F40 @ =0x06007ac0 - ldr r6, _08091F44 @ =0x06007b40 -_08091EEC: - lsls r1, r4, 1 - mov r0, r8 - adds r2, r1, r0 - mov r0, r12 - adds r3, r1, r0 - ldrh r0, [r3] - strh r0, [r2] - adds r2, r1, r7 - adds r1, r6 - ldrh r0, [r1] - strh r0, [r2] - strh r5, [r3] - strh r5, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x10 - bls _08091EEC -_08091F10: - ldr r0, _08091F48 @ =gMain - ldr r1, _08091F4C @ =0x0000043c - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _08092030 - .align 2, 0 -_08091F1C: .4byte gPaletteFade -_08091F20: .4byte gPokedexView -_08091F24: .4byte 0x0000064a -_08091F28: .4byte gPokedexMenuSearch_Gfx -_08091F2C: .4byte gUnknown_08E96D2C -_08091F30: .4byte 0x06007800 -_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2 -_08091F38: .4byte 0x06007a80 -_08091F3C: .4byte 0x06007b00 -_08091F40: .4byte 0x06007ac0 -_08091F44: .4byte 0x06007b40 -_08091F48: .4byte gMain -_08091F4C: .4byte 0x0000043c -_08091F50: - ldr r4, _08091FA8 @ =gWindowConfig_81E7064 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08091FAC @ =gUnknown_083A05CC - bl LoadCompressedObjectPic - ldr r0, _08091FB0 @ =gUnknown_083A05DC - bl LoadSpritePalettes - adds r0, r5, 0 - bl sub_809308C - movs r4, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r1, r0, 3 - ldr r3, _08091FB4 @ =gTasks + 0x8 - movs r2, 0 -_08091F7C: - lsls r0, r4, 1 - adds r0, r1 - adds r0, r3 - strh r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _08091F7C - adds r0, r5, 0 - bl sub_8092EB0 - movs r0, 0 - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r1, _08091FB8 @ =gMain - ldr r2, _08091FBC @ =0x0000043c - adds r1, r2 - b _08091FF6 - .align 2, 0 -_08091FA8: .4byte gWindowConfig_81E7064 -_08091FAC: .4byte gUnknown_083A05CC -_08091FB0: .4byte gUnknown_083A05DC -_08091FB4: .4byte gTasks + 0x8 -_08091FB8: .4byte gMain -_08091FBC: .4byte 0x0000043c -_08091FC0: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08091FD8 @ =gMain - ldr r0, _08091FDC @ =0x0000043c - adds r1, r0 - b _08091FF6 - .align 2, 0 -_08091FD8: .4byte gMain -_08091FDC: .4byte 0x0000043c -_08091FE0: - ldr r1, _08092000 @ =REG_BG3CNT - ldr r2, _08092004 @ =0x00000f03 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xE2 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08092008 @ =0x0000043c - adds r1, r3, r0 -_08091FF6: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08092030 - .align 2, 0 -_08092000: .4byte REG_BG3CNT -_08092004: .4byte 0x00000f03 -_08092008: .4byte 0x0000043c -_0809200C: - ldr r0, _0809203C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08092030 - ldr r1, _08092040 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08092044 @ =sub_809204C - str r1, [r0] - ldr r1, _08092048 @ =0x0000043c - adds r0, r3, r1 - strb r2, [r0] -_08092030: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809203C: .4byte gPaletteFade -_08092040: .4byte gTasks -_08092044: .4byte sub_809204C -_08092048: .4byte 0x0000043c - thumb_func_end sub_8091E54 - - thumb_func_start sub_809204C -sub_809204C: @ 809204C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08092074 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl sub_8092AB0 - adds r0, r5, 0 - bl sub_8092B68 - ldr r0, _08092078 @ =sub_809207C - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092074: .4byte gTasks -_08092078: .4byte sub_809207C - thumb_func_end sub_809204C - - thumb_func_start sub_809207C -sub_809207C: @ 809207C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080920A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080920B0 - movs r0, 0x3 - bl PlaySE - ldr r0, _080920A8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080920AC @ =sub_80927B8 - str r0, [r1] - b _0809216C - .align 2, 0 -_080920A4: .4byte gMain -_080920A8: .4byte gTasks -_080920AC: .4byte sub_80927B8 -_080920B0: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809210C - ldr r1, _080920D4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r4, [r5, r0] - cmp r4, 0x1 - beq _080920E8 - cmp r4, 0x1 - bgt _080920D8 - cmp r4, 0 - beq _080920DE - b _0809216C - .align 2, 0 -_080920D4: .4byte gTasks -_080920D8: - cmp r4, 0x2 - beq _080920FC - b _0809216C -_080920DE: - movs r0, 0x15 - bl PlaySE - strh r4, [r5, 0xA] - b _080920F2 -_080920E8: - movs r0, 0x15 - bl PlaySE - movs r0, 0x4 - strh r0, [r5, 0xA] -_080920F2: - ldr r0, _080920F8 @ =sub_809217C - str r0, [r5] - b _0809216C - .align 2, 0 -_080920F8: .4byte sub_809217C -_080920FC: - movs r0, 0x3 - bl PlaySE - ldr r0, _08092108 @ =sub_80927B8 - str r0, [r5] - b _0809216C - .align 2, 0 -_08092108: .4byte sub_80927B8 -_0809210C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809213A - ldr r0, _08092174 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _0809213A - movs r0, 0x6D - bl PlaySE - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092AB0 -_0809213A: - ldr r0, _08092178 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809216C - ldr r0, _08092174 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bgt _0809216C - movs r0, 0x6D - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092AB0 -_0809216C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092174: .4byte gTasks -_08092178: .4byte gMain - thumb_func_end sub_809207C - - thumb_func_start sub_809217C -sub_809217C: @ 809217C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080921A8 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - ldrb r1, [r4, 0xA] - bl sub_8092AD4 - adds r0, r5, 0 - bl sub_8092B68 - ldr r0, _080921AC @ =sub_80921B0 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080921A8: .4byte gTasks -_080921AC: .4byte sub_80921B0 - thumb_func_end sub_809217C - - thumb_func_start sub_80921B0 -sub_80921B0: @ 80921B0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080921D8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080921E4 - bl IsNationalPokedexEnabled - ldr r6, _080921DC @ =gUnknown_083B586C - cmp r0, 0 - bne _080921F0 - ldr r6, _080921E0 @ =gUnknown_083B58A4 - b _080921F0 - .align 2, 0 -_080921D8: .4byte gTasks -_080921DC: .4byte gUnknown_083B586C -_080921E0: .4byte gUnknown_083B58A4 -_080921E4: - bl IsNationalPokedexEnabled - ldr r6, _0809221C @ =gUnknown_083B5850 - cmp r0, 0 - bne _080921F0 - ldr r6, _08092220 @ =gUnknown_083B5888 -_080921F0: - ldr r0, _08092224 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _08092230 - movs r0, 0x17 - bl PlaySE - adds r0, r5, 0 - bl sub_8092EB0 - ldr r0, _08092228 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0809222C @ =sub_809204C - str r0, [r1] - b _080923EC - .align 2, 0 -_0809221C: .4byte gUnknown_083B5850 -_08092220: .4byte gUnknown_083B5888 -_08092224: .4byte gMain -_08092228: .4byte gTasks -_0809222C: .4byte sub_809204C -_08092230: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08092300 - ldr r0, _080922B4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r6, r1, r0 - movs r2, 0xA - ldrsh r0, [r6, r2] - cmp r0, 0x6 - bne _080922F0 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080922D4 - ldr r1, _080922B8 @ =gUnknown_0202FFBA - movs r0, 0x40 - strb r0, [r1] - ldr r7, _080922BC @ =gPokedexView - ldr r1, [r7] - ldr r0, _080922C0 @ =0x0000062a - adds r2, r1, r0 - movs r0, 0x40 - strh r0, [r2] - ldr r0, _080922C4 @ =gUnknown_0202FFB8 - strh r3, [r0] - movs r2, 0xC2 - lsls r2, 3 - adds r1, r2 - strh r3, [r1] - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8092E10 - ldr r4, _080922C8 @ =gSaveBlock2 - strb r0, [r4, 0x19] - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08092288 - movs r0, 0 - strb r0, [r4, 0x19] -_08092288: - ldr r0, [r7] - ldrb r1, [r4, 0x19] - ldr r2, _080922CC @ =0x00000614 - adds r0, r2 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8092E10 - strb r0, [r4, 0x18] - ldr r0, [r7] - ldrb r1, [r4, 0x18] - movs r2, 0xC3 - lsls r2, 3 - adds r0, r2 - strh r1, [r0] - movs r0, 0x3 - bl PlaySE - ldr r0, _080922D0 @ =sub_80927B8 - str r0, [r6] - b _080923EC - .align 2, 0 -_080922B4: .4byte gTasks -_080922B8: .4byte gUnknown_0202FFBA -_080922BC: .4byte gPokedexView -_080922C0: .4byte 0x0000062a -_080922C4: .4byte gUnknown_0202FFB8 -_080922C8: .4byte gSaveBlock2 -_080922CC: .4byte 0x00000614 -_080922D0: .4byte sub_80927B8 -_080922D4: - ldr r0, _080922E8 @ =gDexText_Searching - bl sub_8091E20 - ldr r0, _080922EC @ =sub_80923FC - str r0, [r6] - movs r0, 0x70 - bl PlaySE - b _080923EC - .align 2, 0 -_080922E8: .4byte gDexText_Searching -_080922EC: .4byte sub_80923FC -_080922F0: - movs r0, 0x15 - bl PlaySE - ldr r0, _080922FC @ =sub_80925CC - str r0, [r6] - b _080923EC - .align 2, 0 -_080922FC: .4byte sub_80925CC -_08092300: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08092338 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08092338 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_08092338: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08092374 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x1] - cmp r0, 0xFF - beq _08092374 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x1] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_08092374: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080923B0 - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x2] - cmp r0, 0xFF - beq _080923B0 - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x2] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_080923B0: - ldr r0, _080923F8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080923EC - ldr r1, _080923F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - cmp r0, 0xFF - beq _080923EC - movs r0, 0x5 - bl PlaySE - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x3] - strh r1, [r4, 0xA] - ldrb r0, [r4, 0x8] - bl sub_8092AD4 -_080923EC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080923F4: .4byte gTasks -_080923F8: .4byte gMain - thumb_func_end sub_80921B0 - - thumb_func_start sub_80923FC -sub_80923FC: @ 80923FC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x5 - bl sub_8092E10 - mov r10, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0x4 - bl sub_8092E10 - mov r9, r0 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8092E10 - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8092E10 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8092E10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8092E10 - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r10 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl sub_8091AF8 - ldr r1, _0809249C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080924A0 @ =sub_80924A4 - str r1, [r0] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809249C: .4byte gTasks -_080924A0: .4byte sub_80924A4 - thumb_func_end sub_80923FC - - thumb_func_start sub_80924A4 -sub_80924A4: @ 80924A4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - bne _080924F6 - ldr r0, _080924D0 @ =gPokedexView - ldr r0, [r0] - ldr r1, _080924D4 @ =0x0000060c - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080924DC - movs r0, 0x1F - bl PlaySE - ldr r0, _080924D8 @ =gDexText_SearchComplete - bl sub_8091E20 - b _080924E8 - .align 2, 0 -_080924D0: .4byte gPokedexView -_080924D4: .4byte 0x0000060c -_080924D8: .4byte gDexText_SearchComplete -_080924DC: - movs r0, 0x20 - bl PlaySE - ldr r0, _080924FC @ =gDexText_NoMatching - bl sub_8091E20 -_080924E8: - ldr r0, _08092500 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08092504 @ =sub_8092508 - str r0, [r1] -_080924F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080924FC: .4byte gDexText_NoMatching -_08092500: .4byte gTasks -_08092504: .4byte sub_8092508 - thumb_func_end sub_80924A4 - - thumb_func_start sub_8092508 -sub_8092508: @ 8092508 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - ldr r0, _08092570 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080925A4 - ldr r5, _08092574 @ =gPokedexView - ldr r1, [r5] - ldr r3, _08092578 @ =0x0000060c - adds r0, r1, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _08092590 - ldr r0, _0809257C @ =0x0000064f - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x5 - bl sub_8092E10 - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08092580 @ =0x00000612 - adds r1, r2 - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0x4 - bl sub_8092E10 - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092584 @ =0x00000616 - adds r1, r3 - strh r0, [r1] - ldr r1, _08092588 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809258C @ =sub_80927B8 - str r1, [r0] - movs r0, 0x3 - bl PlaySE - b _080925A4 - .align 2, 0 -_08092570: .4byte gMain -_08092574: .4byte gPokedexView -_08092578: .4byte 0x0000060c -_0809257C: .4byte 0x0000064f -_08092580: .4byte 0x00000612 -_08092584: .4byte 0x00000616 -_08092588: .4byte gTasks -_0809258C: .4byte sub_80927B8 -_08092590: - ldr r0, _080925AC @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _080925B0 @ =sub_809217C - str r0, [r1] - movs r0, 0x17 - bl PlaySE -_080925A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080925AC: .4byte gTasks -_080925B0: .4byte sub_809217C - thumb_func_end sub_8092508 - - thumb_func_start sub_80925B4 -sub_80925B4: @ 80925B4 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 15 - adds r1, 0x1 - lsls r1, 27 - lsrs r1, 24 - movs r0, 0x90 - bl sub_814AD7C - pop {r0} - bx r0 - thumb_func_end sub_80925B4 - - thumb_func_start sub_80925CC -sub_80925CC: @ 80925CC - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8092C8C - ldr r2, _08092630 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r6, r1, r2 - ldrb r0, [r6, 0xA] - adds r2, 0x8 - adds r1, r2 - ldr r2, _08092634 @ =gUnknown_083B5A7C - lsls r0, 3 - adds r0, r2 - ldrb r5, [r0, 0x4] - lsls r5, 1 - adds r5, r1, r5 - ldrb r0, [r0, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r5] - strh r0, [r6, 0x24] - ldrh r0, [r1] - strh r0, [r6, 0x26] - adds r0, r4, 0 - bl sub_8092D78 - ldr r1, _08092638 @ =0x0000ffff - ldr r3, _0809263C @ =0x00002d9f - movs r0, 0xB - str r0, [sp] - movs r0, 0x10 - movs r2, 0xC - bl CreateBlendedOutlineCursor - ldrh r0, [r5] - movs r1, 0x1 - bl sub_80925B4 - ldr r0, _08092640 @ =sub_8092644 - str r0, [r6] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092630: .4byte gTasks -_08092634: .4byte gUnknown_083B5A7C -_08092638: .4byte 0x0000ffff -_0809263C: .4byte 0x00002d9f -_08092640: .4byte sub_8092644 - thumb_func_end sub_80925CC - - thumb_func_start sub_8092644 -sub_8092644: @ 8092644 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, _080926A8 @ =gTasks - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r6, r2, r3 - ldrb r1, [r6, 0xA] - ldr r0, _080926AC @ =gUnknown_083B5A7C - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - mov r8, r0 - adds r3, 0x8 - adds r2, r3 - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r4, r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r5, r2, r0 - ldrh r0, [r1, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080926B0 @ =gMain - mov r12, r0 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080926B4 - bl sub_814ADC8 - movs r0, 0x15 - bl PlaySE - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1 - bl sub_8092C8C - b _080926E0 - .align 2, 0 -_080926A8: .4byte gTasks -_080926AC: .4byte gUnknown_083B5A7C -_080926B0: .4byte gMain -_080926B4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080926EC - bl sub_814ADC8 - movs r0, 0x17 - bl PlaySE - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0x1 - bl sub_8092C8C - ldrh r0, [r6, 0x24] - strh r0, [r4] - ldrh r0, [r6, 0x26] - strh r0, [r5] -_080926E0: - ldr r0, _080926E8 @ =sub_809217C - str r0, [r6] - b _080927AE - .align 2, 0 -_080926E8: .4byte sub_809217C -_080926EC: - movs r3, 0 - mov r0, r12 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809274C - ldrh r0, [r4] - cmp r0, 0 - beq _08092716 - movs r1, 0 - bl sub_80925B4 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - b _08092734 -_08092716: - ldrh r0, [r5] - cmp r0, 0 - beq _08092730 - subs r0, 0x1 - strh r0, [r5] - adds r0, r7, 0 - bl sub_8092D78 - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - movs r3, 0x1 -_08092730: - cmp r3, 0 - beq _080927AE -_08092734: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r1 - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - bl sub_8091E20 - b _080927AE -_0809274C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080927AE - ldrh r0, [r4] - cmp r0, 0x4 - bhi _08092774 - cmp r0, r2 - bcs _08092774 - movs r1, 0 - bl sub_80925B4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x1 - bl sub_80925B4 - b _08092798 -_08092774: - cmp r2, 0x5 - bls _08092794 - ldrh r1, [r5] - subs r0, r2, 0x5 - cmp r1, r0 - bge _08092794 - adds r0, r1, 0x1 - strh r0, [r5] - adds r0, r7, 0 - bl sub_8092D78 - movs r0, 0x5 - movs r1, 0x1 - bl sub_80925B4 - movs r3, 0x1 -_08092794: - cmp r3, 0 - beq _080927AE -_08092798: - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - ldrh r1, [r5] - adds r0, r1 - lsls r0, 3 - add r0, r8 - ldr r0, [r0] - bl sub_8091E20 -_080927AE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8092644 - - thumb_func_start sub_80927B8 -sub_80927B8: @ 80927B8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080927E8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080927EC @ =sub_80927F0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080927E8: .4byte gTasks -_080927EC: .4byte sub_80927F0 - thumb_func_end sub_80927B8 - - thumb_func_start sub_80927F0 -sub_80927F0: @ 80927F0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0809280C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08092808 - adds r0, r2, 0 - bl DestroyTask -_08092808: - pop {r0} - bx r0 - .align 2, 0 -_0809280C: .4byte gPaletteFade - thumb_func_end sub_80927F0 - - thumb_func_start sub_8092810 -sub_8092810: @ 8092810 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - lsls r2, 24 - lsrs r1, r2, 24 - lsls r3, 24 - lsrs r5, r3, 8 - movs r3, 0 - cmp r5, 0 - beq _0809285A - lsls r7, r1, 6 - ldr r6, _08092860 @ =0x00000fff - lsls r4, r0, 12 -_08092830: - mov r0, r12 - adds r1, r0, r3 - lsls r1, 1 - adds r1, r7, r1 - ldr r0, _08092864 @ =0x06007800 - adds r2, r1, r0 - ldrh r0, [r2] - ands r0, r6 - orrs r0, r4 - strh r0, [r2] - ldr r0, _08092868 @ =0x06007840 - adds r1, r0 - ldrh r0, [r1] - ands r0, r6 - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r0, r5 - bcc _08092830 -_0809285A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08092860: .4byte 0x00000fff -_08092864: .4byte 0x06007800 -_08092868: .4byte 0x06007840 - thumb_func_end sub_8092810 - - thumb_func_start sub_809286C -sub_809286C: @ 809286C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x1 - ands r5, r0 - ands r2, r0 - lsls r2, 1 - orrs r5, r2 - cmp r4, 0xA - bhi _08092958 - lsls r0, r4, 2 - ldr r1, _08092894 @ =_08092898 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092894: .4byte _08092898 - .align 2, 0 -_08092898: - .4byte _080928C4 - .4byte _080928C4 - .4byte _080928C4 - .4byte _080928D4 - .4byte _080928D4 - .4byte _080928EC - .4byte _080928EC - .4byte _080928D4 - .4byte _080928D4 - .4byte _08092914 - .4byte _08092904 -_080928C4: - ldr r1, _080928D0 @ =gUnknown_083B57E4 - lsls r0, r4, 3 - adds r0, r1 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - b _08092932 - .align 2, 0 -_080928D0: .4byte gUnknown_083B57E4 -_080928D4: - ldr r2, _08092900 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - ldrb r3, [r0, 0x6] - adds r0, r5, 0 - bl sub_8092810 -_080928EC: - ldr r2, _08092900 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x7] - ldrb r2, [r0, 0x8] - ldrb r3, [r0, 0x9] - b _08092934 - .align 2, 0 -_08092900: .4byte gUnknown_083B57FC -_08092904: - ldr r0, _08092910 @ =gUnknown_083B57FC - ldrb r1, [r0, 0x1C] - ldrb r2, [r0, 0x1D] - ldrb r3, [r0, 0x1E] - b _08092934 - .align 2, 0 -_08092910: .4byte gUnknown_083B57FC -_08092914: - bl IsNationalPokedexEnabled - cmp r0, 0 - bne _08092940 - ldr r2, _0809293C @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - subs r2, 0x2 - lsls r2, 24 - lsrs r2, 24 -_08092932: - ldrb r3, [r0, 0x6] -_08092934: - adds r0, r5, 0 - bl sub_8092810 - b _08092958 - .align 2, 0 -_0809293C: .4byte gUnknown_083B57FC -_08092940: - ldr r2, _08092960 @ =gUnknown_083B57FC - subs r1, r4, 0x3 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - ldrb r2, [r0, 0x5] - ldrb r3, [r0, 0x6] - adds r0, r5, 0 - bl sub_8092810 -_08092958: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092960: .4byte gUnknown_083B57FC - thumb_func_end sub_809286C - - thumb_func_start sub_8092964 -sub_8092964: @ 8092964 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080929CE - cmp r0, 0x1 - bgt _0809297A - cmp r0, 0 - beq _08092980 - b _08092AAC -_0809297A: - cmp r1, 0x2 - beq _08092A3E - b _08092AAC -_08092980: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0 - b _08092A1A -_080929CE: - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0x1 -_08092A1A: - bl sub_809286C - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x8 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x9 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - b _08092AAC -_08092A3E: - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl sub_809286C - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0xA - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C - movs r0, 0x9 - movs r1, 0x1 - movs r2, 0x1 - bl sub_809286C -_08092AAC: - pop {r0} - bx r0 - thumb_func_end sub_8092964 - - thumb_func_start sub_8092AB0 -sub_8092AB0: @ 8092AB0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8092964 - ldr r0, _08092AD0 @ =gUnknown_083B57E4 - lsls r4, 3 - adds r4, r0 - ldr r0, [r4] - bl sub_8091E20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092AD0: .4byte gUnknown_083B57E4 - thumb_func_end sub_8092AB0 - - thumb_func_start sub_8092AD4 -sub_8092AD4: @ 8092AD4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_8092964 - cmp r4, 0x6 - bhi _08092B4E - lsls r0, r4, 2 - ldr r1, _08092AF0 @ =_08092AF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092AF0: .4byte _08092AF4 - .align 2, 0 -_08092AF4: - .4byte _08092B10 - .4byte _08092B14 - .4byte _08092B18 - .4byte _08092B26 - .4byte _08092B34 - .4byte _08092B38 - .4byte _08092B44 -_08092B10: - movs r0, 0x3 - b _08092B3A -_08092B14: - movs r0, 0x4 - b _08092B3A -_08092B18: - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x5 - b _08092B3A -_08092B26: - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_809286C - movs r0, 0x6 - b _08092B3A -_08092B34: - movs r0, 0x7 - b _08092B3A -_08092B38: - movs r0, 0x8 -_08092B3A: - movs r1, 0 - movs r2, 0 - bl sub_809286C - b _08092B4E -_08092B44: - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - bl sub_809286C -_08092B4E: - ldr r0, _08092B64 @ =gUnknown_083B57FC - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl sub_8091E20 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092B64: .4byte gUnknown_083B57FC - thumb_func_end sub_8092AD4 - - thumb_func_start sub_8092B68 -sub_8092B68: @ 8092B68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08092C68 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r2 - ldrh r0, [r6, 0x16] - ldrh r1, [r6, 0x14] - adds r0, r1 - lsls r0, 16 - ldr r7, _08092C6C @ =gStringVar1 - ldr r1, _08092C70 @ =gUnknown_083B5910 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - ldr r0, _08092C74 @ =gUnknown_083B5AB2 - mov r8, r0 - movs r1, 0x2D - movs r2, 0x10 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x1A] - ldrh r1, [r6, 0x18] - adds r0, r1 - lsls r0, 16 - ldr r1, _08092C78 @ =gUnknown_083B5968 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x20 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x1E] - ldrh r1, [r6, 0x1C] - adds r0, r1 - lsls r0, 16 - ldr r4, _08092C7C @ =gUnknown_083B59C8 - lsrs r0, 13 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - ldr r5, _08092C80 @ =gUnknown_083B5AAC - adds r0, r5, 0 - movs r1, 0x2D - movs r2, 0x30 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x22] - ldrh r1, [r6, 0x20] - adds r0, r1 - lsls r0, 16 - lsrs r0, 13 - adds r0, r4 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - adds r0, r5, 0 - movs r1, 0x5D - movs r2, 0x30 - movs r3, 0x1 - bl MenuPrint_PixelCoords - ldrh r0, [r6, 0x12] - ldrh r1, [r6, 0x10] - adds r0, r1 - lsls r0, 16 - ldr r1, _08092C84 @ =gUnknown_083B58D8 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x40 - movs r3, 0x1 - bl MenuPrint_PixelCoords - bl IsNationalPokedexEnabled - cmp r0, 0 - beq _08092C5E - ldrh r0, [r6, 0xE] - ldrh r6, [r6, 0xC] - adds r0, r6 - lsls r0, 16 - ldr r1, _08092C88 @ =gUnknown_083B58C0 - lsrs r0, 13 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl StringCopy - mov r0, r8 - movs r1, 0x2D - movs r2, 0x50 - movs r3, 0x1 - bl MenuPrint_PixelCoords -_08092C5E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08092C68: .4byte gTasks -_08092C6C: .4byte gStringVar1 -_08092C70: .4byte gUnknown_083B5910 -_08092C74: .4byte gUnknown_083B5AB2 -_08092C78: .4byte gUnknown_083B5968 -_08092C7C: .4byte gUnknown_083B59C8 -_08092C80: .4byte gUnknown_083B5AAC -_08092C84: .4byte gUnknown_083B58D8 -_08092C88: .4byte gUnknown_083B58C0 - thumb_func_end sub_8092B68 - - thumb_func_start sub_8092C8C -sub_8092C8C: @ 8092C8C - push {r4-r6,lr} - lsls r0, 24 - cmp r0, 0 - bne _08092D48 - ldr r1, _08092D1C @ =0x06007822 - ldr r2, _08092D20 @ =0x00000c0b - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x12 - ldr r3, _08092D24 @ =0x06007800 - ldr r4, _08092D28 @ =0x0000080d - adds r2, r4, 0 -_08092CA4: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092CA4 - ldr r1, _08092D2C @ =0x0600783a - ldr r2, _08092D30 @ =0x0000080b - adds r0, r2, 0 - strh r0, [r1] - movs r3, 0x1 - ldr r6, _08092D24 @ =0x06007800 - movs r5, 0x2 -_08092CC2: - lsls r2, r3, 6 - ldr r4, _08092D1C @ =0x06007822 - adds r1, r2, r4 - ldr r4, _08092D34 @ =0x0000040a - adds r0, r4, 0 - strh r0, [r1] - movs r1, 0x12 - adds r4, r3, 0x1 - adds r3, r2, 0 -_08092CD4: - lsls r0, r1, 1 - adds r0, r3, r0 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092CD4 - ldr r1, _08092D2C @ =0x0600783a - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - lsls r0, r4, 16 - lsrs r3, r0, 16 - cmp r3, 0xC - bls _08092CC2 - ldr r1, _08092D38 @ =0x06007b62 - ldr r2, _08092D3C @ =0x0000040b - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x12 - ldr r3, _08092D40 @ =0x06007b40 - movs r2, 0xD -_08092D04: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1C - bls _08092D04 - ldr r1, _08092D44 @ =0x06007b7a - movs r0, 0xB - strh r0, [r1] - b _08092D6E - .align 2, 0 -_08092D1C: .4byte 0x06007822 -_08092D20: .4byte 0x00000c0b -_08092D24: .4byte 0x06007800 -_08092D28: .4byte 0x0000080d -_08092D2C: .4byte 0x0600783a -_08092D30: .4byte 0x0000080b -_08092D34: .4byte 0x0000040a -_08092D38: .4byte 0x06007b62 -_08092D3C: .4byte 0x0000040b -_08092D40: .4byte 0x06007b40 -_08092D44: .4byte 0x06007b7a -_08092D48: - movs r3, 0 - ldr r6, _08092D74 @ =0x06007800 - movs r5, 0x4F -_08092D4E: - movs r1, 0x11 - adds r4, r3, 0x1 - lsls r2, r3, 6 -_08092D54: - lsls r0, r1, 1 - adds r0, r2, r0 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1D - bls _08092D54 - lsls r0, r4, 16 - lsrs r3, r0, 16 - cmp r3, 0xD - bls _08092D4E -_08092D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092D74: .4byte 0x06007800 - thumb_func_end sub_8092C8C - - thumb_func_start sub_8092D78 -sub_8092D78: @ 8092D78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08092DBC @ =gUnknown_083B5A7C - ldr r3, _08092DC0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r0, r2, r3 - movs r5, 0xA - ldrsh r1, [r0, r5] - lsls r1, 3 - adds r1, r4 - ldr r6, [r1] - adds r3, 0x8 - adds r2, r3 - ldrb r0, [r1, 0x4] - lsls r0, 1 - adds r0, r2 - mov r8, r0 - ldrb r0, [r1, 0x5] - lsls r0, 1 - adds r7, r2, r0 - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0x1C - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r5, 0 - ldrh r4, [r7] - b _08092DE8 - .align 2, 0 -_08092DBC: .4byte gUnknown_083B5A7C -_08092DC0: .4byte gTasks -_08092DC4: - lsls r0, r4, 3 - adds r0, r6 - ldr r0, [r0, 0x4] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x12 - bl MenuPrint - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r5, 0x5 - bhi _08092DF2 -_08092DE8: - lsls r0, r4, 3 - adds r0, r6 - ldr r0, [r0, 0x4] - cmp r0, 0 - bne _08092DC4 -_08092DF2: - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7] - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldr r0, [r0] - bl sub_8091E20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8092D78 - - thumb_func_start sub_8092E10 -sub_8092E10: @ 8092E10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08092E50 @ =gTasks + 0x8 - adds r1, r0 - ldr r2, _08092E54 @ =gUnknown_083B5A7C - lsls r0, r3, 3 - adds r0, r2 - ldrb r2, [r0, 0x4] - lsls r2, 1 - adds r2, r1, r2 - ldrb r0, [r0, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r3, 0x5 - bhi _08092E74 - lsls r0, r3, 2 - ldr r1, _08092E58 @ =_08092E5C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092E50: .4byte gTasks + 0x8 -_08092E54: .4byte gUnknown_083B5A7C -_08092E58: .4byte _08092E5C - .align 2, 0 -_08092E5C: - .4byte _08092E88 - .4byte _08092E92 - .4byte _08092EA2 - .4byte _08092EA2 - .4byte _08092E80 - .4byte _08092E78 -_08092E74: - movs r0, 0 - b _08092EA8 -_08092E78: - ldr r0, _08092E7C @ =gUnknown_083B5A60 - b _08092EA4 - .align 2, 0 -_08092E7C: .4byte gUnknown_083B5A60 -_08092E80: - ldr r0, _08092E84 @ =gUnknown_083B5A62 - b _08092EA4 - .align 2, 0 -_08092E84: .4byte gUnknown_083B5A62 -_08092E88: - cmp r2, 0 - beq _08092E96 - lsls r0, r2, 24 - lsrs r0, 24 - b _08092EA8 -_08092E92: - cmp r2, 0 - bne _08092E9A -_08092E96: - movs r0, 0xFF - b _08092EA8 -_08092E9A: - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _08092EA8 -_08092EA2: - ldr r0, _08092EAC @ =gUnknown_083B5A68 -_08092EA4: - adds r0, r2, r0 - ldrb r0, [r0] -_08092EA8: - pop {r1} - bx r1 - .align 2, 0 -_08092EAC: .4byte gUnknown_083B5A68 - thumb_func_end sub_8092E10 - - thumb_func_start sub_8092EB0 -sub_8092EB0: @ 8092EB0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08092ED0 @ =gPokedexView - ldr r0, [r1] - ldr r2, _08092ED4 @ =0x00000614 - adds r0, r2 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0 - beq _08092ECA - cmp r0, 0x1 - beq _08092ED8 -_08092ECA: - movs r3, 0 - b _08092EDA - .align 2, 0 -_08092ED0: .4byte gPokedexView -_08092ED4: .4byte 0x00000614 -_08092ED8: - movs r3, 0x1 -_08092EDA: - ldr r1, _08092F00 @ =gTasks - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0xC] - ldr r0, [r5] - movs r3, 0xC3 - lsls r3, 3 - adds r0, r3 - ldrh r0, [r0] - adds r5, r1, 0 - cmp r0, 0x5 - bhi _08092F20 - lsls r0, 2 - ldr r1, _08092F04 @ =_08092F08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08092F00: .4byte gTasks -_08092F04: .4byte _08092F08 - .align 2, 0 -_08092F08: - .4byte _08092F20 - .4byte _08092F24 - .4byte _08092F28 - .4byte _08092F2C - .4byte _08092F30 - .4byte _08092F34 -_08092F20: - movs r3, 0 - b _08092F36 -_08092F24: - movs r3, 0x1 - b _08092F36 -_08092F28: - movs r3, 0x2 - b _08092F36 -_08092F2C: - movs r3, 0x3 - b _08092F36 -_08092F30: - movs r3, 0x4 - b _08092F36 -_08092F34: - movs r3, 0x5 -_08092F36: - adds r0, r2, r4 - lsls r0, 3 - adds r0, r5 - strh r3, [r0, 0x10] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8092EB0 - - thumb_func_start sub_8092F44 -sub_8092F44: @ 8092F44 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092F7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r3 - ldrb r2, [r0, 0xA] - adds r3, 0x8 - adds r1, r3 - ldr r0, _08092F80 @ =gUnknown_083B5A7C - lsls r2, 3 - adds r2, r0 - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r2, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _08092F84 - ldrh r0, [r1] - cmp r0, 0 - beq _08092F84 - movs r0, 0 - b _08092F86 - .align 2, 0 -_08092F7C: .4byte gTasks -_08092F80: .4byte gUnknown_083B5A7C -_08092F84: - movs r0, 0x1 -_08092F86: - pop {r1} - bx r1 - thumb_func_end sub_8092F44 - - thumb_func_start sub_8092F8C -sub_8092F8C: @ 8092F8C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08092FC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r0, r1, r3 - ldrb r2, [r0, 0xA] - adds r3, 0x8 - adds r1, r3 - ldr r0, _08092FCC @ =gUnknown_083B5A7C - lsls r2, 3 - adds r2, r0 - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r2, 0x6] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bls _08092FD0 - ldrh r1, [r1] - subs r0, 0x5 - cmp r1, r0 - bge _08092FD0 - movs r0, 0 - b _08092FD2 - .align 2, 0 -_08092FC8: .4byte gTasks -_08092FCC: .4byte gUnknown_083B5A7C -_08092FD0: - movs r0, 0x1 -_08092FD2: - pop {r1} - bx r1 - thumb_func_end sub_8092F8C - - thumb_func_start sub_8092FD8 -sub_8092FD8: @ 8092FD8 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08093018 @ =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r0] - ldr r0, _0809301C @ =sub_8092644 - cmp r1, r0 - bne _08093078 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08093020 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092F8C - lsls r0, 24 - cmp r0, 0 - beq _0809303C - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _08093048 - .align 2, 0 -_08093018: .4byte gTasks -_0809301C: .4byte sub_8092644 -_08093020: - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_8092F44 - lsls r0, 24 - cmp r0, 0 - beq _0809303C - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _08093048 -_0809303C: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 -_08093048: - strb r0, [r2] - ldrh r2, [r4, 0x32] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsls r0, 7 - adds r0, r2, r0 - lsls r0, 24 - ldr r1, _08093074 @ =gSineTable - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08093066 - adds r0, 0x7F -_08093066: - asrs r0, 7 - strh r0, [r4, 0x26] - adds r0, r2, 0 - adds r0, 0x8 - strh r0, [r4, 0x32] - b _08093084 - .align 2, 0 -_08093074: .4byte gSineTable -_08093078: - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08093084: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8092FD8 - - thumb_func_start sub_809308C -sub_809308C: @ 809308C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _08093104 @ =gSpriteTemplate_83A053C - adds r0, r6, 0 - movs r1, 0xB8 - movs r2, 0x4 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08093108 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r1, r4 - movs r2, 0 - strh r5, [r0, 0x2E] - strh r2, [r0, 0x30] - movs r0, 0x1C - adds r0, r4 - mov r9, r0 - add r1, r9 - ldr r0, _0809310C @ =sub_8092FD8 - mov r8, r0 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0xB8 - movs r2, 0x6C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r4, r1, r4 - strh r5, [r4, 0x2E] - movs r0, 0x1 - strh r0, [r4, 0x30] - adds r4, 0x3F - ldrb r0, [r4] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r4] - add r1, r9 - mov r0, r8 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08093104: .4byte gSpriteTemplate_83A053C -_08093108: .4byte gSprites -_0809310C: .4byte sub_8092FD8 - thumb_func_end sub_809308C - - .align 2, 0 @ Don't pad with nop. diff --git a/data/graphics/pokemon/footprint_table.inc b/data/graphics/pokemon/footprint_table.inc deleted file mode 100644 index 675a3bce4..000000000 --- a/data/graphics/pokemon/footprint_table.inc +++ /dev/null @@ -1,415 +0,0 @@ - .align 2 -gMonFootprintTable:: @ 83B4EE4 - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Ivysaur - .4byte gMonFootprint_Venusaur - .4byte gMonFootprint_Charmander - .4byte gMonFootprint_Charmeleon - .4byte gMonFootprint_Charizard - .4byte gMonFootprint_Squirtle - .4byte gMonFootprint_Wartortle - .4byte gMonFootprint_Blastoise - .4byte gMonFootprint_Caterpie - .4byte gMonFootprint_Metapod - .4byte gMonFootprint_Butterfree - .4byte gMonFootprint_Weedle - .4byte gMonFootprint_Kakuna - .4byte gMonFootprint_Beedrill - .4byte gMonFootprint_Pidgey - .4byte gMonFootprint_Pidgeotto - .4byte gMonFootprint_Pidgeot - .4byte gMonFootprint_Rattata - .4byte gMonFootprint_Raticate - .4byte gMonFootprint_Spearow - .4byte gMonFootprint_Fearow - .4byte gMonFootprint_Ekans - .4byte gMonFootprint_Arbok - .4byte gMonFootprint_Pikachu - .4byte gMonFootprint_Raichu - .4byte gMonFootprint_Sandshrew - .4byte gMonFootprint_Sandslash - .4byte gMonFootprint_NidoranF - .4byte gMonFootprint_Nidorina - .4byte gMonFootprint_Nidoqueen - .4byte gMonFootprint_NidoranM - .4byte gMonFootprint_Nidorino - .4byte gMonFootprint_Nidoking - .4byte gMonFootprint_Clefairy - .4byte gMonFootprint_Clefable - .4byte gMonFootprint_Vulpix - .4byte gMonFootprint_Ninetales - .4byte gMonFootprint_Jigglypuff - .4byte gMonFootprint_Wigglytuff - .4byte gMonFootprint_Zubat - .4byte gMonFootprint_Golbat - .4byte gMonFootprint_Oddish - .4byte gMonFootprint_Gloom - .4byte gMonFootprint_Vileplume - .4byte gMonFootprint_Paras - .4byte gMonFootprint_Parasect - .4byte gMonFootprint_Venonat - .4byte gMonFootprint_Venomoth - .4byte gMonFootprint_Diglett - .4byte gMonFootprint_Dugtrio - .4byte gMonFootprint_Meowth - .4byte gMonFootprint_Persian - .4byte gMonFootprint_Psyduck - .4byte gMonFootprint_Golduck - .4byte gMonFootprint_Mankey - .4byte gMonFootprint_Primeape - .4byte gMonFootprint_Growlithe - .4byte gMonFootprint_Arcanine - .4byte gMonFootprint_Poliwag - .4byte gMonFootprint_Poliwhirl - .4byte gMonFootprint_Poliwrath - .4byte gMonFootprint_Abra - .4byte gMonFootprint_Kadabra - .4byte gMonFootprint_Alakazam - .4byte gMonFootprint_Machop - .4byte gMonFootprint_Machoke - .4byte gMonFootprint_Machamp - .4byte gMonFootprint_Bellsprout - .4byte gMonFootprint_Weepinbell - .4byte gMonFootprint_Victreebel - .4byte gMonFootprint_Tentacool - .4byte gMonFootprint_Tentacruel - .4byte gMonFootprint_Geodude - .4byte gMonFootprint_Graveler - .4byte gMonFootprint_Golem - .4byte gMonFootprint_Ponyta - .4byte gMonFootprint_Rapidash - .4byte gMonFootprint_Slowpoke - .4byte gMonFootprint_Slowbro - .4byte gMonFootprint_Magnemite - .4byte gMonFootprint_Magneton - .4byte gMonFootprint_Farfetchd - .4byte gMonFootprint_Doduo - .4byte gMonFootprint_Dodrio - .4byte gMonFootprint_Seel - .4byte gMonFootprint_Dewgong - .4byte gMonFootprint_Grimer - .4byte gMonFootprint_Muk - .4byte gMonFootprint_Shellder - .4byte gMonFootprint_Cloyster - .4byte gMonFootprint_Gastly - .4byte gMonFootprint_Haunter - .4byte gMonFootprint_Gengar - .4byte gMonFootprint_Onix - .4byte gMonFootprint_Drowzee - .4byte gMonFootprint_Hypno - .4byte gMonFootprint_Krabby - .4byte gMonFootprint_Kingler - .4byte gMonFootprint_Voltorb - .4byte gMonFootprint_Electrode - .4byte gMonFootprint_Exeggcute - .4byte gMonFootprint_Exeggutor - .4byte gMonFootprint_Cubone - .4byte gMonFootprint_Marowak - .4byte gMonFootprint_Hitmonlee - .4byte gMonFootprint_Hitmonchan - .4byte gMonFootprint_Lickitung - .4byte gMonFootprint_Koffing - .4byte gMonFootprint_Weezing - .4byte gMonFootprint_Rhyhorn - .4byte gMonFootprint_Rhydon - .4byte gMonFootprint_Chansey - .4byte gMonFootprint_Tangela - .4byte gMonFootprint_Kangaskhan - .4byte gMonFootprint_Horsea - .4byte gMonFootprint_Seadra - .4byte gMonFootprint_Goldeen - .4byte gMonFootprint_Seaking - .4byte gMonFootprint_Staryu - .4byte gMonFootprint_Starmie - .4byte gMonFootprint_Mrmime - .4byte gMonFootprint_Scyther - .4byte gMonFootprint_Jynx - .4byte gMonFootprint_Electabuzz - .4byte gMonFootprint_Magmar - .4byte gMonFootprint_Pinsir - .4byte gMonFootprint_Tauros - .4byte gMonFootprint_Magikarp - .4byte gMonFootprint_Gyarados - .4byte gMonFootprint_Lapras - .4byte gMonFootprint_Ditto - .4byte gMonFootprint_Eevee - .4byte gMonFootprint_Vaporeon - .4byte gMonFootprint_Jolteon - .4byte gMonFootprint_Flareon - .4byte gMonFootprint_Porygon - .4byte gMonFootprint_Omanyte - .4byte gMonFootprint_Omastar - .4byte gMonFootprint_Kabuto - .4byte gMonFootprint_Kabutops - .4byte gMonFootprint_Aerodactyl - .4byte gMonFootprint_Snorlax - .4byte gMonFootprint_Articuno - .4byte gMonFootprint_Zapdos - .4byte gMonFootprint_Moltres - .4byte gMonFootprint_Dratini - .4byte gMonFootprint_Dragonair - .4byte gMonFootprint_Dragonite - .4byte gMonFootprint_Mewtwo - .4byte gMonFootprint_Mew - .4byte gMonFootprint_Chikorita - .4byte gMonFootprint_Bayleef - .4byte gMonFootprint_Meganium - .4byte gMonFootprint_Cyndaquil - .4byte gMonFootprint_Quilava - .4byte gMonFootprint_Typhlosion - .4byte gMonFootprint_Totodile - .4byte gMonFootprint_Croconaw - .4byte gMonFootprint_Feraligatr - .4byte gMonFootprint_Sentret - .4byte gMonFootprint_Furret - .4byte gMonFootprint_Hoothoot - .4byte gMonFootprint_Noctowl - .4byte gMonFootprint_Ledyba - .4byte gMonFootprint_Ledian - .4byte gMonFootprint_Spinarak - .4byte gMonFootprint_Ariados - .4byte gMonFootprint_Crobat - .4byte gMonFootprint_Chinchou - .4byte gMonFootprint_Lanturn - .4byte gMonFootprint_Pichu - .4byte gMonFootprint_Cleffa - .4byte gMonFootprint_Igglybuff - .4byte gMonFootprint_Togepi - .4byte gMonFootprint_Togetic - .4byte gMonFootprint_Natu - .4byte gMonFootprint_Xatu - .4byte gMonFootprint_Mareep - .4byte gMonFootprint_Flaaffy - .4byte gMonFootprint_Ampharos - .4byte gMonFootprint_Bellossom - .4byte gMonFootprint_Marill - .4byte gMonFootprint_Azumarill - .4byte gMonFootprint_Sudowoodo - .4byte gMonFootprint_Politoed - .4byte gMonFootprint_Hoppip - .4byte gMonFootprint_Skiploom - .4byte gMonFootprint_Jumpluff - .4byte gMonFootprint_Aipom - .4byte gMonFootprint_Sunkern - .4byte gMonFootprint_Sunflora - .4byte gMonFootprint_Yanma - .4byte gMonFootprint_Wooper - .4byte gMonFootprint_Quagsire - .4byte gMonFootprint_Espeon - .4byte gMonFootprint_Umbreon - .4byte gMonFootprint_Murkrow - .4byte gMonFootprint_Slowking - .4byte gMonFootprint_Misdreavus - .4byte gMonFootprint_Unown - .4byte gMonFootprint_Wobbuffet - .4byte gMonFootprint_Girafarig - .4byte gMonFootprint_Pineco - .4byte gMonFootprint_Forretress - .4byte gMonFootprint_Dunsparce - .4byte gMonFootprint_Gligar - .4byte gMonFootprint_Steelix - .4byte gMonFootprint_Snubbull - .4byte gMonFootprint_Granbull - .4byte gMonFootprint_Qwilfish - .4byte gMonFootprint_Scizor - .4byte gMonFootprint_Shuckle - .4byte gMonFootprint_Heracross - .4byte gMonFootprint_Sneasel - .4byte gMonFootprint_Teddiursa - .4byte gMonFootprint_Ursaring - .4byte gMonFootprint_Slugma - .4byte gMonFootprint_Magcargo - .4byte gMonFootprint_Swinub - .4byte gMonFootprint_Piloswine - .4byte gMonFootprint_Corsola - .4byte gMonFootprint_Remoraid - .4byte gMonFootprint_Octillery - .4byte gMonFootprint_Delibird - .4byte gMonFootprint_Mantine - .4byte gMonFootprint_Skarmory - .4byte gMonFootprint_Houndour - .4byte gMonFootprint_Houndoom - .4byte gMonFootprint_Kingdra - .4byte gMonFootprint_Phanpy - .4byte gMonFootprint_Donphan - .4byte gMonFootprint_Porygon2 - .4byte gMonFootprint_Stantler - .4byte gMonFootprint_Smeargle - .4byte gMonFootprint_Tyrogue - .4byte gMonFootprint_Hitmontop - .4byte gMonFootprint_Smoochum - .4byte gMonFootprint_Elekid - .4byte gMonFootprint_Magby - .4byte gMonFootprint_Miltank - .4byte gMonFootprint_Blissey - .4byte gMonFootprint_Raikou - .4byte gMonFootprint_Entei - .4byte gMonFootprint_Suicune - .4byte gMonFootprint_Larvitar - .4byte gMonFootprint_Pupitar - .4byte gMonFootprint_Tyranitar - .4byte gMonFootprint_Lugia - .4byte gMonFootprint_HoOh - .4byte gMonFootprint_Celebi - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_Treecko - .4byte gMonFootprint_Grovyle - .4byte gMonFootprint_Sceptile - .4byte gMonFootprint_Torchic - .4byte gMonFootprint_Combusken - .4byte gMonFootprint_Blaziken - .4byte gMonFootprint_Mudkip - .4byte gMonFootprint_Marshtomp - .4byte gMonFootprint_Swampert - .4byte gMonFootprint_Poochyena - .4byte gMonFootprint_Mightyena - .4byte gMonFootprint_Zigzagoon - .4byte gMonFootprint_Linoone - .4byte gMonFootprint_Wurmple - .4byte gMonFootprint_Silcoon - .4byte gMonFootprint_Beautifly - .4byte gMonFootprint_Cascoon - .4byte gMonFootprint_Dustox - .4byte gMonFootprint_Lotad - .4byte gMonFootprint_Lombre - .4byte gMonFootprint_Ludicolo - .4byte gMonFootprint_Seedot - .4byte gMonFootprint_Nuzleaf - .4byte gMonFootprint_Shiftry - .4byte gMonFootprint_Nincada - .4byte gMonFootprint_Ninjask - .4byte gMonFootprint_Shedinja - .4byte gMonFootprint_Taillow - .4byte gMonFootprint_Swellow - .4byte gMonFootprint_Shroomish - .4byte gMonFootprint_Breloom - .4byte gMonFootprint_Spinda - .4byte gMonFootprint_Wingull - .4byte gMonFootprint_Pelipper - .4byte gMonFootprint_Surskit - .4byte gMonFootprint_Masquerain - .4byte gMonFootprint_Wailmer - .4byte gMonFootprint_Wailord - .4byte gMonFootprint_Skitty - .4byte gMonFootprint_Delcatty - .4byte gMonFootprint_Kecleon - .4byte gMonFootprint_Baltoy - .4byte gMonFootprint_Claydol - .4byte gMonFootprint_Nosepass - .4byte gMonFootprint_Torkoal - .4byte gMonFootprint_Sableye - .4byte gMonFootprint_Barboach - .4byte gMonFootprint_Whiscash - .4byte gMonFootprint_Luvdisc - .4byte gMonFootprint_Corphish - .4byte gMonFootprint_Crawdaunt - .4byte gMonFootprint_Feebas - .4byte gMonFootprint_Milotic - .4byte gMonFootprint_Carvanha - .4byte gMonFootprint_Sharpedo - .4byte gMonFootprint_Trapinch - .4byte gMonFootprint_Vibrava - .4byte gMonFootprint_Flygon - .4byte gMonFootprint_Makuhita - .4byte gMonFootprint_Hariyama - .4byte gMonFootprint_Electrike - .4byte gMonFootprint_Manectric - .4byte gMonFootprint_Numel - .4byte gMonFootprint_Camerupt - .4byte gMonFootprint_Spheal - .4byte gMonFootprint_Sealeo - .4byte gMonFootprint_Walrein - .4byte gMonFootprint_Cacnea - .4byte gMonFootprint_Cacturne - .4byte gMonFootprint_Snorunt - .4byte gMonFootprint_Glalie - .4byte gMonFootprint_Lunatone - .4byte gMonFootprint_Solrock - .4byte gMonFootprint_Azurill - .4byte gMonFootprint_Spoink - .4byte gMonFootprint_Grumpig - .4byte gMonFootprint_Plusle - .4byte gMonFootprint_Minun - .4byte gMonFootprint_Mawile - .4byte gMonFootprint_Meditite - .4byte gMonFootprint_Medicham - .4byte gMonFootprint_Swablu - .4byte gMonFootprint_Altaria - .4byte gMonFootprint_Wynaut - .4byte gMonFootprint_Duskull - .4byte gMonFootprint_Dusclops - .4byte gMonFootprint_Roselia - .4byte gMonFootprint_Slakoth - .4byte gMonFootprint_Vigoroth - .4byte gMonFootprint_Slaking - .4byte gMonFootprint_Gulpin - .4byte gMonFootprint_Swalot - .4byte gMonFootprint_Tropius - .4byte gMonFootprint_Whismur - .4byte gMonFootprint_Loudred - .4byte gMonFootprint_Exploud - .4byte gMonFootprint_Clamperl - .4byte gMonFootprint_Huntail - .4byte gMonFootprint_Gorebyss - .4byte gMonFootprint_Absol - .4byte gMonFootprint_Shuppet - .4byte gMonFootprint_Banette - .4byte gMonFootprint_Seviper - .4byte gMonFootprint_Zangoose - .4byte gMonFootprint_Relicanth - .4byte gMonFootprint_Aron - .4byte gMonFootprint_Lairon - .4byte gMonFootprint_Aggron - .4byte gMonFootprint_Castform - .4byte gMonFootprint_Volbeat - .4byte gMonFootprint_Illumise - .4byte gMonFootprint_Lileep - .4byte gMonFootprint_Cradily - .4byte gMonFootprint_Anorith - .4byte gMonFootprint_Armaldo - .4byte gMonFootprint_Ralts - .4byte gMonFootprint_Kirlia - .4byte gMonFootprint_Gardevoir - .4byte gMonFootprint_Bagon - .4byte gMonFootprint_Shelgon - .4byte gMonFootprint_Salamence - .4byte gMonFootprint_Beldum - .4byte gMonFootprint_Metang - .4byte gMonFootprint_Metagross - .4byte gMonFootprint_Regirock - .4byte gMonFootprint_Regice - .4byte gMonFootprint_Registeel - .4byte gMonFootprint_Kyogre - .4byte gMonFootprint_Groudon - .4byte gMonFootprint_Rayquaza - .4byte gMonFootprint_Latias - .4byte gMonFootprint_Latios - .4byte gMonFootprint_Jirachi - .4byte gMonFootprint_Deoxys - .4byte gMonFootprint_Chimecho - .4byte gMonFootprint_Bulbasaur diff --git a/data/pokedex.s b/data/pokedex.s deleted file mode 100644 index a9ee7a9be..000000000 --- a/data/pokedex.s +++ /dev/null @@ -1,538 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0839F67C:: @ 839F67C - .incbin "graphics/pokedex/search.gbapal" - - .align 2 -gUnknown_0839F73C:: @ 839F73C - .incbin "graphics/pokedex/national.gbapal" - - .space 0xA4 - - .align 2 -gUnknown_0839F8A0:: @ 839F8A0 - .incbin "graphics/pokedex/pokedex_cry_layout.bin.lz" - - .align 2 -gUnknown_0839F988:: @ 839F988 - .incbin "graphics/pokedex/pokedex_size_layout.bin.lz" - -gUnknown_0839FA7C:: @ 839FA7C - .incbin "graphics/pokedex/noball.4bpp.lz" - -@ 839FAC4 - .include "data/pokedex_orders.inc" - - .align 2 -gOamData_83A0404:: @ 83A0404 - .2byte 0x00A0 - .2byte 0x0000 - .2byte 0x0400 - - .align 2 -gOamData_83A040C:: @ 83A040C - .2byte 0x40A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_83A0414:: @ 83A0414 - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_83A041C:: @ 83A041C - .2byte 0x08A0 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gOamData_83A0424:: @ 83A0424 - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0000 - - .align 2 -gOamData_83A042C:: @ 83A042C - .2byte 0x80A0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83A0434:: @ 83A0434 - obj_image_anim_frame 3, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A043C:: @ 83A043C - obj_image_anim_frame 1, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0444:: @ 83A0444 - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A044C:: @ 83A044C - obj_image_anim_frame 32, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0454:: @ 83A0454 - obj_image_anim_frame 64, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A045C:: @ 83A045C - obj_image_anim_frame 96, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0464:: @ 83A0464 - obj_image_anim_frame 128, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A046C:: @ 83A046C - obj_image_anim_frame 160, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0474:: @ 83A0474 - obj_image_anim_frame 192, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A047C:: @ 83A047C - obj_image_anim_frame 224, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0484:: @ 83A0484 - obj_image_anim_frame 226, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A048C:: @ 83A048C - obj_image_anim_frame 228, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A0494:: @ 83A0494 - obj_image_anim_frame 230, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A049C:: @ 83A049C - obj_image_anim_frame 232, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04A4:: @ 83A04A4 - obj_image_anim_frame 234, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04AC:: @ 83A04AC - obj_image_anim_frame 236, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04B4:: @ 83A04B4 - obj_image_anim_frame 238, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04BC:: @ 83A04BC - obj_image_anim_frame 240, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04C4:: @ 83A04C4 - obj_image_anim_frame 242, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_83A04CC:: @ 83A04CC - obj_image_anim_frame 4, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83A04D4:: @ 83A04D4 - .4byte gSpriteAnim_83A0434 - - .align 2 -gSpriteAnimTable_83A04D8:: @ 83A04D8 - .4byte gSpriteAnim_83A043C - - .align 2 -gSpriteAnimTable_83A04DC:: @ 83A04DC - .4byte gSpriteAnim_83A0444 - - .align 2 -gSpriteAnimTable_83A04E0:: @ 83A04E0 - .4byte gSpriteAnim_83A044C - .4byte gSpriteAnim_83A0454 - .4byte gSpriteAnim_83A045C - .4byte gSpriteAnim_83A0464 - - .align 2 -gSpriteAnimTable_83A04F0:: @ 83A04F0 - .4byte gSpriteAnim_83A046C - .4byte gSpriteAnim_83A0474 - - .align 2 -gSpriteAnimTable_83A04F8:: @ 83A04F8 - .4byte gSpriteAnim_83A047C - .4byte gSpriteAnim_83A0484 - .4byte gSpriteAnim_83A048C - .4byte gSpriteAnim_83A0494 - .4byte gSpriteAnim_83A049C - .4byte gSpriteAnim_83A04A4 - .4byte gSpriteAnim_83A04AC - .4byte gSpriteAnim_83A04B4 - .4byte gSpriteAnim_83A04BC - .4byte gSpriteAnim_83A04C4 - - .align 2 -gSpriteAnimTable_83A0520:: @ 83A0520 - .4byte gSpriteAnim_83A04CC - - .align 2 -gSpriteTemplate_83A0524:: @ 83A0524 - spr_template 4096, 4096, gOamData_83A0404, gSpriteAnimTable_83A04D4, NULL, gDummySpriteAffineAnimTable, sub_808EF38 - - .align 2 -gSpriteTemplate_83A053C:: @ 83A053C - spr_template 4096, 4096, gOamData_83A040C, gSpriteAnimTable_83A04D8, NULL, gDummySpriteAffineAnimTable, sub_808EF8C - - .align 2 -gSpriteTemplate_83A0554:: @ 83A0554 - spr_template 4096, 4096, gOamData_83A0414, gSpriteAnimTable_83A04E0, NULL, gDummySpriteAffineAnimTable, sub_808F08C - - .align 2 -gSpriteTemplate_83A056C:: @ 83A056C - spr_template 4096, 4096, gOamData_83A041C, gSpriteAnimTable_83A04DC, NULL, gDummySpriteAffineAnimTable, sub_808F0B4 - - .align 2 -gSpriteTemplate_83A0584:: @ 83A0584 - spr_template 4096, 4096, gOamData_83A0424, gSpriteAnimTable_83A04F0, NULL, gDummySpriteAffineAnimTable, sub_808ED94 - - .align 2 -gSpriteTemplate_83A059C:: @ 83A059C - spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A04F8, NULL, gDummySpriteAffineAnimTable, sub_808ED94 - - .align 2 -gSpriteTemplate_83A05B4:: @ 83A05B4 - spr_template 4096, 4096, gOamData_83A042C, gSpriteAnimTable_83A0520, NULL, gDummySpriteAffineAnimTable, sub_808F168 - - .align 2 -gUnknown_083A05CC:: @ 83A05CC - obj_tiles gPokedexMenu2_Gfx, 0x1F00, 0x1000 - null_obj_tiles - - .align 2 -gUnknown_083A05DC:: @ 83A05DC - obj_pal gPokedexMenu_Pal, 0x1000 - null_obj_pal - -gUnknown_083A05EC:: @ 83A05EC - .byte 2, 4, 8, 16, 32 - -gUnknown_083A05F1:: @ 83A05F1 - .byte 16, 8, 4, 2, 1 - - .align 2 -gUnknown_083A05F8:: @ 83A05F8 - .string "$" - -@ 83A05F9 - .include "data/pokedex_entries.inc" - -gUnknown_083B4EC4:: @ 83B4EC4 - .space 32 - -@ 83B4EE4 - .include "data/graphics/pokemon/footprint_table.inc" - -gUnknown_083B5558:: @ 83B5558 - .string "{CLEAR_TO 0}$" - - .incbin "graphics/unknown/unknown_3B555C.bin" - - .align 2 -gOamData_83B557C:: @ 83B557C - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gUnknown_083B5584:: @ 83B5584 - .4byte 0x02008000 - .4byte 0x0200c000 - .4byte 0x02010000 - .4byte 0x02014000 - - .align 2 -gSpriteImageTable_83B5594:: @ 83B5594 - obj_frame_tiles 0x02008000, 0x800 - obj_frame_tiles 0x02008800, 0x800 - obj_frame_tiles 0x02009000, 0x800 - obj_frame_tiles 0x02009800, 0x800 - obj_frame_tiles 0x0200A000, 0x800 - obj_frame_tiles 0x0200A800, 0x800 - obj_frame_tiles 0x0200B000, 0x800 - obj_frame_tiles 0x0200B800, 0x800 - obj_frame_tiles 0x0200C000, 0x800 - obj_frame_tiles 0x0200C800, 0x800 - obj_frame_tiles 0x0200D000, 0x800 - obj_frame_tiles 0x0200D800, 0x800 - obj_frame_tiles 0x0200E000, 0x800 - obj_frame_tiles 0x0200E800, 0x800 - obj_frame_tiles 0x0200F000, 0x800 - obj_frame_tiles 0x0200F800, 0x800 - - .align 2 -gSpriteImageTable_83B5614:: @ 83B5614 - obj_frame_tiles 0x0200C000, 0x800 - obj_frame_tiles 0x0200C800, 0x800 - obj_frame_tiles 0x0200D000, 0x800 - obj_frame_tiles 0x0200D800, 0x800 - obj_frame_tiles 0x0200E000, 0x800 - obj_frame_tiles 0x0200E800, 0x800 - obj_frame_tiles 0x0200F000, 0x800 - obj_frame_tiles 0x0200F800, 0x800 - obj_frame_tiles 0x02010000, 0x800 - obj_frame_tiles 0x02010800, 0x800 - obj_frame_tiles 0x02011000, 0x800 - obj_frame_tiles 0x02011800, 0x800 - obj_frame_tiles 0x02012000, 0x800 - obj_frame_tiles 0x02012800, 0x800 - obj_frame_tiles 0x02013000, 0x800 - obj_frame_tiles 0x02013800, 0x800 - - .align 2 -gSpriteImageTable_83B5694:: @ 83B5694 - obj_frame_tiles 0x02010000, 0x800 - obj_frame_tiles 0x02010800, 0x800 - obj_frame_tiles 0x02011000, 0x800 - obj_frame_tiles 0x02011800, 0x800 - obj_frame_tiles 0x02012000, 0x800 - obj_frame_tiles 0x02012800, 0x800 - obj_frame_tiles 0x02013000, 0x800 - obj_frame_tiles 0x02013800, 0x800 - obj_frame_tiles 0x02014000, 0x800 - obj_frame_tiles 0x02014800, 0x800 - obj_frame_tiles 0x02015000, 0x800 - obj_frame_tiles 0x02015800, 0x800 - obj_frame_tiles 0x02016000, 0x800 - obj_frame_tiles 0x02016800, 0x800 - obj_frame_tiles 0x02017000, 0x800 - obj_frame_tiles 0x02017800, 0x800 - - .align 2 -gSpriteImageTable_83B5714:: @ 83B5714 - obj_frame_tiles 0x02014000, 0x800 - obj_frame_tiles 0x02014800, 0x800 - obj_frame_tiles 0x02015000, 0x800 - obj_frame_tiles 0x02015800, 0x800 - obj_frame_tiles 0x02016000, 0x800 - obj_frame_tiles 0x02016800, 0x800 - obj_frame_tiles 0x02017000, 0x800 - obj_frame_tiles 0x02017800, 0x800 - obj_frame_tiles 0x02018000, 0x800 - obj_frame_tiles 0x02018800, 0x800 - obj_frame_tiles 0x02019000, 0x800 - obj_frame_tiles 0x02019800, 0x800 - obj_frame_tiles 0x0201A000, 0x800 - obj_frame_tiles 0x0201A800, 0x800 - obj_frame_tiles 0x0201B000, 0x800 - obj_frame_tiles 0x0201B800, 0x800 - - .align 2 -gUnknown_083B5794:: @ 83B5794 - .4byte gSpriteImageTable_83B5594 - .4byte gSpriteImageTable_83B5614 - .4byte gSpriteImageTable_83B5694 - .4byte gSpriteImageTable_83B5714 - - .align 2 -gUnknown_083B57A4:: @ 83B57A4 - spr_template 0xFFFF, 0, gOamData_83B557C, NULL, gSpriteImageTable_83B5594, gDummySpriteAffineAnimTable, nullsub_59 - -gUnknown_083B57BC:: @ 83B57BC - .byte 0, 0, 0, 0 - .byte 187, 3, 213, 3 - .byte 190, 3, 216, 3 - .byte 193, 3, 219, 3 - .byte 196, 3, 222, 3 - .byte 199, 3, 225, 3 - .byte 202, 3, 228, 3 - .byte 205, 3, 231, 3 - .byte 208, 3, 234, 3 - .byte 211, 2, 237, 2 - - .align 2 -gUnknown_083B57E4:: @ 83B57E4 - .4byte DexText_SearchForPoke - .2byte 0, 5 - .4byte DexText_SwitchDex - .2byte 6, 5 - .4byte DexText_ReturnToDex - .2byte 12, 5 - - .align 2 -gUnknown_083B57FC:: @ 83B57FC - .4byte DexText_ListByABC - .byte 0, 2, 5, 5, 2, 12, 0, 0 - .4byte DexText_ListByColor - .byte 0, 4, 5, 5, 4, 12, 0, 0 - .4byte DexText_ListByType - .byte 0, 6, 5, 5, 6, 6, 0, 0 - .4byte DexText_ListByType - .byte 0, 6, 5, 11, 6, 6, 0, 0 - .4byte DexText_SelectDexList - .byte 0, 8, 5, 5, 8, 12, 0, 0 - .4byte DexText_SelectDexMode - .byte 0, 10, 5, 5, 10, 12, 0, 0 - .4byte DexText_ExecuteSearchSwitch - .byte 0, 12, 5, 0, 0, 0, 0, 0 - -gUnknown_083B5850:: @ 83B5850 - .byte 0xFF, 0xFF, 0xFF, 1 - .byte 0xFF, 0xFF, 0, 2 - .byte 0xFF, 3, 1, 4 - .byte 2, 0xFF, 1, 4 - .byte 0xFF, 0xFF, 2, 5 - .byte 0xFF, 0xFF, 4, 6 - .byte 0xFF, 0xFF, 5, 0xFF - -gUnknown_083B586C:: @ 83B586C - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 5 - .byte 0xFF, 0xFF, 4, 6 - .byte 0xFF, 0xFF, 5, 0xFF - -gUnknown_083B5888:: @ 83B5888 - .byte 0xFF, 0xFF, 0xFF, 1 - .byte 0xFF, 0xFF, 0, 2 - .byte 0xFF, 3, 1, 4 - .byte 2, 0xFF, 1, 4 - .byte 0xFF, 0xFF, 2, 6 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 4, 0xFF - -gUnknown_083B58A4:: @ 83B58A4 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 6 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0xFF, 0xFF, 4, 0xFF - - .align 2 -gUnknown_083B58C0:: @ 83B58C0 - .4byte DexText_HoennDex2, DexText_HoennDex - .4byte DexText_NationalDex2, DexText_NationalDex - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B58D8:: @ 83B58D8 - .4byte DexText_ListByNumber, DexText_NumericalMode - .4byte DexText_ListByABC2, DexText_ABCMode - .4byte DexText_ListByHeavyToLightest, DexText_HeaviestMode - .4byte DexText_ListByLightToHeaviest, DexText_LightestMode - .4byte DexText_ListByTallToSmallest, DexText_TallestMode - .4byte DexText_ListBySmallToTallest, DexText_SmallestMode - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B5910:: @ 83B5910 - .4byte DexText_Terminator5, DexText_DontSpecify - .4byte DexText_Terminator5, DexText_ABC - .4byte DexText_Terminator5, DexText_DEF - .4byte DexText_Terminator5, DexText_GHI - .4byte DexText_Terminator5, DexText_JKL - .4byte DexText_Terminator5, DexText_MNO - .4byte DexText_Terminator5, DexText_PQR - .4byte DexText_Terminator5, DexText_STU - .4byte DexText_Terminator5, DexText_VWX - .4byte DexText_Terminator5, DexText_YZ - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B5968:: @ 83B5968 - .4byte DexText_Terminator5, DexText_DontSpecify - .4byte DexText_Terminator5, DexText_Red - .4byte DexText_Terminator5, DexText_Blue - .4byte DexText_Terminator5, DexText_Yellow - .4byte DexText_Terminator5, DexText_Green - .4byte DexText_Terminator5, DexText_Black - .4byte DexText_Terminator5, DexText_Brown - .4byte DexText_Terminator5, DexText_Purple - .4byte DexText_Terminator5, DexText_Gray - .4byte DexText_Terminator5, DexText_White - .4byte DexText_Terminator5, DexText_Pink - .4byte 0x0, 0x0 - - .align 2 -gUnknown_083B59C8:: @ 83B59C8 - .4byte DexText_Terminator5, DexText_None - .4byte DexText_Terminator5, gTypeNames + TYPE_NORMAL * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FIGHTING * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FLYING * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_POISON * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GROUND * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ROCK * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_BUG * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GHOST * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_STEEL * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_FIRE * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_WATER * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_GRASS * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ELECTRIC * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_PSYCHIC * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_ICE * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_DRAGON * 7 - .4byte DexText_Terminator5, gTypeNames + TYPE_DARK * 7 - .4byte 0x0, 0x0 - -gUnknown_083B5A60:: @ 83B5A60 - .byte 0, 1 - -gUnknown_083B5A62:: @ 83B5A62 - .byte 0, 1, 2, 3, 4, 5 - -gUnknown_083B5A68:: @ 83B5A68 - .byte -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17 - - .align 2 -gUnknown_083B5A7C:: @ 83B5A7C - .4byte gUnknown_083B5910 - .byte 6, 7, 10, 0 - .4byte gUnknown_083B5968 - .byte 8, 9, 11, 0 - .4byte gUnknown_083B59C8 - .byte 10, 11, 18, 0 - .4byte gUnknown_083B59C8 - .byte 12, 13, 18, 0 - .4byte gUnknown_083B58D8 - .byte 4, 5, 6, 0 - .4byte gUnknown_083B58C0 - .byte 2, 3, 2, 0 - -gUnknown_083B5AAC:: @ 83B5AAC - .string "{STR_VAR_1}{CLEAR_TO 43}$" - -gUnknown_083B5AB2:: @ 83B5AB2 - .string "{STR_VAR_1}{CLEAR_TO 96}$" diff --git a/data/pokedex_entries.inc b/data/pokedex_entries.inc deleted file mode 100644 index f1c206e3c..000000000 --- a/data/pokedex_entries.inc +++ /dev/null @@ -1,4164 +0,0 @@ -DexDescription_Dummy_1: - .string "This is a newly discovered POKéMON.\nIt is currently under investigation.$" -DexDescription_Dummy_2: - .string "No detailed information is available\nat this time.$" - -DexDescription_Bulbasaur_1: - .string "BULBASAUR can be seen napping in\nbright sunlight.\nThere is a seed on its back.$" -DexDescription_Bulbasaur_2: - .string "By soaking up the sun’s rays, the seed\ngrows progressively larger.$" - -DexDescription_Ivysaur_1: - .string "There is a bud on this POKéMON’s back.\nTo support its weight, IVYSAUR’s legs\nand trunk grow thick and strong.$" -DexDescription_Ivysaur_2: - .string "If it starts spending more time lying\nin the sunlight, it’s a sign that the\nbud will bloom into a large flower soon.$" - -DexDescription_Venusaur_1: - .string "There is a large flower on VENUSAUR’s\nback. The flower is said to take on vivid\ncolors if it gets plenty of nutrition$" -DexDescription_Venusaur_2: - .string "and sunlight. The flower’s aroma\nsoothes the emotions of people.$" - -DexDescription_Charmander_1: - .string "The flame that burns at the tip of its\ntail is an indication of its emotions.\nThe flame wavers when CHARMANDER is$" -DexDescription_Charmander_2: - .string "enjoying itself. If the POKéMON becomes\nenraged, the flame burns fiercely.$" - -DexDescription_Charmeleon_1: - .string "CHARMELEON mercilessly destroys its\nfoes using its sharp claws.\nIf it encounters a strong foe, it turns$" -DexDescription_Charmeleon_2: - .string "aggressive. In this excited state, the\nflame at the tip of its tail flares with a\nbluish white color.$" - -DexDescription_Charizard_1: - .string "CHARIZARD flies around the sky in\nsearch of powerful opponents.\nIt breathes fire of such great heat$" -DexDescription_Charizard_2: - .string "that it melts anything. However, it\nnever turns its fiery breath on any\nopponent weaker than itself.$" - -DexDescription_Squirtle_1: - .string "SQUIRTLE’s shell is not merely used\nfor protection.\nThe shell’s rounded shape and the$" -DexDescription_Squirtle_2: - .string "grooves on its surface help minimize\nresistance in water, enabling this\nPOKéMON to swim at high speeds.$" - -DexDescription_Wartortle_1: - .string "Its tail is large and covered with a rich,\nthick fur. The tail becomes increasingly\ndeeper in color as WARTORTLE ages.$" -DexDescription_Wartortle_2: - .string "The scratches on its shell are evidence\nof this POKéMON’s toughness as a\nbattler.$" - -DexDescription_Blastoise_1: - .string "BLASTOISE has water spouts that\nprotrude from its shell. The water\nspouts are very accurate.$" -DexDescription_Blastoise_2: - .string "They can shoot bullets of water with\nenough accuracy to strike empty cans\nfrom a distance of over 160 feet.$" - -DexDescription_Caterpie_1: - .string "CATERPIE has a voracious appetite.\nIt can devour leaves bigger than its\nbody right before your eyes.$" -DexDescription_Caterpie_2: - .string "From its antenna, this POKéMON releases\na terrifically strong odor.$" - -DexDescription_Metapod_1: - .string "The shell covering this POKéMON’s body\nis as hard as an iron slab.\nMETAPOD does not move very much.$" -DexDescription_Metapod_2: - .string "It stays still because it is preparing\nits soft innards for evolution inside\nthe hard shell.$" - -DexDescription_Butterfree_1: - .string "BUTTERFREE has a superior ability to\nsearch for delicious honey from\nflowers.$" -DexDescription_Butterfree_2: - .string "It can even search out, extract, and\ncarry honey from flowers that are\nblooming over six miles from its nest.$" - -DexDescription_Weedle_1: - .string "WEEDLE has an extremely acute sense\nof smell.\nIt is capable of distinguishing its$" -DexDescription_Weedle_2: - .string "favorite kinds of leaves from those it\ndislikes just by sniffing with its big\nred proboscis (nose).$" - -DexDescription_Kakuna_1: - .string "KAKUNA remains virtually immobile as it\nclings to a tree. However, on the\ninside, it is extremely busy as it$" -DexDescription_Kakuna_2: - .string "prepares for its coming evolution.\nThis is evident from how hot the shell\nbecomes to the touch.$" - -DexDescription_Beedrill_1: - .string "BEEDRILL is extremely territorial.\nNo one should ever approach its nest -\nthis is for their own safety.$" -DexDescription_Beedrill_2: - .string "If angered, they will attack in a furious\nswarm.$" - -DexDescription_Pidgey_1: - .string "PIDGEY has an extremely sharp sense\nof direction.\nIt is capable of unerringly returning$" -DexDescription_Pidgey_2: - .string "home to its nest, however far it may be\nremoved from its familiar surroundings.$" - -DexDescription_Pidgeotto_1: - .string "PIDGEOTTO claims a large area as its\nown territory. This POKéMON flies\naround, patrolling its living space.$" -DexDescription_Pidgeotto_2: - .string "If its territory is violated, it shows\nno mercy in thoroughly punishing the\nfoe with its sharp claws.$" - -DexDescription_Pidgeot_1: - .string "This POKéMON has a dazzling plumage of\nbeautifully glossy feathers.\nMany TRAINERS are captivated by the$" -DexDescription_Pidgeot_2: - .string "striking beauty of the feathers on its\nhead, compelling them to choose PIDGEOT\nas their POKéMON.$" - -DexDescription_Rattata_1: - .string "RATTATA is cautious in the extreme.\nEven while it is asleep, it constantly\nlistens by moving its ears around.$" -DexDescription_Rattata_2: - .string "It is not picky about where it lives -\nit will make its nest anywhere.$" - -DexDescription_Raticate_1: - .string "RATICATE’s sturdy fangs grow steadily.\nTo keep them ground down, it gnaws\non rocks and logs.$" -DexDescription_Raticate_2: - .string "It may even chew on the walls of\nhouses.$" - -DexDescription_Spearow_1: - .string "SPEAROW has a very loud cry that can\nbe heard over half a mile away.\nIf its high, keening cry is heard$" -DexDescription_Spearow_2: - .string "echoing all around, it is a sign that\nthey are warning each other of danger.$" - -DexDescription_Fearow_1: - .string "FEAROW is recognized by its long neck\nand elongated beak.\nThey are conveniently shaped for$" -DexDescription_Fearow_2: - .string "catching prey in soil or water.\nIt deftly moves its long and skinny\nbeak to pluck prey.$" - -DexDescription_Ekans_1: - .string "EKANS curls itself up in a spiral while\nit rests.\nAssuming this position allows it to$" -DexDescription_Ekans_2: - .string "quickly respond to a threat from any\ndirection with a glare from its upraised\nhead.$" - -DexDescription_Arbok_1: - .string "This POKéMON is terrifically strong in\norder to constrict things with its body.\nIt can even flatten steel oil drums.$" -DexDescription_Arbok_2: - .string "Once ARBOK wraps its body around its\nfoe, escaping its crunching embrace is\nimpossible.$" - - .ifdef SAPPHIRE -DexDescription_Pikachu_1: - .string "This POKéMON has electricity-storing\npouches on its cheeks. These appear to\nbecome electrically charged during the$" -DexDescription_Pikachu_2: - .string "night while PIKACHU sleeps.\nIt occasionally discharges electricity\nwhen it is dozy after waking up.$" - .else -DexDescription_Pikachu_1: - .string "Whenever PIKACHU comes across\nsomething new, it blasts it with a jolt\nof electricity.$" -DexDescription_Pikachu_2: - .string "If you come across a blackened berry,\nit’s evidence that this POKéMON\nmistook the intensity of its charge.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Raichu_1: - .string "This POKéMON exudes a weak electrical\ncharge from all over its body that makes\nit take on a slight glow in darkness.$" -DexDescription_Raichu_2: - .string "RAICHU searches for electricity by\nplanting its tail in the ground.$" - .else -DexDescription_Raichu_1: - .string "If the electrical sacks become\nexcessively charged, RAICHU plants its\ntail in the ground and discharges.$" -DexDescription_Raichu_2: - .string "Scorched patches of ground will be\nfound near this POKéMON’s nest.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sandshrew_1: - .string "SANDSHREW has a very dry hide that is\nextremely tough. The POKéMON can roll\ninto a ball that repels any attack.$" -DexDescription_Sandshrew_2: - .string "At night, it burrows into the desert\nsand to sleep.$" - .else -DexDescription_Sandshrew_1: - .string "SANDSHREW’s body is configured to\nabsorb water without waste, enabling it\nto survive in an arid desert.$" -DexDescription_Sandshrew_2: - .string "This POKéMON curls up to protect itself\nfrom its enemies.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sandslash_1: - .string "SANDSLASH can roll up its body as if it\nwere a ball covered with large spikes.\nIn battle, this POKéMON will try to make$" -DexDescription_Sandslash_2: - .string "the foe flinch by jabbing it with its\nspines. It then leaps at the stunned\nfoe to tear wildly with its sharp claws.$" - .else -DexDescription_Sandslash_1: - .string "SANDSLASH’s body is covered by tough\nspikes, which are hardened sections of\nits hide. Once a year, the old spikes fall$" -DexDescription_Sandslash_2: - .string "out, to be replaced with new spikes that\ngrow out from beneath the old ones.$" - .endif - -DexDescription_NidoranF_1: - .string "NIDORAN has barbs that secrete a\npowerful poison. They are thought to\nhave developed as protection for this$" -DexDescription_NidoranF_2: - .string "small-bodied POKéMON.\nWhen enraged, it releases a horrible\ntoxin from its horn.$" - -DexDescription_Nidorina_1: - .string "When NIDORINA are with their friends or\nfamily, they keep their barbs tucked\naway to prevent hurting each other.$" -DexDescription_Nidorina_2: - .string "This POKéMON appears to become\nnervous if separated from the others.$" - -DexDescription_Nidoqueen_1: - .string "NIDOQUEEN’s body is encased in\nextremely hard scales. It is adept at\nsending foes flying with harsh tackles.$" -DexDescription_Nidoqueen_2: - .string "This POKéMON is at its strongest when\nit is defending its young.$" - -DexDescription_NidoranM_1: - .string "The male NIDORAN has developed\nmuscles for moving its ears. Thanks to\nthem, the ears can be freely moved in$" -DexDescription_NidoranM_2: - .string "any direction. Even the slightest sound\ndoes not escape this POKéMON’s notice.$" - -DexDescription_Nidorino_1: - .string "NIDORINO has a horn that is harder than\na diamond. If it senses a hostile\npresence, all the barbs on its back$" -DexDescription_Nidorino_2: - .string "bristle up at once, and it challenges\nthe foe with all its might.$" - -DexDescription_Nidoking_1: - .string "NIDOKING’s thick tail packs enormously\ndestructive power. With one swing, it\ncan topple a metal transmission tower.$" -DexDescription_Nidoking_2: - .string "Once this POKéMON goes on a rampage,\nthere is no stopping it.$" - -DexDescription_Clefairy_1: - .string "On every night of a full moon, groups of\nthis POKéMON come out to play.\nWhen dawn arrives, the tired CLEFAIRY$" -DexDescription_Clefairy_2: - .string "return to their quiet mountain retreats\nand go to sleep nestled up against each\nother.$" - -DexDescription_Clefable_1: - .string "CLEFABLE moves by skipping lightly as if\nit were flying using its wings. Its\nbouncy step lets it even walk on water.$" -DexDescription_Clefable_2: - .string "It is known to take strolls on lakes on\nquiet, moonlit nights.$" - - .ifdef SAPPHIRE -DexDescription_Vulpix_1: - .string "Inside VULPIX’s body burns a flame that\nnever goes out. During the daytime,\nwhen the temperatures rise, this$" -DexDescription_Vulpix_2: - .string "POKéMON releases flames from its mouth\nto prevent its body from growing too\nhot.$" - .else -DexDescription_Vulpix_1: - .string "At the time of its birth, VULPIX has one\nwhite tail. The tail separates into six\nif this POKéMON receives plenty of love$" -DexDescription_Vulpix_2: - .string "from its TRAINER.\nThe six tails become magnificently\ncurled.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ninetales_1: - .string "Legend has it that NINETALES came into\nbeing when nine wizards possessing\nsacred powers merged into one.$" -DexDescription_Ninetales_2: - .string "This POKéMON is highly intelligent - it\ncan understand human speech.$" - .else -DexDescription_Ninetales_1: - .string "NINETALES casts a sinister light from\nits bright red eyes to gain total\ncontrol over its foe’s mind.$" -DexDescription_Ninetales_2: - .string "This POKéMON is said to live for a\nthousand years.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Jigglypuff_1: - .string "When this POKéMON sings, it never\npauses to breathe. If it is in a battle\nagainst an opponent that does not$" -DexDescription_Jigglypuff_2: - .string "easily fall asleep, JIGGLYPUFF cannot\nbreathe, endangering its life.$" - .else -DexDescription_Jigglypuff_1: - .string "JIGGLYPUFF’s vocal chords can freely\nadjust the wavelength of its voice.\nThis POKéMON uses this ability to sing$" -DexDescription_Jigglypuff_2: - .string "at precisely the right wavelength to\nmake its foes most drowsy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wigglytuff_1: - .string "WIGGLYTUFF’s body is very flexible.\nBy inhaling deeply, this POKéMON can\ninflate itself seemingly without end.$" -DexDescription_Wigglytuff_2: - .string "Once inflated, WIGGLYTUFF bounces\nalong lightly like a balloon.$" - .else -DexDescription_Wigglytuff_1: - .string "WIGGLYTUFF has large, saucerlike eyes.\nThe surfaces of its eyes are always\ncovered with a thin layer of tears.$" -DexDescription_Wigglytuff_2: - .string "If any dust gets in this POKéMON’s\neyes, it is quickly washed away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zubat_1: - .string "ZUBAT avoids sunlight because exposure\ncauses it to become unhealthy.\nDuring the daytime, it stays in caves or$" -DexDescription_Zubat_2: - .string "under the eaves of old houses, sleeping\nwhile hanging upside down.$" - .else -DexDescription_Zubat_1: - .string "ZUBAT remains quietly unmoving in a\ndark spot during the bright daylight\nhours. It does so because prolonged$" -DexDescription_Zubat_2: - .string "exposure to the sun causes its body to\nbecome slightly burned.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golbat_1: - .string "GOLBAT bites down on prey with its four\nfangs and drinks the victim’s blood.\nIt becomes active on inky dark$" -DexDescription_Golbat_2: - .string "moonless nights, flying around to\nattack people and POKéMON.$" - .else -DexDescription_Golbat_1: - .string "GOLBAT loves to drink the blood of\nliving things. It is particularly active\nin the pitch black of night.$" -DexDescription_Golbat_2: - .string "This POKéMON flits around in the night\nskies, seeking fresh blood.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Oddish_1: - .string "ODDISH searches for fertile, nutrient-\nrich soil, then plants itself.\nDuring the daytime, while it is planted,$" -DexDescription_Oddish_2: - .string "this POKéMON’s feet are thought to\nchange shape and become similar to\nthe roots of trees.$" - .else -DexDescription_Oddish_1: - .string "During the daytime, ODDISH buries\nitself in soil to absorb nutrients from \nthe ground using its entire body.$" -DexDescription_Oddish_2: - .string "The more fertile the soil, the glossier\nits leaves become.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gloom_1: - .string "From its mouth GLOOM drips honey that\nsmells absolutely horrible.\nApparently, it loves the horrid stench.$" -DexDescription_Gloom_2: - .string "It sniffs the noxious fumes and then \ndrools even more of its honey.$" - .else -DexDescription_Gloom_1: - .string "GLOOM releases a foul fragrance from\nthe pistil of its flower. When faced\nwith danger, the stench worsens.$" -DexDescription_Gloom_2: - .string "If this POKéMON is feeling calm and\nsecure, it does not release its usual\nstinky aroma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vileplume_1: - .string "VILEPLUME has the world’s largest\npetals. They are used to attract prey\nthat are then doused with toxic spores.$" -DexDescription_Vileplume_2: - .string "Once the prey are immobilized, this\nPOKéMON catches and devours them.$" - .else -DexDescription_Vileplume_1: - .string "VILEPLUME’s toxic pollen triggers\natrocious allergy attacks. That’s why\nit is advisable never to approach any$" -DexDescription_Vileplume_2: - .string "attractive flowers in a jungle, however\npretty they may be.$" - .endif - - .ifdef SAPPHIRE - - .if REVISION >= 1 -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$" - .else -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG POKéMON host. They are highly\nvalued as a medicine for extending life.$" - .endif @ REVISION >= 1 - - .else - - .if REVISION >= 1 -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from this$" -DexDescription_Paras_2: - .string "BUG/GRASS POKéMON host. They are\nhighly valued as a medicine for\nextending life.$" - .else -DexDescription_Paras_1: - .string "PARAS has parasitic mushrooms growing\non its back called tochukaso. They grow\nlarge by drawing nutrients from the BUG$" -DexDescription_Paras_2: - .string "POKéMON host. They are highly valued as\na medicine for extending life.$" - .endif @ REVISION >= 1 - - .endif @ SAPPHIRE - -DexDescription_Parasect_1: - .string "PARASECT is known to infest large trees\nen masse and drain nutrients from the\nlower trunk and roots.$" -DexDescription_Parasect_2: - .string "When an infested tree dies, they move\nonto another tree all at once.$" - -DexDescription_Venonat_1: - .string "VENONAT is said to have evolved with\na coat of thin, stiff hair that covers\nits entire body for protection.$" -DexDescription_Venonat_2: - .string "It possesses large eyes that never fail\nto spot even miniscule prey.$" - -DexDescription_Venomoth_1: - .string "VENOMOTH is nocturnal - it is a POKéMON\nthat only becomes active at night.\nIts favorite prey are small insects$" -DexDescription_Venomoth_2: - .string "that gather around streetlights,\nattracted by the light in the darkness.$" - -DexDescription_Diglett_1: - .string "DIGLETT are raised in most farms.\nThe reason is simple - wherever this\nPOKéMON burrows, the soil is left$" -DexDescription_Diglett_2: - .string "perfectly tilled for planting crops.\nThis soil is made ideal for growing\ndelicious vegetables.$" - -DexDescription_Dugtrio_1: - .string "DUGTRIO are actually triplets that\nemerged from one body. As a result,\neach triplet thinks exactly like the$" -DexDescription_Dugtrio_2: - .string "other two triplets.\nThey work cooperatively to burrow\nendlessly.$" - -DexDescription_Meowth_1: - .string "MEOWTH withdraws its sharp claws into\nits paws to slinkily sneak about without\nmaking any incriminating footsteps.$" -DexDescription_Meowth_2: - .string "For some reason, this POKéMON loves\nshiny coins that glitter with light.$" - -DexDescription_Persian_1: - .string "PERSIAN has six bold whiskers that give\nit a look of toughness. The whiskers \nsense air movements to determine what$" -DexDescription_Persian_2: - .string "is in the POKéMON’s surrounding\nvicinity. It becomes docile if grabbed\nby the whiskers.$" - - .ifdef SAPPHIRE -DexDescription_Psyduck_1: - .string "If it uses its mysterious power,\nPSYDUCK can’t remember having done so.\nIt apparently can’t form a memory of$" -DexDescription_Psyduck_2: - .string "such an event because it goes into\nan altered state that is much like\ndeep sleep.$" - .else -DexDescription_Psyduck_1: - .string "PSYDUCK uses a mysterious power.\nWhen it does so, this POKéMON \ngenerates brain waves that are$" -DexDescription_Psyduck_2: - .string "supposedly only seen in sleepers.\nThis discovery spurred controversy\namong scholars.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golduck_1: - .string "GOLDUCK is the fastest swimmer among\nall POKéMON. It swims effortlessly, even\nin a rough, stormy sea.$" -DexDescription_Golduck_2: - .string "It sometimes rescues people from\nwrecked ships floundering in high seas.$" - .else -DexDescription_Golduck_1: - .string "The webbed flippers on its forelegs and\nhind legs and the streamlined body of\nGOLDUCK give it frightening speed.$" -DexDescription_Golduck_2: - .string "This POKéMON is definitely much faster\nthan even the most athletic swimmer.$" - .endif - -DexDescription_Mankey_1: - .string "When MANKEY starts shaking and its\nnasal breathing turns rough, it’s a sure\nsign that it is becoming angry.$" -DexDescription_Mankey_2: - .string "However, because it goes into a\ntowering rage almost instantly, it is\nimpossible for anyone to flee its wrath.$" - -DexDescription_Primeape_1: - .string "When PRIMEAPE becomes furious, its\nblood circulation is boosted. In turn,\nits muscles are made even stronger.$" -DexDescription_Primeape_2: - .string "However, it also becomes much less\nintelligent at the same time.$" - -DexDescription_Growlithe_1: - .string "GROWLITHE has a superb sense of smell.\nOnce it smells anything, this POKéMON\nwon’t forget the scent, no matter what.$" -DexDescription_Growlithe_2: - .string "It uses its advanced olfactory sense\nto determine the emotions of other\nliving things.$" - -DexDescription_Arcanine_1: - .string "ARCANINE is known for its high speed.\nIt is said to be capable of running over\n6,200 miles in a single day and night.$" -DexDescription_Arcanine_2: - .string "The fire that blazes wildly within this\nPOKéMON’s body is its source of power.$" - -DexDescription_Poliwag_1: - .string "POLIWAG has a very thin skin. It is\npossible to see the POKéMON’s spiral\ninnards right through the skin.$" -DexDescription_Poliwag_2: - .string "Despite its thinness, however, the skin\nis also very flexible. Even sharp fangs\nbounce right off it.$" - -DexDescription_Poliwhirl_1: - .string "The surface of POLIWHIRL’s body is\nalways wet and slick with an oily fluid.\nBecause of this greasy covering, it can$" -DexDescription_Poliwhirl_2: - .string "easily slip and slide out of the clutches\nof any enemy in battle.$" - -DexDescription_Poliwrath_1: - .string "POLIWRATH’s highly developed, brawny\nmuscles never grow fatigued, however\nmuch it exercises.$" -DexDescription_Poliwrath_2: - .string "It is so tirelessly strong, this POKéMON\ncan swim back and forth across the\nPacific Ocean without effort.$" - - .ifdef SAPPHIRE -DexDescription_Abra_1: - .string "ABRA needs to sleep for eighteen hours\na day. If it doesn’t, this POKéMON loses\nits ability to use telekinetic powers.$" -DexDescription_Abra_2: - .string "If it is attacked, ABRA escapes using\nTELEPORT while it is still sleeping.$" - .else -DexDescription_Abra_1: - .string "ABRA sleeps for eighteen hours a day.\nHowever, it can sense the presence of\nfoes even while it is sleeping.$" -DexDescription_Abra_2: - .string "In such a situation, this POKéMON\nimmediately teleports to safety.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kadabra_1: - .string "KADABRA holds a silver spoon in its\nhand. The spoon is used to amplify the\nalpha waves in its brain.$" -DexDescription_Kadabra_2: - .string "Without the spoon, the POKéMON is said\nto be limited to half the usual amount\nof its telekinetic powers.$" - .else -DexDescription_Kadabra_1: - .string "KADABRA emits a peculiar alpha wave\nif it develops a headache. Only those\npeople with a particularly strong$" -DexDescription_Kadabra_2: - .string "psyche can hope to become a TRAINER\nof this POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Alakazam_1: - .string "ALAKAZAM’s brain continually grows,\ninfinitely multiplying brain cells.\nThis amazing brain gives this POKéMON$" -DexDescription_Alakazam_2: - .string "an astoundingly high IQ of 5,000.\nIt has a thorough memory of everything\nthat has occurred in the world.$" - .else -DexDescription_Alakazam_1: - .string "ALAKAZAM’s brain continually grows,\nmaking its head far too heavy to\nsupport with its neck.$" -DexDescription_Alakazam_2: - .string "This POKéMON holds its head up using\nits psychokinetic power instead.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machop_1: - .string "MACHOP exercises by hefting around\na GRAVELER as if it were a barbell.\nThere are some MACHOP that travel$" -DexDescription_Machop_2: - .string "the world in a quest to master all\nkinds of martial arts.$" - .else -DexDescription_Machop_1: - .string "MACHOP’s muscles are special - they\nnever get sore no matter how much they\nare used in exercise.$" -DexDescription_Machop_2: - .string "This POKéMON has sufficient power to\nhurl a hundred adult humans.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machoke_1: - .string "MACHOKE undertakes bodybuilding every\nday even as it helps people with tough,\nphysically demanding labor.$" -DexDescription_Machoke_2: - .string "On its days off, this POKéMON heads to\nthe fields and mountains to exercise\nand train.$" - .else -DexDescription_Machoke_1: - .string "MACHOKE’s thoroughly toned muscles\npossess the hardness of steel.\nThis POKéMON has so much strength,$" -DexDescription_Machoke_2: - .string "it can easily hold aloft a sumo wrestler\non just one finger.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Machamp_1: - .string "MACHAMP is known as the POKéMON that\nhas mastered every kind of martial arts.\nIf it grabs hold of the foe with its four$" -DexDescription_Machamp_2: - .string "arms, the battle is all but over.\nThe hapless foe is thrown far over the\nhorizon.$" - .else -DexDescription_Machamp_1: - .string "MACHAMP has the power to hurl anything\naside. However, trying to do any work\nrequiring care and dexterity causes$" -DexDescription_Machamp_2: - .string "its arms to get tangled.\nThis POKéMON tends to leap into action\nbefore it thinks.$" - .endif - -DexDescription_Bellsprout_1: - .string "BELLSPROUT’s thin and flexible body\nlets it bend and sway to avoid any\nattack, however strong it may be.$" -DexDescription_Bellsprout_2: - .string "From its mouth, this POKéMON spits a\ncorrosive fluid that melts even iron.$" - -DexDescription_Weepinbell_1: - .string "WEEPINBELL has a large hook on its rear\nend. At night, the POKéMON hooks on to\na tree branch and goes to sleep.$" -DexDescription_Weepinbell_2: - .string "If it moves around in its sleep, it may\nwake up to find itself on the ground.$" - -DexDescription_Victreebel_1: - .string "VICTREEBEL has a long vine that\nextends from its head. This vine is\nwaved and flicked about as if it were$" -DexDescription_Victreebel_2: - .string "an animal to attract prey. When an\nunsuspecting prey draws near, this\nPOKéMON swallows it whole.$" - - .ifdef SAPPHIRE -DexDescription_Tentacool_1: - .string "TENTACOOL absorbs sunlight and\nrefracts it using water inside its body\nto convert it into beam energy.$" -DexDescription_Tentacool_2: - .string "This POKéMON shoots beams from its\ncrystal-like eyes.$" - .else -DexDescription_Tentacool_1: - .string "TENTACOOL’s body is largely composed\nof water. If it is removed from the\nsea, it dries up like parchment.$" -DexDescription_Tentacool_2: - .string "If this POKéMON happens to become\ndehydrated, put it back into the sea.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Tentacruel_1: - .string "TENTACRUEL has tentacles that can be\nfreely elongated and shortened at will.\nIt ensnares prey with its tentacles and$" -DexDescription_Tentacruel_2: - .string "weakens the prey by dosing it with a\nharsh toxin. It can catch up to 80\nprey at the same time.$" - .else -DexDescription_Tentacruel_1: - .string "TENTACRUEL has large red orbs on its\nhead. The orbs glow before lashing the\nvicinity with a harsh ultrasonic blast.$" -DexDescription_Tentacruel_2: - .string "This POKéMON’s outburst creates rough\nwaves around it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Geodude_1: - .string "When GEODUDE sleeps deeply, it buries\nitself halfway into the ground.\nIt will not awaken even if hikers step$" -DexDescription_Geodude_2: - .string "on it unwittingly.\nIn the morning, this POKéMON rolls\ndownhill in search of food.$" - .else -DexDescription_Geodude_1: - .string "The longer a GEODUDE lives, the more\nits edges are chipped and worn away,\nmaking it more rounded in appearance.$" -DexDescription_Geodude_2: - .string "However, this POKéMON’s heart will\nremain hard, craggy, and rough always.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Graveler_1: - .string "Rocks are GRAVELER’s favorite food.\nThis POKéMON will climb a mountain from\nthe base to the summit, crunchingly$" -DexDescription_Graveler_2: - .string "feasting on rocks all the while.\nUpon reaching the peak, it rolls back\ndown to the bottom.$" - .else -DexDescription_Graveler_1: - .string "GRAVELER grows by feeding on rocks.\nApparently, it prefers to eat rocks\nthat are covered in moss.$" -DexDescription_Graveler_2: - .string "This POKéMON eats its way through\na ton of rocks on a daily basis.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Golem_1: - .string "GOLEM is known for rolling down from\nmountains. To prevent them from rolling\ninto the homes of people downhill,$" -DexDescription_Golem_2: - .string "grooves have been dug into the sides of\nmountains to serve as guideways for\ndiverting this POKéMON’s course.$" - .else -DexDescription_Golem_1: - .string "GOLEM live up on mountains.\nIf there is a large earthquake, these\nPOKéMON will come rolling down off$" -DexDescription_Golem_2: - .string "the mountains en masse to the\nfoothills below.$" - .endif - -DexDescription_Ponyta_1: - .string "PONYTA is very weak at birth.\nIt can barely stand up.\nThis POKéMON becomes stronger by$" -DexDescription_Ponyta_2: - .string "stumbling and falling to keep up with\nits parent.$" - -DexDescription_Rapidash_1: - .string "RAPIDASH usually can be seen casually\ncantering in the fields and plains.\nHowever, when this POKéMON turns$" -DexDescription_Rapidash_2: - .string "serious, its fiery manes flare and blaze\nas it gallops its way up to 150 mph.$" - -DexDescription_Slowpoke_1: - .string "SLOWPOKE uses its tail to catch prey by\ndipping it in water at the side of a\nriver.$" -DexDescription_Slowpoke_2: - .string "However, this POKéMON often forgets\nwhat it’s doing and often spends entire\ndays just loafing at water’s edge.$" - -DexDescription_Slowbro_1: - .string "SLOWBRO’s tail has a SHELLDER firmly\nattached with a bite. As a result, the\ntail can’t be used for fishing anymore.$" -DexDescription_Slowbro_2: - .string "This causes SLOWBRO to grudgingly swim\nand catch prey instead.$" - - .ifdef SAPPHIRE -DexDescription_Magnemite_1: - .string "MAGNEMITE floats in the air by emitting\nelectromagnetic waves from the units\nat its sides. These waves block gravity.$" -DexDescription_Magnemite_2: - .string "This POKéMON becomes incapable of\nflight if its internal electrical supply\nis depleted.$" - .else -DexDescription_Magnemite_1: - .string "MAGNEMITE attaches itself to power\nlines to feed on electricity.\nIf your house has a power outage,$" -DexDescription_Magnemite_2: - .string "check your circuit breakers. You may\nfind a large number of this POKéMON\nclinging to the breaker box.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Magneton_1: - .string "MAGNETON emits a powerful magnetic\nforce that is fatal to electronics and\nprecision instruments. Because of$" -DexDescription_Magneton_2: - .string "this, it is said that some towns warn\npeople to keep this POKéMON inside\na POKé BALL.$" - .else -DexDescription_Magneton_1: - .string "MAGNETON emits a powerful magnetic\nforce that is fatal to mechanical\ndevices. As a result, large cities sound$" -DexDescription_Magneton_2: - .string "sirens to warn citizens of large-scale\noutbreaks of this POKéMON.$" - .endif - -DexDescription_Farfetchd_1: - .string "FARFETCH’D is always seen with a stick\nfrom a plant of some sort. Apparently,\nthere are good sticks and bad sticks.$" -DexDescription_Farfetchd_2: - .string "This POKéMON has been known to fight\nwith others over sticks.$" - - .ifdef SAPPHIRE -DexDescription_Doduo_1: - .string "DODUO’s two heads contain completely\nidentical brains.\nA scientific study reported that on$" -DexDescription_Doduo_2: - .string "rare occasions, there will be examples\nof this POKéMON possessing different\nsets of brains.$" - .else -DexDescription_Doduo_1: - .string "DODUO’s two heads never sleep at the\nsame time.\nIts two heads take turns sleeping,$" -DexDescription_Doduo_2: - .string "so one head can always keep watch for\nenemies while the other one sleeps.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dodrio_1: - .string "Apparently, the heads aren’t the only\nparts of the body that DODRIO has\nthree of.$" -DexDescription_Dodrio_2: - .string "It has three sets of hearts and lungs\nas well, so it is capable of running long\ndistances without rest.$" - .else -DexDescription_Dodrio_1: - .string "Watch out if DODRIO’s three heads are\nlooking in three separate directions.\nIt’s a sure sign that it is on its guard.$" -DexDescription_Dodrio_2: - .string "Don’t go near this POKéMON if it’s being\nwary - it may decide to peck you.$" - .endif - -DexDescription_Seel_1: - .string "SEEL hunts for prey in the frigid sea\nunderneath sheets of ice.\nWhen it needs to breathe, it punches$" -DexDescription_Seel_2: - .string "a hole through the ice with the\nsharply protruding section of its head.$" - -DexDescription_Dewgong_1: - .string "DEWGONG loves to snooze on bitterly\ncold ice.\nThe sight of this POKéMON sleeping on$" -DexDescription_Dewgong_2: - .string "a glacier was mistakenly thought to be\na mermaid by a mariner long ago.$" - - .ifdef SAPPHIRE -DexDescription_Grimer_1: - .string "GRIMER emerged from the sludge that\nsettled on a polluted seabed.\nThis POKéMON loves anything filthy.$" -DexDescription_Grimer_2: - .string "It constantly leaks a horribly germ-\ninfested fluid from all over its body.$" - .else -DexDescription_Grimer_1: - .string "GRIMER’s sludgy and rubbery body can\nbe forced through any opening, however\nsmall it may be.$" -DexDescription_Grimer_2: - .string "This POKéMON enters sewer pipes to\ndrink filthy wastewater.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Muk_1: - .string "This POKéMON’s favorite food is\nanything that is repugnantly filthy.\nIn dirty towns where people think$" -DexDescription_Muk_2: - .string "nothing of throwing away litter on the\nstreets, MUK are certain to gather.$" - .else -DexDescription_Muk_1: - .string "From MUK’s body seeps a foul fluid that\ngives off a nose-bendingly horrible\nstench.$" -DexDescription_Muk_2: - .string "Just one drop of this POKéMON’s body\nfluid can turn a pool stagnant and\nrancid.$" - .endif - -DexDescription_Shellder_1: - .string "At night, this POKéMON uses its broad\ntongue to burrow a hole in the seafloor\nsand and then sleep in it.$" -DexDescription_Shellder_2: - .string "While it is sleeping, SHELLDER closes its\nshell, but leaves its tongue hanging\nout.$" - -DexDescription_Cloyster_1: - .string "CLOYSTER is capable of swimming in the\nsea. It does so by swallowing water,\nthen jetting it out toward the rear.$" -DexDescription_Cloyster_2: - .string "This POKéMON shoots spikes from its\nshell using the same system.$" - -DexDescription_Gastly_1: - .string "GASTLY is largely composed of gaseous\nmatter. When exposed to a strong wind,\nthe gaseous body quickly dwindles away.$" -DexDescription_Gastly_2: - .string "Groups of this POKéMON cluster under\nthe eaves of houses to escape the\nravages of wind.$" - -DexDescription_Haunter_1: - .string "HAUNTER is a dangerous POKéMON.\nIf one beckons you while floating in\ndarkness, you must never approach it.$" -DexDescription_Haunter_2: - .string "This POKéMON will try to lick you with its\ntongue and steal your life away.$" - -DexDescription_Gengar_1: - .string "Sometimes, on a dark night, your shadow\nthrown by a streetlight will suddenly\nand startlingly overtake you.$" -DexDescription_Gengar_2: - .string "It is actually a GENGAR running past\nyou, pretending to be your shadow.$" - -DexDescription_Onix_1: - .string "ONIX has a magnet in its brain. It acts\nas a compass so that this POKéMON does\nnot lose direction while it is tunneling.$" -DexDescription_Onix_2: - .string "As it grows older, its body becomes\nincreasingly rounder and smoother.$" - -DexDescription_Drowzee_1: - .string "If your nose becomes itchy while you\nare sleeping, it’s a sure sign that one\nof these POKéMON is standing above$" -DexDescription_Drowzee_2: - .string "your pillow and trying to eat your dream\nthrough your nostrils.$" - -DexDescription_Hypno_1: - .string "HYPNO holds a pendulum in its hand.\nThe arcing movement and glitter of the\npendulum lull the foe into a deep state$" -DexDescription_Hypno_2: - .string "of hypnosis.\nWhile this POKéMON searches for prey,\nit polishes the pendulum.$" - -DexDescription_Krabby_1: - .string "KRABBY live on beaches, burrowed inside\nholes dug into the sand.\nOn sandy beaches with little in the way$" -DexDescription_Krabby_2: - .string "of food, these POKéMON can be seen\nsquabbling with each other over\nterritory.$" - -DexDescription_Kingler_1: - .string "KINGLER has an enormous, oversized\nclaw. It waves this huge claw in the\nair to communicate with others.$" -DexDescription_Kingler_2: - .string "However, because the claw is so heavy,\nthe POKéMON quickly tires.$" - - .ifdef SAPPHIRE -DexDescription_Voltorb_1: - .string "VOLTORB is extremely sensitive - it\nexplodes at the slightest of shocks.\nIt is rumored that it was first created$" -DexDescription_Voltorb_2: - .string "when a POKé BALL was exposed to a\npowerful pulse of energy.$" - .else -DexDescription_Voltorb_1: - .string "VOLTORB was first sighted at a company\nthat manufactures POKé BALLS.\nThe link between that sighting and$" -DexDescription_Voltorb_2: - .string "the fact that this POKéMON looks very\nsimilar to a POKé BALL remains a\nmystery.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Electrode_1: - .string "One of ELECTRODE’s characteristics is\nits attraction to electricity.\nIt is a problematical POKéMON that$" -DexDescription_Electrode_2: - .string "congregates mostly at electrical\npower plants to feed on electricity\nthat has just been generated.$" - .else -DexDescription_Electrode_1: - .string "ELECTRODE eats electricity in the\natmosphere. On days when lightning\nstrikes, you can see this POKéMON$" -DexDescription_Electrode_2: - .string "exploding all over the place from\neating too much electricity.$" - .endif - -DexDescription_Exeggcute_1: - .string "This POKéMON consists of six eggs that\nform a closely knit cluster. The six eggs\nattract each other and spin around.$" -DexDescription_Exeggcute_2: - .string "When cracks increasingly appear on the\neggs, EXEGGCUTE is close to evolution.$" - -DexDescription_Exeggutor_1: - .string "EXEGGUTOR originally came from the\ntropics. Its heads steadily grow larger\nfrom exposure to strong sunlight.$" -DexDescription_Exeggutor_2: - .string "It is said that when the heads fall off,\nthey group together to form EXEGGCUTE.$" - -DexDescription_Cubone_1: - .string "CUBONE pines for the mother it will\nnever see again. Seeing a likeness of\nits mother in the full moon, it cries.$" -DexDescription_Cubone_2: - .string "The stains on the skull the POKéMON\nwears are made by the tears it sheds.$" - -DexDescription_Marowak_1: - .string "MAROWAK is the evolved form of a CUBONE\nthat has overcome its sadness at the\nloss of its mother and grown tough.$" -DexDescription_Marowak_2: - .string "This POKéMON’s tempered and hardened\nspirit is not easily broken.$" - -DexDescription_Hitmonlee_1: - .string "HITMONLEE’s legs freely contract and\nstretch. Using these springlike legs, it\nbowls over foes with devastating kicks.$" -DexDescription_Hitmonlee_2: - .string "After battle, it rubs down its legs and\nloosens the muscles to overcome\nfatigue.$" - -DexDescription_Hitmonchan_1: - .string "HITMONCHAN is said to possess the\nspirit of a boxer who had been working\ntowards a world championship.$" -DexDescription_Hitmonchan_2: - .string "This POKéMON has an indomitable spirit\nand will never give up in the face of\nadversity.$" - -DexDescription_Lickitung_1: - .string "Whenever LICKITUNG comes across\nsomething new, it will unfailingly give it\na lick. It does so because it memorizes$" -DexDescription_Lickitung_2: - .string "things by texture and by taste.\nIt is somewhat put off by sour things.$" - - .ifdef SAPPHIRE -DexDescription_Koffing_1: - .string "KOFFING embodies toxic substances.\nIt mixes the toxins with raw garbage to\nset off a chemical reaction that$" -DexDescription_Koffing_2: - .string "results in a terribly powerful poison\ngas. The higher the temperature, the\nmore gas is concocted by this POKéMON.$" - .else -DexDescription_Koffing_1: - .string "If KOFFING becomes agitated, it raises\nthe toxicity of its internal gases and\njets them out from all over its body.$" -DexDescription_Koffing_2: - .string "This POKéMON may also overinflate its\nround body, then explode.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Weezing_1: - .string "WEEZING alternately shrinks and\ninflates its twin bodies to mix together\ntoxic gases inside.$" -DexDescription_Weezing_2: - .string "The more the gases are mixed, the more\npowerful the toxins become. The\nPOKéMON also becomes more putrid.$" - .else -DexDescription_Weezing_1: - .string "WEEZING loves the gases given off by\nrotted kitchen garbage. This POKéMON\nwill find a dirty, unkempt house and$" -DexDescription_Weezing_2: - .string "make it its home. At night, when the\npeople in the house are asleep, it will\ngo through the trash.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rhyhorn_1: - .string "RHYHORN’s brain is very small. It is so\ndense, while on a run it forgets why it\nstarted running in the first place.$" -DexDescription_Rhyhorn_2: - .string "It apparently remembers sometimes if it\ndemolishes something.$" - .else -DexDescription_Rhyhorn_1: - .string "RHYHORN runs in a straight line,\nsmashing everything in its path.\nIt is not bothered even if it rushes$" -DexDescription_Rhyhorn_2: - .string "headlong into a block of steel.\nThis POKéMON may feel some pain from\nthe collision the next day, however.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rhydon_1: - .string "RHYDON has a horn that serves as a\ndrill. It is used for destroying rocks\nand boulders.$" -DexDescription_Rhydon_2: - .string "This POKéMON occasionally rams into\nstreams of magma, but the armor-like\nhide prevents it from feeling the heat.$" - .else -DexDescription_Rhydon_1: - .string "RHYDON’s horn can crush even uncut\ndiamonds. One sweeping blow of its tail\ncan topple a building.$" -DexDescription_Rhydon_2: - .string "This POKéMON’s hide is extremely tough.\nEven direct cannon hits don’t leave\na scratch.$" - .endif - -DexDescription_Chansey_1: - .string "CHANSEY lays nutritionally excellent\neggs on an everyday basis.\nThe eggs are so delicious, they are$" -DexDescription_Chansey_2: - .string "easily and eagerly devoured by even\nthose people who have lost their\nappetite.$" - -DexDescription_Tangela_1: - .string "TANGELA’s vines snap off easily if they\nare grabbed. This happens without pain,\nallowing it to make a quick getaway.$" -DexDescription_Tangela_2: - .string "The lost vines are replaced by newly\ngrown vines the very next day.$" - -DexDescription_Kangaskhan_1: - .string "If you come across a young KANGASKHAN\nplaying by itself, you must never\ndisturb it or attempt to catch it.$" -DexDescription_Kangaskhan_2: - .string "The baby POKéMON’s parent is sure to\nbe in the area, and it will become\nviolently enraged at you.$" - - .ifdef SAPPHIRE -DexDescription_Horsea_1: - .string "If HORSEA senses danger, it will\nreflexively spray a dense black ink\nfrom its mouth and try to escape.$" -DexDescription_Horsea_2: - .string "This POKéMON swims by cleverly flapping\nthe fins on its back.$" - .else -DexDescription_Horsea_1: - .string "HORSEA eats small insects and moss off\nof rocks. If the ocean current turns\nfast, this POKéMON anchors itself by$" -DexDescription_Horsea_2: - .string "wrapping its tail around rocks or coral\nto prevent being washed away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seadra_1: - .string "SEADRA generates whirlpools by spinning\nits body. The whirlpools are strong\nenough to swallow even fishing boats.$" -DexDescription_Seadra_2: - .string "This POKéMON weakens prey with these\ncurrents, then swallows it whole.$" - .else -DexDescription_Seadra_1: - .string "SEADRA sleeps after wriggling itself\nbetween the branches of coral.\nThose trying to harvest coral are$" -DexDescription_Seadra_2: - .string "occasionally stung by this POKéMON’s\npoison barbs if they fail to notice it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Goldeen_1: - .string "GOLDEEN loves swimming wild and free\nin rivers and ponds.\nIf one of these POKéMON is placed in an$" -DexDescription_Goldeen_2: - .string "aquarium, it will shatter even the\nthickest glass with one ram of its horn\nand make its escape.$" - .else -DexDescription_Goldeen_1: - .string "GOLDEEN is a very beautiful POKéMON\nwith fins that billow elegantly in water.\nHowever, don’t let your guard down$" -DexDescription_Goldeen_2: - .string "around this POKéMON - it could ram you\npowerfully with its horn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seaking_1: - .string "SEAKING is very protective of its eggs.\nThe male and female will take turns\npatrolling around their nest and eggs.$" -DexDescription_Seaking_2: - .string "The guarding of eggs by these POKéMON\ngoes on for over a month.$" - .else -DexDescription_Seaking_1: - .string "In the autumn, SEAKING males can be\nseen performing courtship dances in\nriverbeds to woo females.$" -DexDescription_Seaking_2: - .string "During this season, this POKéMON’s body\ncoloration is at its most beautiful.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Staryu_1: - .string "STARYU apparently communicates with\nthe stars in the night sky by flashing\nthe red core at the center of its body.$" -DexDescription_Staryu_2: - .string "If parts of its body are torn, this\nPOKéMON simply regenerates the\nmissing pieces and limbs.$" - .else -DexDescription_Staryu_1: - .string "STARYU’s center section has an organ\ncalled the core that shines bright red.\nIf you go to a beach toward the$" -DexDescription_Staryu_2: - .string "end of summer, the glowing cores of\nthese POKéMON look like the stars\nin the sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Starmie_1: - .string "STARMIE swims through water by\nspinning its star-shaped body as if it\nwere a propeller on a ship.$" -DexDescription_Starmie_2: - .string "The core at the center of this\nPOKéMON’s body glows in seven colors.$" - .else -DexDescription_Starmie_1: - .string "STARMIE’s center section - the core -\nglows brightly in seven colors.\nBecause of its luminous nature, this$" -DexDescription_Starmie_2: - .string "POKéMON has been given the nickname\n“the gem of the sea.”$" - .endif - -DexDescription_Mrmime_1: - .string "MR. MIME is a master of pantomime.\nIts gestures and motions convince\nwatchers that something unseeable$" -DexDescription_Mrmime_2: - .string "actually exists. Once it is believed,\nit will exist as if it were a real thing.$" - -DexDescription_Scyther_1: - .string "SCYTHER is blindingly fast. Its blazing\nspeed enhances the effectiveness of\nthe twin scythes on its forearms.$" -DexDescription_Scyther_2: - .string "This POKéMON’s scythes are so\neffective, they can slice through thick\nlogs in one wicked stroke.$" - -DexDescription_Jynx_1: - .string "JYNX walks rhythmically, swaying and\nshaking its hips as if it were dancing.\nIts motions are so bouncingly alluring,$" -DexDescription_Jynx_2: - .string "people seeing it are compelled to shake\ntheir hips without giving any thought\nto what they are doing.$" - -DexDescription_Electabuzz_1: - .string "When a storm arrives, gangs of this\nPOKéMON compete with each other to\nscale heights that are likely to be$" -DexDescription_Electabuzz_2: - .string "stricken by lightning bolts.\nSome towns use ELECTABUZZ in place of\nlightning rods.$" - -DexDescription_Magmar_1: - .string "In battle, MAGMAR blows out intensely\nhot flames from all over its body to\nintimidate its opponent.$" -DexDescription_Magmar_2: - .string "This POKéMON’s fiery bursts create\nheat waves that ignite grass and trees\nin its surroundings.$" - - .ifdef SAPPHIRE -DexDescription_Pinsir_1: - .string "PINSIR has a pair of massive horns \nProtruding from the surface of these\nhorns are thorns.$" -DexDescription_Pinsir_2: - .string "These thorns are driven deeply into the\nfoe’s body when the pincer closes,\nmaking it tough for the foe to escape.$" - .else -DexDescription_Pinsir_1: - .string "PINSIR is astoundingly strong. It can\ngrip a foe weighing twice its weight\nin its horns and easily lift it.$" -DexDescription_Pinsir_2: - .string "This POKéMON’s movements turn sluggish\nin cold places.$" - .endif - -DexDescription_Tauros_1: - .string "This POKéMON is not satisfied unless\nit is rampaging at all times.\nIf there is no opponent for TAUROS to$" -DexDescription_Tauros_2: - .string "battle, it will charge at thick trees and\nknock them down to calm itself.$" - - .ifdef SAPPHIRE -DexDescription_Magikarp_1: - .string "MAGIKARP is virtually useless in battle\nas it can only splash around.\nAs a result, it is considered to be weak.$" -DexDescription_Magikarp_2: - .string "However, it is actually a very hardy\nPOKéMON that can survive in any body of\nwater no matter how polluted it is.$" - .else -DexDescription_Magikarp_1: - .string "MAGIKARP is a pathetic excuse for a\nPOKéMON that is only capable of\nflopping and splashing.$" -DexDescription_Magikarp_2: - .string "This behavior prompted scientists to\nundertake research into it.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gyarados_1: - .string "Once GYARADOS goes on a rampage, its\nferociously violent blood doesn’t calm\nuntil it has burned everything down.$" -DexDescription_Gyarados_2: - .string "There are records of this POKéMON’s\nrampages lasting a whole month.$" - .else -DexDescription_Gyarados_1: - .string "When MAGIKARP evolves into GYARADOS,\nits brain cells undergo a structural\ntransformation. It is said that this$" -DexDescription_Gyarados_2: - .string "transformation is to blame for this\nPOKéMON’s wildly violent nature.$" - .endif - -DexDescription_Lapras_1: - .string "People have driven LAPRAS almost to the\npoint of extinction. In the evenings,\nthis POKéMON is said to sing plaintively$" -DexDescription_Lapras_2: - .string "as it seeks what few others of its kind\nstill remain.$" - -DexDescription_Ditto_1: - .string "DITTO rearranges its cell structure to\ntransform itself into other shapes.\nHowever, if it tries to transform itself$" -DexDescription_Ditto_2: - .string "into something by relying on its memory,\nthis POKéMON manages to get details\nwrong.$" - -DexDescription_Eevee_1: - .string "EEVEE has an unstable genetic makeup\nthat suddenly mutates due to the\nenvironment in which it lives.$" -DexDescription_Eevee_2: - .string "Radiation from various STONES causes\nthis POKéMON to evolve.$" - -DexDescription_Vaporeon_1: - .string "VAPOREON underwent a spontaneous\nmutation and grew fins and gills that\nallow it to live underwater.$" -DexDescription_Vaporeon_2: - .string "This POKéMON has the ability to freely\ncontrol water.$" - -DexDescription_Jolteon_1: - .string "JOLTEON’s cells generate a low level of\nelectricity. This power is amplified by\nthe static electricity of its fur,$" -DexDescription_Jolteon_2: - .string "enabling the POKéMON to drop\nthunderbolts. The bristling fur is made\nof electrically charged needles.$" - -DexDescription_Flareon_1: - .string "FLAREON’s fluffy fur has a functional\npurpose - it releases heat into the air\nso that its body does not get$" -DexDescription_Flareon_2: - .string "excessively hot.\nThis POKéMON’s body temperature can\nrise to a maximum of 1,650 degrees F.$" - -DexDescription_Porygon_1: - .string "PORYGON is capable of reverting itself\nentirely back to program data and\nentering cyberspace.$" -DexDescription_Porygon_2: - .string "This POKéMON is copy-protected so it\ncannot be duplicated by copying.$" - -DexDescription_Omanyte_1: - .string "OMANYTE is one of the ancient and long-\nsince-extinct POKéMON that have been\nregenerated from fossils by people.$" -DexDescription_Omanyte_2: - .string "If attacked by an enemy, it withdraws\nitself inside its hard shell.$" - -DexDescription_Omastar_1: - .string "OMASTAR uses its tentacles to capture\nits prey. It is believed to have become\nextinct because its shell grew too large$" -DexDescription_Omastar_2: - .string "and heavy, causing its movements to\nbecome too slow and ponderous.$" - -DexDescription_Kabuto_1: - .string "KABUTO is a POKéMON that has been\nregenerated from a fossil. However, in\nextremely rare cases, living examples$" -DexDescription_Kabuto_2: - .string "have been discovered.\nThe POKéMON has not changed at all for\n300 million years.$" - -DexDescription_Kabutops_1: - .string "KABUTOPS swam underwater to hunt for\nits prey in ancient times.\nThe POKéMON was apparently evolving$" -DexDescription_Kabutops_2: - .string "from being a water-dweller to living on\nland as evident from the beginnings of\nchange in its gills and legs.$" - -DexDescription_Aerodactyl_1: - .string "AERODACTYL is a POKéMON from the age\nof dinosaurs. It was regenerated from\ngenetic material extracted from amber.$" -DexDescription_Aerodactyl_2: - .string "It is imagined to have been the king of\nthe skies in ancient times.$" - -DexDescription_Snorlax_1: - .string "SNORLAX’s typical day consists of\nnothing more than eating and sleeping.\nIt is such a docile POKéMON that there$" -DexDescription_Snorlax_2: - .string "are children who use its expansive belly\nas a place to play.$" - -DexDescription_Articuno_1: - .string "ARTICUNO is a legendary bird POKéMON\nthat can control ice.\nThe flapping of its wings chills the air.$" -DexDescription_Articuno_2: - .string "As a result, it is said that when this\nPOKéMON flies, snow will fall.$" - -DexDescription_Zapdos_1: - .string "ZAPDOS is a legendary bird POKéMON that\nhas the ability to control electricity.\nIt usually lives in thunderclouds.$" -DexDescription_Zapdos_2: - .string "The POKéMON gains power if it is\nstricken by lightning bolts.$" - -DexDescription_Moltres_1: - .string "MOLTRES is a legendary bird POKéMON\nthat has the ability to control fire.\nIf this POKéMON is injured, it is said to$" -DexDescription_Moltres_2: - .string "dip its body in the molten magma of a\nvolcano to burn and heal itself.$" - -DexDescription_Dratini_1: - .string "DRATINI continually molts and sloughs\noff its old skin.\nIt does so because the life energy$" -DexDescription_Dratini_2: - .string "within its body steadily builds to reach\nuncontrollable levels.$" - -DexDescription_Dragonair_1: - .string "DRAGONAIR stores an enormous amount\nof energy inside its body.\nIt is said to alter weather conditions$" -DexDescription_Dragonair_2: - .string "in its vicinity by discharging energy\nfrom the crystals on its neck and tail.$" - -DexDescription_Dragonite_1: - .string "DRAGONITE is capable of circling the\nglobe in just sixteen hours.\nIt is a kindhearted POKéMON that leads$" -DexDescription_Dragonite_2: - .string "lost and foundering ships in a storm to\nthe safety of land.$" - -DexDescription_Mewtwo_1: - .string "MEWTWO is a POKéMON that was created\nby genetic manipulation.\nHowever, even though the scientific$" -DexDescription_Mewtwo_2: - .string "power of humans created this POKéMON’s\nbody, they failed to endow MEWTWO with\na compassionate heart.$" - -DexDescription_Mew_1: - .string "MEW is said to possess the genetic\ncomposition of all POKéMON.\nIt is capable of making itself invisible$" -DexDescription_Mew_2: - .string "at will, so it entirely avoids notice even\nif it approaches people.$" - -DexDescription_Chikorita_1: - .string "In battle, CHIKORITA waves its leaf\naround to keep the foe at bay.\nHowever, a sweet fragrance also wafts$" -DexDescription_Chikorita_2: - .string "from the leaf, becalming the battling\nPOKéMON and creating a cozy, friendly\natmosphere all around.$" - -DexDescription_Bayleef_1: - .string "BAYLEEF’s neck is ringed by curled-up\nleaves. Inside each tubular leaf is a\nsmall shoot of a tree.$" -DexDescription_Bayleef_2: - .string "The fragrance of this shoot makes\npeople peppy.$" - -DexDescription_Meganium_1: - .string "The fragrance of MEGANIUM’s flower\nsoothes and calms emotions.\nIn battle, this POKéMON gives off more$" -DexDescription_Meganium_2: - .string "of its becalming scent to blunt the\nfoe’s fighting spirit.$" - -DexDescription_Cyndaquil_1: - .string "CYNDAQUIL protects itself by flaring up\nthe flames on its back.\nThe flames are vigorous if the POKéMON$" -DexDescription_Cyndaquil_2: - .string "is angry. However, if it is tired, the\nflames splutter fitfully with incomplete\ncombustion.$" - -DexDescription_Quilava_1: - .string "QUILAVA keeps its foes at bay with the\nintensity of its flames and gusts of\nsuperheated air.$" -DexDescription_Quilava_2: - .string "This POKéMON applies its outstanding\nnimbleness to dodge attacks even while\nscorching the foe with flames.$" - -DexDescription_Typhlosion_1: - .string "TYPHLOSION obscures itself behind a\nshimmering heat haze that it creates\nusing its intensely hot flames.$" -DexDescription_Typhlosion_2: - .string "This POKéMON creates blazing explosive\nblasts that burn everything to cinders.$" - -DexDescription_Totodile_1: - .string "Despite the smallness of its body,\nTOTODILE’s jaws are very powerful.\nWhile the POKéMON may think it is just$" -DexDescription_Totodile_2: - .string "playfully nipping, its bite has enough\npower to cause serious injury.$" - -DexDescription_Croconaw_1: - .string "Once CROCONAW has clamped its jaws on\nits foe, it will absolutely not let go.\nBecause the tips of its fangs are$" -DexDescription_Croconaw_2: - .string "forked back like barbed fishhooks, they\nbecome impossible to remove when \nthey have sunk in.$" - -DexDescription_Feraligatr_1: - .string "FERALIGATR intimidates its foes by\nopening its huge mouth.\nIn battle, it will kick the ground hard$" -DexDescription_Feraligatr_2: - .string "with its thick and powerful hind legs to\ncharge at the foe at an incredible\nspeed.$" - -DexDescription_Sentret_1: - .string "When SENTRET sleeps, it does so while\nanother stands guard. The sentry wakes\nthe others at the first sign of danger.$" -DexDescription_Sentret_2: - .string "When this POKéMON becomes separated\nfrom its pack, it becomes incapable of\nsleep due to fear.$" - -DexDescription_Furret_1: - .string "FURRET has a very slim build.\nWhen under attack, it can slickly squirm\nthrough narrow spaces and get away.$" -DexDescription_Furret_2: - .string "In spite of its short limbs, this\nPOKéMON is very nimble and fleet.$" - -DexDescription_Hoothoot_1: - .string "HOOTHOOT has an internal organ that\nsenses and tracks the earth’s rotation.\nUsing this special organ, this POKéMON$" -DexDescription_Hoothoot_2: - .string "begins hooting at precisely the same\ntime every day.$" - -DexDescription_Noctowl_1: - .string "NOCTOWL never fails at catching prey in\ndarkness. This POKéMON owes its\nsuccess to its superior vision that$" -DexDescription_Noctowl_2: - .string "allows it to see in minimal light, and to\nits soft, supple wings that make no\nsound in flight.$" - -DexDescription_Ledyba_1: - .string "LEDYBA secretes an aromatic fluid from\nwhere its legs join its body. This fluid\nis used for communicating with others.$" -DexDescription_Ledyba_2: - .string "This POKéMON conveys its feelings to\nothers by altering the fluid’s scent.$" - -DexDescription_Ledian_1: - .string "It is said that in lands with clean air,\nwhere the stars fill the sky, there live\nLEDIAN in countless numbers.$" -DexDescription_Ledian_2: - .string "There is a good reason for this - the\nPOKéMON uses the light of the stars\nas its energy.$" - -DexDescription_Spinarak_1: - .string "The web spun by SPINARAK can be\nconsidered its second nervous system.\nIt is said that this POKéMON can$" -DexDescription_Spinarak_2: - .string "determine what kind of prey is touching\nits web just by the tiny vibrations it\nfeels through the web’s strands.$" - -DexDescription_Ariados_1: - .string "ARIADOS’s feet are tipped with tiny\nhooked claws that enable it to scuttle\non ceilings and vertical walls.$" -DexDescription_Ariados_2: - .string "This POKéMON constricts the foe with\nthin and strong silk webbing.$" - - .ifdef SAPPHIRE -DexDescription_Crobat_1: - .string "CROBAT sneaks up on its intended prey\nusing wings that barely make a sound.\nThis POKéMON rests by hanging on a$" -DexDescription_Crobat_2: - .string "tree branch with its rear legs that\nserve as wings.$" - .else -DexDescription_Crobat_1: - .string "If this POKéMON is flying by fluttering\nonly a pair of wings on either the\nforelegs or hind legs, it’s proof that$" -DexDescription_Crobat_2: - .string "CROBAT has been flying a long distance.\nIt switches the wings it uses if it is\ntired.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Chinchou_1: - .string "CHINCHOU’s two antennas are filled with\ncells that generate strong electricity.\nThis POKéMON’s cells create so much$" -DexDescription_Chinchou_2: - .string "electrical power, it even makes itself\ntingle slightly.$" - .else -DexDescription_Chinchou_1: - .string "CHINCHOU lets loose positive and\nnegative electrical charges from its\ntwo antennas to make its prey faint.$" -DexDescription_Chinchou_2: - .string "This POKéMON flashes its electric\nlights to exchange signals with others.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lanturn_1: - .string "LANTURN is known to emit light.\nIf you peer down into the dark sea from\na ship at night, you can sometimes see$" -DexDescription_Lanturn_2: - .string "this POKéMON’s light rising from the\ndepths where it swims. It gives the sea\nan appearance of a starlit night.$" - .else -DexDescription_Lanturn_1: - .string "LANTURN is nicknamed “the deep-sea\nstar” for its illuminated antenna.\nThis POKéMON produces light by$" -DexDescription_Lanturn_2: - .string "causing a chemical reaction between\nbacteria and its bodily fluids inside\nthe antenna.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Pichu_1: - .string "When PICHU plays with others, it may\nshort out electricity with another\nPICHU, creating a shower of sparks.$" -DexDescription_Pichu_2: - .string "In that event, this POKéMON will begin\ncrying, startled by the flash of sparks.$" - .else -DexDescription_Pichu_1: - .string "PICHU charges itself with electricity\nmore easily on days with thunderclouds\nor when the air is very dry.$" -DexDescription_Pichu_2: - .string "You can hear the crackling of static\nelectricity coming off this POKéMON.$" - .endif - -DexDescription_Cleffa_1: - .string "On nights with many shooting stars,\nCLEFFA can be seen dancing in a ring.\nThey dance through the night and stop$" -DexDescription_Cleffa_2: - .string "only at the break of day, when these\nPOKéMON quench their thirst with the\nmorning dew.$" - - .ifdef SAPPHIRE -DexDescription_Igglybuff_1: - .string "IGGLYBUFF has a soft and plushy body\nthat feels very much like a marshmallow.\nFrom this body wafts a gently sweet$" -DexDescription_Igglybuff_2: - .string "fragrance that soothes and calms the\nemotions of its foes.$" - .else -DexDescription_Igglybuff_1: - .string "IGGLYBUFF’s vocal chords are not\nsufficiently developed. It would hurt\nits throat if it were to sing too much.$" -DexDescription_Igglybuff_2: - .string "This POKéMON gargles with freshwater\nfrom a clean stream.$" - .endif - -DexDescription_Togepi_1: - .string "As its energy, TOGEPI uses the positive\nemotions of compassion and pleasure\nexuded by people and POKéMON.$" -DexDescription_Togepi_2: - .string "This POKéMON stores up feelings of\nhappiness inside its shell, then shares\nthem with others.$" - -DexDescription_Togetic_1: - .string "TOGETIC is said to be a POKéMON that\nbrings good fortune. When the POKéMON\nspots someone who is pure of heart,$" -DexDescription_Togetic_2: - .string "it is said to appear and share its\nhappiness with that person.$" - - .ifdef SAPPHIRE -DexDescription_Natu_1: - .string "NATU has a highly developed jumping\nability. The POKéMON flaps and leaps\nonto tree branches that are taller than$" -DexDescription_Natu_2: - .string "grown-up people to pick at the tree’s\nnew shoots.$" - .else -DexDescription_Natu_1: - .string "NATU cannot fly because its wings are\nnot yet fully grown. If your eyes meet\nwith this POKéMON’s eyes, it will stare$" -DexDescription_Natu_2: - .string "back intently at you. But if you move\neven slightly, it will hop away to safety.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Xatu_1: - .string "XATU is known to stand motionless while\nstaring at the sun all day long.\nSome people revere it as a mystical$" -DexDescription_Xatu_2: - .string "POKéMON out of their belief that XATU\nis in possession of the power to see\ninto the future.$" - .else -DexDescription_Xatu_1: - .string "XATU stands rooted and still in one\nspot all day long. People believe that\nthis POKéMON does so out of fear of$" -DexDescription_Xatu_2: - .string "the terrible things it has foreseen in\nthe future.$" - .endif - -DexDescription_Mareep_1: - .string "MAREEP’s fluffy coat of wool rubs\ntogether and builds a static charge.\nThe more static electricity is charged,$" -DexDescription_Mareep_2: - .string "the more brightly the lightbulb at the\ntip of its tail grows.$" - -DexDescription_Flaaffy_1: - .string "FLAAFFY’s wool quality changes so that\nit can generate a high amount of static\nelectricity with a small amount of wool.$" -DexDescription_Flaaffy_2: - .string "The bare and slick parts of its hide are\nshielded against electricity.$" - -DexDescription_Ampharos_1: - .string "AMPHAROS gives off so much light that\nit can be seen even from space.\nPeople in the old days used the light of$" -DexDescription_Ampharos_2: - .string "this POKéMON to send signals back and\nforth with others far away.$" - - .ifdef SAPPHIRE -DexDescription_Bellossom_1: - .string "A BELLOSSOM grows flowers more\nbeautifully if it has evolved from a\nsmelly GLOOM - the stinkier the better.$" -DexDescription_Bellossom_2: - .string "At night, this POKéMON closes its\npetals and goes to sleep.$" - .else -DexDescription_Bellossom_1: - .string "When BELLOSSOM gets exposed to plenty\nof sunlight, the leaves ringing its body\nbegin to spin around.$" -DexDescription_Bellossom_2: - .string "This POKéMON’s dancing is renowned in\nthe southern lands.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Marill_1: - .string "When fishing for food at the edge of a\nfast-running stream, MARILL wraps its\ntail around the trunk of a tree.$" -DexDescription_Marill_2: - .string "This POKéMON’s tail is flexible and\nconfigured to stretch.$" - .else -DexDescription_Marill_1: - .string "MARILL’s oil-filled tail acts much like\na life preserver. If you see just its\ntail bobbing on the water’s surface,$" -DexDescription_Marill_2: - .string "it’s a sure indication that this POKéMON\nis diving beneath the water to feed on\naquatic plants.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Azumarill_1: - .string "AZUMARILL can make balloons out of\nair. It makes these air balloons if it\nspots a drowning POKéMON.$" -DexDescription_Azumarill_2: - .string "The air balloons enable the POKéMON in\ntrouble to breathe.$" - .else -DexDescription_Azumarill_1: - .string "AZUMARILL’s long ears are indispensable\nsensors. By focusing its hearing, this\nPOKéMON can identify what kinds of$" -DexDescription_Azumarill_2: - .string "prey are around, even in rough and\nfast-running rivers.$" - .endif - -DexDescription_Sudowoodo_1: - .string "SUDOWOODO camouflages itself as a tree\nto avoid being attacked by enemies.\nHowever, because the forelegs remain$" -DexDescription_Sudowoodo_2: - .string "green throughout the year, the POKéMON\nis easily identified as a fake during\nthe winter.$" - -DexDescription_Politoed_1: - .string "The curled hair on POLITOED’s head is\nproof of its status as a king. It is said\nthat the longer and more curled the$" -DexDescription_Politoed_2: - .string "hair, the more respect this POKéMON\nearns from its peers.$" - -DexDescription_Hoppip_1: - .string "This POKéMON drifts and floats with the\nwind. If it senses the approach of\nstrong winds, HOPPIP links its leaves$" -DexDescription_Hoppip_2: - .string "with other HOPPIP to prepare against\nbeing blown away.$" - -DexDescription_Skiploom_1: - .string "SKIPLOOM’s flower blossoms when the\ntemperature rises above 64 degrees F.\nHow much the flower opens depends on$" -DexDescription_Skiploom_2: - .string "the temperature. For that reason, this\nPOKéMON is sometimes used as a\nthermometer.$" - -DexDescription_Jumpluff_1: - .string "JUMPLUFF rides warm southern winds to\ncross the sea and fly to foreign lands.\nThe POKéMON descends to the ground$" -DexDescription_Jumpluff_2: - .string "when it encounters cold air while it is\nfloating.$" - -DexDescription_Aipom_1: - .string "AIPOM’s tail ends in a hand-like\nappendage that can be cleverly\nmanipulated.$" -DexDescription_Aipom_2: - .string "However, because the POKéMON uses its\ntail so much, its real hands have become\nrather clumsy.$" - -DexDescription_Sunkern_1: - .string "SUNKERN tries to move as little as it\npossibly can. It does so because it\ntries to conserve all the nutrients it$" -DexDescription_Sunkern_2: - .string "has stored in its body for its\nevolution. It will not eat a thing, \nsubsisting only on morning dew.$" - -DexDescription_Sunflora_1: - .string "SUNFLORA converts solar energy into\nnutrition. It moves around actively in\nthe daytime when it is warm.$" -DexDescription_Sunflora_2: - .string "It stops moving as soon as the sun goes\ndown for the night.$" - -DexDescription_Yanma_1: - .string "YANMA is capable of seeing 360 degrees\nwithout having to move its eyes.\nIt is a great flier that is adept at$" -DexDescription_Yanma_2: - .string "making sudden stops and turning midair.\nThis POKéMON uses its flying ability to\nquickly chase down targeted prey.$" - -DexDescription_Wooper_1: - .string "WOOPER usually lives in water.\nHowever, it occasionally comes out onto\nland in search of food.$" -DexDescription_Wooper_2: - .string "On land, it coats its body with a gooey,\ntoxic film.$" - -DexDescription_Quagsire_1: - .string "QUAGSIRE hunts for food by leaving\nits mouth wide open in water and waiting\nfor its prey to blunder in unaware.$" -DexDescription_Quagsire_2: - .string "Because the POKéMON does not move,\nit does not get very hungry.$" - -DexDescription_Espeon_1: - .string "ESPEON is extremely loyal to any\nTRAINER it considers to be worthy.\nIt is said that this POKéMON developed$" -DexDescription_Espeon_2: - .string "its precognitive powers to protect its\nTRAINER from harm.$" - -DexDescription_Umbreon_1: - .string "UMBREON evolved as a result of exposure\nto the moon’s waves.\nIt hides silently in darkness and waits$" -DexDescription_Umbreon_2: - .string "for its foes to make a move.\nThe rings on its body glow when it leaps\nto attack.$" - -DexDescription_Murkrow_1: - .string "MURKROW was feared and loathed as the\nalleged bearer of ill fortune.\nThis POKéMON shows strong interest in$" -DexDescription_Murkrow_2: - .string "anything that sparkles or glitters.\nIt will even try to steal rings from\nwomen.$" - -DexDescription_Slowking_1: - .string "SLOWKING undertakes research every\nday in an effort to solve the mysteries\nof the world.$" -DexDescription_Slowking_2: - .string "However, this POKéMON apparently\nforgets everything it has learned if\nthe SHELLDER on its head comes off.$" - -DexDescription_Misdreavus_1: - .string "MISDREAVUS frightens people with a\ncreepy, sobbing cry. The POKéMON\napparently uses its red spheres to$" -DexDescription_Misdreavus_2: - .string "absorb the fearful feelings of foes and\nturn them into nutrition.$" - -DexDescription_Unown_1: - .string "This POKéMON is shaped like ancient\nwriting. It is a mystery as to which\ncame first, the ancient writings or the$" -DexDescription_Unown_2: - .string "various UNOWN. Research into this\ntopic is ongoing but nothing is known.$" - - .ifdef SAPPHIRE -DexDescription_Wobbuffet_1: - .string "WOBBUFFET does nothing but endure\nattacks - it won’t attack on its own.\nHowever, it won’t endure an attack on$" -DexDescription_Wobbuffet_2: - .string "its tail. When that happens, the\nPOKéMON will try to take the foe with it\nusing DESTINY BOND.$" - .else -DexDescription_Wobbuffet_1: - .string "If two or more WOBBUFFET meet, they will\nturn competitive and try to outdo each\nother’s endurance.$" -DexDescription_Wobbuffet_2: - .string "However, they may try to see which one\ncan endure the longest without food.\nTRAINERS need to beware of this habit.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Girafarig_1: - .string "GIRAFARIG’s rear head contains a tiny\nbrain that is too small for thinking.\nHowever, the rear head doesn’t need to$" -DexDescription_Girafarig_2: - .string "sleep, so it can keep watch over its\nsurroundings 24 hours a day.$" - .else -DexDescription_Girafarig_1: - .string "GIRAFARIG’s rear head also has a brain,\nbut it is small. The rear head attacks in\nresponse to smells and sounds.$" -DexDescription_Girafarig_2: - .string "Approaching this POKéMON from behind\ncan cause the rear head to suddenly\nlash out and bite.$" - .endif - -DexDescription_Pineco_1: - .string "PINECO hangs from a tree branch and\npatiently waits for prey to come along.\nIf the POKéMON is disturbed while$" -DexDescription_Pineco_2: - .string "eating by someone shaking its tree, it\ndrops down to the ground and explodes\nwith no warning.$" - -DexDescription_Forretress_1: - .string "FORRETRESS conceals itself inside its\nhardened steel shell. The shell is opened\nwhen the POKéMON is catching prey,$" -DexDescription_Forretress_2: - .string "but it does so at such a quick pace\nthat the shell’s inside cannot be seen.$" - -DexDescription_Dunsparce_1: - .string "DUNSPARCE has a drill for its tail.\nIt uses this tail to burrow into the\nground backwards.$" -DexDescription_Dunsparce_2: - .string "This POKéMON is known to make its nest\nin complex shapes deep under the\nground.$" - -DexDescription_Gligar_1: - .string "GLIGAR glides through the air without\na sound as if it were sliding.\nThis POKéMON hangs on to the face of$" -DexDescription_Gligar_2: - .string "its foe using its clawed hind legs and\nthe large pincers on its forelegs, then\ninjects the prey with its poison barb.$" - -DexDescription_Steelix_1: - .string "STEELIX lives even further underground\nthan ONIX. This POKéMON is known to dig\ntowards the earth’s core.$" -DexDescription_Steelix_2: - .string "There are records of this POKéMON\nreaching a depth of over six-tenths\nof a mile underground.$" - -DexDescription_Snubbull_1: - .string "By baring its fangs and making a scary\nface, SNUBBULL sends smaller POKéMON\nscurrying away in terror.$" -DexDescription_Snubbull_2: - .string "However, this POKéMON seems a little\nsad at making its foes flee.$" - -DexDescription_Granbull_1: - .string "GRANBULL has a particularly well-\ndeveloped lower jaw. The enormous fangs\nare heavy, causing the POKéMON to tip$" -DexDescription_Granbull_2: - .string "its head back for balance.\nUnless it is startled, it will not try to\nbite indiscriminately.$" - -DexDescription_Qwilfish_1: - .string "QWILFISH sucks in water, inflating\nitself. This POKéMON uses the pressure\nof the water it swallowed to shoot$" -DexDescription_Qwilfish_2: - .string "toxic quills all at once from all over\nits body. It finds swimming somewhat\nchallenging.$" - -DexDescription_Scizor_1: - .string "SCIZOR has a body with the hardness of\nsteel. It is not easily fazed by ordinary\nsorts of attacks.$" -DexDescription_Scizor_2: - .string "This POKéMON flaps its wings to\nregulate its body temperature.$" - -DexDescription_Shuckle_1: - .string "SHUCKLE quietly hides itself under\nrocks, keeping its body concealed\ninside its hard shell while eating$" -DexDescription_Shuckle_2: - .string "berries it has stored away.\nThe berries mix with its body fluids to\nbecome a juice.$" - - .ifdef SAPPHIRE -DexDescription_Heracross_1: - .string "HERACROSS has sharp claws on its feet.\nThese are planted firmly into the\nground or the bark of a tree, giving the$" -DexDescription_Heracross_2: - .string "POKéMON a secure and solid footing\nto forcefully fling away foes with\nits proud horn.$" - .else -DexDescription_Heracross_1: - .string "HERACROSS charges in a straight line at\nits foe, slips beneath the foe’s grasp,\nand then scoops up and hurls the$" -DexDescription_Heracross_2: - .string "opponent with its mighty horn.\nThis POKéMON even has enough power\nto topple a massive tree.$" - .endif - -DexDescription_Sneasel_1: - .string "SNEASEL scales trees by punching its\nhooked claws into the bark.\nThis POKéMON seeks out unguarded$" -DexDescription_Sneasel_2: - .string "nests and steals eggs for food while\nthe parents are away.$" - -DexDescription_Teddiursa_1: - .string "This POKéMON likes to lick its palms that\nare sweetened by being soaked in honey.\nTEDDIURSA concocts its own honey by$" -DexDescription_Teddiursa_2: - .string "blending fruits and pollen collected by\nBEEDRILL.$" - -DexDescription_Ursaring_1: - .string "In the forests inhabited by URSARING,\nit is said that there are many streams\nand towering trees where they$" -DexDescription_Ursaring_2: - .string "gather food. This POKéMON walks\nthrough its forest gathering food\nevery day.$" - - .ifdef SAPPHIRE -DexDescription_Slugma_1: - .string "SLUGMA does not have any blood in its\nbody. Instead, intensely hot magma\ncirculates throughout this POKéMON’s$" -DexDescription_Slugma_2: - .string "body, carrying essential nutrients and\noxygen to its organs.$" - .else -DexDescription_Slugma_1: - .string "Molten magma courses throughout\nSLUGMA’s circulatory system.\nIf this POKéMON is chilled, the magma$" -DexDescription_Slugma_2: - .string "cools and hardens. Its body turns\nbrittle and chunks fall off, reducing\nits size.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Magcargo_1: - .string "MAGCARGO’s body temperature is\napproximately 18,000 degrees F.\nWater is vaporized on contact.$" -DexDescription_Magcargo_2: - .string "If this POKéMON is caught in the rain,\nthe raindrops instantly turn into\nsteam, cloaking the area in a thick fog.$" - .else -DexDescription_Magcargo_1: - .string "MAGCARGO’s shell is actually its skin\nthat hardened as a result of cooling.\nIts shell is very brittle and fragile -$" -DexDescription_Magcargo_2: - .string "just touching it causes it to crumble\napart. This POKéMON returns to its\noriginal size by dipping itself in magma.$" - .endif - -DexDescription_Swinub_1: - .string "SWINUB roots for food by rubbing its\nsnout against the ground. Its favorite\nfood is a mushroom that grows under$" -DexDescription_Swinub_2: - .string "the cover of dead grass.\nThis POKéMON occasionally roots out\nhot springs.$" - -DexDescription_Piloswine_1: - .string "PILOSWINE is covered by a thick coat\nof long hair that enables it to endure\nthe freezing cold.$" -DexDescription_Piloswine_2: - .string "This POKéMON uses its tusks to dig up\nfood that has been buried under ice.$" - - .ifdef SAPPHIRE -DexDescription_Corsola_1: - .string "Clusters of CORSOLA congregate in warm\nseas where they serve as ideal hiding\nplaces for smaller POKéMON.$" -DexDescription_Corsola_2: - .string "When the water temperature falls, this\nPOKéMON migrates to the southern seas.$" - .else -DexDescription_Corsola_1: - .string "CORSOLA’s branches glitter very\nbeautifully in seven colors when they\ncatch sunlight.$" -DexDescription_Corsola_2: - .string "If any branch breaks off, this POKéMON\ngrows it back in just one night.$" - .endif - -DexDescription_Remoraid_1: - .string "REMORAID sucks in water, then expels it\nat high velocity using its abdominal\nmuscles to shoot down flying prey.$" -DexDescription_Remoraid_2: - .string "When evolution draws near, this POKéMON\ntravels downstream from rivers.$" - -DexDescription_Octillery_1: - .string "OCTILLERY grabs onto its foe using\nits tentacles. This POKéMON tries to\nimmobilize it before delivering the$" -DexDescription_Octillery_2: - .string "finishing blow.\nIf the foe turns out to be too strong,\nOCTILLERY spews ink to escape.$" - -DexDescription_Delibird_1: - .string "DELIBIRD carries its food bundled up\nin its tail. There once was a famous\nexplorer who managed to reach the peak$" -DexDescription_Delibird_2: - .string "of Mt. Everest thanks to one of these\nPOKéMON sharing its food.$" - -DexDescription_Mantine_1: - .string "On sunny days, schools of MANTINE can\nbe seen elegantly leaping over the\nsea’s waves.$" -DexDescription_Mantine_2: - .string "This POKéMON is not bothered by the\nREMORAID that hitches rides.$" - - .ifdef SAPPHIRE -DexDescription_Skarmory_1: - .string "SKARMORY’s steel wings become tattered\nand bashed in from repeated battles.\nOnce a year, the battered wings grow$" -DexDescription_Skarmory_2: - .string "back completely, restoring the cutting\nedges to their pristine state.$" - .else -DexDescription_Skarmory_1: - .string "SKARMORY is entirely encased in hard,\nprotective armor. This POKéMON flies at\nclose to 190 mph.$" -DexDescription_Skarmory_2: - .string "It slashes foes with its wings that\npossess swordlike cutting edges.$" - .endif - -DexDescription_Houndour_1: - .string "HOUNDOUR hunt as a coordinated pack.\nThey communicate with each other using\na variety of cries to corner their prey.$" -DexDescription_Houndour_2: - .string "This POKéMON’s remarkable teamwork is\nunparalleled.$" - -DexDescription_Houndoom_1: - .string "In a HOUNDOOM pack, the one with its\nhorns raked sharply towards the back\nserves a leadership role.$" -DexDescription_Houndoom_2: - .string "These POKéMON choose their leader by\nfighting amongst themselves.$" - - .ifdef SAPPHIRE -DexDescription_Kingdra_1: - .string "KINGDRA sleeps on the seafloor where\nit is otherwise devoid of life.\nWhen a storm arrives, the POKéMON is$" -DexDescription_Kingdra_2: - .string "said to awaken and wander about in\nsearch of prey.$" - .else -DexDescription_Kingdra_1: - .string "KINGDRA lives at extreme ocean depths\nthat are otherwise uninhabited.\nIt has long been believed that the$" -DexDescription_Kingdra_2: - .string "yawning of this POKéMON creates\nspiraling ocean currents.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Phanpy_1: - .string "PHANPY uses its long nose to shower\nitself. When others gather around, they\nthoroughly douse each other with water.$" -DexDescription_Phanpy_2: - .string "These POKéMON can be seen drying their\nsoaking-wet bodies at the edge of\nwater.$" - .else -DexDescription_Phanpy_1: - .string "For its nest, PHANPY digs a vertical pit \nin the ground at the edge of a river.\nIt marks the area around its nest with$" -DexDescription_Phanpy_2: - .string "its trunk to let the others know that\nthe area has been claimed.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Donphan_1: - .string "If DONPHAN were to tackle with its hard\nbody, even a house could be destroyed.\nUsing its massive strength, the$" -DexDescription_Donphan_2: - .string "POKéMON helps clear rock and mud slides\nthat block mountain trails.$" - .else -DexDescription_Donphan_1: - .string "DONPHAN’s favorite attack is curling\nits body into a ball, then charging at\nits foe while rolling at high speed.$" -DexDescription_Donphan_2: - .string "Once it starts rolling, this POKéMON\ncan’t stop very easily.$" - .endif - -DexDescription_Porygon2_1: - .string "PORYGON2 was created by humans using\nthe power of science. The man-made\nPOKéMON has been endowed with$" -DexDescription_Porygon2_2: - .string "artificial intelligence that enables it\nto learn new gestures and emotions\non its own.$" - -DexDescription_Stantler_1: - .string "STANTLER’s magnificent antlers were\ntraded at high prices as works of art.\nAs a result, this POKéMON was hunted$" -DexDescription_Stantler_2: - .string "close to extinction by those who were\nafter the priceless antlers.$" - -DexDescription_Smeargle_1: - .string "SMEARGLE marks the boundaries of its\nterritory using a body fluid that leaks\nout from the tip of its tail.$" -DexDescription_Smeargle_2: - .string "Over 5,000 different marks left by this\nPOKéMON have been found.$" - -DexDescription_Tyrogue_1: - .string "TYROGUE becomes stressed out if it\ndoes not get to train every day.\nWhen raising this POKéMON, the TRAINER$" -DexDescription_Tyrogue_2: - .string "must establish and uphold various\ntraining methods.$" - -DexDescription_Hitmontop_1: - .string "HITMONTOP spins on its head at high\nspeed, all the while delivering kicks.\nThis technique is a remarkable mix of$" -DexDescription_Hitmontop_2: - .string "both offense and defense at the same\ntime. The POKéMON travels faster\nspinning than it does walking.$" - -DexDescription_Smoochum_1: - .string "SMOOCHUM actively runs about, but\nalso falls quite often.\nWhenever the chance arrives, it will$" -DexDescription_Smoochum_2: - .string "look for its reflection to make sure its\nface hasn’t become dirty.$" - -DexDescription_Elekid_1: - .string "ELEKID stores electricity in its body.\nIf it touches metal and accidentally\ndischarges all its built-up electricity,$" -DexDescription_Elekid_2: - .string "this POKéMON begins swinging its arms\nin circles to recharge itself.$" - -DexDescription_Magby_1: - .string "MAGBY’s state of health is determined\nby observing the fire it breathes.\nIf the POKéMON is spouting yellow$" -DexDescription_Magby_2: - .string "flames from its mouth, it is in good\nhealth. When it is fatigued, black smoke\nwill be mixed in with the flames.$" - -DexDescription_Miltank_1: - .string "MILTANK gives over five gallons of milk\non a daily basis. Its sweet milk is\nenjoyed by children and grown-ups alike.$" -DexDescription_Miltank_2: - .string "People who can’t drink milk turn it into\nyogurt and eat it instead.$" - -DexDescription_Blissey_1: - .string "BLISSEY senses sadness with its fluffy\ncoat of fur. If it does so, this POKéMON\nwill rush over to the sad person,$" -DexDescription_Blissey_2: - .string "however far they may be, to share an\negg of happiness that brings a smile\nto any face.$" - -DexDescription_Raikou_1: - .string "RAIKOU embodies the speed of lightning.\nThe roars of this POKéMON send shock\nwaves shuddering through the air and$" -DexDescription_Raikou_2: - .string "shake the ground as if lightning bolts\nhad come crashing down.$" - -DexDescription_Entei_1: - .string "ENTEI embodies the passion of magma.\nThis POKéMON is thought to have been\nborn in the eruption of a volcano.$" -DexDescription_Entei_2: - .string "It sends up massive bursts of fire that\nutterly consume all that they touch.$" - -DexDescription_Suicune_1: - .string "SUICUNE embodies the compassion of\na pure spring of water. It runs across\nthe land with gracefulness.$" -DexDescription_Suicune_2: - .string "This POKéMON has the power to purify\ndirty water.$" - -DexDescription_Larvitar_1: - .string "LARVITAR is born deep under the ground.\nTo come up to the surface, this POKéMON\nmust eat its way through the soil above.$" -DexDescription_Larvitar_2: - .string "Until it does so, LARVITAR cannot see\nits parent’s face.$" - -DexDescription_Pupitar_1: - .string "PUPITAR creates a gas inside its body\nthat it compresses and forcefully\nejects to propel itself like a jet.$" -DexDescription_Pupitar_2: - .string "The body is very durable - it avoids\ndamage even if it hits solid steel.$" - -DexDescription_Tyranitar_1: - .string "TYRANITAR is so overwhelmingly\npowerful, it can bring down a whole\nmountain to make its nest.$" -DexDescription_Tyranitar_2: - .string "This POKéMON wanders about in\nmountains seeking new opponents to\nfight.$" - -DexDescription_Lugia_1: - .string "LUGIA’s wings pack devastating power -\na light fluttering of its wings can blow\napart regular houses.$" -DexDescription_Lugia_2: - .string "As a result, this POKéMON chooses to\nlive out of sight deep under the sea.$" - -DexDescription_HoOh_1: - .string "HO-OH’s feathers glow in seven colors\ndepending on the angle at which they\nare struck by light.$" -DexDescription_HoOh_2: - .string "These feathers are said to bring\nhappiness to the bearers. This POKéMON\nis said to live at the foot of a rainbow.$" - -DexDescription_Celebi_1: - .string "This POKéMON came from the future by\ncrossing over time.\nIt is thought that so long as CELEBI$" -DexDescription_Celebi_2: - .string "appears, a bright and shining future\nawaits us.$" - - .ifdef SAPPHIRE -DexDescription_Treecko_1: - .string "TREECKO is cool, calm, and collected -\nit never panics under any situation.\nIf a bigger foe were to glare at this$" -DexDescription_Treecko_2: - .string "POKéMON, it would glare right back\nwithout conceding an inch of ground.$" - .else -DexDescription_Treecko_1: - .string "TREECKO has small hooks on the bottom\nof its feet that enable it to scale\nvertical walls.$" -DexDescription_Treecko_2: - .string "This POKéMON attacks by slamming foes\nwith its thick tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Grovyle_1: - .string "This POKéMON adeptly flies from branch\nto branch in trees.\nIn a forest, no POKéMON can ever hope$" -DexDescription_Grovyle_2: - .string "to catch a fleeing GROVYLE however\nfast they may be.$" - .else -DexDescription_Grovyle_1: - .string "The leaves growing out of GROVYLE’s\nbody are convenient for camouflaging\nit from enemies in the forest.$" -DexDescription_Grovyle_2: - .string "This POKéMON is a master at climbing\ntrees in jungles.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sceptile_1: - .string "SCEPTILE has seeds growing on its back.\nThey are said to be bursting with\nnutrients that revitalize trees.$" -DexDescription_Sceptile_2: - .string "This POKéMON raises the trees in a\nforest with loving care.$" - .else -DexDescription_Sceptile_1: - .string "The leaves growing on SCEPTILE’s body\nare very sharp edged. This POKéMON is\nvery agile - it leaps all over the$" -DexDescription_Sceptile_2: - .string "branches of trees and jumps on its foe\nfrom above or behind.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Torchic_1: - .string "TORCHIC has a place inside its body\nwhere it keeps its flame. Give it a hug -\nit will be glowing with warmth.$" -DexDescription_Torchic_2: - .string "This POKéMON is covered all over by a\nfluffy coat of down.$" - .else -DexDescription_Torchic_1: - .string "TORCHIC sticks with its TRAINER,\nfollowing behind with unsteady\nsteps.$" -DexDescription_Torchic_2: - .string "This POKéMON breathes fire of over\n1,800 degrees F, including fireballs\nthat leave the foe scorched black.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Combusken_1: - .string "COMBUSKEN battles with the intensely\nhot flames it spews from its beak and\nwith outstandingly destructive kicks.$" -DexDescription_Combusken_2: - .string "This POKéMON’s cry is very loud and\ndistracting.$" - .else -DexDescription_Combusken_1: - .string "COMBUSKEN toughens up its legs and\nthighs by running through fields and\nmountains.$" -DexDescription_Combusken_2: - .string "This POKéMON’s legs possess both speed\nand power, enabling it to dole out ten\nkicks in one second.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Blaziken_1: - .string "BLAZIKEN has incredibly strong legs -\nit can easily clear a 30-story building\nin one leap.$" -DexDescription_Blaziken_2: - .string "This POKéMON’s blazing punches leave\nits foes scorched and blackened.$" - .else -DexDescription_Blaziken_1: - .string "In battle, BLAZIKEN blows out intense\nflames from its wrists and attacks foes\ncourageously.$" -DexDescription_Blaziken_2: - .string "The stronger the foe, the more\nintensely this POKéMON’s wrists burn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Mudkip_1: - .string "In water, MUDKIP breathes using the\ngills on its cheeks.\nIf it is faced with a tight situation in$" -DexDescription_Mudkip_2: - .string "battle, this POKéMON will unleash its\namazing power - it can crush rocks\nbigger than itself.$" - .else -DexDescription_Mudkip_1: - .string "The fin on MUDKIP’s head acts as highly\nsensitive radar. Using this fin to sense\nmovements of water and air, this$" -DexDescription_Mudkip_2: - .string "POKéMON can determine what is taking\nplace around it without using its eyes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Marshtomp_1: - .string "MARSHTOMP is much faster at traveling\nthrough mud than it is at swimming.\nThis POKéMON’s hindquarters exhibit$" -DexDescription_Marshtomp_2: - .string "obvious development, giving it the\nability to walk on just its hind legs.$" - .else -DexDescription_Marshtomp_1: - .string "The surface of MARSHTOMP’s body is\nenveloped by a thin, sticky film that\nenables it to live on land.$" -DexDescription_Marshtomp_2: - .string "This POKéMON plays in mud on beaches\nwhen the ocean tide is low.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swampert_1: - .string "SWAMPERT predicts storms by sensing\nsubtle differences in the sounds of\nwaves and tidal winds with its fins.$" -DexDescription_Swampert_2: - .string "If a storm is approaching, it piles up\nboulders to protect itself.$" - .else -DexDescription_Swampert_1: - .string "SWAMPERT is very strong. It has enough\npower to easily drag a boulder weighing\nmore than a ton.$" -DexDescription_Swampert_2: - .string "This POKéMON also has powerful vision\nthat lets it see even in murky water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Poochyena_1: - .string "POOCHYENA is an omnivore - it will eat\nanything. A distinguishing feature is\nhow large its fangs are compared to$" -DexDescription_Poochyena_2: - .string "its body. This POKéMON tries to\nintimidate its foes by making the hair\non its tail bristle out.$" - .else -DexDescription_Poochyena_1: - .string "At first sight, POOCHYENA takes a bite\nat anything that moves.\nThis POKéMON chases after prey until$" -DexDescription_Poochyena_2: - .string "the victim becomes exhausted.\nHowever, it may turn tail if the prey\nstrikes back.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Mightyena_1: - .string "MIGHTYENA travel and act as a pack\nin the wild. The memory of its life in the\nwild compels the POKéMON to obey only$" -DexDescription_Mightyena_2: - .string "those TRAINERS that it recognizes to\npossess superior skill.$" - .else -DexDescription_Mightyena_1: - .string "MIGHTYENA gives obvious signals when\nit is preparing to attack. It starts to\ngrowl deeply and then flattens its body.$" -DexDescription_Mightyena_2: - .string "This POKéMON will bite savagely with its\nsharply pointed fangs.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zigzagoon_1: - .string "The hair on ZIGZAGOON’s back is \nbristly. It rubs the hard back hair\nagainst trees to leave its territorial$" -DexDescription_Zigzagoon_2: - .string "markings.\nThis POKéMON may play dead to fool foes\nin battle.$" - .else -DexDescription_Zigzagoon_1: - .string "ZIGZAGOON restlessly wanders\neverywhere at all times. This POKéMON\ndoes so because it is very curious.$" -DexDescription_Zigzagoon_2: - .string "It becomes interested in anything\nthat it happens to see.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Linoone_1: - .string "When hunting, LINOONE will make a\nbeeline straight for the prey at a full\nrun. While this POKéMON is capable of$" -DexDescription_Linoone_2: - .string "topping 60 mph, it has to come to a\nscreeching halt before it can turn.$" - .else -DexDescription_Linoone_1: - .string "LINOONE always runs full speed and only\nin straight lines. If facing an obstacle,\nit makes a right-angle turn to evade it.$" -DexDescription_Linoone_2: - .string "This POKéMON is very challenged by\ngently curving roads.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wurmple_1: - .string "WURMPLE is targeted by SWELLOW as\nprey. This POKéMON will try to resist by\npointing the spikes on its rear at the$" -DexDescription_Wurmple_2: - .string "attacking predator.\nIt will weaken the foe by leaking poison\nfrom the spikes.$" - .else -DexDescription_Wurmple_1: - .string "Using the spikes on its rear end, \nWURMPLE peels the bark off trees and\nfeeds on the sap that oozes out.$" -DexDescription_Wurmple_2: - .string "This POKéMON’s feet are tipped with\nsuction pads that allow it to cling to\nglass without slipping.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Silcoon_1: - .string "SILCOON was thought to endure hunger\nand not consume anything before its\nevolution. However, it is now thought$" -DexDescription_Silcoon_2: - .string "that this POKéMON slakes its thirst by\ndrinking rainwater that collects on its\nsilk.$" - .else -DexDescription_Silcoon_1: - .string "SILCOON tethers itself to a tree branch\nusing silk to keep from falling. There, \nthis POKéMON hangs quietly while it$" -DexDescription_Silcoon_2: - .string "awaits evolution.\nIt peers out of the silk cocoon through\na small hole.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Beautifly_1: - .string "BEAUTIFLY has a long mouth like a coiled\nneedle, which is very convenient for\ncollecting pollen from flowers.$" -DexDescription_Beautifly_2: - .string "This POKéMON rides the spring winds as\nit flits around gathering pollen.$" - .else -DexDescription_Beautifly_1: - .string "BEAUTIFLY’s favorite food is the sweet\npollen of flowers. If you want to see\nthis POKéMON, just leave a potted$" -DexDescription_Beautifly_2: - .string "flower by an open window. BEAUTIFLY\nis sure to come looking for pollen.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cascoon_1: - .string "If it is attacked, CASCOON remains\nmotionless however badly it may be\nhurt. It does so because if it were to$" -DexDescription_Cascoon_2: - .string "move, its body would be weak upon\nevolution. This POKéMON will also not\nforget the pain it endured.$" - .else -DexDescription_Cascoon_1: - .string "CASCOON makes its protective cocoon\nby wrapping its body entirely with a\nfine silk from its mouth. Once the silk$" -DexDescription_Cascoon_2: - .string "goes around its body, it hardens.\nThis POKéMON prepares for its evolution\ninside the cocoon.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dustox_1: - .string "When DUSTOX flaps its wings, a fine\ndust is scattered all over. This dust is\nactually a powerful poison that will$" -DexDescription_Dustox_2: - .string "even make a pro wrestler sick.\nThis POKéMON searches for food using\nits antennae like radar.$" - .else -DexDescription_Dustox_1: - .string "DUSTOX is instinctively drawn to light.\nSwarms of this POKéMON are attracted\nby the bright lights of cities, where$" -DexDescription_Dustox_2: - .string "they wreak havoc by stripping the\nleaves off roadside trees for food.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lotad_1: - .string "LOTAD is said to have dwelled on land\nbefore. However, this POKéMON is\nthought to have returned to water$" -DexDescription_Lotad_2: - .string "because the leaf on its head grew large\nand heavy. It now lives by floating\natop the water.$" - .else -DexDescription_Lotad_1: - .string "LOTAD live in ponds and lakes, where\nthey float on the surface.\nIt grows weak if its broad leaf dies.$" -DexDescription_Lotad_2: - .string "On rare occasions, this POKéMON travels\non land in search of clean water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lombre_1: - .string "LOMBRE’s entire body is covered by a\nslippery, slimy film. It feels horribly\nunpleasant to be touched by this$" -DexDescription_Lombre_2: - .string "POKéMON’s hands.\nLOMBRE is often mistaken for a human\nchild.$" - .else -DexDescription_Lombre_1: - .string "LOMBRE is nocturnal - it will get active\nafter dusk. It is also a mischief-maker.\nWhen this POKéMON spots anglers,$" -DexDescription_Lombre_2: - .string "it tugs on their fishing lines from\nbeneath the surface and enjoys their\nconsternation.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ludicolo_1: - .string "Upon hearing an upbeat and cheerful\nrhythm, the cells in LUDICOLO’s body\nbecome very energetic and active.$" -DexDescription_Ludicolo_2: - .string "Even in battle, this POKéMON will\nexhibit an amazing amount of power.$" - .else -DexDescription_Ludicolo_1: - .string "LUDICOLO begins dancing as soon as\nit hears cheerful, festive music.\nThis POKéMON is said to appear when it$" -DexDescription_Ludicolo_2: - .string "hears the singing of children on hiking\noutings.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seedot_1: - .string "SEEDOT looks exactly like an acorn\nwhen it is dangling from a tree branch.\nIt startles other POKéMON by suddenly$" -DexDescription_Seedot_2: - .string "moving.\nThis POKéMON polishes its body once a\nday using leaves.$" - .else -DexDescription_Seedot_1: - .string "SEEDOT attaches itself to a tree\nbranch using the top of its head.\nIt sucks moisture from the tree while$" -DexDescription_Seedot_2: - .string "hanging off the branch.\nThe more water it drinks, the glossier\nthis POKéMON’s body becomes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nuzleaf_1: - .string "This POKéMON pulls out the leaf on its\nhead and makes a flute with it.\nThe sound of NUZLEAF’s flute strikes$" -DexDescription_Nuzleaf_2: - .string "fear and uncertainty in the hearts of\npeople lost in a forest.$" - .else -DexDescription_Nuzleaf_1: - .string "NUZLEAF live in densely overgrown\nforests. They occasionally venture out\nof the forest to startle people.$" -DexDescription_Nuzleaf_2: - .string "This POKéMON dislikes having its long\nnose pinched.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shiftry_1: - .string "SHIFTRY’s large fans generate awesome\ngusts of wind at a speed close to 100\nfeet per second. The whipped-up wind$" -DexDescription_Shiftry_2: - .string "blows anything away.\nThis POKéMON chooses to live quietly\ndeep in forests.$" - .else -DexDescription_Shiftry_1: - .string "SHIFTRY is a mysterious POKéMON that\nis said to live atop towering trees \ndating back over a thousand years.$" -DexDescription_Shiftry_2: - .string "It creates terrific windstorms with\nthe fans it holds.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Taillow_1: - .string "TAILLOW is young - it has only just\nleft its nest. As a result, it sometimes\nbecomes lonesome and cries at night.$" -DexDescription_Taillow_2: - .string "This POKéMON feeds on WURMPLE that\nlive in forests.$" - .else -DexDescription_Taillow_1: - .string "TAILLOW courageously stands its\nground against foes, however strong\nthey may be.$" -DexDescription_Taillow_2: - .string "This gutsy POKéMON will remain defiant\neven after a loss. On the other hand,\nit cries loudly if it becomes hungry.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swellow_1: - .string "SWELLOW is very conscientious about\nthe upkeep of its glossy wings.\nOnce two SWELLOW are gathered, they$" -DexDescription_Swellow_2: - .string "diligently take care of cleaning each\nother’s wings.$" - .else -DexDescription_Swellow_1: - .string "SWELLOW flies high above our heads,\nmaking graceful arcs in the sky.\nThis POKéMON dives at a steep angle as$" -DexDescription_Swellow_2: - .string "soon as it spots its prey. The hapless\nprey is tightly grasped by SWELLOW’s\nclawed feet, preventing escape.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wingull_1: - .string "WINGULL rides updrafts rising from the\nsea by extending its long and narrow\nwings to glide.$" -DexDescription_Wingull_2: - .string "This POKéMON’s long beak is useful for\ncatching prey.$" - .else -DexDescription_Wingull_1: - .string "WINGULL has the habit of carrying prey\nand valuables in its beak and hiding\nthem in all sorts of locations.$" -DexDescription_Wingull_2: - .string "This POKéMON rides the winds and flies\nas if it were skating across the sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Pelipper_1: - .string "PELIPPER searches for food while in\nflight by skimming the wave tops.\nThis POKéMON dips its large bill in the$" -DexDescription_Pelipper_2: - .string "sea to scoop up food, then swallows\neverything in one big gulp.$" - .else -DexDescription_Pelipper_1: - .string "PELIPPER is a flying transporter that\ncarries small POKéMON and eggs inside\nits massive bill.$" -DexDescription_Pelipper_2: - .string "This POKéMON builds its nest on steep\ncliffs facing the sea.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ralts_1: - .string "RALTS has the ability to sense the\nemotions of people.\nIf its TRAINER is in a cheerful mood,$" -DexDescription_Ralts_2: - .string "this POKéMON grows cheerful and joyous\nin the same way.$" - .else -DexDescription_Ralts_1: - .string "RALTS senses the emotions of\npeople using the horns on its head.\nThis POKéMON rarely appears before$" -DexDescription_Ralts_2: - .string "people. But when it does, it draws\ncloser if it senses that the person has\na positive disposition.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kirlia_1: - .string "KIRLIA uses the horns on its head\nto amplify its psychokinetic power.\nWhen the POKéMON uses its power,$" -DexDescription_Kirlia_2: - .string "the air around it becomes distorted,\ncreating mirages of nonexistent\nscenery.$" - .else -DexDescription_Kirlia_1: - .string "It is said that a KIRLIA that is\nexposed to the positive emotions of\nits TRAINER grows beautiful.$" -DexDescription_Kirlia_2: - .string "This POKéMON controls psychokinetic\npowers with its highly developed brain.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gardevoir_1: - .string "GARDEVOIR has the psychokinetic\npower to distort the dimensions and\ncreate a small black hole.$" -DexDescription_Gardevoir_2: - .string "This POKéMON will try to protect its\nTRAINER even at the risk of its own\nlife.$" - .else -DexDescription_Gardevoir_1: - .string "GARDEVOIR has the ability to read the\nfuture. If it senses impending danger\nto its TRAINER, this POKéMON is said to$" -DexDescription_Gardevoir_2: - .string "unleash its psychokinetic energy at\nfull power.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Surskit_1: - .string "If SURSKIT senses danger, it secretes\na thick, sugary syrup from the tip of\nits head.$" -DexDescription_Surskit_2: - .string "There are some POKéMON that love\neating this syrup.$" - .else -DexDescription_Surskit_1: - .string "From the tips of its feet, SURSKIT\nsecretes an oil that enables it to walk\non water as if it were skating.$" -DexDescription_Surskit_2: - .string "This POKéMON feeds on microscopic\norganisms in ponds and lakes.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Masquerain_1: - .string "MASQUERAIN’s antennas have eyelike\npatterns that usually give it an angry\nlook. If the “eyes” are droopy and$" -DexDescription_Masquerain_2: - .string "appear sad, it is said to be a sign\nthat a heavy rainfall is on its way.$" - .else -DexDescription_Masquerain_1: - .string "MASQUERAIN intimidates enemies with\nthe eyelike patterns on its antennas.\nThis POKéMON flaps its four wings to$" -DexDescription_Masquerain_2: - .string "freely fly in any direction - even\nsideways and backwards - as if it were\na helicopter.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shroomish_1: - .string "If SHROOMISH senses danger, it shakes\nits body and scatters spores from the\ntop of its head.$" -DexDescription_Shroomish_2: - .string "This POKéMON’s spores are so toxic,\nthey make trees and weeds wilt.$" - .else -DexDescription_Shroomish_1: - .string "SHROOMISH live in damp soil in the dark\ndepths of forests. They are often\nfound keeping still under fallen leaves.$" -DexDescription_Shroomish_2: - .string "This POKéMON feeds on compost that\nis made up of fallen, rotted leaves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Breloom_1: - .string "The seeds ringing BRELOOM’s tail are\nmade of hardened toxic spores. It is\nhorrible to eat the seeds.$" -DexDescription_Breloom_2: - .string "Just taking a bite of this POKéMON’s\nseed will cause your stomach to rumble.$" - .else -DexDescription_Breloom_1: - .string "BRELOOM closes in on its foe with light\nand sprightly footwork, then throws\npunches with its stretchy arms.$" -DexDescription_Breloom_2: - .string "This POKéMON’s fighting technique puts\nboxers to shame.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Slakoth_1: - .string "SLAKOTH’s heart beats just once a\nminute. Whatever happens, it is\ncontent to loaf around motionless.$" -DexDescription_Slakoth_2: - .string "It is rare to see this POKéMON in\nmotion.$" - .else -DexDescription_Slakoth_1: - .string "SLAKOTH lolls around for over twenty\nhours every day. Because it moves so\nlittle, it does not need much food.$" -DexDescription_Slakoth_2: - .string "This POKéMON’s sole daily meal consists\nof just three leaves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vigoroth_1: - .string "VIGOROTH is simply incapable of\nremaining still. Even when it tries to\nsleep, the blood in its veins grows$" -DexDescription_Vigoroth_2: - .string "agitated, compelling this POKéMON to\nrun wild throughout the jungle before\nit can settle down.$" - .else -DexDescription_Vigoroth_1: - .string "VIGOROTH is always itching and agitated\nto go on a wild rampage. It simply can’t\ntolerate sitting still for even a minute.$" -DexDescription_Vigoroth_2: - .string "This POKéMON’s stress level rises if it\ncan’t be moving constantly.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Slaking_1: - .string "Wherever SLAKING live, rings of over\na yard in diameter appear in grassy\nfields. They are made by the POKéMON$" -DexDescription_Slaking_2: - .string "as it eats all the grass within reach\nwhile lying prone on the ground.$" - .else -DexDescription_Slaking_1: - .string "SLAKING spends all day lying down and\nlolling about.\nIt eats grass growing within its reach.$" -DexDescription_Slaking_2: - .string "If it eats all the grass it can reach,\nthis POKéMON reluctantly moves to\nanother spot.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nincada_1: - .string "NINCADA lives underground. It uses its\nsharp claws to carve the roots of trees\nand absorb moisture and nutrients.$" -DexDescription_Nincada_2: - .string "This POKéMON can’t withstand bright\nsunlight so avoids it.$" - .else -DexDescription_Nincada_1: - .string "NINCADA lives underground for many\nyears in complete darkness.\nThis POKéMON absorbs nutrients from$" -DexDescription_Nincada_2: - .string "the roots of trees. It stays motionless\nas it waits for evolution.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Ninjask_1: - .string "If NINJASK is not trained properly,\nit will refuse to obey the TRAINER and\ncry loudly continuously.$" -DexDescription_Ninjask_2: - .string "Because of this quality, this POKéMON\nis said to be one that puts the\nTRAINER’s abilities to the test.$" - .else -DexDescription_Ninjask_1: - .string "NINJASK moves around at such a high\nspeed that it cannot be seen, even\nwhile its crying can be clearly heard.$" -DexDescription_Ninjask_2: - .string "For that reason, this POKéMON was long\nbelieved to be invisible.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shedinja_1: - .string "SHEDINJA is a peculiar POKéMON.\nIt seems to appear unsought in a POKé\nBALL after a NINCADA evolves.$" -DexDescription_Shedinja_2: - .string "This bizarre POKéMON is entirely\nimmobile - it doesn’t even breathe.$" - .else -DexDescription_Shedinja_1: - .string "SHEDINJA’s hard body doesn’t move -\nnot even a twitch. In fact, its body\nappears to be merely a hollow shell.$" -DexDescription_Shedinja_2: - .string "It is believed that this POKéMON will\nsteal the spirit of anyone peering into\nits hollow body from its back.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Whismur_1: - .string "WHISMUR is very timid. If it starts to\ncry loudly, it becomes startled by its\nown crying and cries even harder.$" -DexDescription_Whismur_2: - .string "When it finally stops crying, the\nPOKéMON goes to sleep, all tired out.$" - .else -DexDescription_Whismur_1: - .string "Normally, WHISMUR’s voice is very quiet -\nit is barely audible even if one is\npaying close attention.$" -DexDescription_Whismur_2: - .string "However, if this POKéMON senses danger,\nit starts crying at an earsplitting\nvolume.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Loudred_1: - .string "LOUDRED shouts while stamping its feet.\nAfter it finishes shouting, this\nPOKéMON becomes incapable of hearing$" -DexDescription_Loudred_2: - .string "anything for a while. This is considered\nto be a weak point.$" - .else -DexDescription_Loudred_1: - .string "LOUDRED’s bellowing can completely\ndecimate a wood-frame house. It uses\nits voice to punish its foes.$" -DexDescription_Loudred_2: - .string "This POKéMON’s round ears serve as\nloudspeakers.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Exploud_1: - .string "EXPLOUD communicates its feelings to\nthe others by emitting whistle-like\nsounds from the tubes on its body.$" -DexDescription_Exploud_2: - .string "This POKéMON only raises its voice when\nit is in battle.$" - .else -DexDescription_Exploud_1: - .string "EXPLOUD triggers earthquakes with the\ntremors it creates by bellowing. If this\nPOKéMON violently inhales from the$" -DexDescription_Exploud_2: - .string "ports on its body, it’s a sign that it is\npreparing to let loose a huge bellow.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Makuhita_1: - .string "MAKUHITA has a tireless spirit -\nit will never give up hope. It eats a lot\nof food, gets plenty of sleep, and it$" -DexDescription_Makuhita_2: - .string "trains very rigorously. By living that\nway, this POKéMON packs its body with\nenergy.$" - .else -DexDescription_Makuhita_1: - .string "MAKUHITA is tenacious - it will keep\ngetting up and attacking its foe\nhowever many times it is knocked down.$" -DexDescription_Makuhita_2: - .string "Every time it gets back up, this\nPOKéMON stores more energy in its body\nfor evolving.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Hariyama_1: - .string "HARIYAMA’s thick body may appear fat,\nbut it is actually a hunk of solid muscle.\nIf this POKéMON bears down and$" -DexDescription_Hariyama_2: - .string "tightens all its muscles, its body\nbecomes as hard as a rock.$" - .else -DexDescription_Hariyama_1: - .string "HARIYAMA practices its straight-arm\nslaps in any number of locations.\nOne hit of this POKéMON’s powerful,$" -DexDescription_Hariyama_2: - .string "openhanded, straight-arm punches\ncould snap a telephone pole in two.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Azurill_1: - .string "AZURILL’s tail is large and bouncy.\nIt is packed full of the nutrients this\nPOKéMON needs to grow.$" -DexDescription_Azurill_2: - .string "AZURILL can be seen bouncing and\nplaying on its big, rubbery tail.$" - .else -DexDescription_Azurill_1: - .string "AZURILL spins its tail as if it were a\nlasso, then hurls it far. The momentum\nof the throw sends its body flying, too.$" -DexDescription_Azurill_2: - .string "Using this unique action, one of these\nPOKéMON managed to hurl itself a record\n33 feet.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Nosepass_1: - .string "NOSEPASS had been said to be completely\nunmoving, with its magnetic nose\npointed due north.$" -DexDescription_Nosepass_2: - .string "However, close observation has revealed\nthat the POKéMON actually moves by a\nlittle over 3/8 of an inch every year.$" - .else -DexDescription_Nosepass_1: - .string "NOSEPASS’s magnetic nose is always\npointed to the north. If two of these\nPOKéMON meet, they cannot turn$" -DexDescription_Nosepass_2: - .string "their faces to each other when they\nare close because their magnetic noses\nrepel one another.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Skitty_1: - .string "SKITTY is known to chase around\nplayfully after its own tail. In the wild,\nthis POKéMON lives in holes in the trees$" -DexDescription_Skitty_2: - .string "of forests. It is very popular as a pet\nbecause of its adorable looks.$" - .else -DexDescription_Skitty_1: - .string "SKITTY has the habit of becoming\nfascinated by moving objects and\nchasing them around.$" -DexDescription_Skitty_2: - .string "This POKéMON is known to chase after\nits own tail and become dizzy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Delcatty_1: - .string "DELCATTY sleeps anywhere it wants\nwithout keeping a permanent nest.\nIf other POKéMON approach it as it$" -DexDescription_Delcatty_2: - .string "sleeps, this POKéMON will never fight -\nit will just move away somewhere else.$" - .else -DexDescription_Delcatty_1: - .string "DELCATTY prefers to live an unfettered\nexistence in which it can do as it\npleases at its own pace.$" -DexDescription_Delcatty_2: - .string "Because this POKéMON eats and sleeps\nwhenever it decides, its daily routines\nare completely random.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sableye_1: - .string "SABLEYE digs the ground with sharpened\nclaws to find rocks that it eats.\nSubstances in the eaten rocks$" -DexDescription_Sableye_2: - .string "crystallize and rise up to the POKéMON’s\nbody surface.$" - .else -DexDescription_Sableye_1: - .string "SABLEYE lead quiet lives deep inside\ncaverns. They are feared, however,\nbecause these POKéMON are thought to$" -DexDescription_Sableye_2: - .string "steal the spirits of people when their\neyes burn with a sinister glow in the\ndarkness.$" - .endif - - .ifdef SAPPHIRE - -DexDescription_Mawile_1: - .string "Don’t be taken in by this POKéMON’s\ncute face - it’s very dangerous. MAWILE\nfools the foe into letting down its$" -DexDescription_Mawile_2: - .string "guard, then chomps down with its\nmassive jaws. The steel jaws are really\nhorns that have been transformed.$" - - .else - - .if REVISION >= 1 -DexDescription_Mawile_1: - .string "MAWILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$" -DexDescription_Mawile_2: - .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWILE\nchomps it with its gaping jaws.$" - .else -DexDescription_Mawile_1: - .string "MAWHILE’s huge jaws are actually steel\nhorns that have been transformed.\nIts docile-looking face serves to lull$" -DexDescription_Mawile_2: - .string "its foe into letting down its guard.\nWhen the foe least expects it, MAWHILE\nchomps it with its gaping jaws.$" - .endif @ REVISION >= 1 - - .endif @ SAPPHIRE - - .ifdef SAPPHIRE -DexDescription_Aron_1: - .string "ARON has a body of steel.\nWith one all-out charge, this POKéMON\ncan demolish even a heavy dump truck.$" -DexDescription_Aron_2: - .string "The destroyed dump truck then becomes\na handy meal for the POKéMON.$" - .else -DexDescription_Aron_1: - .string "This POKéMON has a body of steel.\nTo make its body, ARON feeds on\niron ore that it digs from mountains.$" -DexDescription_Aron_2: - .string "Occasionally, it causes major trouble by\neating bridges and rails.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lairon_1: - .string "LAIRON feeds on iron contained in\nrocks and water. It makes its nest on\nmountains where iron ore is buried.$" -DexDescription_Lairon_2: - .string "As a result, the POKéMON often clashes\nwith humans mining the iron ore.$" - .else -DexDescription_Lairon_1: - .string "LAIRON tempers its steel body by\ndrinking highly nutritious mineral\nspringwater until it is bloated.$" -DexDescription_Lairon_2: - .string "This POKéMON makes its nest close to\nsprings of delicious water.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Aggron_1: - .string "AGGRON is surprisingly protective\nof its environment. If its mountain\nis ravaged by a landslide or a fire, this$" -DexDescription_Aggron_2: - .string "POKéMON will haul topsoil to the area,\nplant trees, and beautifully restore its\nown territory.$" - .else -DexDescription_Aggron_1: - .string "AGGRON claims an entire mountain as its\nown territory. It mercilessly beats up\nanything that violates its environment.$" -DexDescription_Aggron_2: - .string "This POKéMON vigilantly patrols its\nterritory at all times.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Meditite_1: - .string "MEDITITE heightens its inner energy\nthrough meditation. It survives on\njust one berry a day.$" -DexDescription_Meditite_2: - .string "Minimal eating is another aspect of\nthis POKéMON’s training.$" - .else -DexDescription_Meditite_1: - .string "MEDITITE undertakes rigorous mental\ntraining deep in the mountains.\nHowever, whenever it meditates, this$" -DexDescription_Meditite_2: - .string "POKéMON always loses its concentration\nand focus. As a result, its training\nnever ends.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Medicham_1: - .string "Through the power of meditation,\nMEDICHAM developed its sixth sense.\nIt gained the ability to use$" -DexDescription_Medicham_2: - .string "psychokinetic powers. This POKéMON is\nknown to meditate for a whole month\nwithout eating.$" - .else -DexDescription_Medicham_1: - .string "It is said that through meditation,\nMEDICHAM heightens energy inside\nits body and sharpens its sixth sense.$" -DexDescription_Medicham_2: - .string "This POKéMON hides its presence by\nmerging itself with fields and\nmountains.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Electrike_1: - .string "ELECTRIKE runs faster than the human\neye can follow. The friction from\nrunning is converted into electricity,$" -DexDescription_Electrike_2: - .string "which is then stored in this POKéMON’s\nfur.$" - .else -DexDescription_Electrike_1: - .string "ELECTRIKE stores electricity in its\nlong body hair. This POKéMON stimulates\nits leg muscles with electric charges.$" -DexDescription_Electrike_2: - .string "These jolts of power give its legs\nexplosive acceleration performance.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Manectric_1: - .string "MANECTRIC discharges strong\nelectricity from its mane. The mane is\nused for collecting electricity in the$" -DexDescription_Manectric_2: - .string "atmosphere. This POKéMON creates\nthunderclouds above its head.$" - .else -DexDescription_Manectric_1: - .string "MANECTRIC is constantly discharging\nelectricity from its mane. The sparks\nsometimes ignite forest fires.$" -DexDescription_Manectric_2: - .string "When it enters a battle, this POKéMON\ncreates thunderclouds.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Plusle_1: - .string "When PLUSLE is cheering on its partner,\nit flashes with electric sparks from all\nover its body.$" -DexDescription_Plusle_2: - .string "If its partner loses, this POKéMON cries\nloudly.$" - .else -DexDescription_Plusle_1: - .string "PLUSLE always acts as a cheerleader\nfor its partners. Whenever a teammate\nputs out a good effort in battle, this$" -DexDescription_Plusle_2: - .string "POKéMON shorts out its body to create\nthe crackling noises of sparks to show\nits joy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Minun_1: - .string "MINUN loves to cheer on its partner in\nbattle. It gives off sparks from its\nbody while it is doing so.$" -DexDescription_Minun_2: - .string "If its partner is in trouble, this\nPOKéMON gives off increasing amounts\nof sparks.$" - .else -DexDescription_Minun_1: - .string "MINUN is more concerned about cheering\non its partners than its own safety.\nIt shorts out the electricity in its$" -DexDescription_Minun_2: - .string "body to create brilliant showers of\nsparks to cheer on its teammates.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Volbeat_1: - .string "VOLBEAT’s tail glows like a lightbulb.\nWith other VOLBEAT, it uses its tail to\ndraw geometric shapes in the night sky.$" -DexDescription_Volbeat_2: - .string "This POKéMON loves the sweet aroma\ngiven off by ILLUMISE.$" - .else -DexDescription_Volbeat_1: - .string "With the arrival of night, VOLBEAT emits\nlight from its tail. It communicates with\nothers by adjusting the intensity and$" -DexDescription_Volbeat_2: - .string "flashing of its light.\nThis POKéMON is attracted by the sweet\naroma of ILLUMISE.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Illumise_1: - .string "ILLUMISE leads a flight of illuminated\nVOLBEAT to draw signs in the night sky.\nThis POKéMON is said to earn greater$" -DexDescription_Illumise_2: - .string "respect from its peers by composing\nmore complex designs in the sky.$" - .else -DexDescription_Illumise_1: - .string "ILLUMISE attracts a swarm of VOLBEAT\nusing a sweet fragrance. Once the\nVOLBEAT have gathered, this POKéMON$" -DexDescription_Illumise_2: - .string "leads the lit-up swarm in drawing\ngeometric designs on the canvas of\nthe night sky.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Roselia_1: - .string "On extremely rare occasions, a ROSELIA\nis said to appear with its flowers in\nunusual colors.$" -DexDescription_Roselia_2: - .string "The thorns on this POKéMON’s head\ncontain a vicious poison.$" - .else -DexDescription_Roselia_1: - .string "ROSELIA shoots sharp thorns as\nprojectiles at any opponent that tries\nto steal the flowers on its arms.$" -DexDescription_Roselia_2: - .string "The aroma of this POKéMON brings\nserenity to living things.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gulpin_1: - .string "Most of GULPIN’s body is made up of its\nstomach - its heart and brain are very\nsmall in comparison.$" -DexDescription_Gulpin_2: - .string "This POKéMON’s stomach contains\nspecial enzymes that dissolve anything.$" - .else -DexDescription_Gulpin_1: - .string "Virtually all of GULPIN’s body is its\nstomach. As a result, it can swallow\nsomething its own size.$" -DexDescription_Gulpin_2: - .string "This POKéMON’s stomach contains a\nspecial fluid that digests anything.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swalot_1: - .string "SWALOT has no teeth, so what it\neats, it swallows whole, no matter what.\nIts cavernous mouth yawns widely.$" -DexDescription_Swalot_2: - .string "An automobile tire could easily fit\ninside this POKéMON’s mouth.$" - .else -DexDescription_Swalot_1: - .string "When SWALOT spots prey, it spurts out\na hideously toxic fluid from its pores\nand sprays the target.$" -DexDescription_Swalot_2: - .string "Once the prey has weakened, this\nPOKéMON gulps it down whole with its\ncavernous mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Carvanha_1: - .string "If anything invades CARVANHA’s\nterritory, it will swarm and tear at the\nintruder with its pointed fangs.$" -DexDescription_Carvanha_2: - .string "On its own, however, this POKéMON turns\nsuddenly timid.$" - .else -DexDescription_Carvanha_1: - .string "CARVANHA’s strongly developed jaws\nand its sharply pointed fangs pack the\ndestructive power to rip out boat hulls.$" -DexDescription_Carvanha_2: - .string "Many boats have been attacked and\nsunk by this POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sharpedo_1: - .string "SHARPEDO can swim at speeds of up to\n75 mph by jetting seawater out of its\nbackside.$" -DexDescription_Sharpedo_2: - .string "This POKéMON’s drawback is its inability\nto swim long distances.$" - .else -DexDescription_Sharpedo_1: - .string "Nicknamed “the bully of the sea,”\nSHARPEDO is widely feared.\nIts cruel fangs grow back immediately$" -DexDescription_Sharpedo_2: - .string "if they snap off.\nJust one of these POKéMON can\nthoroughly tear apart a supertanker.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wailmer_1: - .string "WAILMER can store water inside its body\nto transform itself into a ball for\nbouncing around on the ground.$" -DexDescription_Wailmer_2: - .string "By filling itself up with more water, this\nPOKéMON can elevate the height of its\nbounces.$" - .else -DexDescription_Wailmer_1: - .string "WAILMER’s nostrils are located above\nits eyes. This playful POKéMON loves\nto startle people by forcefully snorting$" -DexDescription_Wailmer_2: - .string "out seawater it stores inside its body\nout of its nostrils.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wailord_1: - .string "When chasing prey, WAILORD herds them\nby leaping out of the water and making\na humongous splash.$" -DexDescription_Wailord_2: - .string "It is breathtaking to see this POKéMON\nleaping out of the sea with others in\nits pod.$" - .else -DexDescription_Wailord_1: - .string "WAILORD is the largest of all identified\nPOKéMON up to now.\nThis giant POKéMON swims languorously$" -DexDescription_Wailord_2: - .string "in the vast open sea, eating massive\namounts of food at once with its\nenormous mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Numel_1: - .string "NUMEL stores magma of almost 2,200\ndegrees F within its body. If it gets\nwet, the magma cools and hardens.$" -DexDescription_Numel_2: - .string "In that event, the POKéMON’s body\ngrows heavy and its movements become\nsluggish.$" - .else -DexDescription_Numel_1: - .string "NUMEL is extremely dull witted - it\ndoesn’t notice being hit. However, it\ncan’t stand hunger for even a second.$" -DexDescription_Numel_2: - .string "This POKéMON’s body is a seething\ncauldron of boiling magma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Camerupt_1: - .string "The humps on CAMERUPT’s back are\nformed by a transformation of its\nbones. They sometimes blast out molten$" -DexDescription_Camerupt_2: - .string "magma. This POKéMON apparently erupts\noften when it is enraged.$" - .else -DexDescription_Camerupt_1: - .string "CAMERUPT has a volcano inside its body.\nMagma of 18,000 degrees F courses\nthrough its body.$" -DexDescription_Camerupt_2: - .string "Occasionally, the humps on this\nPOKéMON’s back erupt, spewing the\nsuperheated magma.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Torkoal_1: - .string "TORKOAL generates energy by burning\ncoal. It grows weaker as the fire\ndies down.$" -DexDescription_Torkoal_2: - .string "When it is preparing for battle, this\nPOKéMON burns more coal.$" - .else -DexDescription_Torkoal_1: - .string "TORKOAL digs through mountains in\nsearch of coal. If it finds some, it fills\nhollow spaces on its shell with the coal$" -DexDescription_Torkoal_2: - .string "and burns it.\nIf it is attacked, this POKéMON spouts\nthick black smoke to beat a retreat.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spoink_1: - .string "SPOINK keeps a pearl on top of its head.\nThe pearl functions to amplify this\nPOKéMON’s psychokinetic powers.$" -DexDescription_Spoink_2: - .string "It is therefore on a constant search\nfor a bigger pearl.$" - .else -DexDescription_Spoink_1: - .string "SPOINK bounces around on its tail.\nThe shock of its bouncing makes its\nheart pump. As a result, this POKéMON$" -DexDescription_Spoink_2: - .string "cannot afford to stop bouncing - if it\nstops, its heart will stop.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Grumpig_1: - .string "GRUMPIG uses the black pearls on its\nbody to wield its fantastic powers.\nWhen it is doing so, it dances bizarrely.$" -DexDescription_Grumpig_2: - .string "This POKéMON’s black pearls are valuable\nas works of art.$" - .else -DexDescription_Grumpig_1: - .string "GRUMPIG uses the black pearls on its\nbody to amplify its psychic power waves\nfor gaining total control over its foe.$" -DexDescription_Grumpig_2: - .string "When this POKéMON uses its special\npower, its snorting breath grows\nlabored.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spinda_1: - .string "No two SPINDA are said to have\nidentical spot patterns on their hides.\nThis POKéMON moves in a curious manner$" -DexDescription_Spinda_2: - .string "as if it is stumbling in dizziness.\nIts lurching movements can cause the\nopponent to become confused.$" - .else -DexDescription_Spinda_1: - .string "All the SPINDA that exist in the\nworld are said to have utterly unique\nspot patterns.$" -DexDescription_Spinda_2: - .string "The shaky, tottering steps of this\nPOKéMON give it the appearance of\ndancing.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Trapinch_1: - .string "TRAPINCH is a patient hunter. It digs\nan inescapable pit in a desert and waits\nfor its prey to come tumbling down.$" -DexDescription_Trapinch_2: - .string "This POKéMON can go a whole week\nwithout access to any water.$" - .else -DexDescription_Trapinch_1: - .string "TRAPINCH’s nest is a sloped, bowl-like\npit dug in sand. This POKéMON patiently\nwaits for prey to tumble down the pit.$" -DexDescription_Trapinch_2: - .string "Its giant jaws have enough strength\nto crush even boulders.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Vibrava_1: - .string "VIBRAVA’s wings have not yet\ncompleted the process of growing.\nRather than flying long distances,$" -DexDescription_Vibrava_2: - .string "they are more useful for generating\nultrasonic waves by vibrating.$" - .else -DexDescription_Vibrava_1: - .string "To make prey faint, VIBRAVA generates\nultrasonic waves by vigorously making\nits two wings vibrate.$" -DexDescription_Vibrava_2: - .string "This POKéMON’s ultrasonic waves are so\npowerful, they can bring on headaches\nin people.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Flygon_1: - .string "FLYGON whips up a sandstorm by\nflapping its wings. The wings create a\nseries of notes that sound like singing.$" -DexDescription_Flygon_2: - .string "Because the “singing” is the only thing\nthat can be heard in a sandstorm, this\nPOKéMON is said to be the desert spirit.$" - .else -DexDescription_Flygon_1: - .string "FLYGON is nicknamed “the elemental \nspirit of the desert.” Because its\nflapping wings whip up a cloud of sand,$" -DexDescription_Flygon_2: - .string "this POKéMON is always enveloped in a\nsandstorm while flying.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cacnea_1: - .string "The more arid and harsh the\nenvironment, the more pretty and\nfragrant a flower CACNEA grows.$" -DexDescription_Cacnea_2: - .string "This POKéMON battles by wildly swinging\nits thorny arms.$" - .else -DexDescription_Cacnea_1: - .string "CACNEA lives in arid locations such\nas deserts. It releases a strong aroma\nfrom its flower to attract prey.$" -DexDescription_Cacnea_2: - .string "When prey comes near, this POKéMON\nshoots sharp thorns from its body to\nbring the victim down.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cacturne_1: - .string "If a traveler is going through a desert\nin the thick of night, CACTURNE\nwill follow in a ragtag group.$" -DexDescription_Cacturne_2: - .string "The POKéMON are biding their time,\nwaiting for the traveler to tire and\nbecome incapable of moving.$" - .else -DexDescription_Cacturne_1: - .string "During the daytime, CACTURNE remains\nunmoving so that it does not lose any\nmoisture to the harsh desert sun.$" -DexDescription_Cacturne_2: - .string "This POKéMON becomes active at night\nwhen the temperature drops.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Swablu_1: - .string "SWABLU loves to make things clean.\nIf it spots something dirty, it will wipe\nand polish it with its cottony wings.$" -DexDescription_Swablu_2: - .string "If its wings become dirty, this POKéMON\nfinds a stream and showers itself.$" - .else -DexDescription_Swablu_1: - .string "SWABLU has light and fluffy wings that\nare like cottony clouds. This POKéMON\nis not frightened of people.$" -DexDescription_Swablu_2: - .string "It lands on the heads of people and\nsits there like a cotton-fluff hat.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Altaria_1: - .string "ALTARIA sings in a gorgeous soprano.\nIts wings are like cotton clouds.\nThis POKéMON catches updrafts with its$" -DexDescription_Altaria_2: - .string "buoyant wings and soars way up into\nthe wild blue yonder.$" - .else -DexDescription_Altaria_1: - .string "ALTARIA dances and wheels through the\nsky among billowing, cotton-like clouds.\nBy singing melodies in its crystal-clear$" -DexDescription_Altaria_2: - .string "voice, this POKéMON makes its listeners\nexperience dreamy wonderment.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Zangoose_1: - .string "ZANGOOSE usually stays on all fours,\nbut when angered, it gets up on its\nhind legs and extends its claws.$" -DexDescription_Zangoose_2: - .string "This POKéMON shares a bitter rivalry\nwith SEVIPER that dates back over\ngenerations.$" - .else -DexDescription_Zangoose_1: - .string "Memories of battling its arch-rival\nSEVIPER are etched into every cell of\nZANGOOSE’s body.$" -DexDescription_Zangoose_2: - .string "This POKéMON adroitly dodges attacks\nwith incredible agility.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Seviper_1: - .string "SEVIPER’s swordlike tail serves two\npurposes - it slashes foes and douses\nthem with secreted poison.$" -DexDescription_Seviper_2: - .string "This POKéMON will not give up its long-\nrunning blood feud with ZANGOOSE.$" - .else -DexDescription_Seviper_1: - .string "SEVIPER shares a generations-long\nfeud with ZANGOOSE. The scars on its\nbody are evidence of vicious battles.$" -DexDescription_Seviper_2: - .string "This POKéMON attacks using its sword-\nedged tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lunatone_1: - .string "LUNATONE becomes active around the\ntime of the full moon. Instead of\nwalking, it moves by floating in midair.$" -DexDescription_Lunatone_2: - .string "The POKéMON’s intimidating red eyes\ncause all those who see it to become\ntransfixed with fear.$" - .else -DexDescription_Lunatone_1: - .string "LUNATONE was discovered at a location\nwhere a meteorite fell. As a result, some\npeople theorize that this POKéMON$" -DexDescription_Lunatone_2: - .string "came from space. However, no one has\nbeen able to prove this theory so far.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Solrock_1: - .string "Sunlight is the source of SOLROCK’s\npower. It is said to possess the ability\nto read the emotions of others.$" -DexDescription_Solrock_2: - .string "This POKéMON gives off intense heat\nwhile rotating its body.$" - .else -DexDescription_Solrock_1: - .string "SOLROCK is a new species of POKéMON\nthat is said to have fallen from space.\nIt floats in air and moves silently.$" -DexDescription_Solrock_2: - .string "In battle, this POKéMON releases\nintensely bright light.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Barboach_1: - .string "BARBOACH’s body is covered with a\nslimy film. If a foe grabs it, this\nPOKéMON just slips out of the enemy’s$" -DexDescription_Barboach_2: - .string "grip.\nThis POKéMON grows weak if the slimy\ncoating dries up.$" - .else -DexDescription_Barboach_1: - .string "BARBOACH’s sensitive whiskers serve\nas a superb radar system.\nThis POKéMON hides in mud, leaving only$" -DexDescription_Barboach_2: - .string "its two whiskers exposed while it waits\nfor prey to come along.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Whiscash_1: - .string "If WHISCASH goes on a wild rampage,\nit sets off a quake-like tremor with a\nradius of over three miles.$" -DexDescription_Whiscash_2: - .string "This POKéMON has the ability to predict\nreal earthquakes.$" - .else -DexDescription_Whiscash_1: - .string "WHISCASH is extremely territorial.\nJust one of these POKéMON will claim a\nlarge pond as its exclusive territory.$" -DexDescription_Whiscash_2: - .string "If a foe approaches it, it thrashes\nabout and triggers a massive\nearthquake.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Corphish_1: - .string "CORPHISH catches prey with its sharp\nclaws. It has no likes or dislikes when it\ncomes to food - it will eat anything.$" -DexDescription_Corphish_2: - .string "This POKéMON has no trouble living in\nfilthy water.$" - .else -DexDescription_Corphish_1: - .string "CORPHISH were originally foreign\nPOKéMON that were imported as pets.\nThey eventually turned up in the wild.$" -DexDescription_Corphish_2: - .string "This POKéMON is very hardy and has\ngreatly increased its population.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Crawdaunt_1: - .string "CRAWDAUNT molts (sheds) its shell\nregularly. Immediately after molting,\nits shell is soft and tender.$" -DexDescription_Crawdaunt_2: - .string "Until the shell hardens, this POKéMON\nhides in its streambed burrow to avoid\nattack from its foes.$" - .else -DexDescription_Crawdaunt_1: - .string "CRAWDAUNT has an extremely violent\nnature that compels it to challenge\nother living things to battle.$" -DexDescription_Crawdaunt_2: - .string "Other life-forms refuse to live in\nponds inhabited by this POKéMON,\nmaking them desolate places.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Baltoy_1: - .string "As soon as it spots others of its kind,\nBALTOY congregates with them and\nthen begins crying noisily in unison.$" -DexDescription_Baltoy_2: - .string "This POKéMON sleeps while cleverly\nbalancing itself on its one foot.$" - .else -DexDescription_Baltoy_1: - .string "BALTOY moves while spinning around on\nits one foot. Primitive wall paintings\ndepicting this POKéMON living among$" -DexDescription_Baltoy_2: - .string "people were discovered in some ancient\nruins.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Claydol_1: - .string "CLAYDOL is an enigma that appeared\nfrom a clay statue made by an ancient\ncivilization dating back 20,000 years.$" -DexDescription_Claydol_2: - .string "This POKéMON shoots beams from both\nits hands.$" - .else -DexDescription_Claydol_1: - .string "CLAYDOL are said to be dolls of mud made\nby primitive humans and brought to life\nby exposure to a mysterious ray.$" -DexDescription_Claydol_2: - .string "This POKéMON moves about while\nlevitating.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Lileep_1: - .string "LILEEP is an ancient POKéMON that was\nregenerated from a fossil. It remains\npermanently anchored to a rock.$" -DexDescription_Lileep_2: - .string "From its immobile perch, this POKéMON\nintently scans for prey with its two\neyes.$" - .else -DexDescription_Lileep_1: - .string "LILEEP became extinct approximately\na hundred million years ago.\nThis ancient POKéMON attaches itself$" -DexDescription_Lileep_2: - .string "to a rock on the seafloor and catches\napproaching prey using tentacles \nshaped like flower petals.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Cradily_1: - .string "CRADILY’s body serves as an anchor,\npreventing it from being washed away in\nrough seas.$" -DexDescription_Cradily_2: - .string "This POKéMON secretes a strong\ndigestive fluid from its tentacles.$" - .else -DexDescription_Cradily_1: - .string "CRADILY roams around the ocean floor\nin search of food. This POKéMON freely\nextends its tree trunk-like neck and$" -DexDescription_Cradily_2: - .string "captures unwary prey using its eight\ntentacles.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Anorith_1: - .string "ANORITH is said to be a type of \nPOKéMON predecessor, with eight wings\nat the sides of its body.$" -DexDescription_Anorith_2: - .string "This POKéMON swam in the primordial sea\nby undulating these eight wings.$" - .else -DexDescription_Anorith_1: - .string "ANORITH was regenerated from a\nprehistoric fossil. This primitive\nPOKéMON once lived in warm seas.$" -DexDescription_Anorith_2: - .string "It grips its prey firmly between its\ntwo large claws.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Armaldo_1: - .string "ARMALDO is a POKéMON species that\nbecame extinct in prehistoric times.\nThis POKéMON is said to have walked on$" -DexDescription_Armaldo_2: - .string "its hind legs, which would have been\nmore convenient for life on land.$" - .else -DexDescription_Armaldo_1: - .string "ARMALDO’s tough armor makes all attacks\nbounce off. This POKéMON’s two\nenormous claws can be freely extended$" -DexDescription_Armaldo_2: - .string "or contracted. They have the power to\npunch right through a steel slab.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Feebas_1: - .string "While FEEBAS’s body is in tatters,\nit has a hardy and tenacious life force\nthat enables it to live anywhere.$" -DexDescription_Feebas_2: - .string "However, this POKéMON is also slow and\ndimwitted, making it an easy catch.$" - .else -DexDescription_Feebas_1: - .string "FEEBAS’s fins are ragged and\ntattered from the start of its life.\nBecause of its shoddy appearance, this$" -DexDescription_Feebas_2: - .string "POKéMON is largely ignored.\nIt is capable of living in both the sea\nand in rivers.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Milotic_1: - .string "MILOTIC live at the bottom of large\nlakes. When this POKéMON’s body glows a\nvivid pink, it releases a pulsing wave of$" -DexDescription_Milotic_2: - .string "energy that brings soothing calm to\nrestless spirits.$" - .else -DexDescription_Milotic_1: - .string "MILOTIC is said to be the most\nbeautiful of all the POKéMON.\nIt has the power to becalm such$" -DexDescription_Milotic_2: - .string "emotions as anger and hostility to quell\nbitter feuding.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Castform_1: - .string "CASTFORM borrows the power of nature\nto transform itself into the guises of\nthe sun, rain clouds, and snow clouds.$" -DexDescription_Castform_2: - .string "This POKéMON’s feelings change with the\nweather.$" - .else -DexDescription_Castform_1: - .string "CASTFORM’s appearance changes with\nthe weather.\nThis POKéMON gained the ability to use$" -DexDescription_Castform_2: - .string "the vast power of nature to protect\nits tiny body.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kecleon_1: - .string "KECLEON alters its body coloration to\nblend in with its surroundings, allowing\nit to sneak up on its prey unnoticed.$" -DexDescription_Kecleon_2: - .string "Then it lashes out with its long,\nstretchy tongue to instantly ensnare\nthe unsuspecting target.$" - .else -DexDescription_Kecleon_1: - .string "KECLEON is capable of changing its body\ncolors at will to blend in with its\nsurroundings.$" -DexDescription_Kecleon_2: - .string "There is one exception - this POKéMON\ncan’t change the zigzag pattern on its\nbelly.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shuppet_1: - .string "SHUPPET grows by feeding on dark\nemotions, such as vengefulness and \nenvy, in the hearts of people.$" -DexDescription_Shuppet_2: - .string "It roams through cities in search of\ngrudges that taint people.$" - .else -DexDescription_Shuppet_1: - .string "SHUPPET is attracted by feelings\nof jealousy and vindictiveness.\nIf someone develops strong feelings of$" -DexDescription_Shuppet_2: - .string "vengeance, this POKéMON will appear\nin a swarm and line up beneath the eaves\nof that person’s home.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Banette_1: - .string "A cursed energy permeated the stuffing\nof a discarded and forgotten plush doll,\ngiving it new life as BANETTE.$" -DexDescription_Banette_2: - .string "The POKéMON’s energy would escape if it\nwere to ever open its mouth.$" - .else -DexDescription_Banette_1: - .string "BANETTE generates energy for laying\nstrong curses by sticking pins into its\nown body.$" -DexDescription_Banette_2: - .string "This POKéMON was originally a pitiful\nplush doll that was thrown away.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Duskull_1: - .string "DUSKULL wanders lost among the deep\ndarkness of midnight. There is an oft-\ntold admonishment given to misbehaving$" -DexDescription_Duskull_2: - .string "children that this POKéMON will spirit\naway bad children who earn scoldings\nfrom their mothers.$" - .else -DexDescription_Duskull_1: - .string "DUSKULL can pass through any wall no\nmatter how thick it may be.\nOnce this POKéMON chooses a target,$" -DexDescription_Duskull_2: - .string "it will doggedly pursue the intended\nvictim until the break of dawn.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Dusclops_1: - .string "DUSCLOPS absorbs anything, however\nlarge the object may be. This POKéMON\nhypnotizes its foe by waving its hands$" -DexDescription_Dusclops_2: - .string "in a macabre manner and by bringing its\nsingle eye to bear. The hypnotized foe\nis made to do DUSCLOPS’s bidding.$" - .else -DexDescription_Dusclops_1: - .string "DUSCLOPS’s body is completely hollow -\nthere is nothing at all inside.\nIt is said that its body is like a black$" -DexDescription_Dusclops_2: - .string "hole. This POKéMON will absorb anything\ninto its body, but nothing will ever come\nback out.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Tropius_1: - .string "Children of the southern tropics eat\nas snacks the fruit that grows in\nbunches around the neck of TROPIUS.$" -DexDescription_Tropius_2: - .string "This POKéMON flies by flapping the\nleaves on its back as if they were\nwings.$" - .else -DexDescription_Tropius_1: - .string "The bunches of fruit around TROPIUS’s\nneck are very popular with children.\nThis POKéMON loves fruit, and eats it$" -DexDescription_Tropius_2: - .string "continuously. Apparently, its love for\nfruit resulted in its own outgrowth\nof fruit.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Chimecho_1: - .string "In high winds, CHIMECHO cries as it\nhangs from a tree branch or the eaves\nof a building using a suction cup on its$" -DexDescription_Chimecho_2: - .string "head.\nThis POKéMON plucks berries with its\nlong tail and eats them.$" - .else -DexDescription_Chimecho_1: - .string "CHIMECHO makes its cries echo\ninside its hollow body. When this\nPOKéMON becomes enraged, its cries$" -DexDescription_Chimecho_2: - .string "result in ultrasonic waves that have\nthe power to knock foes flying.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Absol_1: - .string "ABSOL has the ability to foretell the\ncoming of natural disasters.\nIt lives in a harsh, rugged mountain$" -DexDescription_Absol_2: - .string "environment. This POKéMON very rarely\nventures down from the mountains.$" - .else -DexDescription_Absol_1: - .string "Every time ABSOL appears before people,\nit is followed by a disaster such as an\nearthquake or a tidal wave.$" -DexDescription_Absol_2: - .string "As a result, it came to be known as the\ndisaster POKéMON.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Wynaut_1: - .string "WYNAUT gather on moonlit nights to play\nby squeezing up against each other.\nBy being squeezed, this POKéMON gains$" -DexDescription_Wynaut_2: - .string "endurance and is trained to dole out\npowerful counterattacks.$" - .else -DexDescription_Wynaut_1: - .string "WYNAUT can always be seen with a big,\nhappy smile on its face. Look at its tail\nto determine if it is angry.$" -DexDescription_Wynaut_2: - .string "When angered, this POKéMON will be\nslapping the ground with its tail.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Snorunt_1: - .string "SNORUNT survives by eating only snow\nand ice.\nOld folklore claims that a house visited$" -DexDescription_Snorunt_2: - .string "by this POKéMON is sure to prosper for\nmany generations to come.$" - .else -DexDescription_Snorunt_1: - .string "SNORUNT live in regions with heavy\nsnowfall. In seasons without snow, such\nas spring and summer, this POKéMON$" -DexDescription_Snorunt_2: - .string "steals away to live quietly among\nstalactites and stalagmites deep in\ncaverns.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Glalie_1: - .string "GLALIE has the ability to freely\ncontrol ice. For example, it can\ninstantly freeze its foe solid.$" -DexDescription_Glalie_2: - .string "After immobilizing its foe in ice, this\nPOKéMON enjoys eating it in leisurely\nfashion.$" - .else -DexDescription_Glalie_1: - .string "GLALIE has a body made of rock, which it\nhardens with an armor of ice.\nThis POKéMON has the ability to freeze$" -DexDescription_Glalie_2: - .string "moisture in the atmosphere into any\nshape it desires.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Spheal_1: - .string "SPHEAL always travels by rolling\naround on its ball-like body. When the\nseason for ice floes arrives, this$" -DexDescription_Spheal_2: - .string "POKéMON can be seen rolling about on\nice and crossing the sea.$" - .else -DexDescription_Spheal_1: - .string "SPHEAL is much faster rolling than \nwalking to get around. When groups of\nthis POKéMON eat, they all clap at once$" -DexDescription_Spheal_2: - .string "to show their pleasure. Because of this,\ntheir mealtimes are noisy.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Sealeo_1: - .string "SEALEO often balances and rolls\nthings on the tip of its nose. While the\nPOKéMON is rolling something, it checks$" -DexDescription_Sealeo_2: - .string "the object’s aroma and texture to\ndetermine whether it likes the object\nor not.$" - .else -DexDescription_Sealeo_1: - .string "SEALEO has the habit of always juggling\non the tip of its nose anything it sees\nfor the first time.$" -DexDescription_Sealeo_2: - .string "This POKéMON occasionally entertains\nitself by balancing and rolling a SPHEAL\non its nose.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Walrein_1: - .string "WALREIN swims all over in frigid\nseawater while crushing icebergs with\nits grand, imposing tusks.$" -DexDescription_Walrein_2: - .string "Its thick layer of blubber makes enemy\nattacks bounce off harmlessly.$" - .else -DexDescription_Walrein_1: - .string "WALREIN’s two massively developed\ntusks can totally shatter blocks of\nice weighing ten tons with one blow.$" -DexDescription_Walrein_2: - .string "This POKéMON’s thick coat of blubber\ninsulates it from subzero temperatures.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Clamperl_1: - .string "CLAMPERL grows while being protected\nby its rock-hard shell. When its body\nbecomes too large to fit inside the$" -DexDescription_Clamperl_2: - .string "shell, it is sure evidence that this\nPOKéMON is getting close to evolution.$" - .else -DexDescription_Clamperl_1: - .string "CLAMPERL’s sturdy shell is not only good\nfor protection - it is also used for\nclamping and catching prey.$" -DexDescription_Clamperl_2: - .string "A fully grown CLAMPERL’s shell will be\nscored with nicks and scratches all\nover.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Huntail_1: - .string "HUNTAIL’s tail is shaped like a fish.\nIt uses the tail to attract prey, then\nswallows the prey whole with its large,$" -DexDescription_Huntail_2: - .string "gaping mouth.\nThis POKéMON swims by wiggling its\nslender body like a snake.$" - .else -DexDescription_Huntail_1: - .string "HUNTAIL’s presence went unnoticed by\npeople for a long time because it lives\nat extreme depths in the sea.$" -DexDescription_Huntail_2: - .string "This POKéMON’s eyes can see clearly\neven in the murky dark depths of the\nocean.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Gorebyss_1: - .string "Although GOREBYSS is the very picture\nof elegance and beauty while swimming,\nit is also cruel. When it spots prey, this$" -DexDescription_Gorebyss_2: - .string "POKéMON inserts its thin mouth into the\nprey’s body and drains the prey of its\nbody fluids.$" - .else -DexDescription_Gorebyss_1: - .string "GOREBYSS lives in the southern seas\nat extreme depths. Its body is built to\nwithstand the enormous pressure of$" -DexDescription_Gorebyss_2: - .string "water at incredible depths. Because of\nthis, this POKéMON’s body is unharmed\nby ordinary attacks.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Relicanth_1: - .string "RELICANTH is a rare species that was\ndiscovered in deep-sea explorations.\nThis POKéMON’s body withstands the$" -DexDescription_Relicanth_2: - .string "enormous water pressure of the ocean\ndepths. Its body is covered in tough\nscales that are like craggy rocks.$" - .else -DexDescription_Relicanth_1: - .string "RELICANTH is a POKéMON species that\nexisted for a hundred million years\nwithout ever changing its form.$" -DexDescription_Relicanth_2: - .string "This ancient POKéMON feeds on\nmicroscopic organisms with its\ntoothless mouth.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Luvdisc_1: - .string "LUVDISC’s heart-shaped body is a\nsymbol of love and romance.\nIt is said that any couple meeting this$" -DexDescription_Luvdisc_2: - .string "POKéMON is promised a loving\nrelationship that never ends.$" - .else -DexDescription_Luvdisc_1: - .string "LUVDISC live in shallow seas in the\ntropics. This heart-shaped POKéMON\nearned its name by swimming after$" -DexDescription_Luvdisc_2: - .string "loving couples it spotted in the\nocean’s waves.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Bagon_1: - .string "BAGON harbors a never-ending dream of\none day soaring high among the clouds.\nAs if trying to dispel its frustration$" -DexDescription_Bagon_2: - .string "over its inability to fly, this POKéMON\nslams its hard head against huge rocks\nand shatters them into pebbles.$" - .else -DexDescription_Bagon_1: - .string "BAGON has a dream of one day soaring\nin the sky. In doomed efforts to fly,\nthis POKéMON hurls itself off cliffs.$" -DexDescription_Bagon_2: - .string "As a result of its dives, its head has \ngrown tough and as hard as tempered\nsteel.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Shelgon_1: - .string "Covering SHELGON’s body are outgrowths\nmuch like bones. The shell is very hard\nand bounces off enemy attacks.$" -DexDescription_Shelgon_2: - .string "When awaiting evolution, this POKéMON\nhides away in a cavern.$" - .else -DexDescription_Shelgon_1: - .string "Inside SHELGON’s armor-like shell, cells\nare in the midst of transformation\nto create an entirely new body.$" -DexDescription_Shelgon_2: - .string "This POKéMON’s shell is extremely heavy,\nmaking its movements sluggish.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Salamence_1: - .string "By evolving into SALAMENCE, this\nPOKéMON finally realizes its long-held\ndream of growing wings.$" -DexDescription_Salamence_2: - .string "To express its joy, it flies and wheels\nall over the sky while spouting flames\nfrom its mouth.$" - .else -DexDescription_Salamence_1: - .string "SALAMENCE came about as a result of a\nstrong, long-held dream of growing\nwings. It is said that this powerful$" -DexDescription_Salamence_2: - .string "desire triggered a sudden mutation in\nthis POKéMON’s cells, causing it to\nsprout its magnificent wings.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Beldum_1: - .string "BELDUM keeps itself floating by\ngenerating a magnetic force that\nrepels earth’s natural magnetism.$" -DexDescription_Beldum_2: - .string "When it sleeps, this POKéMON anchors\nitself to a cliff using the hooks on\nits rear.$" - .else -DexDescription_Beldum_1: - .string "Instead of blood, a powerful magnetic\nforce courses throughout BELDUM’s\nbody. This POKéMON communicates with$" -DexDescription_Beldum_2: - .string "others by sending controlled pulses of\nmagnetism.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Metang_1: - .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$" -DexDescription_Metang_2: - .string "This POKéMON turns its arms to the rear\nfor traveling at high speed.$" - .else -DexDescription_Metang_1: - .string "When two BELDUM fuse together, METANG\nis formed. The brains of the BELDUM are\njoined by a magnetic nervous system.$" -DexDescription_Metang_2: - .string "By linking its brains magnetically,\nthis POKéMON generates strong\npsychokinetic power.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Metagross_1: - .string "METAGROSS is the result of two METANG\nachieving fusion. When hunting, this\nPOKéMON pins the prey to the ground$" -DexDescription_Metagross_2: - .string "under its massive body. It then eats\nthe helpless victim using the large \nmouth on its stomach.$" - .else -DexDescription_Metagross_1: - .string "METAGROSS has four brains in total.\nCombined, the four brains can breeze\nthrough difficult calculations faster$" -DexDescription_Metagross_2: - .string "than a supercomputer.\nThis POKéMON can float in the air by\ntucking in its four legs.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Regirock_1: - .string "REGIROCK’s body is composed entirely of\nrocks. Recently, a study made the\nstartling discovery that the rocks$" -DexDescription_Regirock_2: - .string "were all unearthed from different\nlocations.$" - .else -DexDescription_Regirock_1: - .string "REGIROCK was sealed away by people\nlong ago. If this POKéMON’s body is\ndamaged in battle, it is said to seek$" -DexDescription_Regirock_2: - .string "out suitable rocks on its own to repair\nitself.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Regice_1: - .string "REGICE cloaks itself with frigid air of\nnegative 328 degrees F.\nThings will freeze solid just by going$" -DexDescription_Regice_2: - .string "near this POKéMON.\nIts icy body is so cold, it will not melt\neven if it is immersed in magma.$" - .else -DexDescription_Regice_1: - .string "REGICE’s body was made during an ice\nage. The deep-frozen body can’t be\nmelted, even by fire.$" -DexDescription_Regice_2: - .string "This POKéMON controls frigid air of\nminus 328 degrees F.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Registeel_1: - .string "REGISTEEL was imprisoned by people\nin ancient times.\nThe metal composing its body is thought$" -DexDescription_Registeel_2: - .string "to be a curious substance that is not\nof this earth.$" - .else -DexDescription_Registeel_1: - .string "REGISTEEL has a body that is harder\nthan any kind of metal.\nIts body is apparently hollow.$" -DexDescription_Registeel_2: - .string "No one has any idea what this POKéMON\neats.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Latias_1: - .string "LATIAS is highly intelligent and capable\nof understanding human speech.\nIt is covered with a glass-like down.$" -DexDescription_Latias_2: - .string "The POKéMON enfolds its body with its\ndown and refracts light to alter its\nappearance.$" - .else -DexDescription_Latias_1: - .string "LATIAS is highly sensitive to the\nemotions of people. If it senses any\nhostility, this POKéMON ruffles the$" -DexDescription_Latias_2: - .string "feathers all over its body and cries\nshrilly to intimidate the foe.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Latios_1: - .string "LATIOS will only open its heart to a\nTRAINER with a compassionate spirit.\nThis POKéMON can fly faster than a jet$" -DexDescription_Latios_2: - .string "plane by folding its forelegs to minimize\nair resistance.$" - .else -DexDescription_Latios_1: - .string "LATIOS has the ability to make its foe\nsee an image of what it has seen or\nimagines in its head.$" -DexDescription_Latios_2: - .string "This POKéMON is intelligent and\nunderstands human speech.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Kyogre_1: - .string "KYOGRE is named in mythology as the\nPOKéMON that expanded the sea by\ncovering the land with torrential rains$" -DexDescription_Kyogre_2: - .string "and towering tidal waves.\nIt took to sleep after a cataclysmic\nbattle with GROUDON.$" - .else -DexDescription_Kyogre_1: - .string "KYOGRE has the power to create massive\nrain clouds that cover the entire sky\nand bring about torrential downpours.$" -DexDescription_Kyogre_2: - .string "This POKéMON saved people who were\nsuffering from droughts.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Groudon_1: - .string "GROUDON has the power to scatter rain\nclouds and make water evaporate with\nlight and heat.$" -DexDescription_Groudon_2: - .string "It came as a savior to people who had\nbeen suffering from terrible floods.$" - .else -DexDescription_Groudon_1: - .string "GROUDON has long been described in \nmythology as the POKéMON that raised\nlands and expanded continents.$" -DexDescription_Groudon_2: - .string "This POKéMON took to sleep after a\ncataclysmic battle with KYOGRE.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Rayquaza_1: - .string "RAYQUAZA is said to have lived for\nhundreds of millions of years in the\nearth’s ozone layer, above the clouds.$" -DexDescription_Rayquaza_2: - .string "Its existence had been completely\nunknown because it lived so high in\nthe sky.$" - .else -DexDescription_Rayquaza_1: - .string "RAYQUAZA lived for hundreds of millions\nof years in the earth’s ozone layer, \nnever descending to the ground.$" -DexDescription_Rayquaza_2: - .string "This POKéMON appears to feed on water\nand particles in the atmosphere.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Jirachi_1: - .string "JIRACHI will awaken from its sleep of\na thousand years if you sing to it in a\nvoice of purity.$" -DexDescription_Jirachi_2: - .string "It is said to make true any wish that\npeople desire.$" - .else -DexDescription_Jirachi_1: - .string "A legend states that JIRACHI will make\ntrue any wish that is written on notes\nattached to its head when it awakens.$" -DexDescription_Jirachi_2: - .string "If this POKéMON senses danger, it will\nfight without awakening.$" - .endif - - .ifdef SAPPHIRE -DexDescription_Deoxys_1: - .string "DEOXYS emerged from a virus that came\nfrom space. It is highly intelligent and\nwields psychokinetic powers.$" -DexDescription_Deoxys_2: - .string "This POKéMON shoots lasers from the\ncrystalline organ on its chest.$" - .else -DexDescription_Deoxys_1: - .string "The DNA of a space virus underwent a\nsudden mutation upon exposure to a\nlaser beam and resulted in DEOXYS.$" -DexDescription_Deoxys_2: - .string "The crystalline organ on this POKéMON’s\nchest appears to be its brain.$" - .endif - -@ Unfortunately, preproc doesn't allow us to use strings inside macros, -@ so the category names have to be on separate lines. - - .align 2 -gPokedexEntries:: @ 83B1858 - .string "UNKNOWN$", 12 - pokedex_entry Dummy, 0, 0, 256, 0, 256, 0 - .string "SEED$", 12 - pokedex_entry Bulbasaur, 7, 69, 356, 17, 256, 0 - .string "SEED$", 12 - pokedex_entry Ivysaur, 10, 130, 335, 13, 256, 0 - .string "SEED$", 12 - pokedex_entry Venusaur, 20, 1000, 256, 0, 388, 6 - .string "LIZARD$", 12 - pokedex_entry Charmander, 6, 85, 444, 18, 256, 0 - .string "FLAME$", 12 - pokedex_entry Charmeleon, 11, 190, 302, 9, 256, 0 - .string "FLAME$", 12 - pokedex_entry Charizard, 17, 905, 256, 1, 302, 3 - .string "TINY TURTLE$", 12 - pokedex_entry Squirtle, 5, 90, 412, 18, 256, 0 - .string "TURTLE$", 12 - pokedex_entry Wartortle, 10, 225, 332, 10, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Blastoise, 16, 855, 256, -1, 293, 2 - .string "WORM$", 12 - pokedex_entry Caterpie, 3, 29, 549, 22, 256, 0 - .string "COCOON$", 12 - pokedex_entry Metapod, 7, 99, 350, 18, 256, 0 - .string "BUTTERFLY$", 12 - pokedex_entry Butterfree, 11, 320, 312, 2, 256, 0 - .string "HAIRY BUG$", 12 - pokedex_entry Weedle, 3, 32, 455, 22, 256, 0 - .string "COCOON$", 12 - pokedex_entry Kakuna, 6, 100, 424, 17, 256, 0 - .string "POISON BEE$", 12 - pokedex_entry Beedrill, 10, 295, 366, 2, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Pidgey, 3, 18, 508, -3, 256, 0 - .string "BIRD$", 12 - pokedex_entry Pidgeotto, 11, 300, 331, 10, 256, 0 - .string "BIRD$", 12 - pokedex_entry Pidgeot, 15, 395, 269, 0, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Rattata, 3, 35, 481, 21, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Raticate, 7, 185, 459, 18, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Spearow, 3, 20, 571, 22, 256, 0 - .string "BEAK$", 12 - pokedex_entry Fearow, 12, 380, 278, 1, 256, 0 - .string "SNAKE$", 12 - pokedex_entry Ekans, 20, 69, 298, 12, 256, 0 - .string "COBRA$", 12 - pokedex_entry Arbok, 35, 650, 256, 0, 296, 2 - .string "MOUSE$", 12 - pokedex_entry Pikachu, 4, 60, 479, 19, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Raichu, 8, 300, 426, 13, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Sandshrew, 6, 120, 365, 18, 256, 0 - .string "MOUSE$", 12 - pokedex_entry Sandslash, 10, 295, 341, 11, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry NidoranF, 4, 70, 488, 21, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry Nidorina, 8, 200, 381, 15, 256, 0 - .string "DRILL$", 12 - pokedex_entry Nidoqueen, 13, 600, 293, 4, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry NidoranM, 5, 90, 511, 20, 256, 0 - .string "POISON PIN$", 12 - pokedex_entry Nidorino, 9, 195, 408, 15, 256, 0 - .string "DRILL$", 12 - pokedex_entry Nidoking, 14, 620, 256, 0, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Clefairy, 6, 75, 441, 20, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Clefable, 13, 400, 256, 5, 256, 0 - .string "FOX$", 12 - pokedex_entry Vulpix, 6, 99, 542, 19, 256, 0 - .string "FOX$", 12 - pokedex_entry Ninetales, 11, 199, 339, 10, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Jigglypuff, 5, 55, 433, 2, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Wigglytuff, 10, 120, 328, 11, 256, 0 - .string "BAT$", 12 - pokedex_entry Zubat, 8, 75, 362, -5, 256, 0 - .string "BAT$", 12 - pokedex_entry Golbat, 16, 550, 256, 1, 256, 0 - .string "WEED$", 12 - pokedex_entry Oddish, 5, 54, 423, 19, 256, 0 - .string "WEED$", 12 - pokedex_entry Gloom, 8, 86, 329, 13, 256, 0 - .string "FLOWER$", 12 - pokedex_entry Vileplume, 12, 186, 256, 4, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Paras, 3, 54, 593, 22, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Parasect, 10, 295, 307, 8, 256, 0 - .string "INSECT$", 12 - pokedex_entry Venonat, 10, 300, 360, 0, 256, -1 - .string "POISON MOTH$", 12 - pokedex_entry Venomoth, 15, 125, 285, 2, 256, 1 - .string "MOLE$", 12 - pokedex_entry Diglett, 2, 8, 833, 25, 256, 0 - .string "MOLE$", 12 - pokedex_entry Dugtrio, 7, 333, 406, 18, 256, 0 - .string "SCRATCH CAT$", 12 - pokedex_entry Meowth, 4, 42, 480, 19, 256, 0 - .string "CLASSY CAT$", 12 - pokedex_entry Persian, 10, 320, 320, 10, 256, 0 - .string "DUCK$", 12 - pokedex_entry Psyduck, 8, 196, 369, 15, 256, 0 - .string "DUCK$", 12 - pokedex_entry Golduck, 17, 766, 256, 1, 273, 1 - .string "PIG MONKEY$", 12 - pokedex_entry Mankey, 5, 280, 404, 19, 256, 0 - .string "PIG MONKEY$", 12 - pokedex_entry Primeape, 10, 320, 326, 10, 256, 0 - .string "PUPPY$", 12 - pokedex_entry Growlithe, 7, 190, 346, 14, 256, 0 - .string "LEGENDARY$", 12 - pokedex_entry Arcanine, 19, 1550, 256, 1, 312, 4 - .string "TADPOLE$", 12 - pokedex_entry Poliwag, 6, 124, 369, 20, 256, 0 - .string "TADPOLE$", 12 - pokedex_entry Poliwhirl, 10, 200, 288, 11, 256, 0 - .string "TADPOLE$", 12 - pokedex_entry Poliwrath, 13, 540, 256, 6, 256, 0 - .string "PSI$", 12 - pokedex_entry Abra, 9, 195, 363, 14, 256, 0 - .string "PSI$", 12 - pokedex_entry Kadabra, 13, 565, 256, 3, 256, 0 - .string "PSI$", 12 - pokedex_entry Alakazam, 15, 480, 256, 3, 256, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machop, 8, 195, 342, 14, 256, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machoke, 15, 705, 323, 9, 257, 0 - .string "SUPERPOWER$", 12 - pokedex_entry Machamp, 16, 1300, 280, 1, 269, -1 - .string "FLOWER$", 12 - pokedex_entry Bellsprout, 7, 40, 354, 16, 256, 0 - .string "FLYCATCHER$", 12 - pokedex_entry Weepinbell, 10, 64, 256, 0, 256, 0 - .string "FLYCATCHER$", 12 - pokedex_entry Victreebel, 17, 155, 256, 1, 312, 3 - .string "JELLYFISH$", 12 - pokedex_entry Tentacool, 9, 455, 256, 0, 256, 0 - .string "JELLYFISH$", 12 - pokedex_entry Tentacruel, 16, 550, 256, 0, 312, 1 - .string "ROCK$", 12 - pokedex_entry Geodude, 4, 200, 347, 18, 256, 0 - .string "ROCK$", 12 - pokedex_entry Graveler, 10, 1050, 256, 2, 256, 0 - .string "MEGATON$", 12 - pokedex_entry Golem, 14, 3000, 256, 3, 296, 2 - .string "FIRE HORSE$", 12 - pokedex_entry Ponyta, 10, 300, 283, 8, 256, 0 - .string "FIRE HORSE$", 12 - pokedex_entry Rapidash, 17, 950, 256, 0, 289, 1 - .string "DOPEY$", 12 - pokedex_entry Slowpoke, 12, 360, 256, 10, 256, 0 - .string "HERMIT CRAB$", 12 - pokedex_entry Slowbro, 16, 785, 256, 6, 296, 2 - .string "MAGNET$", 12 - pokedex_entry Magnemite, 3, 60, 288, -9, 256, 0 - .string "MAGNET$", 12 - pokedex_entry Magneton, 10, 600, 292, 1, 256, 0 - .string "WILD DUCK$", 12 - pokedex_entry Farfetchd, 8, 150, 330, 2, 293, 2 - .string "TWIN BIRD$", 12 - pokedex_entry Doduo, 14, 392, 256, 3, 257, -1 - .string "TRIPLE BIRD$", 12 - pokedex_entry Dodrio, 18, 852, 256, 0, 268, 0 - .string "SEA LION$", 12 - pokedex_entry Seel, 11, 900, 297, 8, 256, 0 - .string "SEA LION$", 12 - pokedex_entry Dewgong, 17, 1200, 256, 0, 275, 0 - .string "SLUDGE$", 12 - pokedex_entry Grimer, 9, 300, 258, 10, 256, 0 - .string "SLUDGE$", 12 - pokedex_entry Muk, 12, 300, 256, 2, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Shellder, 3, 40, 675, 24, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Cloyster, 15, 1325, 256, 0, 269, 1 - .string "GAS$", 12 - pokedex_entry Gastly, 13, 1, 256, 0, 256, 0 - .string "GAS$", 12 - pokedex_entry Haunter, 16, 1, 256, 2, 293, 2 - .string "SHADOW$", 12 - pokedex_entry Gengar, 15, 405, 256, 2, 302, 2 - .string "ROCK SNAKE$", 12 - pokedex_entry Onix, 88, 2100, 256, 1, 515, 14 - .string "HYPNOSIS$", 12 - pokedex_entry Drowzee, 10, 324, 274, 6, 256, 0 - .string "HYPNOSIS$", 12 - pokedex_entry Hypno, 16, 756, 256, 3, 257, 0 - .string "RIVER CRAB$", 12 - pokedex_entry Krabby, 4, 65, 469, 20, 256, 0 - .string "PINCER$", 12 - pokedex_entry Kingler, 13, 600, 256, 2, 256, 0 - .string "BALL$", 12 - pokedex_entry Voltorb, 5, 104, 364, -8, 256, 0 - .string "BALL$", 12 - pokedex_entry Electrode, 12, 666, 256, 0, 256, 0 - .string "EGG$", 12 - pokedex_entry Exeggcute, 4, 25, 489, -4, 256, 0 - .string "COCONUT$", 12 - pokedex_entry Exeggutor, 20, 1200, 256, 0, 309, 5 - .string "LONELY$", 12 - pokedex_entry Cubone, 4, 65, 545, 21, 256, 0 - .string "BONE KEEPER$", 12 - pokedex_entry Marowak, 10, 450, 293, 12, 256, 0 - .string "KICKING$", 12 - pokedex_entry Hitmonlee, 15, 498, 256, 3, 259, 1 - .string "PUNCHING$", 12 - pokedex_entry Hitmonchan, 14, 502, 256, 2, 277, 2 - .string "LICKING$", 12 - pokedex_entry Lickitung, 12, 655, 256, 4, 256, 0 - .string "POISON GAS$", 12 - pokedex_entry Koffing, 6, 10, 369, -1, 256, 0 - .string "POISON GAS$", 12 - pokedex_entry Weezing, 12, 95, 305, 3, 256, 0 - .string "SPIKES$", 12 - pokedex_entry Rhyhorn, 10, 1150, 267, 6, 256, 0 - .string "DRILL$", 12 - pokedex_entry Rhydon, 19, 1200, 256, 1, 299, 2 - .string "EGG$", 12 - pokedex_entry Chansey, 11, 346, 257, 7, 256, 0 - .string "VINE$", 12 - pokedex_entry Tangela, 10, 350, 304, 1, 256, 0 - .string "PARENT$", 12 - pokedex_entry Kangaskhan, 22, 800, 256, 0, 387, 8 - .string "DRAGON$", 12 - pokedex_entry Horsea, 4, 80, 399, -1, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Seadra, 12, 250, 299, 3, 256, 0 - .string "GOLDFISH$", 12 - pokedex_entry Goldeen, 6, 150, 379, 4, 256, 0 - .string "GOLDFISH$", 12 - pokedex_entry Seaking, 13, 390, 256, 3, 256, 0 - .string "STAR SHAPE$", 12 - pokedex_entry Staryu, 8, 345, 326, 1, 256, 0 - .string "MYSTERIOUS$", 12 - pokedex_entry Starmie, 11, 800, 301, 3, 256, 0 - .string "BARRIER$", 12 - pokedex_entry Mrmime, 13, 545, 258, 6, 256, 0 - .string "MANTIS$", 12 - pokedex_entry Scyther, 15, 560, 256, 1, 293, 2 - .string "HUMAN SHAPE$", 12 - pokedex_entry Jynx, 14, 406, 256, 3, 300, 1 - .string "ELECTRIC$", 12 - pokedex_entry Electabuzz, 11, 300, 351, 8, 256, 0 - .string "SPITFIRE$", 12 - pokedex_entry Magmar, 13, 445, 277, 5, 256, 0 - .string "STAG BEETLE$", 12 - pokedex_entry Pinsir, 15, 550, 256, 2, 257, 0 - .string "WILD BULL$", 12 - pokedex_entry Tauros, 14, 884, 256, 0, 256, 0 - .string "FISH$", 12 - pokedex_entry Magikarp, 9, 100, 310, 4, 256, 0 - .string "ATROCIOUS$", 12 - pokedex_entry Gyarados, 65, 2350, 256, 6, 481, 13 - .string "TRANSPORT$", 12 - pokedex_entry Lapras, 25, 2200, 257, 10, 423, 8 - .string "TRANSFORM$", 12 - pokedex_entry Ditto, 3, 40, 633, 23, 256, 0 - .string "EVOLUTION$", 12 - pokedex_entry Eevee, 3, 65, 476, 18, 256, 0 - .string "BUBBLE JET$", 12 - pokedex_entry Vaporeon, 10, 290, 316, 8, 256, 0 - .string "LIGHTNING$", 12 - pokedex_entry Jolteon, 8, 245, 283, 8, 256, 0 - .string "FLAME$", 12 - pokedex_entry Flareon, 9, 250, 306, 12, 256, 0 - .string "VIRTUAL$", 12 - pokedex_entry Porygon, 8, 365, 328, 15, 256, 0 - .string "SPIRAL$", 12 - pokedex_entry Omanyte, 4, 75, 521, 22, 256, 0 - .string "SPIRAL$", 12 - pokedex_entry Omastar, 10, 350, 307, 7, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Kabuto, 5, 115, 454, 21, 256, 0 - .string "SHELLFISH$", 12 - pokedex_entry Kabutops, 13, 405, 271, 3, 256, 0 - .string "FOSSIL$", 12 - pokedex_entry Aerodactyl, 18, 590, 256, 0, 302, 4 - .string "SLEEPING$", 12 - pokedex_entry Snorlax, 21, 4600, 256, 4, 423, 11 - .string "FREEZE$", 12 - pokedex_entry Articuno, 17, 554, 256, 0, 309, 2 - .string "ELECTRIC$", 12 - pokedex_entry Zapdos, 16, 526, 256, 0, 318, 3 - .string "FLAME$", 12 - pokedex_entry Moltres, 20, 600, 270, 0, 387, 8 - .string "DRAGON$", 12 - pokedex_entry Dratini, 18, 33, 256, 8, 386, 6 - .string "DRAGON$", 12 - pokedex_entry Dragonair, 40, 165, 256, 0, 411, 5 - .string "DRAGON$", 12 - pokedex_entry Dragonite, 22, 2100, 256, 0, 309, 4 - .string "GENETIC$", 12 - pokedex_entry Mewtwo, 20, 1220, 256, 0, 309, 4 - .string "NEW SPECIES$", 12 - pokedex_entry Mew, 4, 40, 457, -2, 256, 0 - .string "LEAF$", 12 - pokedex_entry Chikorita, 9, 64, 512, 20, 256, 0 - .string "LEAF$", 12 - pokedex_entry Bayleef, 12, 158, 296, 4, 256, 0 - .string "HERB$", 12 - pokedex_entry Meganium, 18, 1005, 256, 0, 277, 1 - .string "FIRE MOUSE$", 12 - pokedex_entry Cyndaquil, 5, 79, 539, 21, 256, 0 - .string "VOLCANO$", 12 - pokedex_entry Quilava, 9, 190, 329, 11, 256, 0 - .string "VOLCANO$", 12 - pokedex_entry Typhlosion, 17, 795, 256, 0, 268, 1 - .string "BIG JAW$", 12 - pokedex_entry Totodile, 6, 95, 487, 20, 256, 0 - .string "BIG JAW$", 12 - pokedex_entry Croconaw, 11, 250, 378, 13, 256, 0 - .string "BIG JAW$", 12 - pokedex_entry Feraligatr, 23, 888, 256, 0, 342, 7 - .string "SCOUT$", 12 - pokedex_entry Sentret, 8, 60, 439, 12, 256, 0 - .string "LONG BODY$", 12 - pokedex_entry Furret, 18, 325, 346, 11, 256, 0 - .string "OWL$", 12 - pokedex_entry Hoothoot, 7, 212, 380, -2, 256, 0 - .string "OWL$", 12 - pokedex_entry Noctowl, 16, 408, 278, 3, 256, 0 - .string "FIVE STAR$", 12 - pokedex_entry Ledyba, 10, 108, 256, 4, 256, 0 - .string "FIVE STAR$", 12 - pokedex_entry Ledian, 14, 356, 256, 2, 256, 0 - .string "STRING SPIT$", 12 - pokedex_entry Spinarak, 5, 85, 414, 21, 256, 0 - .string "LONG LEG$", 12 - pokedex_entry Ariados, 11, 335, 316, 8, 256, 0 - .string "BAT$", 12 - pokedex_entry Crobat, 18, 750, 256, 0, 281, 1 - .string "ANGLER$", 12 - pokedex_entry Chinchou, 5, 120, 424, -2, 256, 0 - .string "LIGHT$", 12 - pokedex_entry Lanturn, 12, 225, 269, 6, 256, 0 - .string "TINY MOUSE$", 12 - pokedex_entry Pichu, 3, 20, 508, 20, 256, 0 - .string "STAR SHAPE$", 12 - pokedex_entry Cleffa, 3, 30, 462, 23, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Igglybuff, 3, 10, 457, -1, 256, 0 - .string "SPIKE BALL$", 12 - pokedex_entry Togepi, 3, 15, 507, 23, 256, 0 - .string "HAPPINESS$", 12 - pokedex_entry Togetic, 6, 32, 424, 17, 256, 0 - .string "TINY BIRD$", 12 - pokedex_entry Natu, 2, 20, 610, 25, 256, 0 - .string "MYSTIC$", 12 - pokedex_entry Xatu, 15, 150, 256, 6, 318, 4 - .string "WOOL$", 12 - pokedex_entry Mareep, 6, 78, 379, 18, 256, 0 - .string "WOOL$", 12 - pokedex_entry Flaaffy, 8, 133, 372, 15, 256, 0 - .string "LIGHT$", 12 - pokedex_entry Ampharos, 14, 615, 256, 4, 256, 0 - .string "FLOWER$", 12 - pokedex_entry Bellossom, 4, 58, 472, 21, 256, 0 - .string "AQUA MOUSE$", 12 - pokedex_entry Marill, 4, 85, 476, 20, 256, 0 - .string "AQUA RABBIT$", 12 - pokedex_entry Azumarill, 8, 285, 448, 16, 256, 0 - .string "IMITATION$", 12 - pokedex_entry Sudowoodo, 12, 380, 305, 8, 256, 0 - .string "FROG$", 12 - pokedex_entry Politoed, 11, 339, 289, 6, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Hoppip, 4, 5, 562, -7, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Skiploom, 6, 10, 387, 0, 256, 0 - .string "COTTONWEED$", 12 - pokedex_entry Jumpluff, 8, 30, 418, -4, 256, 0 - .string "LONG TAIL$", 12 - pokedex_entry Aipom, 8, 115, 363, 6, 256, 0 - .string "SEED$", 12 - pokedex_entry Sunkern, 3, 18, 541, 0, 256, 0 - .string "SUN$", 12 - pokedex_entry Sunflora, 8, 85, 444, 15, 256, 0 - .string "CLEAR WING$", 12 - pokedex_entry Yanma, 12, 380, 274, -1, 256, 0 - .string "WATER FISH$", 12 - pokedex_entry Wooper, 4, 85, 479, 21, 256, 0 - .string "WATER FISH$", 12 - pokedex_entry Quagsire, 14, 750, 256, 4, 256, 0 - .string "SUN$", 12 - pokedex_entry Espeon, 9, 265, 363, 14, 256, 0 - .string "MOONLIGHT$", 12 - pokedex_entry Umbreon, 10, 270, 317, 11, 256, 0 - .string "DARKNESS$", 12 - pokedex_entry Murkrow, 5, 21, 401, -8, 256, 1 - .string "ROYAL$", 12 - pokedex_entry Slowking, 20, 795, 256, 0, 309, 5 - .string "SCREECH$", 12 - pokedex_entry Misdreavus, 7, 10, 407, -8, 256, 0 - .string "SYMBOL$", 12 - pokedex_entry Unown, 5, 50, 411, 2, 256, 0 - .string "PATIENT$", 12 - pokedex_entry Wobbuffet, 13, 285, 274, 4, 256, 0 - .string "LONG NECK$", 12 - pokedex_entry Girafarig, 15, 415, 281, 1, 256, 0 - .string "BAGWORM$", 12 - pokedex_entry Pineco, 6, 72, 445, 2, 256, 0 - .string "BAGWORM$", 12 - pokedex_entry Forretress, 12, 1258, 293, 5, 256, 0 - .string "LAND SNAKE$", 12 - pokedex_entry Dunsparce, 15, 140, 316, 17, 256, 0 - .string "FLYSCORPION$", 12 - pokedex_entry Gligar, 11, 648, 350, -1, 256, 0 - .string "IRON SNAKE$", 12 - pokedex_entry Steelix, 92, 4000, 256, 0, 516, 13 - .string "FAIRY$", 12 - pokedex_entry Snubbull, 6, 78, 465, 19, 256, 0 - .string "FAIRY$", 12 - pokedex_entry Granbull, 14, 487, 256, 4, 256, 0 - .string "BALLOON$", 12 - pokedex_entry Qwilfish, 5, 39, 430, 0, 256, 0 - .string "PINCER$", 12 - pokedex_entry Scizor, 18, 1180, 278, 1, 256, 0 - .string "MOLD$", 12 - pokedex_entry Shuckle, 6, 205, 485, 18, 256, 0 - .string "SINGLE HORN$", 12 - pokedex_entry Heracross, 15, 540, 256, 0, 256, 0 - .string "SHARP CLAW$", 12 - pokedex_entry Sneasel, 9, 280, 413, -3, 256, 0 - .string "LITTLE BEAR$", 12 - pokedex_entry Teddiursa, 6, 88, 455, 19, 256, 0 - .string "HIBERNATOR$", 12 - pokedex_entry Ursaring, 18, 1258, 256, 0, 256, 0 - .string "LAVA$", 12 - pokedex_entry Slugma, 7, 350, 329, 15, 256, 0 - .string "LAVA$", 12 - pokedex_entry Magcargo, 8, 550, 332, 15, 256, 0 - .string "PIG$", 12 - pokedex_entry Swinub, 4, 65, 324, 20, 256, 0 - .string "SWINE$", 12 - pokedex_entry Piloswine, 11, 558, 306, 10, 256, 0 - .string "CORAL$", 12 - pokedex_entry Corsola, 6, 50, 410, 15, 256, 0 - .string "JET$", 12 - pokedex_entry Remoraid, 6, 120, 316, 4, 256, 0 - .string "JET$", 12 - pokedex_entry Octillery, 9, 285, 296, 3, 256, 0 - .string "DELIVERY$", 12 - pokedex_entry Delibird, 9, 160, 293, 11, 256, 0 - .string "KITE$", 12 - pokedex_entry Mantine, 21, 2200, 256, 0, 342, 7 - .string "ARMOR BIRD$", 12 - pokedex_entry Skarmory, 17, 505, 256, 0, 271, 1 - .string "DARK$", 12 - pokedex_entry Houndour, 6, 108, 393, 16, 256, 0 - .string "DARK$", 12 - pokedex_entry Houndoom, 14, 350, 256, 4, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Kingdra, 18, 1520, 256, 0, 287, 0 - .string "LONG NOSE$", 12 - pokedex_entry Phanpy, 5, 335, 465, 21, 256, 0 - .string "ARMOR$", 12 - pokedex_entry Donphan, 11, 1200, 313, 9, 256, 0 - .string "VIRTUAL$", 12 - pokedex_entry Porygon2, 6, 325, 320, 17, 256, 0 - .string "BIG HORN$", 12 - pokedex_entry Stantler, 14, 712, 256, 0, 256, 0 - .string "PAINTER$", 12 - pokedex_entry Smeargle, 12, 580, 287, 5, 256, 0 - .string "SCUFFLE$", 12 - pokedex_entry Tyrogue, 7, 210, 292, 9, 256, 0 - .string "HANDSTAND$", 12 - pokedex_entry Hitmontop, 14, 480, 256, 2, 257, 0 - .string "KISS$", 12 - pokedex_entry Smoochum, 4, 60, 440, 20, 256, 0 - .string "ELECTRIC$", 12 - pokedex_entry Elekid, 6, 235, 363, 14, 256, 0 - .string "LIVE COAL$", 12 - pokedex_entry Magby, 7, 214, 284, 13, 256, 0 - .string "MILK COW$", 12 - pokedex_entry Miltank, 12, 755, 280, 5, 256, 0 - .string "HAPPINESS$", 12 - pokedex_entry Blissey, 15, 468, 256, 4, 310, 3 - .string "THUNDER$", 12 - pokedex_entry Raikou, 19, 1780, 256, 0, 345, 7 - .string "VOLCANO$", 12 - pokedex_entry Entei, 21, 1980, 259, 0, 345, 7 - .string "AURORA$", 12 - pokedex_entry Suicune, 20, 1870, 269, 0, 345, 7 - .string "ROCK SKIN$", 12 - pokedex_entry Larvitar, 6, 720, 472, 18, 256, 0 - .string "HARD SHELL$", 12 - pokedex_entry Pupitar, 12, 1520, 292, 8, 256, 0 - .string "ARMOR$", 12 - pokedex_entry Tyranitar, 20, 2020, 256, 0, 345, 7 - .string "DIVING$", 12 - pokedex_entry Lugia, 52, 2160, 256, 0, 721, 19 - .string "RAINBOW$", 12 - pokedex_entry HoOh, 38, 1990, 256, 0, 610, 17 - .string "TIME TRAVEL$", 12 - pokedex_entry Celebi, 6, 50, 393, -10, 256, 0 - .string "WOOD GECKO$", 12 - pokedex_entry Treecko, 5, 50, 541, 19, 256, 0 - .string "WOOD GECKO$", 12 - pokedex_entry Grovyle, 9, 216, 360, 5, 256, 0 - .string "FOREST$", 12 - pokedex_entry Sceptile, 17, 522, 256, -1, 275, 2 - .string "CHICK$", 12 - pokedex_entry Torchic, 4, 25, 566, 19, 256, 0 - .string "YOUNG FOWL$", 12 - pokedex_entry Combusken, 9, 195, 343, 5, 256, 0 - .string "BLAZE$", 12 - pokedex_entry Blaziken, 19, 520, 256, 0, 301, 4 - .string "MUD FISH$", 12 - pokedex_entry Mudkip, 4, 76, 535, 20, 256, 0 - .string "MUD FISH$", 12 - pokedex_entry Marshtomp, 7, 280, 340, 7, 256, 0 - .string "MUD FISH$", 12 - pokedex_entry Swampert, 15, 819, 256, 0, 256, 0 - .string "BITE$", 12 - pokedex_entry Poochyena, 5, 136, 481, 19, 256, 0 - .string "BITE$", 12 - pokedex_entry Mightyena, 10, 370, 362, 9, 256, 0 - .string "TINYRACCOON$", 12 - pokedex_entry Zigzagoon, 4, 175, 560, 22, 256, 0 - .string "RUSHING$", 12 - pokedex_entry Linoone, 5, 325, 321, 7, 256, 0 - .string "WORM$", 12 - pokedex_entry Wurmple, 3, 36, 711, 24, 256, 0 - .string "COCOON$", 12 - pokedex_entry Silcoon, 6, 100, 431, 19, 256, 0 - .string "BUTTERFLY$", 12 - pokedex_entry Beautifly, 10, 284, 298, -1, 256, 0 - .string "COCOON$", 12 - pokedex_entry Cascoon, 7, 115, 391, 20, 256, 0 - .string "POISON MOTH$", 12 - pokedex_entry Dustox, 12, 316, 269, 1, 256, 0 - .string "WATER WEED$", 12 - pokedex_entry Lotad, 5, 26, 406, 19, 256, 0 - .string "JOLLY$", 12 - pokedex_entry Lombre, 12, 325, 277, 9, 256, 0 - .string "CAREFREE$", 12 - pokedex_entry Ludicolo, 15, 550, 256, 0, 268, -1 - .string "ACORN$", 12 - pokedex_entry Seedot, 5, 40, 472, 20, 256, 0 - .string "WILY$", 12 - pokedex_entry Nuzleaf, 10, 280, 299, 10, 256, 0 - .string "WICKED$", 12 - pokedex_entry Shiftry, 13, 596, 290, 4, 256, 0 - .string "TINYSWALLOW$", 12 - pokedex_entry Taillow, 3, 23, 465, 21, 256, 0 - .string "SWALLOW$", 12 - pokedex_entry Swellow, 7, 198, 428, 15, 256, 0 - .string "SEAGULL$", 12 - pokedex_entry Wingull, 6, 95, 295, -2, 256, 0 - .string "WATER BIRD$", 12 - pokedex_entry Pelipper, 12, 280, 288, 1, 256, 0 - .string "FEELING$", 12 - pokedex_entry Ralts, 4, 66, 457, -3, 256, 0 - .string "EMOTION$", 12 - pokedex_entry Kirlia, 8, 202, 354, 0, 256, 0 - .string "EMBRACE$", 12 - pokedex_entry Gardevoir, 16, 484, 256, 0, 256, 0 - .string "POND SKATER$", 12 - pokedex_entry Surskit, 5, 17, 375, 17, 256, 0 - .string "EYEBALL$", 12 - pokedex_entry Masquerain, 8, 36, 378, 8, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Shroomish, 4, 45, 513, 22, 256, 0 - .string "MUSHROOM$", 12 - pokedex_entry Breloom, 12, 392, 324, 6, 256, 0 - .string "SLACKER$", 12 - pokedex_entry Slakoth, 8, 240, 291, 16, 256, 0 - .string "WILD MONKEY$", 12 - pokedex_entry Vigoroth, 14, 465, 301, 2, 256, 0 - .string "LAZY$", 12 - pokedex_entry Slaking, 20, 1305, 256, 2, 300, 1 - .string "TRAINEE$", 12 - pokedex_entry Nincada, 5, 55, 405, 21, 256, 0 - .string "NINJA$", 12 - pokedex_entry Ninjask, 8, 120, 383, -9, 256, 0 - .string "SHED$", 12 - pokedex_entry Shedinja, 8, 12, 372, -8, 256, 0 - .string "WHISPER$", 12 - pokedex_entry Whismur, 6, 163, 373, 17, 256, 0 - .string "BIG VOICE$", 12 - pokedex_entry Loudred, 10, 405, 356, 10, 256, 0 - .string "LOUD NOISE$", 12 - pokedex_entry Exploud, 15, 840, 284, 1, 256, 0 - .string "GUTS$", 12 - pokedex_entry Makuhita, 10, 864, 256, 10, 256, 0 - .string "ARM THRUST$", 12 - pokedex_entry Hariyama, 23, 2538, 256, 0, 343, 7 - .string "POLKA DOT$", 12 - pokedex_entry Azurill, 2, 20, 603, 23, 256, 0 - .string "COMPASS$", 12 - pokedex_entry Nosepass, 10, 970, 256, 9, 289, 3 - .string "KITTEN$", 12 - pokedex_entry Skitty, 6, 110, 492, 19, 256, 0 - .string "PRIM$", 12 - pokedex_entry Delcatty, 11, 326, 322, 10, 256, 0 - .string "DARKNESS$", 12 - pokedex_entry Sableye, 5, 110, 451, 17, 256, 0 - .string "DECEIVER$", 12 - pokedex_entry Mawile, 6, 115, 466, 17, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Aron, 4, 600, 419, 23, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Lairon, 9, 1200, 275, 12, 256, 0 - .string "IRON ARMOR$", 12 - pokedex_entry Aggron, 21, 3600, 256, -1, 350, 6 - .string "MEDITATE$", 12 - pokedex_entry Meditite, 6, 112, 465, 17, 256, 0 - .string "MEDITATE$", 12 - pokedex_entry Medicham, 13, 315, 298, 5, 256, 0 - .string "LIGHTNING$", 12 - pokedex_entry Electrike, 6, 152, 290, 15, 256, 0 - .string "DISCHARGE$", 12 - pokedex_entry Manectric, 15, 402, 256, 3, 257, 0 - .string "CHEERING$", 12 - pokedex_entry Plusle, 4, 42, 515, -9, 256, 0 - .string "CHEERING$", 12 - pokedex_entry Minun, 4, 42, 512, -7, 256, 0 - .string "FIREFLY$", 12 - pokedex_entry Volbeat, 7, 177, 442, 16, 256, 0 - .string "FIREFLY$", 12 - pokedex_entry Illumise, 6, 177, 572, 19, 256, 0 - .string "THORN$", 12 - pokedex_entry Roselia, 3, 20, 677, 20, 256, 0 - .string "STOMACH$", 12 - pokedex_entry Gulpin, 4, 103, 593, 23, 256, 0 - .string "POISON BAG$", 12 - pokedex_entry Swalot, 17, 800, 256, 6, 345, 3 - .string "SAVAGE$", 12 - pokedex_entry Carvanha, 8, 208, 362, 0, 256, 0 - .string "BRUTAL$", 12 - pokedex_entry Sharpedo, 18, 888, 256, 0, 317, 3 - .string "BALL WHALE$", 12 - pokedex_entry Wailmer, 20, 1300, 256, 2, 493, 0 - .string "FLOAT WHALE$", 12 - pokedex_entry Wailord, 145, 3980, 256, 0, 1352, 18 - .string "NUMB$", 12 - pokedex_entry Numel, 7, 240, 342, 17, 256, 0 - .string "ERUPTION$", 12 - pokedex_entry Camerupt, 19, 2200, 256, 7, 345, 6 - .string "COAL$", 12 - pokedex_entry Torkoal, 5, 804, 390, 9, 256, 0 - .string "BOUNCE$", 12 - pokedex_entry Spoink, 7, 306, 423, 17, 256, 0 - .string "MANIPULATE$", 12 - pokedex_entry Grumpig, 9, 715, 358, 10, 256, 0 - .string "SPOT PANDA$", 12 - pokedex_entry Spinda, 11, 50, 321, 4, 256, 0 - .string "ANT PIT$", 12 - pokedex_entry Trapinch, 7, 150, 298, 17, 256, 0 - .string "VIBRATION$", 12 - pokedex_entry Vibrava, 11, 153, 370, 11, 256, 0 - .string "MYSTIC$", 12 - pokedex_entry Flygon, 20, 820, 256, 0, 268, 1 - .string "CACTUS$", 12 - pokedex_entry Cacnea, 4, 513, 455, 20, 256, 0 - .string "SCARECROW$", 12 - pokedex_entry Cacturne, 13, 774, 327, 5, 256, 0 - .string "COTTON BIRD$", 12 - pokedex_entry Swablu, 4, 12, 422, -8, 256, 0 - .string "HUMMING$", 12 - pokedex_entry Altaria, 11, 206, 327, 0, 256, 0 - .string "CAT FERRET$", 12 - pokedex_entry Zangoose, 13, 403, 256, 3, 256, 0 - .string "FANG SNAKE$", 12 - pokedex_entry Seviper, 27, 525, 275, 7, 256, 0 - .string "METEORITE$", 12 - pokedex_entry Lunatone, 10, 1680, 300, 3, 256, 0 - .string "METEORITE$", 12 - pokedex_entry Solrock, 12, 1540, 328, 0, 256, 0 - .string "WHISKERS$", 12 - pokedex_entry Barboach, 4, 19, 581, -3, 256, 0 - .string "WHISKERS$", 12 - pokedex_entry Whiscash, 9, 236, 317, 1, 256, 0 - .string "RUFFIAN$", 12 - pokedex_entry Corphish, 6, 115, 484, 19, 256, 0 - .string "ROGUE$", 12 - pokedex_entry Crawdaunt, 11, 328, 365, 9, 256, 0 - .string "CLAY DOLL$", 12 - pokedex_entry Baltoy, 5, 215, 457, 21, 256, 0 - .string "CLAY DOLL$", 12 - pokedex_entry Claydol, 15, 1080, 256, 3, 280, 1 - .string "SEA LILY$", 12 - pokedex_entry Lileep, 10, 238, 305, 8, 256, 0 - .string "BARNACLE$", 12 - pokedex_entry Cradily, 15, 604, 267, 0, 256, 0 - .string "OLD SHRIMP$", 12 - pokedex_entry Anorith, 7, 125, 296, 4, 256, 0 - .string "PLATE$", 12 - pokedex_entry Armaldo, 15, 682, 312, 3, 271, 0 - .string "FISH$", 12 - pokedex_entry Feebas, 6, 74, 423, -4, 256, 0 - .string "TENDER$", 12 - pokedex_entry Milotic, 62, 1620, 256, 0, 360, 7 - .string "WEATHER$", 12 - pokedex_entry Castform, 3, 8, 435, -5, 256, 0 - .string "COLOR SWAP$", 12 - pokedex_entry Kecleon, 10, 220, 316, 10, 256, 0 - .string "PUPPET$", 12 - pokedex_entry Shuppet, 6, 23, 440, 20, 256, 0 - .string "MARIONETTE$", 12 - pokedex_entry Banette, 11, 125, 262, 9, 256, 0 - .string "REQUIEM$", 12 - pokedex_entry Duskull, 8, 150, 406, -4, 256, 0 - .string "BECKON$", 12 - pokedex_entry Dusclops, 16, 306, 256, 3, 299, 1 - .string "FRUIT$", 12 - pokedex_entry Tropius, 20, 1000, 256, 0, 344, 7 - .string "WIND CHIME$", 12 - pokedex_entry Chimecho, 6, 10, 505, 0, 256, 0 - .string "DISASTER$", 12 - pokedex_entry Absol, 12, 470, 301, 3, 256, 0 - .string "BRIGHT$", 12 - pokedex_entry Wynaut, 6, 140, 484, 19, 256, 0 - .string "SNOW HAT$", 12 - pokedex_entry Snorunt, 7, 168, 380, 15, 256, 0 - .string "FACE$", 12 - pokedex_entry Glalie, 15, 2565, 256, 3, 344, 0 - .string "CLAP$", 12 - pokedex_entry Spheal, 8, 395, 315, 16, 256, 0 - .string "BALL ROLL$", 12 - pokedex_entry Sealeo, 11, 876, 338, 13, 256, 0 - .string "ICE BREAK$", 12 - pokedex_entry Walrein, 14, 1506, 316, 4, 256, 0 - .string "BIVALVE$", 12 - pokedex_entry Clamperl, 4, 525, 691, 22, 256, 0 - .string "DEEP SEA$", 12 - pokedex_entry Huntail, 17, 270, 307, 1, 256, 0 - .string "SOUTH SEA$", 12 - pokedex_entry Gorebyss, 18, 226, 278, 5, 256, 0 - .string "LONGEVITY$", 12 - pokedex_entry Relicanth, 10, 234, 316, 7, 256, 0 - .string "RENDEZVOUS$", 12 - pokedex_entry Luvdisc, 6, 87, 371, 2, 256, 0 - .string "ROCK HEAD$", 12 - pokedex_entry Bagon, 6, 421, 448, 18, 256, 0 - .string "ENDURANCE$", 12 - pokedex_entry Shelgon, 11, 1105, 311, 12, 256, 0 - .string "DRAGON$", 12 - pokedex_entry Salamence, 15, 1026, 256, 0, 256, 0 - .string "IRON BALL$", 12 - pokedex_entry Beldum, 6, 952, 414, -1, 256, 0 - .string "IRON CLAW$", 12 - pokedex_entry Metang, 12, 2025, 256, 6, 256, 0 - .string "IRON LEG$", 12 - pokedex_entry Metagross, 16, 5500, 256, 4, 447, 9 - .string "ROCK PEAK$", 12 - pokedex_entry Regirock, 17, 2300, 256, 2, 309, 1 - .string "ICEBERG$", 12 - pokedex_entry Regice, 18, 1750, 256, 0, 301, 2 - .string "IRON$", 12 - pokedex_entry Registeel, 19, 2050, 256, 0, 359, 6 - .string "EON$", 12 - pokedex_entry Latias, 14, 400, 304, 3, 256, 0 - .string "EON$", 12 - pokedex_entry Latios, 20, 600, 256, 0, 294, 3 - .string "SEA BASIN$", 12 - pokedex_entry Kyogre, 45, 3520, 256, 0, 614, 13 - .string "CONTINENT$", 12 - pokedex_entry Groudon, 35, 9500, 256, 0, 515, 14 - .string "SKY HIGH$", 12 - pokedex_entry Rayquaza, 70, 2065, 256, 0, 448, 12 - .string "WISH$", 12 - pokedex_entry Jirachi, 3, 11, 608, -8, 256, 0 - .string "DNA$", 12 - pokedex_entry Deoxys, 17, 608, 256, 0, 290, 2 diff --git a/data/pokedex_orders.inc b/data/pokedex_orders.inc deleted file mode 100644 index db1cf7e07..000000000 --- a/data/pokedex_orders.inc +++ /dev/null @@ -1,1191 +0,0 @@ - .align 1 -gPokedexOrder_Alphabetical:: @ 839FAC4 - .2byte 387 - .2byte 388 - .2byte 389 - .2byte 390 - .2byte 391 - .2byte 392 - .2byte 393 - .2byte 394 - .2byte 395 - .2byte 396 - .2byte 397 - .2byte 398 - .2byte 399 - .2byte 400 - .2byte 401 - .2byte 402 - .2byte 403 - .2byte 404 - .2byte 405 - .2byte 406 - .2byte 407 - .2byte 408 - .2byte 409 - .2byte 410 - .2byte 411 - .2byte 63 @ Abra - .2byte 359 @ Absol - .2byte 142 @ Aerodactyl - .2byte 306 @ Aggron - .2byte 190 @ Aipom - .2byte 65 @ Alakazam - .2byte 334 @ Altaria - .2byte 181 @ Ampharos - .2byte 347 @ Anorith - .2byte 24 @ Arbok - .2byte 59 @ Arcanine - .2byte 168 @ Ariados - .2byte 348 @ Armaldo - .2byte 304 @ Aron - .2byte 144 @ Articuno - .2byte 184 @ Azumarill - .2byte 298 @ Azurill - .2byte 371 @ Bagon - .2byte 343 @ Baltoy - .2byte 354 @ Banette - .2byte 339 @ Barboach - .2byte 153 @ Bayleef - .2byte 267 @ Beautifly - .2byte 15 @ Beedrill - .2byte 374 @ Beldum - .2byte 182 @ Bellossom - .2byte 69 @ Bellsprout - .2byte 9 @ Blastoise - .2byte 257 @ Blaziken - .2byte 242 @ Blissey - .2byte 286 @ Breloom - .2byte 1 @ Bulbasaur - .2byte 12 @ Butterfree - .2byte 331 @ Cacnea - .2byte 332 @ Cacturne - .2byte 323 @ Camerupt - .2byte 318 @ Carvanha - .2byte 268 @ Cascoon - .2byte 351 @ Castform - .2byte 10 @ Caterpie - .2byte 251 @ Celebi - .2byte 113 @ Chansey - .2byte 6 @ Charizard - .2byte 4 @ Charmander - .2byte 5 @ Charmeleon - .2byte 152 @ Chikorita - .2byte 358 @ Chimecho - .2byte 170 @ Chinchou - .2byte 366 @ Clamperl - .2byte 344 @ Claydol - .2byte 36 @ Clefable - .2byte 35 @ Clefairy - .2byte 173 @ Cleffa - .2byte 91 @ Cloyster - .2byte 256 @ Combusken - .2byte 341 @ Corphish - .2byte 222 @ Corsola - .2byte 346 @ Cradily - .2byte 342 @ Crawdaunt - .2byte 169 @ Crobat - .2byte 159 @ Croconaw - .2byte 104 @ Cubone - .2byte 155 @ Cyndaquil - .2byte 301 @ Delcatty - .2byte 225 @ Delibird - .2byte 386 @ Deoxys - .2byte 87 @ Dewgong - .2byte 50 @ Diglett - .2byte 132 @ Ditto - .2byte 85 @ Dodrio - .2byte 84 @ Doduo - .2byte 232 @ Donphan - .2byte 148 @ Dragonair - .2byte 149 @ Dragonite - .2byte 147 @ Dratini - .2byte 96 @ Drowzee - .2byte 51 @ Dugtrio - .2byte 206 @ Dunsparce - .2byte 356 @ Dusclops - .2byte 355 @ Duskull - .2byte 269 @ Dustox - .2byte 133 @ Eevee - .2byte 23 @ Ekans - .2byte 125 @ Electabuzz - .2byte 309 @ Electrike - .2byte 101 @ Electrode - .2byte 239 @ Elekid - .2byte 244 @ Entei - .2byte 196 @ Espeon - .2byte 102 @ Exeggcute - .2byte 103 @ Exeggutor - .2byte 295 @ Exploud - .2byte 83 @ Farfetch’d - .2byte 22 @ Fearow - .2byte 349 @ Feebas - .2byte 160 @ Feraligatr - .2byte 180 @ Flaaffy - .2byte 136 @ Flareon - .2byte 330 @ Flygon - .2byte 205 @ Forretress - .2byte 162 @ Furret - .2byte 282 @ Gardevoir - .2byte 92 @ Gastly - .2byte 94 @ Gengar - .2byte 74 @ Geodude - .2byte 203 @ Girafarig - .2byte 362 @ Glalie - .2byte 207 @ Gligar - .2byte 44 @ Gloom - .2byte 42 @ Golbat - .2byte 118 @ Goldeen - .2byte 55 @ Golduck - .2byte 76 @ Golem - .2byte 368 @ Gorebyss - .2byte 210 @ Granbull - .2byte 75 @ Graveler - .2byte 88 @ Grimer - .2byte 383 @ Groudon - .2byte 253 @ Grovyle - .2byte 58 @ Growlithe - .2byte 326 @ Grumpig - .2byte 316 @ Gulpin - .2byte 130 @ Gyarados - .2byte 297 @ Hariyama - .2byte 93 @ Haunter - .2byte 214 @ Heracross - .2byte 107 @ Hitmonchan - .2byte 106 @ Hitmonlee - .2byte 237 @ Hitmontop - .2byte 250 @ Ho-Oh - .2byte 163 @ Hoothoot - .2byte 187 @ Hoppip - .2byte 116 @ Horsea - .2byte 229 @ Houndoom - .2byte 228 @ Houndour - .2byte 367 @ Huntail - .2byte 97 @ Hypno - .2byte 174 @ Igglybuff - .2byte 314 @ Illumise - .2byte 2 @ Ivysaur - .2byte 39 @ Jigglypuff - .2byte 385 @ Jirachi - .2byte 135 @ Jolteon - .2byte 189 @ Jumpluff - .2byte 124 @ Jynx - .2byte 140 @ Kabuto - .2byte 141 @ Kabutops - .2byte 64 @ Kadabra - .2byte 14 @ Kakuna - .2byte 115 @ Kangaskhan - .2byte 352 @ Kecleon - .2byte 230 @ Kingdra - .2byte 99 @ Kingler - .2byte 281 @ Kirlia - .2byte 109 @ Koffing - .2byte 98 @ Krabby - .2byte 382 @ Kyogre - .2byte 305 @ Lairon - .2byte 171 @ Lanturn - .2byte 131 @ Lapras - .2byte 246 @ Larvitar - .2byte 380 @ Latias - .2byte 381 @ Latios - .2byte 166 @ Ledian - .2byte 165 @ Ledyba - .2byte 108 @ Lickitung - .2byte 345 @ Lileep - .2byte 264 @ Linoone - .2byte 271 @ Lombre - .2byte 270 @ Lotad - .2byte 294 @ Loudred - .2byte 272 @ Ludicolo - .2byte 249 @ Lugia - .2byte 337 @ Lunatone - .2byte 370 @ Luvdisc - .2byte 68 @ Machamp - .2byte 67 @ Machoke - .2byte 66 @ Machop - .2byte 240 @ Magby - .2byte 219 @ Magcargo - .2byte 129 @ Magikarp - .2byte 126 @ Magmar - .2byte 81 @ Magnemite - .2byte 82 @ Magneton - .2byte 296 @ Makuhita - .2byte 310 @ Manectric - .2byte 56 @ Mankey - .2byte 226 @ Mantine - .2byte 179 @ Mareep - .2byte 183 @ Marill - .2byte 105 @ Marowak - .2byte 259 @ Marshtomp - .2byte 284 @ Masquerain - .2byte 303 @ Mawile - .2byte 308 @ Medicham - .2byte 307 @ Meditite - .2byte 154 @ Meganium - .2byte 52 @ Meowth - .2byte 376 @ Metagross - .2byte 375 @ Metang - .2byte 11 @ Metapod - .2byte 151 @ Mew - .2byte 150 @ Mewtwo - .2byte 262 @ Mightyena - .2byte 350 @ Milotic - .2byte 241 @ Miltank - .2byte 312 @ Minun - .2byte 200 @ Misdreavus - .2byte 146 @ Moltres - .2byte 122 @ Mr. mime - .2byte 258 @ Mudkip - .2byte 89 @ Muk - .2byte 198 @ Murkrow - .2byte 177 @ Natu - .2byte 34 @ Nidoking - .2byte 31 @ Nidoqueen - .2byte 29 @ Nidoran♀ - .2byte 32 @ Nidoran♂ - .2byte 30 @ Nidorina - .2byte 33 @ Nidorino - .2byte 290 @ Nincada - .2byte 38 @ Ninetales - .2byte 291 @ Ninjask - .2byte 164 @ Noctowl - .2byte 299 @ Nosepass - .2byte 322 @ Numel - .2byte 274 @ Nuzleaf - .2byte 224 @ Octillery - .2byte 43 @ Oddish - .2byte 138 @ Omanyte - .2byte 139 @ Omastar - .2byte 95 @ Onix - .2byte 46 @ Paras - .2byte 47 @ Parasect - .2byte 279 @ Pelipper - .2byte 53 @ Persian - .2byte 231 @ Phanpy - .2byte 172 @ Pichu - .2byte 18 @ Pidgeot - .2byte 17 @ Pidgeotto - .2byte 16 @ Pidgey - .2byte 25 @ Pikachu - .2byte 221 @ Piloswine - .2byte 204 @ Pineco - .2byte 127 @ Pinsir - .2byte 311 @ Plusle - .2byte 186 @ Politoed - .2byte 60 @ Poliwag - .2byte 61 @ Poliwhirl - .2byte 62 @ Poliwrath - .2byte 77 @ Ponyta - .2byte 261 @ Poochyena - .2byte 137 @ Porygon - .2byte 233 @ Porygon2 - .2byte 57 @ Primeape - .2byte 54 @ Psyduck - .2byte 247 @ Pupitar - .2byte 195 @ Quagsire - .2byte 156 @ Quilava - .2byte 211 @ Qwilfish - .2byte 26 @ Raichu - .2byte 243 @ Raikou - .2byte 280 @ Ralts - .2byte 78 @ Rapidash - .2byte 20 @ Raticate - .2byte 19 @ Rattata - .2byte 384 @ Rayquaza - .2byte 378 @ Regice - .2byte 377 @ Regirock - .2byte 379 @ Registeel - .2byte 369 @ Relicanth - .2byte 223 @ Remoraid - .2byte 112 @ Rhydon - .2byte 111 @ Rhyhorn - .2byte 315 @ Roselia - .2byte 302 @ Sableye - .2byte 373 @ Salamence - .2byte 27 @ Sandshrew - .2byte 28 @ Sandslash - .2byte 254 @ Sceptile - .2byte 212 @ Scizor - .2byte 123 @ Scyther - .2byte 117 @ Seadra - .2byte 119 @ Seaking - .2byte 364 @ Sealeo - .2byte 273 @ Seedot - .2byte 86 @ Seel - .2byte 161 @ Sentret - .2byte 336 @ Seviper - .2byte 319 @ Sharpedo - .2byte 292 @ Shedinja - .2byte 372 @ Shelgon - .2byte 90 @ Shellder - .2byte 275 @ Shiftry - .2byte 285 @ Shroomish - .2byte 213 @ Shuckle - .2byte 353 @ Shuppet - .2byte 266 @ Silcoon - .2byte 227 @ Skarmory - .2byte 188 @ Skiploom - .2byte 300 @ Skitty - .2byte 289 @ Slaking - .2byte 287 @ Slakoth - .2byte 80 @ Slowbro - .2byte 199 @ Slowking - .2byte 79 @ Slowpoke - .2byte 218 @ Slugma - .2byte 235 @ Smeargle - .2byte 238 @ Smoochum - .2byte 215 @ Sneasel - .2byte 143 @ Snorlax - .2byte 361 @ Snorunt - .2byte 209 @ Snubbull - .2byte 338 @ Solrock - .2byte 21 @ Spearow - .2byte 363 @ Spheal - .2byte 167 @ Spinarak - .2byte 327 @ Spinda - .2byte 325 @ Spoink - .2byte 7 @ Squirtle - .2byte 234 @ Stantler - .2byte 121 @ Starmie - .2byte 120 @ Staryu - .2byte 208 @ Steelix - .2byte 185 @ Sudowoodo - .2byte 245 @ Suicune - .2byte 192 @ Sunflora - .2byte 191 @ Sunkern - .2byte 283 @ Surskit - .2byte 333 @ Swablu - .2byte 317 @ Swalot - .2byte 260 @ Swampert - .2byte 277 @ Swellow - .2byte 220 @ Swinub - .2byte 276 @ Taillow - .2byte 114 @ Tangela - .2byte 128 @ Tauros - .2byte 216 @ Teddiursa - .2byte 72 @ Tentacool - .2byte 73 @ Tentacruel - .2byte 175 @ Togepi - .2byte 176 @ Togetic - .2byte 255 @ Torchic - .2byte 324 @ Torkoal - .2byte 158 @ Totodile - .2byte 328 @ Trapinch - .2byte 252 @ Treecko - .2byte 357 @ Tropius - .2byte 157 @ Typhlosion - .2byte 248 @ Tyranitar - .2byte 236 @ Tyrogue - .2byte 197 @ Umbreon - .2byte 201 @ Unown - .2byte 217 @ Ursaring - .2byte 134 @ Vaporeon - .2byte 49 @ Venomoth - .2byte 48 @ Venonat - .2byte 3 @ Venusaur - .2byte 329 @ Vibrava - .2byte 71 @ Victreebel - .2byte 288 @ Vigoroth - .2byte 45 @ Vileplume - .2byte 313 @ Volbeat - .2byte 100 @ Voltorb - .2byte 37 @ Vulpix - .2byte 320 @ Wailmer - .2byte 321 @ Wailord - .2byte 365 @ Walrein - .2byte 8 @ Wartortle - .2byte 13 @ Weedle - .2byte 70 @ Weepinbell - .2byte 110 @ Weezing - .2byte 340 @ Whiscash - .2byte 293 @ Whismur - .2byte 40 @ Wigglytuff - .2byte 278 @ Wingull - .2byte 202 @ Wobbuffet - .2byte 194 @ Wooper - .2byte 265 @ Wurmple - .2byte 360 @ Wynaut - .2byte 178 @ Xatu - .2byte 193 @ Yanma - .2byte 335 @ Zangoose - .2byte 145 @ Zapdos - .2byte 263 @ Zigzagoon - .2byte 41 @ Zubat - - .align 1 -gPokedexOrder_Weight:: @ 839FDFA - .2byte 92 @ Gastly - .2byte 93 @ Haunter - .2byte 187 @ Hoppip - .2byte 50 @ Diglett - .2byte 351 @ Castform - .2byte 109 @ Koffing - .2byte 174 @ Igglybuff - .2byte 200 @ Misdreavus - .2byte 358 @ Chimecho - .2byte 188 @ Skiploom - .2byte 385 @ Jirachi - .2byte 333 @ Swablu - .2byte 292 @ Shedinja - .2byte 175 @ Togepi - .2byte 283 @ Surskit - .2byte 16 @ Pidgey - .2byte 191 @ Sunkern - .2byte 339 @ Barboach - .2byte 172 @ Pichu - .2byte 298 @ Azurill - .2byte 315 @ Roselia - .2byte 177 @ Natu - .2byte 21 @ Spearow - .2byte 198 @ Murkrow - .2byte 353 @ Shuppet - .2byte 276 @ Taillow - .2byte 102 @ Exeggcute - .2byte 255 @ Torchic - .2byte 270 @ Lotad - .2byte 10 @ Caterpie - .2byte 189 @ Jumpluff - .2byte 173 @ Cleffa - .2byte 13 @ Weedle - .2byte 176 @ Togetic - .2byte 147 @ Dratini - .2byte 19 @ Rattata - .2byte 284 @ Masquerain - .2byte 265 @ Wurmple - .2byte 211 @ Qwilfish - .2byte 151 @ Mew - .2byte 90 @ Shellder - .2byte 273 @ Seedot - .2byte 132 @ Ditto - .2byte 69 @ Bellsprout - .2byte 311 @ Plusle - .2byte 52 @ Meowth - .2byte 312 @ Minun - .2byte 285 @ Shroomish - .2byte 251 @ Celebi - .2byte 222 @ Corsola - .2byte 252 @ Treecko - .2byte 327 @ Spinda - .2byte 201 @ Unown - .2byte 46 @ Paras - .2byte 43 @ Oddish - .2byte 39 @ Jigglypuff - .2byte 290 @ Nincada - .2byte 182 @ Bellossom - .2byte 81 @ Magnemite - .2byte 25 @ Pikachu - .2byte 238 @ Smoochum - .2byte 161 @ Sentret - .2byte 70 @ Weepinbell - .2byte 152 @ Chikorita - .2byte 220 @ Swinub - .2byte 133 @ Eevee - .2byte 98 @ Krabby - .2byte 104 @ Cubone - .2byte 280 @ Ralts - .2byte 1 @ Bulbasaur - .2byte 23 @ Ekans - .2byte 29 @ Nidoran♀ - .2byte 204 @ Pineco - .2byte 349 @ Feebas - .2byte 138 @ Omanyte - .2byte 41 @ Zubat - .2byte 35 @ Clefairy - .2byte 258 @ Mudkip - .2byte 209 @ Snubbull - .2byte 179 @ Mareep - .2byte 155 @ Cyndaquil - .2byte 116 @ Horsea - .2byte 4 @ Charmander - .2byte 192 @ Sunflora - .2byte 183 @ Marill - .2byte 194 @ Wooper - .2byte 167 @ Spinarak - .2byte 44 @ Gloom - .2byte 370 @ Luvdisc - .2byte 216 @ Teddiursa - .2byte 32 @ Nidoran♂ - .2byte 7 @ Squirtle - .2byte 278 @ Wingull - .2byte 158 @ Totodile - .2byte 110 @ Weezing - .2byte 37 @ Vulpix - .2byte 11 @ Metapod - .2byte 266 @ Silcoon - .2byte 129 @ Magikarp - .2byte 14 @ Kakuna - .2byte 316 @ Gulpin - .2byte 100 @ Voltorb - .2byte 165 @ Ledyba - .2byte 228 @ Houndour - .2byte 300 @ Skitty - .2byte 302 @ Sableye - .2byte 307 @ Meditite - .2byte 341 @ Corphish - .2byte 190 @ Aipom - .2byte 268 @ Cascoon - .2byte 303 @ Mawile - .2byte 140 @ Kabuto - .2byte 40 @ Wigglytuff - .2byte 27 @ Sandshrew - .2byte 223 @ Remoraid - .2byte 291 @ Ninjask - .2byte 170 @ Chinchou - .2byte 60 @ Poliwag - .2byte 347 @ Anorith - .2byte 49 @ Venomoth - .2byte 354 @ Banette - .2byte 2 @ Ivysaur - .2byte 180 @ Flaaffy - .2byte 261 @ Poochyena - .2byte 360 @ Wynaut - .2byte 206 @ Dunsparce - .2byte 178 @ Xatu - .2byte 355 @ Duskull - .2byte 83 @ Farfetch’d - .2byte 328 @ Trapinch - .2byte 118 @ Goldeen - .2byte 309 @ Electrike - .2byte 329 @ Vibrava - .2byte 71 @ Victreebel - .2byte 153 @ Bayleef - .2byte 225 @ Delibird - .2byte 293 @ Whismur - .2byte 148 @ Dragonair - .2byte 361 @ Snorunt - .2byte 263 @ Zigzagoon - .2byte 314 @ Illumise - .2byte 313 @ Volbeat - .2byte 20 @ Raticate - .2byte 45 @ Vileplume - .2byte 156 @ Quilava - .2byte 5 @ Charmeleon - .2byte 58 @ Growlithe - .2byte 256 @ Combusken - .2byte 66 @ Machop - .2byte 63 @ Abra - .2byte 33 @ Nidorino - .2byte 54 @ Psyduck - .2byte 277 @ Swellow - .2byte 38 @ Ninetales - .2byte 30 @ Nidorina - .2byte 61 @ Poliwhirl - .2byte 74 @ Geodude - .2byte 281 @ Kirlia - .2byte 213 @ Shuckle - .2byte 334 @ Altaria - .2byte 318 @ Carvanha - .2byte 236 @ Tyrogue - .2byte 163 @ Hoothoot - .2byte 240 @ Magby - .2byte 343 @ Baltoy - .2byte 253 @ Grovyle - .2byte 352 @ Kecleon - .2byte 171 @ Lanturn - .2byte 8 @ Wartortle - .2byte 368 @ Gorebyss - .2byte 369 @ Relicanth - .2byte 239 @ Elekid - .2byte 340 @ Whiscash - .2byte 345 @ Lileep - .2byte 322 @ Numel - .2byte 287 @ Slakoth - .2byte 135 @ Jolteon - .2byte 159 @ Croconaw - .2byte 136 @ Flareon - .2byte 117 @ Seadra - .2byte 196 @ Espeon - .2byte 367 @ Huntail - .2byte 197 @ Umbreon - .2byte 259 @ Marshtomp - .2byte 274 @ Nuzleaf - .2byte 215 @ Sneasel - .2byte 56 @ Mankey - .2byte 279 @ Pelipper - .2byte 267 @ Beautifly - .2byte 224 @ Octillery - .2byte 184 @ Azumarill - .2byte 202 @ Wobbuffet - .2byte 134 @ Vaporeon - .2byte 28 @ Sandslash - .2byte 47 @ Parasect - .2byte 15 @ Beedrill - .2byte 89 @ Muk - .2byte 17 @ Pidgeotto - .2byte 88 @ Grimer - .2byte 26 @ Raichu - .2byte 77 @ Ponyta - .2byte 125 @ Electabuzz - .2byte 48 @ Venonat - .2byte 325 @ Spoink - .2byte 356 @ Dusclops - .2byte 308 @ Medicham - .2byte 269 @ Dustox - .2byte 53 @ Persian - .2byte 12 @ Butterfree - .2byte 57 @ Primeape - .2byte 96 @ Drowzee - .2byte 162 @ Furret - .2byte 233 @ Porygon2 - .2byte 271 @ Lombre - .2byte 264 @ Linoone - .2byte 301 @ Delcatty - .2byte 342 @ Crawdaunt - .2byte 51 @ Dugtrio - .2byte 168 @ Ariados - .2byte 231 @ Phanpy - .2byte 186 @ Politoed - .2byte 120 @ Staryu - .2byte 113 @ Chansey - .2byte 139 @ Omastar - .2byte 114 @ Tangela - .2byte 218 @ Slugma - .2byte 229 @ Houndoom - .2byte 166 @ Ledian - .2byte 79 @ Slowpoke - .2byte 137 @ Porygon - .2byte 262 @ Mightyena - .2byte 193 @ Yanma - .2byte 22 @ Fearow - .2byte 185 @ Sudowoodo - .2byte 119 @ Seaking - .2byte 286 @ Breloom - .2byte 84 @ Doduo - .2byte 18 @ Pidgeot - .2byte 363 @ Spheal - .2byte 36 @ Clefable - .2byte 380 @ Latias - .2byte 310 @ Manectric - .2byte 335 @ Zangoose - .2byte 141 @ Kabutops - .2byte 94 @ Gengar - .2byte 294 @ Loudred - .2byte 124 @ Jynx - .2byte 164 @ Noctowl - .2byte 203 @ Girafarig - .2byte 371 @ Bagon - .2byte 126 @ Magmar - .2byte 105 @ Marowak - .2byte 72 @ Tentacool - .2byte 288 @ Vigoroth - .2byte 242 @ Blissey - .2byte 359 @ Absol - .2byte 65 @ Alakazam - .2byte 237 @ Hitmontop - .2byte 282 @ Gardevoir - .2byte 210 @ Granbull - .2byte 106 @ Hitmonlee - .2byte 107 @ Hitmonchan - .2byte 227 @ Skarmory - .2byte 331 @ Cacnea - .2byte 257 @ Blaziken - .2byte 254 @ Sceptile - .2byte 336 @ Seviper - .2byte 366 @ Clamperl - .2byte 145 @ Zapdos - .2byte 214 @ Heracross - .2byte 62 @ Poliwrath - .2byte 122 @ Mr. mime - .2byte 127 @ Pinsir - .2byte 272 @ Ludicolo - .2byte 73 @ Tentacruel - .2byte 42 @ Golbat - .2byte 219 @ Magcargo - .2byte 144 @ Articuno - .2byte 221 @ Piloswine - .2byte 123 @ Scyther - .2byte 64 @ Kadabra - .2byte 235 @ Smeargle - .2byte 142 @ Aerodactyl - .2byte 275 @ Shiftry - .2byte 99 @ Kingler - .2byte 31 @ Nidoqueen - .2byte 82 @ Magneton - .2byte 304 @ Aron - .2byte 381 @ Latios - .2byte 146 @ Moltres - .2byte 346 @ Cradily - .2byte 386 @ Deoxys - .2byte 181 @ Ampharos - .2byte 34 @ Nidoking - .2byte 207 @ Gligar - .2byte 24 @ Arbok - .2byte 108 @ Lickitung - .2byte 101 @ Electrode - .2byte 348 @ Armaldo - .2byte 67 @ Machoke - .2byte 234 @ Stantler - .2byte 326 @ Grumpig - .2byte 246 @ Larvitar - .2byte 169 @ Crobat - .2byte 195 @ Quagsire - .2byte 241 @ Miltank - .2byte 97 @ Hypno - .2byte 55 @ Golduck - .2byte 332 @ Cacturne - .2byte 80 @ Slowbro - .2byte 157 @ Typhlosion - .2byte 199 @ Slowking - .2byte 115 @ Kangaskhan - .2byte 121 @ Starmie - .2byte 317 @ Swalot - .2byte 324 @ Torkoal - .2byte 260 @ Swampert - .2byte 330 @ Flygon - .2byte 295 @ Exploud - .2byte 85 @ Dodrio - .2byte 9 @ Blastoise - .2byte 296 @ Makuhita - .2byte 364 @ Sealeo - .2byte 128 @ Tauros - .2byte 319 @ Sharpedo - .2byte 160 @ Feraligatr - .2byte 86 @ Seel - .2byte 6 @ Charizard - .2byte 78 @ Rapidash - .2byte 374 @ Beldum - .2byte 299 @ Nosepass - .2byte 3 @ Venusaur - .2byte 357 @ Tropius - .2byte 154 @ Meganium - .2byte 373 @ Salamence - .2byte 75 @ Graveler - .2byte 344 @ Claydol - .2byte 372 @ Shelgon - .2byte 111 @ Rhyhorn - .2byte 212 @ Scizor - .2byte 87 @ Dewgong - .2byte 112 @ Rhydon - .2byte 232 @ Donphan - .2byte 103 @ Exeggutor - .2byte 305 @ Lairon - .2byte 150 @ Mewtwo - .2byte 217 @ Ursaring - .2byte 205 @ Forretress - .2byte 68 @ Machamp - .2byte 320 @ Wailmer - .2byte 289 @ Slaking - .2byte 91 @ Cloyster - .2byte 365 @ Walrein - .2byte 247 @ Pupitar - .2byte 230 @ Kingdra - .2byte 338 @ Solrock - .2byte 59 @ Arcanine - .2byte 350 @ Milotic - .2byte 337 @ Lunatone - .2byte 378 @ Regice - .2byte 243 @ Raikou - .2byte 245 @ Suicune - .2byte 244 @ Entei - .2byte 250 @ Ho-Oh - .2byte 248 @ Tyranitar - .2byte 375 @ Metang - .2byte 379 @ Registeel - .2byte 384 @ Rayquaza - .2byte 95 @ Onix - .2byte 149 @ Dragonite - .2byte 249 @ Lugia - .2byte 131 @ Lapras - .2byte 323 @ Camerupt - .2byte 226 @ Mantine - .2byte 377 @ Regirock - .2byte 130 @ Gyarados - .2byte 297 @ Hariyama - .2byte 362 @ Glalie - .2byte 76 @ Golem - .2byte 382 @ Kyogre - .2byte 306 @ Aggron - .2byte 321 @ Wailord - .2byte 208 @ Steelix - .2byte 143 @ Snorlax - .2byte 376 @ Metagross - .2byte 383 @ Groudon - - .align 1 -gPokedexOrder_Height:: @ 83A00FE - .2byte 50 @ Diglett - .2byte 298 @ Azurill - .2byte 177 @ Natu - .2byte 13 @ Weedle - .2byte 172 @ Pichu - .2byte 173 @ Cleffa - .2byte 175 @ Togepi - .2byte 351 @ Castform - .2byte 174 @ Igglybuff - .2byte 10 @ Caterpie - .2byte 276 @ Taillow - .2byte 132 @ Ditto - .2byte 133 @ Eevee - .2byte 315 @ Roselia - .2byte 21 @ Spearow - .2byte 16 @ Pidgey - .2byte 191 @ Sunkern - .2byte 90 @ Shellder - .2byte 19 @ Rattata - .2byte 81 @ Magnemite - .2byte 46 @ Paras - .2byte 265 @ Wurmple - .2byte 385 @ Jirachi - .2byte 104 @ Cubone - .2byte 258 @ Mudkip - .2byte 194 @ Wooper - .2byte 116 @ Horsea - .2byte 52 @ Meowth - .2byte 29 @ Nidoran♀ - .2byte 220 @ Swinub - .2byte 151 @ Mew - .2byte 333 @ Swablu - .2byte 304 @ Aron - .2byte 311 @ Plusle - .2byte 312 @ Minun - .2byte 102 @ Exeggcute - .2byte 25 @ Pikachu - .2byte 182 @ Bellossom - .2byte 316 @ Gulpin - .2byte 263 @ Zigzagoon - .2byte 285 @ Shroomish - .2byte 138 @ Omanyte - .2byte 331 @ Cacnea - .2byte 98 @ Krabby - .2byte 280 @ Ralts - .2byte 187 @ Hoppip - .2byte 255 @ Torchic - .2byte 366 @ Clamperl - .2byte 74 @ Geodude - .2byte 183 @ Marill - .2byte 339 @ Barboach - .2byte 238 @ Smoochum - .2byte 100 @ Voltorb - .2byte 290 @ Nincada - .2byte 302 @ Sableye - .2byte 198 @ Murkrow - .2byte 211 @ Qwilfish - .2byte 7 @ Squirtle - .2byte 252 @ Treecko - .2byte 343 @ Baltoy - .2byte 43 @ Oddish - .2byte 270 @ Lotad - .2byte 39 @ Jigglypuff - .2byte 283 @ Surskit - .2byte 155 @ Cyndaquil - .2byte 140 @ Kabuto - .2byte 264 @ Linoone - .2byte 324 @ Torkoal - .2byte 32 @ Nidoran♂ - .2byte 167 @ Spinarak - .2byte 56 @ Mankey - .2byte 273 @ Seedot - .2byte 261 @ Poochyena - .2byte 231 @ Phanpy - .2byte 201 @ Unown - .2byte 170 @ Chinchou - .2byte 233 @ Porygon2 - .2byte 60 @ Poliwag - .2byte 371 @ Bagon - .2byte 349 @ Feebas - .2byte 353 @ Shuppet - .2byte 158 @ Totodile - .2byte 251 @ Celebi - .2byte 360 @ Wynaut - .2byte 27 @ Sandshrew - .2byte 358 @ Chimecho - .2byte 370 @ Luvdisc - .2byte 228 @ Houndour - .2byte 266 @ Silcoon - .2byte 309 @ Electrike - .2byte 4 @ Charmander - .2byte 307 @ Meditite - .2byte 278 @ Wingull - .2byte 223 @ Remoraid - .2byte 341 @ Corphish - .2byte 222 @ Corsola - .2byte 314 @ Illumise - .2byte 209 @ Snubbull - .2byte 37 @ Vulpix - .2byte 246 @ Larvitar - .2byte 374 @ Beldum - .2byte 293 @ Whismur - .2byte 204 @ Pineco - .2byte 239 @ Elekid - .2byte 35 @ Clefairy - .2byte 213 @ Shuckle - .2byte 216 @ Teddiursa - .2byte 14 @ Kakuna - .2byte 300 @ Skitty - .2byte 176 @ Togetic - .2byte 118 @ Goldeen - .2byte 303 @ Mawile - .2byte 179 @ Mareep - .2byte 188 @ Skiploom - .2byte 109 @ Koffing - .2byte 51 @ Dugtrio - .2byte 268 @ Cascoon - .2byte 322 @ Numel - .2byte 347 @ Anorith - .2byte 313 @ Volbeat - .2byte 163 @ Hoothoot - .2byte 328 @ Trapinch - .2byte 325 @ Spoink - .2byte 11 @ Metapod - .2byte 69 @ Bellsprout - .2byte 361 @ Snorunt - .2byte 20 @ Raticate - .2byte 259 @ Marshtomp - .2byte 277 @ Swellow - .2byte 240 @ Magby - .2byte 58 @ Growlithe - .2byte 200 @ Misdreavus - .2byte 1 @ Bulbasaur - .2byte 236 @ Tyrogue - .2byte 218 @ Slugma - .2byte 287 @ Slakoth - .2byte 281 @ Kirlia - .2byte 190 @ Aipom - .2byte 135 @ Jolteon - .2byte 30 @ Nidorina - .2byte 184 @ Azumarill - .2byte 292 @ Shedinja - .2byte 66 @ Machop - .2byte 291 @ Ninjask - .2byte 284 @ Masquerain - .2byte 355 @ Duskull - .2byte 192 @ Sunflora - .2byte 189 @ Jumpluff - .2byte 120 @ Staryu - .2byte 180 @ Flaaffy - .2byte 363 @ Spheal - .2byte 54 @ Psyduck - .2byte 219 @ Magcargo - .2byte 83 @ Farfetch’d - .2byte 41 @ Zubat - .2byte 137 @ Porygon - .2byte 161 @ Sentret - .2byte 318 @ Carvanha - .2byte 44 @ Gloom - .2byte 26 @ Raichu - .2byte 129 @ Magikarp - .2byte 215 @ Sneasel - .2byte 305 @ Lairon - .2byte 256 @ Combusken - .2byte 224 @ Octillery - .2byte 33 @ Nidorino - .2byte 136 @ Flareon - .2byte 225 @ Delibird - .2byte 72 @ Tentacool - .2byte 63 @ Abra - .2byte 253 @ Grovyle - .2byte 340 @ Whiscash - .2byte 156 @ Quilava - .2byte 196 @ Espeon - .2byte 88 @ Grimer - .2byte 152 @ Chikorita - .2byte 326 @ Grumpig - .2byte 299 @ Nosepass - .2byte 53 @ Persian - .2byte 262 @ Mightyena - .2byte 48 @ Venonat - .2byte 82 @ Magneton - .2byte 77 @ Ponyta - .2byte 296 @ Makuhita - .2byte 337 @ Lunatone - .2byte 28 @ Sandslash - .2byte 96 @ Drowzee - .2byte 114 @ Tangela - .2byte 57 @ Primeape - .2byte 165 @ Ledyba - .2byte 40 @ Wigglytuff - .2byte 47 @ Parasect - .2byte 139 @ Omastar - .2byte 294 @ Loudred - .2byte 8 @ Wartortle - .2byte 75 @ Graveler - .2byte 197 @ Umbreon - .2byte 345 @ Lileep - .2byte 61 @ Poliwhirl - .2byte 134 @ Vaporeon - .2byte 15 @ Beedrill - .2byte 105 @ Marowak - .2byte 70 @ Weepinbell - .2byte 369 @ Relicanth - .2byte 111 @ Rhyhorn - .2byte 2 @ Ivysaur - .2byte 352 @ Kecleon - .2byte 274 @ Nuzleaf - .2byte 267 @ Beautifly - .2byte 17 @ Pidgeotto - .2byte 168 @ Ariados - .2byte 86 @ Seel - .2byte 186 @ Politoed - .2byte 159 @ Croconaw - .2byte 113 @ Chansey - .2byte 354 @ Banette - .2byte 232 @ Donphan - .2byte 121 @ Starmie - .2byte 5 @ Charmeleon - .2byte 221 @ Piloswine - .2byte 12 @ Butterfree - .2byte 329 @ Vibrava - .2byte 125 @ Electabuzz - .2byte 342 @ Crawdaunt - .2byte 301 @ Delcatty - .2byte 334 @ Altaria - .2byte 372 @ Shelgon - .2byte 38 @ Ninetales - .2byte 207 @ Gligar - .2byte 364 @ Sealeo - .2byte 327 @ Spinda - .2byte 247 @ Pupitar - .2byte 79 @ Slowpoke - .2byte 338 @ Solrock - .2byte 241 @ Miltank - .2byte 22 @ Fearow - .2byte 45 @ Vileplume - .2byte 89 @ Muk - .2byte 205 @ Forretress - .2byte 185 @ Sudowoodo - .2byte 359 @ Absol - .2byte 193 @ Yanma - .2byte 269 @ Dustox - .2byte 108 @ Lickitung - .2byte 235 @ Smeargle - .2byte 171 @ Lanturn - .2byte 101 @ Electrode - .2byte 271 @ Lombre - .2byte 286 @ Breloom - .2byte 153 @ Bayleef - .2byte 117 @ Seadra - .2byte 110 @ Weezing - .2byte 279 @ Pelipper - .2byte 375 @ Metang - .2byte 31 @ Nidoqueen - .2byte 332 @ Cacturne - .2byte 275 @ Shiftry - .2byte 308 @ Medicham - .2byte 335 @ Zangoose - .2byte 141 @ Kabutops - .2byte 99 @ Kingler - .2byte 64 @ Kadabra - .2byte 119 @ Seaking - .2byte 36 @ Clefable - .2byte 126 @ Magmar - .2byte 202 @ Wobbuffet - .2byte 92 @ Gastly - .2byte 122 @ Mr. mime - .2byte 62 @ Poliwrath - .2byte 128 @ Tauros - .2byte 380 @ Latias - .2byte 181 @ Ampharos - .2byte 288 @ Vigoroth - .2byte 166 @ Ledian - .2byte 76 @ Golem - .2byte 365 @ Walrein - .2byte 84 @ Doduo - .2byte 229 @ Houndoom - .2byte 34 @ Nidoking - .2byte 124 @ Jynx - .2byte 107 @ Hitmonchan - .2byte 234 @ Stantler - .2byte 210 @ Granbull - .2byte 237 @ Hitmontop - .2byte 195 @ Quagsire - .2byte 344 @ Claydol - .2byte 260 @ Swampert - .2byte 242 @ Blissey - .2byte 272 @ Ludicolo - .2byte 295 @ Exploud - .2byte 206 @ Dunsparce - .2byte 127 @ Pinsir - .2byte 91 @ Cloyster - .2byte 67 @ Machoke - .2byte 203 @ Girafarig - .2byte 18 @ Pidgeot - .2byte 178 @ Xatu - .2byte 346 @ Cradily - .2byte 106 @ Hitmonlee - .2byte 49 @ Venomoth - .2byte 94 @ Gengar - .2byte 214 @ Heracross - .2byte 362 @ Glalie - .2byte 123 @ Scyther - .2byte 373 @ Salamence - .2byte 310 @ Manectric - .2byte 348 @ Armaldo - .2byte 65 @ Alakazam - .2byte 97 @ Hypno - .2byte 164 @ Noctowl - .2byte 73 @ Tentacruel - .2byte 356 @ Dusclops - .2byte 145 @ Zapdos - .2byte 42 @ Golbat - .2byte 376 @ Metagross - .2byte 282 @ Gardevoir - .2byte 9 @ Blastoise - .2byte 80 @ Slowbro - .2byte 93 @ Haunter - .2byte 68 @ Machamp - .2byte 377 @ Regirock - .2byte 317 @ Swalot - .2byte 254 @ Sceptile - .2byte 227 @ Skarmory - .2byte 55 @ Golduck - .2byte 386 @ Deoxys - .2byte 71 @ Victreebel - .2byte 78 @ Rapidash - .2byte 6 @ Charizard - .2byte 367 @ Huntail - .2byte 87 @ Dewgong - .2byte 144 @ Articuno - .2byte 157 @ Typhlosion - .2byte 142 @ Aerodactyl - .2byte 368 @ Gorebyss - .2byte 217 @ Ursaring - .2byte 154 @ Meganium - .2byte 378 @ Regice - .2byte 212 @ Scizor - .2byte 230 @ Kingdra - .2byte 147 @ Dratini - .2byte 85 @ Dodrio - .2byte 319 @ Sharpedo - .2byte 169 @ Crobat - .2byte 162 @ Furret - .2byte 59 @ Arcanine - .2byte 243 @ Raikou - .2byte 257 @ Blaziken - .2byte 323 @ Camerupt - .2byte 112 @ Rhydon - .2byte 379 @ Registeel - .2byte 23 @ Ekans - .2byte 330 @ Flygon - .2byte 357 @ Tropius - .2byte 381 @ Latios - .2byte 245 @ Suicune - .2byte 146 @ Moltres - .2byte 3 @ Venusaur - .2byte 103 @ Exeggutor - .2byte 199 @ Slowking - .2byte 248 @ Tyranitar - .2byte 289 @ Slaking - .2byte 320 @ Wailmer - .2byte 150 @ Mewtwo - .2byte 306 @ Aggron - .2byte 143 @ Snorlax - .2byte 226 @ Mantine - .2byte 244 @ Entei - .2byte 149 @ Dragonite - .2byte 115 @ Kangaskhan - .2byte 297 @ Hariyama - .2byte 160 @ Feraligatr - .2byte 131 @ Lapras - .2byte 336 @ Seviper - .2byte 24 @ Arbok - .2byte 383 @ Groudon - .2byte 250 @ Ho-Oh - .2byte 148 @ Dragonair - .2byte 382 @ Kyogre - .2byte 249 @ Lugia - .2byte 350 @ Milotic - .2byte 130 @ Gyarados - .2byte 384 @ Rayquaza - .2byte 95 @ Onix - .2byte 208 @ Steelix - .2byte 321 @ Wailord diff --git a/include/graphics.h b/include/graphics.h new file mode 100644 index 000000000..096a1982c --- /dev/null +++ b/include/graphics.h @@ -0,0 +1,2412 @@ +#ifndef GUARD_GRAPHICS_H +#define GUARD_GRAPHICS_H + +// data/graphics.s +extern const u8 gMonFootprint_QuestionMark[]; + +// data/graphics/pokemon/graphics.inc +extern const u8 gMonFrontPic_Bulbasaur[]; +extern const u8 gMonPalette_Bulbasaur[]; +extern const u8 gMonBackPic_Bulbasaur[]; +extern const u8 gMonShinyPalette_Bulbasaur[]; +extern const u8 gMonIcon_Bulbasaur[]; +extern const u8 gMonFootprint_Bulbasaur[]; +extern const u8 gMonFrontPic_Ivysaur[]; +extern const u8 gMonPalette_Ivysaur[]; +extern const u8 gMonBackPic_Ivysaur[]; +extern const u8 gMonShinyPalette_Ivysaur[]; +extern const u8 gMonIcon_Ivysaur[]; +extern const u8 gMonFootprint_Ivysaur[]; +extern const u8 gMonFrontPic_Venusaur[]; +extern const u8 gMonPalette_Venusaur[]; +extern const u8 gMonBackPic_Venusaur[]; +extern const u8 gMonShinyPalette_Venusaur[]; +extern const u8 gMonIcon_Venusaur[]; +extern const u8 gMonFootprint_Venusaur[]; +extern const u8 gMonFrontPic_Charmander[]; +extern const u8 gMonPalette_Charmander[]; +extern const u8 gMonBackPic_Charmander[]; +extern const u8 gMonShinyPalette_Charmander[]; +extern const u8 gMonIcon_Charmander[]; +extern const u8 gMonFootprint_Charmander[]; +extern const u8 gMonFrontPic_Charmeleon[]; +extern const u8 gMonPalette_Charmeleon[]; +extern const u8 gMonBackPic_Charmeleon[]; +extern const u8 gMonShinyPalette_Charmeleon[]; +extern const u8 gMonIcon_Charmeleon[]; +extern const u8 gMonFootprint_Charmeleon[]; +extern const u8 gMonFrontPic_Charizard[]; +extern const u8 gMonPalette_Charizard[]; +extern const u8 gMonBackPic_Charizard[]; +extern const u8 gMonShinyPalette_Charizard[]; +extern const u8 gMonIcon_Charizard[]; +extern const u8 gMonFootprint_Charizard[]; +extern const u8 gMonFrontPic_Squirtle[]; +extern const u8 gMonPalette_Squirtle[]; +extern const u8 gMonBackPic_Squirtle[]; +extern const u8 gMonShinyPalette_Squirtle[]; +extern const u8 gMonIcon_Squirtle[]; +extern const u8 gMonFootprint_Squirtle[]; +extern const u8 gMonFrontPic_Wartortle[]; +extern const u8 gMonPalette_Wartortle[]; +extern const u8 gMonBackPic_Wartortle[]; +extern const u8 gMonShinyPalette_Wartortle[]; +extern const u8 gMonIcon_Wartortle[]; +extern const u8 gMonFootprint_Wartortle[]; +extern const u8 gMonFrontPic_Blastoise[]; +extern const u8 gMonPalette_Blastoise[]; +extern const u8 gMonBackPic_Blastoise[]; +extern const u8 gMonShinyPalette_Blastoise[]; +extern const u8 gMonIcon_Blastoise[]; +extern const u8 gMonFootprint_Blastoise[]; +extern const u8 gMonFrontPic_Caterpie[]; +extern const u8 gMonPalette_Caterpie[]; +extern const u8 gMonBackPic_Caterpie[]; +extern const u8 gMonShinyPalette_Caterpie[]; +extern const u8 gMonIcon_Caterpie[]; +extern const u8 gMonFootprint_Caterpie[]; +extern const u8 gMonFrontPic_Metapod[]; +extern const u8 gMonPalette_Metapod[]; +extern const u8 gMonBackPic_Metapod[]; +extern const u8 gMonShinyPalette_Metapod[]; +extern const u8 gMonIcon_Metapod[]; +extern const u8 gMonFootprint_Metapod[]; +extern const u8 gMonFrontPic_Butterfree[]; +extern const u8 gMonPalette_Butterfree[]; +extern const u8 gMonBackPic_Butterfree[]; +extern const u8 gMonShinyPalette_Butterfree[]; +extern const u8 gMonIcon_Butterfree[]; +extern const u8 gMonFootprint_Butterfree[]; +extern const u8 gMonFrontPic_Weedle[]; +extern const u8 gMonPalette_Weedle[]; +extern const u8 gMonBackPic_Weedle[]; +extern const u8 gMonShinyPalette_Weedle[]; +extern const u8 gMonIcon_Weedle[]; +extern const u8 gMonFootprint_Weedle[]; +extern const u8 gMonFrontPic_Kakuna[]; +extern const u8 gMonPalette_Kakuna[]; +extern const u8 gMonBackPic_Kakuna[]; +extern const u8 gMonShinyPalette_Kakuna[]; +extern const u8 gMonIcon_Kakuna[]; +extern const u8 gMonFootprint_Kakuna[]; +extern const u8 gMonFrontPic_Beedrill[]; +extern const u8 gMonPalette_Beedrill[]; +extern const u8 gMonBackPic_Beedrill[]; +extern const u8 gMonShinyPalette_Beedrill[]; +extern const u8 gMonIcon_Beedrill[]; +extern const u8 gMonFootprint_Beedrill[]; +extern const u8 gMonFrontPic_Pidgey[]; +extern const u8 gMonPalette_Pidgey[]; +extern const u8 gMonBackPic_Pidgey[]; +extern const u8 gMonShinyPalette_Pidgey[]; +extern const u8 gMonIcon_Pidgey[]; +extern const u8 gMonFootprint_Pidgey[]; +extern const u8 gMonFrontPic_Pidgeotto[]; +extern const u8 gMonPalette_Pidgeotto[]; +extern const u8 gMonBackPic_Pidgeotto[]; +extern const u8 gMonShinyPalette_Pidgeotto[]; +extern const u8 gMonIcon_Pidgeotto[]; +extern const u8 gMonFootprint_Pidgeotto[]; +extern const u8 gMonFrontPic_Pidgeot[]; +extern const u8 gMonPalette_Pidgeot[]; +extern const u8 gMonBackPic_Pidgeot[]; +extern const u8 gMonShinyPalette_Pidgeot[]; +extern const u8 gMonIcon_Pidgeot[]; +extern const u8 gMonFootprint_Pidgeot[]; +extern const u8 gMonFrontPic_Rattata[]; +extern const u8 gMonPalette_Rattata[]; +extern const u8 gMonBackPic_Rattata[]; +extern const u8 gMonShinyPalette_Rattata[]; +extern const u8 gMonIcon_Rattata[]; +extern const u8 gMonFootprint_Rattata[]; +extern const u8 gMonFrontPic_Raticate[]; +extern const u8 gMonPalette_Raticate[]; +extern const u8 gMonBackPic_Raticate[]; +extern const u8 gMonShinyPalette_Raticate[]; +extern const u8 gMonIcon_Raticate[]; +extern const u8 gMonFootprint_Raticate[]; +extern const u8 gMonFrontPic_Spearow[]; +extern const u8 gMonPalette_Spearow[]; +extern const u8 gMonBackPic_Spearow[]; +extern const u8 gMonShinyPalette_Spearow[]; +extern const u8 gMonIcon_Spearow[]; +extern const u8 gMonFootprint_Spearow[]; +extern const u8 gMonFrontPic_Fearow[]; +extern const u8 gMonPalette_Fearow[]; +extern const u8 gMonBackPic_Fearow[]; +extern const u8 gMonShinyPalette_Fearow[]; +extern const u8 gMonIcon_Fearow[]; +extern const u8 gMonFootprint_Fearow[]; +extern const u8 gMonFrontPic_Ekans[]; +extern const u8 gMonPalette_Ekans[]; +extern const u8 gMonBackPic_Ekans[]; +extern const u8 gMonShinyPalette_Ekans[]; +extern const u8 gMonIcon_Ekans[]; +extern const u8 gMonFootprint_Ekans[]; +extern const u8 gMonFrontPic_Arbok[]; +extern const u8 gMonPalette_Arbok[]; +extern const u8 gMonBackPic_Arbok[]; +extern const u8 gMonShinyPalette_Arbok[]; +extern const u8 gMonIcon_Arbok[]; +extern const u8 gMonFootprint_Arbok[]; +extern const u8 gMonFrontPic_Pikachu[]; +extern const u8 gMonPalette_Pikachu[]; +extern const u8 gMonBackPic_Pikachu[]; +extern const u8 gMonShinyPalette_Pikachu[]; +extern const u8 gMonIcon_Pikachu[]; +extern const u8 gMonFootprint_Pikachu[]; +extern const u8 gMonFrontPic_Raichu[]; +extern const u8 gMonPalette_Raichu[]; +extern const u8 gMonBackPic_Raichu[]; +extern const u8 gMonShinyPalette_Raichu[]; +extern const u8 gMonIcon_Raichu[]; +extern const u8 gMonFootprint_Raichu[]; +extern const u8 gMonFrontPic_Sandshrew[]; +extern const u8 gMonPalette_Sandshrew[]; +extern const u8 gMonBackPic_Sandshrew[]; +extern const u8 gMonShinyPalette_Sandshrew[]; +extern const u8 gMonIcon_Sandshrew[]; +extern const u8 gMonFootprint_Sandshrew[]; +extern const u8 gMonFrontPic_Sandslash[]; +extern const u8 gMonPalette_Sandslash[]; +extern const u8 gMonBackPic_Sandslash[]; +extern const u8 gMonShinyPalette_Sandslash[]; +extern const u8 gMonIcon_Sandslash[]; +extern const u8 gMonFootprint_Sandslash[]; +extern const u8 gMonFrontPic_NidoranF[]; +extern const u8 gMonPalette_NidoranF[]; +extern const u8 gMonBackPic_NidoranF[]; +extern const u8 gMonShinyPalette_NidoranF[]; +extern const u8 gMonIcon_NidoranF[]; +extern const u8 gMonFootprint_NidoranF[]; +extern const u8 gMonFrontPic_Nidorina[]; +extern const u8 gMonPalette_Nidorina[]; +extern const u8 gMonBackPic_Nidorina[]; +extern const u8 gMonShinyPalette_Nidorina[]; +extern const u8 gMonIcon_Nidorina[]; +extern const u8 gMonFootprint_Nidorina[]; +extern const u8 gMonFrontPic_Nidoqueen[]; +extern const u8 gMonPalette_Nidoqueen[]; +extern const u8 gMonBackPic_Nidoqueen[]; +extern const u8 gMonShinyPalette_Nidoqueen[]; +extern const u8 gMonIcon_Nidoqueen[]; +extern const u8 gMonFootprint_Nidoqueen[]; +extern const u8 gMonFrontPic_NidoranM[]; +extern const u8 gMonPalette_NidoranM[]; +extern const u8 gMonBackPic_NidoranM[]; +extern const u8 gMonShinyPalette_NidoranM[]; +extern const u8 gMonIcon_NidoranM[]; +extern const u8 gMonFootprint_NidoranM[]; +extern const u8 gMonFrontPic_Nidorino[]; +extern const u8 gMonPalette_Nidorino[]; +extern const u8 gMonBackPic_Nidorino[]; +extern const u8 gMonShinyPalette_Nidorino[]; +extern const u8 gMonIcon_Nidorino[]; +extern const u8 gMonFootprint_Nidorino[]; +extern const u8 gMonFrontPic_Nidoking[]; +extern const u8 gMonPalette_Nidoking[]; +extern const u8 gMonBackPic_Nidoking[]; +extern const u8 gMonShinyPalette_Nidoking[]; +extern const u8 gMonIcon_Nidoking[]; +extern const u8 gMonFootprint_Nidoking[]; +extern const u8 gMonFrontPic_Clefairy[]; +extern const u8 gMonPalette_Clefairy[]; +extern const u8 gMonBackPic_Clefairy[]; +extern const u8 gMonShinyPalette_Clefairy[]; +extern const u8 gMonIcon_Clefairy[]; +extern const u8 gMonFootprint_Clefairy[]; +extern const u8 gMonFrontPic_Clefable[]; +extern const u8 gMonPalette_Clefable[]; +extern const u8 gMonBackPic_Clefable[]; +extern const u8 gMonShinyPalette_Clefable[]; +extern const u8 gMonIcon_Clefable[]; +extern const u8 gMonFootprint_Clefable[]; +extern const u8 gMonFrontPic_Vulpix[]; +extern const u8 gMonPalette_Vulpix[]; +extern const u8 gMonBackPic_Vulpix[]; +extern const u8 gMonShinyPalette_Vulpix[]; +extern const u8 gMonIcon_Vulpix[]; +extern const u8 gMonFootprint_Vulpix[]; +extern const u8 gMonFrontPic_Ninetales[]; +extern const u8 gMonPalette_Ninetales[]; +extern const u8 gMonBackPic_Ninetales[]; +extern const u8 gMonShinyPalette_Ninetales[]; +extern const u8 gMonIcon_Ninetales[]; +extern const u8 gMonFootprint_Ninetales[]; +extern const u8 gMonFrontPic_Jigglypuff[]; +extern const u8 gMonPalette_Jigglypuff[]; +extern const u8 gMonBackPic_Jigglypuff[]; +extern const u8 gMonShinyPalette_Jigglypuff[]; +extern const u8 gMonIcon_Jigglypuff[]; +extern const u8 gMonFootprint_Jigglypuff[]; +extern const u8 gMonFrontPic_Wigglytuff[]; +extern const u8 gMonPalette_Wigglytuff[]; +extern const u8 gMonBackPic_Wigglytuff[]; +extern const u8 gMonShinyPalette_Wigglytuff[]; +extern const u8 gMonIcon_Wigglytuff[]; +extern const u8 gMonFootprint_Wigglytuff[]; +extern const u8 gMonFrontPic_Zubat[]; +extern const u8 gMonPalette_Zubat[]; +extern const u8 gMonBackPic_Zubat[]; +extern const u8 gMonShinyPalette_Zubat[]; +extern const u8 gMonIcon_Zubat[]; +extern const u8 gMonFootprint_Zubat[]; +extern const u8 gMonFrontPic_Golbat[]; +extern const u8 gMonPalette_Golbat[]; +extern const u8 gMonBackPic_Golbat[]; +extern const u8 gMonShinyPalette_Golbat[]; +extern const u8 gMonIcon_Golbat[]; +extern const u8 gMonFootprint_Golbat[]; +extern const u8 gMonFrontPic_Oddish[]; +extern const u8 gMonPalette_Oddish[]; +extern const u8 gMonBackPic_Oddish[]; +extern const u8 gMonShinyPalette_Oddish[]; +extern const u8 gMonIcon_Oddish[]; +extern const u8 gMonFootprint_Oddish[]; +extern const u8 gMonFrontPic_Gloom[]; +extern const u8 gMonPalette_Gloom[]; +extern const u8 gMonBackPic_Gloom[]; +extern const u8 gMonShinyPalette_Gloom[]; +extern const u8 gMonIcon_Gloom[]; +extern const u8 gMonFootprint_Gloom[]; +extern const u8 gMonFrontPic_Vileplume[]; +extern const u8 gMonPalette_Vileplume[]; +extern const u8 gMonBackPic_Vileplume[]; +extern const u8 gMonShinyPalette_Vileplume[]; +extern const u8 gMonIcon_Vileplume[]; +extern const u8 gMonFootprint_Vileplume[]; +extern const u8 gMonFrontPic_Paras[]; +extern const u8 gMonPalette_Paras[]; +extern const u8 gMonBackPic_Paras[]; +extern const u8 gMonShinyPalette_Paras[]; +extern const u8 gMonIcon_Paras[]; +extern const u8 gMonFootprint_Paras[]; +extern const u8 gMonFrontPic_Parasect[]; +extern const u8 gMonPalette_Parasect[]; +extern const u8 gMonBackPic_Parasect[]; +extern const u8 gMonShinyPalette_Parasect[]; +extern const u8 gMonIcon_Parasect[]; +extern const u8 gMonFootprint_Parasect[]; +extern const u8 gMonFrontPic_Venonat[]; +extern const u8 gMonPalette_Venonat[]; +extern const u8 gMonBackPic_Venonat[]; +extern const u8 gMonShinyPalette_Venonat[]; +extern const u8 gMonIcon_Venonat[]; +extern const u8 gMonFootprint_Venonat[]; +extern const u8 gMonFrontPic_Venomoth[]; +extern const u8 gMonPalette_Venomoth[]; +extern const u8 gMonBackPic_Venomoth[]; +extern const u8 gMonShinyPalette_Venomoth[]; +extern const u8 gMonIcon_Venomoth[]; +extern const u8 gMonFootprint_Venomoth[]; +extern const u8 gMonFrontPic_Diglett[]; +extern const u8 gMonPalette_Diglett[]; +extern const u8 gMonBackPic_Diglett[]; +extern const u8 gMonShinyPalette_Diglett[]; +extern const u8 gMonIcon_Diglett[]; +extern const u8 gMonFootprint_Diglett[]; +extern const u8 gMonFrontPic_Dugtrio[]; +extern const u8 gMonPalette_Dugtrio[]; +extern const u8 gMonBackPic_Dugtrio[]; +extern const u8 gMonShinyPalette_Dugtrio[]; +extern const u8 gMonIcon_Dugtrio[]; +extern const u8 gMonFootprint_Dugtrio[]; +extern const u8 gMonFrontPic_Meowth[]; +extern const u8 gMonPalette_Meowth[]; +extern const u8 gMonBackPic_Meowth[]; +extern const u8 gMonShinyPalette_Meowth[]; +extern const u8 gMonIcon_Meowth[]; +extern const u8 gMonFootprint_Meowth[]; +extern const u8 gMonFrontPic_Persian[]; +extern const u8 gMonPalette_Persian[]; +extern const u8 gMonBackPic_Persian[]; +extern const u8 gMonShinyPalette_Persian[]; +extern const u8 gMonIcon_Persian[]; +extern const u8 gMonFootprint_Persian[]; +extern const u8 gMonFrontPic_Psyduck[]; +extern const u8 gMonPalette_Psyduck[]; +extern const u8 gMonBackPic_Psyduck[]; +extern const u8 gMonShinyPalette_Psyduck[]; +extern const u8 gMonIcon_Psyduck[]; +extern const u8 gMonFootprint_Psyduck[]; +extern const u8 gMonFrontPic_Golduck[]; +extern const u8 gMonPalette_Golduck[]; +extern const u8 gMonBackPic_Golduck[]; +extern const u8 gMonShinyPalette_Golduck[]; +extern const u8 gMonIcon_Golduck[]; +extern const u8 gMonFootprint_Golduck[]; +extern const u8 gMonFrontPic_Mankey[]; +extern const u8 gMonPalette_Mankey[]; +extern const u8 gMonBackPic_Mankey[]; +extern const u8 gMonShinyPalette_Mankey[]; +extern const u8 gMonIcon_Mankey[]; +extern const u8 gMonFootprint_Mankey[]; +extern const u8 gMonFrontPic_Primeape[]; +extern const u8 gMonPalette_Primeape[]; +extern const u8 gMonBackPic_Primeape[]; +extern const u8 gMonShinyPalette_Primeape[]; +extern const u8 gMonIcon_Primeape[]; +extern const u8 gMonFootprint_Primeape[]; +extern const u8 gMonFrontPic_Growlithe[]; +extern const u8 gMonPalette_Growlithe[]; +extern const u8 gMonBackPic_Growlithe[]; +extern const u8 gMonShinyPalette_Growlithe[]; +extern const u8 gMonIcon_Growlithe[]; +extern const u8 gMonFootprint_Growlithe[]; +extern const u8 gMonFrontPic_Arcanine[]; +extern const u8 gMonPalette_Arcanine[]; +extern const u8 gMonBackPic_Arcanine[]; +extern const u8 gMonShinyPalette_Arcanine[]; +extern const u8 gMonIcon_Arcanine[]; +extern const u8 gMonFootprint_Arcanine[]; +extern const u8 gMonFrontPic_Poliwag[]; +extern const u8 gMonPalette_Poliwag[]; +extern const u8 gMonBackPic_Poliwag[]; +extern const u8 gMonShinyPalette_Poliwag[]; +extern const u8 gMonIcon_Poliwag[]; +extern const u8 gMonFootprint_Poliwag[]; +extern const u8 gMonFrontPic_Poliwhirl[]; +extern const u8 gMonPalette_Poliwhirl[]; +extern const u8 gMonBackPic_Poliwhirl[]; +extern const u8 gMonShinyPalette_Poliwhirl[]; +extern const u8 gMonIcon_Poliwhirl[]; +extern const u8 gMonFootprint_Poliwhirl[]; +extern const u8 gMonFrontPic_Poliwrath[]; +extern const u8 gMonPalette_Poliwrath[]; +extern const u8 gMonBackPic_Poliwrath[]; +extern const u8 gMonShinyPalette_Poliwrath[]; +extern const u8 gMonIcon_Poliwrath[]; +extern const u8 gMonFootprint_Poliwrath[]; +extern const u8 gMonFrontPic_Abra[]; +extern const u8 gMonPalette_Abra[]; +extern const u8 gMonBackPic_Abra[]; +extern const u8 gMonShinyPalette_Abra[]; +extern const u8 gMonIcon_Abra[]; +extern const u8 gMonFootprint_Abra[]; +extern const u8 gMonFrontPic_Kadabra[]; +extern const u8 gMonPalette_Kadabra[]; +extern const u8 gMonBackPic_Kadabra[]; +extern const u8 gMonShinyPalette_Kadabra[]; +extern const u8 gMonIcon_Kadabra[]; +extern const u8 gMonFootprint_Kadabra[]; +extern const u8 gMonFrontPic_Alakazam[]; +extern const u8 gMonPalette_Alakazam[]; +extern const u8 gMonBackPic_Alakazam[]; +extern const u8 gMonShinyPalette_Alakazam[]; +extern const u8 gMonIcon_Alakazam[]; +extern const u8 gMonFootprint_Alakazam[]; +extern const u8 gMonFrontPic_Machop[]; +extern const u8 gMonPalette_Machop[]; +extern const u8 gMonBackPic_Machop[]; +extern const u8 gMonShinyPalette_Machop[]; +extern const u8 gMonIcon_Machop[]; +extern const u8 gMonFootprint_Machop[]; +extern const u8 gMonFrontPic_Machoke[]; +extern const u8 gMonPalette_Machoke[]; +extern const u8 gMonBackPic_Machoke[]; +extern const u8 gMonShinyPalette_Machoke[]; +extern const u8 gMonIcon_Machoke[]; +extern const u8 gMonFootprint_Machoke[]; +extern const u8 gMonFrontPic_Machamp[]; +extern const u8 gMonPalette_Machamp[]; +extern const u8 gMonBackPic_Machamp[]; +extern const u8 gMonShinyPalette_Machamp[]; +extern const u8 gMonIcon_Machamp[]; +extern const u8 gMonFootprint_Machamp[]; +extern const u8 gMonFrontPic_Bellsprout[]; +extern const u8 gMonPalette_Bellsprout[]; +extern const u8 gMonBackPic_Bellsprout[]; +extern const u8 gMonShinyPalette_Bellsprout[]; +extern const u8 gMonIcon_Bellsprout[]; +extern const u8 gMonFootprint_Bellsprout[]; +extern const u8 gMonFrontPic_Weepinbell[]; +extern const u8 gMonPalette_Weepinbell[]; +extern const u8 gMonBackPic_Weepinbell[]; +extern const u8 gMonShinyPalette_Weepinbell[]; +extern const u8 gMonIcon_Weepinbell[]; +extern const u8 gMonFootprint_Weepinbell[]; +extern const u8 gMonFrontPic_Victreebel[]; +extern const u8 gMonPalette_Victreebel[]; +extern const u8 gMonBackPic_Victreebel[]; +extern const u8 gMonShinyPalette_Victreebel[]; +extern const u8 gMonIcon_Victreebel[]; +extern const u8 gMonFootprint_Victreebel[]; +extern const u8 gMonFrontPic_Tentacool[]; +extern const u8 gMonPalette_Tentacool[]; +extern const u8 gMonBackPic_Tentacool[]; +extern const u8 gMonShinyPalette_Tentacool[]; +extern const u8 gMonIcon_Tentacool[]; +extern const u8 gMonFootprint_Tentacool[]; +extern const u8 gMonFrontPic_Tentacruel[]; +extern const u8 gMonPalette_Tentacruel[]; +extern const u8 gMonBackPic_Tentacruel[]; +extern const u8 gMonShinyPalette_Tentacruel[]; +extern const u8 gMonIcon_Tentacruel[]; +extern const u8 gMonFootprint_Tentacruel[]; +extern const u8 gMonFrontPic_Geodude[]; +extern const u8 gMonPalette_Geodude[]; +extern const u8 gMonBackPic_Geodude[]; +extern const u8 gMonShinyPalette_Geodude[]; +extern const u8 gMonIcon_Geodude[]; +extern const u8 gMonFootprint_Geodude[]; +extern const u8 gMonFrontPic_Graveler[]; +extern const u8 gMonPalette_Graveler[]; +extern const u8 gMonBackPic_Graveler[]; +extern const u8 gMonShinyPalette_Graveler[]; +extern const u8 gMonIcon_Graveler[]; +extern const u8 gMonFootprint_Graveler[]; +extern const u8 gMonFrontPic_Golem[]; +extern const u8 gMonPalette_Golem[]; +extern const u8 gMonBackPic_Golem[]; +extern const u8 gMonShinyPalette_Golem[]; +extern const u8 gMonIcon_Golem[]; +extern const u8 gMonFootprint_Golem[]; +extern const u8 gMonFrontPic_Ponyta[]; +extern const u8 gMonPalette_Ponyta[]; +extern const u8 gMonBackPic_Ponyta[]; +extern const u8 gMonShinyPalette_Ponyta[]; +extern const u8 gMonIcon_Ponyta[]; +extern const u8 gMonFootprint_Ponyta[]; +extern const u8 gMonFrontPic_Rapidash[]; +extern const u8 gMonPalette_Rapidash[]; +extern const u8 gMonBackPic_Rapidash[]; +extern const u8 gMonShinyPalette_Rapidash[]; +extern const u8 gMonIcon_Rapidash[]; +extern const u8 gMonFootprint_Rapidash[]; +extern const u8 gMonFrontPic_Slowpoke[]; +extern const u8 gMonPalette_Slowpoke[]; +extern const u8 gMonBackPic_Slowpoke[]; +extern const u8 gMonShinyPalette_Slowpoke[]; +extern const u8 gMonIcon_Slowpoke[]; +extern const u8 gMonFootprint_Slowpoke[]; +extern const u8 gMonFrontPic_Slowbro[]; +extern const u8 gMonPalette_Slowbro[]; +extern const u8 gMonBackPic_Slowbro[]; +extern const u8 gMonShinyPalette_Slowbro[]; +extern const u8 gMonIcon_Slowbro[]; +extern const u8 gMonFootprint_Slowbro[]; +extern const u8 gMonFrontPic_Magnemite[]; +extern const u8 gMonPalette_Magnemite[]; +extern const u8 gMonBackPic_Magnemite[]; +extern const u8 gMonShinyPalette_Magnemite[]; +extern const u8 gMonIcon_Magnemite[]; +extern const u8 gMonFootprint_Magnemite[]; +extern const u8 gMonFrontPic_Magneton[]; +extern const u8 gMonPalette_Magneton[]; +extern const u8 gMonBackPic_Magneton[]; +extern const u8 gMonShinyPalette_Magneton[]; +extern const u8 gMonIcon_Magneton[]; +extern const u8 gMonFootprint_Magneton[]; +extern const u8 gMonFrontPic_Farfetchd[]; +extern const u8 gMonPalette_Farfetchd[]; +extern const u8 gMonBackPic_Farfetchd[]; +extern const u8 gMonShinyPalette_Farfetchd[]; +extern const u8 gMonIcon_Farfetchd[]; +extern const u8 gMonFootprint_Farfetchd[]; +extern const u8 gMonFrontPic_Doduo[]; +extern const u8 gMonPalette_Doduo[]; +extern const u8 gMonBackPic_Doduo[]; +extern const u8 gMonShinyPalette_Doduo[]; +extern const u8 gMonIcon_Doduo[]; +extern const u8 gMonFootprint_Doduo[]; +extern const u8 gMonFrontPic_Dodrio[]; +extern const u8 gMonPalette_Dodrio[]; +extern const u8 gMonBackPic_Dodrio[]; +extern const u8 gMonShinyPalette_Dodrio[]; +extern const u8 gMonIcon_Dodrio[]; +extern const u8 gMonFootprint_Dodrio[]; +extern const u8 gMonFrontPic_Seel[]; +extern const u8 gMonPalette_Seel[]; +extern const u8 gMonBackPic_Seel[]; +extern const u8 gMonShinyPalette_Seel[]; +extern const u8 gMonIcon_Seel[]; +extern const u8 gMonFootprint_Seel[]; +extern const u8 gMonFrontPic_Dewgong[]; +extern const u8 gMonPalette_Dewgong[]; +extern const u8 gMonBackPic_Dewgong[]; +extern const u8 gMonShinyPalette_Dewgong[]; +extern const u8 gMonIcon_Dewgong[]; +extern const u8 gMonFootprint_Dewgong[]; +extern const u8 gMonFrontPic_Grimer[]; +extern const u8 gMonPalette_Grimer[]; +extern const u8 gMonBackPic_Grimer[]; +extern const u8 gMonShinyPalette_Grimer[]; +extern const u8 gMonIcon_Grimer[]; +extern const u8 gMonFootprint_Grimer[]; +extern const u8 gMonFrontPic_Muk[]; +extern const u8 gMonPalette_Muk[]; +extern const u8 gMonBackPic_Muk[]; +extern const u8 gMonShinyPalette_Muk[]; +extern const u8 gMonIcon_Muk[]; +extern const u8 gMonFootprint_Muk[]; +extern const u8 gMonFrontPic_Shellder[]; +extern const u8 gMonPalette_Shellder[]; +extern const u8 gMonBackPic_Shellder[]; +extern const u8 gMonShinyPalette_Shellder[]; +extern const u8 gMonIcon_Shellder[]; +extern const u8 gMonFootprint_Shellder[]; +extern const u8 gMonFrontPic_Cloyster[]; +extern const u8 gMonPalette_Cloyster[]; +extern const u8 gMonBackPic_Cloyster[]; +extern const u8 gMonShinyPalette_Cloyster[]; +extern const u8 gMonIcon_Cloyster[]; +extern const u8 gMonFootprint_Cloyster[]; +extern const u8 gMonFrontPic_Gastly[]; +extern const u8 gMonPalette_Gastly[]; +extern const u8 gMonBackPic_Gastly[]; +extern const u8 gMonShinyPalette_Gastly[]; +extern const u8 gMonIcon_Gastly[]; +extern const u8 gMonFootprint_Gastly[]; +extern const u8 gMonFrontPic_Haunter[]; +extern const u8 gMonPalette_Haunter[]; +extern const u8 gMonBackPic_Haunter[]; +extern const u8 gMonShinyPalette_Haunter[]; +extern const u8 gMonIcon_Haunter[]; +extern const u8 gMonFootprint_Haunter[]; +extern const u8 gMonFrontPic_Gengar[]; +extern const u8 gMonPalette_Gengar[]; +extern const u8 gMonBackPic_Gengar[]; +extern const u8 gMonShinyPalette_Gengar[]; +extern const u8 gMonIcon_Gengar[]; +extern const u8 gMonFootprint_Gengar[]; +extern const u8 gMonFrontPic_Onix[]; +extern const u8 gMonPalette_Onix[]; +extern const u8 gMonBackPic_Onix[]; +extern const u8 gMonShinyPalette_Onix[]; +extern const u8 gMonIcon_Onix[]; +extern const u8 gMonFootprint_Onix[]; +extern const u8 gMonFrontPic_Drowzee[]; +extern const u8 gMonPalette_Drowzee[]; +extern const u8 gMonBackPic_Drowzee[]; +extern const u8 gMonShinyPalette_Drowzee[]; +extern const u8 gMonIcon_Drowzee[]; +extern const u8 gMonFootprint_Drowzee[]; +extern const u8 gMonFrontPic_Hypno[]; +extern const u8 gMonPalette_Hypno[]; +extern const u8 gMonBackPic_Hypno[]; +extern const u8 gMonShinyPalette_Hypno[]; +extern const u8 gMonIcon_Hypno[]; +extern const u8 gMonFootprint_Hypno[]; +extern const u8 gMonFrontPic_Krabby[]; +extern const u8 gMonPalette_Krabby[]; +extern const u8 gMonBackPic_Krabby[]; +extern const u8 gMonShinyPalette_Krabby[]; +extern const u8 gMonIcon_Krabby[]; +extern const u8 gMonFootprint_Krabby[]; +extern const u8 gMonFrontPic_Kingler[]; +extern const u8 gMonPalette_Kingler[]; +extern const u8 gMonBackPic_Kingler[]; +extern const u8 gMonShinyPalette_Kingler[]; +extern const u8 gMonIcon_Kingler[]; +extern const u8 gMonFootprint_Kingler[]; +extern const u8 gMonFrontPic_Voltorb[]; +extern const u8 gMonPalette_Voltorb[]; +extern const u8 gMonBackPic_Voltorb[]; +extern const u8 gMonShinyPalette_Voltorb[]; +extern const u8 gMonIcon_Voltorb[]; +extern const u8 gMonFootprint_Voltorb[]; +extern const u8 gMonFrontPic_Electrode[]; +extern const u8 gMonPalette_Electrode[]; +extern const u8 gMonBackPic_Electrode[]; +extern const u8 gMonShinyPalette_Electrode[]; +extern const u8 gMonIcon_Electrode[]; +extern const u8 gMonFootprint_Electrode[]; +extern const u8 gMonFrontPic_Exeggcute[]; +extern const u8 gMonPalette_Exeggcute[]; +extern const u8 gMonBackPic_Exeggcute[]; +extern const u8 gMonShinyPalette_Exeggcute[]; +extern const u8 gMonIcon_Exeggcute[]; +extern const u8 gMonFootprint_Exeggcute[]; +extern const u8 gMonFrontPic_Exeggutor[]; +extern const u8 gMonPalette_Exeggutor[]; +extern const u8 gMonBackPic_Exeggutor[]; +extern const u8 gMonShinyPalette_Exeggutor[]; +extern const u8 gMonIcon_Exeggutor[]; +extern const u8 gMonFootprint_Exeggutor[]; +extern const u8 gMonFrontPic_Cubone[]; +extern const u8 gMonPalette_Cubone[]; +extern const u8 gMonBackPic_Cubone[]; +extern const u8 gMonShinyPalette_Cubone[]; +extern const u8 gMonIcon_Cubone[]; +extern const u8 gMonFootprint_Cubone[]; +extern const u8 gMonFrontPic_Marowak[]; +extern const u8 gMonPalette_Marowak[]; +extern const u8 gMonBackPic_Marowak[]; +extern const u8 gMonShinyPalette_Marowak[]; +extern const u8 gMonIcon_Marowak[]; +extern const u8 gMonFootprint_Marowak[]; +extern const u8 gMonFrontPic_Hitmonlee[]; +extern const u8 gMonPalette_Hitmonlee[]; +extern const u8 gMonBackPic_Hitmonlee[]; +extern const u8 gMonShinyPalette_Hitmonlee[]; +extern const u8 gMonIcon_Hitmonlee[]; +extern const u8 gMonFootprint_Hitmonlee[]; +extern const u8 gMonFrontPic_Hitmonchan[]; +extern const u8 gMonPalette_Hitmonchan[]; +extern const u8 gMonBackPic_Hitmonchan[]; +extern const u8 gMonShinyPalette_Hitmonchan[]; +extern const u8 gMonIcon_Hitmonchan[]; +extern const u8 gMonFootprint_Hitmonchan[]; +extern const u8 gMonFrontPic_Lickitung[]; +extern const u8 gMonPalette_Lickitung[]; +extern const u8 gMonBackPic_Lickitung[]; +extern const u8 gMonShinyPalette_Lickitung[]; +extern const u8 gMonIcon_Lickitung[]; +extern const u8 gMonFootprint_Lickitung[]; +extern const u8 gMonFrontPic_Koffing[]; +extern const u8 gMonPalette_Koffing[]; +extern const u8 gMonBackPic_Koffing[]; +extern const u8 gMonShinyPalette_Koffing[]; +extern const u8 gMonIcon_Koffing[]; +extern const u8 gMonFootprint_Koffing[]; +extern const u8 gMonFrontPic_Weezing[]; +extern const u8 gMonPalette_Weezing[]; +extern const u8 gMonBackPic_Weezing[]; +extern const u8 gMonShinyPalette_Weezing[]; +extern const u8 gMonIcon_Weezing[]; +extern const u8 gMonFootprint_Weezing[]; +extern const u8 gMonFrontPic_Rhyhorn[]; +extern const u8 gMonPalette_Rhyhorn[]; +extern const u8 gMonBackPic_Rhyhorn[]; +extern const u8 gMonShinyPalette_Rhyhorn[]; +extern const u8 gMonIcon_Rhyhorn[]; +extern const u8 gMonFootprint_Rhyhorn[]; +extern const u8 gMonFrontPic_Rhydon[]; +extern const u8 gMonPalette_Rhydon[]; +extern const u8 gMonBackPic_Rhydon[]; +extern const u8 gMonShinyPalette_Rhydon[]; +extern const u8 gMonIcon_Rhydon[]; +extern const u8 gMonFootprint_Rhydon[]; +extern const u8 gMonFrontPic_Chansey[]; +extern const u8 gMonPalette_Chansey[]; +extern const u8 gMonBackPic_Chansey[]; +extern const u8 gMonShinyPalette_Chansey[]; +extern const u8 gMonIcon_Chansey[]; +extern const u8 gMonFootprint_Chansey[]; +extern const u8 gMonFrontPic_Tangela[]; +extern const u8 gMonPalette_Tangela[]; +extern const u8 gMonBackPic_Tangela[]; +extern const u8 gMonShinyPalette_Tangela[]; +extern const u8 gMonIcon_Tangela[]; +extern const u8 gMonFootprint_Tangela[]; +extern const u8 gMonFrontPic_Kangaskhan[]; +extern const u8 gMonPalette_Kangaskhan[]; +extern const u8 gMonBackPic_Kangaskhan[]; +extern const u8 gMonShinyPalette_Kangaskhan[]; +extern const u8 gMonIcon_Kangaskhan[]; +extern const u8 gMonFootprint_Kangaskhan[]; +extern const u8 gMonFrontPic_Horsea[]; +extern const u8 gMonPalette_Horsea[]; +extern const u8 gMonBackPic_Horsea[]; +extern const u8 gMonShinyPalette_Horsea[]; +extern const u8 gMonIcon_Horsea[]; +extern const u8 gMonFootprint_Horsea[]; +extern const u8 gMonFrontPic_Seadra[]; +extern const u8 gMonPalette_Seadra[]; +extern const u8 gMonBackPic_Seadra[]; +extern const u8 gMonShinyPalette_Seadra[]; +extern const u8 gMonIcon_Seadra[]; +extern const u8 gMonFootprint_Seadra[]; +extern const u8 gMonFrontPic_Goldeen[]; +extern const u8 gMonPalette_Goldeen[]; +extern const u8 gMonBackPic_Goldeen[]; +extern const u8 gMonShinyPalette_Goldeen[]; +extern const u8 gMonIcon_Goldeen[]; +extern const u8 gMonFootprint_Goldeen[]; +extern const u8 gMonFrontPic_Seaking[]; +extern const u8 gMonPalette_Seaking[]; +extern const u8 gMonBackPic_Seaking[]; +extern const u8 gMonShinyPalette_Seaking[]; +extern const u8 gMonIcon_Seaking[]; +extern const u8 gMonFootprint_Seaking[]; +extern const u8 gMonFrontPic_Staryu[]; +extern const u8 gMonPalette_Staryu[]; +extern const u8 gMonBackPic_Staryu[]; +extern const u8 gMonShinyPalette_Staryu[]; +extern const u8 gMonIcon_Staryu[]; +extern const u8 gMonFootprint_Staryu[]; +extern const u8 gMonFrontPic_Starmie[]; +extern const u8 gMonPalette_Starmie[]; +extern const u8 gMonBackPic_Starmie[]; +extern const u8 gMonShinyPalette_Starmie[]; +extern const u8 gMonIcon_Starmie[]; +extern const u8 gMonFootprint_Starmie[]; +extern const u8 gMonFrontPic_Mrmime[]; +extern const u8 gMonPalette_Mrmime[]; +extern const u8 gMonBackPic_Mrmime[]; +extern const u8 gMonShinyPalette_Mrmime[]; +extern const u8 gMonIcon_Mrmime[]; +extern const u8 gMonFootprint_Mrmime[]; +extern const u8 gMonFrontPic_Scyther[]; +extern const u8 gMonPalette_Scyther[]; +extern const u8 gMonBackPic_Scyther[]; +extern const u8 gMonShinyPalette_Scyther[]; +extern const u8 gMonIcon_Scyther[]; +extern const u8 gMonFootprint_Scyther[]; +extern const u8 gMonFrontPic_Jynx[]; +extern const u8 gMonPalette_Jynx[]; +extern const u8 gMonBackPic_Jynx[]; +extern const u8 gMonShinyPalette_Jynx[]; +extern const u8 gMonIcon_Jynx[]; +extern const u8 gMonFootprint_Jynx[]; +extern const u8 gMonFrontPic_Electabuzz[]; +extern const u8 gMonPalette_Electabuzz[]; +extern const u8 gMonBackPic_Electabuzz[]; +extern const u8 gMonShinyPalette_Electabuzz[]; +extern const u8 gMonIcon_Electabuzz[]; +extern const u8 gMonFootprint_Electabuzz[]; +extern const u8 gMonFrontPic_Magmar[]; +extern const u8 gMonPalette_Magmar[]; +extern const u8 gMonBackPic_Magmar[]; +extern const u8 gMonShinyPalette_Magmar[]; +extern const u8 gMonIcon_Magmar[]; +extern const u8 gMonFootprint_Magmar[]; +extern const u8 gMonFrontPic_Pinsir[]; +extern const u8 gMonPalette_Pinsir[]; +extern const u8 gMonBackPic_Pinsir[]; +extern const u8 gMonShinyPalette_Pinsir[]; +extern const u8 gMonIcon_Pinsir[]; +extern const u8 gMonFootprint_Pinsir[]; +extern const u8 gMonFrontPic_Tauros[]; +extern const u8 gMonPalette_Tauros[]; +extern const u8 gMonBackPic_Tauros[]; +extern const u8 gMonShinyPalette_Tauros[]; +extern const u8 gMonIcon_Tauros[]; +extern const u8 gMonFootprint_Tauros[]; +extern const u8 gMonFrontPic_Magikarp[]; +extern const u8 gMonPalette_Magikarp[]; +extern const u8 gMonBackPic_Magikarp[]; +extern const u8 gMonShinyPalette_Magikarp[]; +extern const u8 gMonIcon_Magikarp[]; +extern const u8 gMonFootprint_Magikarp[]; +extern const u8 gMonFrontPic_Gyarados[]; +extern const u8 gMonPalette_Gyarados[]; +extern const u8 gMonBackPic_Gyarados[]; +extern const u8 gMonShinyPalette_Gyarados[]; +extern const u8 gMonIcon_Gyarados[]; +extern const u8 gMonFootprint_Gyarados[]; +extern const u8 gMonFrontPic_Lapras[]; +extern const u8 gMonPalette_Lapras[]; +extern const u8 gMonBackPic_Lapras[]; +extern const u8 gMonShinyPalette_Lapras[]; +extern const u8 gMonIcon_Lapras[]; +extern const u8 gMonFootprint_Lapras[]; +extern const u8 gMonFrontPic_Ditto[]; +extern const u8 gMonPalette_Ditto[]; +extern const u8 gMonBackPic_Ditto[]; +extern const u8 gMonShinyPalette_Ditto[]; +extern const u8 gMonIcon_Ditto[]; +extern const u8 gMonFootprint_Ditto[]; +extern const u8 gMonFrontPic_Eevee[]; +extern const u8 gMonPalette_Eevee[]; +extern const u8 gMonBackPic_Eevee[]; +extern const u8 gMonShinyPalette_Eevee[]; +extern const u8 gMonIcon_Eevee[]; +extern const u8 gMonFootprint_Eevee[]; +extern const u8 gMonFrontPic_Vaporeon[]; +extern const u8 gMonPalette_Vaporeon[]; +extern const u8 gMonBackPic_Vaporeon[]; +extern const u8 gMonShinyPalette_Vaporeon[]; +extern const u8 gMonIcon_Vaporeon[]; +extern const u8 gMonFootprint_Vaporeon[]; +extern const u8 gMonFrontPic_Jolteon[]; +extern const u8 gMonPalette_Jolteon[]; +extern const u8 gMonBackPic_Jolteon[]; +extern const u8 gMonShinyPalette_Jolteon[]; +extern const u8 gMonIcon_Jolteon[]; +extern const u8 gMonFootprint_Jolteon[]; +extern const u8 gMonFrontPic_Flareon[]; +extern const u8 gMonPalette_Flareon[]; +extern const u8 gMonBackPic_Flareon[]; +extern const u8 gMonShinyPalette_Flareon[]; +extern const u8 gMonIcon_Flareon[]; +extern const u8 gMonFootprint_Flareon[]; +extern const u8 gMonFrontPic_Porygon[]; +extern const u8 gMonPalette_Porygon[]; +extern const u8 gMonBackPic_Porygon[]; +extern const u8 gMonShinyPalette_Porygon[]; +extern const u8 gMonIcon_Porygon[]; +extern const u8 gMonFootprint_Porygon[]; +extern const u8 gMonFrontPic_Omanyte[]; +extern const u8 gMonPalette_Omanyte[]; +extern const u8 gMonBackPic_Omanyte[]; +extern const u8 gMonShinyPalette_Omanyte[]; +extern const u8 gMonIcon_Omanyte[]; +extern const u8 gMonFootprint_Omanyte[]; +extern const u8 gMonFrontPic_Omastar[]; +extern const u8 gMonPalette_Omastar[]; +extern const u8 gMonBackPic_Omastar[]; +extern const u8 gMonShinyPalette_Omastar[]; +extern const u8 gMonIcon_Omastar[]; +extern const u8 gMonFootprint_Omastar[]; +extern const u8 gMonFrontPic_Kabuto[]; +extern const u8 gMonPalette_Kabuto[]; +extern const u8 gMonBackPic_Kabuto[]; +extern const u8 gMonShinyPalette_Kabuto[]; +extern const u8 gMonIcon_Kabuto[]; +extern const u8 gMonFootprint_Kabuto[]; +extern const u8 gMonFrontPic_Kabutops[]; +extern const u8 gMonPalette_Kabutops[]; +extern const u8 gMonBackPic_Kabutops[]; +extern const u8 gMonShinyPalette_Kabutops[]; +extern const u8 gMonIcon_Kabutops[]; +extern const u8 gMonFootprint_Kabutops[]; +extern const u8 gMonFrontPic_Aerodactyl[]; +extern const u8 gMonPalette_Aerodactyl[]; +extern const u8 gMonBackPic_Aerodactyl[]; +extern const u8 gMonShinyPalette_Aerodactyl[]; +extern const u8 gMonIcon_Aerodactyl[]; +extern const u8 gMonFootprint_Aerodactyl[]; +extern const u8 gMonFrontPic_Snorlax[]; +extern const u8 gMonPalette_Snorlax[]; +extern const u8 gMonBackPic_Snorlax[]; +extern const u8 gMonShinyPalette_Snorlax[]; +extern const u8 gMonIcon_Snorlax[]; +extern const u8 gMonFootprint_Snorlax[]; +extern const u8 gMonFrontPic_Articuno[]; +extern const u8 gMonPalette_Articuno[]; +extern const u8 gMonBackPic_Articuno[]; +extern const u8 gMonShinyPalette_Articuno[]; +extern const u8 gMonIcon_Articuno[]; +extern const u8 gMonFootprint_Articuno[]; +extern const u8 gMonFrontPic_Zapdos[]; +extern const u8 gMonPalette_Zapdos[]; +extern const u8 gMonBackPic_Zapdos[]; +extern const u8 gMonShinyPalette_Zapdos[]; +extern const u8 gMonIcon_Zapdos[]; +extern const u8 gMonFootprint_Zapdos[]; +extern const u8 gMonFrontPic_Moltres[]; +extern const u8 gMonPalette_Moltres[]; +extern const u8 gMonBackPic_Moltres[]; +extern const u8 gMonShinyPalette_Moltres[]; +extern const u8 gMonIcon_Moltres[]; +extern const u8 gMonFootprint_Moltres[]; +extern const u8 gMonFrontPic_Dratini[]; +extern const u8 gMonPalette_Dratini[]; +extern const u8 gMonBackPic_Dratini[]; +extern const u8 gMonShinyPalette_Dratini[]; +extern const u8 gMonIcon_Dratini[]; +extern const u8 gMonFootprint_Dratini[]; +extern const u8 gMonFrontPic_Dragonair[]; +extern const u8 gMonPalette_Dragonair[]; +extern const u8 gMonBackPic_Dragonair[]; +extern const u8 gMonShinyPalette_Dragonair[]; +extern const u8 gMonIcon_Dragonair[]; +extern const u8 gMonFootprint_Dragonair[]; +extern const u8 gMonFrontPic_Dragonite[]; +extern const u8 gMonPalette_Dragonite[]; +extern const u8 gMonBackPic_Dragonite[]; +extern const u8 gMonShinyPalette_Dragonite[]; +extern const u8 gMonIcon_Dragonite[]; +extern const u8 gMonFootprint_Dragonite[]; +extern const u8 gMonFrontPic_Mewtwo[]; +extern const u8 gMonPalette_Mewtwo[]; +extern const u8 gMonBackPic_Mewtwo[]; +extern const u8 gMonShinyPalette_Mewtwo[]; +extern const u8 gMonIcon_Mewtwo[]; +extern const u8 gMonFootprint_Mewtwo[]; +extern const u8 gMonFrontPic_Mew[]; +extern const u8 gMonPalette_Mew[]; +extern const u8 gMonBackPic_Mew[]; +extern const u8 gMonShinyPalette_Mew[]; +extern const u8 gMonIcon_Mew[]; +extern const u8 gMonFootprint_Mew[]; +extern const u8 gMonFrontPic_Chikorita[]; +extern const u8 gMonPalette_Chikorita[]; +extern const u8 gMonBackPic_Chikorita[]; +extern const u8 gMonShinyPalette_Chikorita[]; +extern const u8 gMonIcon_Chikorita[]; +extern const u8 gMonFootprint_Chikorita[]; +extern const u8 gMonFrontPic_Bayleef[]; +extern const u8 gMonPalette_Bayleef[]; +extern const u8 gMonBackPic_Bayleef[]; +extern const u8 gMonShinyPalette_Bayleef[]; +extern const u8 gMonIcon_Bayleef[]; +extern const u8 gMonFootprint_Bayleef[]; +extern const u8 gMonFrontPic_Meganium[]; +extern const u8 gMonPalette_Meganium[]; +extern const u8 gMonBackPic_Meganium[]; +extern const u8 gMonShinyPalette_Meganium[]; +extern const u8 gMonIcon_Meganium[]; +extern const u8 gMonFootprint_Meganium[]; +extern const u8 gMonFrontPic_Cyndaquil[]; +extern const u8 gMonPalette_Cyndaquil[]; +extern const u8 gMonBackPic_Cyndaquil[]; +extern const u8 gMonShinyPalette_Cyndaquil[]; +extern const u8 gMonIcon_Cyndaquil[]; +extern const u8 gMonFootprint_Cyndaquil[]; +extern const u8 gMonFrontPic_Quilava[]; +extern const u8 gMonPalette_Quilava[]; +extern const u8 gMonBackPic_Quilava[]; +extern const u8 gMonShinyPalette_Quilava[]; +extern const u8 gMonIcon_Quilava[]; +extern const u8 gMonFootprint_Quilava[]; +extern const u8 gMonFrontPic_Typhlosion[]; +extern const u8 gMonPalette_Typhlosion[]; +extern const u8 gMonBackPic_Typhlosion[]; +extern const u8 gMonShinyPalette_Typhlosion[]; +extern const u8 gMonIcon_Typhlosion[]; +extern const u8 gMonFootprint_Typhlosion[]; +extern const u8 gMonFrontPic_Totodile[]; +extern const u8 gMonPalette_Totodile[]; +extern const u8 gMonBackPic_Totodile[]; +extern const u8 gMonShinyPalette_Totodile[]; +extern const u8 gMonIcon_Totodile[]; +extern const u8 gMonFootprint_Totodile[]; +extern const u8 gMonFrontPic_Croconaw[]; +extern const u8 gMonPalette_Croconaw[]; +extern const u8 gMonBackPic_Croconaw[]; +extern const u8 gMonShinyPalette_Croconaw[]; +extern const u8 gMonIcon_Croconaw[]; +extern const u8 gMonFootprint_Croconaw[]; +extern const u8 gMonFrontPic_Feraligatr[]; +extern const u8 gMonPalette_Feraligatr[]; +extern const u8 gMonBackPic_Feraligatr[]; +extern const u8 gMonShinyPalette_Feraligatr[]; +extern const u8 gMonIcon_Feraligatr[]; +extern const u8 gMonFootprint_Feraligatr[]; +extern const u8 gMonFrontPic_Sentret[]; +extern const u8 gMonPalette_Sentret[]; +extern const u8 gMonBackPic_Sentret[]; +extern const u8 gMonShinyPalette_Sentret[]; +extern const u8 gMonIcon_Sentret[]; +extern const u8 gMonFootprint_Sentret[]; +extern const u8 gMonFrontPic_Furret[]; +extern const u8 gMonPalette_Furret[]; +extern const u8 gMonBackPic_Furret[]; +extern const u8 gMonShinyPalette_Furret[]; +extern const u8 gMonIcon_Furret[]; +extern const u8 gMonFootprint_Furret[]; +extern const u8 gMonFrontPic_Hoothoot[]; +extern const u8 gMonPalette_Hoothoot[]; +extern const u8 gMonBackPic_Hoothoot[]; +extern const u8 gMonShinyPalette_Hoothoot[]; +extern const u8 gMonIcon_Hoothoot[]; +extern const u8 gMonFootprint_Hoothoot[]; +extern const u8 gMonFrontPic_Noctowl[]; +extern const u8 gMonPalette_Noctowl[]; +extern const u8 gMonBackPic_Noctowl[]; +extern const u8 gMonShinyPalette_Noctowl[]; +extern const u8 gMonIcon_Noctowl[]; +extern const u8 gMonFootprint_Noctowl[]; +extern const u8 gMonFrontPic_Ledyba[]; +extern const u8 gMonPalette_Ledyba[]; +extern const u8 gMonBackPic_Ledyba[]; +extern const u8 gMonShinyPalette_Ledyba[]; +extern const u8 gMonIcon_Ledyba[]; +extern const u8 gMonFootprint_Ledyba[]; +extern const u8 gMonFrontPic_Ledian[]; +extern const u8 gMonPalette_Ledian[]; +extern const u8 gMonBackPic_Ledian[]; +extern const u8 gMonShinyPalette_Ledian[]; +extern const u8 gMonIcon_Ledian[]; +extern const u8 gMonFootprint_Ledian[]; +extern const u8 gMonFrontPic_Spinarak[]; +extern const u8 gMonPalette_Spinarak[]; +extern const u8 gMonBackPic_Spinarak[]; +extern const u8 gMonShinyPalette_Spinarak[]; +extern const u8 gMonIcon_Spinarak[]; +extern const u8 gMonFootprint_Spinarak[]; +extern const u8 gMonFrontPic_Ariados[]; +extern const u8 gMonPalette_Ariados[]; +extern const u8 gMonBackPic_Ariados[]; +extern const u8 gMonShinyPalette_Ariados[]; +extern const u8 gMonIcon_Ariados[]; +extern const u8 gMonFootprint_Ariados[]; +extern const u8 gMonFrontPic_Crobat[]; +extern const u8 gMonPalette_Crobat[]; +extern const u8 gMonBackPic_Crobat[]; +extern const u8 gMonShinyPalette_Crobat[]; +extern const u8 gMonIcon_Crobat[]; +extern const u8 gMonFootprint_Crobat[]; +extern const u8 gMonFrontPic_Chinchou[]; +extern const u8 gMonPalette_Chinchou[]; +extern const u8 gMonBackPic_Chinchou[]; +extern const u8 gMonShinyPalette_Chinchou[]; +extern const u8 gMonIcon_Chinchou[]; +extern const u8 gMonFootprint_Chinchou[]; +extern const u8 gMonFrontPic_Lanturn[]; +extern const u8 gMonPalette_Lanturn[]; +extern const u8 gMonBackPic_Lanturn[]; +extern const u8 gMonShinyPalette_Lanturn[]; +extern const u8 gMonIcon_Lanturn[]; +extern const u8 gMonFootprint_Lanturn[]; +extern const u8 gMonFrontPic_Pichu[]; +extern const u8 gMonPalette_Pichu[]; +extern const u8 gMonBackPic_Pichu[]; +extern const u8 gMonShinyPalette_Pichu[]; +extern const u8 gMonIcon_Pichu[]; +extern const u8 gMonFootprint_Pichu[]; +extern const u8 gMonFrontPic_Cleffa[]; +extern const u8 gMonPalette_Cleffa[]; +extern const u8 gMonBackPic_Cleffa[]; +extern const u8 gMonShinyPalette_Cleffa[]; +extern const u8 gMonIcon_Cleffa[]; +extern const u8 gMonFootprint_Cleffa[]; +extern const u8 gMonFrontPic_Igglybuff[]; +extern const u8 gMonPalette_Igglybuff[]; +extern const u8 gMonBackPic_Igglybuff[]; +extern const u8 gMonShinyPalette_Igglybuff[]; +extern const u8 gMonIcon_Igglybuff[]; +extern const u8 gMonFootprint_Igglybuff[]; +extern const u8 gMonFrontPic_Togepi[]; +extern const u8 gMonPalette_Togepi[]; +extern const u8 gMonBackPic_Togepi[]; +extern const u8 gMonShinyPalette_Togepi[]; +extern const u8 gMonIcon_Togepi[]; +extern const u8 gMonFootprint_Togepi[]; +extern const u8 gMonFrontPic_Togetic[]; +extern const u8 gMonPalette_Togetic[]; +extern const u8 gMonBackPic_Togetic[]; +extern const u8 gMonShinyPalette_Togetic[]; +extern const u8 gMonIcon_Togetic[]; +extern const u8 gMonFootprint_Togetic[]; +extern const u8 gMonFrontPic_Natu[]; +extern const u8 gMonPalette_Natu[]; +extern const u8 gMonBackPic_Natu[]; +extern const u8 gMonShinyPalette_Natu[]; +extern const u8 gMonIcon_Natu[]; +extern const u8 gMonFootprint_Natu[]; +extern const u8 gMonFrontPic_Xatu[]; +extern const u8 gMonPalette_Xatu[]; +extern const u8 gMonBackPic_Xatu[]; +extern const u8 gMonShinyPalette_Xatu[]; +extern const u8 gMonIcon_Xatu[]; +extern const u8 gMonFootprint_Xatu[]; +extern const u8 gMonFrontPic_Mareep[]; +extern const u8 gMonPalette_Mareep[]; +extern const u8 gMonBackPic_Mareep[]; +extern const u8 gMonShinyPalette_Mareep[]; +extern const u8 gMonIcon_Mareep[]; +extern const u8 gMonFootprint_Mareep[]; +extern const u8 gMonFrontPic_Flaaffy[]; +extern const u8 gMonPalette_Flaaffy[]; +extern const u8 gMonBackPic_Flaaffy[]; +extern const u8 gMonShinyPalette_Flaaffy[]; +extern const u8 gMonIcon_Flaaffy[]; +extern const u8 gMonFootprint_Flaaffy[]; +extern const u8 gMonFrontPic_Ampharos[]; +extern const u8 gMonPalette_Ampharos[]; +extern const u8 gMonBackPic_Ampharos[]; +extern const u8 gMonShinyPalette_Ampharos[]; +extern const u8 gMonIcon_Ampharos[]; +extern const u8 gMonFootprint_Ampharos[]; +extern const u8 gMonFrontPic_Bellossom[]; +extern const u8 gMonPalette_Bellossom[]; +extern const u8 gMonBackPic_Bellossom[]; +extern const u8 gMonShinyPalette_Bellossom[]; +extern const u8 gMonIcon_Bellossom[]; +extern const u8 gMonFootprint_Bellossom[]; +extern const u8 gMonFrontPic_Marill[]; +extern const u8 gMonPalette_Marill[]; +extern const u8 gMonBackPic_Marill[]; +extern const u8 gMonShinyPalette_Marill[]; +extern const u8 gMonIcon_Marill[]; +extern const u8 gMonFootprint_Marill[]; +extern const u8 gMonFrontPic_Azumarill[]; +extern const u8 gMonPalette_Azumarill[]; +extern const u8 gMonBackPic_Azumarill[]; +extern const u8 gMonShinyPalette_Azumarill[]; +extern const u8 gMonIcon_Azumarill[]; +extern const u8 gMonFootprint_Azumarill[]; +extern const u8 gMonFrontPic_Sudowoodo[]; +extern const u8 gMonPalette_Sudowoodo[]; +extern const u8 gMonBackPic_Sudowoodo[]; +extern const u8 gMonShinyPalette_Sudowoodo[]; +extern const u8 gMonIcon_Sudowoodo[]; +extern const u8 gMonFootprint_Sudowoodo[]; +extern const u8 gMonFrontPic_Politoed[]; +extern const u8 gMonPalette_Politoed[]; +extern const u8 gMonBackPic_Politoed[]; +extern const u8 gMonShinyPalette_Politoed[]; +extern const u8 gMonIcon_Politoed[]; +extern const u8 gMonFootprint_Politoed[]; +extern const u8 gMonFrontPic_Hoppip[]; +extern const u8 gMonPalette_Hoppip[]; +extern const u8 gMonBackPic_Hoppip[]; +extern const u8 gMonShinyPalette_Hoppip[]; +extern const u8 gMonIcon_Hoppip[]; +extern const u8 gMonFootprint_Hoppip[]; +extern const u8 gMonFrontPic_Skiploom[]; +extern const u8 gMonPalette_Skiploom[]; +extern const u8 gMonBackPic_Skiploom[]; +extern const u8 gMonShinyPalette_Skiploom[]; +extern const u8 gMonIcon_Skiploom[]; +extern const u8 gMonFootprint_Skiploom[]; +extern const u8 gMonFrontPic_Jumpluff[]; +extern const u8 gMonPalette_Jumpluff[]; +extern const u8 gMonBackPic_Jumpluff[]; +extern const u8 gMonShinyPalette_Jumpluff[]; +extern const u8 gMonIcon_Jumpluff[]; +extern const u8 gMonFootprint_Jumpluff[]; +extern const u8 gMonFrontPic_Aipom[]; +extern const u8 gMonPalette_Aipom[]; +extern const u8 gMonBackPic_Aipom[]; +extern const u8 gMonShinyPalette_Aipom[]; +extern const u8 gMonIcon_Aipom[]; +extern const u8 gMonFootprint_Aipom[]; +extern const u8 gMonFrontPic_Sunkern[]; +extern const u8 gMonPalette_Sunkern[]; +extern const u8 gMonBackPic_Sunkern[]; +extern const u8 gMonShinyPalette_Sunkern[]; +extern const u8 gMonIcon_Sunkern[]; +extern const u8 gMonFootprint_Sunkern[]; +extern const u8 gMonFrontPic_Sunflora[]; +extern const u8 gMonPalette_Sunflora[]; +extern const u8 gMonBackPic_Sunflora[]; +extern const u8 gMonShinyPalette_Sunflora[]; +extern const u8 gMonIcon_Sunflora[]; +extern const u8 gMonFootprint_Sunflora[]; +extern const u8 gMonFrontPic_Yanma[]; +extern const u8 gMonPalette_Yanma[]; +extern const u8 gMonBackPic_Yanma[]; +extern const u8 gMonShinyPalette_Yanma[]; +extern const u8 gMonIcon_Yanma[]; +extern const u8 gMonFootprint_Yanma[]; +extern const u8 gMonFrontPic_Wooper[]; +extern const u8 gMonPalette_Wooper[]; +extern const u8 gMonBackPic_Wooper[]; +extern const u8 gMonShinyPalette_Wooper[]; +extern const u8 gMonIcon_Wooper[]; +extern const u8 gMonFootprint_Wooper[]; +extern const u8 gMonFrontPic_Quagsire[]; +extern const u8 gMonPalette_Quagsire[]; +extern const u8 gMonBackPic_Quagsire[]; +extern const u8 gMonShinyPalette_Quagsire[]; +extern const u8 gMonIcon_Quagsire[]; +extern const u8 gMonFootprint_Quagsire[]; +extern const u8 gMonFrontPic_Espeon[]; +extern const u8 gMonPalette_Espeon[]; +extern const u8 gMonBackPic_Espeon[]; +extern const u8 gMonShinyPalette_Espeon[]; +extern const u8 gMonIcon_Espeon[]; +extern const u8 gMonFootprint_Espeon[]; +extern const u8 gMonFrontPic_Umbreon[]; +extern const u8 gMonPalette_Umbreon[]; +extern const u8 gMonBackPic_Umbreon[]; +extern const u8 gMonShinyPalette_Umbreon[]; +extern const u8 gMonIcon_Umbreon[]; +extern const u8 gMonFootprint_Umbreon[]; +extern const u8 gMonFrontPic_Murkrow[]; +extern const u8 gMonPalette_Murkrow[]; +extern const u8 gMonBackPic_Murkrow[]; +extern const u8 gMonShinyPalette_Murkrow[]; +extern const u8 gMonIcon_Murkrow[]; +extern const u8 gMonFootprint_Murkrow[]; +extern const u8 gMonFrontPic_Slowking[]; +extern const u8 gMonPalette_Slowking[]; +extern const u8 gMonBackPic_Slowking[]; +extern const u8 gMonShinyPalette_Slowking[]; +extern const u8 gMonIcon_Slowking[]; +extern const u8 gMonFootprint_Slowking[]; +extern const u8 gMonFrontPic_Misdreavus[]; +extern const u8 gMonPalette_Misdreavus[]; +extern const u8 gMonBackPic_Misdreavus[]; +extern const u8 gMonShinyPalette_Misdreavus[]; +extern const u8 gMonIcon_Misdreavus[]; +extern const u8 gMonFootprint_Misdreavus[]; +extern const u8 gMonFrontPic_UnownA[]; +extern const u8 gMonPalette_Unown[]; +extern const u8 gMonBackPic_UnownA[]; +extern const u8 gMonShinyPalette_Unown[]; +extern const u8 gMonIcon_UnownA[]; +extern const u8 gMonFootprint_Unown[]; +extern const u8 gMonFrontPic_Wobbuffet[]; +extern const u8 gMonPalette_Wobbuffet[]; +extern const u8 gMonBackPic_Wobbuffet[]; +extern const u8 gMonShinyPalette_Wobbuffet[]; +extern const u8 gMonIcon_Wobbuffet[]; +extern const u8 gMonFootprint_Wobbuffet[]; +extern const u8 gMonFrontPic_Girafarig[]; +extern const u8 gMonPalette_Girafarig[]; +extern const u8 gMonBackPic_Girafarig[]; +extern const u8 gMonShinyPalette_Girafarig[]; +extern const u8 gMonIcon_Girafarig[]; +extern const u8 gMonFootprint_Girafarig[]; +extern const u8 gMonFrontPic_Pineco[]; +extern const u8 gMonPalette_Pineco[]; +extern const u8 gMonBackPic_Pineco[]; +extern const u8 gMonShinyPalette_Pineco[]; +extern const u8 gMonIcon_Pineco[]; +extern const u8 gMonFootprint_Pineco[]; +extern const u8 gMonFrontPic_Forretress[]; +extern const u8 gMonPalette_Forretress[]; +extern const u8 gMonBackPic_Forretress[]; +extern const u8 gMonShinyPalette_Forretress[]; +extern const u8 gMonIcon_Forretress[]; +extern const u8 gMonFootprint_Forretress[]; +extern const u8 gMonFrontPic_Dunsparce[]; +extern const u8 gMonPalette_Dunsparce[]; +extern const u8 gMonBackPic_Dunsparce[]; +extern const u8 gMonShinyPalette_Dunsparce[]; +extern const u8 gMonIcon_Dunsparce[]; +extern const u8 gMonFootprint_Dunsparce[]; +extern const u8 gMonFrontPic_Gligar[]; +extern const u8 gMonPalette_Gligar[]; +extern const u8 gMonBackPic_Gligar[]; +extern const u8 gMonShinyPalette_Gligar[]; +extern const u8 gMonIcon_Gligar[]; +extern const u8 gMonFootprint_Gligar[]; +extern const u8 gMonFrontPic_Steelix[]; +extern const u8 gMonPalette_Steelix[]; +extern const u8 gMonBackPic_Steelix[]; +extern const u8 gMonShinyPalette_Steelix[]; +extern const u8 gMonIcon_Steelix[]; +extern const u8 gMonFootprint_Steelix[]; +extern const u8 gMonFrontPic_Snubbull[]; +extern const u8 gMonPalette_Snubbull[]; +extern const u8 gMonBackPic_Snubbull[]; +extern const u8 gMonShinyPalette_Snubbull[]; +extern const u8 gMonIcon_Snubbull[]; +extern const u8 gMonFootprint_Snubbull[]; +extern const u8 gMonFrontPic_Granbull[]; +extern const u8 gMonPalette_Granbull[]; +extern const u8 gMonBackPic_Granbull[]; +extern const u8 gMonShinyPalette_Granbull[]; +extern const u8 gMonIcon_Granbull[]; +extern const u8 gMonFootprint_Granbull[]; +extern const u8 gMonFrontPic_Qwilfish[]; +extern const u8 gMonPalette_Qwilfish[]; +extern const u8 gMonBackPic_Qwilfish[]; +extern const u8 gMonShinyPalette_Qwilfish[]; +extern const u8 gMonIcon_Qwilfish[]; +extern const u8 gMonFootprint_Qwilfish[]; +extern const u8 gMonFrontPic_Scizor[]; +extern const u8 gMonPalette_Scizor[]; +extern const u8 gMonBackPic_Scizor[]; +extern const u8 gMonShinyPalette_Scizor[]; +extern const u8 gMonIcon_Scizor[]; +extern const u8 gMonFootprint_Scizor[]; +extern const u8 gMonFrontPic_Shuckle[]; +extern const u8 gMonPalette_Shuckle[]; +extern const u8 gMonBackPic_Shuckle[]; +extern const u8 gMonShinyPalette_Shuckle[]; +extern const u8 gMonIcon_Shuckle[]; +extern const u8 gMonFootprint_Shuckle[]; +extern const u8 gMonFrontPic_Heracross[]; +extern const u8 gMonPalette_Heracross[]; +extern const u8 gMonBackPic_Heracross[]; +extern const u8 gMonShinyPalette_Heracross[]; +extern const u8 gMonIcon_Heracross[]; +extern const u8 gMonFootprint_Heracross[]; +extern const u8 gMonFrontPic_Sneasel[]; +extern const u8 gMonPalette_Sneasel[]; +extern const u8 gMonBackPic_Sneasel[]; +extern const u8 gMonShinyPalette_Sneasel[]; +extern const u8 gMonIcon_Sneasel[]; +extern const u8 gMonFootprint_Sneasel[]; +extern const u8 gMonFrontPic_Teddiursa[]; +extern const u8 gMonPalette_Teddiursa[]; +extern const u8 gMonBackPic_Teddiursa[]; +extern const u8 gMonShinyPalette_Teddiursa[]; +extern const u8 gMonIcon_Teddiursa[]; +extern const u8 gMonFootprint_Teddiursa[]; +extern const u8 gMonFrontPic_Ursaring[]; +extern const u8 gMonPalette_Ursaring[]; +extern const u8 gMonBackPic_Ursaring[]; +extern const u8 gMonShinyPalette_Ursaring[]; +extern const u8 gMonIcon_Ursaring[]; +extern const u8 gMonFootprint_Ursaring[]; +extern const u8 gMonFrontPic_Slugma[]; +extern const u8 gMonPalette_Slugma[]; +extern const u8 gMonBackPic_Slugma[]; +extern const u8 gMonShinyPalette_Slugma[]; +extern const u8 gMonIcon_Slugma[]; +extern const u8 gMonFootprint_Slugma[]; +extern const u8 gMonFrontPic_Magcargo[]; +extern const u8 gMonPalette_Magcargo[]; +extern const u8 gMonBackPic_Magcargo[]; +extern const u8 gMonShinyPalette_Magcargo[]; +extern const u8 gMonIcon_Magcargo[]; +extern const u8 gMonFootprint_Magcargo[]; +extern const u8 gMonFrontPic_Swinub[]; +extern const u8 gMonPalette_Swinub[]; +extern const u8 gMonBackPic_Swinub[]; +extern const u8 gMonShinyPalette_Swinub[]; +extern const u8 gMonIcon_Swinub[]; +extern const u8 gMonFootprint_Swinub[]; +extern const u8 gMonFrontPic_Piloswine[]; +extern const u8 gMonPalette_Piloswine[]; +extern const u8 gMonBackPic_Piloswine[]; +extern const u8 gMonShinyPalette_Piloswine[]; +extern const u8 gMonIcon_Piloswine[]; +extern const u8 gMonFootprint_Piloswine[]; +extern const u8 gMonFrontPic_Corsola[]; +extern const u8 gMonPalette_Corsola[]; +extern const u8 gMonBackPic_Corsola[]; +extern const u8 gMonShinyPalette_Corsola[]; +extern const u8 gMonIcon_Corsola[]; +extern const u8 gMonFootprint_Corsola[]; +extern const u8 gMonFrontPic_Remoraid[]; +extern const u8 gMonPalette_Remoraid[]; +extern const u8 gMonBackPic_Remoraid[]; +extern const u8 gMonShinyPalette_Remoraid[]; +extern const u8 gMonIcon_Remoraid[]; +extern const u8 gMonFootprint_Remoraid[]; +extern const u8 gMonFrontPic_Octillery[]; +extern const u8 gMonPalette_Octillery[]; +extern const u8 gMonBackPic_Octillery[]; +extern const u8 gMonShinyPalette_Octillery[]; +extern const u8 gMonIcon_Octillery[]; +extern const u8 gMonFootprint_Octillery[]; +extern const u8 gMonFrontPic_Delibird[]; +extern const u8 gMonPalette_Delibird[]; +extern const u8 gMonBackPic_Delibird[]; +extern const u8 gMonShinyPalette_Delibird[]; +extern const u8 gMonIcon_Delibird[]; +extern const u8 gMonFootprint_Delibird[]; +extern const u8 gMonFrontPic_Mantine[]; +extern const u8 gMonPalette_Mantine[]; +extern const u8 gMonBackPic_Mantine[]; +extern const u8 gMonShinyPalette_Mantine[]; +extern const u8 gMonIcon_Mantine[]; +extern const u8 gMonFootprint_Mantine[]; +extern const u8 gMonFrontPic_Skarmory[]; +extern const u8 gMonPalette_Skarmory[]; +extern const u8 gMonBackPic_Skarmory[]; +extern const u8 gMonShinyPalette_Skarmory[]; +extern const u8 gMonIcon_Skarmory[]; +extern const u8 gMonFootprint_Skarmory[]; +extern const u8 gMonFrontPic_Houndour[]; +extern const u8 gMonPalette_Houndour[]; +extern const u8 gMonBackPic_Houndour[]; +extern const u8 gMonShinyPalette_Houndour[]; +extern const u8 gMonIcon_Houndour[]; +extern const u8 gMonFootprint_Houndour[]; +extern const u8 gMonFrontPic_Houndoom[]; +extern const u8 gMonPalette_Houndoom[]; +extern const u8 gMonBackPic_Houndoom[]; +extern const u8 gMonShinyPalette_Houndoom[]; +extern const u8 gMonIcon_Houndoom[]; +extern const u8 gMonFootprint_Houndoom[]; +extern const u8 gMonFrontPic_Kingdra[]; +extern const u8 gMonPalette_Kingdra[]; +extern const u8 gMonBackPic_Kingdra[]; +extern const u8 gMonShinyPalette_Kingdra[]; +extern const u8 gMonIcon_Kingdra[]; +extern const u8 gMonFootprint_Kingdra[]; +extern const u8 gMonFrontPic_Phanpy[]; +extern const u8 gMonPalette_Phanpy[]; +extern const u8 gMonBackPic_Phanpy[]; +extern const u8 gMonShinyPalette_Phanpy[]; +extern const u8 gMonIcon_Phanpy[]; +extern const u8 gMonFootprint_Phanpy[]; +extern const u8 gMonFrontPic_Donphan[]; +extern const u8 gMonPalette_Donphan[]; +extern const u8 gMonBackPic_Donphan[]; +extern const u8 gMonShinyPalette_Donphan[]; +extern const u8 gMonIcon_Donphan[]; +extern const u8 gMonFootprint_Donphan[]; +extern const u8 gMonFrontPic_Porygon2[]; +extern const u8 gMonPalette_Porygon2[]; +extern const u8 gMonBackPic_Porygon2[]; +extern const u8 gMonShinyPalette_Porygon2[]; +extern const u8 gMonIcon_Porygon2[]; +extern const u8 gMonFootprint_Porygon2[]; +extern const u8 gMonFrontPic_Stantler[]; +extern const u8 gMonPalette_Stantler[]; +extern const u8 gMonBackPic_Stantler[]; +extern const u8 gMonShinyPalette_Stantler[]; +extern const u8 gMonIcon_Stantler[]; +extern const u8 gMonFootprint_Stantler[]; +extern const u8 gMonFrontPic_Smeargle[]; +extern const u8 gMonPalette_Smeargle[]; +extern const u8 gMonBackPic_Smeargle[]; +extern const u8 gMonShinyPalette_Smeargle[]; +extern const u8 gMonIcon_Smeargle[]; +extern const u8 gMonFootprint_Smeargle[]; +extern const u8 gMonFrontPic_Tyrogue[]; +extern const u8 gMonPalette_Tyrogue[]; +extern const u8 gMonBackPic_Tyrogue[]; +extern const u8 gMonShinyPalette_Tyrogue[]; +extern const u8 gMonIcon_Tyrogue[]; +extern const u8 gMonFootprint_Tyrogue[]; +extern const u8 gMonFrontPic_Hitmontop[]; +extern const u8 gMonPalette_Hitmontop[]; +extern const u8 gMonBackPic_Hitmontop[]; +extern const u8 gMonShinyPalette_Hitmontop[]; +extern const u8 gMonIcon_Hitmontop[]; +extern const u8 gMonFootprint_Hitmontop[]; +extern const u8 gMonFrontPic_Smoochum[]; +extern const u8 gMonPalette_Smoochum[]; +extern const u8 gMonBackPic_Smoochum[]; +extern const u8 gMonShinyPalette_Smoochum[]; +extern const u8 gMonIcon_Smoochum[]; +extern const u8 gMonFootprint_Smoochum[]; +extern const u8 gMonFrontPic_Elekid[]; +extern const u8 gMonPalette_Elekid[]; +extern const u8 gMonBackPic_Elekid[]; +extern const u8 gMonShinyPalette_Elekid[]; +extern const u8 gMonIcon_Elekid[]; +extern const u8 gMonFootprint_Elekid[]; +extern const u8 gMonFrontPic_Magby[]; +extern const u8 gMonPalette_Magby[]; +extern const u8 gMonBackPic_Magby[]; +extern const u8 gMonShinyPalette_Magby[]; +extern const u8 gMonIcon_Magby[]; +extern const u8 gMonFootprint_Magby[]; +extern const u8 gMonFrontPic_Miltank[]; +extern const u8 gMonPalette_Miltank[]; +extern const u8 gMonBackPic_Miltank[]; +extern const u8 gMonShinyPalette_Miltank[]; +extern const u8 gMonIcon_Miltank[]; +extern const u8 gMonFootprint_Miltank[]; +extern const u8 gMonFrontPic_Blissey[]; +extern const u8 gMonPalette_Blissey[]; +extern const u8 gMonBackPic_Blissey[]; +extern const u8 gMonShinyPalette_Blissey[]; +extern const u8 gMonIcon_Blissey[]; +extern const u8 gMonFootprint_Blissey[]; +extern const u8 gMonFrontPic_Raikou[]; +extern const u8 gMonPalette_Raikou[]; +extern const u8 gMonBackPic_Raikou[]; +extern const u8 gMonShinyPalette_Raikou[]; +extern const u8 gMonIcon_Raikou[]; +extern const u8 gMonFootprint_Raikou[]; +extern const u8 gMonFrontPic_Entei[]; +extern const u8 gMonPalette_Entei[]; +extern const u8 gMonBackPic_Entei[]; +extern const u8 gMonShinyPalette_Entei[]; +extern const u8 gMonIcon_Entei[]; +extern const u8 gMonFootprint_Entei[]; +extern const u8 gMonFrontPic_Suicune[]; +extern const u8 gMonPalette_Suicune[]; +extern const u8 gMonBackPic_Suicune[]; +extern const u8 gMonShinyPalette_Suicune[]; +extern const u8 gMonIcon_Suicune[]; +extern const u8 gMonFootprint_Suicune[]; +extern const u8 gMonFrontPic_Larvitar[]; +extern const u8 gMonPalette_Larvitar[]; +extern const u8 gMonBackPic_Larvitar[]; +extern const u8 gMonShinyPalette_Larvitar[]; +extern const u8 gMonIcon_Larvitar[]; +extern const u8 gMonFootprint_Larvitar[]; +extern const u8 gMonFrontPic_Pupitar[]; +extern const u8 gMonPalette_Pupitar[]; +extern const u8 gMonBackPic_Pupitar[]; +extern const u8 gMonShinyPalette_Pupitar[]; +extern const u8 gMonIcon_Pupitar[]; +extern const u8 gMonFootprint_Pupitar[]; +extern const u8 gMonFrontPic_Tyranitar[]; +extern const u8 gMonPalette_Tyranitar[]; +extern const u8 gMonBackPic_Tyranitar[]; +extern const u8 gMonShinyPalette_Tyranitar[]; +extern const u8 gMonIcon_Tyranitar[]; +extern const u8 gMonFootprint_Tyranitar[]; +extern const u8 gMonFrontPic_Lugia[]; +extern const u8 gMonPalette_Lugia[]; +extern const u8 gMonBackPic_Lugia[]; +extern const u8 gMonShinyPalette_Lugia[]; +extern const u8 gMonIcon_Lugia[]; +extern const u8 gMonFootprint_Lugia[]; +extern const u8 gMonFrontPic_HoOh[]; +extern const u8 gMonPalette_HoOh[]; +extern const u8 gMonBackPic_HoOh[]; +extern const u8 gMonShinyPalette_HoOh[]; +extern const u8 gMonIcon_HoOh[]; +extern const u8 gMonFootprint_HoOh[]; +extern const u8 gMonFrontPic_Celebi[]; +extern const u8 gMonPalette_Celebi[]; +extern const u8 gMonBackPic_Celebi[]; +extern const u8 gMonShinyPalette_Celebi[]; +extern const u8 gMonIcon_Celebi[]; +extern const u8 gMonFootprint_Celebi[]; +extern const u8 gMonFrontPic_QuestionMark[]; +extern const u8 gMonPalette_QuestionMark[]; +extern const u8 gMonBackPic_QuestionMark[]; +extern const u8 gMonShinyPalette_QuestionMark[]; +extern const u8 gMonFrontPic_Treecko[]; +extern const u8 gMonPalette_Treecko[]; +extern const u8 gMonBackPic_Treecko[]; +extern const u8 gMonShinyPalette_Treecko[]; +extern const u8 gMonIcon_Treecko[]; +extern const u8 gMonFootprint_Treecko[]; +extern const u8 gMonFrontPic_Grovyle[]; +extern const u8 gMonPalette_Grovyle[]; +extern const u8 gMonBackPic_Grovyle[]; +extern const u8 gMonShinyPalette_Grovyle[]; +extern const u8 gMonIcon_Grovyle[]; +extern const u8 gMonFootprint_Grovyle[]; +extern const u8 gMonFrontPic_Sceptile[]; +extern const u8 gMonPalette_Sceptile[]; +extern const u8 gMonBackPic_Sceptile[]; +extern const u8 gMonShinyPalette_Sceptile[]; +extern const u8 gMonIcon_Sceptile[]; +extern const u8 gMonFootprint_Sceptile[]; +extern const u8 gMonFrontPic_Torchic[]; +extern const u8 gMonPalette_Torchic[]; +extern const u8 gMonBackPic_Torchic[]; +extern const u8 gMonShinyPalette_Torchic[]; +extern const u8 gMonIcon_Torchic[]; +extern const u8 gMonFootprint_Torchic[]; +extern const u8 gMonFrontPic_Combusken[]; +extern const u8 gMonPalette_Combusken[]; +extern const u8 gMonBackPic_Combusken[]; +extern const u8 gMonShinyPalette_Combusken[]; +extern const u8 gMonIcon_Combusken[]; +extern const u8 gMonFootprint_Combusken[]; +extern const u8 gMonFrontPic_Blaziken[]; +extern const u8 gMonPalette_Blaziken[]; +extern const u8 gMonBackPic_Blaziken[]; +extern const u8 gMonShinyPalette_Blaziken[]; +extern const u8 gMonIcon_Blaziken[]; +extern const u8 gMonFootprint_Blaziken[]; +extern const u8 gMonFrontPic_Mudkip[]; +extern const u8 gMonPalette_Mudkip[]; +extern const u8 gMonBackPic_Mudkip[]; +extern const u8 gMonShinyPalette_Mudkip[]; +extern const u8 gMonIcon_Mudkip[]; +extern const u8 gMonFootprint_Mudkip[]; +extern const u8 gMonFrontPic_Marshtomp[]; +extern const u8 gMonPalette_Marshtomp[]; +extern const u8 gMonBackPic_Marshtomp[]; +extern const u8 gMonShinyPalette_Marshtomp[]; +extern const u8 gMonIcon_Marshtomp[]; +extern const u8 gMonFootprint_Marshtomp[]; +extern const u8 gMonFrontPic_Swampert[]; +extern const u8 gMonPalette_Swampert[]; +extern const u8 gMonBackPic_Swampert[]; +extern const u8 gMonShinyPalette_Swampert[]; +extern const u8 gMonIcon_Swampert[]; +extern const u8 gMonFootprint_Swampert[]; +extern const u8 gMonFrontPic_Poochyena[]; +extern const u8 gMonPalette_Poochyena[]; +extern const u8 gMonBackPic_Poochyena[]; +extern const u8 gMonShinyPalette_Poochyena[]; +extern const u8 gMonIcon_Poochyena[]; +extern const u8 gMonFootprint_Poochyena[]; +extern const u8 gMonFrontPic_Mightyena[]; +extern const u8 gMonPalette_Mightyena[]; +extern const u8 gMonBackPic_Mightyena[]; +extern const u8 gMonShinyPalette_Mightyena[]; +extern const u8 gMonIcon_Mightyena[]; +extern const u8 gMonFootprint_Mightyena[]; +extern const u8 gMonFrontPic_Zigzagoon[]; +extern const u8 gMonPalette_Zigzagoon[]; +extern const u8 gMonBackPic_Zigzagoon[]; +extern const u8 gMonShinyPalette_Zigzagoon[]; +extern const u8 gMonIcon_Zigzagoon[]; +extern const u8 gMonFootprint_Zigzagoon[]; +extern const u8 gMonFrontPic_Linoone[]; +extern const u8 gMonPalette_Linoone[]; +extern const u8 gMonBackPic_Linoone[]; +extern const u8 gMonShinyPalette_Linoone[]; +extern const u8 gMonIcon_Linoone[]; +extern const u8 gMonFootprint_Linoone[]; +extern const u8 gMonFrontPic_Wurmple[]; +extern const u8 gMonPalette_Wurmple[]; +extern const u8 gMonBackPic_Wurmple[]; +extern const u8 gMonShinyPalette_Wurmple[]; +extern const u8 gMonIcon_Wurmple[]; +extern const u8 gMonFootprint_Wurmple[]; +extern const u8 gMonFrontPic_Silcoon[]; +extern const u8 gMonPalette_Silcoon[]; +extern const u8 gMonBackPic_Silcoon[]; +extern const u8 gMonShinyPalette_Silcoon[]; +extern const u8 gMonIcon_Silcoon[]; +extern const u8 gMonFootprint_Silcoon[]; +extern const u8 gMonFrontPic_Beautifly[]; +extern const u8 gMonPalette_Beautifly[]; +extern const u8 gMonBackPic_Beautifly[]; +extern const u8 gMonShinyPalette_Beautifly[]; +extern const u8 gMonIcon_Beautifly[]; +extern const u8 gMonFootprint_Beautifly[]; +extern const u8 gMonFrontPic_Cascoon[]; +extern const u8 gMonPalette_Cascoon[]; +extern const u8 gMonBackPic_Cascoon[]; +extern const u8 gMonShinyPalette_Cascoon[]; +extern const u8 gMonIcon_Cascoon[]; +extern const u8 gMonFootprint_Cascoon[]; +extern const u8 gMonFrontPic_Dustox[]; +extern const u8 gMonPalette_Dustox[]; +extern const u8 gMonBackPic_Dustox[]; +extern const u8 gMonShinyPalette_Dustox[]; +extern const u8 gMonIcon_Dustox[]; +extern const u8 gMonFootprint_Dustox[]; +extern const u8 gMonFrontPic_Lotad[]; +extern const u8 gMonPalette_Lotad[]; +extern const u8 gMonBackPic_Lotad[]; +extern const u8 gMonShinyPalette_Lotad[]; +extern const u8 gMonIcon_Lotad[]; +extern const u8 gMonFootprint_Lotad[]; +extern const u8 gMonFrontPic_Lombre[]; +extern const u8 gMonPalette_Lombre[]; +extern const u8 gMonBackPic_Lombre[]; +extern const u8 gMonShinyPalette_Lombre[]; +extern const u8 gMonIcon_Lombre[]; +extern const u8 gMonFootprint_Lombre[]; +extern const u8 gMonFrontPic_Ludicolo[]; +extern const u8 gMonPalette_Ludicolo[]; +extern const u8 gMonBackPic_Ludicolo[]; +extern const u8 gMonShinyPalette_Ludicolo[]; +extern const u8 gMonIcon_Ludicolo[]; +extern const u8 gMonFootprint_Ludicolo[]; +extern const u8 gMonFrontPic_Seedot[]; +extern const u8 gMonPalette_Seedot[]; +extern const u8 gMonBackPic_Seedot[]; +extern const u8 gMonShinyPalette_Seedot[]; +extern const u8 gMonIcon_Seedot[]; +extern const u8 gMonFootprint_Seedot[]; +extern const u8 gMonFrontPic_Nuzleaf[]; +extern const u8 gMonPalette_Nuzleaf[]; +extern const u8 gMonBackPic_Nuzleaf[]; +extern const u8 gMonShinyPalette_Nuzleaf[]; +extern const u8 gMonIcon_Nuzleaf[]; +extern const u8 gMonFootprint_Nuzleaf[]; +extern const u8 gMonFrontPic_Shiftry[]; +extern const u8 gMonPalette_Shiftry[]; +extern const u8 gMonBackPic_Shiftry[]; +extern const u8 gMonShinyPalette_Shiftry[]; +extern const u8 gMonIcon_Shiftry[]; +extern const u8 gMonFootprint_Shiftry[]; +extern const u8 gMonFrontPic_Nincada[]; +extern const u8 gMonPalette_Nincada[]; +extern const u8 gMonBackPic_Nincada[]; +extern const u8 gMonShinyPalette_Nincada[]; +extern const u8 gMonIcon_Nincada[]; +extern const u8 gMonFootprint_Nincada[]; +extern const u8 gMonFrontPic_Ninjask[]; +extern const u8 gMonPalette_Ninjask[]; +extern const u8 gMonBackPic_Ninjask[]; +extern const u8 gMonShinyPalette_Ninjask[]; +extern const u8 gMonIcon_Ninjask[]; +extern const u8 gMonFootprint_Ninjask[]; +extern const u8 gMonFrontPic_Shedinja[]; +extern const u8 gMonPalette_Shedinja[]; +extern const u8 gMonBackPic_Shedinja[]; +extern const u8 gMonShinyPalette_Shedinja[]; +extern const u8 gMonIcon_Shedinja[]; +extern const u8 gMonFootprint_Shedinja[]; +extern const u8 gMonFrontPic_Taillow[]; +extern const u8 gMonPalette_Taillow[]; +extern const u8 gMonBackPic_Taillow[]; +extern const u8 gMonShinyPalette_Taillow[]; +extern const u8 gMonIcon_Taillow[]; +extern const u8 gMonFootprint_Taillow[]; +extern const u8 gMonFrontPic_Swellow[]; +extern const u8 gMonPalette_Swellow[]; +extern const u8 gMonBackPic_Swellow[]; +extern const u8 gMonShinyPalette_Swellow[]; +extern const u8 gMonIcon_Swellow[]; +extern const u8 gMonFootprint_Swellow[]; +extern const u8 gMonFrontPic_Shroomish[]; +extern const u8 gMonPalette_Shroomish[]; +extern const u8 gMonBackPic_Shroomish[]; +extern const u8 gMonShinyPalette_Shroomish[]; +extern const u8 gMonIcon_Shroomish[]; +extern const u8 gMonFootprint_Shroomish[]; +extern const u8 gMonFrontPic_Breloom[]; +extern const u8 gMonPalette_Breloom[]; +extern const u8 gMonBackPic_Breloom[]; +extern const u8 gMonShinyPalette_Breloom[]; +extern const u8 gMonIcon_Breloom[]; +extern const u8 gMonFootprint_Breloom[]; +extern const u8 gMonFrontPic_Spinda[]; +extern const u8 gMonPalette_Spinda[]; +extern const u8 gMonBackPic_Spinda[]; +extern const u8 gMonShinyPalette_Spinda[]; +extern const u8 gMonIcon_Spinda[]; +extern const u8 gMonFootprint_Spinda[]; +extern const u8 gMonFrontPic_Wingull[]; +extern const u8 gMonPalette_Wingull[]; +extern const u8 gMonBackPic_Wingull[]; +extern const u8 gMonShinyPalette_Wingull[]; +extern const u8 gMonIcon_Wingull[]; +extern const u8 gMonFootprint_Wingull[]; +extern const u8 gMonFrontPic_Pelipper[]; +extern const u8 gMonPalette_Pelipper[]; +extern const u8 gMonBackPic_Pelipper[]; +extern const u8 gMonShinyPalette_Pelipper[]; +extern const u8 gMonIcon_Pelipper[]; +extern const u8 gMonFootprint_Pelipper[]; +extern const u8 gMonFrontPic_Surskit[]; +extern const u8 gMonPalette_Surskit[]; +extern const u8 gMonBackPic_Surskit[]; +extern const u8 gMonShinyPalette_Surskit[]; +extern const u8 gMonIcon_Surskit[]; +extern const u8 gMonFootprint_Surskit[]; +extern const u8 gMonFrontPic_Masquerain[]; +extern const u8 gMonPalette_Masquerain[]; +extern const u8 gMonBackPic_Masquerain[]; +extern const u8 gMonShinyPalette_Masquerain[]; +extern const u8 gMonIcon_Masquerain[]; +extern const u8 gMonFootprint_Masquerain[]; +extern const u8 gMonFrontPic_Wailmer[]; +extern const u8 gMonPalette_Wailmer[]; +extern const u8 gMonBackPic_Wailmer[]; +extern const u8 gMonShinyPalette_Wailmer[]; +extern const u8 gMonIcon_Wailmer[]; +extern const u8 gMonFootprint_Wailmer[]; +extern const u8 gMonFrontPic_Wailord[]; +extern const u8 gMonPalette_Wailord[]; +extern const u8 gMonBackPic_Wailord[]; +extern const u8 gMonShinyPalette_Wailord[]; +extern const u8 gMonIcon_Wailord[]; +extern const u8 gMonFootprint_Wailord[]; +extern const u8 gMonFrontPic_Skitty[]; +extern const u8 gMonPalette_Skitty[]; +extern const u8 gMonBackPic_Skitty[]; +extern const u8 gMonShinyPalette_Skitty[]; +extern const u8 gMonIcon_Skitty[]; +extern const u8 gMonFootprint_Skitty[]; +extern const u8 gMonFrontPic_Delcatty[]; +extern const u8 gMonPalette_Delcatty[]; +extern const u8 gMonBackPic_Delcatty[]; +extern const u8 gMonShinyPalette_Delcatty[]; +extern const u8 gMonIcon_Delcatty[]; +extern const u8 gMonFootprint_Delcatty[]; +extern const u8 gMonFrontPic_Kecleon[]; +extern const u8 gMonPalette_Kecleon[]; +extern const u8 gMonBackPic_Kecleon[]; +extern const u8 gMonShinyPalette_Kecleon[]; +extern const u8 gMonIcon_Kecleon[]; +extern const u8 gMonFootprint_Kecleon[]; +extern const u8 gMonFrontPic_Baltoy[]; +extern const u8 gMonPalette_Baltoy[]; +extern const u8 gMonBackPic_Baltoy[]; +extern const u8 gMonShinyPalette_Baltoy[]; +extern const u8 gMonIcon_Baltoy[]; +extern const u8 gMonFootprint_Baltoy[]; +extern const u8 gMonFrontPic_Claydol[]; +extern const u8 gMonPalette_Claydol[]; +extern const u8 gMonBackPic_Claydol[]; +extern const u8 gMonShinyPalette_Claydol[]; +extern const u8 gMonIcon_Claydol[]; +extern const u8 gMonFootprint_Claydol[]; +extern const u8 gMonFrontPic_Nosepass[]; +extern const u8 gMonPalette_Nosepass[]; +extern const u8 gMonBackPic_Nosepass[]; +extern const u8 gMonShinyPalette_Nosepass[]; +extern const u8 gMonIcon_Nosepass[]; +extern const u8 gMonFootprint_Nosepass[]; +extern const u8 gMonFrontPic_Torkoal[]; +extern const u8 gMonPalette_Torkoal[]; +extern const u8 gMonBackPic_Torkoal[]; +extern const u8 gMonShinyPalette_Torkoal[]; +extern const u8 gMonIcon_Torkoal[]; +extern const u8 gMonFootprint_Torkoal[]; +extern const u8 gMonFrontPic_Sableye[]; +extern const u8 gMonPalette_Sableye[]; +extern const u8 gMonBackPic_Sableye[]; +extern const u8 gMonShinyPalette_Sableye[]; +extern const u8 gMonIcon_Sableye[]; +extern const u8 gMonFootprint_Sableye[]; +extern const u8 gMonFrontPic_Barboach[]; +extern const u8 gMonPalette_Barboach[]; +extern const u8 gMonBackPic_Barboach[]; +extern const u8 gMonShinyPalette_Barboach[]; +extern const u8 gMonIcon_Barboach[]; +extern const u8 gMonFootprint_Barboach[]; +extern const u8 gMonFrontPic_Whiscash[]; +extern const u8 gMonPalette_Whiscash[]; +extern const u8 gMonBackPic_Whiscash[]; +extern const u8 gMonShinyPalette_Whiscash[]; +extern const u8 gMonIcon_Whiscash[]; +extern const u8 gMonFootprint_Whiscash[]; +extern const u8 gMonFrontPic_Luvdisc[]; +extern const u8 gMonPalette_Luvdisc[]; +extern const u8 gMonBackPic_Luvdisc[]; +extern const u8 gMonShinyPalette_Luvdisc[]; +extern const u8 gMonIcon_Luvdisc[]; +extern const u8 gMonFootprint_Luvdisc[]; +extern const u8 gMonFrontPic_Corphish[]; +extern const u8 gMonPalette_Corphish[]; +extern const u8 gMonBackPic_Corphish[]; +extern const u8 gMonShinyPalette_Corphish[]; +extern const u8 gMonIcon_Corphish[]; +extern const u8 gMonFootprint_Corphish[]; +extern const u8 gMonFrontPic_Crawdaunt[]; +extern const u8 gMonPalette_Crawdaunt[]; +extern const u8 gMonBackPic_Crawdaunt[]; +extern const u8 gMonShinyPalette_Crawdaunt[]; +extern const u8 gMonIcon_Crawdaunt[]; +extern const u8 gMonFootprint_Crawdaunt[]; +extern const u8 gMonFrontPic_Feebas[]; +extern const u8 gMonPalette_Feebas[]; +extern const u8 gMonBackPic_Feebas[]; +extern const u8 gMonShinyPalette_Feebas[]; +extern const u8 gMonIcon_Feebas[]; +extern const u8 gMonFootprint_Feebas[]; +extern const u8 gMonFrontPic_Milotic[]; +extern const u8 gMonPalette_Milotic[]; +extern const u8 gMonBackPic_Milotic[]; +extern const u8 gMonShinyPalette_Milotic[]; +extern const u8 gMonIcon_Milotic[]; +extern const u8 gMonFootprint_Milotic[]; +extern const u8 gMonFrontPic_Carvanha[]; +extern const u8 gMonPalette_Carvanha[]; +extern const u8 gMonBackPic_Carvanha[]; +extern const u8 gMonShinyPalette_Carvanha[]; +extern const u8 gMonIcon_Carvanha[]; +extern const u8 gMonFootprint_Carvanha[]; +extern const u8 gMonFrontPic_Sharpedo[]; +extern const u8 gMonPalette_Sharpedo[]; +extern const u8 gMonBackPic_Sharpedo[]; +extern const u8 gMonShinyPalette_Sharpedo[]; +extern const u8 gMonIcon_Sharpedo[]; +extern const u8 gMonFootprint_Sharpedo[]; +extern const u8 gMonFrontPic_Trapinch[]; +extern const u8 gMonPalette_Trapinch[]; +extern const u8 gMonBackPic_Trapinch[]; +extern const u8 gMonShinyPalette_Trapinch[]; +extern const u8 gMonIcon_Trapinch[]; +extern const u8 gMonFootprint_Trapinch[]; +extern const u8 gMonFrontPic_Vibrava[]; +extern const u8 gMonPalette_Vibrava[]; +extern const u8 gMonBackPic_Vibrava[]; +extern const u8 gMonShinyPalette_Vibrava[]; +extern const u8 gMonIcon_Vibrava[]; +extern const u8 gMonFootprint_Vibrava[]; +extern const u8 gMonFrontPic_Flygon[]; +extern const u8 gMonPalette_Flygon[]; +extern const u8 gMonBackPic_Flygon[]; +extern const u8 gMonShinyPalette_Flygon[]; +extern const u8 gMonIcon_Flygon[]; +extern const u8 gMonFootprint_Flygon[]; +extern const u8 gMonFrontPic_Makuhita[]; +extern const u8 gMonPalette_Makuhita[]; +extern const u8 gMonBackPic_Makuhita[]; +extern const u8 gMonShinyPalette_Makuhita[]; +extern const u8 gMonIcon_Makuhita[]; +extern const u8 gMonFootprint_Makuhita[]; +extern const u8 gMonFrontPic_Hariyama[]; +extern const u8 gMonPalette_Hariyama[]; +extern const u8 gMonBackPic_Hariyama[]; +extern const u8 gMonShinyPalette_Hariyama[]; +extern const u8 gMonIcon_Hariyama[]; +extern const u8 gMonFootprint_Hariyama[]; +extern const u8 gMonFrontPic_Electrike[]; +extern const u8 gMonPalette_Electrike[]; +extern const u8 gMonBackPic_Electrike[]; +extern const u8 gMonShinyPalette_Electrike[]; +extern const u8 gMonIcon_Electrike[]; +extern const u8 gMonFootprint_Electrike[]; +extern const u8 gMonFrontPic_Manectric[]; +extern const u8 gMonPalette_Manectric[]; +extern const u8 gMonBackPic_Manectric[]; +extern const u8 gMonShinyPalette_Manectric[]; +extern const u8 gMonIcon_Manectric[]; +extern const u8 gMonFootprint_Manectric[]; +extern const u8 gMonFrontPic_Numel[]; +extern const u8 gMonPalette_Numel[]; +extern const u8 gMonBackPic_Numel[]; +extern const u8 gMonShinyPalette_Numel[]; +extern const u8 gMonIcon_Numel[]; +extern const u8 gMonFootprint_Numel[]; +extern const u8 gMonFrontPic_Camerupt[]; +extern const u8 gMonPalette_Camerupt[]; +extern const u8 gMonBackPic_Camerupt[]; +extern const u8 gMonShinyPalette_Camerupt[]; +extern const u8 gMonIcon_Camerupt[]; +extern const u8 gMonFootprint_Camerupt[]; +extern const u8 gMonFrontPic_Spheal[]; +extern const u8 gMonPalette_Spheal[]; +extern const u8 gMonBackPic_Spheal[]; +extern const u8 gMonShinyPalette_Spheal[]; +extern const u8 gMonIcon_Spheal[]; +extern const u8 gMonFootprint_Spheal[]; +extern const u8 gMonFrontPic_Sealeo[]; +extern const u8 gMonPalette_Sealeo[]; +extern const u8 gMonBackPic_Sealeo[]; +extern const u8 gMonShinyPalette_Sealeo[]; +extern const u8 gMonIcon_Sealeo[]; +extern const u8 gMonFootprint_Sealeo[]; +extern const u8 gMonFrontPic_Walrein[]; +extern const u8 gMonPalette_Walrein[]; +extern const u8 gMonBackPic_Walrein[]; +extern const u8 gMonShinyPalette_Walrein[]; +extern const u8 gMonIcon_Walrein[]; +extern const u8 gMonFootprint_Walrein[]; +extern const u8 gMonFrontPic_Cacnea[]; +extern const u8 gMonPalette_Cacnea[]; +extern const u8 gMonBackPic_Cacnea[]; +extern const u8 gMonShinyPalette_Cacnea[]; +extern const u8 gMonIcon_Cacnea[]; +extern const u8 gMonFootprint_Cacnea[]; +extern const u8 gMonFrontPic_Cacturne[]; +extern const u8 gMonPalette_Cacturne[]; +extern const u8 gMonBackPic_Cacturne[]; +extern const u8 gMonShinyPalette_Cacturne[]; +extern const u8 gMonIcon_Cacturne[]; +extern const u8 gMonFootprint_Cacturne[]; +extern const u8 gMonFrontPic_Snorunt[]; +extern const u8 gMonPalette_Snorunt[]; +extern const u8 gMonBackPic_Snorunt[]; +extern const u8 gMonShinyPalette_Snorunt[]; +extern const u8 gMonIcon_Snorunt[]; +extern const u8 gMonFootprint_Snorunt[]; +extern const u8 gMonFrontPic_Glalie[]; +extern const u8 gMonPalette_Glalie[]; +extern const u8 gMonBackPic_Glalie[]; +extern const u8 gMonShinyPalette_Glalie[]; +extern const u8 gMonIcon_Glalie[]; +extern const u8 gMonFootprint_Glalie[]; +extern const u8 gMonFrontPic_Lunatone[]; +extern const u8 gMonPalette_Lunatone[]; +extern const u8 gMonBackPic_Lunatone[]; +extern const u8 gMonShinyPalette_Lunatone[]; +extern const u8 gMonIcon_Lunatone[]; +extern const u8 gMonFootprint_Lunatone[]; +extern const u8 gMonFrontPic_Solrock[]; +extern const u8 gMonPalette_Solrock[]; +extern const u8 gMonBackPic_Solrock[]; +extern const u8 gMonShinyPalette_Solrock[]; +extern const u8 gMonIcon_Solrock[]; +extern const u8 gMonFootprint_Solrock[]; +extern const u8 gMonFrontPic_Azurill[]; +extern const u8 gMonPalette_Azurill[]; +extern const u8 gMonBackPic_Azurill[]; +extern const u8 gMonShinyPalette_Azurill[]; +extern const u8 gMonIcon_Azurill[]; +extern const u8 gMonFootprint_Azurill[]; +extern const u8 gMonFrontPic_Spoink[]; +extern const u8 gMonPalette_Spoink[]; +extern const u8 gMonBackPic_Spoink[]; +extern const u8 gMonShinyPalette_Spoink[]; +extern const u8 gMonIcon_Spoink[]; +extern const u8 gMonFootprint_Spoink[]; +extern const u8 gMonFrontPic_Grumpig[]; +extern const u8 gMonPalette_Grumpig[]; +extern const u8 gMonBackPic_Grumpig[]; +extern const u8 gMonShinyPalette_Grumpig[]; +extern const u8 gMonIcon_Grumpig[]; +extern const u8 gMonFootprint_Grumpig[]; +extern const u8 gMonFrontPic_Plusle[]; +extern const u8 gMonPalette_Plusle[]; +extern const u8 gMonBackPic_Plusle[]; +extern const u8 gMonShinyPalette_Plusle[]; +extern const u8 gMonIcon_Plusle[]; +extern const u8 gMonFootprint_Plusle[]; +extern const u8 gMonFrontPic_Minun[]; +extern const u8 gMonPalette_Minun[]; +extern const u8 gMonBackPic_Minun[]; +extern const u8 gMonShinyPalette_Minun[]; +extern const u8 gMonIcon_Minun[]; +extern const u8 gMonFootprint_Minun[]; +extern const u8 gMonFrontPic_Mawile[]; +extern const u8 gMonPalette_Mawile[]; +extern const u8 gMonBackPic_Mawile[]; +extern const u8 gMonShinyPalette_Mawile[]; +extern const u8 gMonIcon_Mawile[]; +extern const u8 gMonFootprint_Mawile[]; +extern const u8 gMonFrontPic_Meditite[]; +extern const u8 gMonPalette_Meditite[]; +extern const u8 gMonBackPic_Meditite[]; +extern const u8 gMonShinyPalette_Meditite[]; +extern const u8 gMonIcon_Meditite[]; +extern const u8 gMonFootprint_Meditite[]; +extern const u8 gMonFrontPic_Medicham[]; +extern const u8 gMonPalette_Medicham[]; +extern const u8 gMonBackPic_Medicham[]; +extern const u8 gMonShinyPalette_Medicham[]; +extern const u8 gMonIcon_Medicham[]; +extern const u8 gMonFootprint_Medicham[]; +extern const u8 gMonFrontPic_Swablu[]; +extern const u8 gMonPalette_Swablu[]; +extern const u8 gMonBackPic_Swablu[]; +extern const u8 gMonShinyPalette_Swablu[]; +extern const u8 gMonIcon_Swablu[]; +extern const u8 gMonFootprint_Swablu[]; +extern const u8 gMonFrontPic_Altaria[]; +extern const u8 gMonPalette_Altaria[]; +extern const u8 gMonBackPic_Altaria[]; +extern const u8 gMonShinyPalette_Altaria[]; +extern const u8 gMonIcon_Altaria[]; +extern const u8 gMonFootprint_Altaria[]; +extern const u8 gMonFrontPic_Wynaut[]; +extern const u8 gMonPalette_Wynaut[]; +extern const u8 gMonBackPic_Wynaut[]; +extern const u8 gMonShinyPalette_Wynaut[]; +extern const u8 gMonIcon_Wynaut[]; +extern const u8 gMonFootprint_Wynaut[]; +extern const u8 gMonFrontPic_Duskull[]; +extern const u8 gMonPalette_Duskull[]; +extern const u8 gMonBackPic_Duskull[]; +extern const u8 gMonShinyPalette_Duskull[]; +extern const u8 gMonIcon_Duskull[]; +extern const u8 gMonFootprint_Duskull[]; +extern const u8 gMonFrontPic_Dusclops[]; +extern const u8 gMonPalette_Dusclops[]; +extern const u8 gMonBackPic_Dusclops[]; +extern const u8 gMonShinyPalette_Dusclops[]; +extern const u8 gMonIcon_Dusclops[]; +extern const u8 gMonFootprint_Dusclops[]; +extern const u8 gMonFrontPic_Roselia[]; +extern const u8 gMonPalette_Roselia[]; +extern const u8 gMonBackPic_Roselia[]; +extern const u8 gMonShinyPalette_Roselia[]; +extern const u8 gMonIcon_Roselia[]; +extern const u8 gMonFootprint_Roselia[]; +extern const u8 gMonFrontPic_Slakoth[]; +extern const u8 gMonPalette_Slakoth[]; +extern const u8 gMonBackPic_Slakoth[]; +extern const u8 gMonShinyPalette_Slakoth[]; +extern const u8 gMonIcon_Slakoth[]; +extern const u8 gMonFootprint_Slakoth[]; +extern const u8 gMonFrontPic_Vigoroth[]; +extern const u8 gMonPalette_Vigoroth[]; +extern const u8 gMonBackPic_Vigoroth[]; +extern const u8 gMonShinyPalette_Vigoroth[]; +extern const u8 gMonIcon_Vigoroth[]; +extern const u8 gMonFootprint_Vigoroth[]; +extern const u8 gMonFrontPic_Slaking[]; +extern const u8 gMonPalette_Slaking[]; +extern const u8 gMonBackPic_Slaking[]; +extern const u8 gMonShinyPalette_Slaking[]; +extern const u8 gMonIcon_Slaking[]; +extern const u8 gMonFootprint_Slaking[]; +extern const u8 gMonFrontPic_Gulpin[]; +extern const u8 gMonPalette_Gulpin[]; +extern const u8 gMonBackPic_Gulpin[]; +extern const u8 gMonShinyPalette_Gulpin[]; +extern const u8 gMonIcon_Gulpin[]; +extern const u8 gMonFootprint_Gulpin[]; +extern const u8 gMonFrontPic_Swalot[]; +extern const u8 gMonPalette_Swalot[]; +extern const u8 gMonBackPic_Swalot[]; +extern const u8 gMonShinyPalette_Swalot[]; +extern const u8 gMonIcon_Swalot[]; +extern const u8 gMonFootprint_Swalot[]; +extern const u8 gMonFrontPic_Tropius[]; +extern const u8 gMonPalette_Tropius[]; +extern const u8 gMonBackPic_Tropius[]; +extern const u8 gMonShinyPalette_Tropius[]; +extern const u8 gMonIcon_Tropius[]; +extern const u8 gMonFootprint_Tropius[]; +extern const u8 gMonFrontPic_Whismur[]; +extern const u8 gMonPalette_Whismur[]; +extern const u8 gMonBackPic_Whismur[]; +extern const u8 gMonShinyPalette_Whismur[]; +extern const u8 gMonIcon_Whismur[]; +extern const u8 gMonFootprint_Whismur[]; +extern const u8 gMonFrontPic_Loudred[]; +extern const u8 gMonPalette_Loudred[]; +extern const u8 gMonBackPic_Loudred[]; +extern const u8 gMonShinyPalette_Loudred[]; +extern const u8 gMonIcon_Loudred[]; +extern const u8 gMonFootprint_Loudred[]; +extern const u8 gMonFrontPic_Exploud[]; +extern const u8 gMonPalette_Exploud[]; +extern const u8 gMonBackPic_Exploud[]; +extern const u8 gMonShinyPalette_Exploud[]; +extern const u8 gMonIcon_Exploud[]; +extern const u8 gMonFootprint_Exploud[]; +extern const u8 gMonFrontPic_Clamperl[]; +extern const u8 gMonPalette_Clamperl[]; +extern const u8 gMonBackPic_Clamperl[]; +extern const u8 gMonShinyPalette_Clamperl[]; +extern const u8 gMonIcon_Clamperl[]; +extern const u8 gMonFootprint_Clamperl[]; +extern const u8 gMonFrontPic_Huntail[]; +extern const u8 gMonPalette_Huntail[]; +extern const u8 gMonBackPic_Huntail[]; +extern const u8 gMonShinyPalette_Huntail[]; +extern const u8 gMonIcon_Huntail[]; +extern const u8 gMonFootprint_Huntail[]; +extern const u8 gMonFrontPic_Gorebyss[]; +extern const u8 gMonPalette_Gorebyss[]; +extern const u8 gMonBackPic_Gorebyss[]; +extern const u8 gMonShinyPalette_Gorebyss[]; +extern const u8 gMonIcon_Gorebyss[]; +extern const u8 gMonFootprint_Gorebyss[]; +extern const u8 gMonFrontPic_Absol[]; +extern const u8 gMonPalette_Absol[]; +extern const u8 gMonBackPic_Absol[]; +extern const u8 gMonShinyPalette_Absol[]; +extern const u8 gMonIcon_Absol[]; +extern const u8 gMonFootprint_Absol[]; +extern const u8 gMonFrontPic_Shuppet[]; +extern const u8 gMonPalette_Shuppet[]; +extern const u8 gMonBackPic_Shuppet[]; +extern const u8 gMonShinyPalette_Shuppet[]; +extern const u8 gMonIcon_Shuppet[]; +extern const u8 gMonFootprint_Shuppet[]; +extern const u8 gMonFrontPic_Banette[]; +extern const u8 gMonPalette_Banette[]; +extern const u8 gMonBackPic_Banette[]; +extern const u8 gMonShinyPalette_Banette[]; +extern const u8 gMonIcon_Banette[]; +extern const u8 gMonFootprint_Banette[]; +extern const u8 gMonFrontPic_Seviper[]; +extern const u8 gMonPalette_Seviper[]; +extern const u8 gMonBackPic_Seviper[]; +extern const u8 gMonShinyPalette_Seviper[]; +extern const u8 gMonIcon_Seviper[]; +extern const u8 gMonFootprint_Seviper[]; +extern const u8 gMonFrontPic_Zangoose[]; +extern const u8 gMonPalette_Zangoose[]; +extern const u8 gMonBackPic_Zangoose[]; +extern const u8 gMonShinyPalette_Zangoose[]; +extern const u8 gMonIcon_Zangoose[]; +extern const u8 gMonFootprint_Zangoose[]; +extern const u8 gMonFrontPic_Relicanth[]; +extern const u8 gMonPalette_Relicanth[]; +extern const u8 gMonBackPic_Relicanth[]; +extern const u8 gMonShinyPalette_Relicanth[]; +extern const u8 gMonIcon_Relicanth[]; +extern const u8 gMonFootprint_Relicanth[]; +extern const u8 gMonFrontPic_Aron[]; +extern const u8 gMonPalette_Aron[]; +extern const u8 gMonBackPic_Aron[]; +extern const u8 gMonShinyPalette_Aron[]; +extern const u8 gMonIcon_Aron[]; +extern const u8 gMonFootprint_Aron[]; +extern const u8 gMonFrontPic_Lairon[]; +extern const u8 gMonPalette_Lairon[]; +extern const u8 gMonBackPic_Lairon[]; +extern const u8 gMonShinyPalette_Lairon[]; +extern const u8 gMonIcon_Lairon[]; +extern const u8 gMonFootprint_Lairon[]; +extern const u8 gMonFrontPic_Aggron[]; +extern const u8 gMonPalette_Aggron[]; +extern const u8 gMonBackPic_Aggron[]; +extern const u8 gMonShinyPalette_Aggron[]; +extern const u8 gMonIcon_Aggron[]; +extern const u8 gMonFootprint_Aggron[]; +extern const u8 gMonFrontPic_Castform[]; +extern const u8 gMonPalette_Castform[]; +extern const u8 gMonBackPic_Castform[]; +extern const u8 gMonShinyPalette_Castform[]; +extern const u8 gMonIcon_Castform[]; +extern const u8 gMonFootprint_Castform[]; +extern const u8 gMonFrontPic_Volbeat[]; +extern const u8 gMonPalette_Volbeat[]; +extern const u8 gMonBackPic_Volbeat[]; +extern const u8 gMonShinyPalette_Volbeat[]; +extern const u8 gMonIcon_Volbeat[]; +extern const u8 gMonFootprint_Volbeat[]; +extern const u8 gMonFrontPic_Illumise[]; +extern const u8 gMonPalette_Illumise[]; +extern const u8 gMonBackPic_Illumise[]; +extern const u8 gMonShinyPalette_Illumise[]; +extern const u8 gMonIcon_Illumise[]; +extern const u8 gMonFootprint_Illumise[]; +extern const u8 gMonFrontPic_Lileep[]; +extern const u8 gMonPalette_Lileep[]; +extern const u8 gMonBackPic_Lileep[]; +extern const u8 gMonShinyPalette_Lileep[]; +extern const u8 gMonIcon_Lileep[]; +extern const u8 gMonFootprint_Lileep[]; +extern const u8 gMonFrontPic_Cradily[]; +extern const u8 gMonPalette_Cradily[]; +extern const u8 gMonBackPic_Cradily[]; +extern const u8 gMonShinyPalette_Cradily[]; +extern const u8 gMonIcon_Cradily[]; +extern const u8 gMonFootprint_Cradily[]; +extern const u8 gMonFrontPic_Anorith[]; +extern const u8 gMonPalette_Anorith[]; +extern const u8 gMonBackPic_Anorith[]; +extern const u8 gMonShinyPalette_Anorith[]; +extern const u8 gMonIcon_Anorith[]; +extern const u8 gMonFootprint_Anorith[]; +extern const u8 gMonFrontPic_Armaldo[]; +extern const u8 gMonPalette_Armaldo[]; +extern const u8 gMonBackPic_Armaldo[]; +extern const u8 gMonShinyPalette_Armaldo[]; +extern const u8 gMonIcon_Armaldo[]; +extern const u8 gMonFootprint_Armaldo[]; +extern const u8 gMonFrontPic_Ralts[]; +extern const u8 gMonPalette_Ralts[]; +extern const u8 gMonBackPic_Ralts[]; +extern const u8 gMonShinyPalette_Ralts[]; +extern const u8 gMonIcon_Ralts[]; +extern const u8 gMonFootprint_Ralts[]; +extern const u8 gMonFrontPic_Kirlia[]; +extern const u8 gMonPalette_Kirlia[]; +extern const u8 gMonBackPic_Kirlia[]; +extern const u8 gMonShinyPalette_Kirlia[]; +extern const u8 gMonIcon_Kirlia[]; +extern const u8 gMonFootprint_Kirlia[]; +extern const u8 gMonFrontPic_Gardevoir[]; +extern const u8 gMonPalette_Gardevoir[]; +extern const u8 gMonBackPic_Gardevoir[]; +extern const u8 gMonShinyPalette_Gardevoir[]; +extern const u8 gMonIcon_Gardevoir[]; +extern const u8 gMonFootprint_Gardevoir[]; +extern const u8 gMonFrontPic_Bagon[]; +extern const u8 gMonPalette_Bagon[]; +extern const u8 gMonBackPic_Bagon[]; +extern const u8 gMonShinyPalette_Bagon[]; +extern const u8 gMonIcon_Bagon[]; +extern const u8 gMonFootprint_Bagon[]; +extern const u8 gMonFrontPic_Shelgon[]; +extern const u8 gMonPalette_Shelgon[]; +extern const u8 gMonBackPic_Shelgon[]; +extern const u8 gMonShinyPalette_Shelgon[]; +extern const u8 gMonIcon_Shelgon[]; +extern const u8 gMonFootprint_Shelgon[]; +extern const u8 gMonFrontPic_Salamence[]; +extern const u8 gMonPalette_Salamence[]; +extern const u8 gMonBackPic_Salamence[]; +extern const u8 gMonShinyPalette_Salamence[]; +extern const u8 gMonIcon_Salamence[]; +extern const u8 gMonFootprint_Salamence[]; +extern const u8 gMonFrontPic_Beldum[]; +extern const u8 gMonPalette_Beldum[]; +extern const u8 gMonBackPic_Beldum[]; +extern const u8 gMonShinyPalette_Beldum[]; +extern const u8 gMonIcon_Beldum[]; +extern const u8 gMonFootprint_Beldum[]; +extern const u8 gMonFrontPic_Metang[]; +extern const u8 gMonPalette_Metang[]; +extern const u8 gMonBackPic_Metang[]; +extern const u8 gMonShinyPalette_Metang[]; +extern const u8 gMonIcon_Metang[]; +extern const u8 gMonFootprint_Metang[]; +extern const u8 gMonFrontPic_Metagross[]; +extern const u8 gMonPalette_Metagross[]; +extern const u8 gMonBackPic_Metagross[]; +extern const u8 gMonShinyPalette_Metagross[]; +extern const u8 gMonIcon_Metagross[]; +extern const u8 gMonFootprint_Metagross[]; +extern const u8 gMonFrontPic_Regirock[]; +extern const u8 gMonPalette_Regirock[]; +extern const u8 gMonBackPic_Regirock[]; +extern const u8 gMonShinyPalette_Regirock[]; +extern const u8 gMonIcon_Regirock[]; +extern const u8 gMonFootprint_Regirock[]; +extern const u8 gMonFrontPic_Regice[]; +extern const u8 gMonPalette_Regice[]; +extern const u8 gMonBackPic_Regice[]; +extern const u8 gMonShinyPalette_Regice[]; +extern const u8 gMonIcon_Regice[]; +extern const u8 gMonFootprint_Regice[]; +extern const u8 gMonFrontPic_Registeel[]; +extern const u8 gMonPalette_Registeel[]; +extern const u8 gMonBackPic_Registeel[]; +extern const u8 gMonShinyPalette_Registeel[]; +extern const u8 gMonIcon_Registeel[]; +extern const u8 gMonFootprint_Registeel[]; +extern const u8 gMonFrontPic_Kyogre[]; +extern const u8 gMonPalette_Kyogre[]; +extern const u8 gMonBackPic_Kyogre[]; +extern const u8 gMonShinyPalette_Kyogre[]; +extern const u8 gMonIcon_Kyogre[]; +extern const u8 gMonFootprint_Kyogre[]; +extern const u8 gMonFrontPic_Groudon[]; +extern const u8 gMonPalette_Groudon[]; +extern const u8 gMonBackPic_Groudon[]; +extern const u8 gMonShinyPalette_Groudon[]; +extern const u8 gMonIcon_Groudon[]; +extern const u8 gMonFootprint_Groudon[]; +extern const u8 gMonFrontPic_Rayquaza[]; +extern const u8 gMonPalette_Rayquaza[]; +extern const u8 gMonBackPic_Rayquaza[]; +extern const u8 gMonShinyPalette_Rayquaza[]; +extern const u8 gMonIcon_Rayquaza[]; +extern const u8 gMonFootprint_Rayquaza[]; +extern const u8 gMonFrontPic_Latias[]; +extern const u8 gMonPalette_Latias[]; +extern const u8 gMonBackPic_Latias[]; +extern const u8 gMonShinyPalette_Latias[]; +extern const u8 gMonIcon_Latias[]; +extern const u8 gMonFootprint_Latias[]; +extern const u8 gMonFrontPic_Latios[]; +extern const u8 gMonPalette_Latios[]; +extern const u8 gMonBackPic_Latios[]; +extern const u8 gMonShinyPalette_Latios[]; +extern const u8 gMonIcon_Latios[]; +extern const u8 gMonFootprint_Latios[]; +extern const u8 gMonFrontPic_Jirachi[]; +extern const u8 gMonPalette_Jirachi[]; +extern const u8 gMonBackPic_Jirachi[]; +extern const u8 gMonShinyPalette_Jirachi[]; +extern const u8 gMonIcon_Jirachi[]; +extern const u8 gMonFootprint_Jirachi[]; +extern const u8 gMonFrontPic_Deoxys[]; +extern const u8 gMonPalette_Deoxys[]; +extern const u8 gMonBackPic_Deoxys[]; +extern const u8 gMonShinyPalette_Deoxys[]; +extern const u8 gMonIcon_Deoxys[]; +extern const u8 gMonFootprint_Deoxys[]; +extern const u8 gMonFrontPic_Chimecho[]; +extern const u8 gMonPalette_Chimecho[]; +extern const u8 gMonBackPic_Chimecho[]; +extern const u8 gMonShinyPalette_Chimecho[]; +extern const u8 gMonIcon_Chimecho[]; +extern const u8 gMonFootprint_Chimecho[]; +extern const u8 gMonPic_Egg[]; +extern const u8 gMonPalette_Egg[]; +extern const u8 gMonFrontPic_UnownB[]; +extern const u8 gMonBackPic_UnownB[]; +extern const u8 gMonIcon_UnownB[]; +extern const u8 gMonFrontPic_UnownC[]; +extern const u8 gMonBackPic_UnownC[]; +extern const u8 gMonIcon_UnownC[]; +extern const u8 gMonFrontPic_UnownD[]; +extern const u8 gMonBackPic_UnownD[]; +extern const u8 gMonIcon_UnownD[]; +extern const u8 gMonFrontPic_UnownE[]; +extern const u8 gMonBackPic_UnownE[]; +extern const u8 gMonIcon_UnownE[]; +extern const u8 gMonFrontPic_UnownF[]; +extern const u8 gMonBackPic_UnownF[]; +extern const u8 gMonIcon_UnownF[]; +extern const u8 gMonFrontPic_UnownG[]; +extern const u8 gMonBackPic_UnownG[]; +extern const u8 gMonIcon_UnownG[]; +extern const u8 gMonFrontPic_UnownH[]; +extern const u8 gMonBackPic_UnownH[]; +extern const u8 gMonIcon_UnownH[]; +extern const u8 gMonFrontPic_UnownI[]; +extern const u8 gMonBackPic_UnownI[]; +extern const u8 gMonIcon_UnownI[]; +extern const u8 gMonFrontPic_UnownJ[]; +extern const u8 gMonBackPic_UnownJ[]; +extern const u8 gMonIcon_UnownJ[]; +extern const u8 gMonFrontPic_UnownK[]; +extern const u8 gMonBackPic_UnownK[]; +extern const u8 gMonIcon_UnownK[]; +extern const u8 gMonFrontPic_UnownL[]; +extern const u8 gMonBackPic_UnownL[]; +extern const u8 gMonIcon_UnownL[]; +extern const u8 gMonFrontPic_UnownM[]; +extern const u8 gMonBackPic_UnownM[]; +extern const u8 gMonIcon_UnownM[]; +extern const u8 gMonFrontPic_UnownN[]; +extern const u8 gMonBackPic_UnownN[]; +extern const u8 gMonIcon_UnownN[]; +extern const u8 gMonFrontPic_UnownO[]; +extern const u8 gMonBackPic_UnownO[]; +extern const u8 gMonIcon_UnownO[]; +extern const u8 gMonFrontPic_UnownP[]; +extern const u8 gMonBackPic_UnownP[]; +extern const u8 gMonIcon_UnownP[]; +extern const u8 gMonFrontPic_UnownQ[]; +extern const u8 gMonBackPic_UnownQ[]; +extern const u8 gMonIcon_UnownQ[]; +extern const u8 gMonFrontPic_UnownR[]; +extern const u8 gMonBackPic_UnownR[]; +extern const u8 gMonIcon_UnownR[]; +extern const u8 gMonFrontPic_UnownS[]; +extern const u8 gMonBackPic_UnownS[]; +extern const u8 gMonIcon_UnownS[]; +extern const u8 gMonFrontPic_UnownT[]; +extern const u8 gMonBackPic_UnownT[]; +extern const u8 gMonIcon_UnownT[]; +extern const u8 gMonFrontPic_UnownU[]; +extern const u8 gMonBackPic_UnownU[]; +extern const u8 gMonIcon_UnownU[]; +extern const u8 gMonFrontPic_UnownV[]; +extern const u8 gMonBackPic_UnownV[]; +extern const u8 gMonIcon_UnownV[]; +extern const u8 gMonFrontPic_UnownW[]; +extern const u8 gMonBackPic_UnownW[]; +extern const u8 gMonIcon_UnownW[]; +extern const u8 gMonFrontPic_UnownX[]; +extern const u8 gMonBackPic_UnownX[]; +extern const u8 gMonIcon_UnownX[]; +extern const u8 gMonFrontPic_UnownY[]; +extern const u8 gMonBackPic_UnownY[]; +extern const u8 gMonIcon_UnownY[]; +extern const u8 gMonFrontPic_UnownZ[]; +extern const u8 gMonBackPic_UnownZ[]; +extern const u8 gMonIcon_UnownZ[]; +extern const u8 gMonFrontPic_UnownExclamationMark[]; +extern const u8 gMonBackPic_UnownExclamationMark[]; +extern const u8 gMonIcon_UnownExclamationMark[]; +extern const u8 gMonFrontPic_UnownQuestionMark[]; +extern const u8 gMonBackPic_UnownQuestionMark[]; +extern const u8 gMonIcon_UnownQuestionMark[]; + +#endif // GUARD_GRAPHICS_H diff --git a/include/menu.h b/include/menu.h index 09aa6b750..c18f4cb9e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -66,7 +66,7 @@ u8 sub_8072A18(const u8 *, u8, u16, u8, u32); u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32); int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32); void MenuPrint_RightAligned(u8 *, u8, u8); -void sub_8072B80(u8 *, u8, u8, u8 *); +void sub_8072B80(const u8 *, u8, u8, const u8 *); void sub_8072BD8(const u8 *, u8, u8, u16); u8 *sub_8072C14(u8 *, s32, u8, u8); u8 *sub_8072C44(u8 *, s32, u8, u8); diff --git a/include/pokedex.h b/include/pokedex.h index a243e6064..1bc63a4ff 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -3,156 +3,16 @@ #include "sprite.h" -struct PokedexListItem -{ - u16 dexNum; - u16 seen:1; - u16 owned:1; -}; - -struct PokedexView -{ - struct PokedexListItem unk0[386]; - u16 unk608; - u8 unk60A_1:1; - u8 unk60A_2:1; - u8 unk60B; - u16 unk60C; - u16 selectedPokemon; - u16 unk610; - u16 dexMode; //National or Hoenn - u16 unk614; - u16 dexOrder; - u16 unk618; - u16 unk61A; - u16 unk61C; - u16 unk61E[4]; - u16 unk626; //sprite id of selected Pokemon - u16 unk628; - u16 unk62A; - u8 unk62C; - u8 unk62D; - u8 unk62E; - u8 unk62F; - s16 unk630; - s16 unk632; - u16 unk634; - u16 unk636; - u16 unk638; - u16 unk63A[4]; - u8 filler642[8]; - u8 unk64A; - u8 unk64B; - u8 unk64C_1:1; - u8 selectedScreen; - u8 unk64E; - u8 unk64F; - u8 menuIsOpen; //menuIsOpen - u8 unk651; - u16 menuCursorPos; //Menu cursor position - s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) - u8 unk656[8]; - u8 unk65E[8]; -}; - void ResetPokedex(void); void sub_808C0A0(void); -void sub_808C0B8(void); -void ClearPokedexView(struct PokedexView *pokedexView); void CB2_InitPokedex(void); -u8 unref_sub_808C540(void (*func)(u8)); -void MainCB(void); -void Task_PokedexShowMainScreen(u8 taskId); -void Task_PokedexMainScreen(u8 taskId); -void sub_808C898(u8 taskId); -void Task_PokedexMainScreenMenu(u8 taskId); -void sub_808CA64(u8 taskId); -void sub_808CAE4(u8 taskId); -void sub_808CB8C(u8 taskId); -void Task_ClosePokedex(u8 taskId); -void sub_808CCC4(u8 taskId); -void Task_PokedexResultsScreen(u8 taskId); -void sub_808CEF8(u8 taskId); -void Task_PokedexResultsScreenMenu(u8 taskId); -void sub_808D118(u8 taskId); -void sub_808D198(u8 taskId); -void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); -void Task_PokedexResultsScreenExitPokedex(u8 taskId); -bool8 sub_808D344(u8 a); -void sub_808D640(void); -void SortPokedex(u8 dexMode, u8 sortMode); -void sub_808DBE8(u8 a, u16 b, u16 c); -void sub_808DEB0(u16 a, u8 b, u8 c, u16 d); -void sub_808DF88(u16 a, u8 b, u8 c, u16 d); -u8 sub_808DFE4(u16 a, u8 b, u8 c); -void sub_808E090(u8 a, u8 b, u16 c); -void sub_808E0CC(u16 a, u16 b); -bool8 sub_808E208(u8 a, u8 b, u8 c); -void sub_808E398(u8 a, u16 b); -u16 sub_808E48C(u16 a, u16 b); -void sub_808E6BC(void); -u8 sub_808E71C(void); -u8 sub_808E82C(void); -u16 sub_808E888(u16 a1); -u32 sub_808E8C8(u16 a, u16 b, u16 c); -void sub_808E978(u8 a); -void nullsub_58(struct Sprite *sprite); -void sub_808ED94(struct Sprite *sprite); -void sub_808EDB8(struct Sprite *sprite); -void sub_808EE28(struct Sprite *sprite); -void sub_808EF38(struct Sprite *sprite); -void sub_808EF8C(struct Sprite *sprite); -void sub_808F08C(struct Sprite *sprite); -void sub_808F0B4(struct Sprite *sprite); -void sub_808F168(struct Sprite *sprite); -u8 sub_808F210(struct PokedexListItem *item, u8 b); -bool8 sub_808F250(u8 taskId); -u8 sub_808F284(struct PokedexListItem *item, u8 b); -void Task_InitPageScreenMultistep(u8 taskId); -void Task_PageScreenProcessInput(u8 taskId); -void sub_808F888(u8 taskId); -void Task_ClosePageScreen(u8 taskId); -void Task_InitAreaScreenMultistep(u8 taskId); -void Task_AreaScreenProcessInput(u8 taskId); -void sub_808FA00(u8 taskId); -void Task_InitCryScreenMultistep(u8 taskId); -void Task_CryScreenProcessInput(u8 taskId); -void sub_808FFBC(u8 taskId); -void sub_8090040(u8 a); -void Task_InitSizeScreenMultistep(u8 taskId); -void Task_SizeScreenProcessInput(u8 taskId); -void sub_8090498(u8 taskId); -void sub_80904FC(u16 a); -void sub_8090540(u16 a); -void sub_8090584(u8 a, u16 b); -void sub_8090644(u8 a, u16 b); u8 sub_809070C(u16 dexNum, u32 b, u32 c); - -// ASM -void sub_8090750(u8); -void sub_8090A3C(u8); - -void sub_8090C68(void); -u8 *GetPokemonCategory(u16); - +const u8 *GetPokemonCategory(u16); +u16 GetPokedexHeightWeight(u16 dexNum, u8 data); s8 GetNationalPokedexFlag(u16, u8); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); bool8 sub_8090FC0(void); u16 sub_8090FF4(void); -void sub_8091060(u16); -void sub_8091154(u16 order, int i, int i1); -void sub_80911C8(u16 num, int i, int i1); -void sub_8091260(u16 num, int i, int i1, int i2); -void sub_8091304(u8 name[12], int i, int i1); - -void sub_8091458(u16 height, int i, int i1); -void sub_8091564(u16 weight, int i, int i1); -void sub_8091738(u16, u16, u16); -void sub_80917CC(int i, int i1); -u16 sub_8091818(u8, u16, u16, u16); - -u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type -u8 sub_8091A4C(u8 gender, int i, int i1, int i2); #endif // GUARD_POKEDEX_H diff --git a/include/pokemon.h b/include/pokemon.h index 15a028d6e..a9c780dbb 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -357,7 +357,8 @@ struct BaseStats /* 0x16 */ u8 ability1; /* 0x17 */ u8 ability2; /* 0x18 */ u8 safariZoneFleeRate; - /* 0x19 */ u8 bodyColor; + /* 0x19 */ u8 bodyColor:7; + u8 unk19_7:1; }; struct BattleMove diff --git a/include/songs.h b/include/songs.h index 51948fba8..72d28a355 100644 --- a/include/songs.h +++ b/include/songs.h @@ -20,22 +20,22 @@ enum /*0x0E*/ SE_KOUKA_H, /*0x0F*/ SE_BOWA2, /*0x10*/ SE_POKE_DEAD, - SE_NIGERU, - SE_JIDO_DOA, - SE_NAMINORI, - SE_BAN, - SE_PIN, - SE_BOO, - SE_BOWA, - SE_JYUNI, - SE_A, - SE_I, - SE_U, - SE_E, - SE_O, - SE_N, - SE_SEIKAI, - SE_HAZURE, + /*0x11*/ SE_NIGERU, + /*0x12*/ SE_JIDO_DOA, + /*0x13*/ SE_NAMINORI, + /*0x14*/ SE_BAN, + /*0x15*/ SE_PIN, + /*0x16*/ SE_BOO, + /*0x17*/ SE_BOWA, + /*0x18*/ SE_JYUNI, + /*0x19*/ SE_A, + /*0x1A*/ SE_I, + /*0x1B*/ SE_U, + /*0x1C*/ SE_E, + /*0x1D*/ SE_O, + /*0x1E*/ SE_N, + /*0x1F*/ SE_SEIKAI, + /*0x20*/ SE_HAZURE, SE_EXP, SE_JITE_PYOKO, SE_MU_PACHI, @@ -112,11 +112,11 @@ enum SE_JIHANKI, SE_TAMA, SE_Z_SCROLL, - SE_Z_PAGE, - SE_PN_ON, - SE_PN_OFF, - SE_Z_SEARCH, - SE_TAMAGO, + /*0x6D*/ SE_Z_PAGE, + /*0x6E*/ SE_PN_ON, + /*0x6F*/ SE_PN_OFF, + /*0x70*/ SE_Z_SEARCH, + /*0x71*/ SE_TAMAGO, /*0x72*/ SE_TB_START, /*0x73*/ SE_TB_KON, /*0x74*/ SE_TB_KARA, diff --git a/include/text.h b/include/text.h index ba4ccb4b2..6e32de6dd 100644 --- a/include/text.h +++ b/include/text.h @@ -2,6 +2,7 @@ #define GUARD_TEXT_H #define CHAR_SPACE 0x00 +#define CHAR_0 0xA1 #define CHAR_QUESTION_MARK 0xAC #define CHAR_PERIOD 0xAD #define CHAR_HYPHEN 0xAE @@ -10,6 +11,58 @@ #define CHAR_COMMA 0xB8 #define CHAR_CURRENCY 0xB7 #define CHAR_SLASH 0xBA +#define CHAR_A 0xBB +#define CHAR_B 0xBC +#define CHAR_C 0xBD +#define CHAR_D 0xBE +#define CHAR_E 0xBF +#define CHAR_F 0xC0 +#define CHAR_G 0xC1 +#define CHAR_H 0xC2 +#define CHAR_I 0xC3 +#define CHAR_J 0xC4 +#define CHAR_K 0xC5 +#define CHAR_L 0xC6 +#define CHAR_M 0xC7 +#define CHAR_N 0xC8 +#define CHAR_O 0xC9 +#define CHAR_P 0xCA +#define CHAR_Q 0xCB +#define CHAR_R 0xCC +#define CHAR_S 0xCD +#define CHAR_T 0xCE +#define CHAR_U 0xCF +#define CHAR_V 0xD0 +#define CHAR_W 0xD1 +#define CHAR_X 0xD2 +#define CHAR_Y 0xD3 +#define CHAR_Z 0xD4 +#define CHAR_a 0xD5 +#define CHAR_b 0xD6 +#define CHAR_c 0xD7 +#define CHAR_d 0xD8 +#define CHAR_e 0xD9 +#define CHAR_f 0xDA +#define CHAR_g 0xDB +#define CHAR_h 0xDC +#define CHAR_i 0xDD +#define CHAR_j 0xDE +#define CHAR_k 0xDF +#define CHAR_l 0xE0 +#define CHAR_m 0xE1 +#define CHAR_n 0xE2 +#define CHAR_o 0xE3 +#define CHAR_p 0xE4 +#define CHAR_q 0xE5 +#define CHAR_r 0xE6 +#define CHAR_s 0xE7 +#define CHAR_t 0xE8 +#define CHAR_u 0xE9 +#define CHAR_v 0xEA +#define CHAR_w 0xEB +#define CHAR_x 0xEC +#define CHAR_y 0xED +#define CHAR_z 0xEE #define CHAR_COLON 0xF0 #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define PLACEHOLDER_BEGIN 0xFD // string placeholder diff --git a/ld_script.txt b/ld_script.txt index a8121a936..b20e05223 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -138,7 +138,6 @@ SECTIONS { asm/pokemon_menu.o(.text); src/option_menu.o(.text); src/pokedex.o(.text); - asm/pokedex.o(.text); src/trainer_card.o(.text); src/save_menu_util.o(.text); src/battle_party_menu.o(.text); @@ -388,7 +387,7 @@ SECTIONS { src/field_effect.o(.rodata); data/pokemon_menu.o(.rodata); data/option_menu.o(.rodata); - data/pokedex.o(.rodata); + src/pokedex.o(.rodata); data/trainer_card.o(.rodata); src/battle_party_menu.o(.rodata); data/pokemon_storage_system.o(.rodata); diff --git a/src/data/pokedex_entries_en.h b/src/data/pokedex_entries_en.h new file mode 100644 index 000000000..86da3d67b --- /dev/null +++ b/src/data/pokedex_entries_en.h @@ -0,0 +1,9651 @@ +static const u8 DexDescription_Dummy_1[] = _( + "This is a newly discovered POKéMON.\n" + "It is currently under investigation."); +static const u8 DexDescription_Dummy_2[] = _( + "No detailed information is available\n" + "at this time."); + +static const u8 DexDescription_Bulbasaur_1[] = _( + "BULBASAUR can be seen napping in\n" + "bright sunlight.\n" + "There is a seed on its back."); +static const u8 DexDescription_Bulbasaur_2[] = _( + "By soaking up the sun’s rays, the seed\n" + "grows progressively larger."); + +static const u8 DexDescription_Ivysaur_1[] = _( + "There is a bud on this POKéMON’s back.\n" + "To support its weight, IVYSAUR’s legs\n" + "and trunk grow thick and strong."); +static const u8 DexDescription_Ivysaur_2[] = _( + "If it starts spending more time lying\n" + "in the sunlight, it’s a sign that the\n" + "bud will bloom into a large flower soon."); + +static const u8 DexDescription_Venusaur_1[] = _( + "There is a large flower on VENUSAUR’s\n" + "back. The flower is said to take on vivid\n" + "colors if it gets plenty of nutrition"); +static const u8 DexDescription_Venusaur_2[] = _( + "and sunlight. The flower’s aroma\n" + "soothes the emotions of people."); + +static const u8 DexDescription_Charmander_1[] = _( + "The flame that burns at the tip of its\n" + "tail is an indication of its emotions.\n" + "The flame wavers when CHARMANDER is"); +static const u8 DexDescription_Charmander_2[] = _( + "enjoying itself. If the POKéMON becomes\n" + "enraged, the flame burns fiercely."); + +static const u8 DexDescription_Charmeleon_1[] = _( + "CHARMELEON mercilessly destroys its\n" + "foes using its sharp claws.\n" + "If it encounters a strong foe, it turns"); +static const u8 DexDescription_Charmeleon_2[] = _( + "aggressive. In this excited state, the\n" + "flame at the tip of its tail flares with a\n" + "bluish white color."); + +static const u8 DexDescription_Charizard_1[] = _( + "CHARIZARD flies around the sky in\n" + "search of powerful opponents.\n" + "It breathes fire of such great heat"); +static const u8 DexDescription_Charizard_2[] = _( + "that it melts anything. However, it\n" + "never turns its fiery breath on any\n" + "opponent weaker than itself."); + +static const u8 DexDescription_Squirtle_1[] = _( + "SQUIRTLE’s shell is not merely used\n" + "for protection.\n" + "The shell’s rounded shape and the"); +static const u8 DexDescription_Squirtle_2[] = _( + "grooves on its surface help minimize\n" + "resistance in water, enabling this\n" + "POKéMON to swim at high speeds."); + +static const u8 DexDescription_Wartortle_1[] = _( + "Its tail is large and covered with a rich,\n" + "thick fur. The tail becomes increasingly\n" + "deeper in color as WARTORTLE ages."); +static const u8 DexDescription_Wartortle_2[] = _( + "The scratches on its shell are evidence\n" + "of this POKéMON’s toughness as a\n" + "battler."); + +static const u8 DexDescription_Blastoise_1[] = _( + "BLASTOISE has water spouts that\n" + "protrude from its shell. The water\n" + "spouts are very accurate."); +static const u8 DexDescription_Blastoise_2[] = _( + "They can shoot bullets of water with\n" + "enough accuracy to strike empty cans\n" + "from a distance of over 160 feet."); + +static const u8 DexDescription_Caterpie_1[] = _( + "CATERPIE has a voracious appetite.\n" + "It can devour leaves bigger than its\n" + "body right before your eyes."); +static const u8 DexDescription_Caterpie_2[] = _( + "From its antenna, this POKéMON releases\n" + "a terrifically strong odor."); + +static const u8 DexDescription_Metapod_1[] = _( + "The shell covering this POKéMON’s body\n" + "is as hard as an iron slab.\n" + "METAPOD does not move very much."); +static const u8 DexDescription_Metapod_2[] = _( + "It stays still because it is preparing\n" + "its soft innards for evolution inside\n" + "the hard shell."); + +static const u8 DexDescription_Butterfree_1[] = _( + "BUTTERFREE has a superior ability to\n" + "search for delicious honey from\n" + "flowers."); +static const u8 DexDescription_Butterfree_2[] = _( + "It can even search out, extract, and\n" + "carry honey from flowers that are\n" + "blooming over six miles from its nest."); + +static const u8 DexDescription_Weedle_1[] = _( + "WEEDLE has an extremely acute sense\n" + "of smell.\n" + "It is capable of distinguishing its"); +static const u8 DexDescription_Weedle_2[] = _( + "favorite kinds of leaves from those it\n" + "dislikes just by sniffing with its big\n" + "red proboscis (nose)."); + +static const u8 DexDescription_Kakuna_1[] = _( + "KAKUNA remains virtually immobile as it\n" + "clings to a tree. However, on the\n" + "inside, it is extremely busy as it"); +static const u8 DexDescription_Kakuna_2[] = _( + "prepares for its coming evolution.\n" + "This is evident from how hot the shell\n" + "becomes to the touch."); + +static const u8 DexDescription_Beedrill_1[] = _( + "BEEDRILL is extremely territorial.\n" + "No one should ever approach its nest -\n" + "this is for their own safety."); +static const u8 DexDescription_Beedrill_2[] = _( + "If angered, they will attack in a furious\n" + "swarm."); + +static const u8 DexDescription_Pidgey_1[] = _( + "PIDGEY has an extremely sharp sense\n" + "of direction.\n" + "It is capable of unerringly returning"); +static const u8 DexDescription_Pidgey_2[] = _( + "home to its nest, however far it may be\n" + "removed from its familiar surroundings."); + +static const u8 DexDescription_Pidgeotto_1[] = _( + "PIDGEOTTO claims a large area as its\n" + "own territory. This POKéMON flies\n" + "around, patrolling its living space."); +static const u8 DexDescription_Pidgeotto_2[] = _( + "If its territory is violated, it shows\n" + "no mercy in thoroughly punishing the\n" + "foe with its sharp claws."); + +static const u8 DexDescription_Pidgeot_1[] = _( + "This POKéMON has a dazzling plumage of\n" + "beautifully glossy feathers.\n" + "Many TRAINERS are captivated by the"); +static const u8 DexDescription_Pidgeot_2[] = _( + "striking beauty of the feathers on its\n" + "head, compelling them to choose PIDGEOT\n" + "as their POKéMON."); + +static const u8 DexDescription_Rattata_1[] = _( + "RATTATA is cautious in the extreme.\n" + "Even while it is asleep, it constantly\n" + "listens by moving its ears around."); +static const u8 DexDescription_Rattata_2[] = _( + "It is not picky about where it lives -\n" + "it will make its nest anywhere."); + +static const u8 DexDescription_Raticate_1[] = _( + "RATICATE’s sturdy fangs grow steadily.\n" + "To keep them ground down, it gnaws\n" + "on rocks and logs."); +static const u8 DexDescription_Raticate_2[] = _( + "It may even chew on the walls of\n" + "houses."); + +static const u8 DexDescription_Spearow_1[] = _( + "SPEAROW has a very loud cry that can\n" + "be heard over half a mile away.\n" + "If its high, keening cry is heard"); +static const u8 DexDescription_Spearow_2[] = _( + "echoing all around, it is a sign that\n" + "they are warning each other of danger."); + +static const u8 DexDescription_Fearow_1[] = _( + "FEAROW is recognized by its long neck\n" + "and elongated beak.\n" + "They are conveniently shaped for"); +static const u8 DexDescription_Fearow_2[] = _( + "catching prey in soil or water.\n" + "It deftly moves its long and skinny\n" + "beak to pluck prey."); + +static const u8 DexDescription_Ekans_1[] = _( + "EKANS curls itself up in a spiral while\n" + "it rests.\n" + "Assuming this position allows it to"); +static const u8 DexDescription_Ekans_2[] = _( + "quickly respond to a threat from any\n" + "direction with a glare from its upraised\n" + "head."); + +static const u8 DexDescription_Arbok_1[] = _( + "This POKéMON is terrifically strong in\n" + "order to constrict things with its body.\n" + "It can even flatten steel oil drums."); +static const u8 DexDescription_Arbok_2[] = _( + "Once ARBOK wraps its body around its\n" + "foe, escaping its crunching embrace is\n" + "impossible."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Pikachu_1[] = _( + "This POKéMON has electricity-storing\n" + "pouches on its cheeks. These appear to\n" + "become electrically charged during the"); +static const u8 DexDescription_Pikachu_2[] = _( + "night while PIKACHU sleeps.\n" + "It occasionally discharges electricity\n" + "when it is dozy after waking up."); +#else +static const u8 DexDescription_Pikachu_1[] = _( + "Whenever PIKACHU comes across\n" + "something new, it blasts it with a jolt\n" + "of electricity."); +static const u8 DexDescription_Pikachu_2[] = _( + "If you come across a blackened berry,\n" + "it’s evidence that this POKéMON\n" + "mistook the intensity of its charge."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Raichu_1[] = _( + "This POKéMON exudes a weak electrical\n" + "charge from all over its body that makes\n" + "it take on a slight glow in darkness."); +static const u8 DexDescription_Raichu_2[] = _( + "RAICHU searches for electricity by\n" + "planting its tail in the ground."); +#else +static const u8 DexDescription_Raichu_1[] = _( + "If the electrical sacks become\n" + "excessively charged, RAICHU plants its\n" + "tail in the ground and discharges."); +static const u8 DexDescription_Raichu_2[] = _( + "Scorched patches of ground will be\n" + "found near this POKéMON’s nest."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sandshrew_1[] = _( + "SANDSHREW has a very dry hide that is\n" + "extremely tough. The POKéMON can roll\n" + "into a ball that repels any attack."); +static const u8 DexDescription_Sandshrew_2[] = _( + "At night, it burrows into the desert\n" + "sand to sleep."); +#else +static const u8 DexDescription_Sandshrew_1[] = _( + "SANDSHREW’s body is configured to\n" + "absorb water without waste, enabling it\n" + "to survive in an arid desert."); +static const u8 DexDescription_Sandshrew_2[] = _( + "This POKéMON curls up to protect itself\n" + "from its enemies."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sandslash_1[] = _( + "SANDSLASH can roll up its body as if it\n" + "were a ball covered with large spikes.\n" + "In battle, this POKéMON will try to make"); +static const u8 DexDescription_Sandslash_2[] = _( + "the foe flinch by jabbing it with its\n" + "spines. It then leaps at the stunned\n" + "foe to tear wildly with its sharp claws."); +#else +static const u8 DexDescription_Sandslash_1[] = _( + "SANDSLASH’s body is covered by tough\n" + "spikes, which are hardened sections of\n" + "its hide. Once a year, the old spikes fall"); +static const u8 DexDescription_Sandslash_2[] = _( + "out, to be replaced with new spikes that\n" + "grow out from beneath the old ones."); +#endif + +static const u8 DexDescription_NidoranF_1[] = _( + "NIDORAN has barbs that secrete a\n" + "powerful poison. They are thought to\n" + "have developed as protection for this"); +static const u8 DexDescription_NidoranF_2[] = _( + "small-bodied POKéMON.\n" + "When enraged, it releases a horrible\n" + "toxin from its horn."); + +static const u8 DexDescription_Nidorina_1[] = _( + "When NIDORINA are with their friends or\n" + "family, they keep their barbs tucked\n" + "away to prevent hurting each other."); +static const u8 DexDescription_Nidorina_2[] = _( + "This POKéMON appears to become\n" + "nervous if separated from the others."); + +static const u8 DexDescription_Nidoqueen_1[] = _( + "NIDOQUEEN’s body is encased in\n" + "extremely hard scales. It is adept at\n" + "sending foes flying with harsh tackles."); +static const u8 DexDescription_Nidoqueen_2[] = _( + "This POKéMON is at its strongest when\n" + "it is defending its young."); + +static const u8 DexDescription_NidoranM_1[] = _( + "The male NIDORAN has developed\n" + "muscles for moving its ears. Thanks to\n" + "them, the ears can be freely moved in"); +static const u8 DexDescription_NidoranM_2[] = _( + "any direction. Even the slightest sound\n" + "does not escape this POKéMON’s notice."); + +static const u8 DexDescription_Nidorino_1[] = _( + "NIDORINO has a horn that is harder than\n" + "a diamond. If it senses a hostile\n" + "presence, all the barbs on its back"); +static const u8 DexDescription_Nidorino_2[] = _( + "bristle up at once, and it challenges\n" + "the foe with all its might."); + +static const u8 DexDescription_Nidoking_1[] = _( + "NIDOKING’s thick tail packs enormously\n" + "destructive power. With one swing, it\n" + "can topple a metal transmission tower."); +static const u8 DexDescription_Nidoking_2[] = _( + "Once this POKéMON goes on a rampage,\n" + "there is no stopping it."); + +static const u8 DexDescription_Clefairy_1[] = _( + "On every night of a full moon, groups of\n" + "this POKéMON come out to play.\n" + "When dawn arrives, the tired CLEFAIRY"); +static const u8 DexDescription_Clefairy_2[] = _( + "return to their quiet mountain retreats\n" + "and go to sleep nestled up against each\n" + "other."); + +static const u8 DexDescription_Clefable_1[] = _( + "CLEFABLE moves by skipping lightly as if\n" + "it were flying using its wings. Its\n" + "bouncy step lets it even walk on water."); +static const u8 DexDescription_Clefable_2[] = _( + "It is known to take strolls on lakes on\n" + "quiet, moonlit nights."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Vulpix_1[] = _( + "Inside VULPIX’s body burns a flame that\n" + "never goes out. During the daytime,\n" + "when the temperatures rise, this"); +static const u8 DexDescription_Vulpix_2[] = _( + "POKéMON releases flames from its mouth\n" + "to prevent its body from growing too\n" + "hot."); +#else +static const u8 DexDescription_Vulpix_1[] = _( + "At the time of its birth, VULPIX has one\n" + "white tail. The tail separates into six\n" + "if this POKéMON receives plenty of love"); +static const u8 DexDescription_Vulpix_2[] = _( + "from its TRAINER.\n" + "The six tails become magnificently\n" + "curled."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ninetales_1[] = _( + "Legend has it that NINETALES came into\n" + "being when nine wizards possessing\n" + "sacred powers merged into one."); +static const u8 DexDescription_Ninetales_2[] = _( + "This POKéMON is highly intelligent - it\n" + "can understand human speech."); +#else +static const u8 DexDescription_Ninetales_1[] = _( + "NINETALES casts a sinister light from\n" + "its bright red eyes to gain total\n" + "control over its foe’s mind."); +static const u8 DexDescription_Ninetales_2[] = _( + "This POKéMON is said to live for a\n" + "thousand years."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Jigglypuff_1[] = _( + "When this POKéMON sings, it never\n" + "pauses to breathe. If it is in a battle\n" + "against an opponent that does not"); +static const u8 DexDescription_Jigglypuff_2[] = _( + "easily fall asleep, JIGGLYPUFF cannot\n" + "breathe, endangering its life."); +#else +static const u8 DexDescription_Jigglypuff_1[] = _( + "JIGGLYPUFF’s vocal chords can freely\n" + "adjust the wavelength of its voice.\n" + "This POKéMON uses this ability to sing"); +static const u8 DexDescription_Jigglypuff_2[] = _( + "at precisely the right wavelength to\n" + "make its foes most drowsy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wigglytuff_1[] = _( + "WIGGLYTUFF’s body is very flexible.\n" + "By inhaling deeply, this POKéMON can\n" + "inflate itself seemingly without end."); +static const u8 DexDescription_Wigglytuff_2[] = _( + "Once inflated, WIGGLYTUFF bounces\n" + "along lightly like a balloon."); +#else +static const u8 DexDescription_Wigglytuff_1[] = _( + "WIGGLYTUFF has large, saucerlike eyes.\n" + "The surfaces of its eyes are always\n" + "covered with a thin layer of tears."); +static const u8 DexDescription_Wigglytuff_2[] = _( + "If any dust gets in this POKéMON’s\n" + "eyes, it is quickly washed away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zubat_1[] = _( + "ZUBAT avoids sunlight because exposure\n" + "causes it to become unhealthy.\n" + "During the daytime, it stays in caves or"); +static const u8 DexDescription_Zubat_2[] = _( + "under the eaves of old houses, sleeping\n" + "while hanging upside down."); +#else +static const u8 DexDescription_Zubat_1[] = _( + "ZUBAT remains quietly unmoving in a\n" + "dark spot during the bright daylight\n" + "hours. It does so because prolonged"); +static const u8 DexDescription_Zubat_2[] = _( + "exposure to the sun causes its body to\n" + "become slightly burned."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golbat_1[] = _( + "GOLBAT bites down on prey with its four\n" + "fangs and drinks the victim’s blood.\n" + "It becomes active on inky dark"); +static const u8 DexDescription_Golbat_2[] = _( + "moonless nights, flying around to\n" + "attack people and POKéMON."); +#else +static const u8 DexDescription_Golbat_1[] = _( + "GOLBAT loves to drink the blood of\n" + "living things. It is particularly active\n" + "in the pitch black of night."); +static const u8 DexDescription_Golbat_2[] = _( + "This POKéMON flits around in the night\n" + "skies, seeking fresh blood."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Oddish_1[] = _( + "ODDISH searches for fertile, nutrient-\n" + "rich soil, then plants itself.\n" + "During the daytime, while it is planted,"); +static const u8 DexDescription_Oddish_2[] = _( + "this POKéMON’s feet are thought to\n" + "change shape and become similar to\n" + "the roots of trees."); +#else +static const u8 DexDescription_Oddish_1[] = _( + "During the daytime, ODDISH buries\n" + "itself in soil to absorb nutrients from \n" + "the ground using its entire body."); +static const u8 DexDescription_Oddish_2[] = _( + "The more fertile the soil, the glossier\n" + "its leaves become."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gloom_1[] = _( + "From its mouth GLOOM drips honey that\n" + "smells absolutely horrible.\n" + "Apparently, it loves the horrid stench."); +static const u8 DexDescription_Gloom_2[] = _( + "It sniffs the noxious fumes and then \n" + "drools even more of its honey."); +#else +static const u8 DexDescription_Gloom_1[] = _( + "GLOOM releases a foul fragrance from\n" + "the pistil of its flower. When faced\n" + "with danger, the stench worsens."); +static const u8 DexDescription_Gloom_2[] = _( + "If this POKéMON is feeling calm and\n" + "secure, it does not release its usual\n" + "stinky aroma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vileplume_1[] = _( + "VILEPLUME has the world’s largest\n" + "petals. They are used to attract prey\n" + "that are then doused with toxic spores."); +static const u8 DexDescription_Vileplume_2[] = _( + "Once the prey are immobilized, this\n" + "POKéMON catches and devours them."); +#else +static const u8 DexDescription_Vileplume_1[] = _( + "VILEPLUME’s toxic pollen triggers\n" + "atrocious allergy attacks. That’s why\n" + "it is advisable never to approach any"); +static const u8 DexDescription_Vileplume_2[] = _( + "attractive flowers in a jungle, however\n" + "pretty they may be."); +#endif + +#ifdef SAPPHIRE +#if REVISION >= 1 +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG/GRASS POKéMON host. They are\n" // Identify Paras as BUG/GRASS type rather than just BUG + "highly valued as a medicine for\n" + "extending life."); +#else +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG POKéMON host. They are highly\n" + "valued as a medicine for extending life."); +#endif +#else +#if REVISION >= 1 +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from this"); +static const u8 DexDescription_Paras_2[] = _( + "BUG/GRASS POKéMON host. They are\n" + "highly valued as a medicine for\n" + "extending life."); +#else +static const u8 DexDescription_Paras_1[] = _( + "PARAS has parasitic mushrooms growing\n" + "on its back called tochukaso. They grow\n" + "large by drawing nutrients from the BUG"); +static const u8 DexDescription_Paras_2[] = _( + "POKéMON host. They are highly valued as\n" + "a medicine for extending life."); +#endif +#endif + +static const u8 DexDescription_Parasect_1[] = _( + "PARASECT is known to infest large trees\n" + "en masse and drain nutrients from the\n" + "lower trunk and roots."); +static const u8 DexDescription_Parasect_2[] = _( + "When an infested tree dies, they move\n" + "onto another tree all at once."); + +static const u8 DexDescription_Venonat_1[] = _( + "VENONAT is said to have evolved with\n" + "a coat of thin, stiff hair that covers\n" + "its entire body for protection."); +static const u8 DexDescription_Venonat_2[] = _( + "It possesses large eyes that never fail\n" + "to spot even miniscule prey."); + +static const u8 DexDescription_Venomoth_1[] = _( + "VENOMOTH is nocturnal - it is a POKéMON\n" + "that only becomes active at night.\n" + "Its favorite prey are small insects"); +static const u8 DexDescription_Venomoth_2[] = _( + "that gather around streetlights,\n" + "attracted by the light in the darkness."); + +static const u8 DexDescription_Diglett_1[] = _( + "DIGLETT are raised in most farms.\n" + "The reason is simple - wherever this\n" + "POKéMON burrows, the soil is left"); +static const u8 DexDescription_Diglett_2[] = _( + "perfectly tilled for planting crops.\n" + "This soil is made ideal for growing\n" + "delicious vegetables."); + +static const u8 DexDescription_Dugtrio_1[] = _( + "DUGTRIO are actually triplets that\n" + "emerged from one body. As a result,\n" + "each triplet thinks exactly like the"); +static const u8 DexDescription_Dugtrio_2[] = _( + "other two triplets.\n" + "They work cooperatively to burrow\n" + "endlessly."); + +static const u8 DexDescription_Meowth_1[] = _( + "MEOWTH withdraws its sharp claws into\n" + "its paws to slinkily sneak about without\n" + "making any incriminating footsteps."); +static const u8 DexDescription_Meowth_2[] = _( + "For some reason, this POKéMON loves\n" + "shiny coins that glitter with light."); + +static const u8 DexDescription_Persian_1[] = _( + "PERSIAN has six bold whiskers that give\n" + "it a look of toughness. The whiskers \n" + "sense air movements to determine what"); +static const u8 DexDescription_Persian_2[] = _( + "is in the POKéMON’s surrounding\n" + "vicinity. It becomes docile if grabbed\n" + "by the whiskers."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Psyduck_1[] = _( + "If it uses its mysterious power,\n" + "PSYDUCK can’t remember having done so.\n" + "It apparently can’t form a memory of"); +static const u8 DexDescription_Psyduck_2[] = _( + "such an event because it goes into\n" + "an altered state that is much like\n" + "deep sleep."); +#else +static const u8 DexDescription_Psyduck_1[] = _( + "PSYDUCK uses a mysterious power.\n" + "When it does so, this POKéMON \n" + "generates brain waves that are"); +static const u8 DexDescription_Psyduck_2[] = _( + "supposedly only seen in sleepers.\n" + "This discovery spurred controversy\n" + "among scholars."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golduck_1[] = _( + "GOLDUCK is the fastest swimmer among\n" + "all POKéMON. It swims effortlessly, even\n" + "in a rough, stormy sea."); +static const u8 DexDescription_Golduck_2[] = _( + "It sometimes rescues people from\n" + "wrecked ships floundering in high seas."); +#else +static const u8 DexDescription_Golduck_1[] = _( + "The webbed flippers on its forelegs and\n" + "hind legs and the streamlined body of\n" + "GOLDUCK give it frightening speed."); +static const u8 DexDescription_Golduck_2[] = _( + "This POKéMON is definitely much faster\n" + "than even the most athletic swimmer."); +#endif + +static const u8 DexDescription_Mankey_1[] = _( + "When MANKEY starts shaking and its\n" + "nasal breathing turns rough, it’s a sure\n" + "sign that it is becoming angry."); +static const u8 DexDescription_Mankey_2[] = _( + "However, because it goes into a\n" + "towering rage almost instantly, it is\n" + "impossible for anyone to flee its wrath."); + +static const u8 DexDescription_Primeape_1[] = _( + "When PRIMEAPE becomes furious, its\n" + "blood circulation is boosted. In turn,\n" + "its muscles are made even stronger."); +static const u8 DexDescription_Primeape_2[] = _( + "However, it also becomes much less\n" + "intelligent at the same time."); + +static const u8 DexDescription_Growlithe_1[] = _( + "GROWLITHE has a superb sense of smell.\n" + "Once it smells anything, this POKéMON\n" + "won’t forget the scent, no matter what."); +static const u8 DexDescription_Growlithe_2[] = _( + "It uses its advanced olfactory sense\n" + "to determine the emotions of other\n" + "living things."); + +static const u8 DexDescription_Arcanine_1[] = _( + "ARCANINE is known for its high speed.\n" + "It is said to be capable of running over\n" + "6,200 miles in a single day and night."); +static const u8 DexDescription_Arcanine_2[] = _( + "The fire that blazes wildly within this\n" + "POKéMON’s body is its source of power."); + +static const u8 DexDescription_Poliwag_1[] = _( + "POLIWAG has a very thin skin. It is\n" + "possible to see the POKéMON’s spiral\n" + "innards right through the skin."); +static const u8 DexDescription_Poliwag_2[] = _( + "Despite its thinness, however, the skin\n" + "is also very flexible. Even sharp fangs\n" + "bounce right off it."); + +static const u8 DexDescription_Poliwhirl_1[] = _( + "The surface of POLIWHIRL’s body is\n" + "always wet and slick with an oily fluid.\n" + "Because of this greasy covering, it can"); +static const u8 DexDescription_Poliwhirl_2[] = _( + "easily slip and slide out of the clutches\n" + "of any enemy in battle."); + +static const u8 DexDescription_Poliwrath_1[] = _( + "POLIWRATH’s highly developed, brawny\n" + "muscles never grow fatigued, however\n" + "much it exercises."); +static const u8 DexDescription_Poliwrath_2[] = _( + "It is so tirelessly strong, this POKéMON\n" + "can swim back and forth across the\n" + "Pacific Ocean without effort."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Abra_1[] = _( + "ABRA needs to sleep for eighteen hours\n" + "a day. If it doesn’t, this POKéMON loses\n" + "its ability to use telekinetic powers."); +static const u8 DexDescription_Abra_2[] = _( + "If it is attacked, ABRA escapes using\n" + "TELEPORT while it is still sleeping."); +#else +static const u8 DexDescription_Abra_1[] = _( + "ABRA sleeps for eighteen hours a day.\n" + "However, it can sense the presence of\n" + "foes even while it is sleeping."); +static const u8 DexDescription_Abra_2[] = _( + "In such a situation, this POKéMON\n" + "immediately teleports to safety."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kadabra_1[] = _( + "KADABRA holds a silver spoon in its\n" + "hand. The spoon is used to amplify the\n" + "alpha waves in its brain."); +static const u8 DexDescription_Kadabra_2[] = _( + "Without the spoon, the POKéMON is said\n" + "to be limited to half the usual amount\n" + "of its telekinetic powers."); +#else +static const u8 DexDescription_Kadabra_1[] = _( + "KADABRA emits a peculiar alpha wave\n" + "if it develops a headache. Only those\n" + "people with a particularly strong"); +static const u8 DexDescription_Kadabra_2[] = _( + "psyche can hope to become a TRAINER\n" + "of this POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Alakazam_1[] = _( + "ALAKAZAM’s brain continually grows,\n" + "infinitely multiplying brain cells.\n" + "This amazing brain gives this POKéMON"); +static const u8 DexDescription_Alakazam_2[] = _( + "an astoundingly high IQ of 5,000.\n" + "It has a thorough memory of everything\n" + "that has occurred in the world."); +#else +static const u8 DexDescription_Alakazam_1[] = _( + "ALAKAZAM’s brain continually grows,\n" + "making its head far too heavy to\n" + "support with its neck."); +static const u8 DexDescription_Alakazam_2[] = _( + "This POKéMON holds its head up using\n" + "its psychokinetic power instead."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machop_1[] = _( + "MACHOP exercises by hefting around\n" + "a GRAVELER as if it were a barbell.\n" + "There are some MACHOP that travel"); +static const u8 DexDescription_Machop_2[] = _( + "the world in a quest to master all\n" + "kinds of martial arts."); +#else +static const u8 DexDescription_Machop_1[] = _( + "MACHOP’s muscles are special - they\n" + "never get sore no matter how much they\n" + "are used in exercise."); +static const u8 DexDescription_Machop_2[] = _( + "This POKéMON has sufficient power to\n" + "hurl a hundred adult humans."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machoke_1[] = _( + "MACHOKE undertakes bodybuilding every\n" + "day even as it helps people with tough,\n" + "physically demanding labor."); +static const u8 DexDescription_Machoke_2[] = _( + "On its days off, this POKéMON heads to\n" + "the fields and mountains to exercise\n" + "and train."); +#else +static const u8 DexDescription_Machoke_1[] = _( + "MACHOKE’s thoroughly toned muscles\n" + "possess the hardness of steel.\n" + "This POKéMON has so much strength,"); +static const u8 DexDescription_Machoke_2[] = _( + "it can easily hold aloft a sumo wrestler\n" + "on just one finger."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Machamp_1[] = _( + "MACHAMP is known as the POKéMON that\n" + "has mastered every kind of martial arts.\n" + "If it grabs hold of the foe with its four"); +static const u8 DexDescription_Machamp_2[] = _( + "arms, the battle is all but over.\n" + "The hapless foe is thrown far over the\n" + "horizon."); +#else +static const u8 DexDescription_Machamp_1[] = _( + "MACHAMP has the power to hurl anything\n" + "aside. However, trying to do any work\n" + "requiring care and dexterity causes"); +static const u8 DexDescription_Machamp_2[] = _( + "its arms to get tangled.\n" + "This POKéMON tends to leap into action\n" + "before it thinks."); +#endif + +static const u8 DexDescription_Bellsprout_1[] = _( + "BELLSPROUT’s thin and flexible body\n" + "lets it bend and sway to avoid any\n" + "attack, however strong it may be."); +static const u8 DexDescription_Bellsprout_2[] = _( + "From its mouth, this POKéMON spits a\n" + "corrosive fluid that melts even iron."); + +static const u8 DexDescription_Weepinbell_1[] = _( + "WEEPINBELL has a large hook on its rear\n" + "end. At night, the POKéMON hooks on to\n" + "a tree branch and goes to sleep."); +static const u8 DexDescription_Weepinbell_2[] = _( + "If it moves around in its sleep, it may\n" + "wake up to find itself on the ground."); + +static const u8 DexDescription_Victreebel_1[] = _( + "VICTREEBEL has a long vine that\n" + "extends from its head. This vine is\n" + "waved and flicked about as if it were"); +static const u8 DexDescription_Victreebel_2[] = _( + "an animal to attract prey. When an\n" + "unsuspecting prey draws near, this\n" + "POKéMON swallows it whole."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Tentacool_1[] = _( + "TENTACOOL absorbs sunlight and\n" + "refracts it using water inside its body\n" + "to convert it into beam energy."); +static const u8 DexDescription_Tentacool_2[] = _( + "This POKéMON shoots beams from its\n" + "crystal-like eyes."); +#else +static const u8 DexDescription_Tentacool_1[] = _( + "TENTACOOL’s body is largely composed\n" + "of water. If it is removed from the\n" + "sea, it dries up like parchment."); +static const u8 DexDescription_Tentacool_2[] = _( + "If this POKéMON happens to become\n" + "dehydrated, put it back into the sea."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Tentacruel_1[] = _( + "TENTACRUEL has tentacles that can be\n" + "freely elongated and shortened at will.\n" + "It ensnares prey with its tentacles and"); +static const u8 DexDescription_Tentacruel_2[] = _( + "weakens the prey by dosing it with a\n" + "harsh toxin. It can catch up to 80\n" + "prey at the same time."); +#else +static const u8 DexDescription_Tentacruel_1[] = _( + "TENTACRUEL has large red orbs on its\n" + "head. The orbs glow before lashing the\n" + "vicinity with a harsh ultrasonic blast."); +static const u8 DexDescription_Tentacruel_2[] = _( + "This POKéMON’s outburst creates rough\n" + "waves around it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Geodude_1[] = _( + "When GEODUDE sleeps deeply, it buries\n" + "itself halfway into the ground.\n" + "It will not awaken even if hikers step"); +static const u8 DexDescription_Geodude_2[] = _( + "on it unwittingly.\n" + "In the morning, this POKéMON rolls\n" + "downhill in search of food."); +#else +static const u8 DexDescription_Geodude_1[] = _( + "The longer a GEODUDE lives, the more\n" + "its edges are chipped and worn away,\n" + "making it more rounded in appearance."); +static const u8 DexDescription_Geodude_2[] = _( + "However, this POKéMON’s heart will\n" + "remain hard, craggy, and rough always."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Graveler_1[] = _( + "Rocks are GRAVELER’s favorite food.\n" + "This POKéMON will climb a mountain from\n" + "the base to the summit, crunchingly"); +static const u8 DexDescription_Graveler_2[] = _( + "feasting on rocks all the while.\n" + "Upon reaching the peak, it rolls back\n" + "down to the bottom."); +#else +static const u8 DexDescription_Graveler_1[] = _( + "GRAVELER grows by feeding on rocks.\n" + "Apparently, it prefers to eat rocks\n" + "that are covered in moss."); +static const u8 DexDescription_Graveler_2[] = _( + "This POKéMON eats its way through\n" + "a ton of rocks on a daily basis."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Golem_1[] = _( + "GOLEM is known for rolling down from\n" + "mountains. To prevent them from rolling\n" + "into the homes of people downhill,"); +static const u8 DexDescription_Golem_2[] = _( + "grooves have been dug into the sides of\n" + "mountains to serve as guideways for\n" + "diverting this POKéMON’s course."); +#else +static const u8 DexDescription_Golem_1[] = _( + "GOLEM live up on mountains.\n" + "If there is a large earthquake, these\n" + "POKéMON will come rolling down off"); +static const u8 DexDescription_Golem_2[] = _( + "the mountains en masse to the\n" + "foothills below."); +#endif + +static const u8 DexDescription_Ponyta_1[] = _( + "PONYTA is very weak at birth.\n" + "It can barely stand up.\n" + "This POKéMON becomes stronger by"); +static const u8 DexDescription_Ponyta_2[] = _( + "stumbling and falling to keep up with\n" + "its parent."); + +static const u8 DexDescription_Rapidash_1[] = _( + "RAPIDASH usually can be seen casually\n" + "cantering in the fields and plains.\n" + "However, when this POKéMON turns"); +static const u8 DexDescription_Rapidash_2[] = _( + "serious, its fiery manes flare and blaze\n" + "as it gallops its way up to 150 mph."); + +static const u8 DexDescription_Slowpoke_1[] = _( + "SLOWPOKE uses its tail to catch prey by\n" + "dipping it in water at the side of a\n" + "river."); +static const u8 DexDescription_Slowpoke_2[] = _( + "However, this POKéMON often forgets\n" + "what it’s doing and often spends entire\n" + "days just loafing at water’s edge."); + +static const u8 DexDescription_Slowbro_1[] = _( + "SLOWBRO’s tail has a SHELLDER firmly\n" + "attached with a bite. As a result, the\n" + "tail can’t be used for fishing anymore."); +static const u8 DexDescription_Slowbro_2[] = _( + "This causes SLOWBRO to grudgingly swim\n" + "and catch prey instead."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Magnemite_1[] = _( + "MAGNEMITE floats in the air by emitting\n" + "electromagnetic waves from the units\n" + "at its sides. These waves block gravity."); +static const u8 DexDescription_Magnemite_2[] = _( + "This POKéMON becomes incapable of\n" + "flight if its internal electrical supply\n" + "is depleted."); +#else +static const u8 DexDescription_Magnemite_1[] = _( + "MAGNEMITE attaches itself to power\n" + "lines to feed on electricity.\n" + "If your house has a power outage,"); +static const u8 DexDescription_Magnemite_2[] = _( + "check your circuit breakers. You may\n" + "find a large number of this POKéMON\n" + "clinging to the breaker box."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Magneton_1[] = _( + "MAGNETON emits a powerful magnetic\n" + "force that is fatal to electronics and\n" + "precision instruments. Because of"); +static const u8 DexDescription_Magneton_2[] = _( + "this, it is said that some towns warn\n" + "people to keep this POKéMON inside\n" + "a POKé BALL."); +#else +static const u8 DexDescription_Magneton_1[] = _( + "MAGNETON emits a powerful magnetic\n" + "force that is fatal to mechanical\n" + "devices. As a result, large cities sound"); +static const u8 DexDescription_Magneton_2[] = _( + "sirens to warn citizens of large-scale\n" + "outbreaks of this POKéMON."); +#endif + +static const u8 DexDescription_Farfetchd_1[] = _( + "FARFETCH’D is always seen with a stick\n" + "from a plant of some sort. Apparently,\n" + "there are good sticks and bad sticks."); +static const u8 DexDescription_Farfetchd_2[] = _( + "This POKéMON has been known to fight\n" + "with others over sticks."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Doduo_1[] = _( + "DODUO’s two heads contain completely\n" + "identical brains.\n" + "A scientific study reported that on"); +static const u8 DexDescription_Doduo_2[] = _( + "rare occasions, there will be examples\n" + "of this POKéMON possessing different\n" + "sets of brains."); +#else +static const u8 DexDescription_Doduo_1[] = _( + "DODUO’s two heads never sleep at the\n" + "same time.\n" + "Its two heads take turns sleeping,"); +static const u8 DexDescription_Doduo_2[] = _( + "so one head can always keep watch for\n" + "enemies while the other one sleeps."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dodrio_1[] = _( + "Apparently, the heads aren’t the only\n" + "parts of the body that DODRIO has\n" + "three of."); +static const u8 DexDescription_Dodrio_2[] = _( + "It has three sets of hearts and lungs\n" + "as well, so it is capable of running long\n" + "distances without rest."); +#else +static const u8 DexDescription_Dodrio_1[] = _( + "Watch out if DODRIO’s three heads are\n" + "looking in three separate directions.\n" + "It’s a sure sign that it is on its guard."); +static const u8 DexDescription_Dodrio_2[] = _( + "Don’t go near this POKéMON if it’s being\n" + "wary - it may decide to peck you."); +#endif + +static const u8 DexDescription_Seel_1[] = _( + "SEEL hunts for prey in the frigid sea\n" + "underneath sheets of ice.\n" + "When it needs to breathe, it punches"); +static const u8 DexDescription_Seel_2[] = _( + "a hole through the ice with the\n" + "sharply protruding section of its head."); + +static const u8 DexDescription_Dewgong_1[] = _( + "DEWGONG loves to snooze on bitterly\n" + "cold ice.\n" + "The sight of this POKéMON sleeping on"); +static const u8 DexDescription_Dewgong_2[] = _( + "a glacier was mistakenly thought to be\n" + "a mermaid by a mariner long ago."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Grimer_1[] = _( + "GRIMER emerged from the sludge that\n" + "settled on a polluted seabed.\n" + "This POKéMON loves anything filthy."); +static const u8 DexDescription_Grimer_2[] = _( + "It constantly leaks a horribly germ-\n" + "infested fluid from all over its body."); +#else +static const u8 DexDescription_Grimer_1[] = _( + "GRIMER’s sludgy and rubbery body can\n" + "be forced through any opening, however\n" + "small it may be."); +static const u8 DexDescription_Grimer_2[] = _( + "This POKéMON enters sewer pipes to\n" + "drink filthy wastewater."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Muk_1[] = _( + "This POKéMON’s favorite food is\n" + "anything that is repugnantly filthy.\n" + "In dirty towns where people think"); +static const u8 DexDescription_Muk_2[] = _( + "nothing of throwing away litter on the\n" + "streets, MUK are certain to gather."); +#else +static const u8 DexDescription_Muk_1[] = _( + "From MUK’s body seeps a foul fluid that\n" + "gives off a nose-bendingly horrible\n" + "stench."); +static const u8 DexDescription_Muk_2[] = _( + "Just one drop of this POKéMON’s body\n" + "fluid can turn a pool stagnant and\n" + "rancid."); +#endif + +static const u8 DexDescription_Shellder_1[] = _( + "At night, this POKéMON uses its broad\n" + "tongue to burrow a hole in the seafloor\n" + "sand and then sleep in it."); +static const u8 DexDescription_Shellder_2[] = _( + "While it is sleeping, SHELLDER closes its\n" + "shell, but leaves its tongue hanging\n" + "out."); + +static const u8 DexDescription_Cloyster_1[] = _( + "CLOYSTER is capable of swimming in the\n" + "sea. It does so by swallowing water,\n" + "then jetting it out toward the rear."); +static const u8 DexDescription_Cloyster_2[] = _( + "This POKéMON shoots spikes from its\n" + "shell using the same system."); + +static const u8 DexDescription_Gastly_1[] = _( + "GASTLY is largely composed of gaseous\n" + "matter. When exposed to a strong wind,\n" + "the gaseous body quickly dwindles away."); +static const u8 DexDescription_Gastly_2[] = _( + "Groups of this POKéMON cluster under\n" + "the eaves of houses to escape the\n" + "ravages of wind."); + +static const u8 DexDescription_Haunter_1[] = _( + "HAUNTER is a dangerous POKéMON.\n" + "If one beckons you while floating in\n" + "darkness, you must never approach it."); +static const u8 DexDescription_Haunter_2[] = _( + "This POKéMON will try to lick you with its\n" + "tongue and steal your life away."); + +static const u8 DexDescription_Gengar_1[] = _( + "Sometimes, on a dark night, your shadow\n" + "thrown by a streetlight will suddenly\n" + "and startlingly overtake you."); +static const u8 DexDescription_Gengar_2[] = _( + "It is actually a GENGAR running past\n" + "you, pretending to be your shadow."); + +static const u8 DexDescription_Onix_1[] = _( + "ONIX has a magnet in its brain. It acts\n" + "as a compass so that this POKéMON does\n" + "not lose direction while it is tunneling."); +static const u8 DexDescription_Onix_2[] = _( + "As it grows older, its body becomes\n" + "increasingly rounder and smoother."); + +static const u8 DexDescription_Drowzee_1[] = _( + "If your nose becomes itchy while you\n" + "are sleeping, it’s a sure sign that one\n" + "of these POKéMON is standing above"); +static const u8 DexDescription_Drowzee_2[] = _( + "your pillow and trying to eat your dream\n" + "through your nostrils."); + +static const u8 DexDescription_Hypno_1[] = _( + "HYPNO holds a pendulum in its hand.\n" + "The arcing movement and glitter of the\n" + "pendulum lull the foe into a deep state"); +static const u8 DexDescription_Hypno_2[] = _( + "of hypnosis.\n" + "While this POKéMON searches for prey,\n" + "it polishes the pendulum."); + +static const u8 DexDescription_Krabby_1[] = _( + "KRABBY live on beaches, burrowed inside\n" + "holes dug into the sand.\n" + "On sandy beaches with little in the way"); +static const u8 DexDescription_Krabby_2[] = _( + "of food, these POKéMON can be seen\n" + "squabbling with each other over\n" + "territory."); + +static const u8 DexDescription_Kingler_1[] = _( + "KINGLER has an enormous, oversized\n" + "claw. It waves this huge claw in the\n" + "air to communicate with others."); +static const u8 DexDescription_Kingler_2[] = _( + "However, because the claw is so heavy,\n" + "the POKéMON quickly tires."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Voltorb_1[] = _( + "VOLTORB is extremely sensitive - it\n" + "explodes at the slightest of shocks.\n" + "It is rumored that it was first created"); +static const u8 DexDescription_Voltorb_2[] = _( + "when a POKé BALL was exposed to a\n" + "powerful pulse of energy."); +#else +static const u8 DexDescription_Voltorb_1[] = _( + "VOLTORB was first sighted at a company\n" + "that manufactures POKé BALLS.\n" + "The link between that sighting and"); +static const u8 DexDescription_Voltorb_2[] = _( + "the fact that this POKéMON looks very\n" + "similar to a POKé BALL remains a\n" + "mystery."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Electrode_1[] = _( + "One of ELECTRODE’s characteristics is\n" + "its attraction to electricity.\n" + "It is a problematical POKéMON that"); +static const u8 DexDescription_Electrode_2[] = _( + "congregates mostly at electrical\n" + "power plants to feed on electricity\n" + "that has just been generated."); +#else +static const u8 DexDescription_Electrode_1[] = _( + "ELECTRODE eats electricity in the\n" + "atmosphere. On days when lightning\n" + "strikes, you can see this POKéMON"); +static const u8 DexDescription_Electrode_2[] = _( + "exploding all over the place from\n" + "eating too much electricity."); +#endif + +static const u8 DexDescription_Exeggcute_1[] = _( + "This POKéMON consists of six eggs that\n" + "form a closely knit cluster. The six eggs\n" + "attract each other and spin around."); +static const u8 DexDescription_Exeggcute_2[] = _( + "When cracks increasingly appear on the\n" + "eggs, EXEGGCUTE is close to evolution."); + +static const u8 DexDescription_Exeggutor_1[] = _( + "EXEGGUTOR originally came from the\n" + "tropics. Its heads steadily grow larger\n" + "from exposure to strong sunlight."); +static const u8 DexDescription_Exeggutor_2[] = _( + "It is said that when the heads fall off,\n" + "they group together to form EXEGGCUTE."); + +static const u8 DexDescription_Cubone_1[] = _( + "CUBONE pines for the mother it will\n" + "never see again. Seeing a likeness of\n" + "its mother in the full moon, it cries."); +static const u8 DexDescription_Cubone_2[] = _( + "The stains on the skull the POKéMON\n" + "wears are made by the tears it sheds."); + +static const u8 DexDescription_Marowak_1[] = _( + "MAROWAK is the evolved form of a CUBONE\n" + "that has overcome its sadness at the\n" + "loss of its mother and grown tough."); +static const u8 DexDescription_Marowak_2[] = _( + "This POKéMON’s tempered and hardened\n" + "spirit is not easily broken."); + +static const u8 DexDescription_Hitmonlee_1[] = _( + "HITMONLEE’s legs freely contract and\n" + "stretch. Using these springlike legs, it\n" + "bowls over foes with devastating kicks."); +static const u8 DexDescription_Hitmonlee_2[] = _( + "After battle, it rubs down its legs and\n" + "loosens the muscles to overcome\n" + "fatigue."); + +static const u8 DexDescription_Hitmonchan_1[] = _( + "HITMONCHAN is said to possess the\n" + "spirit of a boxer who had been working\n" + "towards a world championship."); +static const u8 DexDescription_Hitmonchan_2[] = _( + "This POKéMON has an indomitable spirit\n" + "and will never give up in the face of\n" + "adversity."); + +static const u8 DexDescription_Lickitung_1[] = _( + "Whenever LICKITUNG comes across\n" + "something new, it will unfailingly give it\n" + "a lick. It does so because it memorizes"); +static const u8 DexDescription_Lickitung_2[] = _( + "things by texture and by taste.\n" + "It is somewhat put off by sour things."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Koffing_1[] = _( + "KOFFING embodies toxic substances.\n" + "It mixes the toxins with raw garbage to\n" + "set off a chemical reaction that"); +static const u8 DexDescription_Koffing_2[] = _( + "results in a terribly powerful poison\n" + "gas. The higher the temperature, the\n" + "more gas is concocted by this POKéMON."); +#else +static const u8 DexDescription_Koffing_1[] = _( + "If KOFFING becomes agitated, it raises\n" + "the toxicity of its internal gases and\n" + "jets them out from all over its body."); +static const u8 DexDescription_Koffing_2[] = _( + "This POKéMON may also overinflate its\n" + "round body, then explode."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Weezing_1[] = _( + "WEEZING alternately shrinks and\n" + "inflates its twin bodies to mix together\n" + "toxic gases inside."); +static const u8 DexDescription_Weezing_2[] = _( + "The more the gases are mixed, the more\n" + "powerful the toxins become. The\n" + "POKéMON also becomes more putrid."); +#else +static const u8 DexDescription_Weezing_1[] = _( + "WEEZING loves the gases given off by\n" + "rotted kitchen garbage. This POKéMON\n" + "will find a dirty, unkempt house and"); +static const u8 DexDescription_Weezing_2[] = _( + "make it its home. At night, when the\n" + "people in the house are asleep, it will\n" + "go through the trash."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rhyhorn_1[] = _( + "RHYHORN’s brain is very small. It is so\n" + "dense, while on a run it forgets why it\n" + "started running in the first place."); +static const u8 DexDescription_Rhyhorn_2[] = _( + "It apparently remembers sometimes if it\n" + "demolishes something."); +#else +static const u8 DexDescription_Rhyhorn_1[] = _( + "RHYHORN runs in a straight line,\n" + "smashing everything in its path.\n" + "It is not bothered even if it rushes"); +static const u8 DexDescription_Rhyhorn_2[] = _( + "headlong into a block of steel.\n" + "This POKéMON may feel some pain from\n" + "the collision the next day, however."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rhydon_1[] = _( + "RHYDON has a horn that serves as a\n" + "drill. It is used for destroying rocks\n" + "and boulders."); +static const u8 DexDescription_Rhydon_2[] = _( + "This POKéMON occasionally rams into\n" + "streams of magma, but the armor-like\n" + "hide prevents it from feeling the heat."); +#else +static const u8 DexDescription_Rhydon_1[] = _( + "RHYDON’s horn can crush even uncut\n" + "diamonds. One sweeping blow of its tail\n" + "can topple a building."); +static const u8 DexDescription_Rhydon_2[] = _( + "This POKéMON’s hide is extremely tough.\n" + "Even direct cannon hits don’t leave\n" + "a scratch."); +#endif + +static const u8 DexDescription_Chansey_1[] = _( + "CHANSEY lays nutritionally excellent\n" + "eggs on an everyday basis.\n" + "The eggs are so delicious, they are"); +static const u8 DexDescription_Chansey_2[] = _( + "easily and eagerly devoured by even\n" + "those people who have lost their\n" + "appetite."); + +static const u8 DexDescription_Tangela_1[] = _( + "TANGELA’s vines snap off easily if they\n" + "are grabbed. This happens without pain,\n" + "allowing it to make a quick getaway."); +static const u8 DexDescription_Tangela_2[] = _( + "The lost vines are replaced by newly\n" + "grown vines the very next day."); + +static const u8 DexDescription_Kangaskhan_1[] = _( + "If you come across a young KANGASKHAN\n" + "playing by itself, you must never\n" + "disturb it or attempt to catch it."); +static const u8 DexDescription_Kangaskhan_2[] = _( + "The baby POKéMON’s parent is sure to\n" + "be in the area, and it will become\n" + "violently enraged at you."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Horsea_1[] = _( + "If HORSEA senses danger, it will\n" + "reflexively spray a dense black ink\n" + "from its mouth and try to escape."); +static const u8 DexDescription_Horsea_2[] = _( + "This POKéMON swims by cleverly flapping\n" + "the fins on its back."); +#else +static const u8 DexDescription_Horsea_1[] = _( + "HORSEA eats small insects and moss off\n" + "of rocks. If the ocean current turns\n" + "fast, this POKéMON anchors itself by"); +static const u8 DexDescription_Horsea_2[] = _( + "wrapping its tail around rocks or coral\n" + "to prevent being washed away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seadra_1[] = _( + "SEADRA generates whirlpools by spinning\n" + "its body. The whirlpools are strong\n" + "enough to swallow even fishing boats."); +static const u8 DexDescription_Seadra_2[] = _( + "This POKéMON weakens prey with these\n" + "currents, then swallows it whole."); +#else +static const u8 DexDescription_Seadra_1[] = _( + "SEADRA sleeps after wriggling itself\n" + "between the branches of coral.\n" + "Those trying to harvest coral are"); +static const u8 DexDescription_Seadra_2[] = _( + "occasionally stung by this POKéMON’s\n" + "poison barbs if they fail to notice it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Goldeen_1[] = _( + "GOLDEEN loves swimming wild and free\n" + "in rivers and ponds.\n" + "If one of these POKéMON is placed in an"); +static const u8 DexDescription_Goldeen_2[] = _( + "aquarium, it will shatter even the\n" + "thickest glass with one ram of its horn\n" + "and make its escape."); +#else +static const u8 DexDescription_Goldeen_1[] = _( + "GOLDEEN is a very beautiful POKéMON\n" + "with fins that billow elegantly in water.\n" + "However, don’t let your guard down"); +static const u8 DexDescription_Goldeen_2[] = _( + "around this POKéMON - it could ram you\n" + "powerfully with its horn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seaking_1[] = _( + "SEAKING is very protective of its eggs.\n" + "The male and female will take turns\n" + "patrolling around their nest and eggs."); +static const u8 DexDescription_Seaking_2[] = _( + "The guarding of eggs by these POKéMON\n" + "goes on for over a month."); +#else +static const u8 DexDescription_Seaking_1[] = _( + "In the autumn, SEAKING males can be\n" + "seen performing courtship dances in\n" + "riverbeds to woo females."); +static const u8 DexDescription_Seaking_2[] = _( + "During this season, this POKéMON’s body\n" + "coloration is at its most beautiful."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Staryu_1[] = _( + "STARYU apparently communicates with\n" + "the stars in the night sky by flashing\n" + "the red core at the center of its body."); +static const u8 DexDescription_Staryu_2[] = _( + "If parts of its body are torn, this\n" + "POKéMON simply regenerates the\n" + "missing pieces and limbs."); +#else +static const u8 DexDescription_Staryu_1[] = _( + "STARYU’s center section has an organ\n" + "called the core that shines bright red.\n" + "If you go to a beach toward the"); +static const u8 DexDescription_Staryu_2[] = _( + "end of summer, the glowing cores of\n" + "these POKéMON look like the stars\n" + "in the sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Starmie_1[] = _( + "STARMIE swims through water by\n" + "spinning its star-shaped body as if it\n" + "were a propeller on a ship."); +static const u8 DexDescription_Starmie_2[] = _( + "The core at the center of this\n" + "POKéMON’s body glows in seven colors."); +#else +static const u8 DexDescription_Starmie_1[] = _( + "STARMIE’s center section - the core -\n" + "glows brightly in seven colors.\n" + "Because of its luminous nature, this"); +static const u8 DexDescription_Starmie_2[] = _( + "POKéMON has been given the nickname\n" + "“the gem of the sea.”"); +#endif + +static const u8 DexDescription_Mrmime_1[] = _( + "MR. MIME is a master of pantomime.\n" + "Its gestures and motions convince\n" + "watchers that something unseeable"); +static const u8 DexDescription_Mrmime_2[] = _( + "actually exists. Once it is believed,\n" + "it will exist as if it were a real thing."); + +static const u8 DexDescription_Scyther_1[] = _( + "SCYTHER is blindingly fast. Its blazing\n" + "speed enhances the effectiveness of\n" + "the twin scythes on its forearms."); +static const u8 DexDescription_Scyther_2[] = _( + "This POKéMON’s scythes are so\n" + "effective, they can slice through thick\n" + "logs in one wicked stroke."); + +static const u8 DexDescription_Jynx_1[] = _( + "JYNX walks rhythmically, swaying and\n" + "shaking its hips as if it were dancing.\n" + "Its motions are so bouncingly alluring,"); +static const u8 DexDescription_Jynx_2[] = _( + "people seeing it are compelled to shake\n" + "their hips without giving any thought\n" + "to what they are doing."); + +static const u8 DexDescription_Electabuzz_1[] = _( + "When a storm arrives, gangs of this\n" + "POKéMON compete with each other to\n" + "scale heights that are likely to be"); +static const u8 DexDescription_Electabuzz_2[] = _( + "stricken by lightning bolts.\n" + "Some towns use ELECTABUZZ in place of\n" + "lightning rods."); + +static const u8 DexDescription_Magmar_1[] = _( + "In battle, MAGMAR blows out intensely\n" + "hot flames from all over its body to\n" + "intimidate its opponent."); +static const u8 DexDescription_Magmar_2[] = _( + "This POKéMON’s fiery bursts create\n" + "heat waves that ignite grass and trees\n" + "in its surroundings."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Pinsir_1[] = _( + "PINSIR has a pair of massive horns \n" + "Protruding from the surface of these\n" + "horns are thorns."); +static const u8 DexDescription_Pinsir_2[] = _( + "These thorns are driven deeply into the\n" + "foe’s body when the pincer closes,\n" + "making it tough for the foe to escape."); +#else +static const u8 DexDescription_Pinsir_1[] = _( + "PINSIR is astoundingly strong. It can\n" + "grip a foe weighing twice its weight\n" + "in its horns and easily lift it."); +static const u8 DexDescription_Pinsir_2[] = _( + "This POKéMON’s movements turn sluggish\n" + "in cold places."); +#endif + +static const u8 DexDescription_Tauros_1[] = _( + "This POKéMON is not satisfied unless\n" + "it is rampaging at all times.\n" + "If there is no opponent for TAUROS to"); +static const u8 DexDescription_Tauros_2[] = _( + "battle, it will charge at thick trees and\n" + "knock them down to calm itself."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Magikarp_1[] = _( + "MAGIKARP is virtually useless in battle\n" + "as it can only splash around.\n" + "As a result, it is considered to be weak."); +static const u8 DexDescription_Magikarp_2[] = _( + "However, it is actually a very hardy\n" + "POKéMON that can survive in any body of\n" + "water no matter how polluted it is."); +#else +static const u8 DexDescription_Magikarp_1[] = _( + "MAGIKARP is a pathetic excuse for a\n" + "POKéMON that is only capable of\n" + "flopping and splashing."); +static const u8 DexDescription_Magikarp_2[] = _( + "This behavior prompted scientists to\n" + "undertake research into it."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gyarados_1[] = _( + "Once GYARADOS goes on a rampage, its\n" + "ferociously violent blood doesn’t calm\n" + "until it has burned everything down."); +static const u8 DexDescription_Gyarados_2[] = _( + "There are records of this POKéMON’s\n" + "rampages lasting a whole month."); +#else +static const u8 DexDescription_Gyarados_1[] = _( + "When MAGIKARP evolves into GYARADOS,\n" + "its brain cells undergo a structural\n" + "transformation. It is said that this"); +static const u8 DexDescription_Gyarados_2[] = _( + "transformation is to blame for this\n" + "POKéMON’s wildly violent nature."); +#endif + +static const u8 DexDescription_Lapras_1[] = _( + "People have driven LAPRAS almost to the\n" + "point of extinction. In the evenings,\n" + "this POKéMON is said to sing plaintively"); +static const u8 DexDescription_Lapras_2[] = _( + "as it seeks what few others of its kind\n" + "still remain."); + +static const u8 DexDescription_Ditto_1[] = _( + "DITTO rearranges its cell structure to\n" + "transform itself into other shapes.\n" + "However, if it tries to transform itself"); +static const u8 DexDescription_Ditto_2[] = _( + "into something by relying on its memory,\n" + "this POKéMON manages to get details\n" + "wrong."); + +static const u8 DexDescription_Eevee_1[] = _( + "EEVEE has an unstable genetic makeup\n" + "that suddenly mutates due to the\n" + "environment in which it lives."); +static const u8 DexDescription_Eevee_2[] = _( + "Radiation from various STONES causes\n" + "this POKéMON to evolve."); + +static const u8 DexDescription_Vaporeon_1[] = _( + "VAPOREON underwent a spontaneous\n" + "mutation and grew fins and gills that\n" + "allow it to live underwater."); +static const u8 DexDescription_Vaporeon_2[] = _( + "This POKéMON has the ability to freely\n" + "control water."); + +static const u8 DexDescription_Jolteon_1[] = _( + "JOLTEON’s cells generate a low level of\n" + "electricity. This power is amplified by\n" + "the static electricity of its fur,"); +static const u8 DexDescription_Jolteon_2[] = _( + "enabling the POKéMON to drop\n" + "thunderbolts. The bristling fur is made\n" + "of electrically charged needles."); + +static const u8 DexDescription_Flareon_1[] = _( + "FLAREON’s fluffy fur has a functional\n" + "purpose - it releases heat into the air\n" + "so that its body does not get"); +static const u8 DexDescription_Flareon_2[] = _( + "excessively hot.\n" + "This POKéMON’s body temperature can\n" + "rise to a maximum of 1,650 degrees F."); + +static const u8 DexDescription_Porygon_1[] = _( + "PORYGON is capable of reverting itself\n" + "entirely back to program data and\n" + "entering cyberspace."); +static const u8 DexDescription_Porygon_2[] = _( + "This POKéMON is copy-protected so it\n" + "cannot be duplicated by copying."); + +static const u8 DexDescription_Omanyte_1[] = _( + "OMANYTE is one of the ancient and long-\n" + "since-extinct POKéMON that have been\n" + "regenerated from fossils by people."); +static const u8 DexDescription_Omanyte_2[] = _( + "If attacked by an enemy, it withdraws\n" + "itself inside its hard shell."); + +static const u8 DexDescription_Omastar_1[] = _( + "OMASTAR uses its tentacles to capture\n" + "its prey. It is believed to have become\n" + "extinct because its shell grew too large"); +static const u8 DexDescription_Omastar_2[] = _( + "and heavy, causing its movements to\n" + "become too slow and ponderous."); + +static const u8 DexDescription_Kabuto_1[] = _( + "KABUTO is a POKéMON that has been\n" + "regenerated from a fossil. However, in\n" + "extremely rare cases, living examples"); +static const u8 DexDescription_Kabuto_2[] = _( + "have been discovered.\n" + "The POKéMON has not changed at all for\n" + "300 million years."); + +static const u8 DexDescription_Kabutops_1[] = _( + "KABUTOPS swam underwater to hunt for\n" + "its prey in ancient times.\n" + "The POKéMON was apparently evolving"); +static const u8 DexDescription_Kabutops_2[] = _( + "from being a water-dweller to living on\n" + "land as evident from the beginnings of\n" + "change in its gills and legs."); + +static const u8 DexDescription_Aerodactyl_1[] = _( + "AERODACTYL is a POKéMON from the age\n" + "of dinosaurs. It was regenerated from\n" + "genetic material extracted from amber."); +static const u8 DexDescription_Aerodactyl_2[] = _( + "It is imagined to have been the king of\n" + "the skies in ancient times."); + +static const u8 DexDescription_Snorlax_1[] = _( + "SNORLAX’s typical day consists of\n" + "nothing more than eating and sleeping.\n" + "It is such a docile POKéMON that there"); +static const u8 DexDescription_Snorlax_2[] = _( + "are children who use its expansive belly\n" + "as a place to play."); + +static const u8 DexDescription_Articuno_1[] = _( + "ARTICUNO is a legendary bird POKéMON\n" + "that can control ice.\n" + "The flapping of its wings chills the air."); +static const u8 DexDescription_Articuno_2[] = _( + "As a result, it is said that when this\n" + "POKéMON flies, snow will fall."); + +static const u8 DexDescription_Zapdos_1[] = _( + "ZAPDOS is a legendary bird POKéMON that\n" + "has the ability to control electricity.\n" + "It usually lives in thunderclouds."); +static const u8 DexDescription_Zapdos_2[] = _( + "The POKéMON gains power if it is\n" + "stricken by lightning bolts."); + +static const u8 DexDescription_Moltres_1[] = _( + "MOLTRES is a legendary bird POKéMON\n" + "that has the ability to control fire.\n" + "If this POKéMON is injured, it is said to"); +static const u8 DexDescription_Moltres_2[] = _( + "dip its body in the molten magma of a\n" + "volcano to burn and heal itself."); + +static const u8 DexDescription_Dratini_1[] = _( + "DRATINI continually molts and sloughs\n" + "off its old skin.\n" + "It does so because the life energy"); +static const u8 DexDescription_Dratini_2[] = _( + "within its body steadily builds to reach\n" + "uncontrollable levels."); + +static const u8 DexDescription_Dragonair_1[] = _( + "DRAGONAIR stores an enormous amount\n" + "of energy inside its body.\n" + "It is said to alter weather conditions"); +static const u8 DexDescription_Dragonair_2[] = _( + "in its vicinity by discharging energy\n" + "from the crystals on its neck and tail."); + +static const u8 DexDescription_Dragonite_1[] = _( + "DRAGONITE is capable of circling the\n" + "globe in just sixteen hours.\n" + "It is a kindhearted POKéMON that leads"); +static const u8 DexDescription_Dragonite_2[] = _( + "lost and foundering ships in a storm to\n" + "the safety of land."); + +static const u8 DexDescription_Mewtwo_1[] = _( + "MEWTWO is a POKéMON that was created\n" + "by genetic manipulation.\n" + "However, even though the scientific"); +static const u8 DexDescription_Mewtwo_2[] = _( + "power of humans created this POKéMON’s\n" + "body, they failed to endow MEWTWO with\n" + "a compassionate heart."); + +static const u8 DexDescription_Mew_1[] = _( + "MEW is said to possess the genetic\n" + "composition of all POKéMON.\n" + "It is capable of making itself invisible"); +static const u8 DexDescription_Mew_2[] = _( + "at will, so it entirely avoids notice even\n" + "if it approaches people."); + +static const u8 DexDescription_Chikorita_1[] = _( + "In battle, CHIKORITA waves its leaf\n" + "around to keep the foe at bay.\n" + "However, a sweet fragrance also wafts"); +static const u8 DexDescription_Chikorita_2[] = _( + "from the leaf, becalming the battling\n" + "POKéMON and creating a cozy, friendly\n" + "atmosphere all around."); + +static const u8 DexDescription_Bayleef_1[] = _( + "BAYLEEF’s neck is ringed by curled-up\n" + "leaves. Inside each tubular leaf is a\n" + "small shoot of a tree."); +static const u8 DexDescription_Bayleef_2[] = _( + "The fragrance of this shoot makes\n" + "people peppy."); + +static const u8 DexDescription_Meganium_1[] = _( + "The fragrance of MEGANIUM’s flower\n" + "soothes and calms emotions.\n" + "In battle, this POKéMON gives off more"); +static const u8 DexDescription_Meganium_2[] = _( + "of its becalming scent to blunt the\n" + "foe’s fighting spirit."); + +static const u8 DexDescription_Cyndaquil_1[] = _( + "CYNDAQUIL protects itself by flaring up\n" + "the flames on its back.\n" + "The flames are vigorous if the POKéMON"); +static const u8 DexDescription_Cyndaquil_2[] = _( + "is angry. However, if it is tired, the\n" + "flames splutter fitfully with incomplete\n" + "combustion."); + +static const u8 DexDescription_Quilava_1[] = _( + "QUILAVA keeps its foes at bay with the\n" + "intensity of its flames and gusts of\n" + "superheated air."); +static const u8 DexDescription_Quilava_2[] = _( + "This POKéMON applies its outstanding\n" + "nimbleness to dodge attacks even while\n" + "scorching the foe with flames."); + +static const u8 DexDescription_Typhlosion_1[] = _( + "TYPHLOSION obscures itself behind a\n" + "shimmering heat haze that it creates\n" + "using its intensely hot flames."); +static const u8 DexDescription_Typhlosion_2[] = _( + "This POKéMON creates blazing explosive\n" + "blasts that burn everything to cinders."); + +static const u8 DexDescription_Totodile_1[] = _( + "Despite the smallness of its body,\n" + "TOTODILE’s jaws are very powerful.\n" + "While the POKéMON may think it is just"); +static const u8 DexDescription_Totodile_2[] = _( + "playfully nipping, its bite has enough\n" + "power to cause serious injury."); + +static const u8 DexDescription_Croconaw_1[] = _( + "Once CROCONAW has clamped its jaws on\n" + "its foe, it will absolutely not let go.\n" + "Because the tips of its fangs are"); +static const u8 DexDescription_Croconaw_2[] = _( + "forked back like barbed fishhooks, they\n" + "become impossible to remove when \n" + "they have sunk in."); + +static const u8 DexDescription_Feraligatr_1[] = _( + "FERALIGATR intimidates its foes by\n" + "opening its huge mouth.\n" + "In battle, it will kick the ground hard"); +static const u8 DexDescription_Feraligatr_2[] = _( + "with its thick and powerful hind legs to\n" + "charge at the foe at an incredible\n" + "speed."); + +static const u8 DexDescription_Sentret_1[] = _( + "When SENTRET sleeps, it does so while\n" + "another stands guard. The sentry wakes\n" + "the others at the first sign of danger."); +static const u8 DexDescription_Sentret_2[] = _( + "When this POKéMON becomes separated\n" + "from its pack, it becomes incapable of\n" + "sleep due to fear."); + +static const u8 DexDescription_Furret_1[] = _( + "FURRET has a very slim build.\n" + "When under attack, it can slickly squirm\n" + "through narrow spaces and get away."); +static const u8 DexDescription_Furret_2[] = _( + "In spite of its short limbs, this\n" + "POKéMON is very nimble and fleet."); + +static const u8 DexDescription_Hoothoot_1[] = _( + "HOOTHOOT has an internal organ that\n" + "senses and tracks the earth’s rotation.\n" + "Using this special organ, this POKéMON"); +static const u8 DexDescription_Hoothoot_2[] = _( + "begins hooting at precisely the same\n" + "time every day."); + +static const u8 DexDescription_Noctowl_1[] = _( + "NOCTOWL never fails at catching prey in\n" + "darkness. This POKéMON owes its\n" + "success to its superior vision that"); +static const u8 DexDescription_Noctowl_2[] = _( + "allows it to see in minimal light, and to\n" + "its soft, supple wings that make no\n" + "sound in flight."); + +static const u8 DexDescription_Ledyba_1[] = _( + "LEDYBA secretes an aromatic fluid from\n" + "where its legs join its body. This fluid\n" + "is used for communicating with others."); +static const u8 DexDescription_Ledyba_2[] = _( + "This POKéMON conveys its feelings to\n" + "others by altering the fluid’s scent."); + +static const u8 DexDescription_Ledian_1[] = _( + "It is said that in lands with clean air,\n" + "where the stars fill the sky, there live\n" + "LEDIAN in countless numbers."); +static const u8 DexDescription_Ledian_2[] = _( + "There is a good reason for this - the\n" + "POKéMON uses the light of the stars\n" + "as its energy."); + +static const u8 DexDescription_Spinarak_1[] = _( + "The web spun by SPINARAK can be\n" + "considered its second nervous system.\n" + "It is said that this POKéMON can"); +static const u8 DexDescription_Spinarak_2[] = _( + "determine what kind of prey is touching\n" + "its web just by the tiny vibrations it\n" + "feels through the web’s strands."); + +static const u8 DexDescription_Ariados_1[] = _( + "ARIADOS’s feet are tipped with tiny\n" + "hooked claws that enable it to scuttle\n" + "on ceilings and vertical walls."); +static const u8 DexDescription_Ariados_2[] = _( + "This POKéMON constricts the foe with\n" + "thin and strong silk webbing."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Crobat_1[] = _( + "CROBAT sneaks up on its intended prey\n" + "using wings that barely make a sound.\n" + "This POKéMON rests by hanging on a"); +static const u8 DexDescription_Crobat_2[] = _( + "tree branch with its rear legs that\n" + "serve as wings."); +#else +static const u8 DexDescription_Crobat_1[] = _( + "If this POKéMON is flying by fluttering\n" + "only a pair of wings on either the\n" + "forelegs or hind legs, it’s proof that"); +static const u8 DexDescription_Crobat_2[] = _( + "CROBAT has been flying a long distance.\n" + "It switches the wings it uses if it is\n" + "tired."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Chinchou_1[] = _( + "CHINCHOU’s two antennas are filled with\n" + "cells that generate strong electricity.\n" + "This POKéMON’s cells create so much"); +static const u8 DexDescription_Chinchou_2[] = _( + "electrical power, it even makes itself\n" + "tingle slightly."); +#else +static const u8 DexDescription_Chinchou_1[] = _( + "CHINCHOU lets loose positive and\n" + "negative electrical charges from its\n" + "two antennas to make its prey faint."); +static const u8 DexDescription_Chinchou_2[] = _( + "This POKéMON flashes its electric\n" + "lights to exchange signals with others."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lanturn_1[] = _( + "LANTURN is known to emit light.\n" + "If you peer down into the dark sea from\n" + "a ship at night, you can sometimes see"); +static const u8 DexDescription_Lanturn_2[] = _( + "this POKéMON’s light rising from the\n" + "depths where it swims. It gives the sea\n" + "an appearance of a starlit night."); +#else +static const u8 DexDescription_Lanturn_1[] = _( + "LANTURN is nicknamed “the deep-sea\n" + "star” for its illuminated antenna.\n" + "This POKéMON produces light by"); +static const u8 DexDescription_Lanturn_2[] = _( + "causing a chemical reaction between\n" + "bacteria and its bodily fluids inside\n" + "the antenna."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Pichu_1[] = _( + "When PICHU plays with others, it may\n" + "short out electricity with another\n" + "PICHU, creating a shower of sparks."); +static const u8 DexDescription_Pichu_2[] = _( + "In that event, this POKéMON will begin\n" + "crying, startled by the flash of sparks."); +#else +static const u8 DexDescription_Pichu_1[] = _( + "PICHU charges itself with electricity\n" + "more easily on days with thunderclouds\n" + "or when the air is very dry."); +static const u8 DexDescription_Pichu_2[] = _( + "You can hear the crackling of static\n" + "electricity coming off this POKéMON."); +#endif + +static const u8 DexDescription_Cleffa_1[] = _( + "On nights with many shooting stars,\n" + "CLEFFA can be seen dancing in a ring.\n" + "They dance through the night and stop"); +static const u8 DexDescription_Cleffa_2[] = _( + "only at the break of day, when these\n" + "POKéMON quench their thirst with the\n" + "morning dew."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Igglybuff_1[] = _( + "IGGLYBUFF has a soft and plushy body\n" + "that feels very much like a marshmallow.\n" + "From this body wafts a gently sweet"); +static const u8 DexDescription_Igglybuff_2[] = _( + "fragrance that soothes and calms the\n" + "emotions of its foes."); +#else +static const u8 DexDescription_Igglybuff_1[] = _( + "IGGLYBUFF’s vocal chords are not\n" + "sufficiently developed. It would hurt\n" + "its throat if it were to sing too much."); +static const u8 DexDescription_Igglybuff_2[] = _( + "This POKéMON gargles with freshwater\n" + "from a clean stream."); +#endif + +static const u8 DexDescription_Togepi_1[] = _( + "As its energy, TOGEPI uses the positive\n" + "emotions of compassion and pleasure\n" + "exuded by people and POKéMON."); +static const u8 DexDescription_Togepi_2[] = _( + "This POKéMON stores up feelings of\n" + "happiness inside its shell, then shares\n" + "them with others."); + +static const u8 DexDescription_Togetic_1[] = _( + "TOGETIC is said to be a POKéMON that\n" + "brings good fortune. When the POKéMON\n" + "spots someone who is pure of heart,"); +static const u8 DexDescription_Togetic_2[] = _( + "it is said to appear and share its\n" + "happiness with that person."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Natu_1[] = _( + "NATU has a highly developed jumping\n" + "ability. The POKéMON flaps and leaps\n" + "onto tree branches that are taller than"); +static const u8 DexDescription_Natu_2[] = _( + "grown-up people to pick at the tree’s\n" + "new shoots."); +#else +static const u8 DexDescription_Natu_1[] = _( + "NATU cannot fly because its wings are\n" + "not yet fully grown. If your eyes meet\n" + "with this POKéMON’s eyes, it will stare"); +static const u8 DexDescription_Natu_2[] = _( + "back intently at you. But if you move\n" + "even slightly, it will hop away to safety."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Xatu_1[] = _( + "XATU is known to stand motionless while\n" + "staring at the sun all day long.\n" + "Some people revere it as a mystical"); +static const u8 DexDescription_Xatu_2[] = _( + "POKéMON out of their belief that XATU\n" + "is in possession of the power to see\n" + "into the future."); +#else +static const u8 DexDescription_Xatu_1[] = _( + "XATU stands rooted and still in one\n" + "spot all day long. People believe that\n" + "this POKéMON does so out of fear of"); +static const u8 DexDescription_Xatu_2[] = _( + "the terrible things it has foreseen in\n" + "the future."); +#endif + +static const u8 DexDescription_Mareep_1[] = _( + "MAREEP’s fluffy coat of wool rubs\n" + "together and builds a static charge.\n" + "The more static electricity is charged,"); +static const u8 DexDescription_Mareep_2[] = _( + "the more brightly the lightbulb at the\n" + "tip of its tail grows."); + +static const u8 DexDescription_Flaaffy_1[] = _( + "FLAAFFY’s wool quality changes so that\n" + "it can generate a high amount of static\n" + "electricity with a small amount of wool."); +static const u8 DexDescription_Flaaffy_2[] = _( + "The bare and slick parts of its hide are\n" + "shielded against electricity."); + +static const u8 DexDescription_Ampharos_1[] = _( + "AMPHAROS gives off so much light that\n" + "it can be seen even from space.\n" + "People in the old days used the light of"); +static const u8 DexDescription_Ampharos_2[] = _( + "this POKéMON to send signals back and\n" + "forth with others far away."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Bellossom_1[] = _( + "A BELLOSSOM grows flowers more\n" + "beautifully if it has evolved from a\n" + "smelly GLOOM - the stinkier the better."); +static const u8 DexDescription_Bellossom_2[] = _( + "At night, this POKéMON closes its\n" + "petals and goes to sleep."); +#else +static const u8 DexDescription_Bellossom_1[] = _( + "When BELLOSSOM gets exposed to plenty\n" + "of sunlight, the leaves ringing its body\n" + "begin to spin around."); +static const u8 DexDescription_Bellossom_2[] = _( + "This POKéMON’s dancing is renowned in\n" + "the southern lands."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Marill_1[] = _( + "When fishing for food at the edge of a\n" + "fast-running stream, MARILL wraps its\n" + "tail around the trunk of a tree."); +static const u8 DexDescription_Marill_2[] = _( + "This POKéMON’s tail is flexible and\n" + "configured to stretch."); +#else +static const u8 DexDescription_Marill_1[] = _( + "MARILL’s oil-filled tail acts much like\n" + "a life preserver. If you see just its\n" + "tail bobbing on the water’s surface,"); +static const u8 DexDescription_Marill_2[] = _( + "it’s a sure indication that this POKéMON\n" + "is diving beneath the water to feed on\n" + "aquatic plants."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Azumarill_1[] = _( + "AZUMARILL can make balloons out of\n" + "air. It makes these air balloons if it\n" + "spots a drowning POKéMON."); +static const u8 DexDescription_Azumarill_2[] = _( + "The air balloons enable the POKéMON in\n" + "trouble to breathe."); +#else +static const u8 DexDescription_Azumarill_1[] = _( + "AZUMARILL’s long ears are indispensable\n" + "sensors. By focusing its hearing, this\n" + "POKéMON can identify what kinds of"); +static const u8 DexDescription_Azumarill_2[] = _( + "prey are around, even in rough and\n" + "fast-running rivers."); +#endif + +static const u8 DexDescription_Sudowoodo_1[] = _( + "SUDOWOODO camouflages itself as a tree\n" + "to avoid being attacked by enemies.\n" + "However, because the forelegs remain"); +static const u8 DexDescription_Sudowoodo_2[] = _( + "green throughout the year, the POKéMON\n" + "is easily identified as a fake during\n" + "the winter."); + +static const u8 DexDescription_Politoed_1[] = _( + "The curled hair on POLITOED’s head is\n" + "proof of its status as a king. It is said\n" + "that the longer and more curled the"); +static const u8 DexDescription_Politoed_2[] = _( + "hair, the more respect this POKéMON\n" + "earns from its peers."); + +static const u8 DexDescription_Hoppip_1[] = _( + "This POKéMON drifts and floats with the\n" + "wind. If it senses the approach of\n" + "strong winds, HOPPIP links its leaves"); +static const u8 DexDescription_Hoppip_2[] = _( + "with other HOPPIP to prepare against\n" + "being blown away."); + +static const u8 DexDescription_Skiploom_1[] = _( + "SKIPLOOM’s flower blossoms when the\n" + "temperature rises above 64 degrees F.\n" + "How much the flower opens depends on"); +static const u8 DexDescription_Skiploom_2[] = _( + "the temperature. For that reason, this\n" + "POKéMON is sometimes used as a\n" + "thermometer."); + +static const u8 DexDescription_Jumpluff_1[] = _( + "JUMPLUFF rides warm southern winds to\n" + "cross the sea and fly to foreign lands.\n" + "The POKéMON descends to the ground"); +static const u8 DexDescription_Jumpluff_2[] = _( + "when it encounters cold air while it is\n" + "floating."); + +static const u8 DexDescription_Aipom_1[] = _( + "AIPOM’s tail ends in a hand-like\n" + "appendage that can be cleverly\n" + "manipulated."); +static const u8 DexDescription_Aipom_2[] = _( + "However, because the POKéMON uses its\n" + "tail so much, its real hands have become\n" + "rather clumsy."); + +static const u8 DexDescription_Sunkern_1[] = _( + "SUNKERN tries to move as little as it\n" + "possibly can. It does so because it\n" + "tries to conserve all the nutrients it"); +static const u8 DexDescription_Sunkern_2[] = _( + "has stored in its body for its\n" + "evolution. It will not eat a thing, \n" + "subsisting only on morning dew."); + +static const u8 DexDescription_Sunflora_1[] = _( + "SUNFLORA converts solar energy into\n" + "nutrition. It moves around actively in\n" + "the daytime when it is warm."); +static const u8 DexDescription_Sunflora_2[] = _( + "It stops moving as soon as the sun goes\n" + "down for the night."); + +static const u8 DexDescription_Yanma_1[] = _( + "YANMA is capable of seeing 360 degrees\n" + "without having to move its eyes.\n" + "It is a great flier that is adept at"); +static const u8 DexDescription_Yanma_2[] = _( + "making sudden stops and turning midair.\n" + "This POKéMON uses its flying ability to\n" + "quickly chase down targeted prey."); + +static const u8 DexDescription_Wooper_1[] = _( + "WOOPER usually lives in water.\n" + "However, it occasionally comes out onto\n" + "land in search of food."); +static const u8 DexDescription_Wooper_2[] = _( + "On land, it coats its body with a gooey,\n" + "toxic film."); + +static const u8 DexDescription_Quagsire_1[] = _( + "QUAGSIRE hunts for food by leaving\n" + "its mouth wide open in water and waiting\n" + "for its prey to blunder in unaware."); +static const u8 DexDescription_Quagsire_2[] = _( + "Because the POKéMON does not move,\n" + "it does not get very hungry."); + +static const u8 DexDescription_Espeon_1[] = _( + "ESPEON is extremely loyal to any\n" + "TRAINER it considers to be worthy.\n" + "It is said that this POKéMON developed"); +static const u8 DexDescription_Espeon_2[] = _( + "its precognitive powers to protect its\n" + "TRAINER from harm."); + +static const u8 DexDescription_Umbreon_1[] = _( + "UMBREON evolved as a result of exposure\n" + "to the moon’s waves.\n" + "It hides silently in darkness and waits"); +static const u8 DexDescription_Umbreon_2[] = _( + "for its foes to make a move.\n" + "The rings on its body glow when it leaps\n" + "to attack."); + +static const u8 DexDescription_Murkrow_1[] = _( + "MURKROW was feared and loathed as the\n" + "alleged bearer of ill fortune.\n" + "This POKéMON shows strong interest in"); +static const u8 DexDescription_Murkrow_2[] = _( + "anything that sparkles or glitters.\n" + "It will even try to steal rings from\n" + "women."); + +static const u8 DexDescription_Slowking_1[] = _( + "SLOWKING undertakes research every\n" + "day in an effort to solve the mysteries\n" + "of the world."); +static const u8 DexDescription_Slowking_2[] = _( + "However, this POKéMON apparently\n" + "forgets everything it has learned if\n" + "the SHELLDER on its head comes off."); + +static const u8 DexDescription_Misdreavus_1[] = _( + "MISDREAVUS frightens people with a\n" + "creepy, sobbing cry. The POKéMON\n" + "apparently uses its red spheres to"); +static const u8 DexDescription_Misdreavus_2[] = _( + "absorb the fearful feelings of foes and\n" + "turn them into nutrition."); + +static const u8 DexDescription_Unown_1[] = _( + "This POKéMON is shaped like ancient\n" + "writing. It is a mystery as to which\n" + "came first, the ancient writings or the"); +static const u8 DexDescription_Unown_2[] = _( + "various UNOWN. Research into this\n" + "topic is ongoing but nothing is known."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Wobbuffet_1[] = _( + "WOBBUFFET does nothing but endure\n" + "attacks - it won’t attack on its own.\n" + "However, it won’t endure an attack on"); +static const u8 DexDescription_Wobbuffet_2[] = _( + "its tail. When that happens, the\n" + "POKéMON will try to take the foe with it\n" + "using DESTINY BOND."); +#else +static const u8 DexDescription_Wobbuffet_1[] = _( + "If two or more WOBBUFFET meet, they will\n" + "turn competitive and try to outdo each\n" + "other’s endurance."); +static const u8 DexDescription_Wobbuffet_2[] = _( + "However, they may try to see which one\n" + "can endure the longest without food.\n" + "TRAINERS need to beware of this habit."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Girafarig_1[] = _( + "GIRAFARIG’s rear head contains a tiny\n" + "brain that is too small for thinking.\n" + "However, the rear head doesn’t need to"); +static const u8 DexDescription_Girafarig_2[] = _( + "sleep, so it can keep watch over its\n" + "surroundings 24 hours a day."); +#else +static const u8 DexDescription_Girafarig_1[] = _( + "GIRAFARIG’s rear head also has a brain,\n" + "but it is small. The rear head attacks in\n" + "response to smells and sounds."); +static const u8 DexDescription_Girafarig_2[] = _( + "Approaching this POKéMON from behind\n" + "can cause the rear head to suddenly\n" + "lash out and bite."); +#endif + +static const u8 DexDescription_Pineco_1[] = _( + "PINECO hangs from a tree branch and\n" + "patiently waits for prey to come along.\n" + "If the POKéMON is disturbed while"); +static const u8 DexDescription_Pineco_2[] = _( + "eating by someone shaking its tree, it\n" + "drops down to the ground and explodes\n" + "with no warning."); + +static const u8 DexDescription_Forretress_1[] = _( + "FORRETRESS conceals itself inside its\n" + "hardened steel shell. The shell is opened\n" + "when the POKéMON is catching prey,"); +static const u8 DexDescription_Forretress_2[] = _( + "but it does so at such a quick pace\n" + "that the shell’s inside cannot be seen."); + +static const u8 DexDescription_Dunsparce_1[] = _( + "DUNSPARCE has a drill for its tail.\n" + "It uses this tail to burrow into the\n" + "ground backwards."); +static const u8 DexDescription_Dunsparce_2[] = _( + "This POKéMON is known to make its nest\n" + "in complex shapes deep under the\n" + "ground."); + +static const u8 DexDescription_Gligar_1[] = _( + "GLIGAR glides through the air without\n" + "a sound as if it were sliding.\n" + "This POKéMON hangs on to the face of"); +static const u8 DexDescription_Gligar_2[] = _( + "its foe using its clawed hind legs and\n" + "the large pincers on its forelegs, then\n" + "injects the prey with its poison barb."); + +static const u8 DexDescription_Steelix_1[] = _( + "STEELIX lives even further underground\n" + "than ONIX. This POKéMON is known to dig\n" + "towards the earth’s core."); +static const u8 DexDescription_Steelix_2[] = _( + "There are records of this POKéMON\n" + "reaching a depth of over six-tenths\n" + "of a mile underground."); + +static const u8 DexDescription_Snubbull_1[] = _( + "By baring its fangs and making a scary\n" + "face, SNUBBULL sends smaller POKéMON\n" + "scurrying away in terror."); +static const u8 DexDescription_Snubbull_2[] = _( + "However, this POKéMON seems a little\n" + "sad at making its foes flee."); + +static const u8 DexDescription_Granbull_1[] = _( + "GRANBULL has a particularly well-\n" + "developed lower jaw. The enormous fangs\n" + "are heavy, causing the POKéMON to tip"); +static const u8 DexDescription_Granbull_2[] = _( + "its head back for balance.\n" + "Unless it is startled, it will not try to\n" + "bite indiscriminately."); + +static const u8 DexDescription_Qwilfish_1[] = _( + "QWILFISH sucks in water, inflating\n" + "itself. This POKéMON uses the pressure\n" + "of the water it swallowed to shoot"); +static const u8 DexDescription_Qwilfish_2[] = _( + "toxic quills all at once from all over\n" + "its body. It finds swimming somewhat\n" + "challenging."); + +static const u8 DexDescription_Scizor_1[] = _( + "SCIZOR has a body with the hardness of\n" + "steel. It is not easily fazed by ordinary\n" + "sorts of attacks."); +static const u8 DexDescription_Scizor_2[] = _( + "This POKéMON flaps its wings to\n" + "regulate its body temperature."); + +static const u8 DexDescription_Shuckle_1[] = _( + "SHUCKLE quietly hides itself under\n" + "rocks, keeping its body concealed\n" + "inside its hard shell while eating"); +static const u8 DexDescription_Shuckle_2[] = _( + "berries it has stored away.\n" + "The berries mix with its body fluids to\n" + "become a juice."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Heracross_1[] = _( + "HERACROSS has sharp claws on its feet.\n" + "These are planted firmly into the\n" + "ground or the bark of a tree, giving the"); +static const u8 DexDescription_Heracross_2[] = _( + "POKéMON a secure and solid footing\n" + "to forcefully fling away foes with\n" + "its proud horn."); +#else +static const u8 DexDescription_Heracross_1[] = _( + "HERACROSS charges in a straight line at\n" + "its foe, slips beneath the foe’s grasp,\n" + "and then scoops up and hurls the"); +static const u8 DexDescription_Heracross_2[] = _( + "opponent with its mighty horn.\n" + "This POKéMON even has enough power\n" + "to topple a massive tree."); +#endif + +static const u8 DexDescription_Sneasel_1[] = _( + "SNEASEL scales trees by punching its\n" + "hooked claws into the bark.\n" + "This POKéMON seeks out unguarded"); +static const u8 DexDescription_Sneasel_2[] = _( + "nests and steals eggs for food while\n" + "the parents are away."); + +static const u8 DexDescription_Teddiursa_1[] = _( + "This POKéMON likes to lick its palms that\n" + "are sweetened by being soaked in honey.\n" + "TEDDIURSA concocts its own honey by"); +static const u8 DexDescription_Teddiursa_2[] = _( + "blending fruits and pollen collected by\n" + "BEEDRILL."); + +static const u8 DexDescription_Ursaring_1[] = _( + "In the forests inhabited by URSARING,\n" + "it is said that there are many streams\n" + "and towering trees where they"); +static const u8 DexDescription_Ursaring_2[] = _( + "gather food. This POKéMON walks\n" + "through its forest gathering food\n" + "every day."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Slugma_1[] = _( + "SLUGMA does not have any blood in its\n" + "body. Instead, intensely hot magma\n" + "circulates throughout this POKéMON’s"); +static const u8 DexDescription_Slugma_2[] = _( + "body, carrying essential nutrients and\n" + "oxygen to its organs."); +#else +static const u8 DexDescription_Slugma_1[] = _( + "Molten magma courses throughout\n" + "SLUGMA’s circulatory system.\n" + "If this POKéMON is chilled, the magma"); +static const u8 DexDescription_Slugma_2[] = _( + "cools and hardens. Its body turns\n" + "brittle and chunks fall off, reducing\n" + "its size."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Magcargo_1[] = _( + "MAGCARGO’s body temperature is\n" + "approximately 18,000 degrees F.\n" + "Water is vaporized on contact."); +static const u8 DexDescription_Magcargo_2[] = _( + "If this POKéMON is caught in the rain,\n" + "the raindrops instantly turn into\n" + "steam, cloaking the area in a thick fog."); +#else +static const u8 DexDescription_Magcargo_1[] = _( + "MAGCARGO’s shell is actually its skin\n" + "that hardened as a result of cooling.\n" + "Its shell is very brittle and fragile -"); +static const u8 DexDescription_Magcargo_2[] = _( + "just touching it causes it to crumble\n" + "apart. This POKéMON returns to its\n" + "original size by dipping itself in magma."); +#endif + +static const u8 DexDescription_Swinub_1[] = _( + "SWINUB roots for food by rubbing its\n" + "snout against the ground. Its favorite\n" + "food is a mushroom that grows under"); +static const u8 DexDescription_Swinub_2[] = _( + "the cover of dead grass.\n" + "This POKéMON occasionally roots out\n" + "hot springs."); + +static const u8 DexDescription_Piloswine_1[] = _( + "PILOSWINE is covered by a thick coat\n" + "of long hair that enables it to endure\n" + "the freezing cold."); +static const u8 DexDescription_Piloswine_2[] = _( + "This POKéMON uses its tusks to dig up\n" + "food that has been buried under ice."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Corsola_1[] = _( + "Clusters of CORSOLA congregate in warm\n" + "seas where they serve as ideal hiding\n" + "places for smaller POKéMON."); +static const u8 DexDescription_Corsola_2[] = _( + "When the water temperature falls, this\n" + "POKéMON migrates to the southern seas."); +#else +static const u8 DexDescription_Corsola_1[] = _( + "CORSOLA’s branches glitter very\n" + "beautifully in seven colors when they\n" + "catch sunlight."); +static const u8 DexDescription_Corsola_2[] = _( + "If any branch breaks off, this POKéMON\n" + "grows it back in just one night."); +#endif + +static const u8 DexDescription_Remoraid_1[] = _( + "REMORAID sucks in water, then expels it\n" + "at high velocity using its abdominal\n" + "muscles to shoot down flying prey."); +static const u8 DexDescription_Remoraid_2[] = _( + "When evolution draws near, this POKéMON\n" + "travels downstream from rivers."); + +static const u8 DexDescription_Octillery_1[] = _( + "OCTILLERY grabs onto its foe using\n" + "its tentacles. This POKéMON tries to\n" + "immobilize it before delivering the"); +static const u8 DexDescription_Octillery_2[] = _( + "finishing blow.\n" + "If the foe turns out to be too strong,\n" + "OCTILLERY spews ink to escape."); + +static const u8 DexDescription_Delibird_1[] = _( + "DELIBIRD carries its food bundled up\n" + "in its tail. There once was a famous\n" + "explorer who managed to reach the peak"); +static const u8 DexDescription_Delibird_2[] = _( + "of Mt. Everest thanks to one of these\n" + "POKéMON sharing its food."); + +static const u8 DexDescription_Mantine_1[] = _( + "On sunny days, schools of MANTINE can\n" + "be seen elegantly leaping over the\n" + "sea’s waves."); +static const u8 DexDescription_Mantine_2[] = _( + "This POKéMON is not bothered by the\n" + "REMORAID that hitches rides."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Skarmory_1[] = _( + "SKARMORY’s steel wings become tattered\n" + "and bashed in from repeated battles.\n" + "Once a year, the battered wings grow"); +static const u8 DexDescription_Skarmory_2[] = _( + "back completely, restoring the cutting\n" + "edges to their pristine state."); +#else +static const u8 DexDescription_Skarmory_1[] = _( + "SKARMORY is entirely encased in hard,\n" + "protective armor. This POKéMON flies at\n" + "close to 190 mph."); +static const u8 DexDescription_Skarmory_2[] = _( + "It slashes foes with its wings that\n" + "possess swordlike cutting edges."); +#endif + +static const u8 DexDescription_Houndour_1[] = _( + "HOUNDOUR hunt as a coordinated pack.\n" + "They communicate with each other using\n" + "a variety of cries to corner their prey."); +static const u8 DexDescription_Houndour_2[] = _( + "This POKéMON’s remarkable teamwork is\n" + "unparalleled."); + +static const u8 DexDescription_Houndoom_1[] = _( + "In a HOUNDOOM pack, the one with its\n" + "horns raked sharply towards the back\n" + "serves a leadership role."); +static const u8 DexDescription_Houndoom_2[] = _( + "These POKéMON choose their leader by\n" + "fighting amongst themselves."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Kingdra_1[] = _( + "KINGDRA sleeps on the seafloor where\n" + "it is otherwise devoid of life.\n" + "When a storm arrives, the POKéMON is"); +static const u8 DexDescription_Kingdra_2[] = _( + "said to awaken and wander about in\n" + "search of prey."); +#else +static const u8 DexDescription_Kingdra_1[] = _( + "KINGDRA lives at extreme ocean depths\n" + "that are otherwise uninhabited.\n" + "It has long been believed that the"); +static const u8 DexDescription_Kingdra_2[] = _( + "yawning of this POKéMON creates\n" + "spiraling ocean currents."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Phanpy_1[] = _( + "PHANPY uses its long nose to shower\n" + "itself. When others gather around, they\n" + "thoroughly douse each other with water."); +static const u8 DexDescription_Phanpy_2[] = _( + "These POKéMON can be seen drying their\n" + "soaking-wet bodies at the edge of\n" + "water."); +#else +static const u8 DexDescription_Phanpy_1[] = _( + "For its nest, PHANPY digs a vertical pit \n" + "in the ground at the edge of a river.\n" + "It marks the area around its nest with"); +static const u8 DexDescription_Phanpy_2[] = _( + "its trunk to let the others know that\n" + "the area has been claimed."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Donphan_1[] = _( + "If DONPHAN were to tackle with its hard\n" + "body, even a house could be destroyed.\n" + "Using its massive strength, the"); +static const u8 DexDescription_Donphan_2[] = _( + "POKéMON helps clear rock and mud slides\n" + "that block mountain trails."); +#else +static const u8 DexDescription_Donphan_1[] = _( + "DONPHAN’s favorite attack is curling\n" + "its body into a ball, then charging at\n" + "its foe while rolling at high speed."); +static const u8 DexDescription_Donphan_2[] = _( + "Once it starts rolling, this POKéMON\n" + "can’t stop very easily."); +#endif + +static const u8 DexDescription_Porygon2_1[] = _( + "PORYGON2 was created by humans using\n" + "the power of science. The man-made\n" + "POKéMON has been endowed with"); +static const u8 DexDescription_Porygon2_2[] = _( + "artificial intelligence that enables it\n" + "to learn new gestures and emotions\n" + "on its own."); + +static const u8 DexDescription_Stantler_1[] = _( + "STANTLER’s magnificent antlers were\n" + "traded at high prices as works of art.\n" + "As a result, this POKéMON was hunted"); +static const u8 DexDescription_Stantler_2[] = _( + "close to extinction by those who were\n" + "after the priceless antlers."); + +static const u8 DexDescription_Smeargle_1[] = _( + "SMEARGLE marks the boundaries of its\n" + "territory using a body fluid that leaks\n" + "out from the tip of its tail."); +static const u8 DexDescription_Smeargle_2[] = _( + "Over 5,000 different marks left by this\n" + "POKéMON have been found."); + +static const u8 DexDescription_Tyrogue_1[] = _( + "TYROGUE becomes stressed out if it\n" + "does not get to train every day.\n" + "When raising this POKéMON, the TRAINER"); +static const u8 DexDescription_Tyrogue_2[] = _( + "must establish and uphold various\n" + "training methods."); + +static const u8 DexDescription_Hitmontop_1[] = _( + "HITMONTOP spins on its head at high\n" + "speed, all the while delivering kicks.\n" + "This technique is a remarkable mix of"); +static const u8 DexDescription_Hitmontop_2[] = _( + "both offense and defense at the same\n" + "time. The POKéMON travels faster\n" + "spinning than it does walking."); + +static const u8 DexDescription_Smoochum_1[] = _( + "SMOOCHUM actively runs about, but\n" + "also falls quite often.\n" + "Whenever the chance arrives, it will"); +static const u8 DexDescription_Smoochum_2[] = _( + "look for its reflection to make sure its\n" + "face hasn’t become dirty."); + +static const u8 DexDescription_Elekid_1[] = _( + "ELEKID stores electricity in its body.\n" + "If it touches metal and accidentally\n" + "discharges all its built-up electricity,"); +static const u8 DexDescription_Elekid_2[] = _( + "this POKéMON begins swinging its arms\n" + "in circles to recharge itself."); + +static const u8 DexDescription_Magby_1[] = _( + "MAGBY’s state of health is determined\n" + "by observing the fire it breathes.\n" + "If the POKéMON is spouting yellow"); +static const u8 DexDescription_Magby_2[] = _( + "flames from its mouth, it is in good\n" + "health. When it is fatigued, black smoke\n" + "will be mixed in with the flames."); + +static const u8 DexDescription_Miltank_1[] = _( + "MILTANK gives over five gallons of milk\n" + "on a daily basis. Its sweet milk is\n" + "enjoyed by children and grown-ups alike."); +static const u8 DexDescription_Miltank_2[] = _( + "People who can’t drink milk turn it into\n" + "yogurt and eat it instead."); + +static const u8 DexDescription_Blissey_1[] = _( + "BLISSEY senses sadness with its fluffy\n" + "coat of fur. If it does so, this POKéMON\n" + "will rush over to the sad person,"); +static const u8 DexDescription_Blissey_2[] = _( + "however far they may be, to share an\n" + "egg of happiness that brings a smile\n" + "to any face."); + +static const u8 DexDescription_Raikou_1[] = _( + "RAIKOU embodies the speed of lightning.\n" + "The roars of this POKéMON send shock\n" + "waves shuddering through the air and"); +static const u8 DexDescription_Raikou_2[] = _( + "shake the ground as if lightning bolts\n" + "had come crashing down."); + +static const u8 DexDescription_Entei_1[] = _( + "ENTEI embodies the passion of magma.\n" + "This POKéMON is thought to have been\n" + "born in the eruption of a volcano."); +static const u8 DexDescription_Entei_2[] = _( + "It sends up massive bursts of fire that\n" + "utterly consume all that they touch."); + +static const u8 DexDescription_Suicune_1[] = _( + "SUICUNE embodies the compassion of\n" + "a pure spring of water. It runs across\n" + "the land with gracefulness."); +static const u8 DexDescription_Suicune_2[] = _( + "This POKéMON has the power to purify\n" + "dirty water."); + +static const u8 DexDescription_Larvitar_1[] = _( + "LARVITAR is born deep under the ground.\n" + "To come up to the surface, this POKéMON\n" + "must eat its way through the soil above."); +static const u8 DexDescription_Larvitar_2[] = _( + "Until it does so, LARVITAR cannot see\n" + "its parent’s face."); + +static const u8 DexDescription_Pupitar_1[] = _( + "PUPITAR creates a gas inside its body\n" + "that it compresses and forcefully\n" + "ejects to propel itself like a jet."); +static const u8 DexDescription_Pupitar_2[] = _( + "The body is very durable - it avoids\n" + "damage even if it hits solid steel."); + +static const u8 DexDescription_Tyranitar_1[] = _( + "TYRANITAR is so overwhelmingly\n" + "powerful, it can bring down a whole\n" + "mountain to make its nest."); +static const u8 DexDescription_Tyranitar_2[] = _( + "This POKéMON wanders about in\n" + "mountains seeking new opponents to\n" + "fight."); + +static const u8 DexDescription_Lugia_1[] = _( + "LUGIA’s wings pack devastating power -\n" + "a light fluttering of its wings can blow\n" + "apart regular houses."); +static const u8 DexDescription_Lugia_2[] = _( + "As a result, this POKéMON chooses to\n" + "live out of sight deep under the sea."); + +static const u8 DexDescription_HoOh_1[] = _( + "HO-OH’s feathers glow in seven colors\n" + "depending on the angle at which they\n" + "are struck by light."); +static const u8 DexDescription_HoOh_2[] = _( + "These feathers are said to bring\n" + "happiness to the bearers. This POKéMON\n" + "is said to live at the foot of a rainbow."); + +static const u8 DexDescription_Celebi_1[] = _( + "This POKéMON came from the future by\n" + "crossing over time.\n" + "It is thought that so long as CELEBI"); +static const u8 DexDescription_Celebi_2[] = _( + "appears, a bright and shining future\n" + "awaits us."); + +#ifdef SAPPHIRE +static const u8 DexDescription_Treecko_1[] = _( + "TREECKO is cool, calm, and collected -\n" + "it never panics under any situation.\n" + "If a bigger foe were to glare at this"); +static const u8 DexDescription_Treecko_2[] = _( + "POKéMON, it would glare right back\n" + "without conceding an inch of ground."); +#else +static const u8 DexDescription_Treecko_1[] = _( + "TREECKO has small hooks on the bottom\n" + "of its feet that enable it to scale\n" + "vertical walls."); +static const u8 DexDescription_Treecko_2[] = _( + "This POKéMON attacks by slamming foes\n" + "with its thick tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Grovyle_1[] = _( + "This POKéMON adeptly flies from branch\n" + "to branch in trees.\n" + "In a forest, no POKéMON can ever hope"); +static const u8 DexDescription_Grovyle_2[] = _( + "to catch a fleeing GROVYLE however\n" + "fast they may be."); +#else +static const u8 DexDescription_Grovyle_1[] = _( + "The leaves growing out of GROVYLE’s\n" + "body are convenient for camouflaging\n" + "it from enemies in the forest."); +static const u8 DexDescription_Grovyle_2[] = _( + "This POKéMON is a master at climbing\n" + "trees in jungles."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sceptile_1[] = _( + "SCEPTILE has seeds growing on its back.\n" + "They are said to be bursting with\n" + "nutrients that revitalize trees."); +static const u8 DexDescription_Sceptile_2[] = _( + "This POKéMON raises the trees in a\n" + "forest with loving care."); +#else +static const u8 DexDescription_Sceptile_1[] = _( + "The leaves growing on SCEPTILE’s body\n" + "are very sharp edged. This POKéMON is\n" + "very agile - it leaps all over the"); +static const u8 DexDescription_Sceptile_2[] = _( + "branches of trees and jumps on its foe\n" + "from above or behind."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Torchic_1[] = _( + "TORCHIC has a place inside its body\n" + "where it keeps its flame. Give it a hug -\n" + "it will be glowing with warmth."); +static const u8 DexDescription_Torchic_2[] = _( + "This POKéMON is covered all over by a\n" + "fluffy coat of down."); +#else +static const u8 DexDescription_Torchic_1[] = _( + "TORCHIC sticks with its TRAINER,\n" + "following behind with unsteady\n" + "steps."); +static const u8 DexDescription_Torchic_2[] = _( + "This POKéMON breathes fire of over\n" + "1,800 degrees F, including fireballs\n" + "that leave the foe scorched black."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Combusken_1[] = _( + "COMBUSKEN battles with the intensely\n" + "hot flames it spews from its beak and\n" + "with outstandingly destructive kicks."); +static const u8 DexDescription_Combusken_2[] = _( + "This POKéMON’s cry is very loud and\n" + "distracting."); +#else +static const u8 DexDescription_Combusken_1[] = _( + "COMBUSKEN toughens up its legs and\n" + "thighs by running through fields and\n" + "mountains."); +static const u8 DexDescription_Combusken_2[] = _( + "This POKéMON’s legs possess both speed\n" + "and power, enabling it to dole out ten\n" + "kicks in one second."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Blaziken_1[] = _( + "BLAZIKEN has incredibly strong legs -\n" + "it can easily clear a 30-story building\n" + "in one leap."); +static const u8 DexDescription_Blaziken_2[] = _( + "This POKéMON’s blazing punches leave\n" + "its foes scorched and blackened."); +#else +static const u8 DexDescription_Blaziken_1[] = _( + "In battle, BLAZIKEN blows out intense\n" + "flames from its wrists and attacks foes\n" + "courageously."); +static const u8 DexDescription_Blaziken_2[] = _( + "The stronger the foe, the more\n" + "intensely this POKéMON’s wrists burn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mudkip_1[] = _( + "In water, MUDKIP breathes using the\n" + "gills on its cheeks.\n" + "If it is faced with a tight situation in"); +static const u8 DexDescription_Mudkip_2[] = _( + "battle, this POKéMON will unleash its\n" + "amazing power - it can crush rocks\n" + "bigger than itself."); +#else +static const u8 DexDescription_Mudkip_1[] = _( + "The fin on MUDKIP’s head acts as highly\n" + "sensitive radar. Using this fin to sense\n" + "movements of water and air, this"); +static const u8 DexDescription_Mudkip_2[] = _( + "POKéMON can determine what is taking\n" + "place around it without using its eyes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Marshtomp_1[] = _( + "MARSHTOMP is much faster at traveling\n" + "through mud than it is at swimming.\n" + "This POKéMON’s hindquarters exhibit"); +static const u8 DexDescription_Marshtomp_2[] = _( + "obvious development, giving it the\n" + "ability to walk on just its hind legs."); +#else +static const u8 DexDescription_Marshtomp_1[] = _( + "The surface of MARSHTOMP’s body is\n" + "enveloped by a thin, sticky film that\n" + "enables it to live on land."); +static const u8 DexDescription_Marshtomp_2[] = _( + "This POKéMON plays in mud on beaches\n" + "when the ocean tide is low."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swampert_1[] = _( + "SWAMPERT predicts storms by sensing\n" + "subtle differences in the sounds of\n" + "waves and tidal winds with its fins."); +static const u8 DexDescription_Swampert_2[] = _( + "If a storm is approaching, it piles up\n" + "boulders to protect itself."); +#else +static const u8 DexDescription_Swampert_1[] = _( + "SWAMPERT is very strong. It has enough\n" + "power to easily drag a boulder weighing\n" + "more than a ton."); +static const u8 DexDescription_Swampert_2[] = _( + "This POKéMON also has powerful vision\n" + "that lets it see even in murky water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Poochyena_1[] = _( + "POOCHYENA is an omnivore - it will eat\n" + "anything. A distinguishing feature is\n" + "how large its fangs are compared to"); +static const u8 DexDescription_Poochyena_2[] = _( + "its body. This POKéMON tries to\n" + "intimidate its foes by making the hair\n" + "on its tail bristle out."); +#else +static const u8 DexDescription_Poochyena_1[] = _( + "At first sight, POOCHYENA takes a bite\n" + "at anything that moves.\n" + "This POKéMON chases after prey until"); +static const u8 DexDescription_Poochyena_2[] = _( + "the victim becomes exhausted.\n" + "However, it may turn tail if the prey\n" + "strikes back."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mightyena_1[] = _( + "MIGHTYENA travel and act as a pack\n" + "in the wild. The memory of its life in the\n" + "wild compels the POKéMON to obey only"); +static const u8 DexDescription_Mightyena_2[] = _( + "those TRAINERS that it recognizes to\n" + "possess superior skill."); +#else +static const u8 DexDescription_Mightyena_1[] = _( + "MIGHTYENA gives obvious signals when\n" + "it is preparing to attack. It starts to\n" + "growl deeply and then flattens its body."); +static const u8 DexDescription_Mightyena_2[] = _( + "This POKéMON will bite savagely with its\n" + "sharply pointed fangs."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zigzagoon_1[] = _( + "The hair on ZIGZAGOON’s back is \n" + "bristly. It rubs the hard back hair\n" + "against trees to leave its territorial"); +static const u8 DexDescription_Zigzagoon_2[] = _( + "markings.\n" + "This POKéMON may play dead to fool foes\n" + "in battle."); +#else +static const u8 DexDescription_Zigzagoon_1[] = _( + "ZIGZAGOON restlessly wanders\n" + "everywhere at all times. This POKéMON\n" + "does so because it is very curious."); +static const u8 DexDescription_Zigzagoon_2[] = _( + "It becomes interested in anything\n" + "that it happens to see."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Linoone_1[] = _( + "When hunting, LINOONE will make a\n" + "beeline straight for the prey at a full\n" + "run. While this POKéMON is capable of"); +static const u8 DexDescription_Linoone_2[] = _( + "topping 60 mph, it has to come to a\n" + "screeching halt before it can turn."); +#else +static const u8 DexDescription_Linoone_1[] = _( + "LINOONE always runs full speed and only\n" + "in straight lines. If facing an obstacle,\n" + "it makes a right-angle turn to evade it."); +static const u8 DexDescription_Linoone_2[] = _( + "This POKéMON is very challenged by\n" + "gently curving roads."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wurmple_1[] = _( + "WURMPLE is targeted by SWELLOW as\n" + "prey. This POKéMON will try to resist by\n" + "pointing the spikes on its rear at the"); +static const u8 DexDescription_Wurmple_2[] = _( + "attacking predator.\n" + "It will weaken the foe by leaking poison\n" + "from the spikes."); +#else +static const u8 DexDescription_Wurmple_1[] = _( + "Using the spikes on its rear end, \n" + "WURMPLE peels the bark off trees and\n" + "feeds on the sap that oozes out."); +static const u8 DexDescription_Wurmple_2[] = _( + "This POKéMON’s feet are tipped with\n" + "suction pads that allow it to cling to\n" + "glass without slipping."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Silcoon_1[] = _( + "SILCOON was thought to endure hunger\n" + "and not consume anything before its\n" + "evolution. However, it is now thought"); +static const u8 DexDescription_Silcoon_2[] = _( + "that this POKéMON slakes its thirst by\n" + "drinking rainwater that collects on its\n" + "silk."); +#else +static const u8 DexDescription_Silcoon_1[] = _( + "SILCOON tethers itself to a tree branch\n" + "using silk to keep from falling. There, \n" + "this POKéMON hangs quietly while it"); +static const u8 DexDescription_Silcoon_2[] = _( + "awaits evolution.\n" + "It peers out of the silk cocoon through\n" + "a small hole."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Beautifly_1[] = _( + "BEAUTIFLY has a long mouth like a coiled\n" + "needle, which is very convenient for\n" + "collecting pollen from flowers."); +static const u8 DexDescription_Beautifly_2[] = _( + "This POKéMON rides the spring winds as\n" + "it flits around gathering pollen."); +#else +static const u8 DexDescription_Beautifly_1[] = _( + "BEAUTIFLY’s favorite food is the sweet\n" + "pollen of flowers. If you want to see\n" + "this POKéMON, just leave a potted"); +static const u8 DexDescription_Beautifly_2[] = _( + "flower by an open window. BEAUTIFLY\n" + "is sure to come looking for pollen."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cascoon_1[] = _( + "If it is attacked, CASCOON remains\n" + "motionless however badly it may be\n" + "hurt. It does so because if it were to"); +static const u8 DexDescription_Cascoon_2[] = _( + "move, its body would be weak upon\n" + "evolution. This POKéMON will also not\n" + "forget the pain it endured."); +#else +static const u8 DexDescription_Cascoon_1[] = _( + "CASCOON makes its protective cocoon\n" + "by wrapping its body entirely with a\n" + "fine silk from its mouth. Once the silk"); +static const u8 DexDescription_Cascoon_2[] = _( + "goes around its body, it hardens.\n" + "This POKéMON prepares for its evolution\n" + "inside the cocoon."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dustox_1[] = _( + "When DUSTOX flaps its wings, a fine\n" + "dust is scattered all over. This dust is\n" + "actually a powerful poison that will"); +static const u8 DexDescription_Dustox_2[] = _( + "even make a pro wrestler sick.\n" + "This POKéMON searches for food using\n" + "its antennae like radar."); +#else +static const u8 DexDescription_Dustox_1[] = _( + "DUSTOX is instinctively drawn to light.\n" + "Swarms of this POKéMON are attracted\n" + "by the bright lights of cities, where"); +static const u8 DexDescription_Dustox_2[] = _( + "they wreak havoc by stripping the\n" + "leaves off roadside trees for food."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lotad_1[] = _( + "LOTAD is said to have dwelled on land\n" + "before. However, this POKéMON is\n" + "thought to have returned to water"); +static const u8 DexDescription_Lotad_2[] = _( + "because the leaf on its head grew large\n" + "and heavy. It now lives by floating\n" + "atop the water."); +#else +static const u8 DexDescription_Lotad_1[] = _( + "LOTAD live in ponds and lakes, where\n" + "they float on the surface.\n" + "It grows weak if its broad leaf dies."); +static const u8 DexDescription_Lotad_2[] = _( + "On rare occasions, this POKéMON travels\n" + "on land in search of clean water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lombre_1[] = _( + "LOMBRE’s entire body is covered by a\n" + "slippery, slimy film. It feels horribly\n" + "unpleasant to be touched by this"); +static const u8 DexDescription_Lombre_2[] = _( + "POKéMON’s hands.\n" + "LOMBRE is often mistaken for a human\n" + "child."); +#else +static const u8 DexDescription_Lombre_1[] = _( + "LOMBRE is nocturnal - it will get active\n" + "after dusk. It is also a mischief-maker.\n" + "When this POKéMON spots anglers,"); +static const u8 DexDescription_Lombre_2[] = _( + "it tugs on their fishing lines from\n" + "beneath the surface and enjoys their\n" + "consternation."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ludicolo_1[] = _( + "Upon hearing an upbeat and cheerful\n" + "rhythm, the cells in LUDICOLO’s body\n" + "become very energetic and active."); +static const u8 DexDescription_Ludicolo_2[] = _( + "Even in battle, this POKéMON will\n" + "exhibit an amazing amount of power."); +#else +static const u8 DexDescription_Ludicolo_1[] = _( + "LUDICOLO begins dancing as soon as\n" + "it hears cheerful, festive music.\n" + "This POKéMON is said to appear when it"); +static const u8 DexDescription_Ludicolo_2[] = _( + "hears the singing of children on hiking\n" + "outings."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seedot_1[] = _( + "SEEDOT looks exactly like an acorn\n" + "when it is dangling from a tree branch.\n" + "It startles other POKéMON by suddenly"); +static const u8 DexDescription_Seedot_2[] = _( + "moving.\n" + "This POKéMON polishes its body once a\n" + "day using leaves."); +#else +static const u8 DexDescription_Seedot_1[] = _( + "SEEDOT attaches itself to a tree\n" + "branch using the top of its head.\n" + "It sucks moisture from the tree while"); +static const u8 DexDescription_Seedot_2[] = _( + "hanging off the branch.\n" + "The more water it drinks, the glossier\n" + "this POKéMON’s body becomes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nuzleaf_1[] = _( + "This POKéMON pulls out the leaf on its\n" + "head and makes a flute with it.\n" + "The sound of NUZLEAF’s flute strikes"); +static const u8 DexDescription_Nuzleaf_2[] = _( + "fear and uncertainty in the hearts of\n" + "people lost in a forest."); +#else +static const u8 DexDescription_Nuzleaf_1[] = _( + "NUZLEAF live in densely overgrown\n" + "forests. They occasionally venture out\n" + "of the forest to startle people."); +static const u8 DexDescription_Nuzleaf_2[] = _( + "This POKéMON dislikes having its long\n" + "nose pinched."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shiftry_1[] = _( + "SHIFTRY’s large fans generate awesome\n" + "gusts of wind at a speed close to 100\n" + "feet per second. The whipped-up wind"); +static const u8 DexDescription_Shiftry_2[] = _( + "blows anything away.\n" + "This POKéMON chooses to live quietly\n" + "deep in forests."); +#else +static const u8 DexDescription_Shiftry_1[] = _( + "SHIFTRY is a mysterious POKéMON that\n" + "is said to live atop towering trees \n" + "dating back over a thousand years."); +static const u8 DexDescription_Shiftry_2[] = _( + "It creates terrific windstorms with\n" + "the fans it holds."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Taillow_1[] = _( + "TAILLOW is young - it has only just\n" + "left its nest. As a result, it sometimes\n" + "becomes lonesome and cries at night."); +static const u8 DexDescription_Taillow_2[] = _( + "This POKéMON feeds on WURMPLE that\n" + "live in forests."); +#else +static const u8 DexDescription_Taillow_1[] = _( + "TAILLOW courageously stands its\n" + "ground against foes, however strong\n" + "they may be."); +static const u8 DexDescription_Taillow_2[] = _( + "This gutsy POKéMON will remain defiant\n" + "even after a loss. On the other hand,\n" + "it cries loudly if it becomes hungry."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swellow_1[] = _( + "SWELLOW is very conscientious about\n" + "the upkeep of its glossy wings.\n" + "Once two SWELLOW are gathered, they"); +static const u8 DexDescription_Swellow_2[] = _( + "diligently take care of cleaning each\n" + "other’s wings."); +#else +static const u8 DexDescription_Swellow_1[] = _( + "SWELLOW flies high above our heads,\n" + "making graceful arcs in the sky.\n" + "This POKéMON dives at a steep angle as"); +static const u8 DexDescription_Swellow_2[] = _( + "soon as it spots its prey. The hapless\n" + "prey is tightly grasped by SWELLOW’s\n" + "clawed feet, preventing escape."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wingull_1[] = _( + "WINGULL rides updrafts rising from the\n" + "sea by extending its long and narrow\n" + "wings to glide."); +static const u8 DexDescription_Wingull_2[] = _( + "This POKéMON’s long beak is useful for\n" + "catching prey."); +#else +static const u8 DexDescription_Wingull_1[] = _( + "WINGULL has the habit of carrying prey\n" + "and valuables in its beak and hiding\n" + "them in all sorts of locations."); +static const u8 DexDescription_Wingull_2[] = _( + "This POKéMON rides the winds and flies\n" + "as if it were skating across the sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Pelipper_1[] = _( + "PELIPPER searches for food while in\n" + "flight by skimming the wave tops.\n" + "This POKéMON dips its large bill in the"); +static const u8 DexDescription_Pelipper_2[] = _( + "sea to scoop up food, then swallows\n" + "everything in one big gulp."); +#else +static const u8 DexDescription_Pelipper_1[] = _( + "PELIPPER is a flying transporter that\n" + "carries small POKéMON and eggs inside\n" + "its massive bill."); +static const u8 DexDescription_Pelipper_2[] = _( + "This POKéMON builds its nest on steep\n" + "cliffs facing the sea."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ralts_1[] = _( + "RALTS has the ability to sense the\n" + "emotions of people.\n" + "If its TRAINER is in a cheerful mood,"); +static const u8 DexDescription_Ralts_2[] = _( + "this POKéMON grows cheerful and joyous\n" + "in the same way."); +#else +static const u8 DexDescription_Ralts_1[] = _( + "RALTS senses the emotions of\n" + "people using the horns on its head.\n" + "This POKéMON rarely appears before"); +static const u8 DexDescription_Ralts_2[] = _( + "people. But when it does, it draws\n" + "closer if it senses that the person has\n" + "a positive disposition."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kirlia_1[] = _( + "KIRLIA uses the horns on its head\n" + "to amplify its psychokinetic power.\n" + "When the POKéMON uses its power,"); +static const u8 DexDescription_Kirlia_2[] = _( + "the air around it becomes distorted,\n" + "creating mirages of nonexistent\n" + "scenery."); +#else +static const u8 DexDescription_Kirlia_1[] = _( + "It is said that a KIRLIA that is\n" + "exposed to the positive emotions of\n" + "its TRAINER grows beautiful."); +static const u8 DexDescription_Kirlia_2[] = _( + "This POKéMON controls psychokinetic\n" + "powers with its highly developed brain."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gardevoir_1[] = _( + "GARDEVOIR has the psychokinetic\n" + "power to distort the dimensions and\n" + "create a small black hole."); +static const u8 DexDescription_Gardevoir_2[] = _( + "This POKéMON will try to protect its\n" + "TRAINER even at the risk of its own\n" + "life."); +#else +static const u8 DexDescription_Gardevoir_1[] = _( + "GARDEVOIR has the ability to read the\n" + "future. If it senses impending danger\n" + "to its TRAINER, this POKéMON is said to"); +static const u8 DexDescription_Gardevoir_2[] = _( + "unleash its psychokinetic energy at\n" + "full power."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Surskit_1[] = _( + "If SURSKIT senses danger, it secretes\n" + "a thick, sugary syrup from the tip of\n" + "its head."); +static const u8 DexDescription_Surskit_2[] = _( + "There are some POKéMON that love\n" + "eating this syrup."); +#else +static const u8 DexDescription_Surskit_1[] = _( + "From the tips of its feet, SURSKIT\n" + "secretes an oil that enables it to walk\n" + "on water as if it were skating."); +static const u8 DexDescription_Surskit_2[] = _( + "This POKéMON feeds on microscopic\n" + "organisms in ponds and lakes."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Masquerain_1[] = _( + "MASQUERAIN’s antennas have eyelike\n" + "patterns that usually give it an angry\n" + "look. If the “eyes” are droopy and"); +static const u8 DexDescription_Masquerain_2[] = _( + "appear sad, it is said to be a sign\n" + "that a heavy rainfall is on its way."); +#else +static const u8 DexDescription_Masquerain_1[] = _( + "MASQUERAIN intimidates enemies with\n" + "the eyelike patterns on its antennas.\n" + "This POKéMON flaps its four wings to"); +static const u8 DexDescription_Masquerain_2[] = _( + "freely fly in any direction - even\n" + "sideways and backwards - as if it were\n" + "a helicopter."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shroomish_1[] = _( + "If SHROOMISH senses danger, it shakes\n" + "its body and scatters spores from the\n" + "top of its head."); +static const u8 DexDescription_Shroomish_2[] = _( + "This POKéMON’s spores are so toxic,\n" + "they make trees and weeds wilt."); +#else +static const u8 DexDescription_Shroomish_1[] = _( + "SHROOMISH live in damp soil in the dark\n" + "depths of forests. They are often\n" + "found keeping still under fallen leaves."); +static const u8 DexDescription_Shroomish_2[] = _( + "This POKéMON feeds on compost that\n" + "is made up of fallen, rotted leaves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Breloom_1[] = _( + "The seeds ringing BRELOOM’s tail are\n" + "made of hardened toxic spores. It is\n" + "horrible to eat the seeds."); +static const u8 DexDescription_Breloom_2[] = _( + "Just taking a bite of this POKéMON’s\n" + "seed will cause your stomach to rumble."); +#else +static const u8 DexDescription_Breloom_1[] = _( + "BRELOOM closes in on its foe with light\n" + "and sprightly footwork, then throws\n" + "punches with its stretchy arms."); +static const u8 DexDescription_Breloom_2[] = _( + "This POKéMON’s fighting technique puts\n" + "boxers to shame."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Slakoth_1[] = _( + "SLAKOTH’s heart beats just once a\n" + "minute. Whatever happens, it is\n" + "content to loaf around motionless."); +static const u8 DexDescription_Slakoth_2[] = _( + "It is rare to see this POKéMON in\n" + "motion."); +#else +static const u8 DexDescription_Slakoth_1[] = _( + "SLAKOTH lolls around for over twenty\n" + "hours every day. Because it moves so\n" + "little, it does not need much food."); +static const u8 DexDescription_Slakoth_2[] = _( + "This POKéMON’s sole daily meal consists\n" + "of just three leaves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vigoroth_1[] = _( + "VIGOROTH is simply incapable of\n" + "remaining still. Even when it tries to\n" + "sleep, the blood in its veins grows"); +static const u8 DexDescription_Vigoroth_2[] = _( + "agitated, compelling this POKéMON to\n" + "run wild throughout the jungle before\n" + "it can settle down."); +#else +static const u8 DexDescription_Vigoroth_1[] = _( + "VIGOROTH is always itching and agitated\n" + "to go on a wild rampage. It simply can’t\n" + "tolerate sitting still for even a minute."); +static const u8 DexDescription_Vigoroth_2[] = _( + "This POKéMON’s stress level rises if it\n" + "can’t be moving constantly."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Slaking_1[] = _( + "Wherever SLAKING live, rings of over\n" + "a yard in diameter appear in grassy\n" + "fields. They are made by the POKéMON"); +static const u8 DexDescription_Slaking_2[] = _( + "as it eats all the grass within reach\n" + "while lying prone on the ground."); +#else +static const u8 DexDescription_Slaking_1[] = _( + "SLAKING spends all day lying down and\n" + "lolling about.\n" + "It eats grass growing within its reach."); +static const u8 DexDescription_Slaking_2[] = _( + "If it eats all the grass it can reach,\n" + "this POKéMON reluctantly moves to\n" + "another spot."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nincada_1[] = _( + "NINCADA lives underground. It uses its\n" + "sharp claws to carve the roots of trees\n" + "and absorb moisture and nutrients."); +static const u8 DexDescription_Nincada_2[] = _( + "This POKéMON can’t withstand bright\n" + "sunlight so avoids it."); +#else +static const u8 DexDescription_Nincada_1[] = _( + "NINCADA lives underground for many\n" + "years in complete darkness.\n" + "This POKéMON absorbs nutrients from"); +static const u8 DexDescription_Nincada_2[] = _( + "the roots of trees. It stays motionless\n" + "as it waits for evolution."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Ninjask_1[] = _( + "If NINJASK is not trained properly,\n" + "it will refuse to obey the TRAINER and\n" + "cry loudly continuously."); +static const u8 DexDescription_Ninjask_2[] = _( + "Because of this quality, this POKéMON\n" + "is said to be one that puts the\n" + "TRAINER’s abilities to the test."); +#else +static const u8 DexDescription_Ninjask_1[] = _( + "NINJASK moves around at such a high\n" + "speed that it cannot be seen, even\n" + "while its crying can be clearly heard."); +static const u8 DexDescription_Ninjask_2[] = _( + "For that reason, this POKéMON was long\n" + "believed to be invisible."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shedinja_1[] = _( + "SHEDINJA is a peculiar POKéMON.\n" + "It seems to appear unsought in a POKé\n" + "BALL after a NINCADA evolves."); +static const u8 DexDescription_Shedinja_2[] = _( + "This bizarre POKéMON is entirely\n" + "immobile - it doesn’t even breathe."); +#else +static const u8 DexDescription_Shedinja_1[] = _( + "SHEDINJA’s hard body doesn’t move -\n" + "not even a twitch. In fact, its body\n" + "appears to be merely a hollow shell."); +static const u8 DexDescription_Shedinja_2[] = _( + "It is believed that this POKéMON will\n" + "steal the spirit of anyone peering into\n" + "its hollow body from its back."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Whismur_1[] = _( + "WHISMUR is very timid. If it starts to\n" + "cry loudly, it becomes startled by its\n" + "own crying and cries even harder."); +static const u8 DexDescription_Whismur_2[] = _( + "When it finally stops crying, the\n" + "POKéMON goes to sleep, all tired out."); +#else +static const u8 DexDescription_Whismur_1[] = _( + "Normally, WHISMUR’s voice is very quiet -\n" + "it is barely audible even if one is\n" + "paying close attention."); +static const u8 DexDescription_Whismur_2[] = _( + "However, if this POKéMON senses danger,\n" + "it starts crying at an earsplitting\n" + "volume."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Loudred_1[] = _( + "LOUDRED shouts while stamping its feet.\n" + "After it finishes shouting, this\n" + "POKéMON becomes incapable of hearing"); +static const u8 DexDescription_Loudred_2[] = _( + "anything for a while. This is considered\n" + "to be a weak point."); +#else +static const u8 DexDescription_Loudred_1[] = _( + "LOUDRED’s bellowing can completely\n" + "decimate a wood-frame house. It uses\n" + "its voice to punish its foes."); +static const u8 DexDescription_Loudred_2[] = _( + "This POKéMON’s round ears serve as\n" + "loudspeakers."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Exploud_1[] = _( + "EXPLOUD communicates its feelings to\n" + "the others by emitting whistle-like\n" + "sounds from the tubes on its body."); +static const u8 DexDescription_Exploud_2[] = _( + "This POKéMON only raises its voice when\n" + "it is in battle."); +#else +static const u8 DexDescription_Exploud_1[] = _( + "EXPLOUD triggers earthquakes with the\n" + "tremors it creates by bellowing. If this\n" + "POKéMON violently inhales from the"); +static const u8 DexDescription_Exploud_2[] = _( + "ports on its body, it’s a sign that it is\n" + "preparing to let loose a huge bellow."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Makuhita_1[] = _( + "MAKUHITA has a tireless spirit -\n" + "it will never give up hope. It eats a lot\n" + "of food, gets plenty of sleep, and it"); +static const u8 DexDescription_Makuhita_2[] = _( + "trains very rigorously. By living that\n" + "way, this POKéMON packs its body with\n" + "energy."); +#else +static const u8 DexDescription_Makuhita_1[] = _( + "MAKUHITA is tenacious - it will keep\n" + "getting up and attacking its foe\n" + "however many times it is knocked down."); +static const u8 DexDescription_Makuhita_2[] = _( + "Every time it gets back up, this\n" + "POKéMON stores more energy in its body\n" + "for evolving."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Hariyama_1[] = _( + "HARIYAMA’s thick body may appear fat,\n" + "but it is actually a hunk of solid muscle.\n" + "If this POKéMON bears down and"); +static const u8 DexDescription_Hariyama_2[] = _( + "tightens all its muscles, its body\n" + "becomes as hard as a rock."); +#else +static const u8 DexDescription_Hariyama_1[] = _( + "HARIYAMA practices its straight-arm\n" + "slaps in any number of locations.\n" + "One hit of this POKéMON’s powerful,"); +static const u8 DexDescription_Hariyama_2[] = _( + "openhanded, straight-arm punches\n" + "could snap a telephone pole in two."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Azurill_1[] = _( + "AZURILL’s tail is large and bouncy.\n" + "It is packed full of the nutrients this\n" + "POKéMON needs to grow."); +static const u8 DexDescription_Azurill_2[] = _( + "AZURILL can be seen bouncing and\n" + "playing on its big, rubbery tail."); +#else +static const u8 DexDescription_Azurill_1[] = _( + "AZURILL spins its tail as if it were a\n" + "lasso, then hurls it far. The momentum\n" + "of the throw sends its body flying, too."); +static const u8 DexDescription_Azurill_2[] = _( + "Using this unique action, one of these\n" + "POKéMON managed to hurl itself a record\n" + "33 feet."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Nosepass_1[] = _( + "NOSEPASS had been said to be completely\n" + "unmoving, with its magnetic nose\n" + "pointed due north."); +static const u8 DexDescription_Nosepass_2[] = _( + "However, close observation has revealed\n" + "that the POKéMON actually moves by a\n" + "little over 3/8 of an inch every year."); +#else +static const u8 DexDescription_Nosepass_1[] = _( + "NOSEPASS’s magnetic nose is always\n" + "pointed to the north. If two of these\n" + "POKéMON meet, they cannot turn"); +static const u8 DexDescription_Nosepass_2[] = _( + "their faces to each other when they\n" + "are close because their magnetic noses\n" + "repel one another."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Skitty_1[] = _( + "SKITTY is known to chase around\n" + "playfully after its own tail. In the wild,\n" + "this POKéMON lives in holes in the trees"); +static const u8 DexDescription_Skitty_2[] = _( + "of forests. It is very popular as a pet\n" + "because of its adorable looks."); +#else +static const u8 DexDescription_Skitty_1[] = _( + "SKITTY has the habit of becoming\n" + "fascinated by moving objects and\n" + "chasing them around."); +static const u8 DexDescription_Skitty_2[] = _( + "This POKéMON is known to chase after\n" + "its own tail and become dizzy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Delcatty_1[] = _( + "DELCATTY sleeps anywhere it wants\n" + "without keeping a permanent nest.\n" + "If other POKéMON approach it as it"); +static const u8 DexDescription_Delcatty_2[] = _( + "sleeps, this POKéMON will never fight -\n" + "it will just move away somewhere else."); +#else +static const u8 DexDescription_Delcatty_1[] = _( + "DELCATTY prefers to live an unfettered\n" + "existence in which it can do as it\n" + "pleases at its own pace."); +static const u8 DexDescription_Delcatty_2[] = _( + "Because this POKéMON eats and sleeps\n" + "whenever it decides, its daily routines\n" + "are completely random."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sableye_1[] = _( + "SABLEYE digs the ground with sharpened\n" + "claws to find rocks that it eats.\n" + "Substances in the eaten rocks"); +static const u8 DexDescription_Sableye_2[] = _( + "crystallize and rise up to the POKéMON’s\n" + "body surface."); +#else +static const u8 DexDescription_Sableye_1[] = _( + "SABLEYE lead quiet lives deep inside\n" + "caverns. They are feared, however,\n" + "because these POKéMON are thought to"); +static const u8 DexDescription_Sableye_2[] = _( + "steal the spirits of people when their\n" + "eyes burn with a sinister glow in the\n" + "darkness."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Mawile_1[] = _( + "Don’t be taken in by this POKéMON’s\n" + "cute face - it’s very dangerous. MAWILE\n" + "fools the foe into letting down its"); +static const u8 DexDescription_Mawile_2[] = _( + "guard, then chomps down with its\n" + "massive jaws. The steel jaws are really\n" + "horns that have been transformed."); +#else +#if REVISION >= 1 +static const u8 DexDescription_Mawile_1[] = _( + "MAWILE’s huge jaws are actually steel\n" + "horns that have been transformed.\n" + "Its docile-looking face serves to lull"); +static const u8 DexDescription_Mawile_2[] = _( + "its foe into letting down its guard.\n" + "When the foe least expects it, MAWILE\n" // Correct spelling of MAWILE + "chomps it with its gaping jaws."); +#else +static const u8 DexDescription_Mawile_1[] = _( + "MAWHILE’s huge jaws are actually steel\n" + "horns that have been transformed.\n" + "Its docile-looking face serves to lull"); +static const u8 DexDescription_Mawile_2[] = _( + "its foe into letting down its guard.\n" + "When the foe least expects it, MAWHILE\n" + "chomps it with its gaping jaws."); +#endif +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Aron_1[] = _( + "ARON has a body of steel.\n" + "With one all-out charge, this POKéMON\n" + "can demolish even a heavy dump truck."); +static const u8 DexDescription_Aron_2[] = _( + "The destroyed dump truck then becomes\n" + "a handy meal for the POKéMON."); +#else +static const u8 DexDescription_Aron_1[] = _( + "This POKéMON has a body of steel.\n" + "To make its body, ARON feeds on\n" + "iron ore that it digs from mountains."); +static const u8 DexDescription_Aron_2[] = _( + "Occasionally, it causes major trouble by\n" + "eating bridges and rails."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lairon_1[] = _( + "LAIRON feeds on iron contained in\n" + "rocks and water. It makes its nest on\n" + "mountains where iron ore is buried."); +static const u8 DexDescription_Lairon_2[] = _( + "As a result, the POKéMON often clashes\n" + "with humans mining the iron ore."); +#else +static const u8 DexDescription_Lairon_1[] = _( + "LAIRON tempers its steel body by\n" + "drinking highly nutritious mineral\n" + "springwater until it is bloated."); +static const u8 DexDescription_Lairon_2[] = _( + "This POKéMON makes its nest close to\n" + "springs of delicious water."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Aggron_1[] = _( + "AGGRON is surprisingly protective\n" + "of its environment. If its mountain\n" + "is ravaged by a landslide or a fire, this"); +static const u8 DexDescription_Aggron_2[] = _( + "POKéMON will haul topsoil to the area,\n" + "plant trees, and beautifully restore its\n" + "own territory."); +#else +static const u8 DexDescription_Aggron_1[] = _( + "AGGRON claims an entire mountain as its\n" + "own territory. It mercilessly beats up\n" + "anything that violates its environment."); +static const u8 DexDescription_Aggron_2[] = _( + "This POKéMON vigilantly patrols its\n" + "territory at all times."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Meditite_1[] = _( + "MEDITITE heightens its inner energy\n" + "through meditation. It survives on\n" + "just one berry a day."); +static const u8 DexDescription_Meditite_2[] = _( + "Minimal eating is another aspect of\n" + "this POKéMON’s training."); +#else +static const u8 DexDescription_Meditite_1[] = _( + "MEDITITE undertakes rigorous mental\n" + "training deep in the mountains.\n" + "However, whenever it meditates, this"); +static const u8 DexDescription_Meditite_2[] = _( + "POKéMON always loses its concentration\n" + "and focus. As a result, its training\n" + "never ends."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Medicham_1[] = _( + "Through the power of meditation,\n" + "MEDICHAM developed its sixth sense.\n" + "It gained the ability to use"); +static const u8 DexDescription_Medicham_2[] = _( + "psychokinetic powers. This POKéMON is\n" + "known to meditate for a whole month\n" + "without eating."); +#else +static const u8 DexDescription_Medicham_1[] = _( + "It is said that through meditation,\n" + "MEDICHAM heightens energy inside\n" + "its body and sharpens its sixth sense."); +static const u8 DexDescription_Medicham_2[] = _( + "This POKéMON hides its presence by\n" + "merging itself with fields and\n" + "mountains."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Electrike_1[] = _( + "ELECTRIKE runs faster than the human\n" + "eye can follow. The friction from\n" + "running is converted into electricity,"); +static const u8 DexDescription_Electrike_2[] = _( + "which is then stored in this POKéMON’s\n" + "fur."); +#else +static const u8 DexDescription_Electrike_1[] = _( + "ELECTRIKE stores electricity in its\n" + "long body hair. This POKéMON stimulates\n" + "its leg muscles with electric charges."); +static const u8 DexDescription_Electrike_2[] = _( + "These jolts of power give its legs\n" + "explosive acceleration performance."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Manectric_1[] = _( + "MANECTRIC discharges strong\n" + "electricity from its mane. The mane is\n" + "used for collecting electricity in the"); +static const u8 DexDescription_Manectric_2[] = _( + "atmosphere. This POKéMON creates\n" + "thunderclouds above its head."); +#else +static const u8 DexDescription_Manectric_1[] = _( + "MANECTRIC is constantly discharging\n" + "electricity from its mane. The sparks\n" + "sometimes ignite forest fires."); +static const u8 DexDescription_Manectric_2[] = _( + "When it enters a battle, this POKéMON\n" + "creates thunderclouds."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Plusle_1[] = _( + "When PLUSLE is cheering on its partner,\n" + "it flashes with electric sparks from all\n" + "over its body."); +static const u8 DexDescription_Plusle_2[] = _( + "If its partner loses, this POKéMON cries\n" + "loudly."); +#else +static const u8 DexDescription_Plusle_1[] = _( + "PLUSLE always acts as a cheerleader\n" + "for its partners. Whenever a teammate\n" + "puts out a good effort in battle, this"); +static const u8 DexDescription_Plusle_2[] = _( + "POKéMON shorts out its body to create\n" + "the crackling noises of sparks to show\n" + "its joy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Minun_1[] = _( + "MINUN loves to cheer on its partner in\n" + "battle. It gives off sparks from its\n" + "body while it is doing so."); +static const u8 DexDescription_Minun_2[] = _( + "If its partner is in trouble, this\n" + "POKéMON gives off increasing amounts\n" + "of sparks."); +#else +static const u8 DexDescription_Minun_1[] = _( + "MINUN is more concerned about cheering\n" + "on its partners than its own safety.\n" + "It shorts out the electricity in its"); +static const u8 DexDescription_Minun_2[] = _( + "body to create brilliant showers of\n" + "sparks to cheer on its teammates."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Volbeat_1[] = _( + "VOLBEAT’s tail glows like a lightbulb.\n" + "With other VOLBEAT, it uses its tail to\n" + "draw geometric shapes in the night sky."); +static const u8 DexDescription_Volbeat_2[] = _( + "This POKéMON loves the sweet aroma\n" + "given off by ILLUMISE."); +#else +static const u8 DexDescription_Volbeat_1[] = _( + "With the arrival of night, VOLBEAT emits\n" + "light from its tail. It communicates with\n" + "others by adjusting the intensity and"); +static const u8 DexDescription_Volbeat_2[] = _( + "flashing of its light.\n" + "This POKéMON is attracted by the sweet\n" + "aroma of ILLUMISE."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Illumise_1[] = _( + "ILLUMISE leads a flight of illuminated\n" + "VOLBEAT to draw signs in the night sky.\n" + "This POKéMON is said to earn greater"); +static const u8 DexDescription_Illumise_2[] = _( + "respect from its peers by composing\n" + "more complex designs in the sky."); +#else +static const u8 DexDescription_Illumise_1[] = _( + "ILLUMISE attracts a swarm of VOLBEAT\n" + "using a sweet fragrance. Once the\n" + "VOLBEAT have gathered, this POKéMON"); +static const u8 DexDescription_Illumise_2[] = _( + "leads the lit-up swarm in drawing\n" + "geometric designs on the canvas of\n" + "the night sky."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Roselia_1[] = _( + "On extremely rare occasions, a ROSELIA\n" + "is said to appear with its flowers in\n" + "unusual colors."); +static const u8 DexDescription_Roselia_2[] = _( + "The thorns on this POKéMON’s head\n" + "contain a vicious poison."); +#else +static const u8 DexDescription_Roselia_1[] = _( + "ROSELIA shoots sharp thorns as\n" + "projectiles at any opponent that tries\n" + "to steal the flowers on its arms."); +static const u8 DexDescription_Roselia_2[] = _( + "The aroma of this POKéMON brings\n" + "serenity to living things."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gulpin_1[] = _( + "Most of GULPIN’s body is made up of its\n" + "stomach - its heart and brain are very\n" + "small in comparison."); +static const u8 DexDescription_Gulpin_2[] = _( + "This POKéMON’s stomach contains\n" + "special enzymes that dissolve anything."); +#else +static const u8 DexDescription_Gulpin_1[] = _( + "Virtually all of GULPIN’s body is its\n" + "stomach. As a result, it can swallow\n" + "something its own size."); +static const u8 DexDescription_Gulpin_2[] = _( + "This POKéMON’s stomach contains a\n" + "special fluid that digests anything."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swalot_1[] = _( + "SWALOT has no teeth, so what it\n" + "eats, it swallows whole, no matter what.\n" + "Its cavernous mouth yawns widely."); +static const u8 DexDescription_Swalot_2[] = _( + "An automobile tire could easily fit\n" + "inside this POKéMON’s mouth."); +#else +static const u8 DexDescription_Swalot_1[] = _( + "When SWALOT spots prey, it spurts out\n" + "a hideously toxic fluid from its pores\n" + "and sprays the target."); +static const u8 DexDescription_Swalot_2[] = _( + "Once the prey has weakened, this\n" + "POKéMON gulps it down whole with its\n" + "cavernous mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Carvanha_1[] = _( + "If anything invades CARVANHA’s\n" + "territory, it will swarm and tear at the\n" + "intruder with its pointed fangs."); +static const u8 DexDescription_Carvanha_2[] = _( + "On its own, however, this POKéMON turns\n" + "suddenly timid."); +#else +static const u8 DexDescription_Carvanha_1[] = _( + "CARVANHA’s strongly developed jaws\n" + "and its sharply pointed fangs pack the\n" + "destructive power to rip out boat hulls."); +static const u8 DexDescription_Carvanha_2[] = _( + "Many boats have been attacked and\n" + "sunk by this POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sharpedo_1[] = _( + "SHARPEDO can swim at speeds of up to\n" + "75 mph by jetting seawater out of its\n" + "backside."); +static const u8 DexDescription_Sharpedo_2[] = _( + "This POKéMON’s drawback is its inability\n" + "to swim long distances."); +#else +static const u8 DexDescription_Sharpedo_1[] = _( + "Nicknamed “the bully of the sea,”\n" + "SHARPEDO is widely feared.\n" + "Its cruel fangs grow back immediately"); +static const u8 DexDescription_Sharpedo_2[] = _( + "if they snap off.\n" + "Just one of these POKéMON can\n" + "thoroughly tear apart a supertanker."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wailmer_1[] = _( + "WAILMER can store water inside its body\n" + "to transform itself into a ball for\n" + "bouncing around on the ground."); +static const u8 DexDescription_Wailmer_2[] = _( + "By filling itself up with more water, this\n" + "POKéMON can elevate the height of its\n" + "bounces."); +#else +static const u8 DexDescription_Wailmer_1[] = _( + "WAILMER’s nostrils are located above\n" + "its eyes. This playful POKéMON loves\n" + "to startle people by forcefully snorting"); +static const u8 DexDescription_Wailmer_2[] = _( + "out seawater it stores inside its body\n" + "out of its nostrils."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wailord_1[] = _( + "When chasing prey, WAILORD herds them\n" + "by leaping out of the water and making\n" + "a humongous splash."); +static const u8 DexDescription_Wailord_2[] = _( + "It is breathtaking to see this POKéMON\n" + "leaping out of the sea with others in\n" + "its pod."); +#else +static const u8 DexDescription_Wailord_1[] = _( + "WAILORD is the largest of all identified\n" + "POKéMON up to now.\n" + "This giant POKéMON swims languorously"); +static const u8 DexDescription_Wailord_2[] = _( + "in the vast open sea, eating massive\n" + "amounts of food at once with its\n" + "enormous mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Numel_1[] = _( + "NUMEL stores magma of almost 2,200\n" + "degrees F within its body. If it gets\n" + "wet, the magma cools and hardens."); +static const u8 DexDescription_Numel_2[] = _( + "In that event, the POKéMON’s body\n" + "grows heavy and its movements become\n" + "sluggish."); +#else +static const u8 DexDescription_Numel_1[] = _( + "NUMEL is extremely dull witted - it\n" + "doesn’t notice being hit. However, it\n" + "can’t stand hunger for even a second."); +static const u8 DexDescription_Numel_2[] = _( + "This POKéMON’s body is a seething\n" + "cauldron of boiling magma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Camerupt_1[] = _( + "The humps on CAMERUPT’s back are\n" + "formed by a transformation of its\n" + "bones. They sometimes blast out molten"); +static const u8 DexDescription_Camerupt_2[] = _( + "magma. This POKéMON apparently erupts\n" + "often when it is enraged."); +#else +static const u8 DexDescription_Camerupt_1[] = _( + "CAMERUPT has a volcano inside its body.\n" + "Magma of 18,000 degrees F courses\n" + "through its body."); +static const u8 DexDescription_Camerupt_2[] = _( + "Occasionally, the humps on this\n" + "POKéMON’s back erupt, spewing the\n" + "superheated magma."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Torkoal_1[] = _( + "TORKOAL generates energy by burning\n" + "coal. It grows weaker as the fire\n" + "dies down."); +static const u8 DexDescription_Torkoal_2[] = _( + "When it is preparing for battle, this\n" + "POKéMON burns more coal."); +#else +static const u8 DexDescription_Torkoal_1[] = _( + "TORKOAL digs through mountains in\n" + "search of coal. If it finds some, it fills\n" + "hollow spaces on its shell with the coal"); +static const u8 DexDescription_Torkoal_2[] = _( + "and burns it.\n" + "If it is attacked, this POKéMON spouts\n" + "thick black smoke to beat a retreat."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spoink_1[] = _( + "SPOINK keeps a pearl on top of its head.\n" + "The pearl functions to amplify this\n" + "POKéMON’s psychokinetic powers."); +static const u8 DexDescription_Spoink_2[] = _( + "It is therefore on a constant search\n" + "for a bigger pearl."); +#else +static const u8 DexDescription_Spoink_1[] = _( + "SPOINK bounces around on its tail.\n" + "The shock of its bouncing makes its\n" + "heart pump. As a result, this POKéMON"); +static const u8 DexDescription_Spoink_2[] = _( + "cannot afford to stop bouncing - if it\n" + "stops, its heart will stop."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Grumpig_1[] = _( + "GRUMPIG uses the black pearls on its\n" + "body to wield its fantastic powers.\n" + "When it is doing so, it dances bizarrely."); +static const u8 DexDescription_Grumpig_2[] = _( + "This POKéMON’s black pearls are valuable\n" + "as works of art."); +#else +static const u8 DexDescription_Grumpig_1[] = _( + "GRUMPIG uses the black pearls on its\n" + "body to amplify its psychic power waves\n" + "for gaining total control over its foe."); +static const u8 DexDescription_Grumpig_2[] = _( + "When this POKéMON uses its special\n" + "power, its snorting breath grows\n" + "labored."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spinda_1[] = _( + "No two SPINDA are said to have\n" + "identical spot patterns on their hides.\n" + "This POKéMON moves in a curious manner"); +static const u8 DexDescription_Spinda_2[] = _( + "as if it is stumbling in dizziness.\n" + "Its lurching movements can cause the\n" + "opponent to become confused."); +#else +static const u8 DexDescription_Spinda_1[] = _( + "All the SPINDA that exist in the\n" + "world are said to have utterly unique\n" + "spot patterns."); +static const u8 DexDescription_Spinda_2[] = _( + "The shaky, tottering steps of this\n" + "POKéMON give it the appearance of\n" + "dancing."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Trapinch_1[] = _( + "TRAPINCH is a patient hunter. It digs\n" + "an inescapable pit in a desert and waits\n" + "for its prey to come tumbling down."); +static const u8 DexDescription_Trapinch_2[] = _( + "This POKéMON can go a whole week\n" + "without access to any water."); +#else +static const u8 DexDescription_Trapinch_1[] = _( + "TRAPINCH’s nest is a sloped, bowl-like\n" + "pit dug in sand. This POKéMON patiently\n" + "waits for prey to tumble down the pit."); +static const u8 DexDescription_Trapinch_2[] = _( + "Its giant jaws have enough strength\n" + "to crush even boulders."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Vibrava_1[] = _( + "VIBRAVA’s wings have not yet\n" + "completed the process of growing.\n" + "Rather than flying long distances,"); +static const u8 DexDescription_Vibrava_2[] = _( + "they are more useful for generating\n" + "ultrasonic waves by vibrating."); +#else +static const u8 DexDescription_Vibrava_1[] = _( + "To make prey faint, VIBRAVA generates\n" + "ultrasonic waves by vigorously making\n" + "its two wings vibrate."); +static const u8 DexDescription_Vibrava_2[] = _( + "This POKéMON’s ultrasonic waves are so\n" + "powerful, they can bring on headaches\n" + "in people."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Flygon_1[] = _( + "FLYGON whips up a sandstorm by\n" + "flapping its wings. The wings create a\n" + "series of notes that sound like singing."); +static const u8 DexDescription_Flygon_2[] = _( + "Because the “singing” is the only thing\n" + "that can be heard in a sandstorm, this\n" + "POKéMON is said to be the desert spirit."); +#else +static const u8 DexDescription_Flygon_1[] = _( + "FLYGON is nicknamed “the elemental \n" + "spirit of the desert.” Because its\n" + "flapping wings whip up a cloud of sand,"); +static const u8 DexDescription_Flygon_2[] = _( + "this POKéMON is always enveloped in a\n" + "sandstorm while flying."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cacnea_1[] = _( + "The more arid and harsh the\n" + "environment, the more pretty and\n" + "fragrant a flower CACNEA grows."); +static const u8 DexDescription_Cacnea_2[] = _( + "This POKéMON battles by wildly swinging\n" + "its thorny arms."); +#else +static const u8 DexDescription_Cacnea_1[] = _( + "CACNEA lives in arid locations such\n" + "as deserts. It releases a strong aroma\n" + "from its flower to attract prey."); +static const u8 DexDescription_Cacnea_2[] = _( + "When prey comes near, this POKéMON\n" + "shoots sharp thorns from its body to\n" + "bring the victim down."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cacturne_1[] = _( + "If a traveler is going through a desert\n" + "in the thick of night, CACTURNE\n" + "will follow in a ragtag group."); +static const u8 DexDescription_Cacturne_2[] = _( + "The POKéMON are biding their time,\n" + "waiting for the traveler to tire and\n" + "become incapable of moving."); +#else +static const u8 DexDescription_Cacturne_1[] = _( + "During the daytime, CACTURNE remains\n" + "unmoving so that it does not lose any\n" + "moisture to the harsh desert sun."); +static const u8 DexDescription_Cacturne_2[] = _( + "This POKéMON becomes active at night\n" + "when the temperature drops."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Swablu_1[] = _( + "SWABLU loves to make things clean.\n" + "If it spots something dirty, it will wipe\n" + "and polish it with its cottony wings."); +static const u8 DexDescription_Swablu_2[] = _( + "If its wings become dirty, this POKéMON\n" + "finds a stream and showers itself."); +#else +static const u8 DexDescription_Swablu_1[] = _( + "SWABLU has light and fluffy wings that\n" + "are like cottony clouds. This POKéMON\n" + "is not frightened of people."); +static const u8 DexDescription_Swablu_2[] = _( + "It lands on the heads of people and\n" + "sits there like a cotton-fluff hat."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Altaria_1[] = _( + "ALTARIA sings in a gorgeous soprano.\n" + "Its wings are like cotton clouds.\n" + "This POKéMON catches updrafts with its"); +static const u8 DexDescription_Altaria_2[] = _( + "buoyant wings and soars way up into\n" + "the wild blue yonder."); +#else +static const u8 DexDescription_Altaria_1[] = _( + "ALTARIA dances and wheels through the\n" + "sky among billowing, cotton-like clouds.\n" + "By singing melodies in its crystal-clear"); +static const u8 DexDescription_Altaria_2[] = _( + "voice, this POKéMON makes its listeners\n" + "experience dreamy wonderment."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Zangoose_1[] = _( + "ZANGOOSE usually stays on all fours,\n" + "but when angered, it gets up on its\n" + "hind legs and extends its claws."); +static const u8 DexDescription_Zangoose_2[] = _( + "This POKéMON shares a bitter rivalry\n" + "with SEVIPER that dates back over\n" + "generations."); +#else +static const u8 DexDescription_Zangoose_1[] = _( + "Memories of battling its arch-rival\n" + "SEVIPER are etched into every cell of\n" + "ZANGOOSE’s body."); +static const u8 DexDescription_Zangoose_2[] = _( + "This POKéMON adroitly dodges attacks\n" + "with incredible agility."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Seviper_1[] = _( + "SEVIPER’s swordlike tail serves two\n" + "purposes - it slashes foes and douses\n" + "them with secreted poison."); +static const u8 DexDescription_Seviper_2[] = _( + "This POKéMON will not give up its long-\n" + "running blood feud with ZANGOOSE."); +#else +static const u8 DexDescription_Seviper_1[] = _( + "SEVIPER shares a generations-long\n" + "feud with ZANGOOSE. The scars on its\n" + "body are evidence of vicious battles."); +static const u8 DexDescription_Seviper_2[] = _( + "This POKéMON attacks using its sword-\n" + "edged tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lunatone_1[] = _( + "LUNATONE becomes active around the\n" + "time of the full moon. Instead of\n" + "walking, it moves by floating in midair."); +static const u8 DexDescription_Lunatone_2[] = _( + "The POKéMON’s intimidating red eyes\n" + "cause all those who see it to become\n" + "transfixed with fear."); +#else +static const u8 DexDescription_Lunatone_1[] = _( + "LUNATONE was discovered at a location\n" + "where a meteorite fell. As a result, some\n" + "people theorize that this POKéMON"); +static const u8 DexDescription_Lunatone_2[] = _( + "came from space. However, no one has\n" + "been able to prove this theory so far."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Solrock_1[] = _( + "Sunlight is the source of SOLROCK’s\n" + "power. It is said to possess the ability\n" + "to read the emotions of others."); +static const u8 DexDescription_Solrock_2[] = _( + "This POKéMON gives off intense heat\n" + "while rotating its body."); +#else +static const u8 DexDescription_Solrock_1[] = _( + "SOLROCK is a new species of POKéMON\n" + "that is said to have fallen from space.\n" + "It floats in air and moves silently."); +static const u8 DexDescription_Solrock_2[] = _( + "In battle, this POKéMON releases\n" + "intensely bright light."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Barboach_1[] = _( + "BARBOACH’s body is covered with a\n" + "slimy film. If a foe grabs it, this\n" + "POKéMON just slips out of the enemy’s"); +static const u8 DexDescription_Barboach_2[] = _( + "grip.\n" + "This POKéMON grows weak if the slimy\n" + "coating dries up."); +#else +static const u8 DexDescription_Barboach_1[] = _( + "BARBOACH’s sensitive whiskers serve\n" + "as a superb radar system.\n" + "This POKéMON hides in mud, leaving only"); +static const u8 DexDescription_Barboach_2[] = _( + "its two whiskers exposed while it waits\n" + "for prey to come along."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Whiscash_1[] = _( + "If WHISCASH goes on a wild rampage,\n" + "it sets off a quake-like tremor with a\n" + "radius of over three miles."); +static const u8 DexDescription_Whiscash_2[] = _( + "This POKéMON has the ability to predict\n" + "real earthquakes."); +#else +static const u8 DexDescription_Whiscash_1[] = _( + "WHISCASH is extremely territorial.\n" + "Just one of these POKéMON will claim a\n" + "large pond as its exclusive territory."); +static const u8 DexDescription_Whiscash_2[] = _( + "If a foe approaches it, it thrashes\n" + "about and triggers a massive\n" + "earthquake."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Corphish_1[] = _( + "CORPHISH catches prey with its sharp\n" + "claws. It has no likes or dislikes when it\n" + "comes to food - it will eat anything."); +static const u8 DexDescription_Corphish_2[] = _( + "This POKéMON has no trouble living in\n" + "filthy water."); +#else +static const u8 DexDescription_Corphish_1[] = _( + "CORPHISH were originally foreign\n" + "POKéMON that were imported as pets.\n" + "They eventually turned up in the wild."); +static const u8 DexDescription_Corphish_2[] = _( + "This POKéMON is very hardy and has\n" + "greatly increased its population."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Crawdaunt_1[] = _( + "CRAWDAUNT molts (sheds) its shell\n" + "regularly. Immediately after molting,\n" + "its shell is soft and tender."); +static const u8 DexDescription_Crawdaunt_2[] = _( + "Until the shell hardens, this POKéMON\n" + "hides in its streambed burrow to avoid\n" + "attack from its foes."); +#else +static const u8 DexDescription_Crawdaunt_1[] = _( + "CRAWDAUNT has an extremely violent\n" + "nature that compels it to challenge\n" + "other living things to battle."); +static const u8 DexDescription_Crawdaunt_2[] = _( + "Other life-forms refuse to live in\n" + "ponds inhabited by this POKéMON,\n" + "making them desolate places."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Baltoy_1[] = _( + "As soon as it spots others of its kind,\n" + "BALTOY congregates with them and\n" + "then begins crying noisily in unison."); +static const u8 DexDescription_Baltoy_2[] = _( + "This POKéMON sleeps while cleverly\n" + "balancing itself on its one foot."); +#else +static const u8 DexDescription_Baltoy_1[] = _( + "BALTOY moves while spinning around on\n" + "its one foot. Primitive wall paintings\n" + "depicting this POKéMON living among"); +static const u8 DexDescription_Baltoy_2[] = _( + "people were discovered in some ancient\n" + "ruins."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Claydol_1[] = _( + "CLAYDOL is an enigma that appeared\n" + "from a clay statue made by an ancient\n" + "civilization dating back 20,000 years."); +static const u8 DexDescription_Claydol_2[] = _( + "This POKéMON shoots beams from both\n" + "its hands."); +#else +static const u8 DexDescription_Claydol_1[] = _( + "CLAYDOL are said to be dolls of mud made\n" + "by primitive humans and brought to life\n" + "by exposure to a mysterious ray."); +static const u8 DexDescription_Claydol_2[] = _( + "This POKéMON moves about while\n" + "levitating."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Lileep_1[] = _( + "LILEEP is an ancient POKéMON that was\n" + "regenerated from a fossil. It remains\n" + "permanently anchored to a rock."); +static const u8 DexDescription_Lileep_2[] = _( + "From its immobile perch, this POKéMON\n" + "intently scans for prey with its two\n" + "eyes."); +#else +static const u8 DexDescription_Lileep_1[] = _( + "LILEEP became extinct approximately\n" + "a hundred million years ago.\n" + "This ancient POKéMON attaches itself"); +static const u8 DexDescription_Lileep_2[] = _( + "to a rock on the seafloor and catches\n" + "approaching prey using tentacles \n" + "shaped like flower petals."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Cradily_1[] = _( + "CRADILY’s body serves as an anchor,\n" + "preventing it from being washed away in\n" + "rough seas."); +static const u8 DexDescription_Cradily_2[] = _( + "This POKéMON secretes a strong\n" + "digestive fluid from its tentacles."); +#else +static const u8 DexDescription_Cradily_1[] = _( + "CRADILY roams around the ocean floor\n" + "in search of food. This POKéMON freely\n" + "extends its tree trunk-like neck and"); +static const u8 DexDescription_Cradily_2[] = _( + "captures unwary prey using its eight\n" + "tentacles."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Anorith_1[] = _( + "ANORITH is said to be a type of \n" + "POKéMON predecessor, with eight wings\n" + "at the sides of its body."); +static const u8 DexDescription_Anorith_2[] = _( + "This POKéMON swam in the primordial sea\n" + "by undulating these eight wings."); +#else +static const u8 DexDescription_Anorith_1[] = _( + "ANORITH was regenerated from a\n" + "prehistoric fossil. This primitive\n" + "POKéMON once lived in warm seas."); +static const u8 DexDescription_Anorith_2[] = _( + "It grips its prey firmly between its\n" + "two large claws."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Armaldo_1[] = _( + "ARMALDO is a POKéMON species that\n" + "became extinct in prehistoric times.\n" + "This POKéMON is said to have walked on"); +static const u8 DexDescription_Armaldo_2[] = _( + "its hind legs, which would have been\n" + "more convenient for life on land."); +#else +static const u8 DexDescription_Armaldo_1[] = _( + "ARMALDO’s tough armor makes all attacks\n" + "bounce off. This POKéMON’s two\n" + "enormous claws can be freely extended"); +static const u8 DexDescription_Armaldo_2[] = _( + "or contracted. They have the power to\n" + "punch right through a steel slab."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Feebas_1[] = _( + "While FEEBAS’s body is in tatters,\n" + "it has a hardy and tenacious life force\n" + "that enables it to live anywhere."); +static const u8 DexDescription_Feebas_2[] = _( + "However, this POKéMON is also slow and\n" + "dimwitted, making it an easy catch."); +#else +static const u8 DexDescription_Feebas_1[] = _( + "FEEBAS’s fins are ragged and\n" + "tattered from the start of its life.\n" + "Because of its shoddy appearance, this"); +static const u8 DexDescription_Feebas_2[] = _( + "POKéMON is largely ignored.\n" + "It is capable of living in both the sea\n" + "and in rivers."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Milotic_1[] = _( + "MILOTIC live at the bottom of large\n" + "lakes. When this POKéMON’s body glows a\n" + "vivid pink, it releases a pulsing wave of"); +static const u8 DexDescription_Milotic_2[] = _( + "energy that brings soothing calm to\n" + "restless spirits."); +#else +static const u8 DexDescription_Milotic_1[] = _( + "MILOTIC is said to be the most\n" + "beautiful of all the POKéMON.\n" + "It has the power to becalm such"); +static const u8 DexDescription_Milotic_2[] = _( + "emotions as anger and hostility to quell\n" + "bitter feuding."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Castform_1[] = _( + "CASTFORM borrows the power of nature\n" + "to transform itself into the guises of\n" + "the sun, rain clouds, and snow clouds."); +static const u8 DexDescription_Castform_2[] = _( + "This POKéMON’s feelings change with the\n" + "weather."); +#else +static const u8 DexDescription_Castform_1[] = _( + "CASTFORM’s appearance changes with\n" + "the weather.\n" + "This POKéMON gained the ability to use"); +static const u8 DexDescription_Castform_2[] = _( + "the vast power of nature to protect\n" + "its tiny body."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kecleon_1[] = _( + "KECLEON alters its body coloration to\n" + "blend in with its surroundings, allowing\n" + "it to sneak up on its prey unnoticed."); +static const u8 DexDescription_Kecleon_2[] = _( + "Then it lashes out with its long,\n" + "stretchy tongue to instantly ensnare\n" + "the unsuspecting target."); +#else +static const u8 DexDescription_Kecleon_1[] = _( + "KECLEON is capable of changing its body\n" + "colors at will to blend in with its\n" + "surroundings."); +static const u8 DexDescription_Kecleon_2[] = _( + "There is one exception - this POKéMON\n" + "can’t change the zigzag pattern on its\n" + "belly."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shuppet_1[] = _( + "SHUPPET grows by feeding on dark\n" + "emotions, such as vengefulness and \n" + "envy, in the hearts of people."); +static const u8 DexDescription_Shuppet_2[] = _( + "It roams through cities in search of\n" + "grudges that taint people."); +#else +static const u8 DexDescription_Shuppet_1[] = _( + "SHUPPET is attracted by feelings\n" + "of jealousy and vindictiveness.\n" + "If someone develops strong feelings of"); +static const u8 DexDescription_Shuppet_2[] = _( + "vengeance, this POKéMON will appear\n" + "in a swarm and line up beneath the eaves\n" + "of that person’s home."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Banette_1[] = _( + "A cursed energy permeated the stuffing\n" + "of a discarded and forgotten plush doll,\n" + "giving it new life as BANETTE."); +static const u8 DexDescription_Banette_2[] = _( + "The POKéMON’s energy would escape if it\n" + "were to ever open its mouth."); +#else +static const u8 DexDescription_Banette_1[] = _( + "BANETTE generates energy for laying\n" + "strong curses by sticking pins into its\n" + "own body."); +static const u8 DexDescription_Banette_2[] = _( + "This POKéMON was originally a pitiful\n" + "plush doll that was thrown away."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Duskull_1[] = _( + "DUSKULL wanders lost among the deep\n" + "darkness of midnight. There is an oft-\n" + "told admonishment given to misbehaving"); +static const u8 DexDescription_Duskull_2[] = _( + "children that this POKéMON will spirit\n" + "away bad children who earn scoldings\n" + "from their mothers."); +#else +static const u8 DexDescription_Duskull_1[] = _( + "DUSKULL can pass through any wall no\n" + "matter how thick it may be.\n" + "Once this POKéMON chooses a target,"); +static const u8 DexDescription_Duskull_2[] = _( + "it will doggedly pursue the intended\n" + "victim until the break of dawn."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Dusclops_1[] = _( + "DUSCLOPS absorbs anything, however\n" + "large the object may be. This POKéMON\n" + "hypnotizes its foe by waving its hands"); +static const u8 DexDescription_Dusclops_2[] = _( + "in a macabre manner and by bringing its\n" + "single eye to bear. The hypnotized foe\n" + "is made to do DUSCLOPS’s bidding."); +#else +static const u8 DexDescription_Dusclops_1[] = _( + "DUSCLOPS’s body is completely hollow -\n" + "there is nothing at all inside.\n" + "It is said that its body is like a black"); +static const u8 DexDescription_Dusclops_2[] = _( + "hole. This POKéMON will absorb anything\n" + "into its body, but nothing will ever come\n" + "back out."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Tropius_1[] = _( + "Children of the southern tropics eat\n" + "as snacks the fruit that grows in\n" + "bunches around the neck of TROPIUS."); +static const u8 DexDescription_Tropius_2[] = _( + "This POKéMON flies by flapping the\n" + "leaves on its back as if they were\n" + "wings."); +#else +static const u8 DexDescription_Tropius_1[] = _( + "The bunches of fruit around TROPIUS’s\n" + "neck are very popular with children.\n" + "This POKéMON loves fruit, and eats it"); +static const u8 DexDescription_Tropius_2[] = _( + "continuously. Apparently, its love for\n" + "fruit resulted in its own outgrowth\n" + "of fruit."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Chimecho_1[] = _( + "In high winds, CHIMECHO cries as it\n" + "hangs from a tree branch or the eaves\n" + "of a building using a suction cup on its"); +static const u8 DexDescription_Chimecho_2[] = _( + "head.\n" + "This POKéMON plucks berries with its\n" + "long tail and eats them."); +#else +static const u8 DexDescription_Chimecho_1[] = _( + "CHIMECHO makes its cries echo\n" + "inside its hollow body. When this\n" + "POKéMON becomes enraged, its cries"); +static const u8 DexDescription_Chimecho_2[] = _( + "result in ultrasonic waves that have\n" + "the power to knock foes flying."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Absol_1[] = _( + "ABSOL has the ability to foretell the\n" + "coming of natural disasters.\n" + "It lives in a harsh, rugged mountain"); +static const u8 DexDescription_Absol_2[] = _( + "environment. This POKéMON very rarely\n" + "ventures down from the mountains."); +#else +static const u8 DexDescription_Absol_1[] = _( + "Every time ABSOL appears before people,\n" + "it is followed by a disaster such as an\n" + "earthquake or a tidal wave."); +static const u8 DexDescription_Absol_2[] = _( + "As a result, it came to be known as the\n" + "disaster POKéMON."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Wynaut_1[] = _( + "WYNAUT gather on moonlit nights to play\n" + "by squeezing up against each other.\n" + "By being squeezed, this POKéMON gains"); +static const u8 DexDescription_Wynaut_2[] = _( + "endurance and is trained to dole out\n" + "powerful counterattacks."); +#else +static const u8 DexDescription_Wynaut_1[] = _( + "WYNAUT can always be seen with a big,\n" + "happy smile on its face. Look at its tail\n" + "to determine if it is angry."); +static const u8 DexDescription_Wynaut_2[] = _( + "When angered, this POKéMON will be\n" + "slapping the ground with its tail."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Snorunt_1[] = _( + "SNORUNT survives by eating only snow\n" + "and ice.\n" + "Old folklore claims that a house visited"); +static const u8 DexDescription_Snorunt_2[] = _( + "by this POKéMON is sure to prosper for\n" + "many generations to come."); +#else +static const u8 DexDescription_Snorunt_1[] = _( + "SNORUNT live in regions with heavy\n" + "snowfall. In seasons without snow, such\n" + "as spring and summer, this POKéMON"); +static const u8 DexDescription_Snorunt_2[] = _( + "steals away to live quietly among\n" + "stalactites and stalagmites deep in\n" + "caverns."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Glalie_1[] = _( + "GLALIE has the ability to freely\n" + "control ice. For example, it can\n" + "instantly freeze its foe solid."); +static const u8 DexDescription_Glalie_2[] = _( + "After immobilizing its foe in ice, this\n" + "POKéMON enjoys eating it in leisurely\n" + "fashion."); +#else +static const u8 DexDescription_Glalie_1[] = _( + "GLALIE has a body made of rock, which it\n" + "hardens with an armor of ice.\n" + "This POKéMON has the ability to freeze"); +static const u8 DexDescription_Glalie_2[] = _( + "moisture in the atmosphere into any\n" + "shape it desires."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Spheal_1[] = _( + "SPHEAL always travels by rolling\n" + "around on its ball-like body. When the\n" + "season for ice floes arrives, this"); +static const u8 DexDescription_Spheal_2[] = _( + "POKéMON can be seen rolling about on\n" + "ice and crossing the sea."); +#else +static const u8 DexDescription_Spheal_1[] = _( + "SPHEAL is much faster rolling than \n" + "walking to get around. When groups of\n" + "this POKéMON eat, they all clap at once"); +static const u8 DexDescription_Spheal_2[] = _( + "to show their pleasure. Because of this,\n" + "their mealtimes are noisy."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Sealeo_1[] = _( + "SEALEO often balances and rolls\n" + "things on the tip of its nose. While the\n" + "POKéMON is rolling something, it checks"); +static const u8 DexDescription_Sealeo_2[] = _( + "the object’s aroma and texture to\n" + "determine whether it likes the object\n" + "or not."); +#else +static const u8 DexDescription_Sealeo_1[] = _( + "SEALEO has the habit of always juggling\n" + "on the tip of its nose anything it sees\n" + "for the first time."); +static const u8 DexDescription_Sealeo_2[] = _( + "This POKéMON occasionally entertains\n" + "itself by balancing and rolling a SPHEAL\n" + "on its nose."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Walrein_1[] = _( + "WALREIN swims all over in frigid\n" + "seawater while crushing icebergs with\n" + "its grand, imposing tusks."); +static const u8 DexDescription_Walrein_2[] = _( + "Its thick layer of blubber makes enemy\n" + "attacks bounce off harmlessly."); +#else +static const u8 DexDescription_Walrein_1[] = _( + "WALREIN’s two massively developed\n" + "tusks can totally shatter blocks of\n" + "ice weighing ten tons with one blow."); +static const u8 DexDescription_Walrein_2[] = _( + "This POKéMON’s thick coat of blubber\n" + "insulates it from subzero temperatures."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Clamperl_1[] = _( + "CLAMPERL grows while being protected\n" + "by its rock-hard shell. When its body\n" + "becomes too large to fit inside the"); +static const u8 DexDescription_Clamperl_2[] = _( + "shell, it is sure evidence that this\n" + "POKéMON is getting close to evolution."); +#else +static const u8 DexDescription_Clamperl_1[] = _( + "CLAMPERL’s sturdy shell is not only good\n" + "for protection - it is also used for\n" + "clamping and catching prey."); +static const u8 DexDescription_Clamperl_2[] = _( + "A fully grown CLAMPERL’s shell will be\n" + "scored with nicks and scratches all\n" + "over."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Huntail_1[] = _( + "HUNTAIL’s tail is shaped like a fish.\n" + "It uses the tail to attract prey, then\n" + "swallows the prey whole with its large,"); +static const u8 DexDescription_Huntail_2[] = _( + "gaping mouth.\n" + "This POKéMON swims by wiggling its\n" + "slender body like a snake."); +#else +static const u8 DexDescription_Huntail_1[] = _( + "HUNTAIL’s presence went unnoticed by\n" + "people for a long time because it lives\n" + "at extreme depths in the sea."); +static const u8 DexDescription_Huntail_2[] = _( + "This POKéMON’s eyes can see clearly\n" + "even in the murky dark depths of the\n" + "ocean."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Gorebyss_1[] = _( + "Although GOREBYSS is the very picture\n" + "of elegance and beauty while swimming,\n" + "it is also cruel. When it spots prey, this"); +static const u8 DexDescription_Gorebyss_2[] = _( + "POKéMON inserts its thin mouth into the\n" + "prey’s body and drains the prey of its\n" + "body fluids."); +#else +static const u8 DexDescription_Gorebyss_1[] = _( + "GOREBYSS lives in the southern seas\n" + "at extreme depths. Its body is built to\n" + "withstand the enormous pressure of"); +static const u8 DexDescription_Gorebyss_2[] = _( + "water at incredible depths. Because of\n" + "this, this POKéMON’s body is unharmed\n" + "by ordinary attacks."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Relicanth_1[] = _( + "RELICANTH is a rare species that was\n" + "discovered in deep-sea explorations.\n" + "This POKéMON’s body withstands the"); +static const u8 DexDescription_Relicanth_2[] = _( + "enormous water pressure of the ocean\n" + "depths. Its body is covered in tough\n" + "scales that are like craggy rocks."); +#else +static const u8 DexDescription_Relicanth_1[] = _( + "RELICANTH is a POKéMON species that\n" + "existed for a hundred million years\n" + "without ever changing its form."); +static const u8 DexDescription_Relicanth_2[] = _( + "This ancient POKéMON feeds on\n" + "microscopic organisms with its\n" + "toothless mouth."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Luvdisc_1[] = _( + "LUVDISC’s heart-shaped body is a\n" + "symbol of love and romance.\n" + "It is said that any couple meeting this"); +static const u8 DexDescription_Luvdisc_2[] = _( + "POKéMON is promised a loving\n" + "relationship that never ends."); +#else +static const u8 DexDescription_Luvdisc_1[] = _( + "LUVDISC live in shallow seas in the\n" + "tropics. This heart-shaped POKéMON\n" + "earned its name by swimming after"); +static const u8 DexDescription_Luvdisc_2[] = _( + "loving couples it spotted in the\n" + "ocean’s waves."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Bagon_1[] = _( + "BAGON harbors a never-ending dream of\n" + "one day soaring high among the clouds.\n" + "As if trying to dispel its frustration"); +static const u8 DexDescription_Bagon_2[] = _( + "over its inability to fly, this POKéMON\n" + "slams its hard head against huge rocks\n" + "and shatters them into pebbles."); +#else +static const u8 DexDescription_Bagon_1[] = _( + "BAGON has a dream of one day soaring\n" + "in the sky. In doomed efforts to fly,\n" + "this POKéMON hurls itself off cliffs."); +static const u8 DexDescription_Bagon_2[] = _( + "As a result of its dives, its head has \n" + "grown tough and as hard as tempered\n" + "steel."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Shelgon_1[] = _( + "Covering SHELGON’s body are outgrowths\n" + "much like bones. The shell is very hard\n" + "and bounces off enemy attacks."); +static const u8 DexDescription_Shelgon_2[] = _( + "When awaiting evolution, this POKéMON\n" + "hides away in a cavern."); +#else +static const u8 DexDescription_Shelgon_1[] = _( + "Inside SHELGON’s armor-like shell, cells\n" + "are in the midst of transformation\n" + "to create an entirely new body."); +static const u8 DexDescription_Shelgon_2[] = _( + "This POKéMON’s shell is extremely heavy,\n" + "making its movements sluggish."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Salamence_1[] = _( + "By evolving into SALAMENCE, this\n" + "POKéMON finally realizes its long-held\n" + "dream of growing wings."); +static const u8 DexDescription_Salamence_2[] = _( + "To express its joy, it flies and wheels\n" + "all over the sky while spouting flames\n" + "from its mouth."); +#else +static const u8 DexDescription_Salamence_1[] = _( + "SALAMENCE came about as a result of a\n" + "strong, long-held dream of growing\n" + "wings. It is said that this powerful"); +static const u8 DexDescription_Salamence_2[] = _( + "desire triggered a sudden mutation in\n" + "this POKéMON’s cells, causing it to\n" + "sprout its magnificent wings."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Beldum_1[] = _( + "BELDUM keeps itself floating by\n" + "generating a magnetic force that\n" + "repels earth’s natural magnetism."); +static const u8 DexDescription_Beldum_2[] = _( + "When it sleeps, this POKéMON anchors\n" + "itself to a cliff using the hooks on\n" + "its rear."); +#else +static const u8 DexDescription_Beldum_1[] = _( + "Instead of blood, a powerful magnetic\n" + "force courses throughout BELDUM’s\n" + "body. This POKéMON communicates with"); +static const u8 DexDescription_Beldum_2[] = _( + "others by sending controlled pulses of\n" + "magnetism."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Metang_1[] = _( + "When two BELDUM fuse together, METANG\n" + "is formed. The brains of the BELDUM are\n" + "joined by a magnetic nervous system."); +static const u8 DexDescription_Metang_2[] = _( + "This POKéMON turns its arms to the rear\n" + "for traveling at high speed."); +#else +static const u8 DexDescription_Metang_1[] = _( + "When two BELDUM fuse together, METANG\n" + "is formed. The brains of the BELDUM are\n" + "joined by a magnetic nervous system."); +static const u8 DexDescription_Metang_2[] = _( + "By linking its brains magnetically,\n" + "this POKéMON generates strong\n" + "psychokinetic power."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Metagross_1[] = _( + "METAGROSS is the result of two METANG\n" + "achieving fusion. When hunting, this\n" + "POKéMON pins the prey to the ground"); +static const u8 DexDescription_Metagross_2[] = _( + "under its massive body. It then eats\n" + "the helpless victim using the large \n" + "mouth on its stomach."); +#else +static const u8 DexDescription_Metagross_1[] = _( + "METAGROSS has four brains in total.\n" + "Combined, the four brains can breeze\n" + "through difficult calculations faster"); +static const u8 DexDescription_Metagross_2[] = _( + "than a supercomputer.\n" + "This POKéMON can float in the air by\n" + "tucking in its four legs."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Regirock_1[] = _( + "REGIROCK’s body is composed entirely of\n" + "rocks. Recently, a study made the\n" + "startling discovery that the rocks"); +static const u8 DexDescription_Regirock_2[] = _( + "were all unearthed from different\n" + "locations."); +#else +static const u8 DexDescription_Regirock_1[] = _( + "REGIROCK was sealed away by people\n" + "long ago. If this POKéMON’s body is\n" + "damaged in battle, it is said to seek"); +static const u8 DexDescription_Regirock_2[] = _( + "out suitable rocks on its own to repair\n" + "itself."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Regice_1[] = _( + "REGICE cloaks itself with frigid air of\n" + "negative 328 degrees F.\n" + "Things will freeze solid just by going"); +static const u8 DexDescription_Regice_2[] = _( + "near this POKéMON.\n" + "Its icy body is so cold, it will not melt\n" + "even if it is immersed in magma."); +#else +static const u8 DexDescription_Regice_1[] = _( + "REGICE’s body was made during an ice\n" + "age. The deep-frozen body can’t be\n" + "melted, even by fire."); +static const u8 DexDescription_Regice_2[] = _( + "This POKéMON controls frigid air of\n" + "minus 328 degrees F."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Registeel_1[] = _( + "REGISTEEL was imprisoned by people\n" + "in ancient times.\n" + "The metal composing its body is thought"); +static const u8 DexDescription_Registeel_2[] = _( + "to be a curious substance that is not\n" + "of this earth."); +#else +static const u8 DexDescription_Registeel_1[] = _( + "REGISTEEL has a body that is harder\n" + "than any kind of metal.\n" + "Its body is apparently hollow."); +static const u8 DexDescription_Registeel_2[] = _( + "No one has any idea what this POKéMON\n" + "eats."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Latias_1[] = _( + "LATIAS is highly intelligent and capable\n" + "of understanding human speech.\n" + "It is covered with a glass-like down."); +static const u8 DexDescription_Latias_2[] = _( + "The POKéMON enfolds its body with its\n" + "down and refracts light to alter its\n" + "appearance."); +#else +static const u8 DexDescription_Latias_1[] = _( + "LATIAS is highly sensitive to the\n" + "emotions of people. If it senses any\n" + "hostility, this POKéMON ruffles the"); +static const u8 DexDescription_Latias_2[] = _( + "feathers all over its body and cries\n" + "shrilly to intimidate the foe."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Latios_1[] = _( + "LATIOS will only open its heart to a\n" + "TRAINER with a compassionate spirit.\n" + "This POKéMON can fly faster than a jet"); +static const u8 DexDescription_Latios_2[] = _( + "plane by folding its forelegs to minimize\n" + "air resistance."); +#else +static const u8 DexDescription_Latios_1[] = _( + "LATIOS has the ability to make its foe\n" + "see an image of what it has seen or\n" + "imagines in its head."); +static const u8 DexDescription_Latios_2[] = _( + "This POKéMON is intelligent and\n" + "understands human speech."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Kyogre_1[] = _( + "KYOGRE is named in mythology as the\n" + "POKéMON that expanded the sea by\n" + "covering the land with torrential rains"); +static const u8 DexDescription_Kyogre_2[] = _( + "and towering tidal waves.\n" + "It took to sleep after a cataclysmic\n" + "battle with GROUDON."); +#else +static const u8 DexDescription_Kyogre_1[] = _( + "KYOGRE has the power to create massive\n" + "rain clouds that cover the entire sky\n" + "and bring about torrential downpours."); +static const u8 DexDescription_Kyogre_2[] = _( + "This POKéMON saved people who were\n" + "suffering from droughts."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Groudon_1[] = _( + "GROUDON has the power to scatter rain\n" + "clouds and make water evaporate with\n" + "light and heat."); +static const u8 DexDescription_Groudon_2[] = _( + "It came as a savior to people who had\n" + "been suffering from terrible floods."); +#else +static const u8 DexDescription_Groudon_1[] = _( + "GROUDON has long been described in \n" + "mythology as the POKéMON that raised\n" + "lands and expanded continents."); +static const u8 DexDescription_Groudon_2[] = _( + "This POKéMON took to sleep after a\n" + "cataclysmic battle with KYOGRE."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Rayquaza_1[] = _( + "RAYQUAZA is said to have lived for\n" + "hundreds of millions of years in the\n" + "earth’s ozone layer, above the clouds."); +static const u8 DexDescription_Rayquaza_2[] = _( + "Its existence had been completely\n" + "unknown because it lived so high in\n" + "the sky."); +#else +static const u8 DexDescription_Rayquaza_1[] = _( + "RAYQUAZA lived for hundreds of millions\n" + "of years in the earth’s ozone layer, \n" + "never descending to the ground."); +static const u8 DexDescription_Rayquaza_2[] = _( + "This POKéMON appears to feed on water\n" + "and particles in the atmosphere."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Jirachi_1[] = _( + "JIRACHI will awaken from its sleep of\n" + "a thousand years if you sing to it in a\n" + "voice of purity."); +static const u8 DexDescription_Jirachi_2[] = _( + "It is said to make true any wish that\n" + "people desire."); +#else +static const u8 DexDescription_Jirachi_1[] = _( + "A legend states that JIRACHI will make\n" + "true any wish that is written on notes\n" + "attached to its head when it awakens."); +static const u8 DexDescription_Jirachi_2[] = _( + "If this POKéMON senses danger, it will\n" + "fight without awakening."); +#endif + +#ifdef SAPPHIRE +static const u8 DexDescription_Deoxys_1[] = _( + "DEOXYS emerged from a virus that came\n" + "from space. It is highly intelligent and\n" + "wields psychokinetic powers."); +static const u8 DexDescription_Deoxys_2[] = _( + "This POKéMON shoots lasers from the\n" + "crystalline organ on its chest."); +#else +static const u8 DexDescription_Deoxys_1[] = _( + "The DNA of a space virus underwent a\n" + "sudden mutation upon exposure to a\n" + "laser beam and resulted in DEOXYS."); +static const u8 DexDescription_Deoxys_2[] = _( + "The crystalline organ on this POKéMON’s\n" + "chest appears to be its brain."); +#endif + +static const struct PokedexEntry gPokedexEntries[] = +{ + { //Dummy + .categoryName = _("UNKNOWN"), + .height = 0, + .weight = 0, + .descriptionPage1 = DexDescription_Dummy_1, + .descriptionPage2 = DexDescription_Dummy_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bulbasaur + .categoryName = _("SEED"), + .height = 7, + .weight = 69, + .descriptionPage1 = DexDescription_Bulbasaur_1, + .descriptionPage2 = DexDescription_Bulbasaur_2, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ivysaur + .categoryName = _("SEED"), + .height = 10, + .weight = 130, + .descriptionPage1 = DexDescription_Ivysaur_1, + .descriptionPage2 = DexDescription_Ivysaur_2, + .pokemonScale = 335, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venusaur + .categoryName = _("SEED"), + .height = 20, + .weight = 1000, + .descriptionPage1 = DexDescription_Venusaur_1, + .descriptionPage2 = DexDescription_Venusaur_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + }, + { //Charmander + .categoryName = _("LIZARD"), + .height = 6, + .weight = 85, + .descriptionPage1 = DexDescription_Charmander_1, + .descriptionPage2 = DexDescription_Charmander_2, + .pokemonScale = 444, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charmeleon + .categoryName = _("FLAME"), + .height = 11, + .weight = 190, + .descriptionPage1 = DexDescription_Charmeleon_1, + .descriptionPage2 = DexDescription_Charmeleon_2, + .pokemonScale = 302, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charizard + .categoryName = _("FLAME"), + .height = 17, + .weight = 905, + .descriptionPage1 = DexDescription_Charizard_1, + .descriptionPage2 = DexDescription_Charizard_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + }, + { //Squirtle + .categoryName = _("TINY TURTLE"), + .height = 5, + .weight = 90, + .descriptionPage1 = DexDescription_Squirtle_1, + .descriptionPage2 = DexDescription_Squirtle_2, + .pokemonScale = 412, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wartortle + .categoryName = _("TURTLE"), + .height = 10, + .weight = 225, + .descriptionPage1 = DexDescription_Wartortle_1, + .descriptionPage2 = DexDescription_Wartortle_2, + .pokemonScale = 332, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blastoise + .categoryName = _("SHELLFISH"), + .height = 16, + .weight = 855, + .descriptionPage1 = DexDescription_Blastoise_1, + .descriptionPage2 = DexDescription_Blastoise_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Caterpie + .categoryName = _("WORM"), + .height = 3, + .weight = 29, + .descriptionPage1 = DexDescription_Caterpie_1, + .descriptionPage2 = DexDescription_Caterpie_2, + .pokemonScale = 549, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metapod + .categoryName = _("COCOON"), + .height = 7, + .weight = 99, + .descriptionPage1 = DexDescription_Metapod_1, + .descriptionPage2 = DexDescription_Metapod_2, + .pokemonScale = 350, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Butterfree + .categoryName = _("BUTTERFLY"), + .height = 11, + .weight = 320, + .descriptionPage1 = DexDescription_Butterfree_1, + .descriptionPage2 = DexDescription_Butterfree_2, + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weedle + .categoryName = _("HAIRY BUG"), + .height = 3, + .weight = 32, + .descriptionPage1 = DexDescription_Weedle_1, + .descriptionPage2 = DexDescription_Weedle_2, + .pokemonScale = 455, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kakuna + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .descriptionPage1 = DexDescription_Kakuna_1, + .descriptionPage2 = DexDescription_Kakuna_2, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beedrill + .categoryName = _("POISON BEE"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Beedrill_1, + .descriptionPage2 = DexDescription_Beedrill_2, + .pokemonScale = 366, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgey + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 18, + .descriptionPage1 = DexDescription_Pidgey_1, + .descriptionPage2 = DexDescription_Pidgey_2, + .pokemonScale = 508, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeotto + .categoryName = _("BIRD"), + .height = 11, + .weight = 300, + .descriptionPage1 = DexDescription_Pidgeotto_1, + .descriptionPage2 = DexDescription_Pidgeotto_2, + .pokemonScale = 331, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeot + .categoryName = _("BIRD"), + .height = 15, + .weight = 395, + .descriptionPage1 = DexDescription_Pidgeot_1, + .descriptionPage2 = DexDescription_Pidgeot_2, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rattata + .categoryName = _("MOUSE"), + .height = 3, + .weight = 35, + .descriptionPage1 = DexDescription_Rattata_1, + .descriptionPage2 = DexDescription_Rattata_2, + .pokemonScale = 481, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raticate + .categoryName = _("MOUSE"), + .height = 7, + .weight = 185, + .descriptionPage1 = DexDescription_Raticate_1, + .descriptionPage2 = DexDescription_Raticate_2, + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spearow + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Spearow_1, + .descriptionPage2 = DexDescription_Spearow_2, + .pokemonScale = 571, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Fearow + .categoryName = _("BEAK"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Fearow_1, + .descriptionPage2 = DexDescription_Fearow_2, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ekans + .categoryName = _("SNAKE"), + .height = 20, + .weight = 69, + .descriptionPage1 = DexDescription_Ekans_1, + .descriptionPage2 = DexDescription_Ekans_2, + .pokemonScale = 298, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arbok + .categoryName = _("COBRA"), + .height = 35, + .weight = 650, + .descriptionPage1 = DexDescription_Arbok_1, + .descriptionPage2 = DexDescription_Arbok_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Pikachu + .categoryName = _("MOUSE"), + .height = 4, + .weight = 60, + .descriptionPage1 = DexDescription_Pikachu_1, + .descriptionPage2 = DexDescription_Pikachu_2, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raichu + .categoryName = _("MOUSE"), + .height = 8, + .weight = 300, + .descriptionPage1 = DexDescription_Raichu_1, + .descriptionPage2 = DexDescription_Raichu_2, + .pokemonScale = 426, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandshrew + .categoryName = _("MOUSE"), + .height = 6, + .weight = 120, + .descriptionPage1 = DexDescription_Sandshrew_1, + .descriptionPage2 = DexDescription_Sandshrew_2, + .pokemonScale = 365, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandslash + .categoryName = _("MOUSE"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Sandslash_1, + .descriptionPage2 = DexDescription_Sandslash_2, + .pokemonScale = 341, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranF + .categoryName = _("POISON PIN"), + .height = 4, + .weight = 70, + .descriptionPage1 = DexDescription_NidoranF_1, + .descriptionPage2 = DexDescription_NidoranF_2, + .pokemonScale = 488, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorina + .categoryName = _("POISON PIN"), + .height = 8, + .weight = 200, + .descriptionPage1 = DexDescription_Nidorina_1, + .descriptionPage2 = DexDescription_Nidorina_2, + .pokemonScale = 381, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoqueen + .categoryName = _("DRILL"), + .height = 13, + .weight = 600, + .descriptionPage1 = DexDescription_Nidoqueen_1, + .descriptionPage2 = DexDescription_Nidoqueen_2, + .pokemonScale = 293, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranM + .categoryName = _("POISON PIN"), + .height = 5, + .weight = 90, + .descriptionPage1 = DexDescription_NidoranM_1, + .descriptionPage2 = DexDescription_NidoranM_2, + .pokemonScale = 511, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorino + .categoryName = _("POISON PIN"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Nidorino_1, + .descriptionPage2 = DexDescription_Nidorino_2, + .pokemonScale = 408, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoking + .categoryName = _("DRILL"), + .height = 14, + .weight = 620, + .descriptionPage1 = DexDescription_Nidoking_1, + .descriptionPage2 = DexDescription_Nidoking_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefairy + .categoryName = _("FAIRY"), + .height = 6, + .weight = 75, + .descriptionPage1 = DexDescription_Clefairy_1, + .descriptionPage2 = DexDescription_Clefairy_2, + .pokemonScale = 441, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefable + .categoryName = _("FAIRY"), + .height = 13, + .weight = 400, + .descriptionPage1 = DexDescription_Clefable_1, + .descriptionPage2 = DexDescription_Clefable_2, + .pokemonScale = 256, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vulpix + .categoryName = _("FOX"), + .height = 6, + .weight = 99, + .descriptionPage1 = DexDescription_Vulpix_1, + .descriptionPage2 = DexDescription_Vulpix_2, + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninetales + .categoryName = _("FOX"), + .height = 11, + .weight = 199, + .descriptionPage1 = DexDescription_Ninetales_1, + .descriptionPage2 = DexDescription_Ninetales_2, + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jigglypuff + .categoryName = _("BALLOON"), + .height = 5, + .weight = 55, + .descriptionPage1 = DexDescription_Jigglypuff_1, + .descriptionPage2 = DexDescription_Jigglypuff_2, + .pokemonScale = 433, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wigglytuff + .categoryName = _("BALLOON"), + .height = 10, + .weight = 120, + .descriptionPage1 = DexDescription_Wigglytuff_1, + .descriptionPage2 = DexDescription_Wigglytuff_2, + .pokemonScale = 328, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zubat + .categoryName = _("BAT"), + .height = 8, + .weight = 75, + .descriptionPage1 = DexDescription_Zubat_1, + .descriptionPage2 = DexDescription_Zubat_2, + .pokemonScale = 362, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golbat + .categoryName = _("BAT"), + .height = 16, + .weight = 550, + .descriptionPage1 = DexDescription_Golbat_1, + .descriptionPage2 = DexDescription_Golbat_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Oddish + .categoryName = _("WEED"), + .height = 5, + .weight = 54, + .descriptionPage1 = DexDescription_Oddish_1, + .descriptionPage2 = DexDescription_Oddish_2, + .pokemonScale = 423, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gloom + .categoryName = _("WEED"), + .height = 8, + .weight = 86, + .descriptionPage1 = DexDescription_Gloom_1, + .descriptionPage2 = DexDescription_Gloom_2, + .pokemonScale = 329, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vileplume + .categoryName = _("FLOWER"), + .height = 12, + .weight = 186, + .descriptionPage1 = DexDescription_Vileplume_1, + .descriptionPage2 = DexDescription_Vileplume_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Paras + .categoryName = _("MUSHROOM"), + .height = 3, + .weight = 54, + .descriptionPage1 = DexDescription_Paras_1, + .descriptionPage2 = DexDescription_Paras_2, + .pokemonScale = 593, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Parasect + .categoryName = _("MUSHROOM"), + .height = 10, + .weight = 295, + .descriptionPage1 = DexDescription_Parasect_1, + .descriptionPage2 = DexDescription_Parasect_2, + .pokemonScale = 307, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venonat + .categoryName = _("INSECT"), + .height = 10, + .weight = 300, + .descriptionPage1 = DexDescription_Venonat_1, + .descriptionPage2 = DexDescription_Venonat_2, + .pokemonScale = 360, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = -1, + }, + { //Venomoth + .categoryName = _("POISON MOTH"), + .height = 15, + .weight = 125, + .descriptionPage1 = DexDescription_Venomoth_1, + .descriptionPage2 = DexDescription_Venomoth_2, + .pokemonScale = 285, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Diglett + .categoryName = _("MOLE"), + .height = 2, + .weight = 8, + .descriptionPage1 = DexDescription_Diglett_1, + .descriptionPage2 = DexDescription_Diglett_2, + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dugtrio + .categoryName = _("MOLE"), + .height = 7, + .weight = 333, + .descriptionPage1 = DexDescription_Dugtrio_1, + .descriptionPage2 = DexDescription_Dugtrio_2, + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meowth + .categoryName = _("SCRATCH CAT"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Meowth_1, + .descriptionPage2 = DexDescription_Meowth_2, + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Persian + .categoryName = _("CLASSY CAT"), + .height = 10, + .weight = 320, + .descriptionPage1 = DexDescription_Persian_1, + .descriptionPage2 = DexDescription_Persian_2, + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Psyduck + .categoryName = _("DUCK"), + .height = 8, + .weight = 196, + .descriptionPage1 = DexDescription_Psyduck_1, + .descriptionPage2 = DexDescription_Psyduck_2, + .pokemonScale = 369, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golduck + .categoryName = _("DUCK"), + .height = 17, + .weight = 766, + .descriptionPage1 = DexDescription_Golduck_1, + .descriptionPage2 = DexDescription_Golduck_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 273, + .trainerOffset = 1, + }, + { //Mankey + .categoryName = _("PIG MONKEY"), + .height = 5, + .weight = 280, + .descriptionPage1 = DexDescription_Mankey_1, + .descriptionPage2 = DexDescription_Mankey_2, + .pokemonScale = 404, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Primeape + .categoryName = _("PIG MONKEY"), + .height = 10, + .weight = 320, + .descriptionPage1 = DexDescription_Primeape_1, + .descriptionPage2 = DexDescription_Primeape_2, + .pokemonScale = 326, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Growlithe + .categoryName = _("PUPPY"), + .height = 7, + .weight = 190, + .descriptionPage1 = DexDescription_Growlithe_1, + .descriptionPage2 = DexDescription_Growlithe_2, + .pokemonScale = 346, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arcanine + .categoryName = _("LEGENDARY"), + .height = 19, + .weight = 1550, + .descriptionPage1 = DexDescription_Arcanine_1, + .descriptionPage2 = DexDescription_Arcanine_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 4, + }, + { //Poliwag + .categoryName = _("TADPOLE"), + .height = 6, + .weight = 124, + .descriptionPage1 = DexDescription_Poliwag_1, + .descriptionPage2 = DexDescription_Poliwag_2, + .pokemonScale = 369, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwhirl + .categoryName = _("TADPOLE"), + .height = 10, + .weight = 200, + .descriptionPage1 = DexDescription_Poliwhirl_1, + .descriptionPage2 = DexDescription_Poliwhirl_2, + .pokemonScale = 288, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwrath + .categoryName = _("TADPOLE"), + .height = 13, + .weight = 540, + .descriptionPage1 = DexDescription_Poliwrath_1, + .descriptionPage2 = DexDescription_Poliwrath_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Abra + .categoryName = _("PSI"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Abra_1, + .descriptionPage2 = DexDescription_Abra_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kadabra + .categoryName = _("PSI"), + .height = 13, + .weight = 565, + .descriptionPage1 = DexDescription_Kadabra_1, + .descriptionPage2 = DexDescription_Kadabra_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Alakazam + .categoryName = _("PSI"), + .height = 15, + .weight = 480, + .descriptionPage1 = DexDescription_Alakazam_1, + .descriptionPage2 = DexDescription_Alakazam_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machop + .categoryName = _("SUPERPOWER"), + .height = 8, + .weight = 195, + .descriptionPage1 = DexDescription_Machop_1, + .descriptionPage2 = DexDescription_Machop_2, + .pokemonScale = 342, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machoke + .categoryName = _("SUPERPOWER"), + .height = 15, + .weight = 705, + .descriptionPage1 = DexDescription_Machoke_1, + .descriptionPage2 = DexDescription_Machoke_2, + .pokemonScale = 323, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Machamp + .categoryName = _("SUPERPOWER"), + .height = 16, + .weight = 1300, + .descriptionPage1 = DexDescription_Machamp_1, + .descriptionPage2 = DexDescription_Machamp_2, + .pokemonScale = 280, + .pokemonOffset = 1, + .trainerScale = 269, + .trainerOffset = -1, + }, + { //Bellsprout + .categoryName = _("FLOWER"), + .height = 7, + .weight = 40, + .descriptionPage1 = DexDescription_Bellsprout_1, + .descriptionPage2 = DexDescription_Bellsprout_2, + .pokemonScale = 354, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weepinbell + .categoryName = _("FLYCATCHER"), + .height = 10, + .weight = 64, + .descriptionPage1 = DexDescription_Weepinbell_1, + .descriptionPage2 = DexDescription_Weepinbell_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Victreebel + .categoryName = _("FLYCATCHER"), + .height = 17, + .weight = 155, + .descriptionPage1 = DexDescription_Victreebel_1, + .descriptionPage2 = DexDescription_Victreebel_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 3, + }, + { //Tentacool + .categoryName = _("JELLYFISH"), + .height = 9, + .weight = 455, + .descriptionPage1 = DexDescription_Tentacool_1, + .descriptionPage2 = DexDescription_Tentacool_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tentacruel + .categoryName = _("JELLYFISH"), + .height = 16, + .weight = 550, + .descriptionPage1 = DexDescription_Tentacruel_1, + .descriptionPage2 = DexDescription_Tentacruel_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 312, + .trainerOffset = 1, + }, + { //Geodude + .categoryName = _("ROCK"), + .height = 4, + .weight = 200, + .descriptionPage1 = DexDescription_Geodude_1, + .descriptionPage2 = DexDescription_Geodude_2, + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Graveler + .categoryName = _("ROCK"), + .height = 10, + .weight = 1050, + .descriptionPage1 = DexDescription_Graveler_1, + .descriptionPage2 = DexDescription_Graveler_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golem + .categoryName = _("MEGATON"), + .height = 14, + .weight = 3000, + .descriptionPage1 = DexDescription_Golem_1, + .descriptionPage2 = DexDescription_Golem_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Ponyta + .categoryName = _("FIRE HORSE"), + .height = 10, + .weight = 300, + .descriptionPage1 = DexDescription_Ponyta_1, + .descriptionPage2 = DexDescription_Ponyta_2, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rapidash + .categoryName = _("FIRE HORSE"), + .height = 17, + .weight = 950, + .descriptionPage1 = DexDescription_Rapidash_1, + .descriptionPage2 = DexDescription_Rapidash_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + }, + { //Slowpoke + .categoryName = _("DOPEY"), + .height = 12, + .weight = 360, + .descriptionPage1 = DexDescription_Slowpoke_1, + .descriptionPage2 = DexDescription_Slowpoke_2, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slowbro + .categoryName = _("HERMIT CRAB"), + .height = 16, + .weight = 785, + .descriptionPage1 = DexDescription_Slowbro_1, + .descriptionPage2 = DexDescription_Slowbro_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Magnemite + .categoryName = _("MAGNET"), + .height = 3, + .weight = 60, + .descriptionPage1 = DexDescription_Magnemite_1, + .descriptionPage2 = DexDescription_Magnemite_2, + .pokemonScale = 288, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magneton + .categoryName = _("MAGNET"), + .height = 10, + .weight = 600, + .descriptionPage1 = DexDescription_Magneton_1, + .descriptionPage2 = DexDescription_Magneton_2, + .pokemonScale = 292, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Farfetchd + .categoryName = _("WILD DUCK"), + .height = 8, + .weight = 150, + .descriptionPage1 = DexDescription_Farfetchd_1, + .descriptionPage2 = DexDescription_Farfetchd_2, + .pokemonScale = 330, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Doduo + .categoryName = _("TWIN BIRD"), + .height = 14, + .weight = 392, + .descriptionPage1 = DexDescription_Doduo_1, + .descriptionPage2 = DexDescription_Doduo_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = -1, + }, + { //Dodrio + .categoryName = _("TRIPLE BIRD"), + .height = 18, + .weight = 852, + .descriptionPage1 = DexDescription_Dodrio_1, + .descriptionPage2 = DexDescription_Dodrio_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 0, + }, + { //Seel + .categoryName = _("SEA LION"), + .height = 11, + .weight = 900, + .descriptionPage1 = DexDescription_Seel_1, + .descriptionPage2 = DexDescription_Seel_2, + .pokemonScale = 297, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dewgong + .categoryName = _("SEA LION"), + .height = 17, + .weight = 1200, + .descriptionPage1 = DexDescription_Dewgong_1, + .descriptionPage2 = DexDescription_Dewgong_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 275, + .trainerOffset = 0, + }, + { //Grimer + .categoryName = _("SLUDGE"), + .height = 9, + .weight = 300, + .descriptionPage1 = DexDescription_Grimer_1, + .descriptionPage2 = DexDescription_Grimer_2, + .pokemonScale = 258, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Muk + .categoryName = _("SLUDGE"), + .height = 12, + .weight = 300, + .descriptionPage1 = DexDescription_Muk_1, + .descriptionPage2 = DexDescription_Muk_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shellder + .categoryName = _("BIVALVE"), + .height = 3, + .weight = 40, + .descriptionPage1 = DexDescription_Shellder_1, + .descriptionPage2 = DexDescription_Shellder_2, + .pokemonScale = 675, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cloyster + .categoryName = _("BIVALVE"), + .height = 15, + .weight = 1325, + .descriptionPage1 = DexDescription_Cloyster_1, + .descriptionPage2 = DexDescription_Cloyster_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 269, + .trainerOffset = 1, + }, + { //Gastly + .categoryName = _("GAS"), + .height = 13, + .weight = 1, + .descriptionPage1 = DexDescription_Gastly_1, + .descriptionPage2 = DexDescription_Gastly_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Haunter + .categoryName = _("GAS"), + .height = 16, + .weight = 1, + .descriptionPage1 = DexDescription_Haunter_1, + .descriptionPage2 = DexDescription_Haunter_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Gengar + .categoryName = _("SHADOW"), + .height = 15, + .weight = 405, + .descriptionPage1 = DexDescription_Gengar_1, + .descriptionPage2 = DexDescription_Gengar_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + }, + { //Onix + .categoryName = _("ROCK SNAKE"), + .height = 88, + .weight = 2100, + .descriptionPage1 = DexDescription_Onix_1, + .descriptionPage2 = DexDescription_Onix_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Drowzee + .categoryName = _("HYPNOSIS"), + .height = 10, + .weight = 324, + .descriptionPage1 = DexDescription_Drowzee_1, + .descriptionPage2 = DexDescription_Drowzee_2, + .pokemonScale = 274, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hypno + .categoryName = _("HYPNOSIS"), + .height = 16, + .weight = 756, + .descriptionPage1 = DexDescription_Hypno_1, + .descriptionPage2 = DexDescription_Hypno_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Krabby + .categoryName = _("RIVER CRAB"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Krabby_1, + .descriptionPage2 = DexDescription_Krabby_2, + .pokemonScale = 469, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingler + .categoryName = _("PINCER"), + .height = 13, + .weight = 600, + .descriptionPage1 = DexDescription_Kingler_1, + .descriptionPage2 = DexDescription_Kingler_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Voltorb + .categoryName = _("BALL"), + .height = 5, + .weight = 104, + .descriptionPage1 = DexDescription_Voltorb_1, + .descriptionPage2 = DexDescription_Voltorb_2, + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrode + .categoryName = _("BALL"), + .height = 12, + .weight = 666, + .descriptionPage1 = DexDescription_Electrode_1, + .descriptionPage2 = DexDescription_Electrode_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggcute + .categoryName = _("EGG"), + .height = 4, + .weight = 25, + .descriptionPage1 = DexDescription_Exeggcute_1, + .descriptionPage2 = DexDescription_Exeggcute_2, + .pokemonScale = 489, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggutor + .categoryName = _("COCONUT"), + .height = 20, + .weight = 1200, + .descriptionPage1 = DexDescription_Exeggutor_1, + .descriptionPage2 = DexDescription_Exeggutor_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Cubone + .categoryName = _("LONELY"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Cubone_1, + .descriptionPage2 = DexDescription_Cubone_2, + .pokemonScale = 545, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marowak + .categoryName = _("BONE KEEPER"), + .height = 10, + .weight = 450, + .descriptionPage1 = DexDescription_Marowak_1, + .descriptionPage2 = DexDescription_Marowak_2, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmonlee + .categoryName = _("KICKING"), + .height = 15, + .weight = 498, + .descriptionPage1 = DexDescription_Hitmonlee_1, + .descriptionPage2 = DexDescription_Hitmonlee_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 259, + .trainerOffset = 1, + }, + { //Hitmonchan + .categoryName = _("PUNCHING"), + .height = 14, + .weight = 502, + .descriptionPage1 = DexDescription_Hitmonchan_1, + .descriptionPage2 = DexDescription_Hitmonchan_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 277, + .trainerOffset = 2, + }, + { //Lickitung + .categoryName = _("LICKING"), + .height = 12, + .weight = 655, + .descriptionPage1 = DexDescription_Lickitung_1, + .descriptionPage2 = DexDescription_Lickitung_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Koffing + .categoryName = _("POISON GAS"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Koffing_1, + .descriptionPage2 = DexDescription_Koffing_2, + .pokemonScale = 369, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weezing + .categoryName = _("POISON GAS"), + .height = 12, + .weight = 95, + .descriptionPage1 = DexDescription_Weezing_1, + .descriptionPage2 = DexDescription_Weezing_2, + .pokemonScale = 305, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhyhorn + .categoryName = _("SPIKES"), + .height = 10, + .weight = 1150, + .descriptionPage1 = DexDescription_Rhyhorn_1, + .descriptionPage2 = DexDescription_Rhyhorn_2, + .pokemonScale = 267, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhydon + .categoryName = _("DRILL"), + .height = 19, + .weight = 1200, + .descriptionPage1 = DexDescription_Rhydon_1, + .descriptionPage2 = DexDescription_Rhydon_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 299, + .trainerOffset = 2, + }, + { //Chansey + .categoryName = _("EGG"), + .height = 11, + .weight = 346, + .descriptionPage1 = DexDescription_Chansey_1, + .descriptionPage2 = DexDescription_Chansey_2, + .pokemonScale = 257, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tangela + .categoryName = _("VINE"), + .height = 10, + .weight = 350, + .descriptionPage1 = DexDescription_Tangela_1, + .descriptionPage2 = DexDescription_Tangela_2, + .pokemonScale = 304, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kangaskhan + .categoryName = _("PARENT"), + .height = 22, + .weight = 800, + .descriptionPage1 = DexDescription_Kangaskhan_1, + .descriptionPage2 = DexDescription_Kangaskhan_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Horsea + .categoryName = _("DRAGON"), + .height = 4, + .weight = 80, + .descriptionPage1 = DexDescription_Horsea_1, + .descriptionPage2 = DexDescription_Horsea_2, + .pokemonScale = 399, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seadra + .categoryName = _("DRAGON"), + .height = 12, + .weight = 250, + .descriptionPage1 = DexDescription_Seadra_1, + .descriptionPage2 = DexDescription_Seadra_2, + .pokemonScale = 299, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Goldeen + .categoryName = _("GOLDFISH"), + .height = 6, + .weight = 150, + .descriptionPage1 = DexDescription_Goldeen_1, + .descriptionPage2 = DexDescription_Goldeen_2, + .pokemonScale = 379, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seaking + .categoryName = _("GOLDFISH"), + .height = 13, + .weight = 390, + .descriptionPage1 = DexDescription_Seaking_1, + .descriptionPage2 = DexDescription_Seaking_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Staryu + .categoryName = _("STAR SHAPE"), + .height = 8, + .weight = 345, + .descriptionPage1 = DexDescription_Staryu_1, + .descriptionPage2 = DexDescription_Staryu_2, + .pokemonScale = 326, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Starmie + .categoryName = _("MYSTERIOUS"), + .height = 11, + .weight = 800, + .descriptionPage1 = DexDescription_Starmie_1, + .descriptionPage2 = DexDescription_Starmie_2, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mrmime + .categoryName = _("BARRIER"), + .height = 13, + .weight = 545, + .descriptionPage1 = DexDescription_Mrmime_1, + .descriptionPage2 = DexDescription_Mrmime_2, + .pokemonScale = 258, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scyther + .categoryName = _("MANTIS"), + .height = 15, + .weight = 560, + .descriptionPage1 = DexDescription_Scyther_1, + .descriptionPage2 = DexDescription_Scyther_2, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Jynx + .categoryName = _("HUMAN SHAPE"), + .height = 14, + .weight = 406, + .descriptionPage1 = DexDescription_Jynx_1, + .descriptionPage2 = DexDescription_Jynx_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Electabuzz + .categoryName = _("ELECTRIC"), + .height = 11, + .weight = 300, + .descriptionPage1 = DexDescription_Electabuzz_1, + .descriptionPage2 = DexDescription_Electabuzz_2, + .pokemonScale = 351, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magmar + .categoryName = _("SPITFIRE"), + .height = 13, + .weight = 445, + .descriptionPage1 = DexDescription_Magmar_1, + .descriptionPage2 = DexDescription_Magmar_2, + .pokemonScale = 277, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pinsir + .categoryName = _("STAG BEETLE"), + .height = 15, + .weight = 550, + .descriptionPage1 = DexDescription_Pinsir_1, + .descriptionPage2 = DexDescription_Pinsir_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Tauros + .categoryName = _("WILD BULL"), + .height = 14, + .weight = 884, + .descriptionPage1 = DexDescription_Tauros_1, + .descriptionPage2 = DexDescription_Tauros_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magikarp + .categoryName = _("FISH"), + .height = 9, + .weight = 100, + .descriptionPage1 = DexDescription_Magikarp_1, + .descriptionPage2 = DexDescription_Magikarp_2, + .pokemonScale = 310, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gyarados + .categoryName = _("ATROCIOUS"), + .height = 65, + .weight = 2350, + .descriptionPage1 = DexDescription_Gyarados_1, + .descriptionPage2 = DexDescription_Gyarados_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + }, + { //Lapras + .categoryName = _("TRANSPORT"), + .height = 25, + .weight = 2200, + .descriptionPage1 = DexDescription_Lapras_1, + .descriptionPage2 = DexDescription_Lapras_2, + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + }, + { //Ditto + .categoryName = _("TRANSFORM"), + .height = 3, + .weight = 40, + .descriptionPage1 = DexDescription_Ditto_1, + .descriptionPage2 = DexDescription_Ditto_2, + .pokemonScale = 633, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Eevee + .categoryName = _("EVOLUTION"), + .height = 3, + .weight = 65, + .descriptionPage1 = DexDescription_Eevee_1, + .descriptionPage2 = DexDescription_Eevee_2, + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vaporeon + .categoryName = _("BUBBLE JET"), + .height = 10, + .weight = 290, + .descriptionPage1 = DexDescription_Vaporeon_1, + .descriptionPage2 = DexDescription_Vaporeon_2, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jolteon + .categoryName = _("LIGHTNING"), + .height = 8, + .weight = 245, + .descriptionPage1 = DexDescription_Jolteon_1, + .descriptionPage2 = DexDescription_Jolteon_2, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flareon + .categoryName = _("FLAME"), + .height = 9, + .weight = 250, + .descriptionPage1 = DexDescription_Flareon_1, + .descriptionPage2 = DexDescription_Flareon_2, + .pokemonScale = 306, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon + .categoryName = _("VIRTUAL"), + .height = 8, + .weight = 365, + .descriptionPage1 = DexDescription_Porygon_1, + .descriptionPage2 = DexDescription_Porygon_2, + .pokemonScale = 328, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omanyte + .categoryName = _("SPIRAL"), + .height = 4, + .weight = 75, + .descriptionPage1 = DexDescription_Omanyte_1, + .descriptionPage2 = DexDescription_Omanyte_2, + .pokemonScale = 521, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omastar + .categoryName = _("SPIRAL"), + .height = 10, + .weight = 350, + .descriptionPage1 = DexDescription_Omastar_1, + .descriptionPage2 = DexDescription_Omastar_2, + .pokemonScale = 307, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabuto + .categoryName = _("SHELLFISH"), + .height = 5, + .weight = 115, + .descriptionPage1 = DexDescription_Kabuto_1, + .descriptionPage2 = DexDescription_Kabuto_2, + .pokemonScale = 454, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabutops + .categoryName = _("SHELLFISH"), + .height = 13, + .weight = 405, + .descriptionPage1 = DexDescription_Kabutops_1, + .descriptionPage2 = DexDescription_Kabutops_2, + .pokemonScale = 271, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aerodactyl + .categoryName = _("FOSSIL"), + .height = 18, + .weight = 590, + .descriptionPage1 = DexDescription_Aerodactyl_1, + .descriptionPage2 = DexDescription_Aerodactyl_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 302, + .trainerOffset = 4, + }, + { //Snorlax + .categoryName = _("SLEEPING"), + .height = 21, + .weight = 4600, + .descriptionPage1 = DexDescription_Snorlax_1, + .descriptionPage2 = DexDescription_Snorlax_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 423, + .trainerOffset = 11, + }, + { //Articuno + .categoryName = _("FREEZE"), + .height = 17, + .weight = 554, + .descriptionPage1 = DexDescription_Articuno_1, + .descriptionPage2 = DexDescription_Articuno_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + }, + { //Zapdos + .categoryName = _("ELECTRIC"), + .height = 16, + .weight = 526, + .descriptionPage1 = DexDescription_Zapdos_1, + .descriptionPage2 = DexDescription_Zapdos_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + }, + { //Moltres + .categoryName = _("FLAME"), + .height = 20, + .weight = 600, + .descriptionPage1 = DexDescription_Moltres_1, + .descriptionPage2 = DexDescription_Moltres_2, + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Dratini + .categoryName = _("DRAGON"), + .height = 18, + .weight = 33, + .descriptionPage1 = DexDescription_Dratini_1, + .descriptionPage2 = DexDescription_Dratini_2, + .pokemonScale = 256, + .pokemonOffset = 8, + .trainerScale = 386, + .trainerOffset = 6, + }, + { //Dragonair + .categoryName = _("DRAGON"), + .height = 40, + .weight = 165, + .descriptionPage1 = DexDescription_Dragonair_1, + .descriptionPage2 = DexDescription_Dragonair_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 411, + .trainerOffset = 5, + }, + { //Dragonite + .categoryName = _("DRAGON"), + .height = 22, + .weight = 2100, + .descriptionPage1 = DexDescription_Dragonite_1, + .descriptionPage2 = DexDescription_Dragonite_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mewtwo + .categoryName = _("GENETIC"), + .height = 20, + .weight = 1220, + .descriptionPage1 = DexDescription_Mewtwo_1, + .descriptionPage2 = DexDescription_Mewtwo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mew + .categoryName = _("NEW SPECIES"), + .height = 4, + .weight = 40, + .descriptionPage1 = DexDescription_Mew_1, + .descriptionPage2 = DexDescription_Mew_2, + .pokemonScale = 457, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Chikorita + .categoryName = _("LEAF"), + .height = 9, + .weight = 64, + .descriptionPage1 = DexDescription_Chikorita_1, + .descriptionPage2 = DexDescription_Chikorita_2, + .pokemonScale = 512, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bayleef + .categoryName = _("LEAF"), + .height = 12, + .weight = 158, + .descriptionPage1 = DexDescription_Bayleef_1, + .descriptionPage2 = DexDescription_Bayleef_2, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meganium + .categoryName = _("HERB"), + .height = 18, + .weight = 1005, + .descriptionPage1 = DexDescription_Meganium_1, + .descriptionPage2 = DexDescription_Meganium_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 277, + .trainerOffset = 1, + }, + { //Cyndaquil + .categoryName = _("FIRE MOUSE"), + .height = 5, + .weight = 79, + .descriptionPage1 = DexDescription_Cyndaquil_1, + .descriptionPage2 = DexDescription_Cyndaquil_2, + .pokemonScale = 539, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quilava + .categoryName = _("VOLCANO"), + .height = 9, + .weight = 190, + .descriptionPage1 = DexDescription_Quilava_1, + .descriptionPage2 = DexDescription_Quilava_2, + .pokemonScale = 329, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Typhlosion + .categoryName = _("VOLCANO"), + .height = 17, + .weight = 795, + .descriptionPage1 = DexDescription_Typhlosion_1, + .descriptionPage2 = DexDescription_Typhlosion_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Totodile + .categoryName = _("BIG JAW"), + .height = 6, + .weight = 95, + .descriptionPage1 = DexDescription_Totodile_1, + .descriptionPage2 = DexDescription_Totodile_2, + .pokemonScale = 487, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Croconaw + .categoryName = _("BIG JAW"), + .height = 11, + .weight = 250, + .descriptionPage1 = DexDescription_Croconaw_1, + .descriptionPage2 = DexDescription_Croconaw_2, + .pokemonScale = 378, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Feraligatr + .categoryName = _("BIG JAW"), + .height = 23, + .weight = 888, + .descriptionPage1 = DexDescription_Feraligatr_1, + .descriptionPage2 = DexDescription_Feraligatr_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Sentret + .categoryName = _("SCOUT"), + .height = 8, + .weight = 60, + .descriptionPage1 = DexDescription_Sentret_1, + .descriptionPage2 = DexDescription_Sentret_2, + .pokemonScale = 439, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Furret + .categoryName = _("LONG BODY"), + .height = 18, + .weight = 325, + .descriptionPage1 = DexDescription_Furret_1, + .descriptionPage2 = DexDescription_Furret_2, + .pokemonScale = 346, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoothoot + .categoryName = _("OWL"), + .height = 7, + .weight = 212, + .descriptionPage1 = DexDescription_Hoothoot_1, + .descriptionPage2 = DexDescription_Hoothoot_2, + .pokemonScale = 380, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Noctowl + .categoryName = _("OWL"), + .height = 16, + .weight = 408, + .descriptionPage1 = DexDescription_Noctowl_1, + .descriptionPage2 = DexDescription_Noctowl_2, + .pokemonScale = 278, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledyba + .categoryName = _("FIVE STAR"), + .height = 10, + .weight = 108, + .descriptionPage1 = DexDescription_Ledyba_1, + .descriptionPage2 = DexDescription_Ledyba_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledian + .categoryName = _("FIVE STAR"), + .height = 14, + .weight = 356, + .descriptionPage1 = DexDescription_Ledian_1, + .descriptionPage2 = DexDescription_Ledian_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinarak + .categoryName = _("STRING SPIT"), + .height = 5, + .weight = 85, + .descriptionPage1 = DexDescription_Spinarak_1, + .descriptionPage2 = DexDescription_Spinarak_2, + .pokemonScale = 414, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ariados + .categoryName = _("LONG LEG"), + .height = 11, + .weight = 335, + .descriptionPage1 = DexDescription_Ariados_1, + .descriptionPage2 = DexDescription_Ariados_2, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crobat + .categoryName = _("BAT"), + .height = 18, + .weight = 750, + .descriptionPage1 = DexDescription_Crobat_1, + .descriptionPage2 = DexDescription_Crobat_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 281, + .trainerOffset = 1, + }, + { //Chinchou + .categoryName = _("ANGLER"), + .height = 5, + .weight = 120, + .descriptionPage1 = DexDescription_Chinchou_1, + .descriptionPage2 = DexDescription_Chinchou_2, + .pokemonScale = 424, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lanturn + .categoryName = _("LIGHT"), + .height = 12, + .weight = 225, + .descriptionPage1 = DexDescription_Lanturn_1, + .descriptionPage2 = DexDescription_Lanturn_2, + .pokemonScale = 269, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pichu + .categoryName = _("TINY MOUSE"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Pichu_1, + .descriptionPage2 = DexDescription_Pichu_2, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cleffa + .categoryName = _("STAR SHAPE"), + .height = 3, + .weight = 30, + .descriptionPage1 = DexDescription_Cleffa_1, + .descriptionPage2 = DexDescription_Cleffa_2, + .pokemonScale = 462, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Igglybuff + .categoryName = _("BALLOON"), + .height = 3, + .weight = 10, + .descriptionPage1 = DexDescription_Igglybuff_1, + .descriptionPage2 = DexDescription_Igglybuff_2, + .pokemonScale = 457, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togepi + .categoryName = _("SPIKE BALL"), + .height = 3, + .weight = 15, + .descriptionPage1 = DexDescription_Togepi_1, + .descriptionPage2 = DexDescription_Togepi_2, + .pokemonScale = 507, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togetic + .categoryName = _("HAPPINESS"), + .height = 6, + .weight = 32, + .descriptionPage1 = DexDescription_Togetic_1, + .descriptionPage2 = DexDescription_Togetic_2, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Natu + .categoryName = _("TINY BIRD"), + .height = 2, + .weight = 20, + .descriptionPage1 = DexDescription_Natu_1, + .descriptionPage2 = DexDescription_Natu_2, + .pokemonScale = 610, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Xatu + .categoryName = _("MYSTIC"), + .height = 15, + .weight = 150, + .descriptionPage1 = DexDescription_Xatu_1, + .descriptionPage2 = DexDescription_Xatu_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 318, + .trainerOffset = 4, + }, + { //Mareep + .categoryName = _("WOOL"), + .height = 6, + .weight = 78, + .descriptionPage1 = DexDescription_Mareep_1, + .descriptionPage2 = DexDescription_Mareep_2, + .pokemonScale = 379, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flaaffy + .categoryName = _("WOOL"), + .height = 8, + .weight = 133, + .descriptionPage1 = DexDescription_Flaaffy_1, + .descriptionPage2 = DexDescription_Flaaffy_2, + .pokemonScale = 372, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ampharos + .categoryName = _("LIGHT"), + .height = 14, + .weight = 615, + .descriptionPage1 = DexDescription_Ampharos_1, + .descriptionPage2 = DexDescription_Ampharos_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bellossom + .categoryName = _("FLOWER"), + .height = 4, + .weight = 58, + .descriptionPage1 = DexDescription_Bellossom_1, + .descriptionPage2 = DexDescription_Bellossom_2, + .pokemonScale = 472, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marill + .categoryName = _("AQUA MOUSE"), + .height = 4, + .weight = 85, + .descriptionPage1 = DexDescription_Marill_1, + .descriptionPage2 = DexDescription_Marill_2, + .pokemonScale = 476, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Azumarill + .categoryName = _("AQUA RABBIT"), + .height = 8, + .weight = 285, + .descriptionPage1 = DexDescription_Azumarill_1, + .descriptionPage2 = DexDescription_Azumarill_2, + .pokemonScale = 448, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sudowoodo + .categoryName = _("IMITATION"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Sudowoodo_1, + .descriptionPage2 = DexDescription_Sudowoodo_2, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Politoed + .categoryName = _("FROG"), + .height = 11, + .weight = 339, + .descriptionPage1 = DexDescription_Politoed_1, + .descriptionPage2 = DexDescription_Politoed_2, + .pokemonScale = 289, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoppip + .categoryName = _("COTTONWEED"), + .height = 4, + .weight = 5, + .descriptionPage1 = DexDescription_Hoppip_1, + .descriptionPage2 = DexDescription_Hoppip_2, + .pokemonScale = 562, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Skiploom + .categoryName = _("COTTONWEED"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Skiploom_1, + .descriptionPage2 = DexDescription_Skiploom_2, + .pokemonScale = 387, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jumpluff + .categoryName = _("COTTONWEED"), + .height = 8, + .weight = 30, + .descriptionPage1 = DexDescription_Jumpluff_1, + .descriptionPage2 = DexDescription_Jumpluff_2, + .pokemonScale = 418, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aipom + .categoryName = _("LONG TAIL"), + .height = 8, + .weight = 115, + .descriptionPage1 = DexDescription_Aipom_1, + .descriptionPage2 = DexDescription_Aipom_2, + .pokemonScale = 363, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunkern + .categoryName = _("SEED"), + .height = 3, + .weight = 18, + .descriptionPage1 = DexDescription_Sunkern_1, + .descriptionPage2 = DexDescription_Sunkern_2, + .pokemonScale = 541, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunflora + .categoryName = _("SUN"), + .height = 8, + .weight = 85, + .descriptionPage1 = DexDescription_Sunflora_1, + .descriptionPage2 = DexDescription_Sunflora_2, + .pokemonScale = 444, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Yanma + .categoryName = _("CLEAR WING"), + .height = 12, + .weight = 380, + .descriptionPage1 = DexDescription_Yanma_1, + .descriptionPage2 = DexDescription_Yanma_2, + .pokemonScale = 274, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wooper + .categoryName = _("WATER FISH"), + .height = 4, + .weight = 85, + .descriptionPage1 = DexDescription_Wooper_1, + .descriptionPage2 = DexDescription_Wooper_2, + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quagsire + .categoryName = _("WATER FISH"), + .height = 14, + .weight = 750, + .descriptionPage1 = DexDescription_Quagsire_1, + .descriptionPage2 = DexDescription_Quagsire_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Espeon + .categoryName = _("SUN"), + .height = 9, + .weight = 265, + .descriptionPage1 = DexDescription_Espeon_1, + .descriptionPage2 = DexDescription_Espeon_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Umbreon + .categoryName = _("MOONLIGHT"), + .height = 10, + .weight = 270, + .descriptionPage1 = DexDescription_Umbreon_1, + .descriptionPage2 = DexDescription_Umbreon_2, + .pokemonScale = 317, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Murkrow + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 21, + .descriptionPage1 = DexDescription_Murkrow_1, + .descriptionPage2 = DexDescription_Murkrow_2, + .pokemonScale = 401, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Slowking + .categoryName = _("ROYAL"), + .height = 20, + .weight = 795, + .descriptionPage1 = DexDescription_Slowking_1, + .descriptionPage2 = DexDescription_Slowking_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Misdreavus + .categoryName = _("SCREECH"), + .height = 7, + .weight = 10, + .descriptionPage1 = DexDescription_Misdreavus_1, + .descriptionPage2 = DexDescription_Misdreavus_2, + .pokemonScale = 407, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Unown + .categoryName = _("SYMBOL"), + .height = 5, + .weight = 50, + .descriptionPage1 = DexDescription_Unown_1, + .descriptionPage2 = DexDescription_Unown_2, + .pokemonScale = 411, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wobbuffet + .categoryName = _("PATIENT"), + .height = 13, + .weight = 285, + .descriptionPage1 = DexDescription_Wobbuffet_1, + .descriptionPage2 = DexDescription_Wobbuffet_2, + .pokemonScale = 274, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Girafarig + .categoryName = _("LONG NECK"), + .height = 15, + .weight = 415, + .descriptionPage1 = DexDescription_Girafarig_1, + .descriptionPage2 = DexDescription_Girafarig_2, + .pokemonScale = 281, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pineco + .categoryName = _("BAGWORM"), + .height = 6, + .weight = 72, + .descriptionPage1 = DexDescription_Pineco_1, + .descriptionPage2 = DexDescription_Pineco_2, + .pokemonScale = 445, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Forretress + .categoryName = _("BAGWORM"), + .height = 12, + .weight = 1258, + .descriptionPage1 = DexDescription_Forretress_1, + .descriptionPage2 = DexDescription_Forretress_2, + .pokemonScale = 293, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dunsparce + .categoryName = _("LAND SNAKE"), + .height = 15, + .weight = 140, + .descriptionPage1 = DexDescription_Dunsparce_1, + .descriptionPage2 = DexDescription_Dunsparce_2, + .pokemonScale = 316, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gligar + .categoryName = _("FLYSCORPION"), + .height = 11, + .weight = 648, + .descriptionPage1 = DexDescription_Gligar_1, + .descriptionPage2 = DexDescription_Gligar_2, + .pokemonScale = 350, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Steelix + .categoryName = _("IRON SNAKE"), + .height = 92, + .weight = 4000, + .descriptionPage1 = DexDescription_Steelix_1, + .descriptionPage2 = DexDescription_Steelix_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + }, + { //Snubbull + .categoryName = _("FAIRY"), + .height = 6, + .weight = 78, + .descriptionPage1 = DexDescription_Snubbull_1, + .descriptionPage2 = DexDescription_Snubbull_2, + .pokemonScale = 465, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Granbull + .categoryName = _("FAIRY"), + .height = 14, + .weight = 487, + .descriptionPage1 = DexDescription_Granbull_1, + .descriptionPage2 = DexDescription_Granbull_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Qwilfish + .categoryName = _("BALLOON"), + .height = 5, + .weight = 39, + .descriptionPage1 = DexDescription_Qwilfish_1, + .descriptionPage2 = DexDescription_Qwilfish_2, + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scizor + .categoryName = _("PINCER"), + .height = 18, + .weight = 1180, + .descriptionPage1 = DexDescription_Scizor_1, + .descriptionPage2 = DexDescription_Scizor_2, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuckle + .categoryName = _("MOLD"), + .height = 6, + .weight = 205, + .descriptionPage1 = DexDescription_Shuckle_1, + .descriptionPage2 = DexDescription_Shuckle_2, + .pokemonScale = 485, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Heracross + .categoryName = _("SINGLE HORN"), + .height = 15, + .weight = 540, + .descriptionPage1 = DexDescription_Heracross_1, + .descriptionPage2 = DexDescription_Heracross_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sneasel + .categoryName = _("SHARP CLAW"), + .height = 9, + .weight = 280, + .descriptionPage1 = DexDescription_Sneasel_1, + .descriptionPage2 = DexDescription_Sneasel_2, + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Teddiursa + .categoryName = _("LITTLE BEAR"), + .height = 6, + .weight = 88, + .descriptionPage1 = DexDescription_Teddiursa_1, + .descriptionPage2 = DexDescription_Teddiursa_2, + .pokemonScale = 455, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ursaring + .categoryName = _("HIBERNATOR"), + .height = 18, + .weight = 1258, + .descriptionPage1 = DexDescription_Ursaring_1, + .descriptionPage2 = DexDescription_Ursaring_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slugma + .categoryName = _("LAVA"), + .height = 7, + .weight = 350, + .descriptionPage1 = DexDescription_Slugma_1, + .descriptionPage2 = DexDescription_Slugma_2, + .pokemonScale = 329, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magcargo + .categoryName = _("LAVA"), + .height = 8, + .weight = 550, + .descriptionPage1 = DexDescription_Magcargo_1, + .descriptionPage2 = DexDescription_Magcargo_2, + .pokemonScale = 332, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swinub + .categoryName = _("PIG"), + .height = 4, + .weight = 65, + .descriptionPage1 = DexDescription_Swinub_1, + .descriptionPage2 = DexDescription_Swinub_2, + .pokemonScale = 324, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Piloswine + .categoryName = _("SWINE"), + .height = 11, + .weight = 558, + .descriptionPage1 = DexDescription_Piloswine_1, + .descriptionPage2 = DexDescription_Piloswine_2, + .pokemonScale = 306, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corsola + .categoryName = _("CORAL"), + .height = 6, + .weight = 50, + .descriptionPage1 = DexDescription_Corsola_1, + .descriptionPage2 = DexDescription_Corsola_2, + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Remoraid + .categoryName = _("JET"), + .height = 6, + .weight = 120, + .descriptionPage1 = DexDescription_Remoraid_1, + .descriptionPage2 = DexDescription_Remoraid_2, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Octillery + .categoryName = _("JET"), + .height = 9, + .weight = 285, + .descriptionPage1 = DexDescription_Octillery_1, + .descriptionPage2 = DexDescription_Octillery_2, + .pokemonScale = 296, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delibird + .categoryName = _("DELIVERY"), + .height = 9, + .weight = 160, + .descriptionPage1 = DexDescription_Delibird_1, + .descriptionPage2 = DexDescription_Delibird_2, + .pokemonScale = 293, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mantine + .categoryName = _("KITE"), + .height = 21, + .weight = 2200, + .descriptionPage1 = DexDescription_Mantine_1, + .descriptionPage2 = DexDescription_Mantine_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Skarmory + .categoryName = _("ARMOR BIRD"), + .height = 17, + .weight = 505, + .descriptionPage1 = DexDescription_Skarmory_1, + .descriptionPage2 = DexDescription_Skarmory_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 271, + .trainerOffset = 1, + }, + { //Houndour + .categoryName = _("DARK"), + .height = 6, + .weight = 108, + .descriptionPage1 = DexDescription_Houndour_1, + .descriptionPage2 = DexDescription_Houndour_2, + .pokemonScale = 393, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Houndoom + .categoryName = _("DARK"), + .height = 14, + .weight = 350, + .descriptionPage1 = DexDescription_Houndoom_1, + .descriptionPage2 = DexDescription_Houndoom_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingdra + .categoryName = _("DRAGON"), + .height = 18, + .weight = 1520, + .descriptionPage1 = DexDescription_Kingdra_1, + .descriptionPage2 = DexDescription_Kingdra_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 287, + .trainerOffset = 0, + }, + { //Phanpy + .categoryName = _("LONG NOSE"), + .height = 5, + .weight = 335, + .descriptionPage1 = DexDescription_Phanpy_1, + .descriptionPage2 = DexDescription_Phanpy_2, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Donphan + .categoryName = _("ARMOR"), + .height = 11, + .weight = 1200, + .descriptionPage1 = DexDescription_Donphan_1, + .descriptionPage2 = DexDescription_Donphan_2, + .pokemonScale = 313, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon2 + .categoryName = _("VIRTUAL"), + .height = 6, + .weight = 325, + .descriptionPage1 = DexDescription_Porygon2_1, + .descriptionPage2 = DexDescription_Porygon2_2, + .pokemonScale = 320, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Stantler + .categoryName = _("BIG HORN"), + .height = 14, + .weight = 712, + .descriptionPage1 = DexDescription_Stantler_1, + .descriptionPage2 = DexDescription_Stantler_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Smeargle + .categoryName = _("PAINTER"), + .height = 12, + .weight = 580, + .descriptionPage1 = DexDescription_Smeargle_1, + .descriptionPage2 = DexDescription_Smeargle_2, + .pokemonScale = 287, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyrogue + .categoryName = _("SCUFFLE"), + .height = 7, + .weight = 210, + .descriptionPage1 = DexDescription_Tyrogue_1, + .descriptionPage2 = DexDescription_Tyrogue_2, + .pokemonScale = 292, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmontop + .categoryName = _("HANDSTAND"), + .height = 14, + .weight = 480, + .descriptionPage1 = DexDescription_Hitmontop_1, + .descriptionPage2 = DexDescription_Hitmontop_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Smoochum + .categoryName = _("KISS"), + .height = 4, + .weight = 60, + .descriptionPage1 = DexDescription_Smoochum_1, + .descriptionPage2 = DexDescription_Smoochum_2, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Elekid + .categoryName = _("ELECTRIC"), + .height = 6, + .weight = 235, + .descriptionPage1 = DexDescription_Elekid_1, + .descriptionPage2 = DexDescription_Elekid_2, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magby + .categoryName = _("LIVE COAL"), + .height = 7, + .weight = 214, + .descriptionPage1 = DexDescription_Magby_1, + .descriptionPage2 = DexDescription_Magby_2, + .pokemonScale = 284, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Miltank + .categoryName = _("MILK COW"), + .height = 12, + .weight = 755, + .descriptionPage1 = DexDescription_Miltank_1, + .descriptionPage2 = DexDescription_Miltank_2, + .pokemonScale = 280, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blissey + .categoryName = _("HAPPINESS"), + .height = 15, + .weight = 468, + .descriptionPage1 = DexDescription_Blissey_1, + .descriptionPage2 = DexDescription_Blissey_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 310, + .trainerOffset = 3, + }, + { //Raikou + .categoryName = _("THUNDER"), + .height = 19, + .weight = 1780, + .descriptionPage1 = DexDescription_Raikou_1, + .descriptionPage2 = DexDescription_Raikou_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Entei + .categoryName = _("VOLCANO"), + .height = 21, + .weight = 1980, + .descriptionPage1 = DexDescription_Entei_1, + .descriptionPage2 = DexDescription_Entei_2, + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Suicune + .categoryName = _("AURORA"), + .height = 20, + .weight = 1870, + .descriptionPage1 = DexDescription_Suicune_1, + .descriptionPage2 = DexDescription_Suicune_2, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Larvitar + .categoryName = _("ROCK SKIN"), + .height = 6, + .weight = 720, + .descriptionPage1 = DexDescription_Larvitar_1, + .descriptionPage2 = DexDescription_Larvitar_2, + .pokemonScale = 472, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pupitar + .categoryName = _("HARD SHELL"), + .height = 12, + .weight = 1520, + .descriptionPage1 = DexDescription_Pupitar_1, + .descriptionPage2 = DexDescription_Pupitar_2, + .pokemonScale = 292, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyranitar + .categoryName = _("ARMOR"), + .height = 20, + .weight = 2020, + .descriptionPage1 = DexDescription_Tyranitar_1, + .descriptionPage2 = DexDescription_Tyranitar_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Lugia + .categoryName = _("DIVING"), + .height = 52, + .weight = 2160, + .descriptionPage1 = DexDescription_Lugia_1, + .descriptionPage2 = DexDescription_Lugia_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + }, + { //HoOh + .categoryName = _("RAINBOW"), + .height = 38, + .weight = 1990, + .descriptionPage1 = DexDescription_HoOh_1, + .descriptionPage2 = DexDescription_HoOh_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + }, + { //Celebi + .categoryName = _("TIME TRAVEL"), + .height = 6, + .weight = 50, + .descriptionPage1 = DexDescription_Celebi_1, + .descriptionPage2 = DexDescription_Celebi_2, + .pokemonScale = 393, + .pokemonOffset = -10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Treecko + .categoryName = _("WOOD GECKO"), + .height = 5, + .weight = 50, + .descriptionPage1 = DexDescription_Treecko_1, + .descriptionPage2 = DexDescription_Treecko_2, + .pokemonScale = 541, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grovyle + .categoryName = _("WOOD GECKO"), + .height = 9, + .weight = 216, + .descriptionPage1 = DexDescription_Grovyle_1, + .descriptionPage2 = DexDescription_Grovyle_2, + .pokemonScale = 360, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sceptile + .categoryName = _("FOREST"), + .height = 17, + .weight = 522, + .descriptionPage1 = DexDescription_Sceptile_1, + .descriptionPage2 = DexDescription_Sceptile_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 275, + .trainerOffset = 2, + }, + { //Torchic + .categoryName = _("CHICK"), + .height = 4, + .weight = 25, + .descriptionPage1 = DexDescription_Torchic_1, + .descriptionPage2 = DexDescription_Torchic_2, + .pokemonScale = 566, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Combusken + .categoryName = _("YOUNG FOWL"), + .height = 9, + .weight = 195, + .descriptionPage1 = DexDescription_Combusken_1, + .descriptionPage2 = DexDescription_Combusken_2, + .pokemonScale = 343, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blaziken + .categoryName = _("BLAZE"), + .height = 19, + .weight = 520, + .descriptionPage1 = DexDescription_Blaziken_1, + .descriptionPage2 = DexDescription_Blaziken_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + }, + { //Mudkip + .categoryName = _("MUD FISH"), + .height = 4, + .weight = 76, + .descriptionPage1 = DexDescription_Mudkip_1, + .descriptionPage2 = DexDescription_Mudkip_2, + .pokemonScale = 535, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marshtomp + .categoryName = _("MUD FISH"), + .height = 7, + .weight = 280, + .descriptionPage1 = DexDescription_Marshtomp_1, + .descriptionPage2 = DexDescription_Marshtomp_2, + .pokemonScale = 340, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swampert + .categoryName = _("MUD FISH"), + .height = 15, + .weight = 819, + .descriptionPage1 = DexDescription_Swampert_1, + .descriptionPage2 = DexDescription_Swampert_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poochyena + .categoryName = _("BITE"), + .height = 5, + .weight = 136, + .descriptionPage1 = DexDescription_Poochyena_1, + .descriptionPage2 = DexDescription_Poochyena_2, + .pokemonScale = 481, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mightyena + .categoryName = _("BITE"), + .height = 10, + .weight = 370, + .descriptionPage1 = DexDescription_Mightyena_1, + .descriptionPage2 = DexDescription_Mightyena_2, + .pokemonScale = 362, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zigzagoon + .categoryName = _("TINYRACCOON"), + .height = 4, + .weight = 175, + .descriptionPage1 = DexDescription_Zigzagoon_1, + .descriptionPage2 = DexDescription_Zigzagoon_2, + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Linoone + .categoryName = _("RUSHING"), + .height = 5, + .weight = 325, + .descriptionPage1 = DexDescription_Linoone_1, + .descriptionPage2 = DexDescription_Linoone_2, + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wurmple + .categoryName = _("WORM"), + .height = 3, + .weight = 36, + .descriptionPage1 = DexDescription_Wurmple_1, + .descriptionPage2 = DexDescription_Wurmple_2, + .pokemonScale = 711, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Silcoon + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .descriptionPage1 = DexDescription_Silcoon_1, + .descriptionPage2 = DexDescription_Silcoon_2, + .pokemonScale = 431, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beautifly + .categoryName = _("BUTTERFLY"), + .height = 10, + .weight = 284, + .descriptionPage1 = DexDescription_Beautifly_1, + .descriptionPage2 = DexDescription_Beautifly_2, + .pokemonScale = 298, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cascoon + .categoryName = _("COCOON"), + .height = 7, + .weight = 115, + .descriptionPage1 = DexDescription_Cascoon_1, + .descriptionPage2 = DexDescription_Cascoon_2, + .pokemonScale = 391, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dustox + .categoryName = _("POISON MOTH"), + .height = 12, + .weight = 316, + .descriptionPage1 = DexDescription_Dustox_1, + .descriptionPage2 = DexDescription_Dustox_2, + .pokemonScale = 269, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lotad + .categoryName = _("WATER WEED"), + .height = 5, + .weight = 26, + .descriptionPage1 = DexDescription_Lotad_1, + .descriptionPage2 = DexDescription_Lotad_2, + .pokemonScale = 406, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lombre + .categoryName = _("JOLLY"), + .height = 12, + .weight = 325, + .descriptionPage1 = DexDescription_Lombre_1, + .descriptionPage2 = DexDescription_Lombre_2, + .pokemonScale = 277, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ludicolo + .categoryName = _("CAREFREE"), + .height = 15, + .weight = 550, + .descriptionPage1 = DexDescription_Ludicolo_1, + .descriptionPage2 = DexDescription_Ludicolo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = -1, + }, + { //Seedot + .categoryName = _("ACORN"), + .height = 5, + .weight = 40, + .descriptionPage1 = DexDescription_Seedot_1, + .descriptionPage2 = DexDescription_Seedot_2, + .pokemonScale = 472, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nuzleaf + .categoryName = _("WILY"), + .height = 10, + .weight = 280, + .descriptionPage1 = DexDescription_Nuzleaf_1, + .descriptionPage2 = DexDescription_Nuzleaf_2, + .pokemonScale = 299, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shiftry + .categoryName = _("WICKED"), + .height = 13, + .weight = 596, + .descriptionPage1 = DexDescription_Shiftry_1, + .descriptionPage2 = DexDescription_Shiftry_2, + .pokemonScale = 290, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Taillow + .categoryName = _("TINYSWALLOW"), + .height = 3, + .weight = 23, + .descriptionPage1 = DexDescription_Taillow_1, + .descriptionPage2 = DexDescription_Taillow_2, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swellow + .categoryName = _("SWALLOW"), + .height = 7, + .weight = 198, + .descriptionPage1 = DexDescription_Swellow_1, + .descriptionPage2 = DexDescription_Swellow_2, + .pokemonScale = 428, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wingull + .categoryName = _("SEAGULL"), + .height = 6, + .weight = 95, + .descriptionPage1 = DexDescription_Wingull_1, + .descriptionPage2 = DexDescription_Wingull_2, + .pokemonScale = 295, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pelipper + .categoryName = _("WATER BIRD"), + .height = 12, + .weight = 280, + .descriptionPage1 = DexDescription_Pelipper_1, + .descriptionPage2 = DexDescription_Pelipper_2, + .pokemonScale = 288, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ralts + .categoryName = _("FEELING"), + .height = 4, + .weight = 66, + .descriptionPage1 = DexDescription_Ralts_1, + .descriptionPage2 = DexDescription_Ralts_2, + .pokemonScale = 457, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kirlia + .categoryName = _("EMOTION"), + .height = 8, + .weight = 202, + .descriptionPage1 = DexDescription_Kirlia_1, + .descriptionPage2 = DexDescription_Kirlia_2, + .pokemonScale = 354, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gardevoir + .categoryName = _("EMBRACE"), + .height = 16, + .weight = 484, + .descriptionPage1 = DexDescription_Gardevoir_1, + .descriptionPage2 = DexDescription_Gardevoir_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Surskit + .categoryName = _("POND SKATER"), + .height = 5, + .weight = 17, + .descriptionPage1 = DexDescription_Surskit_1, + .descriptionPage2 = DexDescription_Surskit_2, + .pokemonScale = 375, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Masquerain + .categoryName = _("EYEBALL"), + .height = 8, + .weight = 36, + .descriptionPage1 = DexDescription_Masquerain_1, + .descriptionPage2 = DexDescription_Masquerain_2, + .pokemonScale = 378, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shroomish + .categoryName = _("MUSHROOM"), + .height = 4, + .weight = 45, + .descriptionPage1 = DexDescription_Shroomish_1, + .descriptionPage2 = DexDescription_Shroomish_2, + .pokemonScale = 513, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Breloom + .categoryName = _("MUSHROOM"), + .height = 12, + .weight = 392, + .descriptionPage1 = DexDescription_Breloom_1, + .descriptionPage2 = DexDescription_Breloom_2, + .pokemonScale = 324, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slakoth + .categoryName = _("SLACKER"), + .height = 8, + .weight = 240, + .descriptionPage1 = DexDescription_Slakoth_1, + .descriptionPage2 = DexDescription_Slakoth_2, + .pokemonScale = 291, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vigoroth + .categoryName = _("WILD MONKEY"), + .height = 14, + .weight = 465, + .descriptionPage1 = DexDescription_Vigoroth_1, + .descriptionPage2 = DexDescription_Vigoroth_2, + .pokemonScale = 301, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slaking + .categoryName = _("LAZY"), + .height = 20, + .weight = 1305, + .descriptionPage1 = DexDescription_Slaking_1, + .descriptionPage2 = DexDescription_Slaking_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Nincada + .categoryName = _("TRAINEE"), + .height = 5, + .weight = 55, + .descriptionPage1 = DexDescription_Nincada_1, + .descriptionPage2 = DexDescription_Nincada_2, + .pokemonScale = 405, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninjask + .categoryName = _("NINJA"), + .height = 8, + .weight = 120, + .descriptionPage1 = DexDescription_Ninjask_1, + .descriptionPage2 = DexDescription_Ninjask_2, + .pokemonScale = 383, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shedinja + .categoryName = _("SHED"), + .height = 8, + .weight = 12, + .descriptionPage1 = DexDescription_Shedinja_1, + .descriptionPage2 = DexDescription_Shedinja_2, + .pokemonScale = 372, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whismur + .categoryName = _("WHISPER"), + .height = 6, + .weight = 163, + .descriptionPage1 = DexDescription_Whismur_1, + .descriptionPage2 = DexDescription_Whismur_2, + .pokemonScale = 373, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Loudred + .categoryName = _("BIG VOICE"), + .height = 10, + .weight = 405, + .descriptionPage1 = DexDescription_Loudred_1, + .descriptionPage2 = DexDescription_Loudred_2, + .pokemonScale = 356, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exploud + .categoryName = _("LOUD NOISE"), + .height = 15, + .weight = 840, + .descriptionPage1 = DexDescription_Exploud_1, + .descriptionPage2 = DexDescription_Exploud_2, + .pokemonScale = 284, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Makuhita + .categoryName = _("GUTS"), + .height = 10, + .weight = 864, + .descriptionPage1 = DexDescription_Makuhita_1, + .descriptionPage2 = DexDescription_Makuhita_2, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hariyama + .categoryName = _("ARM THRUST"), + .height = 23, + .weight = 2538, + .descriptionPage1 = DexDescription_Hariyama_1, + .descriptionPage2 = DexDescription_Hariyama_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 343, + .trainerOffset = 7, + }, + { //Azurill + .categoryName = _("POLKA DOT"), + .height = 2, + .weight = 20, + .descriptionPage1 = DexDescription_Azurill_1, + .descriptionPage2 = DexDescription_Azurill_2, + .pokemonScale = 603, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nosepass + .categoryName = _("COMPASS"), + .height = 10, + .weight = 970, + .descriptionPage1 = DexDescription_Nosepass_1, + .descriptionPage2 = DexDescription_Nosepass_2, + .pokemonScale = 256, + .pokemonOffset = 9, + .trainerScale = 289, + .trainerOffset = 3, + }, + { //Skitty + .categoryName = _("KITTEN"), + .height = 6, + .weight = 110, + .descriptionPage1 = DexDescription_Skitty_1, + .descriptionPage2 = DexDescription_Skitty_2, + .pokemonScale = 492, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delcatty + .categoryName = _("PRIM"), + .height = 11, + .weight = 326, + .descriptionPage1 = DexDescription_Delcatty_1, + .descriptionPage2 = DexDescription_Delcatty_2, + .pokemonScale = 322, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sableye + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 110, + .descriptionPage1 = DexDescription_Sableye_1, + .descriptionPage2 = DexDescription_Sableye_2, + .pokemonScale = 451, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mawile + .categoryName = _("DECEIVER"), + .height = 6, + .weight = 115, + .descriptionPage1 = DexDescription_Mawile_1, + .descriptionPage2 = DexDescription_Mawile_2, + .pokemonScale = 466, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aron + .categoryName = _("IRON ARMOR"), + .height = 4, + .weight = 600, + .descriptionPage1 = DexDescription_Aron_1, + .descriptionPage2 = DexDescription_Aron_2, + .pokemonScale = 419, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lairon + .categoryName = _("IRON ARMOR"), + .height = 9, + .weight = 1200, + .descriptionPage1 = DexDescription_Lairon_1, + .descriptionPage2 = DexDescription_Lairon_2, + .pokemonScale = 275, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aggron + .categoryName = _("IRON ARMOR"), + .height = 21, + .weight = 3600, + .descriptionPage1 = DexDescription_Aggron_1, + .descriptionPage2 = DexDescription_Aggron_2, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 350, + .trainerOffset = 6, + }, + { //Meditite + .categoryName = _("MEDITATE"), + .height = 6, + .weight = 112, + .descriptionPage1 = DexDescription_Meditite_1, + .descriptionPage2 = DexDescription_Meditite_2, + .pokemonScale = 465, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Medicham + .categoryName = _("MEDITATE"), + .height = 13, + .weight = 315, + .descriptionPage1 = DexDescription_Medicham_1, + .descriptionPage2 = DexDescription_Medicham_2, + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrike + .categoryName = _("LIGHTNING"), + .height = 6, + .weight = 152, + .descriptionPage1 = DexDescription_Electrike_1, + .descriptionPage2 = DexDescription_Electrike_2, + .pokemonScale = 290, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Manectric + .categoryName = _("DISCHARGE"), + .height = 15, + .weight = 402, + .descriptionPage1 = DexDescription_Manectric_1, + .descriptionPage2 = DexDescription_Manectric_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Plusle + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Plusle_1, + .descriptionPage2 = DexDescription_Plusle_2, + .pokemonScale = 515, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Minun + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .descriptionPage1 = DexDescription_Minun_1, + .descriptionPage2 = DexDescription_Minun_2, + .pokemonScale = 512, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Volbeat + .categoryName = _("FIREFLY"), + .height = 7, + .weight = 177, + .descriptionPage1 = DexDescription_Volbeat_1, + .descriptionPage2 = DexDescription_Volbeat_2, + .pokemonScale = 442, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Illumise + .categoryName = _("FIREFLY"), + .height = 6, + .weight = 177, + .descriptionPage1 = DexDescription_Illumise_1, + .descriptionPage2 = DexDescription_Illumise_2, + .pokemonScale = 572, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Roselia + .categoryName = _("THORN"), + .height = 3, + .weight = 20, + .descriptionPage1 = DexDescription_Roselia_1, + .descriptionPage2 = DexDescription_Roselia_2, + .pokemonScale = 677, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gulpin + .categoryName = _("STOMACH"), + .height = 4, + .weight = 103, + .descriptionPage1 = DexDescription_Gulpin_1, + .descriptionPage2 = DexDescription_Gulpin_2, + .pokemonScale = 593, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swalot + .categoryName = _("POISON BAG"), + .height = 17, + .weight = 800, + .descriptionPage1 = DexDescription_Swalot_1, + .descriptionPage2 = DexDescription_Swalot_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 345, + .trainerOffset = 3, + }, + { //Carvanha + .categoryName = _("SAVAGE"), + .height = 8, + .weight = 208, + .descriptionPage1 = DexDescription_Carvanha_1, + .descriptionPage2 = DexDescription_Carvanha_2, + .pokemonScale = 362, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sharpedo + .categoryName = _("BRUTAL"), + .height = 18, + .weight = 888, + .descriptionPage1 = DexDescription_Sharpedo_1, + .descriptionPage2 = DexDescription_Sharpedo_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 317, + .trainerOffset = 3, + }, + { //Wailmer + .categoryName = _("BALL WHALE"), + .height = 20, + .weight = 1300, + .descriptionPage1 = DexDescription_Wailmer_1, + .descriptionPage2 = DexDescription_Wailmer_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 493, + .trainerOffset = 0, + }, + { //Wailord + .categoryName = _("FLOAT WHALE"), + .height = 145, + .weight = 3980, + .descriptionPage1 = DexDescription_Wailord_1, + .descriptionPage2 = DexDescription_Wailord_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 1352, + .trainerOffset = 18, + }, + { //Numel + .categoryName = _("NUMB"), + .height = 7, + .weight = 240, + .descriptionPage1 = DexDescription_Numel_1, + .descriptionPage2 = DexDescription_Numel_2, + .pokemonScale = 342, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Camerupt + .categoryName = _("ERUPTION"), + .height = 19, + .weight = 2200, + .descriptionPage1 = DexDescription_Camerupt_1, + .descriptionPage2 = DexDescription_Camerupt_2, + .pokemonScale = 256, + .pokemonOffset = 7, + .trainerScale = 345, + .trainerOffset = 6, + }, + { //Torkoal + .categoryName = _("COAL"), + .height = 5, + .weight = 804, + .descriptionPage1 = DexDescription_Torkoal_1, + .descriptionPage2 = DexDescription_Torkoal_2, + .pokemonScale = 390, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spoink + .categoryName = _("BOUNCE"), + .height = 7, + .weight = 306, + .descriptionPage1 = DexDescription_Spoink_1, + .descriptionPage2 = DexDescription_Spoink_2, + .pokemonScale = 423, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grumpig + .categoryName = _("MANIPULATE"), + .height = 9, + .weight = 715, + .descriptionPage1 = DexDescription_Grumpig_1, + .descriptionPage2 = DexDescription_Grumpig_2, + .pokemonScale = 358, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinda + .categoryName = _("SPOT PANDA"), + .height = 11, + .weight = 50, + .descriptionPage1 = DexDescription_Spinda_1, + .descriptionPage2 = DexDescription_Spinda_2, + .pokemonScale = 321, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Trapinch + .categoryName = _("ANT PIT"), + .height = 7, + .weight = 150, + .descriptionPage1 = DexDescription_Trapinch_1, + .descriptionPage2 = DexDescription_Trapinch_2, + .pokemonScale = 298, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vibrava + .categoryName = _("VIBRATION"), + .height = 11, + .weight = 153, + .descriptionPage1 = DexDescription_Vibrava_1, + .descriptionPage2 = DexDescription_Vibrava_2, + .pokemonScale = 370, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flygon + .categoryName = _("MYSTIC"), + .height = 20, + .weight = 820, + .descriptionPage1 = DexDescription_Flygon_1, + .descriptionPage2 = DexDescription_Flygon_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Cacnea + .categoryName = _("CACTUS"), + .height = 4, + .weight = 513, + .descriptionPage1 = DexDescription_Cacnea_1, + .descriptionPage2 = DexDescription_Cacnea_2, + .pokemonScale = 455, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cacturne + .categoryName = _("SCARECROW"), + .height = 13, + .weight = 774, + .descriptionPage1 = DexDescription_Cacturne_1, + .descriptionPage2 = DexDescription_Cacturne_2, + .pokemonScale = 327, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swablu + .categoryName = _("COTTON BIRD"), + .height = 4, + .weight = 12, + .descriptionPage1 = DexDescription_Swablu_1, + .descriptionPage2 = DexDescription_Swablu_2, + .pokemonScale = 422, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Altaria + .categoryName = _("HUMMING"), + .height = 11, + .weight = 206, + .descriptionPage1 = DexDescription_Altaria_1, + .descriptionPage2 = DexDescription_Altaria_2, + .pokemonScale = 327, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zangoose + .categoryName = _("CAT FERRET"), + .height = 13, + .weight = 403, + .descriptionPage1 = DexDescription_Zangoose_1, + .descriptionPage2 = DexDescription_Zangoose_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seviper + .categoryName = _("FANG SNAKE"), + .height = 27, + .weight = 525, + .descriptionPage1 = DexDescription_Seviper_1, + .descriptionPage2 = DexDescription_Seviper_2, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lunatone + .categoryName = _("METEORITE"), + .height = 10, + .weight = 1680, + .descriptionPage1 = DexDescription_Lunatone_1, + .descriptionPage2 = DexDescription_Lunatone_2, + .pokemonScale = 300, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Solrock + .categoryName = _("METEORITE"), + .height = 12, + .weight = 1540, + .descriptionPage1 = DexDescription_Solrock_1, + .descriptionPage2 = DexDescription_Solrock_2, + .pokemonScale = 328, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Barboach + .categoryName = _("WHISKERS"), + .height = 4, + .weight = 19, + .descriptionPage1 = DexDescription_Barboach_1, + .descriptionPage2 = DexDescription_Barboach_2, + .pokemonScale = 581, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whiscash + .categoryName = _("WHISKERS"), + .height = 9, + .weight = 236, + .descriptionPage1 = DexDescription_Whiscash_1, + .descriptionPage2 = DexDescription_Whiscash_2, + .pokemonScale = 317, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corphish + .categoryName = _("RUFFIAN"), + .height = 6, + .weight = 115, + .descriptionPage1 = DexDescription_Corphish_1, + .descriptionPage2 = DexDescription_Corphish_2, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crawdaunt + .categoryName = _("ROGUE"), + .height = 11, + .weight = 328, + .descriptionPage1 = DexDescription_Crawdaunt_1, + .descriptionPage2 = DexDescription_Crawdaunt_2, + .pokemonScale = 365, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Baltoy + .categoryName = _("CLAY DOLL"), + .height = 5, + .weight = 215, + .descriptionPage1 = DexDescription_Baltoy_1, + .descriptionPage2 = DexDescription_Baltoy_2, + .pokemonScale = 457, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Claydol + .categoryName = _("CLAY DOLL"), + .height = 15, + .weight = 1080, + .descriptionPage1 = DexDescription_Claydol_1, + .descriptionPage2 = DexDescription_Claydol_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 280, + .trainerOffset = 1, + }, + { //Lileep + .categoryName = _("SEA LILY"), + .height = 10, + .weight = 238, + .descriptionPage1 = DexDescription_Lileep_1, + .descriptionPage2 = DexDescription_Lileep_2, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cradily + .categoryName = _("BARNACLE"), + .height = 15, + .weight = 604, + .descriptionPage1 = DexDescription_Cradily_1, + .descriptionPage2 = DexDescription_Cradily_2, + .pokemonScale = 267, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Anorith + .categoryName = _("OLD SHRIMP"), + .height = 7, + .weight = 125, + .descriptionPage1 = DexDescription_Anorith_1, + .descriptionPage2 = DexDescription_Anorith_2, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Armaldo + .categoryName = _("PLATE"), + .height = 15, + .weight = 682, + .descriptionPage1 = DexDescription_Armaldo_1, + .descriptionPage2 = DexDescription_Armaldo_2, + .pokemonScale = 312, + .pokemonOffset = 3, + .trainerScale = 271, + .trainerOffset = 0, + }, + { //Feebas + .categoryName = _("FISH"), + .height = 6, + .weight = 74, + .descriptionPage1 = DexDescription_Feebas_1, + .descriptionPage2 = DexDescription_Feebas_2, + .pokemonScale = 423, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Milotic + .categoryName = _("TENDER"), + .height = 62, + .weight = 1620, + .descriptionPage1 = DexDescription_Milotic_1, + .descriptionPage2 = DexDescription_Milotic_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 360, + .trainerOffset = 7, + }, + { //Castform + .categoryName = _("WEATHER"), + .height = 3, + .weight = 8, + .descriptionPage1 = DexDescription_Castform_1, + .descriptionPage2 = DexDescription_Castform_2, + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kecleon + .categoryName = _("COLOR SWAP"), + .height = 10, + .weight = 220, + .descriptionPage1 = DexDescription_Kecleon_1, + .descriptionPage2 = DexDescription_Kecleon_2, + .pokemonScale = 316, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuppet + .categoryName = _("PUPPET"), + .height = 6, + .weight = 23, + .descriptionPage1 = DexDescription_Shuppet_1, + .descriptionPage2 = DexDescription_Shuppet_2, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Banette + .categoryName = _("MARIONETTE"), + .height = 11, + .weight = 125, + .descriptionPage1 = DexDescription_Banette_1, + .descriptionPage2 = DexDescription_Banette_2, + .pokemonScale = 262, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Duskull + .categoryName = _("REQUIEM"), + .height = 8, + .weight = 150, + .descriptionPage1 = DexDescription_Duskull_1, + .descriptionPage2 = DexDescription_Duskull_2, + .pokemonScale = 406, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dusclops + .categoryName = _("BECKON"), + .height = 16, + .weight = 306, + .descriptionPage1 = DexDescription_Dusclops_1, + .descriptionPage2 = DexDescription_Dusclops_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 299, + .trainerOffset = 1, + }, + { //Tropius + .categoryName = _("FRUIT"), + .height = 20, + .weight = 1000, + .descriptionPage1 = DexDescription_Tropius_1, + .descriptionPage2 = DexDescription_Tropius_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 344, + .trainerOffset = 7, + }, + { //Chimecho + .categoryName = _("WIND CHIME"), + .height = 6, + .weight = 10, + .descriptionPage1 = DexDescription_Chimecho_1, + .descriptionPage2 = DexDescription_Chimecho_2, + .pokemonScale = 505, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Absol + .categoryName = _("DISASTER"), + .height = 12, + .weight = 470, + .descriptionPage1 = DexDescription_Absol_1, + .descriptionPage2 = DexDescription_Absol_2, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wynaut + .categoryName = _("BRIGHT"), + .height = 6, + .weight = 140, + .descriptionPage1 = DexDescription_Wynaut_1, + .descriptionPage2 = DexDescription_Wynaut_2, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Snorunt + .categoryName = _("SNOW HAT"), + .height = 7, + .weight = 168, + .descriptionPage1 = DexDescription_Snorunt_1, + .descriptionPage2 = DexDescription_Snorunt_2, + .pokemonScale = 380, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Glalie + .categoryName = _("FACE"), + .height = 15, + .weight = 2565, + .descriptionPage1 = DexDescription_Glalie_1, + .descriptionPage2 = DexDescription_Glalie_2, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 344, + .trainerOffset = 0, + }, + { //Spheal + .categoryName = _("CLAP"), + .height = 8, + .weight = 395, + .descriptionPage1 = DexDescription_Spheal_1, + .descriptionPage2 = DexDescription_Spheal_2, + .pokemonScale = 315, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sealeo + .categoryName = _("BALL ROLL"), + .height = 11, + .weight = 876, + .descriptionPage1 = DexDescription_Sealeo_1, + .descriptionPage2 = DexDescription_Sealeo_2, + .pokemonScale = 338, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Walrein + .categoryName = _("ICE BREAK"), + .height = 14, + .weight = 1506, + .descriptionPage1 = DexDescription_Walrein_1, + .descriptionPage2 = DexDescription_Walrein_2, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clamperl + .categoryName = _("BIVALVE"), + .height = 4, + .weight = 525, + .descriptionPage1 = DexDescription_Clamperl_1, + .descriptionPage2 = DexDescription_Clamperl_2, + .pokemonScale = 691, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Huntail + .categoryName = _("DEEP SEA"), + .height = 17, + .weight = 270, + .descriptionPage1 = DexDescription_Huntail_1, + .descriptionPage2 = DexDescription_Huntail_2, + .pokemonScale = 307, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gorebyss + .categoryName = _("SOUTH SEA"), + .height = 18, + .weight = 226, + .descriptionPage1 = DexDescription_Gorebyss_1, + .descriptionPage2 = DexDescription_Gorebyss_2, + .pokemonScale = 278, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Relicanth + .categoryName = _("LONGEVITY"), + .height = 10, + .weight = 234, + .descriptionPage1 = DexDescription_Relicanth_1, + .descriptionPage2 = DexDescription_Relicanth_2, + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Luvdisc + .categoryName = _("RENDEZVOUS"), + .height = 6, + .weight = 87, + .descriptionPage1 = DexDescription_Luvdisc_1, + .descriptionPage2 = DexDescription_Luvdisc_2, + .pokemonScale = 371, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bagon + .categoryName = _("ROCK HEAD"), + .height = 6, + .weight = 421, + .descriptionPage1 = DexDescription_Bagon_1, + .descriptionPage2 = DexDescription_Bagon_2, + .pokemonScale = 448, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shelgon + .categoryName = _("ENDURANCE"), + .height = 11, + .weight = 1105, + .descriptionPage1 = DexDescription_Shelgon_1, + .descriptionPage2 = DexDescription_Shelgon_2, + .pokemonScale = 311, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Salamence + .categoryName = _("DRAGON"), + .height = 15, + .weight = 1026, + .descriptionPage1 = DexDescription_Salamence_1, + .descriptionPage2 = DexDescription_Salamence_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beldum + .categoryName = _("IRON BALL"), + .height = 6, + .weight = 952, + .descriptionPage1 = DexDescription_Beldum_1, + .descriptionPage2 = DexDescription_Beldum_2, + .pokemonScale = 414, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metang + .categoryName = _("IRON CLAW"), + .height = 12, + .weight = 2025, + .descriptionPage1 = DexDescription_Metang_1, + .descriptionPage2 = DexDescription_Metang_2, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metagross + .categoryName = _("IRON LEG"), + .height = 16, + .weight = 5500, + .descriptionPage1 = DexDescription_Metagross_1, + .descriptionPage2 = DexDescription_Metagross_2, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 447, + .trainerOffset = 9, + }, + { //Regirock + .categoryName = _("ROCK PEAK"), + .height = 17, + .weight = 2300, + .descriptionPage1 = DexDescription_Regirock_1, + .descriptionPage2 = DexDescription_Regirock_2, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 309, + .trainerOffset = 1, + }, + { //Regice + .categoryName = _("ICEBERG"), + .height = 18, + .weight = 1750, + .descriptionPage1 = DexDescription_Regice_1, + .descriptionPage2 = DexDescription_Regice_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 2, + }, + { //Registeel + .categoryName = _("IRON"), + .height = 19, + .weight = 2050, + .descriptionPage1 = DexDescription_Registeel_1, + .descriptionPage2 = DexDescription_Registeel_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 359, + .trainerOffset = 6, + }, + { //Latias + .categoryName = _("EON"), + .height = 14, + .weight = 400, + .descriptionPage1 = DexDescription_Latias_1, + .descriptionPage2 = DexDescription_Latias_2, + .pokemonScale = 304, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Latios + .categoryName = _("EON"), + .height = 20, + .weight = 600, + .descriptionPage1 = DexDescription_Latios_1, + .descriptionPage2 = DexDescription_Latios_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 294, + .trainerOffset = 3, + }, + { //Kyogre + .categoryName = _("SEA BASIN"), + .height = 45, + .weight = 3520, + .descriptionPage1 = DexDescription_Kyogre_1, + .descriptionPage2 = DexDescription_Kyogre_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + }, + { //Groudon + .categoryName = _("CONTINENT"), + .height = 35, + .weight = 9500, + .descriptionPage1 = DexDescription_Groudon_1, + .descriptionPage2 = DexDescription_Groudon_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Rayquaza + .categoryName = _("SKY HIGH"), + .height = 70, + .weight = 2065, + .descriptionPage1 = DexDescription_Rayquaza_1, + .descriptionPage2 = DexDescription_Rayquaza_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 448, + .trainerOffset = 12, + }, + { //Jirachi + .categoryName = _("WISH"), + .height = 3, + .weight = 11, + .descriptionPage1 = DexDescription_Jirachi_1, + .descriptionPage2 = DexDescription_Jirachi_2, + .pokemonScale = 608, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Deoxys + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .descriptionPage1 = DexDescription_Deoxys_1, + .descriptionPage2 = DexDescription_Deoxys_2, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + }, +}; diff --git a/src/data/pokedex_orders.h b/src/data/pokedex_orders.h new file mode 100644 index 000000000..3577e6793 --- /dev/null +++ b/src/data/pokedex_orders.h @@ -0,0 +1,1192 @@ +static const u16 gPokedexOrder_Alphabetical[] = +{ + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 63, // Abra + 359, // Absol + 142, // Aerodactyl + 306, // Aggron + 190, // Aipom + 65, // Alakazam + 334, // Altaria + 181, // Ampharos + 347, // Anorith + 24, // Arbok + 59, // Arcanine + 168, // Ariados + 348, // Armaldo + 304, // Aron + 144, // Articuno + 184, // Azumarill + 298, // Azurill + 371, // Bagon + 343, // Baltoy + 354, // Banette + 339, // Barboach + 153, // Bayleef + 267, // Beautifly + 15, // Beedrill + 374, // Beldum + 182, // Bellossom + 69, // Bellsprout + 9, // Blastoise + 257, // Blaziken + 242, // Blissey + 286, // Breloom + 1, // Bulbasaur + 12, // Butterfree + 331, // Cacnea + 332, // Cacturne + 323, // Camerupt + 318, // Carvanha + 268, // Cascoon + 351, // Castform + 10, // Caterpie + 251, // Celebi + 113, // Chansey + 6, // Charizard + 4, // Charmander + 5, // Charmeleon + 152, // Chikorita + 358, // Chimecho + 170, // Chinchou + 366, // Clamperl + 344, // Claydol + 36, // Clefable + 35, // Clefairy + 173, // Cleffa + 91, // Cloyster + 256, // Combusken + 341, // Corphish + 222, // Corsola + 346, // Cradily + 342, // Crawdaunt + 169, // Crobat + 159, // Croconaw + 104, // Cubone + 155, // Cyndaquil + 301, // Delcatty + 225, // Delibird + 386, // Deoxys + 87, // Dewgong + 50, // Diglett + 132, // Ditto + 85, // Dodrio + 84, // Doduo + 232, // Donphan + 148, // Dragonair + 149, // Dragonite + 147, // Dratini + 96, // Drowzee + 51, // Dugtrio + 206, // Dunsparce + 356, // Dusclops + 355, // Duskull + 269, // Dustox + 133, // Eevee + 23, // Ekans + 125, // Electabuzz + 309, // Electrike + 101, // Electrode + 239, // Elekid + 244, // Entei + 196, // Espeon + 102, // Exeggcute + 103, // Exeggutor + 295, // Exploud + 83, // Farfetchd + 22, // Fearow + 349, // Feebas + 160, // Feraligatr + 180, // Flaaffy + 136, // Flareon + 330, // Flygon + 205, // Forretress + 162, // Furret + 282, // Gardevoir + 92, // Gastly + 94, // Gengar + 74, // Geodude + 203, // Girafarig + 362, // Glalie + 207, // Gligar + 44, // Gloom + 42, // Golbat + 118, // Goldeen + 55, // Golduck + 76, // Golem + 368, // Gorebyss + 210, // Granbull + 75, // Graveler + 88, // Grimer + 383, // Groudon + 253, // Grovyle + 58, // Growlithe + 326, // Grumpig + 316, // Gulpin + 130, // Gyarados + 297, // Hariyama + 93, // Haunter + 214, // Heracross + 107, // Hitmonchan + 106, // Hitmonlee + 237, // Hitmontop + 250, // Ho-Oh + 163, // Hoothoot + 187, // Hoppip + 116, // Horsea + 229, // Houndoom + 228, // Houndour + 367, // Huntail + 97, // Hypno + 174, // Igglybuff + 314, // Illumise + 2, // Ivysaur + 39, // Jigglypuff + 385, // Jirachi + 135, // Jolteon + 189, // Jumpluff + 124, // Jynx + 140, // Kabuto + 141, // Kabutops + 64, // Kadabra + 14, // Kakuna + 115, // Kangaskhan + 352, // Kecleon + 230, // Kingdra + 99, // Kingler + 281, // Kirlia + 109, // Koffing + 98, // Krabby + 382, // Kyogre + 305, // Lairon + 171, // Lanturn + 131, // Lapras + 246, // Larvitar + 380, // Latias + 381, // Latios + 166, // Ledian + 165, // Ledyba + 108, // Lickitung + 345, // Lileep + 264, // Linoone + 271, // Lombre + 270, // Lotad + 294, // Loudred + 272, // Ludicolo + 249, // Lugia + 337, // Lunatone + 370, // Luvdisc + 68, // Machamp + 67, // Machoke + 66, // Machop + 240, // Magby + 219, // Magcargo + 129, // Magikarp + 126, // Magmar + 81, // Magnemite + 82, // Magneton + 296, // Makuhita + 310, // Manectric + 56, // Mankey + 226, // Mantine + 179, // Mareep + 183, // Marill + 105, // Marowak + 259, // Marshtomp + 284, // Masquerain + 303, // Mawile + 308, // Medicham + 307, // Meditite + 154, // Meganium + 52, // Meowth + 376, // Metagross + 375, // Metang + 11, // Metapod + 151, // Mew + 150, // Mewtwo + 262, // Mightyena + 350, // Milotic + 241, // Miltank + 312, // Minun + 200, // Misdreavus + 146, // Moltres + 122, // Mr. mime + 258, // Mudkip + 89, // Muk + 198, // Murkrow + 177, // Natu + 34, // Nidoking + 31, // Nidoqueen + 29, // Nidoran? + 32, // Nidoran? + 30, // Nidorina + 33, // Nidorino + 290, // Nincada + 38, // Ninetales + 291, // Ninjask + 164, // Noctowl + 299, // Nosepass + 322, // Numel + 274, // Nuzleaf + 224, // Octillery + 43, // Oddish + 138, // Omanyte + 139, // Omastar + 95, // Onix + 46, // Paras + 47, // Parasect + 279, // Pelipper + 53, // Persian + 231, // Phanpy + 172, // Pichu + 18, // Pidgeot + 17, // Pidgeotto + 16, // Pidgey + 25, // Pikachu + 221, // Piloswine + 204, // Pineco + 127, // Pinsir + 311, // Plusle + 186, // Politoed + 60, // Poliwag + 61, // Poliwhirl + 62, // Poliwrath + 77, // Ponyta + 261, // Poochyena + 137, // Porygon + 233, // Porygon2 + 57, // Primeape + 54, // Psyduck + 247, // Pupitar + 195, // Quagsire + 156, // Quilava + 211, // Qwilfish + 26, // Raichu + 243, // Raikou + 280, // Ralts + 78, // Rapidash + 20, // Raticate + 19, // Rattata + 384, // Rayquaza + 378, // Regice + 377, // Regirock + 379, // Registeel + 369, // Relicanth + 223, // Remoraid + 112, // Rhydon + 111, // Rhyhorn + 315, // Roselia + 302, // Sableye + 373, // Salamence + 27, // Sandshrew + 28, // Sandslash + 254, // Sceptile + 212, // Scizor + 123, // Scyther + 117, // Seadra + 119, // Seaking + 364, // Sealeo + 273, // Seedot + 86, // Seel + 161, // Sentret + 336, // Seviper + 319, // Sharpedo + 292, // Shedinja + 372, // Shelgon + 90, // Shellder + 275, // Shiftry + 285, // Shroomish + 213, // Shuckle + 353, // Shuppet + 266, // Silcoon + 227, // Skarmory + 188, // Skiploom + 300, // Skitty + 289, // Slaking + 287, // Slakoth + 80, // Slowbro + 199, // Slowking + 79, // Slowpoke + 218, // Slugma + 235, // Smeargle + 238, // Smoochum + 215, // Sneasel + 143, // Snorlax + 361, // Snorunt + 209, // Snubbull + 338, // Solrock + 21, // Spearow + 363, // Spheal + 167, // Spinarak + 327, // Spinda + 325, // Spoink + 7, // Squirtle + 234, // Stantler + 121, // Starmie + 120, // Staryu + 208, // Steelix + 185, // Sudowoodo + 245, // Suicune + 192, // Sunflora + 191, // Sunkern + 283, // Surskit + 333, // Swablu + 317, // Swalot + 260, // Swampert + 277, // Swellow + 220, // Swinub + 276, // Taillow + 114, // Tangela + 128, // Tauros + 216, // Teddiursa + 72, // Tentacool + 73, // Tentacruel + 175, // Togepi + 176, // Togetic + 255, // Torchic + 324, // Torkoal + 158, // Totodile + 328, // Trapinch + 252, // Treecko + 357, // Tropius + 157, // Typhlosion + 248, // Tyranitar + 236, // Tyrogue + 197, // Umbreon + 201, // Unown + 217, // Ursaring + 134, // Vaporeon + 49, // Venomoth + 48, // Venonat + 3, // Venusaur + 329, // Vibrava + 71, // Victreebel + 288, // Vigoroth + 45, // Vileplume + 313, // Volbeat + 100, // Voltorb + 37, // Vulpix + 320, // Wailmer + 321, // Wailord + 365, // Walrein + 8, // Wartortle + 13, // Weedle + 70, // Weepinbell + 110, // Weezing + 340, // Whiscash + 293, // Whismur + 40, // Wigglytuff + 278, // Wingull + 202, // Wobbuffet + 194, // Wooper + 265, // Wurmple + 360, // Wynaut + 178, // Xatu + 193, // Yanma + 335, // Zangoose + 145, // Zapdos + 263, // Zigzagoon + 41, // Zubat +}; +static const u16 gPokedexOrder_Weight[] = +{ + 92, // Gastly + 93, // Haunter + 187, // Hoppip + 50, // Diglett + 351, // Castform + 109, // Koffing + 174, // Igglybuff + 200, // Misdreavus + 358, // Chimecho + 188, // Skiploom + 385, // Jirachi + 333, // Swablu + 292, // Shedinja + 175, // Togepi + 283, // Surskit + 16, // Pidgey + 191, // Sunkern + 339, // Barboach + 172, // Pichu + 298, // Azurill + 315, // Roselia + 177, // Natu + 21, // Spearow + 198, // Murkrow + 353, // Shuppet + 276, // Taillow + 102, // Exeggcute + 255, // Torchic + 270, // Lotad + 10, // Caterpie + 189, // Jumpluff + 173, // Cleffa + 13, // Weedle + 176, // Togetic + 147, // Dratini + 19, // Rattata + 284, // Masquerain + 265, // Wurmple + 211, // Qwilfish + 151, // Mew + 90, // Shellder + 273, // Seedot + 132, // Ditto + 69, // Bellsprout + 311, // Plusle + 52, // Meowth + 312, // Minun + 285, // Shroomish + 251, // Celebi + 222, // Corsola + 252, // Treecko + 327, // Spinda + 201, // Unown + 46, // Paras + 43, // Oddish + 39, // Jigglypuff + 290, // Nincada + 182, // Bellossom + 81, // Magnemite + 25, // Pikachu + 238, // Smoochum + 161, // Sentret + 70, // Weepinbell + 152, // Chikorita + 220, // Swinub + 133, // Eevee + 98, // Krabby + 104, // Cubone + 280, // Ralts + 1, // Bulbasaur + 23, // Ekans + 29, // Nidoran? + 204, // Pineco + 349, // Feebas + 138, // Omanyte + 41, // Zubat + 35, // Clefairy + 258, // Mudkip + 209, // Snubbull + 179, // Mareep + 155, // Cyndaquil + 116, // Horsea + 4, // Charmander + 192, // Sunflora + 183, // Marill + 194, // Wooper + 167, // Spinarak + 44, // Gloom + 370, // Luvdisc + 216, // Teddiursa + 32, // Nidoran? + 7, // Squirtle + 278, // Wingull + 158, // Totodile + 110, // Weezing + 37, // Vulpix + 11, // Metapod + 266, // Silcoon + 129, // Magikarp + 14, // Kakuna + 316, // Gulpin + 100, // Voltorb + 165, // Ledyba + 228, // Houndour + 300, // Skitty + 302, // Sableye + 307, // Meditite + 341, // Corphish + 190, // Aipom + 268, // Cascoon + 303, // Mawile + 140, // Kabuto + 40, // Wigglytuff + 27, // Sandshrew + 223, // Remoraid + 291, // Ninjask + 170, // Chinchou + 60, // Poliwag + 347, // Anorith + 49, // Venomoth + 354, // Banette + 2, // Ivysaur + 180, // Flaaffy + 261, // Poochyena + 360, // Wynaut + 206, // Dunsparce + 178, // Xatu + 355, // Duskull + 83, // Farfetchd + 328, // Trapinch + 118, // Goldeen + 309, // Electrike + 329, // Vibrava + 71, // Victreebel + 153, // Bayleef + 225, // Delibird + 293, // Whismur + 148, // Dragonair + 361, // Snorunt + 263, // Zigzagoon + 314, // Illumise + 313, // Volbeat + 20, // Raticate + 45, // Vileplume + 156, // Quilava + 5, // Charmeleon + 58, // Growlithe + 256, // Combusken + 66, // Machop + 63, // Abra + 33, // Nidorino + 54, // Psyduck + 277, // Swellow + 38, // Ninetales + 30, // Nidorina + 61, // Poliwhirl + 74, // Geodude + 281, // Kirlia + 213, // Shuckle + 334, // Altaria + 318, // Carvanha + 236, // Tyrogue + 163, // Hoothoot + 240, // Magby + 343, // Baltoy + 253, // Grovyle + 352, // Kecleon + 171, // Lanturn + 8, // Wartortle + 368, // Gorebyss + 369, // Relicanth + 239, // Elekid + 340, // Whiscash + 345, // Lileep + 322, // Numel + 287, // Slakoth + 135, // Jolteon + 159, // Croconaw + 136, // Flareon + 117, // Seadra + 196, // Espeon + 367, // Huntail + 197, // Umbreon + 259, // Marshtomp + 274, // Nuzleaf + 215, // Sneasel + 56, // Mankey + 279, // Pelipper + 267, // Beautifly + 224, // Octillery + 184, // Azumarill + 202, // Wobbuffet + 134, // Vaporeon + 28, // Sandslash + 47, // Parasect + 15, // Beedrill + 89, // Muk + 17, // Pidgeotto + 88, // Grimer + 26, // Raichu + 77, // Ponyta + 125, // Electabuzz + 48, // Venonat + 325, // Spoink + 356, // Dusclops + 308, // Medicham + 269, // Dustox + 53, // Persian + 12, // Butterfree + 57, // Primeape + 96, // Drowzee + 162, // Furret + 233, // Porygon2 + 271, // Lombre + 264, // Linoone + 301, // Delcatty + 342, // Crawdaunt + 51, // Dugtrio + 168, // Ariados + 231, // Phanpy + 186, // Politoed + 120, // Staryu + 113, // Chansey + 139, // Omastar + 114, // Tangela + 218, // Slugma + 229, // Houndoom + 166, // Ledian + 79, // Slowpoke + 137, // Porygon + 262, // Mightyena + 193, // Yanma + 22, // Fearow + 185, // Sudowoodo + 119, // Seaking + 286, // Breloom + 84, // Doduo + 18, // Pidgeot + 363, // Spheal + 36, // Clefable + 380, // Latias + 310, // Manectric + 335, // Zangoose + 141, // Kabutops + 94, // Gengar + 294, // Loudred + 124, // Jynx + 164, // Noctowl + 203, // Girafarig + 371, // Bagon + 126, // Magmar + 105, // Marowak + 72, // Tentacool + 288, // Vigoroth + 242, // Blissey + 359, // Absol + 65, // Alakazam + 237, // Hitmontop + 282, // Gardevoir + 210, // Granbull + 106, // Hitmonlee + 107, // Hitmonchan + 227, // Skarmory + 331, // Cacnea + 257, // Blaziken + 254, // Sceptile + 336, // Seviper + 366, // Clamperl + 145, // Zapdos + 214, // Heracross + 62, // Poliwrath + 122, // Mr. mime + 127, // Pinsir + 272, // Ludicolo + 73, // Tentacruel + 42, // Golbat + 219, // Magcargo + 144, // Articuno + 221, // Piloswine + 123, // Scyther + 64, // Kadabra + 235, // Smeargle + 142, // Aerodactyl + 275, // Shiftry + 99, // Kingler + 31, // Nidoqueen + 82, // Magneton + 304, // Aron + 381, // Latios + 146, // Moltres + 346, // Cradily + 386, // Deoxys + 181, // Ampharos + 34, // Nidoking + 207, // Gligar + 24, // Arbok + 108, // Lickitung + 101, // Electrode + 348, // Armaldo + 67, // Machoke + 234, // Stantler + 326, // Grumpig + 246, // Larvitar + 169, // Crobat + 195, // Quagsire + 241, // Miltank + 97, // Hypno + 55, // Golduck + 332, // Cacturne + 80, // Slowbro + 157, // Typhlosion + 199, // Slowking + 115, // Kangaskhan + 121, // Starmie + 317, // Swalot + 324, // Torkoal + 260, // Swampert + 330, // Flygon + 295, // Exploud + 85, // Dodrio + 9, // Blastoise + 296, // Makuhita + 364, // Sealeo + 128, // Tauros + 319, // Sharpedo + 160, // Feraligatr + 86, // Seel + 6, // Charizard + 78, // Rapidash + 374, // Beldum + 299, // Nosepass + 3, // Venusaur + 357, // Tropius + 154, // Meganium + 373, // Salamence + 75, // Graveler + 344, // Claydol + 372, // Shelgon + 111, // Rhyhorn + 212, // Scizor + 87, // Dewgong + 112, // Rhydon + 232, // Donphan + 103, // Exeggutor + 305, // Lairon + 150, // Mewtwo + 217, // Ursaring + 205, // Forretress + 68, // Machamp + 320, // Wailmer + 289, // Slaking + 91, // Cloyster + 365, // Walrein + 247, // Pupitar + 230, // Kingdra + 338, // Solrock + 59, // Arcanine + 350, // Milotic + 337, // Lunatone + 378, // Regice + 243, // Raikou + 245, // Suicune + 244, // Entei + 250, // Ho-Oh + 248, // Tyranitar + 375, // Metang + 379, // Registeel + 384, // Rayquaza + 95, // Onix + 149, // Dragonite + 249, // Lugia + 131, // Lapras + 323, // Camerupt + 226, // Mantine + 377, // Regirock + 130, // Gyarados + 297, // Hariyama + 362, // Glalie + 76, // Golem + 382, // Kyogre + 306, // Aggron + 321, // Wailord + 208, // Steelix + 143, // Snorlax + 376, // Metagross + 383, // Groudon +}; +static const u16 gPokedexOrder_Height[] = +{ + 50, // Diglett + 298, // Azurill + 177, // Natu + 13, // Weedle + 172, // Pichu + 173, // Cleffa + 175, // Togepi + 351, // Castform + 174, // Igglybuff + 10, // Caterpie + 276, // Taillow + 132, // Ditto + 133, // Eevee + 315, // Roselia + 21, // Spearow + 16, // Pidgey + 191, // Sunkern + 90, // Shellder + 19, // Rattata + 81, // Magnemite + 46, // Paras + 265, // Wurmple + 385, // Jirachi + 104, // Cubone + 258, // Mudkip + 194, // Wooper + 116, // Horsea + 52, // Meowth + 29, // Nidoran? + 220, // Swinub + 151, // Mew + 333, // Swablu + 304, // Aron + 311, // Plusle + 312, // Minun + 102, // Exeggcute + 25, // Pikachu + 182, // Bellossom + 316, // Gulpin + 263, // Zigzagoon + 285, // Shroomish + 138, // Omanyte + 331, // Cacnea + 98, // Krabby + 280, // Ralts + 187, // Hoppip + 255, // Torchic + 366, // Clamperl + 74, // Geodude + 183, // Marill + 339, // Barboach + 238, // Smoochum + 100, // Voltorb + 290, // Nincada + 302, // Sableye + 198, // Murkrow + 211, // Qwilfish + 7, // Squirtle + 252, // Treecko + 343, // Baltoy + 43, // Oddish + 270, // Lotad + 39, // Jigglypuff + 283, // Surskit + 155, // Cyndaquil + 140, // Kabuto + 264, // Linoone + 324, // Torkoal + 32, // Nidoran? + 167, // Spinarak + 56, // Mankey + 273, // Seedot + 261, // Poochyena + 231, // Phanpy + 201, // Unown + 170, // Chinchou + 233, // Porygon2 + 60, // Poliwag + 371, // Bagon + 349, // Feebas + 353, // Shuppet + 158, // Totodile + 251, // Celebi + 360, // Wynaut + 27, // Sandshrew + 358, // Chimecho + 370, // Luvdisc + 228, // Houndour + 266, // Silcoon + 309, // Electrike + 4, // Charmander + 307, // Meditite + 278, // Wingull + 223, // Remoraid + 341, // Corphish + 222, // Corsola + 314, // Illumise + 209, // Snubbull + 37, // Vulpix + 246, // Larvitar + 374, // Beldum + 293, // Whismur + 204, // Pineco + 239, // Elekid + 35, // Clefairy + 213, // Shuckle + 216, // Teddiursa + 14, // Kakuna + 300, // Skitty + 176, // Togetic + 118, // Goldeen + 303, // Mawile + 179, // Mareep + 188, // Skiploom + 109, // Koffing + 51, // Dugtrio + 268, // Cascoon + 322, // Numel + 347, // Anorith + 313, // Volbeat + 163, // Hoothoot + 328, // Trapinch + 325, // Spoink + 11, // Metapod + 69, // Bellsprout + 361, // Snorunt + 20, // Raticate + 259, // Marshtomp + 277, // Swellow + 240, // Magby + 58, // Growlithe + 200, // Misdreavus + 1, // Bulbasaur + 236, // Tyrogue + 218, // Slugma + 287, // Slakoth + 281, // Kirlia + 190, // Aipom + 135, // Jolteon + 30, // Nidorina + 184, // Azumarill + 292, // Shedinja + 66, // Machop + 291, // Ninjask + 284, // Masquerain + 355, // Duskull + 192, // Sunflora + 189, // Jumpluff + 120, // Staryu + 180, // Flaaffy + 363, // Spheal + 54, // Psyduck + 219, // Magcargo + 83, // Farfetchd + 41, // Zubat + 137, // Porygon + 161, // Sentret + 318, // Carvanha + 44, // Gloom + 26, // Raichu + 129, // Magikarp + 215, // Sneasel + 305, // Lairon + 256, // Combusken + 224, // Octillery + 33, // Nidorino + 136, // Flareon + 225, // Delibird + 72, // Tentacool + 63, // Abra + 253, // Grovyle + 340, // Whiscash + 156, // Quilava + 196, // Espeon + 88, // Grimer + 152, // Chikorita + 326, // Grumpig + 299, // Nosepass + 53, // Persian + 262, // Mightyena + 48, // Venonat + 82, // Magneton + 77, // Ponyta + 296, // Makuhita + 337, // Lunatone + 28, // Sandslash + 96, // Drowzee + 114, // Tangela + 57, // Primeape + 165, // Ledyba + 40, // Wigglytuff + 47, // Parasect + 139, // Omastar + 294, // Loudred + 8, // Wartortle + 75, // Graveler + 197, // Umbreon + 345, // Lileep + 61, // Poliwhirl + 134, // Vaporeon + 15, // Beedrill + 105, // Marowak + 70, // Weepinbell + 369, // Relicanth + 111, // Rhyhorn + 2, // Ivysaur + 352, // Kecleon + 274, // Nuzleaf + 267, // Beautifly + 17, // Pidgeotto + 168, // Ariados + 86, // Seel + 186, // Politoed + 159, // Croconaw + 113, // Chansey + 354, // Banette + 232, // Donphan + 121, // Starmie + 5, // Charmeleon + 221, // Piloswine + 12, // Butterfree + 329, // Vibrava + 125, // Electabuzz + 342, // Crawdaunt + 301, // Delcatty + 334, // Altaria + 372, // Shelgon + 38, // Ninetales + 207, // Gligar + 364, // Sealeo + 327, // Spinda + 247, // Pupitar + 79, // Slowpoke + 338, // Solrock + 241, // Miltank + 22, // Fearow + 45, // Vileplume + 89, // Muk + 205, // Forretress + 185, // Sudowoodo + 359, // Absol + 193, // Yanma + 269, // Dustox + 108, // Lickitung + 235, // Smeargle + 171, // Lanturn + 101, // Electrode + 271, // Lombre + 286, // Breloom + 153, // Bayleef + 117, // Seadra + 110, // Weezing + 279, // Pelipper + 375, // Metang + 31, // Nidoqueen + 332, // Cacturne + 275, // Shiftry + 308, // Medicham + 335, // Zangoose + 141, // Kabutops + 99, // Kingler + 64, // Kadabra + 119, // Seaking + 36, // Clefable + 126, // Magmar + 202, // Wobbuffet + 92, // Gastly + 122, // Mr. mime + 62, // Poliwrath + 128, // Tauros + 380, // Latias + 181, // Ampharos + 288, // Vigoroth + 166, // Ledian + 76, // Golem + 365, // Walrein + 84, // Doduo + 229, // Houndoom + 34, // Nidoking + 124, // Jynx + 107, // Hitmonchan + 234, // Stantler + 210, // Granbull + 237, // Hitmontop + 195, // Quagsire + 344, // Claydol + 260, // Swampert + 242, // Blissey + 272, // Ludicolo + 295, // Exploud + 206, // Dunsparce + 127, // Pinsir + 91, // Cloyster + 67, // Machoke + 203, // Girafarig + 18, // Pidgeot + 178, // Xatu + 346, // Cradily + 106, // Hitmonlee + 49, // Venomoth + 94, // Gengar + 214, // Heracross + 362, // Glalie + 123, // Scyther + 373, // Salamence + 310, // Manectric + 348, // Armaldo + 65, // Alakazam + 97, // Hypno + 164, // Noctowl + 73, // Tentacruel + 356, // Dusclops + 145, // Zapdos + 42, // Golbat + 376, // Metagross + 282, // Gardevoir + 9, // Blastoise + 80, // Slowbro + 93, // Haunter + 68, // Machamp + 377, // Regirock + 317, // Swalot + 254, // Sceptile + 227, // Skarmory + 55, // Golduck + 386, // Deoxys + 71, // Victreebel + 78, // Rapidash + 6, // Charizard + 367, // Huntail + 87, // Dewgong + 144, // Articuno + 157, // Typhlosion + 142, // Aerodactyl + 368, // Gorebyss + 217, // Ursaring + 154, // Meganium + 378, // Regice + 212, // Scizor + 230, // Kingdra + 147, // Dratini + 85, // Dodrio + 319, // Sharpedo + 169, // Crobat + 162, // Furret + 59, // Arcanine + 243, // Raikou + 257, // Blaziken + 323, // Camerupt + 112, // Rhydon + 379, // Registeel + 23, // Ekans + 330, // Flygon + 357, // Tropius + 381, // Latios + 245, // Suicune + 146, // Moltres + 3, // Venusaur + 103, // Exeggutor + 199, // Slowking + 248, // Tyranitar + 289, // Slaking + 320, // Wailmer + 150, // Mewtwo + 306, // Aggron + 143, // Snorlax + 226, // Mantine + 244, // Entei + 149, // Dragonite + 115, // Kangaskhan + 297, // Hariyama + 160, // Feraligatr + 131, // Lapras + 336, // Seviper + 24, // Arbok + 383, // Groudon + 250, // Ho-Oh + 148, // Dragonair + 382, // Kyogre + 249, // Lugia + 350, // Milotic + 130, // Gyarados + 384, // Rayquaza + 95, // Onix + 208, // Steelix + 321, // Wailord +}; diff --git a/src/menu.c b/src/menu.c index 0d5c0b7d2..d84a4c3c5 100644 --- a/src/menu.c +++ b/src/menu.c @@ -629,7 +629,7 @@ void MenuPrint_RightAligned(u8 *str, u8 left, u8 top) sub_8004D38(gMenuWindowPtr, str, gMenuTextTileOffset, left, top); } -void sub_8072B80(u8 *a1, u8 a2, u8 a3, u8 *a4) +void sub_8072B80(const u8 *a1, u8 a2, u8 a3, const u8 *a4) { u8 buffer[64]; u8 width = GetStringWidth(gMenuWindowPtr, a4); diff --git a/src/pokedex.c b/src/pokedex.c index 3d8b152ae..be6ef03a9 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2,28 +2,77 @@ #include "gba/m4a_internal.h" #include "pokedex.h" #include "asm.h" +#include "data2.h" #include "decompress.h" #include "event_data.h" +#include "graphics.h" #include "m4a.h" #include "main.h" #include "menu.h" +#include "menu_cursor.h" #include "palette.h" #include "rng.h" #include "songs.h" #include "sound.h" +#include "species.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "trig.h" -// I'm #define-ing these just for now so I can keep using the old unkXXX member names -#define unk60E selectedPokemon -#define unk612 dexMode -#define unk616 dexOrder -#define unk64D selectedScreen -#define unk650 menuIsOpen -#define unk652 menuCursorPos -#define unk654 menuY +#define NATIONAL_DEX_COUNT 386 + +struct PokedexListItem +{ + u16 dexNum; + u16 seen:1; + u16 owned:1; +}; + +struct PokedexView +{ + struct PokedexListItem unk0[NATIONAL_DEX_COUNT]; + u16 unk608; + u8 unk60A_1:1; + u8 unk60A_2:1; + u8 unk60B; + u16 pokemonListCount; + u16 selectedPokemon; + u16 unk610; + u16 dexMode; + u16 unk614; + u16 dexOrder; + u16 unk618; + u16 unk61A; + u16 unk61C; + u16 unk61E[4]; + u16 selectedMonSpriteId; + u16 unk628; + u16 unk62A; + u8 unk62C; + u8 unk62D; + u8 unk62E; + u8 unk62F; + s16 unk630; + s16 unk632; + u16 unk634; + u16 unk636; + u16 unk638; + u16 unk63A[4]; + u8 filler642[8]; + u8 unk64A; + u8 unk64B; + u8 unk64C_1:1; + u8 selectedScreen; + u8 descriptionPageNum; + u8 unk64F; + u8 menuIsOpen; //menuIsOpen + u8 unk651; + u16 menuCursorPos; //Menu cursor position + s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) + u8 unk656[8]; + u8 unk65E[8]; +}; enum { @@ -44,8 +93,8 @@ struct PokedexEntry /*0x00*/ u8 categoryName[12]; /*0x0C*/ u16 height; //in decimeters /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ u8 *descriptionPage1; - /*0x14*/ u8 *descriptionPage2; + /*0x10*/ const u8 *descriptionPage1; + /*0x14*/ const u8 *descriptionPage2; /*0x18*/ u16 unused; /*0x1A*/ u16 pokemonScale; /*0x1C*/ u16 pokemonOffset; @@ -53,45 +102,75 @@ struct PokedexEntry /*0x20*/ u16 trainerOffset; }; /*size = 0x24*/ +struct UnknownStruct2 +{ + const u8 *text1; + const u8 *text2; +}; + +struct UnknownStruct1 +{ + const struct UnknownStruct2 *unk0; + u8 unk4; + u8 unk5; + u16 unk6; +}; + +struct UnknownStruct3 +{ + const u8 *text; + u8 unk4; + u8 unk5; + u8 unk6; +}; + +struct UnknownStruct4 +{ + const u8 *text; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; +}; + extern struct MusicPlayerInfo gMPlay_BGM; extern u8 gReservedSpritePaletteCount; extern struct PokedexView *gPokedexView; +extern struct SpriteTemplate gUnknown_02024E8C; extern u16 gUnknown_0202FFB8; extern u8 gUnknown_0202FFBA; -extern u8 gUnknown_03005CE8; -extern u8 gPokedexMenu_Gfx[]; -extern u8 gUnknown_08E96738[]; -extern u8 gUnknown_08E9C6DC[]; -extern u8 gUnknown_08E96888[]; -extern u8 gUnknown_08E96994[]; -extern struct SpriteSheet gUnknown_083A05CC; -extern struct SpritePalette gUnknown_083A05DC[]; -extern u8 gUnknown_0839FA7C[]; -extern u8 gUnknown_0839F67C[]; -extern u8 gPokedexMenu_Pal[]; -extern u8 gUnknown_0839F73C[]; -extern u8 gUnknown_083A05EC[]; -extern u8 gUnknown_083A05F1[]; -extern struct SpriteTemplate gSpriteTemplate_83A053C; -extern struct SpriteTemplate gSpriteTemplate_83A0524; -extern struct SpriteTemplate gSpriteTemplate_83A0554; -extern struct SpriteTemplate gSpriteTemplate_83A056C; -extern struct SpriteTemplate gSpriteTemplate_83A0584; -extern struct SpriteTemplate gSpriteTemplate_83A059C; -extern struct SpriteTemplate gSpriteTemplate_83A05B4; extern struct PokedexListItem *gUnknown_0202FFBC; +extern u8 gUnknown_03005CE8; extern IntrCallback gUnknown_03005CEC; -extern u8 gUnknown_08E96BD4[]; -extern u8 gUnknown_083A05F8[]; -extern u8 gUnknown_0839F8A0[]; -extern u8 gUnknown_0839F988[]; extern u8 gUnknown_03005E98; -extern u8 gUnknown_083B4EC4[]; -extern u8 gUnknown_08E96ACC[]; -extern u8 gUnknown_08E96B58[]; - -extern struct PokedexEntry gPokedexEntries[]; - +extern const u8 gPokedexMenu_Gfx[]; +extern const u8 gUnknown_08E96738[]; +extern const u8 gUnknown_08E96888[]; +extern const u8 gUnknown_08E96994[]; +extern const u8 gUnknown_08E9C6DC[]; +extern const u8 gUnknown_08D00524[]; +extern const u8 gUnknown_08E96BD4[]; +extern const u8 gUnknown_08E96ACC[]; +extern const u8 gUnknown_08E96B58[]; +extern const u16 gPokedexMenu_Pal[]; +extern const u16 gPokedexMenu2_Pal[]; +extern const struct SpriteSheet gTrainerFrontPicTable[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; +extern const struct PokedexEntry gPokedexEntries[]; +extern const struct BaseStats gBaseStats[]; +extern const u8 gPokedexMenuSearch_Gfx[]; +extern const u8 gUnknown_08E96D2C[]; +extern const u16 gPokedexMenuSearch_Pal[]; +extern const u8 gTypeNames[][7]; +extern const u8 gPokedexMenu2_Gfx[]; + +extern u16 NationalPokedexNumToSpecies(u16); +extern void ShowPokedexAreaScreen(u16 species, u8 *string); +extern void sub_814AD7C(u8, u8); +extern void sub_800D74C(); +extern const u16 *species_and_otid_get_pal(u16, u32, u32); extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); extern void remove_some_task(void); @@ -100,14 +179,1123 @@ extern void DisableNationalPokedex(void); extern void sub_805469C(void); extern u16 HoennToNationalOrder(u16); extern u16 NationalToHoennOrder(u16); -extern u16 gPokedexOrder_Alphabetical[]; -extern u16 gPokedexOrder_Weight[]; -extern u16 gPokedexOrder_Height[]; -u16 NationalPokedexNumToSpecies(u16); - -// asm/pokedex_area_screen -void ShowPokedexAreaScreen(u16 species, u8 *string); +static const u16 sPokedexSearchPalette[] = INCBIN_U16("graphics/pokedex/search.gbapal"); +static const u16 sNationalPokedexPalette[] = INCBIN_U16("graphics/pokedex/national.gbapal"); +const u8 gEmptySpacce_839F7FC[0xA4] = {0}; +static const u8 gUnknown_0839F8A0[] = INCBIN_U8("graphics/pokedex/pokedex_cry_layout.bin.lz"); +static const u8 gUnknown_0839F988[] = INCBIN_U8("graphics/pokedex/pokedex_size_layout.bin.lz"); +static const u8 gUnknown_0839FA7C[] = INCBIN_U8("graphics/pokedex/noball.4bpp.lz"); +#include "data/pokedex_orders.h" +static const struct OamData gOamData_83A0404 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A040C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0414 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A041C = +{ + .y = 160, + .affineMode = 0, + .objMode = 2, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0424 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A042C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const union AnimCmd gSpriteAnim_83A0434[] = +{ + ANIMCMD_FRAME(3, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A043C[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0444[] = +{ + ANIMCMD_FRAME(16, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A044C[] = +{ + ANIMCMD_FRAME(32, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0454[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A045C[] = +{ + ANIMCMD_FRAME(96, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0464[] = +{ + ANIMCMD_FRAME(128, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A046C[] = +{ + ANIMCMD_FRAME(160, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0474[] = +{ + ANIMCMD_FRAME(192, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A047C[] = +{ + ANIMCMD_FRAME(224, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0484[] = +{ + ANIMCMD_FRAME(226, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A048C[] = +{ + ANIMCMD_FRAME(228, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A0494[] = +{ + ANIMCMD_FRAME(230, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A049C[] = +{ + ANIMCMD_FRAME(232, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04A4[] = +{ + ANIMCMD_FRAME(234, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04AC[] = +{ + ANIMCMD_FRAME(236, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04B4[] = +{ + ANIMCMD_FRAME(238, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04BC[] = +{ + ANIMCMD_FRAME(240, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04C4[] = +{ + ANIMCMD_FRAME(242, 30), + ANIMCMD_END, +}; +static const union AnimCmd gSpriteAnim_83A04CC[] = +{ + ANIMCMD_FRAME(4, 30), + ANIMCMD_END, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04D4[] = +{ + gSpriteAnim_83A0434, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04D8[] = +{ + gSpriteAnim_83A043C, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04DC[] = +{ + gSpriteAnim_83A0444, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04E0[] = +{ + gSpriteAnim_83A044C, + gSpriteAnim_83A0454, + gSpriteAnim_83A045C, + gSpriteAnim_83A0464, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04F0[] = +{ + gSpriteAnim_83A046C, + gSpriteAnim_83A0474, +}; +static const union AnimCmd *const gSpriteAnimTable_83A04F8[] = +{ + gSpriteAnim_83A047C, + gSpriteAnim_83A0484, + gSpriteAnim_83A048C, + gSpriteAnim_83A0494, + gSpriteAnim_83A049C, + gSpriteAnim_83A04A4, + gSpriteAnim_83A04AC, + gSpriteAnim_83A04B4, + gSpriteAnim_83A04BC, + gSpriteAnim_83A04C4, +}; +static const union AnimCmd *const gSpriteAnimTable_83A0520[] = +{ + gSpriteAnim_83A04CC, +}; +static void sub_808EF38(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0524 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0404, + .anims = gSpriteAnimTable_83A04D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808EF38, +}; +static void sub_808EF8C(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A053C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A040C, + .anims = gSpriteAnimTable_83A04D8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808EF8C, +}; +static void sub_808F08C(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0554 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0414, + .anims = gSpriteAnimTable_83A04E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F08C, +}; +static void sub_808F0B4(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A056C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A041C, + .anims = gSpriteAnimTable_83A04DC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F0B4, +}; +static void sub_808ED94(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A0584 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A0424, + .anims = gSpriteAnimTable_83A04F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808ED94, +}; +static const struct SpriteTemplate gSpriteTemplate_83A059C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A042C, + .anims = gSpriteAnimTable_83A04F8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808ED94, +}; +static void sub_808F168(struct Sprite *); +static const struct SpriteTemplate gSpriteTemplate_83A05B4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &gOamData_83A042C, + .anims = gSpriteAnimTable_83A0520, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_808F168, +}; +static const struct SpriteSheet gUnknown_083A05CC[] = +{ + {gPokedexMenu2_Gfx, 0x1F00, 0x1000}, + {NULL, 0, 0}, +}; +static const struct SpritePalette gUnknown_083A05DC[] = +{ + {gPokedexMenu_Pal, 0x1000}, + {NULL, 0}, +}; +static const u8 gUnknown_083A05EC[] = {2, 4, 8, 16, 32}; +static const u8 gUnknown_083A05F1[] = {16, 8, 4, 2, 1}; +const u8 gEmptySpacce_83A05F6[] = {0, 0}; // Padding, maybe? +static const u8 gUnknown_083A05F8[] = _(""); +// TODO: include German entries +#include "data/pokedex_entries_en.h" +static const u16 gUnknown_083B4EC4[16] = {0}; +static const u8 *const sMonFootprintTable[] = +{ + gMonFootprint_Bulbasaur, + gMonFootprint_Bulbasaur, + gMonFootprint_Ivysaur, + gMonFootprint_Venusaur, + gMonFootprint_Charmander, + gMonFootprint_Charmeleon, + gMonFootprint_Charizard, + gMonFootprint_Squirtle, + gMonFootprint_Wartortle, + gMonFootprint_Blastoise, + gMonFootprint_Caterpie, + gMonFootprint_Metapod, + gMonFootprint_Butterfree, + gMonFootprint_Weedle, + gMonFootprint_Kakuna, + gMonFootprint_Beedrill, + gMonFootprint_Pidgey, + gMonFootprint_Pidgeotto, + gMonFootprint_Pidgeot, + gMonFootprint_Rattata, + gMonFootprint_Raticate, + gMonFootprint_Spearow, + gMonFootprint_Fearow, + gMonFootprint_Ekans, + gMonFootprint_Arbok, + gMonFootprint_Pikachu, + gMonFootprint_Raichu, + gMonFootprint_Sandshrew, + gMonFootprint_Sandslash, + gMonFootprint_NidoranF, + gMonFootprint_Nidorina, + gMonFootprint_Nidoqueen, + gMonFootprint_NidoranM, + gMonFootprint_Nidorino, + gMonFootprint_Nidoking, + gMonFootprint_Clefairy, + gMonFootprint_Clefable, + gMonFootprint_Vulpix, + gMonFootprint_Ninetales, + gMonFootprint_Jigglypuff, + gMonFootprint_Wigglytuff, + gMonFootprint_Zubat, + gMonFootprint_Golbat, + gMonFootprint_Oddish, + gMonFootprint_Gloom, + gMonFootprint_Vileplume, + gMonFootprint_Paras, + gMonFootprint_Parasect, + gMonFootprint_Venonat, + gMonFootprint_Venomoth, + gMonFootprint_Diglett, + gMonFootprint_Dugtrio, + gMonFootprint_Meowth, + gMonFootprint_Persian, + gMonFootprint_Psyduck, + gMonFootprint_Golduck, + gMonFootprint_Mankey, + gMonFootprint_Primeape, + gMonFootprint_Growlithe, + gMonFootprint_Arcanine, + gMonFootprint_Poliwag, + gMonFootprint_Poliwhirl, + gMonFootprint_Poliwrath, + gMonFootprint_Abra, + gMonFootprint_Kadabra, + gMonFootprint_Alakazam, + gMonFootprint_Machop, + gMonFootprint_Machoke, + gMonFootprint_Machamp, + gMonFootprint_Bellsprout, + gMonFootprint_Weepinbell, + gMonFootprint_Victreebel, + gMonFootprint_Tentacool, + gMonFootprint_Tentacruel, + gMonFootprint_Geodude, + gMonFootprint_Graveler, + gMonFootprint_Golem, + gMonFootprint_Ponyta, + gMonFootprint_Rapidash, + gMonFootprint_Slowpoke, + gMonFootprint_Slowbro, + gMonFootprint_Magnemite, + gMonFootprint_Magneton, + gMonFootprint_Farfetchd, + gMonFootprint_Doduo, + gMonFootprint_Dodrio, + gMonFootprint_Seel, + gMonFootprint_Dewgong, + gMonFootprint_Grimer, + gMonFootprint_Muk, + gMonFootprint_Shellder, + gMonFootprint_Cloyster, + gMonFootprint_Gastly, + gMonFootprint_Haunter, + gMonFootprint_Gengar, + gMonFootprint_Onix, + gMonFootprint_Drowzee, + gMonFootprint_Hypno, + gMonFootprint_Krabby, + gMonFootprint_Kingler, + gMonFootprint_Voltorb, + gMonFootprint_Electrode, + gMonFootprint_Exeggcute, + gMonFootprint_Exeggutor, + gMonFootprint_Cubone, + gMonFootprint_Marowak, + gMonFootprint_Hitmonlee, + gMonFootprint_Hitmonchan, + gMonFootprint_Lickitung, + gMonFootprint_Koffing, + gMonFootprint_Weezing, + gMonFootprint_Rhyhorn, + gMonFootprint_Rhydon, + gMonFootprint_Chansey, + gMonFootprint_Tangela, + gMonFootprint_Kangaskhan, + gMonFootprint_Horsea, + gMonFootprint_Seadra, + gMonFootprint_Goldeen, + gMonFootprint_Seaking, + gMonFootprint_Staryu, + gMonFootprint_Starmie, + gMonFootprint_Mrmime, + gMonFootprint_Scyther, + gMonFootprint_Jynx, + gMonFootprint_Electabuzz, + gMonFootprint_Magmar, + gMonFootprint_Pinsir, + gMonFootprint_Tauros, + gMonFootprint_Magikarp, + gMonFootprint_Gyarados, + gMonFootprint_Lapras, + gMonFootprint_Ditto, + gMonFootprint_Eevee, + gMonFootprint_Vaporeon, + gMonFootprint_Jolteon, + gMonFootprint_Flareon, + gMonFootprint_Porygon, + gMonFootprint_Omanyte, + gMonFootprint_Omastar, + gMonFootprint_Kabuto, + gMonFootprint_Kabutops, + gMonFootprint_Aerodactyl, + gMonFootprint_Snorlax, + gMonFootprint_Articuno, + gMonFootprint_Zapdos, + gMonFootprint_Moltres, + gMonFootprint_Dratini, + gMonFootprint_Dragonair, + gMonFootprint_Dragonite, + gMonFootprint_Mewtwo, + gMonFootprint_Mew, + gMonFootprint_Chikorita, + gMonFootprint_Bayleef, + gMonFootprint_Meganium, + gMonFootprint_Cyndaquil, + gMonFootprint_Quilava, + gMonFootprint_Typhlosion, + gMonFootprint_Totodile, + gMonFootprint_Croconaw, + gMonFootprint_Feraligatr, + gMonFootprint_Sentret, + gMonFootprint_Furret, + gMonFootprint_Hoothoot, + gMonFootprint_Noctowl, + gMonFootprint_Ledyba, + gMonFootprint_Ledian, + gMonFootprint_Spinarak, + gMonFootprint_Ariados, + gMonFootprint_Crobat, + gMonFootprint_Chinchou, + gMonFootprint_Lanturn, + gMonFootprint_Pichu, + gMonFootprint_Cleffa, + gMonFootprint_Igglybuff, + gMonFootprint_Togepi, + gMonFootprint_Togetic, + gMonFootprint_Natu, + gMonFootprint_Xatu, + gMonFootprint_Mareep, + gMonFootprint_Flaaffy, + gMonFootprint_Ampharos, + gMonFootprint_Bellossom, + gMonFootprint_Marill, + gMonFootprint_Azumarill, + gMonFootprint_Sudowoodo, + gMonFootprint_Politoed, + gMonFootprint_Hoppip, + gMonFootprint_Skiploom, + gMonFootprint_Jumpluff, + gMonFootprint_Aipom, + gMonFootprint_Sunkern, + gMonFootprint_Sunflora, + gMonFootprint_Yanma, + gMonFootprint_Wooper, + gMonFootprint_Quagsire, + gMonFootprint_Espeon, + gMonFootprint_Umbreon, + gMonFootprint_Murkrow, + gMonFootprint_Slowking, + gMonFootprint_Misdreavus, + gMonFootprint_Unown, + gMonFootprint_Wobbuffet, + gMonFootprint_Girafarig, + gMonFootprint_Pineco, + gMonFootprint_Forretress, + gMonFootprint_Dunsparce, + gMonFootprint_Gligar, + gMonFootprint_Steelix, + gMonFootprint_Snubbull, + gMonFootprint_Granbull, + gMonFootprint_Qwilfish, + gMonFootprint_Scizor, + gMonFootprint_Shuckle, + gMonFootprint_Heracross, + gMonFootprint_Sneasel, + gMonFootprint_Teddiursa, + gMonFootprint_Ursaring, + gMonFootprint_Slugma, + gMonFootprint_Magcargo, + gMonFootprint_Swinub, + gMonFootprint_Piloswine, + gMonFootprint_Corsola, + gMonFootprint_Remoraid, + gMonFootprint_Octillery, + gMonFootprint_Delibird, + gMonFootprint_Mantine, + gMonFootprint_Skarmory, + gMonFootprint_Houndour, + gMonFootprint_Houndoom, + gMonFootprint_Kingdra, + gMonFootprint_Phanpy, + gMonFootprint_Donphan, + gMonFootprint_Porygon2, + gMonFootprint_Stantler, + gMonFootprint_Smeargle, + gMonFootprint_Tyrogue, + gMonFootprint_Hitmontop, + gMonFootprint_Smoochum, + gMonFootprint_Elekid, + gMonFootprint_Magby, + gMonFootprint_Miltank, + gMonFootprint_Blissey, + gMonFootprint_Raikou, + gMonFootprint_Entei, + gMonFootprint_Suicune, + gMonFootprint_Larvitar, + gMonFootprint_Pupitar, + gMonFootprint_Tyranitar, + gMonFootprint_Lugia, + gMonFootprint_HoOh, + gMonFootprint_Celebi, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_QuestionMark, + gMonFootprint_Treecko, + gMonFootprint_Grovyle, + gMonFootprint_Sceptile, + gMonFootprint_Torchic, + gMonFootprint_Combusken, + gMonFootprint_Blaziken, + gMonFootprint_Mudkip, + gMonFootprint_Marshtomp, + gMonFootprint_Swampert, + gMonFootprint_Poochyena, + gMonFootprint_Mightyena, + gMonFootprint_Zigzagoon, + gMonFootprint_Linoone, + gMonFootprint_Wurmple, + gMonFootprint_Silcoon, + gMonFootprint_Beautifly, + gMonFootprint_Cascoon, + gMonFootprint_Dustox, + gMonFootprint_Lotad, + gMonFootprint_Lombre, + gMonFootprint_Ludicolo, + gMonFootprint_Seedot, + gMonFootprint_Nuzleaf, + gMonFootprint_Shiftry, + gMonFootprint_Nincada, + gMonFootprint_Ninjask, + gMonFootprint_Shedinja, + gMonFootprint_Taillow, + gMonFootprint_Swellow, + gMonFootprint_Shroomish, + gMonFootprint_Breloom, + gMonFootprint_Spinda, + gMonFootprint_Wingull, + gMonFootprint_Pelipper, + gMonFootprint_Surskit, + gMonFootprint_Masquerain, + gMonFootprint_Wailmer, + gMonFootprint_Wailord, + gMonFootprint_Skitty, + gMonFootprint_Delcatty, + gMonFootprint_Kecleon, + gMonFootprint_Baltoy, + gMonFootprint_Claydol, + gMonFootprint_Nosepass, + gMonFootprint_Torkoal, + gMonFootprint_Sableye, + gMonFootprint_Barboach, + gMonFootprint_Whiscash, + gMonFootprint_Luvdisc, + gMonFootprint_Corphish, + gMonFootprint_Crawdaunt, + gMonFootprint_Feebas, + gMonFootprint_Milotic, + gMonFootprint_Carvanha, + gMonFootprint_Sharpedo, + gMonFootprint_Trapinch, + gMonFootprint_Vibrava, + gMonFootprint_Flygon, + gMonFootprint_Makuhita, + gMonFootprint_Hariyama, + gMonFootprint_Electrike, + gMonFootprint_Manectric, + gMonFootprint_Numel, + gMonFootprint_Camerupt, + gMonFootprint_Spheal, + gMonFootprint_Sealeo, + gMonFootprint_Walrein, + gMonFootprint_Cacnea, + gMonFootprint_Cacturne, + gMonFootprint_Snorunt, + gMonFootprint_Glalie, + gMonFootprint_Lunatone, + gMonFootprint_Solrock, + gMonFootprint_Azurill, + gMonFootprint_Spoink, + gMonFootprint_Grumpig, + gMonFootprint_Plusle, + gMonFootprint_Minun, + gMonFootprint_Mawile, + gMonFootprint_Meditite, + gMonFootprint_Medicham, + gMonFootprint_Swablu, + gMonFootprint_Altaria, + gMonFootprint_Wynaut, + gMonFootprint_Duskull, + gMonFootprint_Dusclops, + gMonFootprint_Roselia, + gMonFootprint_Slakoth, + gMonFootprint_Vigoroth, + gMonFootprint_Slaking, + gMonFootprint_Gulpin, + gMonFootprint_Swalot, + gMonFootprint_Tropius, + gMonFootprint_Whismur, + gMonFootprint_Loudred, + gMonFootprint_Exploud, + gMonFootprint_Clamperl, + gMonFootprint_Huntail, + gMonFootprint_Gorebyss, + gMonFootprint_Absol, + gMonFootprint_Shuppet, + gMonFootprint_Banette, + gMonFootprint_Seviper, + gMonFootprint_Zangoose, + gMonFootprint_Relicanth, + gMonFootprint_Aron, + gMonFootprint_Lairon, + gMonFootprint_Aggron, + gMonFootprint_Castform, + gMonFootprint_Volbeat, + gMonFootprint_Illumise, + gMonFootprint_Lileep, + gMonFootprint_Cradily, + gMonFootprint_Anorith, + gMonFootprint_Armaldo, + gMonFootprint_Ralts, + gMonFootprint_Kirlia, + gMonFootprint_Gardevoir, + gMonFootprint_Bagon, + gMonFootprint_Shelgon, + gMonFootprint_Salamence, + gMonFootprint_Beldum, + gMonFootprint_Metang, + gMonFootprint_Metagross, + gMonFootprint_Regirock, + gMonFootprint_Regice, + gMonFootprint_Registeel, + gMonFootprint_Kyogre, + gMonFootprint_Groudon, + gMonFootprint_Rayquaza, + gMonFootprint_Latias, + gMonFootprint_Latios, + gMonFootprint_Jirachi, + gMonFootprint_Deoxys, + gMonFootprint_Chimecho, + gMonFootprint_Bulbasaur, +}; +static const u8 gUnknown_083B5558[] = _("{CLEAR_TO 0}"); +const u8 gUnknown_083B555C[] = INCBIN_U8("graphics/unknown/unknown_3B555C.bin"); +static const struct OamData gOamData_83B557C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static void *const gUnknown_083B5584[] = +{ + (void *)0x02008000, + (void *)0x0200C000, + (void *)0x02010000, + (void *)0x02014000, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5594[] = +{ + {(u8 *)0x02008000, 0x800}, + {(u8 *)0x02008800, 0x800}, + {(u8 *)0x02009000, 0x800}, + {(u8 *)0x02009800, 0x800}, + {(u8 *)0x0200A000, 0x800}, + {(u8 *)0x0200A800, 0x800}, + {(u8 *)0x0200B000, 0x800}, + {(u8 *)0x0200B800, 0x800}, + {(u8 *)0x0200C000, 0x800}, + {(u8 *)0x0200C800, 0x800}, + {(u8 *)0x0200D000, 0x800}, + {(u8 *)0x0200D800, 0x800}, + {(u8 *)0x0200E000, 0x800}, + {(u8 *)0x0200E800, 0x800}, + {(u8 *)0x0200F000, 0x800}, + {(u8 *)0x0200F800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5614[] = +{ + {(u8 *)0x0200C000, 0x800}, + {(u8 *)0x0200C800, 0x800}, + {(u8 *)0x0200D000, 0x800}, + {(u8 *)0x0200D800, 0x800}, + {(u8 *)0x0200E000, 0x800}, + {(u8 *)0x0200E800, 0x800}, + {(u8 *)0x0200F000, 0x800}, + {(u8 *)0x0200F800, 0x800}, + {(u8 *)0x02010000, 0x800}, + {(u8 *)0x02010800, 0x800}, + {(u8 *)0x02011000, 0x800}, + {(u8 *)0x02011800, 0x800}, + {(u8 *)0x02012000, 0x800}, + {(u8 *)0x02012800, 0x800}, + {(u8 *)0x02013000, 0x800}, + {(u8 *)0x02013800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5694[] = +{ + {(u8 *)0x02010000, 0x800}, + {(u8 *)0x02010800, 0x800}, + {(u8 *)0x02011000, 0x800}, + {(u8 *)0x02011800, 0x800}, + {(u8 *)0x02012000, 0x800}, + {(u8 *)0x02012800, 0x800}, + {(u8 *)0x02013000, 0x800}, + {(u8 *)0x02013800, 0x800}, + {(u8 *)0x02014000, 0x800}, + {(u8 *)0x02014800, 0x800}, + {(u8 *)0x02015000, 0x800}, + {(u8 *)0x02015800, 0x800}, + {(u8 *)0x02016000, 0x800}, + {(u8 *)0x02016800, 0x800}, + {(u8 *)0x02017000, 0x800}, + {(u8 *)0x02017800, 0x800}, +}; +static const struct SpriteFrameImage gSpriteImageTable_83B5714[] = +{ + {(u8 *)0x02014000, 0x800}, + {(u8 *)0x02014800, 0x800}, + {(u8 *)0x02015000, 0x800}, + {(u8 *)0x02015800, 0x800}, + {(u8 *)0x02016000, 0x800}, + {(u8 *)0x02016800, 0x800}, + {(u8 *)0x02017000, 0x800}, + {(u8 *)0x02017800, 0x800}, + {(u8 *)0x02018000, 0x800}, + {(u8 *)0x02018800, 0x800}, + {(u8 *)0x02019000, 0x800}, + {(u8 *)0x02019800, 0x800}, + {(u8 *)0x0201A000, 0x800}, + {(u8 *)0x0201A800, 0x800}, + {(u8 *)0x0201B000, 0x800}, + {(u8 *)0x0201B800, 0x800}, +}; +static const struct SpriteFrameImage *const gUnknown_083B5794[] = +{ + gSpriteImageTable_83B5594, + gSpriteImageTable_83B5614, + gSpriteImageTable_83B5694, + gSpriteImageTable_83B5714, +}; +static void nullsub_59(struct Sprite *); +static const struct SpriteTemplate gUnknown_083B57A4 = +{ + .tileTag = 0xFFFF, + .paletteTag = 0, + .oam = &gOamData_83B557C, + .anims = NULL, + .images = gSpriteImageTable_83B5594, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_59, +}; +static const u8 gUnknown_083B57BC[][4] = +{ + {0, 0, 0, 0}, + {CHAR_A, 3, CHAR_a, 3}, + {CHAR_D, 3, CHAR_d, 3}, + {CHAR_G, 3, CHAR_g, 3}, + {CHAR_J, 3, CHAR_j, 3}, + {CHAR_M, 3, CHAR_m, 3}, + {CHAR_P, 3, CHAR_p, 3}, + {CHAR_S, 3, CHAR_s, 3}, + {CHAR_V, 3, CHAR_v, 3}, + {CHAR_Y, 2, CHAR_y, 2}, +}; +static const struct UnknownStruct3 gUnknown_083B57E4[] = +{ + {DexText_SearchForPoke, 0, 0, 5}, + {DexText_SwitchDex, 6, 0, 5}, + {DexText_ReturnToDex, 12, 0, 5}, +}; +static const struct UnknownStruct4 gUnknown_083B57FC[] = +{ + {DexText_ListByABC, 0, 2, 5, 5, 2, 12}, + {DexText_ListByColor, 0, 4, 5, 5, 4, 12}, + {DexText_ListByType, 0, 6, 5, 5, 6, 6}, + {DexText_ListByType, 0, 6, 5, 11, 6, 6}, + {DexText_SelectDexList, 0, 8, 5, 5, 8, 12}, + {DexText_SelectDexMode, 0, 10, 5, 5, 10, 12}, + {DexText_ExecuteSearchSwitch, 0, 12, 5, 0, 0, 0}, +}; +static const u8 gUnknown_083B5850[][4] = +{ + {0xFF, 0xFF, 0xFF, 1}, + {0xFF, 0xFF, 0, 2}, + {0xFF, 3, 1, 4}, + { 2, 0xFF, 1, 4}, + {0xFF, 0xFF, 2, 5}, + {0xFF, 0xFF, 4, 6}, + {0xFF, 0xFF, 5, 0xFF}, +}; +static const u8 gUnknown_083B586C[][4] = +{ + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 5}, + {0xFF, 0xFF, 4, 6}, + {0xFF, 0xFF, 5, 0xFF}, +}; +static const u8 gUnknown_083B5888[][4] = +{ + {0xFF, 0xFF, 0xFF, 1}, + {0xFF, 0xFF, 0, 2}, + {0xFF, 3, 1, 4}, + { 2, 0xFF, 1, 4}, + {0xFF, 0xFF, 2, 6}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 4, 0xFF}, +}; +static const u8 gUnknown_083B58A4[][4] = +{ + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 0xFF, 6}, + {0xFF, 0xFF, 0xFF, 0xFF}, + {0xFF, 0xFF, 4, 0xFF}, +}; +static const struct UnknownStruct2 gUnknown_083B58C0[] = +{ + {DexText_HoennDex2, DexText_HoennDex}, + {DexText_NationalDex2, DexText_NationalDex}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B58D8[] = +{ + {DexText_ListByNumber, DexText_NumericalMode}, + {DexText_ListByABC2, DexText_ABCMode}, + {DexText_ListByHeavyToLightest, DexText_HeaviestMode}, + {DexText_ListByLightToHeaviest, DexText_LightestMode}, + {DexText_ListByTallToSmallest, DexText_TallestMode}, + {DexText_ListBySmallToTallest, DexText_SmallestMode}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B5910[] = +{ + {DexText_Terminator5, DexText_DontSpecify}, + {DexText_Terminator5, DexText_ABC}, + {DexText_Terminator5, DexText_DEF}, + {DexText_Terminator5, DexText_GHI}, + {DexText_Terminator5, DexText_JKL}, + {DexText_Terminator5, DexText_MNO}, + {DexText_Terminator5, DexText_PQR}, + {DexText_Terminator5, DexText_STU}, + {DexText_Terminator5, DexText_VWX}, + {DexText_Terminator5, DexText_YZ}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B5968[] = +{ + {DexText_Terminator5, DexText_DontSpecify}, + {DexText_Terminator5, DexText_Red}, + {DexText_Terminator5, DexText_Blue}, + {DexText_Terminator5, DexText_Yellow}, + {DexText_Terminator5, DexText_Green}, + {DexText_Terminator5, DexText_Black}, + {DexText_Terminator5, DexText_Brown}, + {DexText_Terminator5, DexText_Purple}, + {DexText_Terminator5, DexText_Gray}, + {DexText_Terminator5, DexText_White}, + {DexText_Terminator5, DexText_Pink}, + {NULL, NULL}, +}; +static const struct UnknownStruct2 gUnknown_083B59C8[] = +{ + {DexText_Terminator5, DexText_None}, + {DexText_Terminator5, gTypeNames[TYPE_NORMAL]}, + {DexText_Terminator5, gTypeNames[TYPE_FIGHTING]}, + {DexText_Terminator5, gTypeNames[TYPE_FLYING]}, + {DexText_Terminator5, gTypeNames[TYPE_POISON]}, + {DexText_Terminator5, gTypeNames[TYPE_GROUND]}, + {DexText_Terminator5, gTypeNames[TYPE_ROCK]}, + {DexText_Terminator5, gTypeNames[TYPE_BUG]}, + {DexText_Terminator5, gTypeNames[TYPE_GHOST]}, + {DexText_Terminator5, gTypeNames[TYPE_STEEL]}, + {DexText_Terminator5, gTypeNames[TYPE_FIRE]}, + {DexText_Terminator5, gTypeNames[TYPE_WATER]}, + {DexText_Terminator5, gTypeNames[TYPE_GRASS]}, + {DexText_Terminator5, gTypeNames[TYPE_ELECTRIC]}, + {DexText_Terminator5, gTypeNames[TYPE_PSYCHIC]}, + {DexText_Terminator5, gTypeNames[TYPE_ICE]}, + {DexText_Terminator5, gTypeNames[TYPE_DRAGON]}, + {DexText_Terminator5, gTypeNames[TYPE_DARK]}, + {NULL, NULL}, +}; +static const u8 gUnknown_083B5A60[] = {0, 1}; +static const u8 gUnknown_083B5A62[] = {0, 1, 2, 3, 4, 5}; +static const u8 gUnknown_083B5A68[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17}; +static const struct UnknownStruct1 gUnknown_083B5A7C[] = +{ + {gUnknown_083B5910, 6, 7, 10}, + {gUnknown_083B5968, 8, 9, 11}, + {gUnknown_083B59C8, 10, 11, 18}, + {gUnknown_083B59C8, 12, 13, 18}, + {gUnknown_083B58D8, 4, 5, 6}, + {gUnknown_083B58C0, 2, 3, 2}, +}; +static const u8 gUnknown_083B5AAC[] = _("{STR_VAR_1}{CLEAR_TO 43}"); +static const u8 gUnknown_083B5AB2[] = _("{STR_VAR_1}{CLEAR_TO 96}"); + +static void MainCB(void); +static void Task_PokedexShowMainScreen(u8 taskId); +static void Task_PokedexMainScreen(u8 taskId); +static void sub_808C898(u8 taskId); +static void Task_PokedexMainScreenMenu(u8 taskId); +static void sub_808CA64(u8 taskId); +static void sub_808CAE4(u8 taskId); +static void sub_808CB8C(u8 taskId); +static void Task_ClosePokedex(u8 taskId); +static void sub_808CCC4(u8 taskId); +static void Task_PokedexResultsScreen(u8 taskId); +static void sub_808CEF8(u8 taskId); +static void Task_PokedexResultsScreenMenu(u8 taskId); +static void sub_808D118(u8 taskId); +static void sub_808D198(u8 taskId); +static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); +static void Task_PokedexResultsScreenExitPokedex(u8 taskId); +static bool8 sub_808D344(u8 a); +static void sub_808D640(void); +static void SortPokedex(u8 dexMode, u8 sortMode); +static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d); +static void sub_808DF88(u16 a, u8 b, u8 c, u16 d); +static u8 sub_808DFE4(u16 num, u8 b, u8 c); +static void sub_808E090(u8 a, u8 b, u16 c); +static void sub_808E0CC(u16 a, u16 b); +static bool8 sub_808E208(u8 a, u8 b, u8 c); +static u16 sub_808E48C(u16 a, u16 b); +static void sub_808E6BC(void); +static u8 sub_808E71C(void); +static u8 sub_808E82C(void); +static u16 sub_808E888(u16 a1); +static u32 sub_808E8C8(u16 a, s16 b, s16 c); +static void sub_808E978(u8 a); +static void sub_808EDB8(struct Sprite *sprite); +static void sub_808EE28(struct Sprite *sprite); +static u8 sub_808F210(struct PokedexListItem *, u8); +static bool8 sub_808F250(u8 taskId); +static u8 sub_808F284(struct PokedexListItem *, u8); +static void Task_InitPageScreenMultistep(u8 taskId); +static void Task_PageScreenProcessInput(u8 taskId); +static void sub_808F888(u8 taskId); +static void Task_ClosePageScreen(u8 taskId); +static void Task_InitAreaScreenMultistep(u8 taskId); +static void Task_AreaScreenProcessInput(u8 taskId); +static void sub_808FA00(u8 taskId); +static void Task_InitCryScreenMultistep(u8 taskId); +static void Task_CryScreenProcessInput(u8 taskId); +static void sub_808FFBC(u8 taskId); +static void sub_8090040(u8 a); +static void Task_InitSizeScreenMultistep(u8 taskId); +static void Task_SizeScreenProcessInput(u8 taskId); +static void sub_8090498(u8 taskId); +static void sub_80904FC(u16 a); +static void sub_8090540(u16 a); +static void sub_8090584(u8 a, u16 b); +static void sub_8090644(u8 a, u16 b); +static void sub_8090750(u8); +static void sub_8090A3C(u8); +static void sub_8090B8C(u8); +static void sub_8090C28(struct Sprite *); +static void sub_8090C68(void); +static void sub_8091060(u16); +static void sub_8091154(u16 order, u8, u8); +static u8 sub_80911C8(u16 num, u8, u8); +static u8 sub_8091260(u16 num, u8, u8, u8); +static void sub_8091304(const u8 *name, u8, u8); +static void sub_8091458(u16 height, u8 i, u8 i1); +static void sub_8091564(u16 weight, u8 i, u8 i1); +static void sub_8091738(u16, u16, u16); +static void sub_80917CC(u16 i, u16 i1); +static u16 sub_8091818(u8, u16, u16, u16); +static u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); +static u8 sub_8091A4C(u16 gender, s16, s16, u16); +static void sub_8091E54(u8); +static void sub_809204C(u8); +static void sub_809207C(u8); +static void sub_809217C(u8); +static void sub_80921B0(u8); +static void sub_80923FC(u8); +static void sub_80924A4(u8); +static void sub_8092508(u8); +static void sub_80925CC(u8); +static void sub_8092644(u8); +static void sub_80927B8(u8); +static void sub_80927F0(u8); +static void sub_8092AB0(u8); +static void sub_8092AD4(u8, u8); +static void sub_8092B68(u8); +static void sub_8092C8C(u8); +static void sub_8092D78(u8); +static u8 sub_8092E10(u8, u8); +static void sub_8092EB0(u8); +static void sub_809308C(u8); void ResetPokedex(void) { @@ -139,18 +1327,18 @@ void sub_808C0A0(void) gUnknown_0202FFBA = 0x40; } -void sub_808C0B8(void) +static void sub_808C0B8(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void ClearPokedexView(struct PokedexView *pokedexView) +static void ClearPokedexView(struct PokedexView *pokedexView) { u16 i; - for (i = 0; i <= 385; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { pokedexView->unk0[i].dexNum |= 0xFFFF; pokedexView->unk0[i].seen = 0; @@ -159,7 +1347,7 @@ void ClearPokedexView(struct PokedexView *pokedexView) pokedexView->unk608 = 0; pokedexView->unk60A_1 = 0; pokedexView->unk60A_2 = 0; - pokedexView->unk60C = 0; + pokedexView->pokemonListCount = 0; pokedexView->selectedPokemon = 0; pokedexView->unk610 = 0; pokedexView->dexMode = 0; @@ -203,30 +1391,30 @@ void CB2_InitPokedex(void) { case 0: default: - { - u8 *addr; - u32 size; + { + u8 *addr; + u32 size; - SetVBlankCallback(NULL); - sub_8091060(0); - addr = (u8 *)VRAM; - size = VRAM_SIZE; - while (1) - { - DmaFill16(3, 0, addr, 0x1000); - addr += 0x1000; - size -= 0x1000; - if (size <= 0x1000) + SetVBlankCallback(NULL); + sub_8091060(0); + addr = (u8 *)VRAM; + size = VRAM_SIZE; + while (1) { - DmaFill16(3, 0, addr, size); - break; + DmaFill16(3, 0, addr, 0x1000); + addr += 0x1000; + size -= 0x1000; + if (size <= 0x1000) + { + DmaFill16(3, 0, addr, size); + break; + } } + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); + gMain.state = 1; } - DmaClear32(3, OAM, OAM_SIZE); - DmaClear16(3, PLTT, PLTT_SIZE); - gMain.state = 1; break; - } case 1: remove_some_task(); ResetTasks(); @@ -264,7 +1452,7 @@ void CB2_InitPokedex(void) gPokedexView->selectedPokemon = gUnknown_0202FFB8; gPokedexView->unk62C = gUnknown_0202FFBA; gPokedexView->selectedScreen = PAGE_SCREEN; - gPokedexView->unk64E = 0; + gPokedexView->descriptionPageNum = 0; if (!IsNationalPokedexEnabled()) { gPokedexView->unk61A = GetHoennPokedexCount(0); @@ -279,19 +1467,20 @@ void CB2_InitPokedex(void) gMain.state++; break; case 3: - { - u16 savedIme; - - savedIme = REG_IME; - REG_IME = 0; - REG_IE |= 1; - REG_IME = savedIme; - REG_DISPSTAT |= 8; - SetVBlankCallback(sub_808C0B8); - SetMainCallback2(MainCB); - SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder); - m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80); - } + { + u16 savedIme; + + savedIme = REG_IME; + REG_IME = 0; + REG_IE |= 1; + REG_IME = savedIme; + REG_DISPSTAT |= 8; + SetVBlankCallback(sub_808C0B8); + SetMainCallback2(MainCB); + SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder); + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80); + } + break; } } @@ -320,7 +1509,7 @@ u8 unref_sub_808C540(void (*func)(u8)) return gTasks[taskId].data[0]; } -void MainCB(void) +static void MainCB(void) { RunTasks(); AnimateSprites(); @@ -328,13 +1517,11 @@ void MainCB(void) UpdatePaletteFade(); } -void Task_PokedexShowMainScreen(u8 taskId) +static void Task_PokedexShowMainScreen(u8 taskId) { gPokedexView->unk64C_1 = 0; if (sub_808D344(0)) - { gTasks[taskId].func = Task_PokedexMainScreen; - } } //Hide menu and process input on main screen @@ -351,9 +1538,9 @@ void Task_PokedexMainScreen(u8 taskId) { sub_808E6BC(); BeginNormalPaletteFade( - ~(1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)), + ~(1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16)), 0, 0, 0x10, 0); - gSprites[gPokedexView->unk626].callback = sub_808EDB8; + gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8; gTasks[taskId].func = sub_808CA64; PlaySE(SE_PIN); } @@ -395,16 +1582,14 @@ void Task_PokedexMainScreen(u8 taskId) } } -void sub_808C898(u8 taskId) +static void sub_808C898(u8 taskId) { if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636)) - { gTasks[taskId].func = Task_PokedexMainScreen; - } } //Bring up menu and process menu input -void Task_PokedexMainScreenMenu(u8 taskId) +static void Task_PokedexMainScreenMenu(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; @@ -429,8 +1614,8 @@ void Task_PokedexMainScreenMenu(u8 taskId) gMain.newKeys |= START_BUTTON; //Exit menu break; case 2: //LIST BOTTOM - gPokedexView->selectedPokemon = gPokedexView->unk60C - 1; - gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30; + gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1; + gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30; sub_808E82C(); sub_808E0CC(gPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu @@ -463,27 +1648,23 @@ void Task_PokedexMainScreenMenu(u8 taskId) } } -void sub_808CA64(u8 taskId) +static void sub_808CA64(u8 taskId) { - if (gSprites[gPokedexView->unk626].pos1.x == 0x30 && - gSprites[gPokedexView->unk626].pos1.y == 0x38) + if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48 + && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56) { gPokedexView->unk64B = gPokedexView->unk64A; - gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626); + gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId); gTasks[taskId].func = sub_808CAE4; } } -void sub_808CAE4(u8 taskId) +static void sub_808CAE4(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gPokedexView->unk64A == 1 && - !sub_808F250(gTasks[taskId].data[0]) && - sub_808E71C()) - { + if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C()) sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]); - } } else { @@ -493,13 +1674,13 @@ void sub_808CAE4(u8 taskId) } } -void sub_808CB8C(u8 taskId) +static void sub_808CB8C(u8 taskId) { bool8 isActive = gTasks[gTasks[taskId].data[0]].isActive; if (!isActive) { - if (gPokedexView->unk64F) + if (gPokedexView->unk64F != 0) { gPokedexView->selectedPokemon = isActive; gPokedexView->unk62C = 0x40; @@ -518,7 +1699,7 @@ void sub_808CB8C(u8 taskId) } } -void Task_ClosePokedex(u8 taskId) +static void Task_ClosePokedex(u8 taskId) { if (!gPaletteFade.active) { @@ -532,19 +1713,21 @@ void Task_ClosePokedex(u8 taskId) } } -void sub_808CCC4(u8 taskId) +static void sub_808CCC4(u8 taskId) { gPokedexView->unk64C_1 = 1; if (sub_808D344(3)) gTasks[taskId].func = Task_PokedexResultsScreen; } -void Task_PokedexResultsScreen(u8 taskId) +static void Task_PokedexResultsScreen(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; if (gPokedexView->menuY) + { gPokedexView->menuY -= 8; + } else { if ((gMain.newKeys & A_BUTTON) && gPokedexView->unk0[gPokedexView->selectedPokemon].seen) @@ -552,8 +1735,8 @@ void Task_PokedexResultsScreen(u8 taskId) u32 a; sub_808E6BC(); - a = (1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)); - gSprites[gPokedexView->unk626].callback = sub_808EDB8; + a = (1 << (gSprites[gPokedexView->selectedMonSpriteId].oam.paletteNum + 16)); + gSprites[gPokedexView->selectedMonSpriteId].callback = sub_808EDB8; BeginNormalPaletteFade(~a, 0, 0, 0x10, 0); gTasks[taskId].func = sub_808D118; PlaySE(SE_PIN); @@ -590,18 +1773,20 @@ void Task_PokedexResultsScreen(u8 taskId) } } -void sub_808CEF8(u8 taskId) +static void sub_808CEF8(u8 taskId) { if (sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636)) gTasks[taskId].func = Task_PokedexResultsScreen; } -void Task_PokedexResultsScreenMenu(u8 taskId) +static void Task_PokedexResultsScreenMenu(u8 taskId) { REG_BG0VOFS = gPokedexView->menuY; - if (gPokedexView->menuY != 0x60) + if (gPokedexView->menuY != 96) + { gPokedexView->menuY += 8; + } else { if (gMain.newKeys & A_BUTTON) @@ -620,8 +1805,8 @@ void Task_PokedexResultsScreenMenu(u8 taskId) gMain.newKeys |= START_BUTTON; break; case 2: //LIST BOTTOM - gPokedexView->selectedPokemon = gPokedexView->unk60C - 1; - gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30; + gPokedexView->selectedPokemon = gPokedexView->pokemonListCount - 1; + gPokedexView->unk62C = gPokedexView->pokemonListCount * 16 + 0x30; sub_808E82C(); sub_808E0CC(gPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; @@ -659,27 +1844,23 @@ void Task_PokedexResultsScreenMenu(u8 taskId) } } -void sub_808D118(u8 taskId) +static void sub_808D118(u8 taskId) { - if (gSprites[gPokedexView->unk626].pos1.x == 0x30 && - gSprites[gPokedexView->unk626].pos1.y == 0x38) + if (gSprites[gPokedexView->selectedMonSpriteId].pos1.x == 48 + && gSprites[gPokedexView->selectedMonSpriteId].pos1.y == 56) { gPokedexView->unk64B = gPokedexView->unk64A; - gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626); + gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->selectedMonSpriteId); gTasks[taskId].func = sub_808D198; } } -void sub_808D198(u8 taskId) +static void sub_808D198(u8 taskId) { if (gTasks[gTasks[taskId].data[0]].isActive) { - if (gPokedexView->unk64A == 1 && - !sub_808F250(gTasks[taskId].data[0]) && - sub_808E71C()) - { + if (gPokedexView->unk64A == 1 && !sub_808F250(gTasks[taskId].data[0]) && sub_808E71C()) sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]); - } } else { @@ -687,7 +1868,7 @@ void sub_808D198(u8 taskId) } } -void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) +static void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) { if (!gPaletteFade.active) { @@ -701,7 +1882,7 @@ void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId) } } -void Task_PokedexResultsScreenExitPokedex(u8 taskId) +static void Task_PokedexResultsScreenExitPokedex(u8 taskId) { if (!gPaletteFade.active) { @@ -715,8 +1896,7 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId) } } - -bool8 sub_808D344(u8 a) +static bool8 sub_808D344(u8 a) { switch (gMain.state) { @@ -724,7 +1904,6 @@ bool8 sub_808D344(u8 a) default: if (gPaletteFade.active) return 0; - //_0808D39E SetVBlankCallback(NULL); gPokedexView->unk64A = a; sub_8091060(0); @@ -749,7 +1928,7 @@ bool8 sub_808D344(u8 a) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&gUnknown_083A05CC); + LoadCompressedObjectPic(&gUnknown_083A05CC[0]); LoadSpritePalettes(gUnknown_083A05DC); sub_808E978(a); gMain.state++; @@ -793,30 +1972,29 @@ bool8 sub_808D344(u8 a) if (!gPaletteFade.active) { gMain.state = 0; - return 1; + return TRUE; } - else - return 0; + break; } - return 0; + return FALSE; } -void sub_808D640(void) +static void sub_808D640(void) { if (gPokedexView->unk64C_1) - LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE); + LoadPalette(sPokedexSearchPalette + 1, 1, sizeof(sPokedexSearchPalette) - sizeof(u16)); else if (!IsNationalPokedexEnabled()) - LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE); + LoadPalette(gPokedexMenu_Pal + 1, 1, 0xBE); else - LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE); + LoadPalette(sNationalPokedexPalette + 1, 1, sizeof(sNationalPokedexPalette) - sizeof(u16)); } -void SortPokedex(u8 dexMode, u8 sortMode) +static void SortPokedex(u8 dexMode, u8 sortMode) { u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever. s16 i; - gPokedexView->unk60C = 0; + gPokedexView->pokemonListCount = 0; switch (dexMode) { @@ -828,7 +2006,7 @@ void SortPokedex(u8 dexMode, u8 sortMode) case DEX_MODE_NATIONAL: if (IsNationalPokedexEnabled()) { - vars[0] = 386; + vars[0] = NATIONAL_DEX_COUNT; vars[1] = 0; } else @@ -842,7 +2020,6 @@ void SortPokedex(u8 dexMode, u8 sortMode) switch (sortMode) { case 0: - { if (vars[1]) { for (i = 0; i < vars[0]; i++) @@ -852,7 +2029,7 @@ void SortPokedex(u8 dexMode, u8 sortMode) gPokedexView->unk0[i].seen = GetNationalPokedexFlag(vars[2], 0); gPokedexView->unk0[i].owned = GetNationalPokedexFlag(vars[2], 1); if (gPokedexView->unk0[i].seen) - gPokedexView->unk60C = i + 1; + gPokedexView->pokemonListCount = i + 1; } } else @@ -873,13 +2050,12 @@ void SortPokedex(u8 dexMode, u8 sortMode) gPokedexView->unk0[r5].seen = GetNationalPokedexFlag(vars[2], 0); gPokedexView->unk0[r5].owned = GetNationalPokedexFlag(vars[2], 1); if (gPokedexView->unk0[r5].seen) - gPokedexView->unk60C = r5 + 1; + gPokedexView->pokemonListCount = r5 + 1; r5++; } } } break; - } case 1: for (i = 0; i < 411; i++) { @@ -887,71 +2063,72 @@ void SortPokedex(u8 dexMode, u8 sortMode) if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 0)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = GetNationalPokedexFlag(vars[2], 1); - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetNationalPokedexFlag(vars[2], 1); + gPokedexView->pokemonListCount++; } } break; case 2: - for (i = 385; i >= 0; i--) + for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { vars[2] = gPokedexOrder_Weight[i]; if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 3: - for (i = 0; i < 386; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { vars[2] = gPokedexOrder_Weight[i]; if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 4: - for (i = 385; i >=0; i--) + for (i = NATIONAL_DEX_COUNT - 1; i >=0; i--) { vars[2] = gPokedexOrder_Height[i]; if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; case 5: - for (i = 0; i < 386; i++) + for (i = 0; i < NATIONAL_DEX_COUNT; i++) { vars[2] = gPokedexOrder_Height[i]; if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1)) { - gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2]; - gPokedexView->unk0[gPokedexView->unk60C].seen = 1; - gPokedexView->unk0[gPokedexView->unk60C].owned = 1; - gPokedexView->unk60C++; + gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2]; + gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1; + gPokedexView->unk0[gPokedexView->pokemonListCount].owned = 1; + gPokedexView->pokemonListCount++; } } break; } - for (i = gPokedexView->unk60C; i < 386; i++) + + for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) { gPokedexView->unk0[i].dexNum |= 0xFFFF; gPokedexView->unk0[i].seen = 0; @@ -959,20 +2136,23 @@ void SortPokedex(u8 dexMode, u8 sortMode) } } -void sub_808DBE8(u8 a, u16 b, u16 c) +static void sub_808DBE8(u8 a, u16 b, u16 c) { + s16 _b; + u16 i; + u16 r2; + switch (a) { case 0: default: - { - u16 i; - s16 _b = b - 5; - + _b = b - 5; for (i = 0; i <= 10; i++) { - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) + { sub_808E090(0x11, i * 2, c); + } else { sub_808E090(0x11, i * 2, c); @@ -992,13 +2172,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c) _b++; } break; - } case 1: - { - s16 _b = b - 5; - - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + _b = b - 5; + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) + { sub_808E090(0x11, gPokedexView->unk630 * 2, c); + } else { sub_808E090(0x11, gPokedexView->unk630 * 2, c); @@ -1016,15 +2195,12 @@ void sub_808DBE8(u8 a, u16 b, u16 c) } } break; - } case 2: - { - s16 _b = b + 5; - u16 r2 = gPokedexView->unk630 + 10; - + _b = b + 5; + r2 = gPokedexView->unk630 + 10; if (r2 > 15) r2 -= 16; - if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF) + if (_b < 0 || _b >= NATIONAL_DEX_COUNT || gPokedexView->unk0[_b].dexNum == 0xFFFF) sub_808E090(0x11, r2 * 2, c); else { @@ -1044,10 +2220,9 @@ void sub_808DBE8(u8 a, u16 b, u16 c) } break; } - } } -void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) +static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) { u8 text[4]; u16 unk[2]; @@ -1057,16 +2232,16 @@ void sub_808DEB0(u16 a, u8 b, u8 c, u16 d) r7 = NationalToHoennOrder(r7); unk[0] = 0x3FC; unk[1] = 0x3FD; - text[0] = r7 / 100 + 0xA1; - text[1] = (r7 % 100) / 10 + 0xA1; - text[2] = (r7 % 100) % 10 + 0xA1; - text[3] = 0xFF; + text[0] = CHAR_0 + r7 / 100; + text[1] = CHAR_0 + (r7 % 100) / 10; + text[2] = CHAR_0 + (r7 % 100) % 10; + text[3] = EOS; *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; - *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; + *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1]; MenuPrint(text, b - 15, c); } -void sub_808DF88(u16 a, u8 b, u8 c, u16 d) +static void sub_808DF88(u16 a, u8 b, u8 c, u16 d) { u16 unk[2]; @@ -1081,152 +2256,57 @@ void sub_808DF88(u16 a, u8 b, u8 c, u16 d) unk[1] = 0; } *(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0]; - *(u16 *)(VRAM + 0x40 + d * 0x800 + c * 0x40 + b * 2) = unk[1]; + *(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1]; } -#ifdef NONMATCHING -//FixMe -u8 sub_808DFE4(u16 a, u8 b, u8 c) +static u8 sub_808DFE4(u16 num, u8 b, u8 c) { u8 text[10]; u8 i; - u32 species; for (i = 0; i < 10; i++) - text[i] = 0; + text[i] = CHAR_SPACE; text[i] = EOS; - species = NationalPokedexNumToSpecies(a); - if (species) - { - for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++) - text[i] = gSpeciesNames[species][i]; - } - else + + num = NationalPokedexNumToSpecies(num); + switch (num) { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + text[i] = gSpeciesNames[num][i]; + break; + case 0: for (i = 0; i < 10; i++) - text[i] = 0xAE; + text[i] = CHAR_HYPHEN; + break; } MenuPrint_PixelCoords(text, (b - 0x11) * 8 + 0xFC, c * 8, 0); + return i; } -#else -__attribute__((naked)) -u8 sub_808DFE4(u16 a, u8 b, u8 c) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0xC\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - lsls r1, 24\n\ - lsrs r5, r1, 24\n\ - lsls r2, 24\n\ - lsrs r6, r2, 24\n\ - movs r4, 0\n\ - movs r1, 0\n\ -_0808DFF8:\n\ - mov r2, sp\n\ - adds r0, r2, r4\n\ - strb r1, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x9\n\ - bls _0808DFF8\n\ - adds r0, r2, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ - adds r0, r3, 0\n\ - bl NationalPokedexNumToSpecies\n\ - adds r3, r0, 0\n\ - cmp r3, 0\n\ - beq _0808E058\n\ - movs r4, 0\n\ - ldr r2, _0808E054\n\ - movs r0, 0xB\n\ - adds r1, r3, 0\n\ - muls r1, r0\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - subs r5, 0x11\n\ - lsls r6, 19\n\ - cmp r0, 0xFF\n\ - beq _0808E070\n\ - adds r3, r1, 0\n\ -_0808E032:\n\ - mov r0, sp\n\ - adds r1, r0, r4\n\ - adds r0, r4, r3\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - strb r0, [r1]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - adds r0, r4, r3\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xFF\n\ - beq _0808E070\n\ - cmp r4, 0x9\n\ - bls _0808E032\n\ - b _0808E070\n\ - .align 2, 0\n\ -_0808E054: .4byte gSpeciesNames\n\ -_0808E058:\n\ - movs r4, 0\n\ - subs r5, 0x11\n\ - lsls r6, 19\n\ - movs r1, 0xAE\n\ -_0808E060:\n\ - mov r2, sp\n\ - adds r0, r2, r4\n\ - strb r1, [r0]\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x9\n\ - bls _0808E060\n\ -_0808E070:\n\ - lsls r1, r5, 27\n\ - movs r0, 0xFC\n\ - lsls r0, 24\n\ - adds r1, r0\n\ - lsrs r1, 24\n\ - lsrs r2, r6, 16\n\ - mov r0, sp\n\ - movs r3, 0\n\ - bl MenuPrint_PixelCoords\n\ - adds r0, r4, 0\n\ - add sp, 0xC\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .syntax divided\n"); -} -#endif -void sub_808E090(u8 a, u8 b, u16 c) +static void sub_808E090(u8 a, u8 b, u16 c) { u8 i; for (i = 0; i < 12; i++) { *(u16 *)(VRAM + c * 0x800 + b * 64 + (a + i) * 2) = 0; - *(u16 *)(VRAM + 0x40 + c * 0x800 + b * 64 + (a + i) * 2) = 0; + *(u16 *)(VRAM + c * 0x800 + (b + 1) * 64 + (a + i) * 2) = 0; } } -void sub_808E0CC(u16 a, u16 b) +static void sub_808E0CC(u16 a, u16 b) { u8 i; u16 unk; u8 spriteId; for (i = 0; i < 4; i++) - gPokedexView->unk61E[i] |= 0xFFFF; - gPokedexView->unk626 = 0xFFFF; + gPokedexView->unk61E[i] = 0xFFFF; + gPokedexView->selectedMonSpriteId = 0xFFFF; sub_808DBE8(0, a, b); REG_BG2VOFS = gPokedexView->unk62D; + unk = sub_808E888(a - 1); if (unk != 0xFFFF) { @@ -1234,6 +2314,7 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = -32; } + unk = sub_808E888(a); if (unk != 0xFFFF) { @@ -1241,6 +2322,7 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = 0; } + unk = sub_808E888(a + 1); if (unk != 0xFFFF) { @@ -1248,11 +2330,12 @@ void sub_808E0CC(u16 a, u16 b) gSprites[spriteId].callback = sub_808EE28; gSprites[spriteId].data5 = 32; } + gPokedexView->unk630 = 0; gPokedexView->unk632 = 0; } -bool8 sub_808E208(u8 a, u8 b, u8 c) +static bool8 sub_808E208(u8 a, u8 b, u8 c) { u16 i; u8 foo; @@ -1283,17 +2366,16 @@ bool8 sub_808E208(u8 a, u8 b, u8 c) gPokedexView->unk62C += gPokedexView->unk628; break; } - return 0; + return FALSE; } - //_0808E36C else { REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk630 * 16; - return 1; + return TRUE; } } -void sub_808E398(u8 a, u16 b) +static void sub_808E398(u8 a, u16 b) { u16 unk; u8 spriteId; @@ -1302,22 +2384,19 @@ void sub_808E398(u8 a, u16 b) switch (a) { case 1: - { unk = sub_808E888(b - 1); if (unk != 0xFFFF) { spriteId = sub_808E8C8(unk, 0x60, 0x50); gSprites[spriteId].callback = sub_808EE28; - gSprites[spriteId].data5 = 0xFFC0; + gSprites[spriteId].data5 = -64; } if (gPokedexView->unk630 > 0) gPokedexView->unk630--; else - gPokedexView->unk630 = 0xF; + gPokedexView->unk630 = 15; break; - } case 2: - { unk = sub_808E888(b + 1); if (unk != 0xFFFF) { @@ -1331,370 +2410,90 @@ void sub_808E398(u8 a, u16 b) gPokedexView->unk630 = 0; break; } - } } -#ifdef NONMATCHING -//This one's ridiculous. Fix later -u16 sub_808E48C(u16 a, u16 b) + +// Ugly, ugly, ugly. I couldn't get it to match otherwise. +static u16 sub_808E48C(u16 a, u16 b) { u8 r3; u8 r5; - u32 r10 = 0; - if (!(gMain.heldKeys & 0x40) || a == 0) - { - u8 i; - u16 r6; + u8 i; + u16 r6; + u8 r10 = 0; + if (!((gMain.heldKeys & 0x40) && (a > 0))) + { //_0808E4B6 - if (gMain.heldKeys & 0x80) - { - if (a < gPokedexView->unk60C - 1) - goto _0808E5C4; - } + if (!((gMain.heldKeys & 0x80) && (a < gPokedexView->pokemonListCount - 1))) //_0808E4CE - - if ((gMain.newKeys & 0x20) && a != 0) { - r6 = a; - //_0808E4E0 - for (i = 0; i < 7; i++) + if ((gMain.newKeys & 0x20) && (a > 0)) { - a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1); + r6 = a; + //_0808E4E0 + for (i = 0; i < 7; i++) + a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1); + gPokedexView->unk62C += 16 * (a - r6); + sub_808E82C(); + sub_808E0CC(a, 0xE); + PlaySE(0x6D); + } + //_0808E53C + else if ((gMain.newKeys & 0x10) && (a < gPokedexView->pokemonListCount - 1)) + { + r6 = a; + for (i = 0; i < 7; i++) + a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1); + gPokedexView->unk62C += (a - r6) * 16; + sub_808E82C(); + sub_808E0CC(a, 0xE); + PlaySE(0x6D); + } + _0808E5A2: + if (r10 == 0) + { + gPokedexView->unk638 = 0; + return a; } - - gPokedexView->unk62C += (a - r6) * 16; - sub_808E82C(); - sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); - goto _0808E5A2; } - //_0808E53C - if (!(gMain.newKeys & 0x10) || a >= gPokedexView->unk60C - 1) - goto _0808E5A2; - - r6 = a; - for (i = 0; i < 7; i++) + else { - a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1); + // to _0808E5C4 + r10 = 2; + a = sub_8091818(0, a, 0, gPokedexView->pokemonListCount - 1); + sub_808E398(2, a); + //goto _0808E60E + sub_808DBE8(2, a, b); + PlaySE(0x6C); + goto _0808E5A2; } - - gPokedexView->unk62C += (a - r6) * 16; - sub_808E82C(); - sub_808E0CC(a, 0xE); - PlaySE(SE_Z_PAGE); - goto _0808E5A2; - - _0808E5A2: - if (r10 != 0) - goto _0808E628; - gPokedexView->unk638 = r10; - return a; - - _0808E5C4: - r10 = 2; - a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1); - sub_808E398(2, a); - //goto _0808E60E - sub_808DBE8(2, a, b); - PlaySE(SE_Z_SCROLL); } - //_0808E5E4 else { + //to _0808E5E4 r10 = 1; - a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1); + a = sub_8091818(1, a, 0, gPokedexView->pokemonListCount - 1); sub_808E398(1, a); //_0808E60E sub_808DBE8(1, a, b); - PlaySE(SE_Z_SCROLL); + PlaySE(0x6C); + goto _0808E5A2; } - //_0808E60E - goto _0808E5A2; - - _0808E628: + //_0808E628 r5 = gUnknown_083A05EC[gPokedexView->unk638 / 4]; r3 = gUnknown_083A05F1[gPokedexView->unk638 / 4]; gPokedexView->unk62E = r3; gPokedexView->unk636 = r3; gPokedexView->unk634 = r5; gPokedexView->unk62F = r10; - gPokedexView->unk628 = r5; + gPokedexView->unk628 = r5 / 2; sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636); if (gPokedexView->unk638 <= 0xB) gPokedexView->unk638++; return a; } -#else -__attribute__((naked)) -u16 sub_808E48C(u16 a, u16 b) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - lsls r1, 16\n\ - lsrs r4, r1, 16\n\ - movs r0, 0\n\ - mov r10, r0\n\ - ldr r1, _0808E52C\n\ - ldrh r2, [r1, 0x2C]\n\ - movs r0, 0x40\n\ - ands r0, r2\n\ - adds r3, r1, 0\n\ - cmp r0, 0\n\ - beq _0808E4B6\n\ - cmp r7, 0\n\ - beq _0808E4B6\n\ - b _0808E5E4\n\ -_0808E4B6:\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0808E4CE\n\ - ldr r0, _0808E530\n\ - ldr r0, [r0]\n\ - ldr r1, _0808E534\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r7, r0\n\ - blt _0808E5C4\n\ -_0808E4CE:\n\ - ldrh r1, [r3, 0x2E]\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0808E53C\n\ - cmp r7, 0\n\ - beq _0808E53C\n\ - adds r6, r7, 0\n\ - movs r4, 0\n\ -_0808E4E0:\n\ - ldr r5, _0808E530\n\ - ldr r0, [r5]\n\ - ldr r2, _0808E534\n\ - adds r0, r2\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _0808E4E0\n\ - ldr r1, [r5]\n\ - ldr r3, _0808E538\n\ - adds r1, r3\n\ - subs r0, r7, r6\n\ - lsls r0, 4\n\ - ldrb r2, [r1]\n\ - adds r0, r2\n\ - strb r0, [r1]\n\ - bl sub_808E82C\n\ - adds r0, r7, 0\n\ - movs r1, 0xE\n\ - bl sub_808E0CC\n\ - movs r0, 0x6D\n\ - bl PlaySE\n\ - b _0808E5A2\n\ - .align 2, 0\n\ -_0808E52C: .4byte gMain\n\ -_0808E530: .4byte gPokedexView\n\ -_0808E534: .4byte 0x0000060c\n\ -_0808E538: .4byte 0x0000062c\n\ -_0808E53C:\n\ - ldrh r1, [r3, 0x2E]\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0808E5A2\n\ - ldr r0, _0808E5B8\n\ - ldr r0, [r0]\n\ - ldr r3, _0808E5BC\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r7, r0\n\ - bge _0808E5A2\n\ - adds r6, r7, 0\n\ - movs r4, 0\n\ -_0808E55A:\n\ - ldr r5, _0808E5B8\n\ - ldr r0, [r5]\n\ - ldr r1, _0808E5BC\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _0808E55A\n\ - ldr r1, [r5]\n\ - ldr r2, _0808E5C0\n\ - adds r1, r2\n\ - subs r0, r7, r6\n\ - lsls r0, 4\n\ - ldrb r3, [r1]\n\ - adds r0, r3\n\ - strb r0, [r1]\n\ - bl sub_808E82C\n\ - adds r0, r7, 0\n\ - movs r1, 0xE\n\ - bl sub_808E0CC\n\ - movs r0, 0x6D\n\ - bl PlaySE\n\ -_0808E5A2:\n\ - mov r0, r10\n\ - cmp r0, 0\n\ - bne _0808E628\n\ - ldr r0, _0808E5B8\n\ - ldr r0, [r0]\n\ - movs r1, 0xC7\n\ - lsls r1, 3\n\ - adds r0, r1\n\ - mov r2, r10\n\ - strh r2, [r0]\n\ - b _0808E68E\n\ - .align 2, 0\n\ -_0808E5B8: .4byte gPokedexView\n\ -_0808E5BC: .4byte 0x0000060c\n\ -_0808E5C0: .4byte 0x0000062c\n\ -_0808E5C4:\n\ - movs r3, 0x2\n\ - mov r10, r3\n\ - lsls r3, r0, 16\n\ - lsrs r3, 16\n\ - movs r0, 0\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - movs r0, 0x2\n\ - adds r1, r7, 0\n\ - bl sub_808E398\n\ - movs r0, 0x2\n\ - b _0808E60E\n\ -_0808E5E4:\n\ - movs r0, 0x1\n\ - mov r10, r0\n\ - ldr r0, _0808E620\n\ - ldr r0, [r0]\n\ - ldr r1, _0808E624\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - subs r3, 0x1\n\ - lsls r3, 16\n\ - lsrs r3, 16\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - movs r2, 0\n\ - bl sub_8091818\n\ - adds r7, r0, 0\n\ - movs r0, 0x1\n\ - adds r1, r7, 0\n\ - bl sub_808E398\n\ - movs r0, 0x1\n\ -_0808E60E:\n\ - adds r1, r7, 0\n\ - adds r2, r4, 0\n\ - bl sub_808DBE8\n\ - movs r0, 0x6C\n\ - bl PlaySE\n\ - b _0808E5A2\n\ - .align 2, 0\n\ -_0808E620: .4byte gPokedexView\n\ -_0808E624: .4byte 0x0000060c\n\ -_0808E628:\n\ - ldr r1, _0808E6A0\n\ - ldr r6, _0808E6A4\n\ - ldr r2, [r6]\n\ - movs r3, 0xC7\n\ - lsls r3, 3\n\ - mov r9, r3\n\ - adds r0, r2, r3\n\ - ldrh r0, [r0]\n\ - lsrs r0, 2\n\ - adds r1, r0, r1\n\ - ldrb r5, [r1]\n\ - ldr r1, _0808E6A8\n\ - adds r0, r1\n\ - ldrb r3, [r0]\n\ - ldr r0, _0808E6AC\n\ - adds r2, r0\n\ - strb r3, [r2]\n\ - ldr r1, [r6]\n\ - ldr r2, _0808E6B0\n\ - mov r8, r2\n\ - adds r0, r1, r2\n\ - strh r3, [r0]\n\ - ldr r4, _0808E6B4\n\ - adds r0, r1, r4\n\ - strh r5, [r0]\n\ - ldr r3, _0808E6B8\n\ - adds r1, r3\n\ - mov r0, r10\n\ - strb r0, [r1]\n\ - ldr r2, [r6]\n\ - lsrs r5, 1\n\ - movs r1, 0xC5\n\ - lsls r1, 3\n\ - adds r0, r2, r1\n\ - strh r5, [r0]\n\ - adds r3, r2, r3\n\ - ldrb r0, [r3]\n\ - adds r4, r2, r4\n\ - ldrb r1, [r4]\n\ - add r2, r8\n\ - ldrb r2, [r2]\n\ - bl sub_808E208\n\ - ldr r0, [r6]\n\ - mov r2, r9\n\ - adds r1, r0, r2\n\ - ldrh r0, [r1]\n\ - cmp r0, 0xB\n\ - bhi _0808E68E\n\ - adds r0, 0x1\n\ - strh r0, [r1]\n\ -_0808E68E:\n\ - adds r0, r7, 0\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ -_0808E6A0: .4byte gUnknown_083A05EC\n\ -_0808E6A4: .4byte gPokedexView\n\ -_0808E6A8: .4byte gUnknown_083A05F1\n\ -_0808E6AC: .4byte 0x0000062e\n\ -_0808E6B0: .4byte 0x00000636\n\ -_0808E6B4: .4byte 0x00000634\n\ -_0808E6B8: .4byte 0x0000062f\n\ - .syntax divided\n"); -} -#endif -void sub_808E6BC(void) +static void sub_808E6BC(void) { u16 i; @@ -1703,11 +2502,11 @@ void sub_808E6BC(void) u16 spriteId = gPokedexView->unk61E[i]; if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF) - gPokedexView->unk626 = spriteId; + gPokedexView->selectedMonSpriteId = spriteId; } } -u8 sub_808E71C(void) +static u8 sub_808E71C(void) { u16 r2; u16 r4 = gPokedexView->selectedPokemon; @@ -1717,7 +2516,7 @@ u8 sub_808E71C(void) r2 = r4; while (r2 != 0) { - r2 = sub_8091818(1, r2, 0, gPokedexView->unk60C - 1); + r2 = sub_8091818(1, r2, 0, gPokedexView->pokemonListCount - 1); if (gPokedexView->unk0[r2].seen) { @@ -1735,12 +2534,12 @@ u8 sub_808E71C(void) return 1; } } - else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->unk60C - 1) + else if ((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->pokemonListCount - 1) { r2 = r4; - while (r2 < gPokedexView->unk60C - 1) + while (r2 < gPokedexView->pokemonListCount - 1) { - r2 = sub_8091818(0, r2, 0, gPokedexView->unk60C - 1); + r2 = sub_8091818(0, r2, 0, gPokedexView->pokemonListCount - 1); if (gPokedexView->unk0[r2].seen) { @@ -1761,7 +2560,7 @@ u8 sub_808E71C(void) return 0; } -u8 sub_808E82C(void) +static u8 sub_808E82C(void) { u16 i; @@ -1776,9 +2575,9 @@ u8 sub_808E82C(void) return 0; } -u16 sub_808E888(u16 a1) +static u16 sub_808E888(u16 a1) { - if (a1 > 385 || gPokedexView->unk0[a1].dexNum == 0xFFFF) + if (a1 >= NATIONAL_DEX_COUNT || gPokedexView->unk0[a1].dexNum == 0xFFFF) return 0xFFFF; else if (gPokedexView->unk0[a1].seen) return gPokedexView->unk0[a1].dexNum; @@ -1786,7 +2585,7 @@ u16 sub_808E888(u16 a1) return 0; } -u32 sub_808E8C8(u16 a, u16 b, u16 c) +static u32 sub_808E8C8(u16 a, s16 b, s16 c) { u8 i; @@ -1794,7 +2593,7 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c) { if (gPokedexView->unk61E[i] == 0xFFFF) { - u8 spriteId = sub_80918EC(a, (s16)b, (s16)c, i); + u8 spriteId = sub_80918EC(a, b, c, i); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.priority = 3; @@ -1808,38 +2607,38 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c) return 0xFFFF; } -void sub_808E978(u8 a) +static void sub_808E978(u8 a) { u8 spriteId; u16 r5; - spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 4, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0); gSprites[spriteId].data1 = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A053C, 0xB8, 0x9C, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 156, 0); gSprites[spriteId].data1 = 1; - gSprites[spriteId].vFlip = 1; + gSprites[spriteId].vFlip = TRUE; - CreateSprite(&gSpriteTemplate_83A0524, 0xEA, 0x14, 0); - CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x8A, 0); + CreateSprite(&gSpriteTemplate_83A0524, 234, 20, 0); + CreateSprite(&gSpriteTemplate_83A0554, 16, 138, 0); - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x8A, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 138, 0); StartSpriteAnim(&gSprites[spriteId], 3); - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x10, 0x9E, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 16, 158, 0); StartSpriteAnim(&gSprites[spriteId], 2); gSprites[spriteId].data2 = 0x80; - spriteId = CreateSprite(&gSpriteTemplate_83A0554, 0x30, 0x9E, 0); + spriteId = CreateSprite(&gSpriteTemplate_83A0554, 48, 158, 0); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 30; gSprites[spriteId].data0 = 0x1E; gSprites[spriteId].data1 = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 0x50, 2); + spriteId = CreateSprite(&gSpriteTemplate_83A056C, 0, 80, 2); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 31; gSprites[spriteId].data0 = 0x1F; @@ -1849,95 +2648,97 @@ void sub_808E978(u8 a) { u32 _a; - CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x28, 1); + CreateSprite(&gSpriteTemplate_83A0584, 32, 40, 1); - spriteId = CreateSprite(&gSpriteTemplate_83A0584, 0x20, 0x48, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A0584, 32, 72, 1); StartSpriteAnim(&gSprites[spriteId], 1); _a = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 48, 1); r5 = gPokedexView->unk61A / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 48, 1); r5 = (gPokedexView->unk61A % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x30, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 48, 1); r5 = (gPokedexView->unk61A % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); _a = 0; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 28, 80, 1); r5 = gPokedexView->unk61C / 100; StartSpriteAnim(&gSprites[spriteId], r5); if (r5 != 0) _a = 1; else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 34, 80, 1); r5 = (gPokedexView->unk61C % 100) / 10; if (r5 != 0 || _a != 0) StartSpriteAnim(&gSprites[spriteId], r5); else - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; - spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x50, 1); + spriteId = CreateSprite(&gSpriteTemplate_83A059C, 40, 80, 1); r5 = (gPokedexView->unk61C % 100) % 10; StartSpriteAnim(&gSprites[spriteId], r5); - spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x60, 1); - gSprites[spriteId].invisible = 1; + spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 96, 1); + gSprites[spriteId].invisible = TRUE; } else { - spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x50, 1); - gSprites[spriteId].invisible = 1; + spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 140, 80, 1); + gSprites[spriteId].invisible = TRUE; } } -void nullsub_58(struct Sprite *sprite) +static void nullsub_58(struct Sprite *sprite) { } -void sub_808ED94(struct Sprite *sprite) +static void sub_808ED94(struct Sprite *sprite) { if (gPokedexView->unk64A != 0) DestroySprite(sprite); } //Move Pokemon into position for description page -void sub_808EDB8(struct Sprite *sprite) +static void sub_808EDB8(struct Sprite *sprite) { sprite->oam.priority = 0; sprite->oam.affineMode = 0; sprite->pos2.x = 0; sprite->pos2.y = 0; - if (sprite->pos1.x != 0x30 || sprite->pos1.y != 0x38) + if (sprite->pos1.x != 48 || sprite->pos1.y != 56) { - if (sprite->pos1.x > 0x30) + if (sprite->pos1.x > 48) sprite->pos1.x--; - if (sprite->pos1.x < 0x30) + if (sprite->pos1.x < 48) sprite->pos1.x++; - if (sprite->pos1.y > 0x38) + + if (sprite->pos1.y > 56) sprite->pos1.y--; - if (sprite->pos1.y <0x38) + if (sprite->pos1.y < 56) sprite->pos1.y++; } - //_0808EE1C else + { sprite->callback = nullsub_58; + } } -void sub_808EE28(struct Sprite *sprite) +static void sub_808EE28(struct Sprite *sprite) { u8 data1 = sprite->data1; @@ -1948,223 +2749,132 @@ void sub_808EE28(struct Sprite *sprite) } else { - //_0808EE58 - s32 var; + u32 var; sprite->pos2.y = gSineTable[(u8)sprite->data5] * 76 / 256; var = 0x10000 / gSineTable[sprite->data5 + 0x40]; - if ((u32)var > 0xFFFF) + if (var > 0xFFFF) var = 0xFFFF; SetOamMatrix(sprite->data1 + 1, 0x100, 0, 0, var); sprite->oam.matrixNum = data1 + 1; - //ToDo: clean up these inequalities - if ((u16)(sprite->data5 + 0x3F) <= 0x7E) + if (sprite->data5 > -64 && sprite->data5 < 64) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->data0 = 1; } else { - sprite->invisible = 1; + sprite->invisible = TRUE; } - //_0808EEF8 - if ((u16)(sprite->data5 + 0x3F) > 0x7E && sprite->data0 != 0) + + if ((sprite->data5 <= -64 || sprite->data5 >= 64) && sprite->data0 != 0) { DestroySprite(sprite); gPokedexView->unk61E[data1] = 0xFFFF; } } - //_0808EF16 } -void sub_808EF38(struct Sprite *sprite) +static void sub_808EF38(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) DestroySprite(sprite); else - sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->unk60C - 1); + sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->pokemonListCount - 1); } -void sub_808EF8C(struct Sprite *sprite) +static void sub_808EF8C(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { u8 r0; if (sprite->data1 != 0) { - if (gPokedexView->selectedPokemon == gPokedexView->unk60C - 1) - sprite->invisible = 1; + if (gPokedexView->selectedPokemon == gPokedexView->pokemonListCount - 1) + sprite->invisible = TRUE; else - sprite->invisible = 0; + sprite->invisible = FALSE; r0 = sprite->data2; } else { if (gPokedexView->selectedPokemon == 0) - sprite->invisible = 1; + sprite->invisible = TRUE; else - sprite->invisible = 0; - r0 = sprite->data2 - 0x80; + sprite->invisible = FALSE; + r0 = sprite->data2 - 128; } sprite->pos2.y = gSineTable[r0] / 64; sprite->data2 = sprite->data2 + 8; if (gPokedexView->menuIsOpen == 0 && gPokedexView->menuY == 0 && sprite->invisible == 0) - sprite->invisible = 0; + sprite->invisible = FALSE; else - sprite->invisible = 1; + sprite->invisible = TRUE; } } -void sub_808F08C(struct Sprite *sprite) +static void sub_808F08C(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) DestroySprite(sprite); } -#ifdef NONMATCHING -void sub_808F0B4(struct Sprite *sprite) +static void sub_808F0B4(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { + u8 val; s16 r3; + s16 r0; - u8 unk = gPokedexView->unk62C + sprite->data1; - u16 foo = gSineTable[unk]; - //u8 unk2 = sprite->data0; - //u16 bar = gSineTable[unk + 0x40]; + val = gPokedexView->unk62C + sprite->data1; + r3 = gSineTable[val]; + r0 = gSineTable[val + 0x40]; + SetOamMatrix(sprite->data0, r0, r3, -r3, r0); - SetOamMatrix(sprite->data0, foo, gSineTable[unk + 0x40], (-(u16)foo) >> 16, gSineTable[unk + 0x40]); - - r3 = gSineTable[sprite->data1 + gPokedexView->unk62C]; - sprite->pos2.x = gSineTable[sprite->data1 + gPokedexView->unk62C + 0x40] * 5 / 256; + val = gPokedexView->unk62C + (sprite->data1 + 0x40); + r3 = gSineTable[val]; + r0 = gSineTable[val + 0x40]; + sprite->pos2.x = r0 * 40 / 256; sprite->pos2.y = r3 * 40 / 256; } } -#else -__attribute__((naked)) -void sub_808F0B4(struct Sprite *sprite) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - adds r6, r0, 0\n\ - ldr r1, _0808F0D8 @ =gPokedexView\n\ - ldr r0, [r1]\n\ - ldr r2, _0808F0DC @ =0x0000064a\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - adds r7, r1, 0\n\ - cmp r0, 0\n\ - beq _0808F0E0\n\ - cmp r0, 0x3\n\ - beq _0808F0E0\n\ - adds r0, r6, 0\n\ - bl DestroySprite\n\ - b _0808F158\n\ - .align 2, 0\n\ -_0808F0D8: .4byte gPokedexView\n\ -_0808F0DC: .4byte 0x0000064a\n\ -_0808F0E0:\n\ - ldr r0, [r7]\n\ - ldr r5, _0808F160 @ =0x0000062c\n\ - adds r0, r5\n\ - ldrb r1, [r0]\n\ - ldrh r0, [r6, 0x30]\n\ - adds r1, r0\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - ldr r4, _0808F164 @ =gSineTable\n\ - lsls r0, r1, 1\n\ - adds r0, r4\n\ - ldrh r3, [r0]\n\ - adds r1, 0x40\n\ - lsls r1, 1\n\ - adds r1, r4\n\ - ldrh r0, [r6, 0x2E]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldrh r1, [r1]\n\ - lsls r3, 16\n\ - lsrs r2, r3, 16\n\ - negs r3, r3\n\ - lsrs r3, 16\n\ - str r1, [sp]\n\ - bl SetOamMatrix\n\ - ldr r1, [r7]\n\ - adds r1, r5\n\ - ldrh r0, [r6, 0x30]\n\ - adds r0, 0x40\n\ - ldrb r1, [r1]\n\ - adds r0, r1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, r0, 1\n\ - adds r1, r4\n\ - ldrh r3, [r1]\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - adds r0, r4\n\ - movs r2, 0\n\ - ldrsh r1, [r0, r2]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - cmp r0, 0\n\ - bge _0808F140\n\ - adds r0, 0xFF\n\ -_0808F140:\n\ - asrs r0, 8\n\ - strh r0, [r6, 0x24]\n\ - lsls r1, r3, 16\n\ - asrs r1, 16\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - cmp r0, 0\n\ - bge _0808F154\n\ - adds r0, 0xFF\n\ -_0808F154:\n\ - asrs r0, 8\n\ - strh r0, [r6, 0x26]\n\ -_0808F158:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0808F160: .4byte 0x0000062c\n\ -_0808F164: .4byte gSineTable\n\ - .syntax divided\n"); -} -#endif -void sub_808F168(struct Sprite *sprite) +static void sub_808F168(struct Sprite *sprite) { if (gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3) + { DestroySprite(sprite); + } else { - u16 r1 = gPokedexView->unk64A == 0 ? 0x50 : 0x60; + u16 r1 = gPokedexView->unk64A == 0 ? 80 : 96; if (gPokedexView->menuIsOpen != 0 && gPokedexView->menuY == r1) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->pos2.y = gPokedexView->menuCursorPos * 16; sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64; sprite->data2 += 8; } else - sprite->invisible = 1; + { + sprite->invisible = TRUE; + } } } -u8 sub_808F210(struct PokedexListItem *item, u8 b) +static u8 sub_808F210(struct PokedexListItem *item, u8 b) { u8 taskId; @@ -2178,15 +2888,15 @@ u8 sub_808F210(struct PokedexListItem *item, u8 b) return taskId; } -bool8 sub_808F250(u8 taskId) +static bool8 sub_808F250(u8 taskId) { if (gTasks[taskId].data[0] == 0 && gTasks[taskId].func == Task_PageScreenProcessInput) - return 0; + return FALSE; else - return 1; + return TRUE; } -u8 sub_808F284(struct PokedexListItem *item, u8 b) +static u8 sub_808F284(struct PokedexListItem *item, u8 b) { gUnknown_0202FFBC = item; gTasks[b].data[0] = 1; @@ -2196,7 +2906,7 @@ u8 sub_808F284(struct PokedexListItem *item, u8 b) return b; } -void Task_InitPageScreenMultistep(u8 taskId) +static void Task_InitPageScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2207,7 +2917,7 @@ void Task_InitPageScreenMultistep(u8 taskId) u16 r2; gPokedexView->unk64A = 1; - gPokedexView->unk64E = 0; + gPokedexView->descriptionPageNum = 0; gUnknown_03005CEC = gMain.vblankCallback; SetVBlankCallback(NULL); r2 = 0; @@ -2241,7 +2951,6 @@ void Task_InitPageScreenMultistep(u8 taskId) sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3); else sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3); - //_0808F45A sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3); MenuPrint(gDexText_UnknownPoke, 11, 5); MenuPrint(gDexText_UnknownHeight, 16, 7); @@ -2254,7 +2963,6 @@ void Task_InitPageScreenMultistep(u8 taskId) MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13); sub_80917CC(14, 0x3FC); } - //_0808F50C else { MenuPrint(gUnknown_083A05F8, 2, 13); @@ -2265,27 +2973,24 @@ void Task_InitPageScreenMultistep(u8 taskId) case 5: if (gTasks[taskId].data[1] == 0) { - //_0808F540 gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0); gSprites[gTasks[taskId].data[4]].oam.priority = 0; } gMain.state++; break; case 6: - { - u32 r3 = 0; - - if (gTasks[taskId].data[2] != 0) - r3 = 0x14; - if (gTasks[taskId].data[1] != 0) { - r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10)); + u32 r3 = 0; + + if (gTasks[taskId].data[2] != 0) + r3 = 0x14; + if (gTasks[taskId].data[1] != 0) + r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 16)); + BeginNormalPaletteFade(~r3, 0, 16, 0, 0); + SetVBlankCallback(gUnknown_03005CEC); + gMain.state++; } - BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0); - SetVBlankCallback(gUnknown_03005CEC); - gMain.state++; break; - } case 7: REG_BLDCNT = 0; REG_BLDALPHA = 0; @@ -2305,7 +3010,9 @@ void Task_InitPageScreenMultistep(u8 taskId) PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA); } else + { gMain.state++; + } } break; case 9: @@ -2323,21 +3030,23 @@ void Task_InitPageScreenMultistep(u8 taskId) } } -void Task_PageScreenProcessInput(u8 taskId) +static void Task_PageScreenProcessInput(u8 taskId) { if (gTasks[taskId].data[0] != 0) { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = sub_808F888; PlaySE(SE_Z_SCROLL); + return; } - else if (gMain.newKeys & B_BUTTON) + if (gMain.newKeys & B_BUTTON) { - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); gTasks[taskId].func = Task_ClosePageScreen; PlaySE(SE_PC_OFF); + return; } - else if (gMain.newKeys & A_BUTTON) + if (gMain.newKeys & A_BUTTON) { switch (gPokedexView->selectedScreen) { @@ -2356,7 +3065,9 @@ void Task_PageScreenProcessInput(u8 taskId) break; case SIZE_SCREEN: if (!gUnknown_0202FFBC->owned) + { PlaySE(SE_HAZURE); + } else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2365,38 +3076,41 @@ void Task_PageScreenProcessInput(u8 taskId) } break; } + return; } - else if (((gMain.newKeys & DPAD_LEFT) + if (((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) && gPokedexView->selectedScreen > 0) { gPokedexView->selectedScreen--; sub_8090584(gPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); + return; } - else if (((gMain.newKeys & DPAD_RIGHT) + if (((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) && gPokedexView->selectedScreen < 3) { gPokedexView->selectedScreen++; sub_8090584(gPokedexView->selectedScreen, 0xD); PlaySE(SE_Z_PAGE); + return; } } -void sub_808F888(u8 taskId) +static void sub_808F888(u8 taskId) { if (!gPaletteFade.active) gTasks[taskId].func = Task_InitPageScreenMultistep; } -void Task_ClosePageScreen(u8 taskId) +static void Task_ClosePageScreen(u8 taskId) { if (!gPaletteFade.active) DestroyTask(taskId); } -void Task_InitAreaScreenMultistep(u8 taskId) +static void Task_InitAreaScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2429,13 +3143,13 @@ void Task_InitAreaScreenMultistep(u8 taskId) } } -void Task_AreaScreenProcessInput(u8 taskId) +static void Task_AreaScreenProcessInput(u8 taskId) { if (gPokedexView->unk64F != 0) gTasks[taskId].func = sub_808FA00; } -void sub_808FA00(u8 taskId) +static void sub_808FA00(u8 taskId) { if (!gPaletteFade.active) { @@ -2452,7 +3166,7 @@ void sub_808FA00(u8 taskId) } } -void Task_InitCryScreenMultistep(u8 taskId) +static void Task_InitCryScreenMultistep(u8 taskId) { switch (gMain.state) { @@ -2499,36 +3213,34 @@ void Task_InitCryScreenMultistep(u8 taskId) gMain.state++; break; case 6: - { - struct CryRelatedStruct sp8; - - sp8.unk0 = 0x4020; - sp8.unk2 = 0x1F; - sp8.paletteNo = 8; - sp8.yPos = 0x1E; - sp8.xPos = 0xC; - if (sub_8119E3C(&sp8, 0) != 0) { - gMain.state++; - gUnknown_03005E98 = 0; + struct CryRelatedStruct sp8; + + sp8.unk0 = 0x4020; + sp8.unk2 = 0x1F; + sp8.paletteNo = 8; + sp8.yPos = 0x1E; + sp8.xPos = 0xC; + if (sub_8119E3C(&sp8, 0) != 0) + { + gMain.state++; + gUnknown_03005E98 = 0; + } } break; - } case 7: - { - struct CryRelatedStruct sp10; - - sp10.unk0 = 0x3000; - sp10.unk2 = 0xE; - sp10.paletteNo = 9; - sp10.xPos = 0x12; - sp10.yPos = 3; - if (ShowPokedexCryScreen(&sp10, 1) != 0) { - gMain.state++; + struct CryRelatedStruct sp10; + + sp10.unk0 = 0x3000; + sp10.unk2 = 0xE; + sp10.paletteNo = 9; + sp10.xPos = 0x12; + sp10.yPos = 3; + if (ShowPokedexCryScreen(&sp10, 1) != 0) + gMain.state++; } break; - } case 8: BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0); SetVBlankCallback(gUnknown_03005CEC); @@ -2552,7 +3264,7 @@ void Task_InitCryScreenMultistep(u8 taskId) } } -void Task_CryScreenProcessInput(u8 taskId) +static void Task_CryScreenProcessInput(u8 taskId) { sub_8119F88(0); @@ -2576,8 +3288,9 @@ void Task_CryScreenProcessInput(u8 taskId) gPokedexView->unk64F = 1; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_PC_OFF); + return; } - else if ((gMain.newKeys & DPAD_LEFT) + if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2585,12 +3298,15 @@ void Task_CryScreenProcessInput(u8 taskId) gPokedexView->unk64F = 2; gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); + return; } - else if ((gMain.newKeys & DPAD_RIGHT) + if ((gMain.newKeys & DPAD_RIGHT) || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { if (!gUnknown_0202FFBC->owned) + { PlaySE(SE_HAZURE); + } else { BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0); @@ -2599,11 +3315,12 @@ void Task_CryScreenProcessInput(u8 taskId) gTasks[taskId].func = sub_808FFBC; PlaySE(SE_Z_PAGE); } + return; } } } -void sub_808FFBC(u8 taskId) +static void sub_808FFBC(u8 taskId) { if (!gPaletteFade.active) { @@ -2619,11 +3336,12 @@ void sub_808FFBC(u8 taskId) break; case 3: gTasks[taskId].func = Task_InitSizeScreenMultistep; + break; } } } -void sub_8090040(u8 a) +static void sub_8090040(u8 a) { u16 unk; @@ -2634,7 +3352,7 @@ void sub_8090040(u8 a) LoadPalette(&unk, 0x5D, 2); } -void Task_InitSizeScreenMultistep(u8 taskId) +static void Task_InitSizeScreenMultistep(u8 taskId) { u8 spriteId; @@ -2664,40 +3382,40 @@ void Task_InitSizeScreenMultistep(u8 taskId) gMain.state++; break; case 3: - { - u8 string[40]; //I hope this is the correct size - - SetUpWindowConfig(&gWindowConfig_81E702C); - InitMenuWindow(&gWindowConfig_81E702C); - string[0] = EOS; - StringAppend(string, gDexText_SizeComparedTo); - StringAppend(string, gSaveBlock2.playerName); - sub_8072BD8(string, 3, 15, 0xC0); - gMain.state++; + { + u8 string[40]; //I hope this is the correct size + + SetUpWindowConfig(&gWindowConfig_81E702C); + InitMenuWindow(&gWindowConfig_81E702C); + string[0] = EOS; + StringAppend(string, gDexText_SizeComparedTo); + StringAppend(string, gSaveBlock2.playerName); + sub_8072BD8(string, 3, 15, 0xC0); + gMain.state++; + } break; - } case 4: ResetPaletteFade(); gMain.state++; break; case 5: - spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0); + spriteId = sub_8091A4C(gSaveBlock2.playerGender, 152, 56, 0); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset; SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale); - LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4)); gMain.state++; break; case 6: - spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1); + spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 88, 56, 1); gSprites[spriteId].oam.affineMode = 1; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset; SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale); - LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20); + LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, sizeof(gUnknown_083B4EC4)); gMain.state++; break; case 7: @@ -2724,7 +3442,7 @@ void Task_InitSizeScreenMultistep(u8 taskId) } } -void Task_SizeScreenProcessInput(u8 taskId) +static void Task_SizeScreenProcessInput(u8 taskId) { if (gMain.newKeys & B_BUTTON) { @@ -2733,7 +3451,6 @@ void Task_SizeScreenProcessInput(u8 taskId) gTasks[taskId].func = sub_8090498; PlaySE(SE_PC_OFF); } - //_08090430 else if ((gMain.newKeys & DPAD_LEFT) || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)) { @@ -2744,7 +3461,7 @@ void Task_SizeScreenProcessInput(u8 taskId) } } -void sub_8090498(u8 taskId) +static void sub_8090498(u8 taskId) { if (!gPaletteFade.active) { @@ -2761,20 +3478,20 @@ void sub_8090498(u8 taskId) } } -void sub_80904FC(u16 a) +static void sub_80904FC(u16 a) { LZ77UnCompVram(gUnknown_08E96ACC, (void *)(VRAM + a * 0x800)); DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440); } -void sub_8090540(u16 a) +static void sub_8090540(u16 a) { LZ77UnCompVram(gUnknown_08E96B58, (void *)(VRAM + a * 0x800)); DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440); } #ifdef NONMATCHING -void sub_8090584(u8 a, u16 b) +static void sub_8090584(u8 a, u16 b) { u8 i; //r1 u8 j; //r3 @@ -2814,7 +3531,7 @@ void sub_8090584(u8 a, u16 b) } #else __attribute__((naked)) -void sub_8090584(u8 a, u16 b) +static void sub_8090584(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -2920,7 +3637,7 @@ _08090640: .4byte 0x06000072\n\ //Nope, can't get this one to match, either. #ifdef NONMATCHING -void sub_8090644(u8 a, u16 b) +static void sub_8090644(u8 a, u16 b) { u8 i; u8 j; @@ -2958,7 +3675,7 @@ void sub_8090644(u8 a, u16 b) } #else __attribute__((naked)) -void sub_8090644(u8 a, u16 b) +static void sub_8090644(u8 a, u16 b) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -3081,15 +3798,16 @@ u8 sub_809070C(u16 dexNum, u32 b, u32 c) return taskId; } -/* -void sub_8090750(u8 taskId) +static void sub_8090750(u8 taskId) { + u8 spriteId; u16 dexNum = gTasks[taskId].data[1]; + u16 i; switch (gTasks[taskId].data[0]) { - default: case 0: + default: if (!gPaletteFade.active) { gUnknown_03005CEC = gMain.vblankCallback; @@ -3099,19 +3817,20 @@ void sub_8090750(u8 taskId) } break; case 1: - { - u16 i; - LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000)); LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800)); for (i = 0; i < 0x280; i++) - ((u16 *)(VRAM + 0x7800))[i] += 0x2000; + { +#ifndef NONMATCHING + asm(""); +#endif + *(u16 *)(VRAM + 0x7800 + 2 * i) += 0x2000; + } sub_8091738(gTasks[taskId].data[1], 2, 0x3FC); ResetPaletteFade(); - LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E); + LoadPalette(gPokedexMenu_Pal + 1, 0x21, 0x9E); gTasks[taskId].data[0]++; break; - } case 2: SetUpWindowConfig(&gWindowConfig_81E7064); InitMenuWindow(&gWindowConfig_81E7064); @@ -3128,7 +3847,7 @@ void sub_8090750(u8 taskId) MenuPrint(gDexText_UnknownPoke, 11, 5); MenuPrint(gDexText_UnknownHeight, 16, 7); MenuPrint(gDexText_UnknownWeight, 16, 9); - sub_8091304(&gPokedexEntries[dexNum], 11, 5); + sub_8091304(gPokedexEntries[dexNum].categoryName, 11, 5); sub_8091458(gPokedexEntries[dexNum].height, 16, 7); sub_8091564(gPokedexEntries[dexNum].weight, 16, 9); MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13); @@ -3136,16 +3855,13 @@ void sub_8090750(u8 taskId) gTasks[taskId].data[0]++; break; case 4: - { - u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0); - + spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0); gSprites[spriteId].oam.priority = 0; BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); SetVBlankCallback(gUnknown_03005CEC); gTasks[taskId].data[3] = spriteId; gTasks[taskId].data[0]++; break; - } case 5: REG_BLDCNT = 0; REG_BLDALPHA = 0; @@ -3165,4 +3881,1586 @@ void sub_8090750(u8 taskId) break; } } -*/ + +static void sub_8090A3C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0); + gSprites[gTasks[taskId].data[3]].callback = sub_8090C28; + gTasks[taskId].func = sub_8090B8C; + return; + } + else if (gMain.newKeys & A_BUTTON) + { + if (gTasks[taskId].data[4] == 0) + { + u16 r4 = gTasks[taskId].data[1]; + + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[r4].descriptionPage2, 2, 13); + (*(u16 *)(VRAM + 0x7ACA))++; + (*(u16 *)(VRAM + 0x7B0A))++; + gTasks[taskId].data[4] = 1; + PlaySE(SE_PIN); + } + else + { + BeginNormalPaletteFade(0x0000FFFC, 0, 0, 16, 0); + gSprites[gTasks[taskId].data[3]].callback = sub_8090C28; + gTasks[taskId].func = sub_8090B8C; + return; + } + } + gTasks[taskId].data[2]++; + if (gTasks[taskId].data[2] & 0x10) + LoadPalette(gPokedexMenu_Pal + 1, 0x51, 14); + else + LoadPalette(gPokedexMenu2_Pal + 1, 0x51, 14); +} + +static void sub_8090B8C(u8 taskId) +{ + if (!gPaletteFade.active) + { + u16 species; + u32 otId; + u32 personality; + u8 paletteNum; + const u16 *palette; + + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON; + CpuCopy16(gUnknown_08D00524, (void *)(VRAM + 0xC000), 0x1000); + sub_800D74C(); + species = NationalPokedexNumToSpecies(gTasks[taskId].data[1]); + otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12]; + personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14]; + paletteNum = gSprites[gTasks[taskId].data[3]].oam.paletteNum; + palette = species_and_otid_get_pal(species, otId, personality); + LoadCompressedPalette(palette, 0x100 | paletteNum * 16, 32); + DestroyTask(taskId); + } +} + +static void sub_8090C28(struct Sprite *sprite) +{ + if (sprite->pos1.x < 0x78) + sprite->pos1.x += 2; + if (sprite->pos1.x > 0x78) + sprite->pos1.x -= 2; + + if (sprite->pos1.y < 0x50) + sprite->pos1.y += 1; + if (sprite->pos1.y > 0x50) + sprite->pos1.y -= 1; +} + +static void sub_8090C68(void) +{ + if (gUnknown_0202FFBC->owned) + { + if (gPokedexView->descriptionPageNum == 0) + { + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage2, 2, 13); + gPokedexView->descriptionPageNum = 1; + (*(u16 *)(VRAM + 0x7ACA))++; + (*(u16 *)(VRAM + 0x7B0A))++; + PlaySE(SE_PIN); + } + else + { + MenuZeroFillWindowRect(2, 13, 27, 19); + MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13); + gPokedexView->descriptionPageNum = 0; + (*(u16 *)(VRAM + 0x7ACA))--; + (*(u16 *)(VRAM + 0x7B0A))--; + PlaySE(SE_PIN); + } + } +} + +const u8 *GetPokemonCategory(u16 dexNum) +{ + return gPokedexEntries[dexNum].categoryName; +} + +u16 GetPokedexHeightWeight(u16 dexNum, u8 data) +{ + switch (data) + { + case 0: // height + return gPokedexEntries[dexNum].height; + case 1: // weight + return gPokedexEntries[dexNum].weight; + default: + return 1; + } +} + +s8 GetNationalPokedexFlag(u16 a, u8 b) +{ + u8 index; + u8 bit; + u8 mask; + s8 retVal; + + a--; + index = a / 8; + bit = a % 8; + mask = 1 << bit; + retVal = 0; + switch (b) + { + case 0: + if (gSaveBlock2.pokedex.seen[index] & mask) + { + if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk938[index] & mask) + && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask)) + retVal = 1; + else + { + gSaveBlock2.pokedex.seen[index] &= ~mask; + gSaveBlock1.unk938[index] &= ~mask; + gSaveBlock1.unk3A8C[index] &= ~mask; + retVal = 0; + } + } + break; + case 1: + if (gSaveBlock2.pokedex.owned[index] & mask) + { + if ((gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock2.pokedex.seen[index] & mask) + && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk938[index] & mask) + && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask)) + retVal = 1; + else + { + gSaveBlock2.pokedex.owned[index] &= ~mask; + gSaveBlock2.pokedex.seen[index] &= ~mask; + gSaveBlock1.unk938[index] &= ~mask; + gSaveBlock1.unk3A8C[index] &= ~mask; + retVal = 0; + } + } + break; + case 2: + gSaveBlock2.pokedex.seen[index] |= mask; + gSaveBlock1.unk938[index] |= mask; + gSaveBlock1.unk3A8C[index] |= mask; + break; + case 3: + gSaveBlock2.pokedex.owned[index] |= mask; + break; + } + return retVal; +} + +u16 GetNationalPokedexCount(u8 a) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < NATIONAL_DEX_COUNT; i++) + { + switch (a) + { + case 0: + if (GetNationalPokedexFlag(i + 1, 0) != 0) + count++; + break; + case 1: + if (GetNationalPokedexFlag(i + 1, 1) != 0) + count++; + break; + } + } + return count; +} + +u16 GetHoennPokedexCount(u8 a) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < 202; i++) + { + switch (a) + { + case 0: + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 0) != 0) + count++; + break; + case 1: + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) != 0) + count++; + break; + } + } + return count; +} + +bool8 sub_8090FC0(void) +{ + u16 i; + + for (i = 0; i < 200; i++) + { + if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) == 0) + return FALSE; + } + return TRUE; +} + +u16 sub_8090FF4(void) +{ + u16 i; + + for (i = 0; i < 150; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + for (i = 152; i < 250; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + for (i = 252; i < 384; i++) + { + if (GetNationalPokedexFlag(i + 1, 1) == 0) + return 0; + } + return 1; +} + +static void sub_8091060(u16 a) +{ + if (!(a & 0x100)) + { + REG_DISPCNT &= 0xFEFF; + REG_BG0CNT = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + } + if (!(a & 0x200)) + { + REG_DISPCNT &= 0xFDFF; + REG_BG1CNT = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + } + if (!(a & 0x400)) + { + REG_DISPCNT &= 0xFBFF; + REG_BG2CNT = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + } + if (!(a & 0x800)) + { + REG_DISPCNT &= 0xF7FF; + REG_BG3CNT = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + } + if (!(a & 0x1000)) + { + REG_DISPCNT &= 0xEFFF; + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + } +} + +static void sub_8091154(u16 order, u8 b, u8 c) +{ + u8 str[4]; + + str[0] = CHAR_0 + order / 100; + str[1] = CHAR_0 + (order % 100) / 10; + str[2] = CHAR_0 + (order % 100) % 10; + str[3] = EOS; + MenuPrint(str, b, c); +} + +static u8 sub_80911C8(u16 num, u8 b, u8 c) +{ + u8 str[11]; + u8 i; + + for (i = 0; i < 11; i++) + str[i] = EOS; + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + str[i] = gSpeciesNames[num][i]; + break; + case 0: + for (i = 0; i < 10; i++) + str[i] = 0xAE; + break; + } + MenuPrint(str, b, c); + return i; +} + +static u8 sub_8091260(u16 num, u8 b, u8 c, u8 d) +{ + u8 str[40]; + u8 *end; + u8 i; + + end = StringCopy(str, gUnknown_083B5558); + str[2] = d; + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + for (i = 0; gSpeciesNames[num][i] != EOS && i < 10; i++) + end[i] = gSpeciesNames[num][i]; + break; + case 0: + for (i = 0; i < 10; i++) + end[i] = 0xAE; + break; + } + end[i] = EOS; + MenuPrint(str, b, c); + return i; +} + +static void sub_8091304(const u8 *name, u8 left, u8 top) +{ + u8 str[32]; + u8 i; +#if ENGLISH + u8 j; +#endif + + for (i = 0; name[i] != EOS && i < 11; i++) + str[i] = name[i]; +#if ENGLISH + for (j = 0; gDexText_UnknownPoke[j] == 0xAC || gDexText_UnknownPoke[j] == 0; j++) + ; + j--; + while (gDexText_UnknownPoke[j] != EOS) + str[i++] = gDexText_UnknownPoke[j++]; +#endif + str[i] = EOS; + sub_8072B80(str, left, top, gDexText_UnknownPoke); +} + +void unref_sub_80913A4(u16 a, u8 left, u8 top) +{ + u8 str[6]; + bool8 outputted = FALSE; + u8 result; + + result = a / 1000; + if (result == 0) + { + str[0] = CHAR_SPACE; + outputted = FALSE; + } + else + { + str[0] = CHAR_0 + result; + outputted = TRUE; + } + + result = (a % 1000) / 100; + if (result == 0 && !outputted) + { + str[1] = CHAR_SPACE; + outputted = FALSE; + } + else + { + str[1] = CHAR_0 + result; + outputted = TRUE; + } + + str[2] = CHAR_0 + ((a % 1000) % 100) / 10; + str[3] = CHAR_PERIOD; + str[4] = CHAR_0 + ((a % 1000) % 100) % 10; + str[5] = EOS; + MenuPrint(str, left, top); +} + +#ifdef UNITS_IMPERIAL +#define CHAR_PRIME (0xB4) +#define CHAR_DOUBLE_PRIME (0xB2) +static void sub_8091458(u16 height, u8 left, u8 top) +{ + u8 buffer[16]; + u32 inches, feet; + u8 i = 0; + + inches = (height * 10000) / 254; + if (inches % 10 >= 5) + inches += 10; + feet = inches / 120; + inches = (inches - (feet * 120)) / 10; + + buffer[i++] = EXT_CTRL_CODE_BEGIN; + buffer[i++] = 0x13; + if (feet / 10 == 0) + { + buffer[i++] = 18; + buffer[i++] = feet + CHAR_0; + } + else + { + buffer[i++] = 12; + buffer[i++] = feet / 10 + CHAR_0; + buffer[i++] = (feet % 10) + CHAR_0; + } + buffer[i++] = CHAR_PRIME; + buffer[i++] = (inches / 10) + CHAR_0; + buffer[i++] = (inches % 10) + CHAR_0; + buffer[i++] = CHAR_DOUBLE_PRIME; + buffer[i++] = EOS; + MenuPrint(buffer, left, top); +} +#else +static void sub_8091458(u16 height, u8 left, u8 top) +{ + unref_sub_80913A4(height, left, top); +} +#endif + +#ifdef UNITS_IMPERIAL +static void sub_8091564(u16 weight, u8 left, u8 top) +{ + u8 buffer[16]; + u32 lbs; + u8 i = 0; + bool8 output; + + lbs = (weight * 100000) / 4536; + if (lbs % 10 >= 5) + lbs += 10; + output = FALSE; + + buffer[i] = (lbs / 100000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + + lbs = (lbs % 100000); + buffer[i] = (lbs / 10000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + + lbs = (lbs % 10000); + buffer[i] = (lbs / 1000) + CHAR_0; + if (buffer[i] == CHAR_0 && output == FALSE) + { + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_SPACE; + } + else + { + output = TRUE; + i++; + } + lbs = (lbs % 1000); + buffer[i++] = (lbs / 100) + CHAR_0; + lbs = (lbs % 100); + buffer[i++] = CHAR_PERIOD; + buffer[i++] = (lbs / 10) + CHAR_0; + buffer[i++] = CHAR_SPACE; + buffer[i++] = CHAR_l; + buffer[i++] = CHAR_b; + buffer[i++] = CHAR_s; + buffer[i++] = CHAR_PERIOD; + buffer[i++] = EOS; + MenuPrint(buffer, left, top); +} +#else +static void sub_8091564(u16 arg0, u8 left, u8 top) +{ + unref_sub_80913A4(arg0, left, top); +} +#endif + +static void sub_8091738(u16 num, u16 b, u16 c) +{ + u8 arr[0x80]; + u16 i; + u16 j; + const u8 *r12; + u16 r7; + u8 r3; + + r12 = sMonFootprintTable[NationalPokedexNumToSpecies(num)]; + for (r7 = 0, i = 0; i < 32; i++) + { + r3 = r12[i]; + for (j = 0; j < 4; j++) + { + u32 r1 = j * 2; + s32 r2 = (r3 >> r1) & 1; + + if (r3 & (2 << r1)) + r2 |= 0x10; + +// Needed to match +#ifndef NONMATCHING + asm("");asm("");asm("");asm("");asm(""); +#endif + + arr[r7] = r2; + r7++; + } + } + CpuCopy16(arr, (u16 *)(VRAM + b * 0x4000 + c * 0x20), 0x80); +} + +static void sub_80917CC(u16 a, u16 b) +{ + *(u16 *)(VRAM + a * 0x800 + 0x232) = 0xF000 + b + 0; + *(u16 *)(VRAM + a * 0x800 + 0x234) = 0xF000 + b + 1; + *(u16 *)(VRAM + a * 0x800 + 0x272) = 0xF000 + b + 2; + *(u16 *)(VRAM + a * 0x800 + 0x274) = 0xF000 + b + 3; +} + +static u16 sub_8091818(u8 a, u16 b, u16 c, u16 d) +{ + switch (a) + { + case 1: + if (b > c) + b--; + break; + case 0: + if (b < d) + b++; + break; + case 3: + if (b > c) + b--; + else + b = d; + break; + case 2: + if (b < d) + b++; + else + b = c; + break; + } + return b; +} + +static void nullsub_59(struct Sprite *sprite) +{ +} + +static void sub_8091878(u16 a, u8 b) +{ + gUnknown_02024E8C = gUnknown_083B57A4; + gUnknown_02024E8C.paletteTag = a; + gUnknown_02024E8C.images = gUnknown_083B5794[b]; + gUnknown_02024E8C.anims = gSpriteAnimTable_81E7C64; +} + +static void sub_80918B0(u16 a, u8 b) +{ + gUnknown_02024E8C = gUnknown_083B57A4; + gUnknown_02024E8C.paletteTag = a; + gUnknown_02024E8C.images = gUnknown_083B5794[b]; + gUnknown_02024E8C.anims = gUnknown_081EC2A4[0]; +} + +u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum) +{ + u8 spriteId; + + num = NationalPokedexNumToSpecies(num); + switch (num) + { + default: + DecompressPicFromTable_2( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + (void *)0x02000000, + gUnknown_083B5584[paletteNum], + num); + break; + case SPECIES_SPINDA: + LoadSpecialPokePic( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + 0x02000000, + gUnknown_083B5584[paletteNum], + num, + gSaveBlock2.pokedex.spindaPersonality, + 1); + break; + case SPECIES_UNOWN: + LoadSpecialPokePic( + &gMonFrontPicTable[num], + gMonFrontPicCoords[num].coords, + gMonFrontPicCoords[num].y_offset, + 0x02000000, + gUnknown_083B5584[paletteNum], + num, + gSaveBlock2.pokedex.unownPersonality, + 1); + break; + } + LoadCompressedPalette(gMonPaletteTable[num].data, 0x100 + paletteNum * 16, 32); + sub_8091878(paletteNum, paletteNum); + spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); + gSprites[spriteId].oam.paletteNum = paletteNum; + return spriteId; +} + +static u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum) +{ + u8 spriteId; + + DecompressPicFromTable_2( + &gTrainerFrontPicTable[gender], + gTrainerFrontPicCoords[gender].coords, + gTrainerFrontPicCoords[gender].y_offset, + (void *)0x02000000, + gUnknown_083B5584[0], + gender); + sub_80918B0(gender, 0); + spriteId = CreateSprite(&gUnknown_02024E8C, x, y, 0); + gSprites[spriteId].oam.paletteNum = paletteNum; + return spriteId; +} + +int sub_8091AF8(u8 a, u8 b, u8 abcGroup, u8 bodyColor, u8 type1, u8 type2) +{ + u16 species; + u16 i; + u16 resultsCount; + u8 types[2]; + + SortPokedex(a, b); + + for (i = 0, resultsCount = 0; i < NATIONAL_DEX_COUNT; i++) + { + if (gPokedexView->unk0[i].seen) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + + // Search by name + if (abcGroup != 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + u8 r3; + + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + r3 = gSpeciesNames[species][0]; + if ((r3 >= gUnknown_083B57BC[abcGroup][0] && r3 < gUnknown_083B57BC[abcGroup][0] + gUnknown_083B57BC[abcGroup][1]) + || (r3 >= gUnknown_083B57BC[abcGroup][2] && r3 < gUnknown_083B57BC[abcGroup][2] + gUnknown_083B57BC[abcGroup][3])) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + // Search by body color + if (bodyColor != 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + if (bodyColor == gBaseStats[species].bodyColor) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + // Search by type + if (type1 != 0xFF || type2 != 0xFF) + { + if (type1 == 0xFF) + { + type1 = type2; + type2 = 0xFF; + } + + if (type2 == 0xFF) + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + if (gPokedexView->unk0[i].owned) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + types[0] = gBaseStats[species].type1; + types[1] = gBaseStats[species].type2; + if (types[0] == type1 || types[1] == type1) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + } + } + else + { + for (i = 0, resultsCount = 0; i < gPokedexView->pokemonListCount; i++) + { + if (gPokedexView->unk0[i].owned) + { + species = NationalPokedexNumToSpecies(gPokedexView->unk0[i].dexNum); + + types[0] = gBaseStats[species].type1; + types[1] = gBaseStats[species].type2; + if ((types[0] == type1 && types[1] == type2) || (types[0] == type2 && types[1] == type1)) + { + gPokedexView->unk0[resultsCount] = gPokedexView->unk0[i]; + resultsCount++; + } + } + } + } + gPokedexView->pokemonListCount = resultsCount; + } + + if (gPokedexView->pokemonListCount != 0) + { + for (i = gPokedexView->pokemonListCount; i < NATIONAL_DEX_COUNT; i++) + { + gPokedexView->unk0[i].dexNum = 0xFFFF; + gPokedexView->unk0[i].seen = FALSE; + gPokedexView->unk0[i].owned = FALSE; + + } + } + + return resultsCount; +} + +void sub_8091E20(const u8 *str) +{ + sub_8072AB0(str, 9, 120, 208, 32, 1); +} + +u8 sub_8091E3C(void) +{ + return CreateTask(sub_8091E54, 0); +} + +static void sub_8091E54(u8 taskId) +{ + u16 i; + + switch (gMain.state) + { + default: + case 0: + if (!gPaletteFade.active) + { + gPokedexView->unk64A = 2; + sub_8091060(0); + LZ77UnCompVram(gPokedexMenuSearch_Gfx, (void *)VRAM); + LZ77UnCompVram(gUnknown_08E96D2C, (void *)(VRAM + 0x7800)); + LoadPalette(gPokedexMenuSearch_Pal + 1, 1, 0x7E); + if (!IsNationalPokedexEnabled()) + { + for (i = 0; i < 17; i++) + { + ((u16 *)(VRAM + 0x7A80))[i] = ((u16 *)(VRAM + 0x7B00))[i]; + ((u16 *)(VRAM + 0x7AC0))[i] = ((u16 *)(VRAM + 0x7B40))[i]; + ((u16 *)(VRAM + 0x7B00))[i] = 1; + ((u16 *)(VRAM + 0x7B40))[i] = 1; + } + } + gMain.state = 1; + } + break; + case 1: + SetUpWindowConfig(&gWindowConfig_81E7064); + InitMenuWindow(&gWindowConfig_81E7064); + LoadCompressedObjectPic(&gUnknown_083A05CC[0]); + LoadSpritePalettes(gUnknown_083A05DC); + sub_809308C(taskId); + for (i = 0; i < 16; i++) + gTasks[taskId].data[i] = 0; + sub_8092EB0(taskId); + sub_8092AB0(0); + sub_8092B68(taskId); + gMain.state++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gMain.state++; + break; + case 3: + REG_BG3CNT = 0x0F03; + REG_DISPCNT = 0x1C40; + gMain.state++; + break; + case 4: + if (!gPaletteFade.active) + { + gTasks[taskId].func = sub_809204C; + gMain.state = 0; + } + break; + } +} + +static void sub_809204C(u8 taskId) +{ + sub_8092AB0(gTasks[taskId].data[0]); + sub_8092B68(taskId); + gTasks[taskId].func = sub_809207C; +} + +static void sub_809207C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + return; + } + if (gMain.newKeys & A_BUTTON) + { + switch (gTasks[taskId].data[0]) + { + case 0: + PlaySE(SE_PIN); + gTasks[taskId].data[1] = 0; + gTasks[taskId].func = sub_809217C; + break; + case 1: + PlaySE(SE_PIN); + gTasks[taskId].data[1] = 4; + gTasks[taskId].func = sub_809217C; + break; + case 2: + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + break; + } + return; + } + if ((gMain.newKeys & DPAD_LEFT) && gTasks[taskId].data[0] > 0) + { + PlaySE(SE_Z_PAGE); + gTasks[taskId].data[0]--; + sub_8092AB0(gTasks[taskId].data[0]); + } + if ((gMain.newKeys & DPAD_RIGHT) && gTasks[taskId].data[0] < 2) + { + PlaySE(SE_Z_PAGE); + gTasks[taskId].data[0]++; + sub_8092AB0(gTasks[taskId].data[0]); + } +} + +static void sub_809217C(u8 taskId) +{ + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + sub_8092B68(taskId); + gTasks[taskId].func = sub_80921B0; +} + +static void sub_80921B0(u8 taskId) +{ + const u8 (*r6)[4]; + + if (gTasks[taskId].data[0] != 0) + { + if (!IsNationalPokedexEnabled()) + r6 = gUnknown_083B58A4; + else + r6 = gUnknown_083B586C; + } + else + { + if (!IsNationalPokedexEnabled()) + r6 = gUnknown_083B5888; + else + r6 = gUnknown_083B5850; + } + + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_BOWA); + sub_8092EB0(taskId); + gTasks[taskId].func = sub_809204C; + return; + } + if (gMain.newKeys & A_BUTTON) + { + if (gTasks[taskId].data[1] == 6) + { + if (gTasks[taskId].data[0] != 0) + { + gUnknown_0202FFBA = 0x40; + gPokedexView->unk62A = 0x40; + gUnknown_0202FFB8 = 0; + gPokedexView->unk610 = 0; + gSaveBlock2.pokedex.unknown1 = sub_8092E10(taskId, 5); + if (!IsNationalPokedexEnabled()) + gSaveBlock2.pokedex.unknown1 = 0; + gPokedexView->unk614 = gSaveBlock2.pokedex.unknown1; + gSaveBlock2.pokedex.order = sub_8092E10(taskId, 4); + gPokedexView->unk618 = gSaveBlock2.pokedex.order; + PlaySE(SE_PC_OFF); + gTasks[taskId].func = sub_80927B8; + } + else + { + sub_8091E20(gDexText_Searching); + gTasks[taskId].func = sub_80923FC; + PlaySE(SE_Z_SEARCH); + } + } + else + { + PlaySE(SE_PIN); + gTasks[taskId].func = sub_80925CC; + } + return; + } + + if ((gMain.newKeys & DPAD_LEFT) && r6[gTasks[taskId].data[1]][0] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][0]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_RIGHT) && r6[gTasks[taskId].data[1]][1] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][1]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_UP) && r6[gTasks[taskId].data[1]][2] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][2]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } + if ((gMain.newKeys & DPAD_DOWN) && r6[gTasks[taskId].data[1]][3] != 0xFF) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = r6[gTasks[taskId].data[1]][3]; + sub_8092AD4(gTasks[taskId].data[0], gTasks[taskId].data[1]); + } +} + +static void sub_80923FC(u8 taskId) +{ + u8 r10 = sub_8092E10(taskId, 5); + u8 r9 = sub_8092E10(taskId, 4); + u8 r8 = sub_8092E10(taskId, 0); + u8 r6 = sub_8092E10(taskId, 1); + u8 r4 = sub_8092E10(taskId, 2); + u8 r0 = sub_8092E10(taskId, 3); + + sub_8091AF8(r10, r9, r8, r6, r4, r0); + gTasks[taskId].func = sub_80924A4; +} + +static void sub_80924A4(u8 taskId) +{ + if (!IsSEPlaying()) + { + if (gPokedexView->pokemonListCount != 0) + { + PlaySE(SE_SEIKAI); + sub_8091E20(gDexText_SearchComplete); + } + else + { + PlaySE(SE_HAZURE); + sub_8091E20(gDexText_NoMatching); + } + gTasks[taskId].func = sub_8092508; + } +} + +static void sub_8092508(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + if (gPokedexView->pokemonListCount != 0) + { + gPokedexView->unk64F = 1; + gPokedexView->dexMode = sub_8092E10(taskId, 5); + gPokedexView->dexOrder = sub_8092E10(taskId, 4); + gTasks[taskId].func = sub_80927B8; + PlaySE(SE_PC_OFF); + } + else + { + gTasks[taskId].func = sub_809217C; + PlaySE(SE_BOWA); + } + } +} + +static void sub_80925B4(u16 a, int unused) +{ + sub_814AD7C(0x90, (a * 2 + 1) * 8); +} + +static void sub_80925CC(u8 taskId) +{ + u8 r0; + u16 *p1; + u16 *p2; + + sub_8092C8C(0); + r0 = gTasks[taskId].data[1]; + p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk4]; + p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r0].unk5]; + gTasks[taskId].data[14] = *p1; + gTasks[taskId].data[15] = *p2; + sub_8092D78(taskId); + CreateBlendedOutlineCursor(16, 0xFFFF, 12, 0x2D9F, 11); + sub_80925B4(*p1, 1); + gTasks[taskId].func = sub_8092644; +} + +static void sub_8092644(u8 taskId) +{ + u8 r1; + const struct UnknownStruct2 *r8; + u16 *p1; + u16 *p2; + u16 r2; + bool8 r3; + + r1 = gTasks[taskId].data[1]; + r8 = gUnknown_083B5A7C[r1].unk0; + p1 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk4]; + p2 = &gTasks[taskId].data[gUnknown_083B5A7C[r1].unk5]; + r2 = gUnknown_083B5A7C[r1].unk6 - 1; + if (gMain.newKeys & A_BUTTON) + { + sub_814ADC8(); + PlaySE(SE_PIN); + MenuZeroFillWindowRect(18, 1, 28, 12); + sub_8092C8C(1); + gTasks[taskId].func = sub_809217C; + return; + } + if (gMain.newKeys & B_BUTTON) + { + sub_814ADC8(); + PlaySE(SE_BOWA); + MenuZeroFillWindowRect(18, 1, 28, 12); + sub_8092C8C(1); + *p1 = gTasks[taskId].data[14]; + *p2 = gTasks[taskId].data[15]; + gTasks[taskId].func = sub_809217C; + return; + } + r3 = FALSE; + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (*p1 != 0) + { + sub_80925B4(*p1, 0); + (*p1)--; + sub_80925B4(*p1, 1); + r3 = TRUE; + } + else if (*p2 != 0) + { + (*p2)--; + sub_8092D78(taskId); + sub_80925B4(*p1, 1); + r3 = TRUE; + } + if (r3) + { + PlaySE(SE_SELECT); + sub_8091E20(r8[*p1 + *p2].text1); + } + return; + } + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (*p1 < 5 && *p1 < r2) + { + sub_80925B4(*p1, 0); + (*p1)++; + sub_80925B4(*p1, 1); + r3 = TRUE; + } + else if (r2 > 5 && *p2 < r2 - 5) + { + (*p2)++; + sub_8092D78(taskId); + sub_80925B4(5, 1); + r3 = TRUE; + } + if (r3) + { + PlaySE(SE_SELECT); + sub_8091E20(r8[*p1 + *p2].text1); + } + return; + } +} + +static void sub_80927B8(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_80927F0; +} + +static void sub_80927F0(u8 taskId) +{ + if (!gPaletteFade.active) + DestroyTask(taskId); +} + +#ifdef NONMATCHING +void sub_8092810(u8 a, u8 b, u8 c, u8 d) +{ + u16 i; + + for (i = 0; i < d; i++) + { + ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] &= 0xFFF; + ((u16 *)VRAM)[15 * 0x400 + c * 32 + i + b] |= a << 12; + + ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] &= 0xFFF; + ((u16 *)VRAM)[15 * 0x400 + (c + 1) * 32 + i + b] |= a << 12; + } +} +#else +__attribute__((naked)) +void sub_8092810(u8 a, u8 b, u8 c, u8 d) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r12, r1\n\ + lsls r2, 24\n\ + lsrs r1, r2, 24\n\ + lsls r3, 24\n\ + lsrs r5, r3, 8\n\ + movs r3, 0\n\ + cmp r5, 0\n\ + beq _0809285A\n\ + lsls r7, r1, 6\n\ + ldr r6, _08092860 @ =0x00000fff\n\ + lsls r4, r0, 12\n\ +_08092830:\n\ + mov r0, r12\n\ + adds r1, r0, r3\n\ + lsls r1, 1\n\ + adds r1, r7, r1\n\ + ldr r0, _08092864 @ =0x06007800\n\ + adds r2, r1, r0\n\ + ldrh r0, [r2]\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strh r0, [r2]\n\ + ldr r0, _08092868 @ =0x06007840\n\ + adds r1, r0\n\ + ldrh r0, [r1]\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strh r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r0, r5\n\ + bcc _08092830\n\ +_0809285A:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08092860: .4byte 0x00000fff\n\ +_08092864: .4byte 0x06007800\n\ +_08092868: .4byte 0x06007840\n\ + .syntax divided\n"); +} +#endif + +static void sub_809286C(u8 a, u8 b, u8 c) +{ + u8 r5 = (b & 1) | ((c & 1) << 1); + + switch (a) + { + case 0: + case 1: + case 2: + sub_8092810(r5, gUnknown_083B57E4[a].unk4, gUnknown_083B57E4[a].unk5, gUnknown_083B57E4[a].unk6); + break; + case 3: + case 4: + case 7: + case 8: + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6); + // fall through + case 5: + case 6: + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk7, gUnknown_083B57FC[a - 3].unk8, gUnknown_083B57FC[a - 3].unk9); + break; + case 10: + sub_8092810(r5, gUnknown_083B57FC[2].unk4, gUnknown_083B57FC[2].unk5, gUnknown_083B57FC[2].unk6); + break; + case 9: + if (!IsNationalPokedexEnabled()) + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5 - 2, gUnknown_083B57FC[a - 3].unk6); + else + sub_8092810(r5, gUnknown_083B57FC[a - 3].unk4, gUnknown_083B57FC[a - 3].unk5, gUnknown_083B57FC[a - 3].unk6); + break; + } +} + +static void sub_8092964(u8 a) +{ + switch (a) + { + case 0: + sub_809286C(0, 0, 0); + sub_809286C(1, 1, 0); + sub_809286C(2, 1, 0); + sub_809286C(3, 1, 0); + sub_809286C(4, 1, 0); + sub_809286C(10, 1, 0); + sub_809286C(5, 1, 0); + sub_809286C(6, 1, 0); + sub_809286C(7, 1, 0); + sub_809286C(8, 1, 0); + sub_809286C(9, 1, 0); + break; + case 1: + sub_809286C(0, 1, 0); + sub_809286C(1, 0, 0); + sub_809286C(2, 1, 0); + sub_809286C(3, 1, 1); + sub_809286C(4, 1, 1); + sub_809286C(10, 1, 1); + sub_809286C(5, 1, 1); + sub_809286C(6, 1, 1); + sub_809286C(7, 1, 0); + sub_809286C(8, 1, 0); + sub_809286C(9, 1, 0); + break; + case 2: + sub_809286C(0, 1, 0); + sub_809286C(1, 1, 0); + sub_809286C(2, 0, 0); + sub_809286C(3, 1, 1); + sub_809286C(4, 1, 1); + sub_809286C(10, 1, 1); + sub_809286C(5, 1, 1); + sub_809286C(6, 1, 1); + sub_809286C(7, 1, 1); + sub_809286C(8, 1, 1); + sub_809286C(9, 1, 1); + break; + } +} + +static void sub_8092AB0(u8 a) +{ + sub_8092964(a); + sub_8091E20(gUnknown_083B57E4[a].text); +} + +static void sub_8092AD4(u8 a, u8 b) +{ + sub_8092964(a); + switch (b) + { + case 0: + sub_809286C(3, 0, 0); + break; + case 1: + sub_809286C(4, 0, 0); + break; + case 2: + sub_809286C(10, 0, 0); + sub_809286C(5, 0, 0); + break; + case 3: + sub_809286C(10, 0, 0); + sub_809286C(6, 0, 0); + break; + case 4: + sub_809286C(7, 0, 0); + break; + case 5: + sub_809286C(8, 0, 0); + break; + case 6: + sub_809286C(9, 0, 0); + break; + } + sub_8091E20(gUnknown_083B57FC[b].text); +} + +static void sub_8092B68(u8 taskId) +{ + u16 var; + + var = gTasks[taskId].data[6] + gTasks[taskId].data[7]; + StringCopy(gStringVar1, gUnknown_083B5910[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 16, 1); + + var = gTasks[taskId].data[8] + gTasks[taskId].data[9]; + StringCopy(gStringVar1, gUnknown_083B5968[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 32, 1); + + var = gTasks[taskId].data[10] + gTasks[taskId].data[11]; + StringCopy(gStringVar1, gUnknown_083B59C8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AAC, 45, 48, 1); + + var = gTasks[taskId].data[12] + gTasks[taskId].data[13]; + StringCopy(gStringVar1, gUnknown_083B59C8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AAC, 93, 48, 1); + + var = gTasks[taskId].data[4] + gTasks[taskId].data[5]; + StringCopy(gStringVar1, gUnknown_083B58D8[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 64, 1); + + if (IsNationalPokedexEnabled()) + { + var = gTasks[taskId].data[2] + gTasks[taskId].data[3]; + StringCopy(gStringVar1, gUnknown_083B58C0[var].text2); + MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 80, 1); + } +} + +static void sub_8092C8C(u8 a) +{ + u16 i; + u16 j; + + if (a == 0) + { + *((u16 *)(VRAM + 0x7800 + 0x22)) = 0xC0B; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + i * 2)) = 0x80D; + *((u16 *)(VRAM + 0x7800 + 0x3A)) = 0x80B; + for (j = 1; j < 13; j++) + { + *((u16 *)(VRAM + 0x7800 + 0x22 + j * 64)) = 0x40A; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 2; + *((u16 *)(VRAM + 0x7800 + 0x3A + j * 64)) = 0xA; + } + *((u16 *)(VRAM + 0x7800 + 0x362)) = 0x40B; + for (i = 0x12; i < 0x1D; i++) + *((u16 *)(VRAM + 0x7800 + 0x340 + i * 2)) = 0xD; + *((u16 *)(VRAM + 0x7800 + 0x37A)) = 0xB; + } + else + { + for (j = 0; j < 14; j++) + { + for (i = 0x11; i < 0x1E; i++) + { + *((u16 *)(VRAM + 0x7800 + j * 64 + i * 2)) = 0x4F; + } + } + } +} + +static void sub_8092D78(u8 taskId) +{ + const struct UnknownStruct2 *r6 = gUnknown_083B5A7C[gTasks[taskId].data[1]].unk0; + const u16 *r8 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk4]; + const u16 *r7 = &gTasks[taskId].data[gUnknown_083B5A7C[gTasks[taskId].data[1]].unk5]; + u16 i; + u16 j; + + MenuZeroFillWindowRect(18, 1, 28, 12); + for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++) + { +#ifndef NONMATCHING + j += 0; // Useless statement needed to match +#endif + MenuPrint(r6[j].text2, 18, i * 2 + 1); + } + sub_8091E20(r6[*r8 + *r7].text1); +} + +static u8 sub_8092E10(u8 taskId, u8 b) +{ + const u16 *ptr1 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk4]; + const u16 *ptr2 = &gTasks[taskId].data[gUnknown_083B5A7C[b].unk5]; + u16 r2 = *ptr1 + *ptr2; + + switch (b) + { + default: + return 0; + case 5: + return gUnknown_083B5A60[r2]; + case 4: + return gUnknown_083B5A62[r2]; + case 0: + if (r2 == 0) + return 0xFF; + else + return r2; + case 1: + if (r2 == 0) + return 0xFF; + else + return r2 - 1; + case 2: + case 3: + return gUnknown_083B5A68[r2]; + } +} + +static void sub_8092EB0(u8 taskId) +{ + u16 r3; + + switch (gPokedexView->unk614) + { + default: + case 0: + r3 = 0; + break; + case 1: + r3 = 1; + break; + } + gTasks[taskId].data[2] = r3; + + switch (gPokedexView->unk618) + { + default: + case 0: + r3 = 0; + break; + case 1: + r3 = 1; + break; + case 2: + r3 = 2; + break; + case 3: + r3 = 3; + break; + case 4: + r3 = 4; + break; + case 5: + r3 = 5; + break; + } + gTasks[taskId].data[4] = r3; +} + +static bool8 sub_8092F44(u8 taskId) +{ + u8 val1 = gTasks[taskId].data[1]; + const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5]; + u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1; + + if (val2 > 5 && *ptr != 0) + return FALSE; + else + return TRUE; +} + +static bool8 sub_8092F8C(u8 taskId) +{ + u8 val1 = gTasks[taskId].data[1]; + const u16 *ptr = &gTasks[taskId].data[gUnknown_083B5A7C[val1].unk5]; + u16 val2 = gUnknown_083B5A7C[val1].unk6 - 1; + + if (val2 > 5 && *ptr < val2 - 5) + return FALSE; + else + return TRUE; +} + +static void sub_8092FD8(struct Sprite *sprite) +{ + if (gTasks[sprite->data0].func == sub_8092644) + { + u8 val; + + if (sprite->data1 != 0) + { + if (sub_8092F8C(sprite->data0)) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + else + { + if (sub_8092F44(sprite->data0)) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + val = sprite->data2 + sprite->data1 * 128; + sprite->pos2.y = gSineTable[val] / 128; + sprite->data2 += 8; + } + else + { + sprite->invisible = TRUE; + } +} + +static void sub_809308C(u8 taskId) +{ + u8 spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 4, 0); + gSprites[spriteId].data0 = taskId; + gSprites[spriteId].data1 = 0; + gSprites[spriteId].callback = sub_8092FD8; + + spriteId = CreateSprite(&gSpriteTemplate_83A053C, 184, 108, 0); + gSprites[spriteId].data0 = taskId; + gSprites[spriteId].data1 = 1; + gSprites[spriteId].vFlip = TRUE; + gSprites[spriteId].callback = sub_8092FD8; +} diff --git a/src/pokemon_3.c b/src/pokemon_3.c index f9eb3a7e9..f4eac79a7 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1255,7 +1255,7 @@ bool8 IsHMMove2(u16 move) bool8 sub_8040A3C(u16 species) { - return gBaseStats[species].bodyColor >> 7; // XXX: should this be a bitfield instead? + return gBaseStats[species].unk19_7; } s8 sub_8040A54(struct Pokemon *mon, u8 a2) diff --git a/src/starter_choose.c b/src/starter_choose.c index 32b6adf36..0ed8315fc 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -483,7 +483,7 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) { u8 labelText[72]; - u8 *category; + const u8 *category; u8 srcIndex; u8 dstIndex; u16 species; |