diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/data/pokemon/pokedex_entries.h | 3873 | ||||
-rw-r--r-- | src/data/pokemon/pokedex_text.h | 2321 | ||||
-rw-r--r-- | src/data/pokemon_graphics/footprint_table.h | 416 | ||||
-rw-r--r-- | src/pokedex.c | 501 |
4 files changed, 7063 insertions, 48 deletions
diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h new file mode 100644 index 000000000..acf6506bd --- /dev/null +++ b/src/data/pokemon/pokedex_entries.h @@ -0,0 +1,3873 @@ +const struct PokedexEntry gPokedexEntries[] = +{ + { //Dummy + .categoryName = _("UNKNOWN"), + .height = 0, + .weight = 0, + .description = gDummyPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bulbasaur + .categoryName = _("SEED"), + .height = 7, + .weight = 69, + .description = gBulbasaurPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ivysaur + .categoryName = _("SEED"), + .height = 10, + .weight = 130, + .description = gIvysaurPokedexText, + .pokemonScale = 335, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venusaur + .categoryName = _("SEED"), + .height = 20, + .weight = 1000, + .description = gVenusaurPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + }, + { //Charmander + .categoryName = _("LIZARD"), + .height = 6, + .weight = 85, + .description = gCharmanderPokedexText, + .pokemonScale = 444, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charmeleon + .categoryName = _("FLAME"), + .height = 11, + .weight = 190, + .description = gCharmeleonPokedexText, + .pokemonScale = 302, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Charizard + .categoryName = _("FLAME"), + .height = 17, + .weight = 905, + .description = gCharizardPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + }, + { //Squirtle + .categoryName = _("TINY TURTLE"), + .height = 5, + .weight = 90, + .description = gSquirtlePokedexText, + .pokemonScale = 412, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wartortle + .categoryName = _("TURTLE"), + .height = 10, + .weight = 225, + .description = gWartortlePokedexText, + .pokemonScale = 332, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blastoise + .categoryName = _("SHELLFISH"), + .height = 16, + .weight = 855, + .description = gBlastoisePokedexText, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Caterpie + .categoryName = _("WORM"), + .height = 3, + .weight = 29, + .description = gCaterpiePokedexText, + .pokemonScale = 549, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metapod + .categoryName = _("COCOON"), + .height = 7, + .weight = 99, + .description = gMetapodPokedexText, + .pokemonScale = 350, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Butterfree + .categoryName = _("BUTTERFLY"), + .height = 11, + .weight = 320, + .description = gButterfreePokedexText, + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weedle + .categoryName = _("HAIRY BUG"), + .height = 3, + .weight = 32, + .description = gWeedlePokedexText, + .pokemonScale = 455, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kakuna + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .description = gKakunaPokedexText, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beedrill + .categoryName = _("POISON BEE"), + .height = 10, + .weight = 295, + .description = gBeedrillPokedexText, + .pokemonScale = 366, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgey + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 18, + .description = gPidgeyPokedexText, + .pokemonScale = 508, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeotto + .categoryName = _("BIRD"), + .height = 11, + .weight = 300, + .description = gPidgeottoPokedexText, + .pokemonScale = 331, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pidgeot + .categoryName = _("BIRD"), + .height = 15, + .weight = 395, + .description = gPidgeotPokedexText, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rattata + .categoryName = _("MOUSE"), + .height = 3, + .weight = 35, + .description = gRattataPokedexText, + .pokemonScale = 481, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raticate + .categoryName = _("MOUSE"), + .height = 7, + .weight = 185, + .description = gRaticatePokedexText, + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spearow + .categoryName = _("TINY BIRD"), + .height = 3, + .weight = 20, + .description = gSpearowPokedexText, + .pokemonScale = 571, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Fearow + .categoryName = _("BEAK"), + .height = 12, + .weight = 380, + .description = gFearowPokedexText, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ekans + .categoryName = _("SNAKE"), + .height = 20, + .weight = 69, + .description = gEkansPokedexText, + .pokemonScale = 298, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arbok + .categoryName = _("COBRA"), + .height = 35, + .weight = 650, + .description = gArbokPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Pikachu + .categoryName = _("MOUSE"), + .height = 4, + .weight = 60, + .description = gPikachuPokedexText, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Raichu + .categoryName = _("MOUSE"), + .height = 8, + .weight = 300, + .description = gRaichuPokedexText, + .pokemonScale = 426, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandshrew + .categoryName = _("MOUSE"), + .height = 6, + .weight = 120, + .description = gSandshrewPokedexText, + .pokemonScale = 365, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sandslash + .categoryName = _("MOUSE"), + .height = 10, + .weight = 295, + .description = gSandslashPokedexText, + .pokemonScale = 341, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranF + .categoryName = _("POISON PIN"), + .height = 4, + .weight = 70, + .description = gNidoranFPokedexText, + .pokemonScale = 488, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorina + .categoryName = _("POISON PIN"), + .height = 8, + .weight = 200, + .description = gNidorinaPokedexText, + .pokemonScale = 381, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoqueen + .categoryName = _("DRILL"), + .height = 13, + .weight = 600, + .description = gNidoqueenPokedexText, + .pokemonScale = 293, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //NidoranM + .categoryName = _("POISON PIN"), + .height = 5, + .weight = 90, + .description = gNidoranMPokedexText, + .pokemonScale = 511, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidorino + .categoryName = _("POISON PIN"), + .height = 9, + .weight = 195, + .description = gNidorinoPokedexText, + .pokemonScale = 408, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nidoking + .categoryName = _("DRILL"), + .height = 14, + .weight = 620, + .description = gNidokingPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefairy + .categoryName = _("FAIRY"), + .height = 6, + .weight = 75, + .description = gClefairyPokedexText, + .pokemonScale = 441, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clefable + .categoryName = _("FAIRY"), + .height = 13, + .weight = 400, + .description = gClefablePokedexText, + .pokemonScale = 256, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vulpix + .categoryName = _("FOX"), + .height = 6, + .weight = 99, + .description = gVulpixPokedexText, + .pokemonScale = 542, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninetales + .categoryName = _("FOX"), + .height = 11, + .weight = 199, + .description = gNinetalesPokedexText, + .pokemonScale = 339, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jigglypuff + .categoryName = _("BALLOON"), + .height = 5, + .weight = 55, + .description = gJigglypuffPokedexText, + .pokemonScale = 433, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wigglytuff + .categoryName = _("BALLOON"), + .height = 10, + .weight = 120, + .description = gWigglytuffPokedexText, + .pokemonScale = 328, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zubat + .categoryName = _("BAT"), + .height = 8, + .weight = 75, + .description = gZubatPokedexText, + .pokemonScale = 362, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golbat + .categoryName = _("BAT"), + .height = 16, + .weight = 550, + .description = gGolbatPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Oddish + .categoryName = _("WEED"), + .height = 5, + .weight = 54, + .description = gOddishPokedexText, + .pokemonScale = 423, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gloom + .categoryName = _("WEED"), + .height = 8, + .weight = 86, + .description = gGloomPokedexText, + .pokemonScale = 329, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vileplume + .categoryName = _("FLOWER"), + .height = 12, + .weight = 186, + .description = gVileplumePokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Paras + .categoryName = _("MUSHROOM"), + .height = 3, + .weight = 54, + .description = gParasPokedexText, + .pokemonScale = 593, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Parasect + .categoryName = _("MUSHROOM"), + .height = 10, + .weight = 295, + .description = gParasectPokedexText, + .pokemonScale = 307, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Venonat + .categoryName = _("INSECT"), + .height = 10, + .weight = 300, + .description = gVenonatPokedexText, + .pokemonScale = 360, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = -1, + }, + { //Venomoth + .categoryName = _("POISON MOTH"), + .height = 15, + .weight = 125, + .description = gVenomothPokedexText, + .pokemonScale = 285, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Diglett + .categoryName = _("MOLE"), + .height = 2, + .weight = 8, + .description = gDiglettPokedexText, + .pokemonScale = 833, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dugtrio + .categoryName = _("MOLE"), + .height = 7, + .weight = 333, + .description = gDugtrioPokedexText, + .pokemonScale = 406, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meowth + .categoryName = _("SCRATCH CAT"), + .height = 4, + .weight = 42, + .description = gMeowthPokedexText, + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Persian + .categoryName = _("CLASSY CAT"), + .height = 10, + .weight = 320, + .description = gPersianPokedexText, + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Psyduck + .categoryName = _("DUCK"), + .height = 8, + .weight = 196, + .description = gPsyduckPokedexText, + .pokemonScale = 369, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golduck + .categoryName = _("DUCK"), + .height = 17, + .weight = 766, + .description = gGolduckPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 273, + .trainerOffset = 1, + }, + { //Mankey + .categoryName = _("PIG MONKEY"), + .height = 5, + .weight = 280, + .description = gMankeyPokedexText, + .pokemonScale = 404, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Primeape + .categoryName = _("PIG MONKEY"), + .height = 10, + .weight = 320, + .description = gPrimeapePokedexText, + .pokemonScale = 326, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Growlithe + .categoryName = _("PUPPY"), + .height = 7, + .weight = 190, + .description = gGrowlithePokedexText, + .pokemonScale = 346, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Arcanine + .categoryName = _("LEGENDARY"), + .height = 19, + .weight = 1550, + .description = gArcaninePokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 4, + }, + { //Poliwag + .categoryName = _("TADPOLE"), + .height = 6, + .weight = 124, + .description = gPoliwagPokedexText, + .pokemonScale = 369, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwhirl + .categoryName = _("TADPOLE"), + .height = 10, + .weight = 200, + .description = gPoliwhirlPokedexText, + .pokemonScale = 288, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poliwrath + .categoryName = _("TADPOLE"), + .height = 13, + .weight = 540, + .description = gPoliwrathPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Abra + .categoryName = _("PSI"), + .height = 9, + .weight = 195, + .description = gAbraPokedexText, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kadabra + .categoryName = _("PSI"), + .height = 13, + .weight = 565, + .description = gKadabraPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Alakazam + .categoryName = _("PSI"), + .height = 15, + .weight = 480, + .description = gAlakazamPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machop + .categoryName = _("SUPERPOWER"), + .height = 8, + .weight = 195, + .description = gMachopPokedexText, + .pokemonScale = 342, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Machoke + .categoryName = _("SUPERPOWER"), + .height = 15, + .weight = 705, + .description = gMachokePokedexText, + .pokemonScale = 323, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Machamp + .categoryName = _("SUPERPOWER"), + .height = 16, + .weight = 1300, + .description = gMachampPokedexText, + .pokemonScale = 280, + .pokemonOffset = 1, + .trainerScale = 269, + .trainerOffset = -1, + }, + { //Bellsprout + .categoryName = _("FLOWER"), + .height = 7, + .weight = 40, + .description = gBellsproutPokedexText, + .pokemonScale = 354, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weepinbell + .categoryName = _("FLYCATCHER"), + .height = 10, + .weight = 64, + .description = gWeepinbellPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Victreebel + .categoryName = _("FLYCATCHER"), + .height = 17, + .weight = 155, + .description = gVictreebelPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 3, + }, + { //Tentacool + .categoryName = _("JELLYFISH"), + .height = 9, + .weight = 455, + .description = gTentacoolPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tentacruel + .categoryName = _("JELLYFISH"), + .height = 16, + .weight = 550, + .description = gTentacruelPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 312, + .trainerOffset = 1, + }, + { //Geodude + .categoryName = _("ROCK"), + .height = 4, + .weight = 200, + .description = gGeodudePokedexText, + .pokemonScale = 347, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Graveler + .categoryName = _("ROCK"), + .height = 10, + .weight = 1050, + .description = gGravelerPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Golem + .categoryName = _("MEGATON"), + .height = 14, + .weight = 3000, + .description = gGolemPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Ponyta + .categoryName = _("FIRE HORSE"), + .height = 10, + .weight = 300, + .description = gPonytaPokedexText, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rapidash + .categoryName = _("FIRE HORSE"), + .height = 17, + .weight = 950, + .description = gRapidashPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 289, + .trainerOffset = 1, + }, + { //Slowpoke + .categoryName = _("DOPEY"), + .height = 12, + .weight = 360, + .description = gSlowpokePokedexText, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slowbro + .categoryName = _("HERMIT CRAB"), + .height = 16, + .weight = 785, + .description = gSlowbroPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + }, + { //Magnemite + .categoryName = _("MAGNET"), + .height = 3, + .weight = 60, + .description = gMagnemitePokedexText, + .pokemonScale = 288, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magneton + .categoryName = _("MAGNET"), + .height = 10, + .weight = 600, + .description = gMagnetonPokedexText, + .pokemonScale = 292, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Farfetchd + .categoryName = _("WILD DUCK"), + .height = 8, + .weight = 150, + .description = gFarfetchdPokedexText, + .pokemonScale = 330, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Doduo + .categoryName = _("TWIN BIRD"), + .height = 14, + .weight = 392, + .description = gDoduoPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = -1, + }, + { //Dodrio + .categoryName = _("TRIPLE BIRD"), + .height = 18, + .weight = 852, + .description = gDodrioPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 0, + }, + { //Seel + .categoryName = _("SEA LION"), + .height = 11, + .weight = 900, + .description = gSeelPokedexText, + .pokemonScale = 297, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dewgong + .categoryName = _("SEA LION"), + .height = 17, + .weight = 1200, + .description = gDewgongPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 275, + .trainerOffset = 0, + }, + { //Grimer + .categoryName = _("SLUDGE"), + .height = 9, + .weight = 300, + .description = gGrimerPokedexText, + .pokemonScale = 258, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Muk + .categoryName = _("SLUDGE"), + .height = 12, + .weight = 300, + .description = gMukPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shellder + .categoryName = _("BIVALVE"), + .height = 3, + .weight = 40, + .description = gShellderPokedexText, + .pokemonScale = 675, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cloyster + .categoryName = _("BIVALVE"), + .height = 15, + .weight = 1325, + .description = gCloysterPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 269, + .trainerOffset = 1, + }, + { //Gastly + .categoryName = _("GAS"), + .height = 13, + .weight = 1, + .description = gGastlyPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Haunter + .categoryName = _("GAS"), + .height = 16, + .weight = 1, + .description = gHaunterPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Gengar + .categoryName = _("SHADOW"), + .height = 15, + .weight = 405, + .description = gGengarPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + }, + { //Onix + .categoryName = _("ROCK SNAKE"), + .height = 88, + .weight = 2100, + .description = gOnixPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Drowzee + .categoryName = _("HYPNOSIS"), + .height = 10, + .weight = 324, + .description = gDrowzeePokedexText, + .pokemonScale = 274, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hypno + .categoryName = _("HYPNOSIS"), + .height = 16, + .weight = 756, + .description = gHypnoPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Krabby + .categoryName = _("RIVER CRAB"), + .height = 4, + .weight = 65, + .description = gKrabbyPokedexText, + .pokemonScale = 469, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingler + .categoryName = _("PINCER"), + .height = 13, + .weight = 600, + .description = gKinglerPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Voltorb + .categoryName = _("BALL"), + .height = 5, + .weight = 104, + .description = gVoltorbPokedexText, + .pokemonScale = 364, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrode + .categoryName = _("BALL"), + .height = 12, + .weight = 666, + .description = gElectrodePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggcute + .categoryName = _("EGG"), + .height = 4, + .weight = 25, + .description = gExeggcutePokedexText, + .pokemonScale = 489, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exeggutor + .categoryName = _("COCONUT"), + .height = 20, + .weight = 1200, + .description = gExeggutorPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Cubone + .categoryName = _("LONELY"), + .height = 4, + .weight = 65, + .description = gCubonePokedexText, + .pokemonScale = 545, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marowak + .categoryName = _("BONE KEEPER"), + .height = 10, + .weight = 450, + .description = gMarowakPokedexText, + .pokemonScale = 293, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmonlee + .categoryName = _("KICKING"), + .height = 15, + .weight = 498, + .description = gHitmonleePokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 259, + .trainerOffset = 1, + }, + { //Hitmonchan + .categoryName = _("PUNCHING"), + .height = 14, + .weight = 502, + .description = gHitmonchanPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 277, + .trainerOffset = 2, + }, + { //Lickitung + .categoryName = _("LICKING"), + .height = 12, + .weight = 655, + .description = gLickitungPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Koffing + .categoryName = _("POISON GAS"), + .height = 6, + .weight = 10, + .description = gKoffingPokedexText, + .pokemonScale = 369, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Weezing + .categoryName = _("POISON GAS"), + .height = 12, + .weight = 95, + .description = gWeezingPokedexText, + .pokemonScale = 305, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhyhorn + .categoryName = _("SPIKES"), + .height = 10, + .weight = 1150, + .description = gRhyhornPokedexText, + .pokemonScale = 267, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Rhydon + .categoryName = _("DRILL"), + .height = 19, + .weight = 1200, + .description = gRhydonPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 299, + .trainerOffset = 2, + }, + { //Chansey + .categoryName = _("EGG"), + .height = 11, + .weight = 346, + .description = gChanseyPokedexText, + .pokemonScale = 257, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tangela + .categoryName = _("VINE"), + .height = 10, + .weight = 350, + .description = gTangelaPokedexText, + .pokemonScale = 304, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kangaskhan + .categoryName = _("PARENT"), + .height = 22, + .weight = 800, + .description = gKangaskhanPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Horsea + .categoryName = _("DRAGON"), + .height = 4, + .weight = 80, + .description = gHorseaPokedexText, + .pokemonScale = 399, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seadra + .categoryName = _("DRAGON"), + .height = 12, + .weight = 250, + .description = gSeadraPokedexText, + .pokemonScale = 299, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Goldeen + .categoryName = _("GOLDFISH"), + .height = 6, + .weight = 150, + .description = gGoldeenPokedexText, + .pokemonScale = 379, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seaking + .categoryName = _("GOLDFISH"), + .height = 13, + .weight = 390, + .description = gSeakingPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Staryu + .categoryName = _("STAR SHAPE"), + .height = 8, + .weight = 345, + .description = gStaryuPokedexText, + .pokemonScale = 326, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Starmie + .categoryName = _("MYSTERIOUS"), + .height = 11, + .weight = 800, + .description = gStarmiePokedexText, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mrmime + .categoryName = _("BARRIER"), + .height = 13, + .weight = 545, + .description = gMrmimePokedexText, + .pokemonScale = 258, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scyther + .categoryName = _("MANTIS"), + .height = 15, + .weight = 560, + .description = gScytherPokedexText, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 293, + .trainerOffset = 2, + }, + { //Jynx + .categoryName = _("HUMAN SHAPE"), + .height = 14, + .weight = 406, + .description = gJynxPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Electabuzz + .categoryName = _("ELECTRIC"), + .height = 11, + .weight = 300, + .description = gElectabuzzPokedexText, + .pokemonScale = 351, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magmar + .categoryName = _("SPITFIRE"), + .height = 13, + .weight = 445, + .description = gMagmarPokedexText, + .pokemonScale = 277, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pinsir + .categoryName = _("STAG BEETLE"), + .height = 15, + .weight = 550, + .description = gPinsirPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Tauros + .categoryName = _("WILD BULL"), + .height = 14, + .weight = 884, + .description = gTaurosPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magikarp + .categoryName = _("FISH"), + .height = 9, + .weight = 100, + .description = gMagikarpPokedexText, + .pokemonScale = 310, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gyarados + .categoryName = _("ATROCIOUS"), + .height = 65, + .weight = 2350, + .description = gGyaradosPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 481, + .trainerOffset = 13, + }, + { //Lapras + .categoryName = _("TRANSPORT"), + .height = 25, + .weight = 2200, + .description = gLaprasPokedexText, + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + }, + { //Ditto + .categoryName = _("TRANSFORM"), + .height = 3, + .weight = 40, + .description = gDittoPokedexText, + .pokemonScale = 633, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Eevee + .categoryName = _("EVOLUTION"), + .height = 3, + .weight = 65, + .description = gEeveePokedexText, + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vaporeon + .categoryName = _("BUBBLE JET"), + .height = 10, + .weight = 290, + .description = gVaporeonPokedexText, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jolteon + .categoryName = _("LIGHTNING"), + .height = 8, + .weight = 245, + .description = gJolteonPokedexText, + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flareon + .categoryName = _("FLAME"), + .height = 9, + .weight = 250, + .description = gFlareonPokedexText, + .pokemonScale = 306, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon + .categoryName = _("VIRTUAL"), + .height = 8, + .weight = 365, + .description = gPorygonPokedexText, + .pokemonScale = 328, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omanyte + .categoryName = _("SPIRAL"), + .height = 4, + .weight = 75, + .description = gOmanytePokedexText, + .pokemonScale = 521, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Omastar + .categoryName = _("SPIRAL"), + .height = 10, + .weight = 350, + .description = gOmastarPokedexText, + .pokemonScale = 307, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabuto + .categoryName = _("SHELLFISH"), + .height = 5, + .weight = 115, + .description = gKabutoPokedexText, + .pokemonScale = 454, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kabutops + .categoryName = _("SHELLFISH"), + .height = 13, + .weight = 405, + .description = gKabutopsPokedexText, + .pokemonScale = 271, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aerodactyl + .categoryName = _("FOSSIL"), + .height = 18, + .weight = 590, + .description = gAerodactylPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 302, + .trainerOffset = 4, + }, + { //Snorlax + .categoryName = _("SLEEPING"), + .height = 21, + .weight = 4600, + .description = gSnorlaxPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 423, + .trainerOffset = 11, + }, + { //Articuno + .categoryName = _("FREEZE"), + .height = 17, + .weight = 554, + .description = gArticunoPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 2, + }, + { //Zapdos + .categoryName = _("ELECTRIC"), + .height = 16, + .weight = 526, + .description = gZapdosPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 318, + .trainerOffset = 3, + }, + { //Moltres + .categoryName = _("FLAME"), + .height = 20, + .weight = 600, + .description = gMoltresPokedexText, + .pokemonScale = 270, + .pokemonOffset = 0, + .trainerScale = 387, + .trainerOffset = 8, + }, + { //Dratini + .categoryName = _("DRAGON"), + .height = 18, + .weight = 33, + .description = gDratiniPokedexText, + .pokemonScale = 256, + .pokemonOffset = 8, + .trainerScale = 386, + .trainerOffset = 6, + }, + { //Dragonair + .categoryName = _("DRAGON"), + .height = 40, + .weight = 165, + .description = gDragonairPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 411, + .trainerOffset = 5, + }, + { //Dragonite + .categoryName = _("DRAGON"), + .height = 22, + .weight = 2100, + .description = gDragonitePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mewtwo + .categoryName = _("GENETIC"), + .height = 20, + .weight = 1220, + .description = gMewtwoPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + }, + { //Mew + .categoryName = _("NEW SPECIES"), + .height = 4, + .weight = 40, + .description = gMewPokedexText, + .pokemonScale = 457, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Chikorita + .categoryName = _("LEAF"), + .height = 9, + .weight = 64, + .description = gChikoritaPokedexText, + .pokemonScale = 512, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bayleef + .categoryName = _("LEAF"), + .height = 12, + .weight = 158, + .description = gBayleefPokedexText, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Meganium + .categoryName = _("HERB"), + .height = 18, + .weight = 1005, + .description = gMeganiumPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 277, + .trainerOffset = 1, + }, + { //Cyndaquil + .categoryName = _("FIRE MOUSE"), + .height = 5, + .weight = 79, + .description = gCyndaquilPokedexText, + .pokemonScale = 539, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quilava + .categoryName = _("VOLCANO"), + .height = 9, + .weight = 190, + .description = gQuilavaPokedexText, + .pokemonScale = 329, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Typhlosion + .categoryName = _("VOLCANO"), + .height = 17, + .weight = 795, + .description = gTyphlosionPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Totodile + .categoryName = _("BIG JAW"), + .height = 6, + .weight = 95, + .description = gTotodilePokedexText, + .pokemonScale = 487, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Croconaw + .categoryName = _("BIG JAW"), + .height = 11, + .weight = 250, + .description = gCroconawPokedexText, + .pokemonScale = 378, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Feraligatr + .categoryName = _("BIG JAW"), + .height = 23, + .weight = 888, + .description = gFeraligatrPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Sentret + .categoryName = _("SCOUT"), + .height = 8, + .weight = 60, + .description = gSentretPokedexText, + .pokemonScale = 439, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Furret + .categoryName = _("LONG BODY"), + .height = 18, + .weight = 325, + .description = gFurretPokedexText, + .pokemonScale = 346, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoothoot + .categoryName = _("OWL"), + .height = 7, + .weight = 212, + .description = gHoothootPokedexText, + .pokemonScale = 380, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Noctowl + .categoryName = _("OWL"), + .height = 16, + .weight = 408, + .description = gNoctowlPokedexText, + .pokemonScale = 278, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledyba + .categoryName = _("FIVE STAR"), + .height = 10, + .weight = 108, + .description = gLedybaPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ledian + .categoryName = _("FIVE STAR"), + .height = 14, + .weight = 356, + .description = gLedianPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinarak + .categoryName = _("STRING SPIT"), + .height = 5, + .weight = 85, + .description = gSpinarakPokedexText, + .pokemonScale = 414, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ariados + .categoryName = _("LONG LEG"), + .height = 11, + .weight = 335, + .description = gAriadosPokedexText, + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crobat + .categoryName = _("BAT"), + .height = 18, + .weight = 750, + .description = gCrobatPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 281, + .trainerOffset = 1, + }, + { //Chinchou + .categoryName = _("ANGLER"), + .height = 5, + .weight = 120, + .description = gChinchouPokedexText, + .pokemonScale = 424, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lanturn + .categoryName = _("LIGHT"), + .height = 12, + .weight = 225, + .description = gLanturnPokedexText, + .pokemonScale = 269, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pichu + .categoryName = _("TINY MOUSE"), + .height = 3, + .weight = 20, + .description = gPichuPokedexText, + .pokemonScale = 508, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cleffa + .categoryName = _("STAR SHAPE"), + .height = 3, + .weight = 30, + .description = gCleffaPokedexText, + .pokemonScale = 462, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Igglybuff + .categoryName = _("BALLOON"), + .height = 3, + .weight = 10, + .description = gIgglybuffPokedexText, + .pokemonScale = 457, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togepi + .categoryName = _("SPIKE BALL"), + .height = 3, + .weight = 15, + .description = gTogepiPokedexText, + .pokemonScale = 507, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Togetic + .categoryName = _("HAPPINESS"), + .height = 6, + .weight = 32, + .description = gTogeticPokedexText, + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Natu + .categoryName = _("TINY BIRD"), + .height = 2, + .weight = 20, + .description = gNatuPokedexText, + .pokemonScale = 610, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Xatu + .categoryName = _("MYSTIC"), + .height = 15, + .weight = 150, + .description = gXatuPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 318, + .trainerOffset = 4, + }, + { //Mareep + .categoryName = _("WOOL"), + .height = 6, + .weight = 78, + .description = gMareepPokedexText, + .pokemonScale = 379, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flaaffy + .categoryName = _("WOOL"), + .height = 8, + .weight = 133, + .description = gFlaaffyPokedexText, + .pokemonScale = 372, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ampharos + .categoryName = _("LIGHT"), + .height = 14, + .weight = 615, + .description = gAmpharosPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bellossom + .categoryName = _("FLOWER"), + .height = 4, + .weight = 58, + .description = gBellossomPokedexText, + .pokemonScale = 472, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marill + .categoryName = _("AQUA MOUSE"), + .height = 4, + .weight = 85, + .description = gMarillPokedexText, + .pokemonScale = 476, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Azumarill + .categoryName = _("AQUA RABBIT"), + .height = 8, + .weight = 285, + .description = gAzumarillPokedexText, + .pokemonScale = 448, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sudowoodo + .categoryName = _("IMITATION"), + .height = 12, + .weight = 380, + .description = gSudowoodoPokedexText, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Politoed + .categoryName = _("FROG"), + .height = 11, + .weight = 339, + .description = gPolitoedPokedexText, + .pokemonScale = 289, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hoppip + .categoryName = _("COTTONWEED"), + .height = 4, + .weight = 5, + .description = gHoppipPokedexText, + .pokemonScale = 562, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Skiploom + .categoryName = _("COTTONWEED"), + .height = 6, + .weight = 10, + .description = gSkiploomPokedexText, + .pokemonScale = 387, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Jumpluff + .categoryName = _("COTTONWEED"), + .height = 8, + .weight = 30, + .description = gJumpluffPokedexText, + .pokemonScale = 418, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aipom + .categoryName = _("LONG TAIL"), + .height = 8, + .weight = 115, + .description = gAipomPokedexText, + .pokemonScale = 363, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunkern + .categoryName = _("SEED"), + .height = 3, + .weight = 18, + .description = gSunkernPokedexText, + .pokemonScale = 541, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sunflora + .categoryName = _("SUN"), + .height = 8, + .weight = 85, + .description = gSunfloraPokedexText, + .pokemonScale = 444, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Yanma + .categoryName = _("CLEAR WING"), + .height = 12, + .weight = 380, + .description = gYanmaPokedexText, + .pokemonScale = 274, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wooper + .categoryName = _("WATER FISH"), + .height = 4, + .weight = 85, + .description = gWooperPokedexText, + .pokemonScale = 479, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Quagsire + .categoryName = _("WATER FISH"), + .height = 14, + .weight = 750, + .description = gQuagsirePokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Espeon + .categoryName = _("SUN"), + .height = 9, + .weight = 265, + .description = gEspeonPokedexText, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Umbreon + .categoryName = _("MOONLIGHT"), + .height = 10, + .weight = 270, + .description = gUmbreonPokedexText, + .pokemonScale = 317, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Murkrow + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 21, + .description = gMurkrowPokedexText, + .pokemonScale = 401, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 1, + }, + { //Slowking + .categoryName = _("ROYAL"), + .height = 20, + .weight = 795, + .description = gSlowkingPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + }, + { //Misdreavus + .categoryName = _("SCREECH"), + .height = 7, + .weight = 10, + .description = gMisdreavusPokedexText, + .pokemonScale = 407, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Unown + .categoryName = _("SYMBOL"), + .height = 5, + .weight = 50, + .description = gUnownPokedexText, + .pokemonScale = 411, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wobbuffet + .categoryName = _("PATIENT"), + .height = 13, + .weight = 285, + .description = gWobbuffetPokedexText, + .pokemonScale = 274, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Girafarig + .categoryName = _("LONG NECK"), + .height = 15, + .weight = 415, + .description = gGirafarigPokedexText, + .pokemonScale = 281, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pineco + .categoryName = _("BAGWORM"), + .height = 6, + .weight = 72, + .description = gPinecoPokedexText, + .pokemonScale = 445, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Forretress + .categoryName = _("BAGWORM"), + .height = 12, + .weight = 1258, + .description = gForretressPokedexText, + .pokemonScale = 293, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dunsparce + .categoryName = _("LAND SNAKE"), + .height = 15, + .weight = 140, + .description = gDunsparcePokedexText, + .pokemonScale = 316, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gligar + .categoryName = _("FLYSCORPION"), + .height = 11, + .weight = 648, + .description = gGligarPokedexText, + .pokemonScale = 350, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Steelix + .categoryName = _("IRON SNAKE"), + .height = 92, + .weight = 4000, + .description = gSteelixPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + }, + { //Snubbull + .categoryName = _("FAIRY"), + .height = 6, + .weight = 78, + .description = gSnubbullPokedexText, + .pokemonScale = 465, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Granbull + .categoryName = _("FAIRY"), + .height = 14, + .weight = 487, + .description = gGranbullPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Qwilfish + .categoryName = _("BALLOON"), + .height = 5, + .weight = 39, + .description = gQwilfishPokedexText, + .pokemonScale = 430, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Scizor + .categoryName = _("PINCER"), + .height = 18, + .weight = 1180, + .description = gScizorPokedexText, + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuckle + .categoryName = _("MOLD"), + .height = 6, + .weight = 205, + .description = gShucklePokedexText, + .pokemonScale = 485, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Heracross + .categoryName = _("SINGLE HORN"), + .height = 15, + .weight = 540, + .description = gHeracrossPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sneasel + .categoryName = _("SHARP CLAW"), + .height = 9, + .weight = 280, + .description = gSneaselPokedexText, + .pokemonScale = 413, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Teddiursa + .categoryName = _("LITTLE BEAR"), + .height = 6, + .weight = 88, + .description = gTeddiursaPokedexText, + .pokemonScale = 455, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ursaring + .categoryName = _("HIBERNATOR"), + .height = 18, + .weight = 1258, + .description = gUrsaringPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slugma + .categoryName = _("LAVA"), + .height = 7, + .weight = 350, + .description = gSlugmaPokedexText, + .pokemonScale = 329, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magcargo + .categoryName = _("LAVA"), + .height = 8, + .weight = 550, + .description = gMagcargoPokedexText, + .pokemonScale = 332, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swinub + .categoryName = _("PIG"), + .height = 4, + .weight = 65, + .description = gSwinubPokedexText, + .pokemonScale = 324, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Piloswine + .categoryName = _("SWINE"), + .height = 11, + .weight = 558, + .description = gPiloswinePokedexText, + .pokemonScale = 306, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corsola + .categoryName = _("CORAL"), + .height = 6, + .weight = 50, + .description = gCorsolaPokedexText, + .pokemonScale = 410, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Remoraid + .categoryName = _("JET"), + .height = 6, + .weight = 120, + .description = gRemoraidPokedexText, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Octillery + .categoryName = _("JET"), + .height = 9, + .weight = 285, + .description = gOctilleryPokedexText, + .pokemonScale = 296, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delibird + .categoryName = _("DELIVERY"), + .height = 9, + .weight = 160, + .description = gDelibirdPokedexText, + .pokemonScale = 293, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mantine + .categoryName = _("KITE"), + .height = 21, + .weight = 2200, + .description = gMantinePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + }, + { //Skarmory + .categoryName = _("ARMOR BIRD"), + .height = 17, + .weight = 505, + .description = gSkarmoryPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 271, + .trainerOffset = 1, + }, + { //Houndour + .categoryName = _("DARK"), + .height = 6, + .weight = 108, + .description = gHoundourPokedexText, + .pokemonScale = 393, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Houndoom + .categoryName = _("DARK"), + .height = 14, + .weight = 350, + .description = gHoundoomPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kingdra + .categoryName = _("DRAGON"), + .height = 18, + .weight = 1520, + .description = gKingdraPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 287, + .trainerOffset = 0, + }, + { //Phanpy + .categoryName = _("LONG NOSE"), + .height = 5, + .weight = 335, + .description = gPhanpyPokedexText, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Donphan + .categoryName = _("ARMOR"), + .height = 11, + .weight = 1200, + .description = gDonphanPokedexText, + .pokemonScale = 313, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Porygon2 + .categoryName = _("VIRTUAL"), + .height = 6, + .weight = 325, + .description = gPorygon2PokedexText, + .pokemonScale = 320, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Stantler + .categoryName = _("BIG HORN"), + .height = 14, + .weight = 712, + .description = gStantlerPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Smeargle + .categoryName = _("PAINTER"), + .height = 12, + .weight = 580, + .description = gSmearglePokedexText, + .pokemonScale = 287, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyrogue + .categoryName = _("SCUFFLE"), + .height = 7, + .weight = 210, + .description = gTyroguePokedexText, + .pokemonScale = 292, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hitmontop + .categoryName = _("HANDSTAND"), + .height = 14, + .weight = 480, + .description = gHitmontopPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Smoochum + .categoryName = _("KISS"), + .height = 4, + .weight = 60, + .description = gSmoochumPokedexText, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Elekid + .categoryName = _("ELECTRIC"), + .height = 6, + .weight = 235, + .description = gElekidPokedexText, + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Magby + .categoryName = _("LIVE COAL"), + .height = 7, + .weight = 214, + .description = gMagbyPokedexText, + .pokemonScale = 284, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Miltank + .categoryName = _("MILK COW"), + .height = 12, + .weight = 755, + .description = gMiltankPokedexText, + .pokemonScale = 280, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blissey + .categoryName = _("HAPPINESS"), + .height = 15, + .weight = 468, + .description = gBlisseyPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 310, + .trainerOffset = 3, + }, + { //Raikou + .categoryName = _("THUNDER"), + .height = 19, + .weight = 1780, + .description = gRaikouPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Entei + .categoryName = _("VOLCANO"), + .height = 21, + .weight = 1980, + .description = gEnteiPokedexText, + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Suicune + .categoryName = _("AURORA"), + .height = 20, + .weight = 1870, + .description = gSuicunePokedexText, + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Larvitar + .categoryName = _("ROCK SKIN"), + .height = 6, + .weight = 720, + .description = gLarvitarPokedexText, + .pokemonScale = 472, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pupitar + .categoryName = _("HARD SHELL"), + .height = 12, + .weight = 1520, + .description = gPupitarPokedexText, + .pokemonScale = 292, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Tyranitar + .categoryName = _("ARMOR"), + .height = 20, + .weight = 2020, + .description = gTyranitarPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + }, + { //Lugia + .categoryName = _("DIVING"), + .height = 52, + .weight = 2160, + .description = gLugiaPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + }, + { //HoOh + .categoryName = _("RAINBOW"), + .height = 38, + .weight = 1990, + .description = gHoOhPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + }, + { //Celebi + .categoryName = _("TIME TRAVEL"), + .height = 6, + .weight = 50, + .description = gCelebiPokedexText, + .pokemonScale = 393, + .pokemonOffset = -10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Treecko + .categoryName = _("WOOD GECKO"), + .height = 5, + .weight = 50, + .description = gTreeckoPokedexText, + .pokemonScale = 541, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grovyle + .categoryName = _("WOOD GECKO"), + .height = 9, + .weight = 216, + .description = gGrovylePokedexText, + .pokemonScale = 360, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sceptile + .categoryName = _("FOREST"), + .height = 17, + .weight = 522, + .description = gSceptilePokedexText, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 275, + .trainerOffset = 2, + }, + { //Torchic + .categoryName = _("CHICK"), + .height = 4, + .weight = 25, + .description = gTorchicPokedexText, + .pokemonScale = 566, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Combusken + .categoryName = _("YOUNG FOWL"), + .height = 9, + .weight = 195, + .description = gCombuskenPokedexText, + .pokemonScale = 343, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Blaziken + .categoryName = _("BLAZE"), + .height = 19, + .weight = 520, + .description = gBlazikenPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 4, + }, + { //Mudkip + .categoryName = _("MUD FISH"), + .height = 4, + .weight = 76, + .description = gMudkipPokedexText, + .pokemonScale = 535, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Marshtomp + .categoryName = _("MUD FISH"), + .height = 7, + .weight = 280, + .description = gMarshtompPokedexText, + .pokemonScale = 340, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swampert + .categoryName = _("MUD FISH"), + .height = 15, + .weight = 819, + .description = gSwampertPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Poochyena + .categoryName = _("BITE"), + .height = 5, + .weight = 136, + .description = gPoochyenaPokedexText, + .pokemonScale = 481, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mightyena + .categoryName = _("BITE"), + .height = 10, + .weight = 370, + .description = gMightyenaPokedexText, + .pokemonScale = 362, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zigzagoon + .categoryName = _("TINYRACCOON"), + .height = 4, + .weight = 175, + .description = gZigzagoonPokedexText, + .pokemonScale = 560, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Linoone + .categoryName = _("RUSHING"), + .height = 5, + .weight = 325, + .description = gLinoonePokedexText, + .pokemonScale = 321, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wurmple + .categoryName = _("WORM"), + .height = 3, + .weight = 36, + .description = gWurmplePokedexText, + .pokemonScale = 711, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Silcoon + .categoryName = _("COCOON"), + .height = 6, + .weight = 100, + .description = gSilcoonPokedexText, + .pokemonScale = 431, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beautifly + .categoryName = _("BUTTERFLY"), + .height = 10, + .weight = 284, + .description = gBeautiflyPokedexText, + .pokemonScale = 298, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cascoon + .categoryName = _("COCOON"), + .height = 7, + .weight = 115, + .description = gCascoonPokedexText, + .pokemonScale = 391, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dustox + .categoryName = _("POISON MOTH"), + .height = 12, + .weight = 316, + .description = gDustoxPokedexText, + .pokemonScale = 269, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lotad + .categoryName = _("WATER WEED"), + .height = 5, + .weight = 26, + .description = gLotadPokedexText, + .pokemonScale = 406, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lombre + .categoryName = _("JOLLY"), + .height = 12, + .weight = 325, + .description = gLombrePokedexText, + .pokemonScale = 277, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ludicolo + .categoryName = _("CAREFREE"), + .height = 15, + .weight = 550, + .description = gLudicoloPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = -1, + }, + { //Seedot + .categoryName = _("ACORN"), + .height = 5, + .weight = 40, + .description = gSeedotPokedexText, + .pokemonScale = 472, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nuzleaf + .categoryName = _("WILY"), + .height = 10, + .weight = 280, + .description = gNuzleafPokedexText, + .pokemonScale = 299, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shiftry + .categoryName = _("WICKED"), + .height = 13, + .weight = 596, + .description = gShiftryPokedexText, + .pokemonScale = 290, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Taillow + .categoryName = _("TINYSWALLOW"), + .height = 3, + .weight = 23, + .description = gTaillowPokedexText, + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swellow + .categoryName = _("SWALLOW"), + .height = 7, + .weight = 198, + .description = gSwellowPokedexText, + .pokemonScale = 428, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wingull + .categoryName = _("SEAGULL"), + .height = 6, + .weight = 95, + .description = gWingullPokedexText, + .pokemonScale = 295, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Pelipper + .categoryName = _("WATER BIRD"), + .height = 12, + .weight = 280, + .description = gPelipperPokedexText, + .pokemonScale = 288, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ralts + .categoryName = _("FEELING"), + .height = 4, + .weight = 66, + .description = gRaltsPokedexText, + .pokemonScale = 457, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kirlia + .categoryName = _("EMOTION"), + .height = 8, + .weight = 202, + .description = gKirliaPokedexText, + .pokemonScale = 354, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gardevoir + .categoryName = _("EMBRACE"), + .height = 16, + .weight = 484, + .description = gGardevoirPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Surskit + .categoryName = _("POND SKATER"), + .height = 5, + .weight = 17, + .description = gSurskitPokedexText, + .pokemonScale = 375, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Masquerain + .categoryName = _("EYEBALL"), + .height = 8, + .weight = 36, + .description = gMasquerainPokedexText, + .pokemonScale = 378, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shroomish + .categoryName = _("MUSHROOM"), + .height = 4, + .weight = 45, + .description = gShroomishPokedexText, + .pokemonScale = 513, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Breloom + .categoryName = _("MUSHROOM"), + .height = 12, + .weight = 392, + .description = gBreloomPokedexText, + .pokemonScale = 324, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slakoth + .categoryName = _("SLACKER"), + .height = 8, + .weight = 240, + .description = gSlakothPokedexText, + .pokemonScale = 291, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vigoroth + .categoryName = _("WILD MONKEY"), + .height = 14, + .weight = 465, + .description = gVigorothPokedexText, + .pokemonScale = 301, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Slaking + .categoryName = _("LAZY"), + .height = 20, + .weight = 1305, + .description = gSlakingPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 300, + .trainerOffset = 1, + }, + { //Nincada + .categoryName = _("TRAINEE"), + .height = 5, + .weight = 55, + .description = gNincadaPokedexText, + .pokemonScale = 405, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Ninjask + .categoryName = _("NINJA"), + .height = 8, + .weight = 120, + .description = gNinjaskPokedexText, + .pokemonScale = 383, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shedinja + .categoryName = _("SHED"), + .height = 8, + .weight = 12, + .description = gShedinjaPokedexText, + .pokemonScale = 372, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whismur + .categoryName = _("WHISPER"), + .height = 6, + .weight = 163, + .description = gWhismurPokedexText, + .pokemonScale = 373, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Loudred + .categoryName = _("BIG VOICE"), + .height = 10, + .weight = 405, + .description = gLoudredPokedexText, + .pokemonScale = 356, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Exploud + .categoryName = _("LOUD NOISE"), + .height = 15, + .weight = 840, + .description = gExploudPokedexText, + .pokemonScale = 284, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Makuhita + .categoryName = _("GUTS"), + .height = 10, + .weight = 864, + .description = gMakuhitaPokedexText, + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Hariyama + .categoryName = _("ARM THRUST"), + .height = 23, + .weight = 2538, + .description = gHariyamaPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 343, + .trainerOffset = 7, + }, + { //Azurill + .categoryName = _("POLKA DOT"), + .height = 2, + .weight = 20, + .description = gAzurillPokedexText, + .pokemonScale = 603, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Nosepass + .categoryName = _("COMPASS"), + .height = 10, + .weight = 970, + .description = gNosepassPokedexText, + .pokemonScale = 256, + .pokemonOffset = 9, + .trainerScale = 289, + .trainerOffset = 3, + }, + { //Skitty + .categoryName = _("KITTEN"), + .height = 6, + .weight = 110, + .description = gSkittyPokedexText, + .pokemonScale = 492, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Delcatty + .categoryName = _("PRIM"), + .height = 11, + .weight = 326, + .description = gDelcattyPokedexText, + .pokemonScale = 322, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sableye + .categoryName = _("DARKNESS"), + .height = 5, + .weight = 110, + .description = gSableyePokedexText, + .pokemonScale = 451, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Mawile + .categoryName = _("DECEIVER"), + .height = 6, + .weight = 115, + .description = gMawilePokedexText, + .pokemonScale = 466, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aron + .categoryName = _("IRON ARMOR"), + .height = 4, + .weight = 600, + .description = gAronPokedexText, + .pokemonScale = 419, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lairon + .categoryName = _("IRON ARMOR"), + .height = 9, + .weight = 1200, + .description = gLaironPokedexText, + .pokemonScale = 275, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Aggron + .categoryName = _("IRON ARMOR"), + .height = 21, + .weight = 3600, + .description = gAggronPokedexText, + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 350, + .trainerOffset = 6, + }, + { //Meditite + .categoryName = _("MEDITATE"), + .height = 6, + .weight = 112, + .description = gMedititePokedexText, + .pokemonScale = 465, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Medicham + .categoryName = _("MEDITATE"), + .height = 13, + .weight = 315, + .description = gMedichamPokedexText, + .pokemonScale = 298, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Electrike + .categoryName = _("LIGHTNING"), + .height = 6, + .weight = 152, + .description = gElectrikePokedexText, + .pokemonScale = 290, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Manectric + .categoryName = _("DISCHARGE"), + .height = 15, + .weight = 402, + .description = gManectricPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + }, + { //Plusle + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .description = gPluslePokedexText, + .pokemonScale = 515, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Minun + .categoryName = _("CHEERING"), + .height = 4, + .weight = 42, + .description = gMinunPokedexText, + .pokemonScale = 512, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Volbeat + .categoryName = _("FIREFLY"), + .height = 7, + .weight = 177, + .description = gVolbeatPokedexText, + .pokemonScale = 442, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Illumise + .categoryName = _("FIREFLY"), + .height = 6, + .weight = 177, + .description = gIllumisePokedexText, + .pokemonScale = 572, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Roselia + .categoryName = _("THORN"), + .height = 3, + .weight = 20, + .description = gRoseliaPokedexText, + .pokemonScale = 677, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gulpin + .categoryName = _("STOMACH"), + .height = 4, + .weight = 103, + .description = gGulpinPokedexText, + .pokemonScale = 593, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swalot + .categoryName = _("POISON BAG"), + .height = 17, + .weight = 800, + .description = gSwalotPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 345, + .trainerOffset = 3, + }, + { //Carvanha + .categoryName = _("SAVAGE"), + .height = 8, + .weight = 208, + .description = gCarvanhaPokedexText, + .pokemonScale = 362, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sharpedo + .categoryName = _("BRUTAL"), + .height = 18, + .weight = 888, + .description = gSharpedoPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 317, + .trainerOffset = 3, + }, + { //Wailmer + .categoryName = _("BALL WHALE"), + .height = 20, + .weight = 1300, + .description = gWailmerPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 493, + .trainerOffset = 0, + }, + { //Wailord + .categoryName = _("FLOAT WHALE"), + .height = 145, + .weight = 3980, + .description = gWailordPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 1352, + .trainerOffset = 18, + }, + { //Numel + .categoryName = _("NUMB"), + .height = 7, + .weight = 240, + .description = gNumelPokedexText, + .pokemonScale = 342, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Camerupt + .categoryName = _("ERUPTION"), + .height = 19, + .weight = 2200, + .description = gCameruptPokedexText, + .pokemonScale = 256, + .pokemonOffset = 7, + .trainerScale = 345, + .trainerOffset = 6, + }, + { //Torkoal + .categoryName = _("COAL"), + .height = 5, + .weight = 804, + .description = gTorkoalPokedexText, + .pokemonScale = 390, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spoink + .categoryName = _("BOUNCE"), + .height = 7, + .weight = 306, + .description = gSpoinkPokedexText, + .pokemonScale = 423, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Grumpig + .categoryName = _("MANIPULATE"), + .height = 9, + .weight = 715, + .description = gGrumpigPokedexText, + .pokemonScale = 358, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Spinda + .categoryName = _("SPOT PANDA"), + .height = 11, + .weight = 50, + .description = gSpindaPokedexText, + .pokemonScale = 321, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Trapinch + .categoryName = _("ANT PIT"), + .height = 7, + .weight = 150, + .description = gTrapinchPokedexText, + .pokemonScale = 298, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Vibrava + .categoryName = _("VIBRATION"), + .height = 11, + .weight = 153, + .description = gVibravaPokedexText, + .pokemonScale = 370, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Flygon + .categoryName = _("MYSTIC"), + .height = 20, + .weight = 820, + .description = gFlygonPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + }, + { //Cacnea + .categoryName = _("CACTUS"), + .height = 4, + .weight = 513, + .description = gCacneaPokedexText, + .pokemonScale = 455, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cacturne + .categoryName = _("SCARECROW"), + .height = 13, + .weight = 774, + .description = gCacturnePokedexText, + .pokemonScale = 327, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Swablu + .categoryName = _("COTTON BIRD"), + .height = 4, + .weight = 12, + .description = gSwabluPokedexText, + .pokemonScale = 422, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Altaria + .categoryName = _("HUMMING"), + .height = 11, + .weight = 206, + .description = gAltariaPokedexText, + .pokemonScale = 327, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Zangoose + .categoryName = _("CAT FERRET"), + .height = 13, + .weight = 403, + .description = gZangoosePokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Seviper + .categoryName = _("FANG SNAKE"), + .height = 27, + .weight = 525, + .description = gSeviperPokedexText, + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Lunatone + .categoryName = _("METEORITE"), + .height = 10, + .weight = 1680, + .description = gLunatonePokedexText, + .pokemonScale = 300, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Solrock + .categoryName = _("METEORITE"), + .height = 12, + .weight = 1540, + .description = gSolrockPokedexText, + .pokemonScale = 328, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Barboach + .categoryName = _("WHISKERS"), + .height = 4, + .weight = 19, + .description = gBarboachPokedexText, + .pokemonScale = 581, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Whiscash + .categoryName = _("WHISKERS"), + .height = 9, + .weight = 236, + .description = gWhiscashPokedexText, + .pokemonScale = 317, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Corphish + .categoryName = _("RUFFIAN"), + .height = 6, + .weight = 115, + .description = gCorphishPokedexText, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Crawdaunt + .categoryName = _("ROGUE"), + .height = 11, + .weight = 328, + .description = gCrawdauntPokedexText, + .pokemonScale = 365, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Baltoy + .categoryName = _("CLAY DOLL"), + .height = 5, + .weight = 215, + .description = gBaltoyPokedexText, + .pokemonScale = 457, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Claydol + .categoryName = _("CLAY DOLL"), + .height = 15, + .weight = 1080, + .description = gClaydolPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 280, + .trainerOffset = 1, + }, + { //Lileep + .categoryName = _("SEA LILY"), + .height = 10, + .weight = 238, + .description = gLileepPokedexText, + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Cradily + .categoryName = _("BARNACLE"), + .height = 15, + .weight = 604, + .description = gCradilyPokedexText, + .pokemonScale = 267, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Anorith + .categoryName = _("OLD SHRIMP"), + .height = 7, + .weight = 125, + .description = gAnorithPokedexText, + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Armaldo + .categoryName = _("PLATE"), + .height = 15, + .weight = 682, + .description = gArmaldoPokedexText, + .pokemonScale = 312, + .pokemonOffset = 3, + .trainerScale = 271, + .trainerOffset = 0, + }, + { //Feebas + .categoryName = _("FISH"), + .height = 6, + .weight = 74, + .description = gFeebasPokedexText, + .pokemonScale = 423, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Milotic + .categoryName = _("TENDER"), + .height = 62, + .weight = 1620, + .description = gMiloticPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 360, + .trainerOffset = 7, + }, + { //Castform + .categoryName = _("WEATHER"), + .height = 3, + .weight = 8, + .description = gCastformPokedexText, + .pokemonScale = 435, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Kecleon + .categoryName = _("COLOR SWAP"), + .height = 10, + .weight = 220, + .description = gKecleonPokedexText, + .pokemonScale = 316, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shuppet + .categoryName = _("PUPPET"), + .height = 6, + .weight = 23, + .description = gShuppetPokedexText, + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Banette + .categoryName = _("MARIONETTE"), + .height = 11, + .weight = 125, + .description = gBanettePokedexText, + .pokemonScale = 262, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Duskull + .categoryName = _("REQUIEM"), + .height = 8, + .weight = 150, + .description = gDuskullPokedexText, + .pokemonScale = 406, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Dusclops + .categoryName = _("BECKON"), + .height = 16, + .weight = 306, + .description = gDusclopsPokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 299, + .trainerOffset = 1, + }, + { //Tropius + .categoryName = _("FRUIT"), + .height = 20, + .weight = 1000, + .description = gTropiusPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 344, + .trainerOffset = 7, + }, + { //Chimecho + .categoryName = _("WIND CHIME"), + .height = 6, + .weight = 10, + .description = gChimechoPokedexText, + .pokemonScale = 505, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Absol + .categoryName = _("DISASTER"), + .height = 12, + .weight = 470, + .description = gAbsolPokedexText, + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Wynaut + .categoryName = _("BRIGHT"), + .height = 6, + .weight = 140, + .description = gWynautPokedexText, + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Snorunt + .categoryName = _("SNOW HAT"), + .height = 7, + .weight = 168, + .description = gSnoruntPokedexText, + .pokemonScale = 380, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Glalie + .categoryName = _("FACE"), + .height = 15, + .weight = 2565, + .description = gGlaliePokedexText, + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 344, + .trainerOffset = 0, + }, + { //Spheal + .categoryName = _("CLAP"), + .height = 8, + .weight = 395, + .description = gSphealPokedexText, + .pokemonScale = 315, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Sealeo + .categoryName = _("BALL ROLL"), + .height = 11, + .weight = 876, + .description = gSealeoPokedexText, + .pokemonScale = 338, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Walrein + .categoryName = _("ICE BREAK"), + .height = 14, + .weight = 1506, + .description = gWalreinPokedexText, + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Clamperl + .categoryName = _("BIVALVE"), + .height = 4, + .weight = 525, + .description = gClamperlPokedexText, + .pokemonScale = 691, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Huntail + .categoryName = _("DEEP SEA"), + .height = 17, + .weight = 270, + .description = gHuntailPokedexText, + .pokemonScale = 307, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Gorebyss + .categoryName = _("SOUTH SEA"), + .height = 18, + .weight = 226, + .description = gGorebyssPokedexText, + .pokemonScale = 278, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Relicanth + .categoryName = _("LONGEVITY"), + .height = 10, + .weight = 234, + .description = gRelicanthPokedexText, + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Luvdisc + .categoryName = _("RENDEZVOUS"), + .height = 6, + .weight = 87, + .description = gLuvdiscPokedexText, + .pokemonScale = 371, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Bagon + .categoryName = _("ROCK HEAD"), + .height = 6, + .weight = 421, + .description = gBagonPokedexText, + .pokemonScale = 448, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Shelgon + .categoryName = _("ENDURANCE"), + .height = 11, + .weight = 1105, + .description = gShelgonPokedexText, + .pokemonScale = 311, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Salamence + .categoryName = _("DRAGON"), + .height = 15, + .weight = 1026, + .description = gSalamencePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Beldum + .categoryName = _("IRON BALL"), + .height = 6, + .weight = 952, + .description = gBeldumPokedexText, + .pokemonScale = 414, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metang + .categoryName = _("IRON CLAW"), + .height = 12, + .weight = 2025, + .description = gMetangPokedexText, + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Metagross + .categoryName = _("IRON LEG"), + .height = 16, + .weight = 5500, + .description = gMetagrossPokedexText, + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 447, + .trainerOffset = 9, + }, + { //Regirock + .categoryName = _("ROCK PEAK"), + .height = 17, + .weight = 2300, + .description = gRegirockPokedexText, + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 309, + .trainerOffset = 1, + }, + { //Regice + .categoryName = _("ICEBERG"), + .height = 18, + .weight = 1750, + .description = gRegicePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 2, + }, + { //Registeel + .categoryName = _("IRON"), + .height = 19, + .weight = 2050, + .description = gRegisteelPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 359, + .trainerOffset = 6, + }, + { //Latias + .categoryName = _("EON"), + .height = 14, + .weight = 400, + .description = gLatiasPokedexText, + .pokemonScale = 304, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Latios + .categoryName = _("EON"), + .height = 20, + .weight = 600, + .description = gLatiosPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 294, + .trainerOffset = 3, + }, + { //Kyogre + .categoryName = _("SEA BASIN"), + .height = 45, + .weight = 3520, + .description = gKyogrePokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + }, + { //Groudon + .categoryName = _("CONTINENT"), + .height = 35, + .weight = 9500, + .description = gGroudonPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + }, + { //Rayquaza + .categoryName = _("SKY HIGH"), + .height = 70, + .weight = 2065, + .description = gRayquazaPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 448, + .trainerOffset = 12, + }, + { //Jirachi + .categoryName = _("WISH"), + .height = 3, + .weight = 11, + .description = gJirachiPokedexText, + .pokemonScale = 608, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + }, + { //Deoxys + .categoryName = _("DNA"), + .height = 17, + .weight = 608, + .description = gDeoxysPokedexText, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, + }, +}; diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h new file mode 100644 index 000000000..565c1acaf --- /dev/null +++ b/src/data/pokemon/pokedex_text.h @@ -0,0 +1,2321 @@ +const u8 gDummyPokedexText[] = _( + "This is a newly discovered POKéMON.\n" + "It is currently under investigation.\n" + "No detailed information is available\n" + "at this time."); + +const u8 gBulbasaurPokedexText[] = _( + "BULBASAUR can be seen napping in bright\n" + "sunlight. There is a seed on its back.\n" + "By soaking up the sun’s rays, the seed\n" + "grows progressively larger."); + +const u8 gIvysaurPokedexText[] = _( + "To support its bulb, IVYSAUR’s legs\n" + "grow sturdy. If it spends more time lying in\n" + "the sunlight, the bud will soon bloom into\n" + "a large flower."); + +const u8 gVenusaurPokedexText[] = _( + "VENUSAUR’s flower is said to take on vivid\n" + "colors if it gets plenty of nutrition and\n" + "sunlight. The flower’s aroma soothes the\n" + "emotions of people."); + +const u8 gCharmanderPokedexText[] = _( + "The flame that burns at the tip of its\n" + "tail is an indication of its emotions.\n" + "The flame wavers when CHARMANDER is\n" + "happy, and blazes when it is enraged."); + +const u8 gCharmeleonPokedexText[] = _( + "Without pity, its sharp claws destroy foes.\n" + "If it encounters a strong enemy, it\n" + "becomes agitated, and the flame on its\n" + "tail flares with a bluish white color."); + +const u8 gCharizardPokedexText[] = _( + "A CHARIZARD flies about in search of\n" + "strong opponents. It breathes intense\n" + "flames that can melt any material. However,\n" + "it will never torch a weaker foe."); + +const u8 gSquirtlePokedexText[] = _( + "Its shell is not just for protection.\n" + "Its rounded shape and the grooves on its\n" + "surface minimize resistance in water,\n" + "enabling SQUIRTLE to swim at high speeds."); + +const u8 gWartortlePokedexText[] = _( + "Its large tail is covered with rich, thick\n" + "fur that deepens in color with age.\n" + "The scratches on its shell are evidence\n" + "of this POKéMON’s toughness in battle."); + +const u8 gBlastoisePokedexText[] = _( + "The waterspouts that protrude from its\n" + "shell are highly accurate. Their bullets of\n" + "water can precisely nail tin cans from\n" + "a distance of over 160 feet."); + +const u8 gCaterpiePokedexText[] = _( + "Its voracious appetite compels it to\n" + "devour leaves bigger than itself without\n" + "hesitation. It releases a terribly strong\n" + "odor from its antennae."); + +const u8 gMetapodPokedexText[] = _( + "Its shell is as hard as an iron slab.\n" + "A METAPOD does not move very much\n" + "because it is preparing its soft innards\n" + "for evolution inside the shell."); + +const u8 gButterfreePokedexText[] = _( + "It has a superior ability to search for\n" + "delicious honey from flowers. It can seek,\n" + "extract, and carry honey from flowers\n" + "blooming over six miles away."); + +const u8 gWeedlePokedexText[] = _( + "A WEEDLE has an extremely acute sense\n" + "of smell. It distinguishes its favorite\n" + "kinds of leaves from those it dislikes by\n" + "sniffing with its big red proboscis (nose)."); + +const u8 gKakunaPokedexText[] = _( + "It remains virtually immobile while it\n" + "clings to a tree. However, on the inside,\n" + "it busily prepares for evolution. This is\n" + "evident from how hot its shell becomes."); + +const u8 gBeedrillPokedexText[] = _( + "A BEEDRILL is extremely territorial.\n" + "For safety reasons, no one should \n" + "ever approach its nest. If angered,\n" + "they will attack in a swarm."); + +const u8 gPidgeyPokedexText[] = _( + "It has an extremely sharp sense of\n" + "direction. It can unerringly return home to\n" + "its nest, however far it may be removed\n" + "from its familiar surroundings."); + +const u8 gPidgeottoPokedexText[] = _( + "This POKéMON flies around, patrolling its\n" + "large territory. If its living space is\n" + "violated, it shows no mercy in thoroughly\n" + "punishing the foe with its sharp claws."); + +const u8 gPidgeotPokedexText[] = _( + "This POKéMON has gorgeous, glossy\n" + "feathers. Many TRAINERS are so captivated\n" + "by the beautiful feathers on its head that\n" + "they choose PIDGEOT as their POKéMON."); + +const u8 gRattataPokedexText[] = _( + "A RATTATA is cautious in the extreme.\n" + "Even while it is asleep, it constantly\n" + "moves its ears and listens for danger.\n" + "It will make its nest anywhere."); + +const u8 gRaticatePokedexText[] = _( + "A RATICATE’s sturdy fangs grow steadily.\n" + "To keep them ground down, it gnaws on\n" + "rocks and logs. It may even chew on the\n" + "walls of houses."); + +const u8 gSpearowPokedexText[] = _( + "Its loud cry can be heard over half a mile\n" + "away. If its high, keening cry is heard\n" + "echoing all around, it is a sign that they\n" + "are warning each other of danger."); + +const u8 gFearowPokedexText[] = _( + "Its long neck and elongated beak are\n" + "ideal for catching prey in soil or water.\n" + "It deftly moves this extended and skinny\n" + "beak to pluck prey."); + +const u8 gEkansPokedexText[] = _( + "An EKANS curls itself up in a spiral while\n" + "it rests. This position allows it to quickly\n" + "respond to an enemy from any direction\n" + "with a threat from its upraised head."); + +const u8 gArbokPokedexText[] = _( + "This POKéMON has a terrifically strong\n" + "constricting power. It can even flatten\n" + "steel oil drums. Once it wraps its body\n" + "around its foe, escaping is impossible."); + +const u8 gPikachuPokedexText[] = _( + "It stores electricity in the electric sacs\n" + "on its cheeks. When it releases pent-up\n" + "energy in a burst, the electric power is\n" + "equal to a lightning bolt."); + +const u8 gRaichuPokedexText[] = _( + "If it stores too much electricity, its\n" + "behavior turns aggressive. To avoid this,\n" + "it occasionally discharges excess energy\n" + "and calms itself down."); + +const u8 gSandshrewPokedexText[] = _( + "When it curls up in a ball, it can make any\n" + "attack bounce off harmlessly. Its hide has\n" + "turned tough and solid as a result of\n" + "living in the desert."); + +const u8 gSandslashPokedexText[] = _( + "It curls up in a ball to protect itself from\n" + "enemy attacks. It also curls up to prevent\n" + "heatstroke during the daytime when\n" + "temperatures rise sharply."); + +const u8 gNidoranFPokedexText[] = _( + "Its highly toxic barbs are thought to have\n" + "developed as protection for this small-\n" + "bodied POKéMON. When enraged, it releases\n" + "a horrible toxin from its horn."); + +const u8 gNidorinaPokedexText[] = _( + "When it is with its friends or\n" + "family, its barbs are tucked away to\n" + "prevent injury. It appears to become\n" + "nervous if separated from the others."); + +const u8 gNidoqueenPokedexText[] = _( + "It is adept at sending foes flying with\n" + "harsh tackles using its tough, scaly body.\n" + "This POKéMON is at its strongest when\n" + "it is defending its young."); + +const u8 gNidoranMPokedexText[] = _( + "The male NIDORAN has developed muscles\n" + "that freely move its ears in any direction.\n" + "Even the slightest sound does not escape\n" + "this POKéMON’s notice."); + +const u8 gNidorinoPokedexText[] = _( + "Its horn is harder than a diamond.\n" + "If it senses a hostile presence, all the\n" + "barbs on its back bristle up at once, and it\n" + "challenges the foe with all its might."); + +const u8 gNidokingPokedexText[] = _( + "A NIDOKING’s thick tail packs enormously\n" + "destructive power capable of toppling\n" + "a metal transmission tower. Once it goes\n" + "on a rampage, there is no stopping it."); + +const u8 gClefairyPokedexText[] = _( + "On every night of a full moon, they come\n" + "out to play. When dawn arrives, the tired\n" + "CLEFAIRY go to sleep nestled up against\n" + "each other in deep and quiet mountains."); + +const u8 gClefablePokedexText[] = _( + "A CLEFABLE uses its wings to skip lightly \n" + "as if it were flying. Its bouncy step\n" + "lets it even walk on water. On quiet,\n" + "moonlit nights, it strolls on lakes."); + +const u8 gVulpixPokedexText[] = _( + "It can freely control fire, making fiery\n" + "orbs fly like will-o’-the-wisps. Just\n" + "before evolution, its six tails grow hot \n" + "as if on fire."); + +const u8 gNinetalesPokedexText[] = _( + "It has long been said that each of the\n" + "nine tails embody an enchanted power.\n" + "A long-lived NINETALES will have fur that\n" + "shines like gold."); + +const u8 gJigglypuffPokedexText[] = _( + "Nothing can avoid falling asleep hearing a\n" + "JIGGLYPUFF’s song. The sound waves of its\n" + "singing voice match the brain waves of\n" + "someone in a deep sleep."); + +const u8 gWigglytuffPokedexText[] = _( + "Its fur is the ultimate in luxuriousness.\n" + "Sleeping alongside a WIGGLYTUFF is simply\n" + "divine. Its body expands seemingly without\n" + "end when it inhales."); + +const u8 gZubatPokedexText[] = _( + "While living in pitch-black caverns, their\n" + "eyes gradually grew shut and deprived\n" + "them of vision. They use ultrasonic waves\n" + "to detect obstacles."); + +const u8 gGolbatPokedexText[] = _( + "Its fangs easily puncture even thick\n" + "animal hide. It loves to feast on the blood\n" + "of people and POKéMON. It flits about in\n" + "darkness and strikes from behind."); + +const u8 gOddishPokedexText[] = _( + "This POKéMON grows by absorbing moonlight.\n" + "During the daytime, it buries itself in the\n" + "ground, leaving only its leaves exposed to\n" + "avoid detection by its enemies."); + +const u8 gGloomPokedexText[] = _( + "A horribly noxious honey drools from its\n" + "mouth. One whiff of the honey can result\n" + "in memory loss. Some fans are said to\n" + "enjoy this overwhelming stink, however."); + +const u8 gVileplumePokedexText[] = _( + "In seasons when it produces more pollen,\n" + "the air around a VILEPLUME turns yellow\n" + "with the powder as it walks. The pollen is\n" + "highly toxic and causes paralysis."); + +const u8 gParasPokedexText[] = _( + "A PARAS has parasitic tochukaso\n" + "mushrooms growing on its back. They grow\n" + "by drawing nutrients from the host. They\n" + "are valued as a medicine for long life."); + +const u8 gParasectPokedexText[] = _( + "PARASECT are known to infest the roots of\n" + "large trees en masse and drain nutrients.\n" + "When an infested tree dies, they move\n" + "onto another tree all at once."); + +const u8 gVenonatPokedexText[] = _( + "Its coat of thin, stiff hair that covers\n" + "its entire body is said to have evolved\n" + "for protection. Its large eyes never fail\n" + "to spot even miniscule prey."); + +const u8 gVenomothPokedexText[] = _( + "VENOMOTH are nocturnal--they only are\n" + "active at night. Their favorite prey are\n" + "insects that gather around streetlights,\n" + "attracted by the light in the darkness."); + +const u8 gDiglettPokedexText[] = _( + "DIGLETT are raised in most farms.\n" + "The reason is simple--wherever they\n" + "burrow, the soil is left perfectly tilled\n" + "for growing delicious crops."); + +const u8 gDugtrioPokedexText[] = _( + "Because the triplets originally split from\n" + "one body, they think exactly alike.\n" + "They work cooperatively to burrow\n" + "endlessly through the ground."); + +const u8 gMeowthPokedexText[] = _( + "MEOWTH withdraw their sharp claws into\n" + "their paws to silently sneak about.\n" + "For some reason, this POKéMON loves\n" + "shiny coins that glitter with light."); + +const u8 gPersianPokedexText[] = _( + "A PERSIAN’s six bold whiskers sense air\n" + "movements to determine what is in its\n" + "vicinity. It becomes docile if grabbed\n" + "by the whiskers."); + +const u8 gPsyduckPokedexText[] = _( + "When its headache intensifies, it starts\n" + "using strange powers. However, it has no\n" + "recollection of its powers, so it always\n" + "looks befuddled and bewildered."); + +const u8 gGolduckPokedexText[] = _( + "A GOLDUCK is an adept swimmer.\n" + "It sometimes joins competitive swimmers\n" + "in training. It uses psychic powers when\n" + "its forehead shimmers with light."); + +const u8 gMankeyPokedexText[] = _( + "When it starts shaking and its nasal\n" + "breathing turns rough, it’s a sure sign\n" + "of anger. However, since this happens\n" + "instantly, there is no time to flee."); + +const u8 gPrimeapePokedexText[] = _( + "When it becomes furious, its blood\n" + "circulation becomes more robust, and\n" + "its muscles are made stronger. But it\n" + "also becomes much less intelligent."); + +const u8 gGrowlithePokedexText[] = _( + "Its superb sense of smell ensures that\n" + "this POKéMON won’t forget any scent,\n" + "no matter what. It uses its sense of smell\n" + "to detect the emotions of others."); + +const u8 gArcaninePokedexText[] = _( + "This fleet-footed POKéMON is said to run\n" + "over 6,200 miles in a single day and night.\n" + "The fire that blazes wildly within its body\n" + "is its source of power."); + +const u8 gPoliwagPokedexText[] = _( + "It is possible to see this POKéMON’s spiral\n" + "innards right through its thin skin.\n" + "However, the skin is also very flexible.\n" + "Even sharp fangs bounce right off it."); + +const u8 gPoliwhirlPokedexText[] = _( + "Its body surface is always wet and slick\n" + "with an oily fluid. Because of this greasy\n" + "covering, it can easily slip and slide out\n" + "of the clutches of any enemy in battle."); + +const u8 gPoliwrathPokedexText[] = _( + "Its highly developed muscles never grow\n" + "fatigued, however much it exercises.\n" + "This POKéMON can swim back and forth\n" + "across the Pacific Ocean without effort."); + +const u8 gAbraPokedexText[] = _( + "A POKéMON that sleeps 18 hours a day.\n" + "Observation revealed that it uses\n" + "TELEPORT to change its location once\n" + "every hour."); + +const u8 gKadabraPokedexText[] = _( + "It is rumored that a boy with psychic\n" + "abilities suddenly transformed into\n" + "KADABRA while he was assisting research\n" + "into extrasensory powers."); + +const u8 gAlakazamPokedexText[] = _( + "While it has strong psychic abilities and\n" + "high intelligence, an ALAKAZAM’s muscles\n" + "are very weak. It uses psychic power to\n" + "move its body."); + +const u8 gMachopPokedexText[] = _( + "It continually undertakes strenuous\n" + "training to master all forms of martial\n" + "arts. Its strength lets it easily hoist\n" + "a sumo wrestler onto its shoulders."); + +const u8 gMachokePokedexText[] = _( + "A belt is worn by a MACHOKE to keep its\n" + "overwhelming power under control.\n" + "Because it is so dangerous, no one has\n" + "ever removed the belt."); + +const u8 gMachampPokedexText[] = _( + "It is impossible to defend against punches\n" + "and chops doled out by its four arms.\n" + "Its fighting spirit flares up when it faces\n" + "a tough opponent."); + +const u8 gBellsproutPokedexText[] = _( + "A BELLSPROUT’s thin and flexible body lets\n" + "it bend and sway to avoid any attack,\n" + "however strong it may be. From its mouth,\n" + "it leaks a fluid that melts even iron."); + +const u8 gWeepinbellPokedexText[] = _( + "At night, a WEEPINBELL hangs on to a tree\n" + "branch with its hooked rear and sleeps.\n" + "If it moves around in its sleep, it may\n" + "wake up to find itself on the ground."); + +const u8 gVictreebelPokedexText[] = _( + "The long vine extending from its head is\n" + "waved about as if it were a living thing to\n" + "attract prey. When an unsuspecting victim\n" + "approaches, it is swallowed whole."); + +const u8 gTentacoolPokedexText[] = _( + "Its body is almost entirely composed of\n" + "water. It ensnares its foe with its two\n" + "long tentacles, then stabs with the poison\n" + "stingers at their tips."); + +const u8 gTentacruelPokedexText[] = _( + "It lives in complex rock formations on\n" + "the ocean floor and traps prey using its\n" + "80 tentacles. Its red orbs glow when it\n" + "grows excited or agitated."); + +const u8 gGeodudePokedexText[] = _( + "It climbs mountain paths using only the\n" + "power of its arms. Because they look just\n" + "like boulders lining paths, hikers may step\n" + "on them without noticing."); + +const u8 gGravelerPokedexText[] = _( + "They descend from mountains by tumbling\n" + "down steep slopes. They are so brutal,\n" + "they smash aside obstructing trees and\n" + "massive boulders with thunderous tackles."); + +const u8 gGolemPokedexText[] = _( + "It is said to live in volcanic craters\n" + "on mountain peaks. Once a year, it sheds\n" + "its hide and grows larger. The shed hide\n" + "crumbles and returns to the soil."); + +const u8 gPonytaPokedexText[] = _( + "A PONYTA is very weak at birth. It can\n" + "barely stand up. Its legs become stronger\n" + "as it stumbles and falls while trying to\n" + "keep up with its parent."); + +const u8 gRapidashPokedexText[] = _( + "It usually canters casually in the fields\n" + "and plains. But once a RAPIDASH turns\n" + "serious, its fiery manes flare and blaze\n" + "as it gallops its way up to 150 mph."); + +const u8 gSlowpokePokedexText[] = _( + "It catches prey by dipping its tail in\n" + "water at the side of a river. But it often\n" + "forgets what it is doing and spends entire\n" + "days just loafing at water’s edge."); + +const u8 gSlowbroPokedexText[] = _( + "Its tail has a SHELLDER firmly attached\n" + "with a bite. As a result, the tail can’t be\n" + "used for fishing anymore. This forces it\n" + "to reluctantly swim and catch prey."); + +const u8 gMagnemitePokedexText[] = _( + "The units at its sides are extremely\n" + "powerful magnets. They generate enough\n" + "magnetism to draw in iron objects from\n" + "over 300 feet away."); + +const u8 gMagnetonPokedexText[] = _( + "It is actually three MAGNEMITE linked\n" + "by magnetism. It generates powerful radio\n" + "waves that raise temperatures by 3.6\n" + "degrees F within a 3,300-foot radius."); + +const u8 gFarfetchdPokedexText[] = _( + "It is always seen with a stick from a plant.\n" + "Apparently, there are good sticks and bad\n" + "sticks. This POKéMON occasionally fights\n" + "with others over choice sticks."); + +const u8 gDoduoPokedexText[] = _( + "Even while eating or sleeping, one of the\n" + "heads remains always vigilant for any sign\n" + "of danger. When threatened, it flees at\n" + "over 60 miles per hour."); + +const u8 gDodrioPokedexText[] = _( + "A peculiar POKéMON species with three\n" + "heads. It vigorously races across grassy\n" + "plains even in arid seasons with little\n" + "rainfall."); + +const u8 gSeelPokedexText[] = _( + "SEEL hunt for prey in frigid, ice-covered\n" + "seas. When it needs to breathe, it punches\n" + "a hole through the ice with the sharply\n" + "protruding section of its head."); + +const u8 gDewgongPokedexText[] = _( + "It loves to snooze on bitterly cold ice.\n" + "The sight of this POKéMON sleeping on\n" + "a glacier was mistakenly thought to be\n" + "a mermaid by a mariner long ago."); + +const u8 gGrimerPokedexText[] = _( + "Born from polluted sludge in the sea,\n" + "GRIMER’s favorite food is anything filthy.\n" + "They feed on wastewater pumped out from\n" + "factories."); + +const u8 gMukPokedexText[] = _( + "It prefers warm and humid habitats.\n" + "In the summertime, the toxic substances\n" + "in its body intensify, making MUK reek like\n" + "putrid kitchen garbage."); + +const u8 gShellderPokedexText[] = _( + "At night, it burrows a hole in the seafloor\n" + "with its broad tongue to make a place to\n" + "sleep. While asleep, it closes its shell,\n" + "but leaves its tongue hanging out."); + +const u8 gCloysterPokedexText[] = _( + "It swims in the sea by swallowing water,\n" + "then jetting it out toward the rear.\n" + "The CLOYSTER shoots spikes from its\n" + "shell using the same system."); + +const u8 gGastlyPokedexText[] = _( + "When exposed to a strong wind, a GASTLY’s\n" + "gaseous body quickly dwindles away.\n" + "They cluster under the eaves of houses\n" + "to escape the ravages of wind."); + +const u8 gHaunterPokedexText[] = _( + "If a HAUNTER beckons you while it is\n" + "floating in darkness, don’t approach it.\n" + "This POKéMON will try to lick you with its\n" + "tongue and steal your life away."); + +const u8 gGengarPokedexText[] = _( + "Deep in the night, your shadow cast by\n" + "a streetlight may suddenly overtake you.\n" + "It is actually a GENGAR running past\n" + "you, pretending to be your shadow."); + +const u8 gOnixPokedexText[] = _( + "There is a magnet in its brain that\n" + "prevents an ONIX from losing direction\n" + "while tunneling. As it grows older, its body\n" + "becomes steadily rounder and smoother."); + +const u8 gDrowzeePokedexText[] = _( + "If your nose becomes itchy while you are\n" + "sleeping, it’s a sure sign that a DROWZEE is\n" + "standing above your pillow and trying to\n" + "eat your dream through your nostrils."); + +const u8 gHypnoPokedexText[] = _( + "The arcing movement and glitter of the\n" + "pendulum in a HYPNO’s hand lull the foe\n" + "into deep hypnosis. While searching for\n" + "prey, it polishes the pendulum."); + +const u8 gKrabbyPokedexText[] = _( + "KRABBY live in holes dug into beaches.\n" + "On sandy shores with little in the way\n" + "of food, they can be seen squabbling with\n" + "each other over territory."); + +const u8 gKinglerPokedexText[] = _( + "It waves its huge, oversized claw in the\n" + "air to communicate with others.\n" + "But since the claw is so heavy, this\n" + "POKéMON quickly tires."); + +const u8 gVoltorbPokedexText[] = _( + "It bears an uncanny and unexplained\n" + "resemblance to a POKé BALL. Because it\n" + "explodes at the slightest shock, even\n" + "veteran TRAINERS treat it with caution."); + +const u8 gElectrodePokedexText[] = _( + "They appear in great numbers at electric\n" + "power plants. Because they feed on\n" + "electricity, they cause massive and\n" + "chaotic blackouts in nearby cities."); + +const u8 gExeggcutePokedexText[] = _( + "It consists of six eggs that care for each\n" + "other. The eggs attract each other and\n" + "spin around. When cracks increasingly\n" + "appear, it is close to evolution."); + +const u8 gExeggutorPokedexText[] = _( + "Originally from the tropics, EXEGGUTOR’s\n" + "heads grow larger from exposure to strong\n" + "sunlight. It is said that when the heads\n" + "fall, they group to form an EXEGGCUTE."); + +const u8 gCubonePokedexText[] = _( + "It pines for the mother it will never see\n" + "again. Seeing a likeness of its mother in\n" + "the full moon, it cries. The stains on the\n" + "skull it wears are from its tears."); + +const u8 gMarowakPokedexText[] = _( + "A MAROWAK is the evolved form of a CUBONE\n" + "that has grown tough by overcoming the\n" + "grief of losing its mother. Its tempered\n" + "and hardened spirit is not easily broken."); + +const u8 gHitmonleePokedexText[] = _( + "Its legs freely stretch and contract.\n" + "Using these springlike limbs, it bowls over\n" + "foes with devastating kicks. After battle,\n" + "it rubs down its tired legs."); + +const u8 gHitmonchanPokedexText[] = _( + "A HITMONCHAN is said to possess the\n" + "spirit of a boxer who aimed to become the\n" + "world champion. Having an indomitable\n" + "spirit means that it will never give up."); + +const u8 gLickitungPokedexText[] = _( + "Whenever it sees something unfamiliar,\n" + "it always licks the object because it\n" + "memorizes things by texture and taste.\n" + "It is somewhat put off by sour things."); + +const u8 gKoffingPokedexText[] = _( + "Getting up close to a KOFFING will give\n" + "you a chance to observe, through its thin\n" + "skin, the toxic gases swirling inside. It\n" + "blows up at the slightest stimulation."); + +const u8 gWeezingPokedexText[] = _( + "By diluting its toxic gases with a special\n" + "process, the highest grade of perfume can\n" + "be extracted. To WEEZING, gases emanating\n" + "from garbage are the ultimate feast."); + +const u8 gRhyhornPokedexText[] = _( + "Once it starts running, it doesn’t stop.\n" + "Its tiny brain makes it so stupid that it\n" + "can’t remember why it started running in\n" + "the first place."); + +const u8 gRhydonPokedexText[] = _( + "Its horn, which rotates like a drill,\n" + "destroys tall buildings with one strike.\n" + "It stands on its hind legs, and its brain\n" + "is well developed."); + +const u8 gChanseyPokedexText[] = _( + "CHANSEY lay nutritionally excellent eggs\n" + "every day. The eggs are so delicious, they\n" + "are eagerly devoured by even those people\n" + "who have lost their appetite."); + +const u8 gTangelaPokedexText[] = _( + "Its vines snap off easily and painlessly\n" + "if they are grabbed, allowing it to make a\n" + "quick getaway. The lost vines are replaced\n" + "by new growth the very next day."); + +const u8 gKangaskhanPokedexText[] = _( + "If you come across a young KANGASKHAN\n" + "playing by itself, never try to catch it.\n" + "The baby’s parent is sure to be in the area,\n" + "and it will become violently enraged."); + +const u8 gHorseaPokedexText[] = _( + "By cleverly flicking the fins on its back\n" + "side to side, it moves in any direction\n" + "while facing forward. It spits ink to\n" + "escape if it senses danger."); + +const u8 gSeadraPokedexText[] = _( + "The poisonous barbs all over its body are\n" + "highly valued as ingredients for making\n" + "traditional herbal medicine. It shows no\n" + "mercy to anything approaching its nest."); + +const u8 gGoldeenPokedexText[] = _( + "In the springtime, schools of GOLDEEN\n" + "can be seen swimming up falls and rivers.\n" + "It metes out staggering damage with its\n" + "single horn."); + +const u8 gSeakingPokedexText[] = _( + "It punches holes in boulders on stream-\n" + "beds. This is a clever innovation that\n" + "prevents its eggs from being attacked or\n" + "washed away by the current."); + +const u8 gStaryuPokedexText[] = _( + "It gathers with others in the night and\n" + "makes its red core glow on and off with\n" + "the twinkling stars. It can regenerate\n" + "limbs if they are severed from its body."); + +const u8 gStarmiePokedexText[] = _( + "People in ancient times imagined that\n" + "STARMIE were transformed from the\n" + "reflections of stars that twinkled on\n" + "gentle waves at night."); + +const u8 gMrmimePokedexText[] = _( + "A MR. MIME is a master of pantomime. It can\n" + "convince others that something unseeable\n" + "actually exists. Once believed, the\n" + "imaginary object does become real."); + +const u8 gScytherPokedexText[] = _( + "Its blindingly fast speed adds to the\n" + "sharpness of its twin forearm scythes.\n" + "The scythes can slice through thick logs\n" + "in one wicked stroke."); + +const u8 gJynxPokedexText[] = _( + "A JYNX sashays rhythmically as if it were\n" + "dancing. Its motions are so bouncingly\n" + "alluring, people seeing it are compelled to\n" + "shake their hips without noticing."); + +const u8 gElectabuzzPokedexText[] = _( + "When a storm approaches, it competes with\n" + "others to scale heights that are likely to\n" + "be stricken by lightning. Some towns use\n" + "ELECTABUZZ in place of lightning rods."); + +const u8 gMagmarPokedexText[] = _( + "In battle, it blows out intense flames from\n" + "all over its body to intimidate its foe.\n" + "These fiery bursts create heat waves that\n" + "ignite grass and trees in the area."); + +const u8 gPinsirPokedexText[] = _( + "Their pincers are strong enough to\n" + "shatter thick logs. Because they dislike\n" + "cold, PINSIR burrow and sleep under\n" + "the ground on chilly nights."); + +const u8 gTaurosPokedexText[] = _( + "It is not satisfied unless it is rampaging\n" + "at all times. If there is no opponent for\n" + "TAUROS to battle, it will charge at thick\n" + "trees and knock them down to calm itself."); + +const u8 gMagikarpPokedexText[] = _( + "Its swimming muscles are weak, so it is\n" + "easily washed away by currents. In places\n" + "where water pools, you can see many\n" + "MAGIKARP deposited there by the flow."); + +const u8 gGyaradosPokedexText[] = _( + "It is an extremely vicious and violent\n" + "POKéMON. When humans begin to fight,\n" + "it will appear and burn everything to the\n" + "ground with intensely hot flames."); + +const u8 gLaprasPokedexText[] = _( + "People have driven LAPRAS almost to the\n" + "point of extinction. In the evenings,\n" + "it is said to sing plaintively as it seeks\n" + "what few others of its kind still remain."); + +const u8 gDittoPokedexText[] = _( + "A DITTO rearranges its cell structure to\n" + "transform itself. However, if it tries to\n" + "change based on its memory, it will get\n" + "details wrong."); + +const u8 gEeveePokedexText[] = _( + "An EEVEE has an unstable genetic makeup\n" + "that suddenly mutates due to its\n" + "environment. Radiation from various\n" + "STONES causes this POKéMON to evolve."); + +const u8 gVaporeonPokedexText[] = _( + "VAPOREON underwent a spontaneous\n" + "mutation and grew fins and gills that\n" + "allow them to live underwater. They have\n" + "the ability to freely control water."); + +const u8 gJolteonPokedexText[] = _( + "Its cells generate weak power that is\n" + "amplified by its fur’s static electricity\n" + "to drop thunderbolts. The bristling fur is\n" + "made of electrically charged needles."); + +const u8 gFlareonPokedexText[] = _( + "FLAREON’s fluffy fur releases heat into\n" + "the air so that its body does not get\n" + "excessively hot. Its body temperature can\n" + "rise to a maximum of 1,650 degrees F."); + +const u8 gPorygonPokedexText[] = _( + "It is capable of reverting itself entirely\n" + "back to program data in order to enter\n" + "cyberspace. A PORYGON is copy-\n" + "protected so it cannot be duplicated."); + +const u8 gOmanytePokedexText[] = _( + "One of the ancient and long-since-extinct\n" + "POKéMON that have been regenerated\n" + "from fossils by humans. If attacked,\n" + "it withdraws into its hard shell."); + +const u8 gOmastarPokedexText[] = _( + "An OMASTAR uses its tentacles to capture\n" + "its prey. It is believed to have become\n" + "extinct because its shell grew too large,\n" + "making its movements slow and ponderous."); + +const u8 gKabutoPokedexText[] = _( + "It is a POKéMON that has been regenerated\n" + "from a fossil. However, in rare cases, living\n" + "examples have been discovered. KABUTO\n" + "have not changed for 300 million years."); + +const u8 gKabutopsPokedexText[] = _( + "KABUTOPS once swam underwater to hunt \n" + "for prey. It was apparently evolving from\n" + "being a water dweller to living on land as\n" + "evident from changes in its gills and legs."); + +const u8 gAerodactylPokedexText[] = _( + "AERODACTYL is a POKéMON from the age\n" + "of dinosaurs. It was regenerated from DNA\n" + "extracted from amber. It is imagined to\n" + "have been the king of the skies."); + +const u8 gSnorlaxPokedexText[] = _( + "SNORLAX’s typical day consists of nothing\n" + "more than eating and sleeping. It is such\n" + "a docile POKéMON that there are children\n" + "who use its big belly as a place to play."); + +const u8 gArticunoPokedexText[] = _( + "ARTICUNO is a legendary bird POKéMON that\n" + "can control ice. The flapping of its wings\n" + "chills the air. As a result, it is said that\n" + "when this POKéMON flies, snow will fall."); + +const u8 gZapdosPokedexText[] = _( + "ZAPDOS is a legendary bird POKéMON that\n" + "has the ability to control electricity.\n" + "It usually lives in thunderclouds. It gains\n" + "power if it is stricken by lightning bolts."); + +const u8 gMoltresPokedexText[] = _( + "MOLTRES is a legendary bird POKéMON\n" + "that can control fire. If injured, it is said\n" + "to dip its body in the molten magma of\n" + "a volcano to burn and heal itself."); + +const u8 gDratiniPokedexText[] = _( + "A DRATINI continually molts and sloughs\n" + "off its old skin. It does so because the\n" + "life energy within its body steadily builds\n" + "to reach uncontrollable levels."); + +const u8 gDragonairPokedexText[] = _( + "A DRAGONAIR stores an enormous amount of\n" + "energy inside its body. It is said to alter\n" + "the weather around it by loosing energy\n" + "from the crystals on its neck and tail."); + +const u8 gDragonitePokedexText[] = _( + "It can circle the globe in just 16 hours.\n" + "It is a kindhearted POKéMON that leads\n" + "lost and foundering ships in a storm\n" + "to the safety of land."); + +const u8 gMewtwoPokedexText[] = _( + "A POKéMON that was created by genetic\n" + "manipulation. However, even though the\n" + "scientific power of humans made its body,\n" + "they failed to give it a warm heart."); + +const u8 gMewPokedexText[] = _( + "A MEW is said to possess the genes of all\n" + "POKéMON. It is capable of making itself\n" + "invisible at will, so it entirely avoids\n" + "notice even if it approaches people."); + +const u8 gChikoritaPokedexText[] = _( + "It waves its leaf around to keep foes\n" + "at bay. However, a sweet fragrance also\n" + "wafts from the leaf, creating a friendly\n" + "atmosphere that becalms the battlers."); + +const u8 gBayleefPokedexText[] = _( + "A BAYLEEF’s neck is ringed by curled-up\n" + "leaves. Inside each leaf is a small tree\n" + "shoot. The fragrance of this shoot\n" + "makes people peppy."); + +const u8 gMeganiumPokedexText[] = _( + "The fragrance of a MEGANIUM’s flower\n" + "soothes and calms emotions. In battle,\n" + "it gives off more of its becalming scent\n" + "to blunt the foe’s fighting spirit."); + +const u8 gCyndaquilPokedexText[] = _( + "It flares flames from its back to protect\n" + "itself. The fire burns vigorously if the\n" + "POKéMON is angry. When it is tired,\n" + "it sputters with incomplete combustion."); + +const u8 gQuilavaPokedexText[] = _( + "It intimidates foes with intense gusts of\n" + "flames and superheated air. Its quick\n" + "nimbleness lets it dodge attacks even\n" + "while scorching an enemy."); + +const u8 gTyphlosionPokedexText[] = _( + "It can hide behind a shimmering heat haze\n" + "that it creates using its intense flames.\n" + "TYPHLOSION create blazing explosive\n" + "blasts that burn everything to cinders."); + +const u8 gTotodilePokedexText[] = _( + "Despite its small body, TOTODILE’s jaws\n" + "are very powerful. While it may think it is\n" + "just playfully nipping, its bite has enough\n" + "strength to cause serious injury."); + +const u8 gCroconawPokedexText[] = _( + "Once its jaws clamp down on its foe, it will\n" + "absolutely not let go. Because the tips of\n" + "its fangs are forked back like fishhooks,\n" + "they become irremovably embedded."); + +const u8 gFeraligatrPokedexText[] = _( + "It opens its huge mouth to intimidate\n" + "enemies. In battle, it runs using its thick\n" + "and powerful hind legs to charge the\n" + "foe with incredible speed."); + +const u8 gSentretPokedexText[] = _( + "They take turns standing guard when it\n" + "is time to sleep. The sentry awakens the\n" + "others if it senses danger. If one becomes\n" + "separated, it turns sleepless with fear."); + +const u8 gFurretPokedexText[] = _( + "A FURRET has a very slim build. When under\n" + "attack, it can squirm through narrow\n" + "spaces and get away. In spite of its short\n" + "limbs, it is very nimble and fleet."); + +const u8 gHoothootPokedexText[] = _( + "It has an internal organ that senses\n" + "the earth’s rotation. Using this special\n" + "organ, a HOOTHOOT begins hooting at\n" + "precisely the same time every day."); + +const u8 gNoctowlPokedexText[] = _( + "It unfailingly catches prey in darkness.\n" + "NOCTOWL owe their success to superior\n" + "vision that allows them to see in minimal\n" + "light, and to their supple and silent wings."); + +const u8 gLedybaPokedexText[] = _( + "LEDYBA communicate using a fluid that\n" + "they secrete from where the legs join the\n" + "body. They are said to convey feelings to\n" + "others by altering the fluid’s scent."); + +const u8 gLedianPokedexText[] = _( + "It is said that in lands with clean air,\n" + "where the stars fill the sky, there live\n" + "many LEDIAN. For good reason, they use\n" + "the light of the stars as energy."); + +const u8 gSpinarakPokedexText[] = _( + "The web it spins can be considered its\n" + "second nervous system. It is said that a\n" + "SPINARAK determines its prey by the tiny\n" + "vibrations it feels through the web."); + +const u8 gAriadosPokedexText[] = _( + "Its feet are tipped with tiny hooked claws\n" + "that enable it to scuttle on ceilings and\n" + "vertical walls. It constricts its foe with\n" + "thin and strong silk webbing."); + +const u8 gCrobatPokedexText[] = _( + "Over the course of evolution, its hind legs\n" + "turned into wings. By alternately resting\n" + "its front and rear wings, it can fly all day\n" + "without having to stop."); + +const u8 gChinchouPokedexText[] = _( + "When it senses danger, it discharges\n" + "positive and negative electricity from its\n" + "two antennae. It lives in depths beyond\n" + "sunlight’s reach."); + +const u8 gLanturnPokedexText[] = _( + "The light-emitting orbs on its back are\n" + "very bright. They are formed from a part of\n" + "its dorsal fin. This POKéMON illuminates\n" + "the inky darkness of deep seas."); + +const u8 gPichuPokedexText[] = _( + "It is still inept at retaining electricity.\n" + "When it is startled, it discharges power\n" + "accidentally. It gets better at holding\n" + "power as it grows older."); + +const u8 gCleffaPokedexText[] = _( + "On nights with many shooting stars,\n" + "CLEFFA can be seen dancing in a ring.\n" + "They dance until daybreak, when they\n" + "quench their thirst with the morning dew."); + +const u8 gIgglybuffPokedexText[] = _( + "Its soft and pliable body is very bouncy.\n" + "When it sings continuously with all its\n" + "might, its body steadily turns a deepening\n" + "pink color."); + +const u8 gTogepiPokedexText[] = _( + "As its energy, it uses the feelings of\n" + "compassion and pleasure exuded by\n" + "people and POKéMON. It stores up happy\n" + "feelings in its shell, then shares them out."); + +const u8 gTogeticPokedexText[] = _( + "It is said to be a POKéMON that brings good\n" + "fortune. When it spots someone who is pure\n" + "of heart, a TOGETIC appears and shares its\n" + "happiness with that person."); + +const u8 gNatuPokedexText[] = _( + "It runs up short trees that grow on the\n" + "savanna to peck at new shoots.\n" + "A NATU’s eyes look as if they are\n" + "always observing something."); + +const u8 gXatuPokedexText[] = _( + "It has the enigmatic power of foreseeing\n" + "the future. Some people in different lands\n" + "have long believed that XATU are\n" + "emissaries from another world."); + +const u8 gMareepPokedexText[] = _( + "Its fluffy wool rubs together and builds\n" + "a static charge. The more energy is\n" + "charged, the more brightly the lightbulb\n" + "at the tip of its tail glows."); + +const u8 gFlaaffyPokedexText[] = _( + "Its fleece quality changes to generate\n" + "strong static electricity with a small\n" + "amount of wool. The bare, slick parts of its\n" + "hide are shielded against electricity."); + +const u8 gAmpharosPokedexText[] = _( + "It gives off so much light that it can be\n" + "seen even from space. People in the old\n" + "days used its light to send signals back\n" + "and forth with others far away."); + +const u8 gBellossomPokedexText[] = _( + "Its flower petals deepen in color through\n" + "exposure to sunlight. When cloudy weather\n" + "persists, it does a dance that is thought\n" + "to be a ritual for summoning the sun."); + +const u8 gMarillPokedexText[] = _( + "Its body is covered with water-repellent\n" + "fur. Because of the fur, it can swim\n" + "through water at high speed without being\n" + "slowed by the water’s resistance."); + +const u8 gAzumarillPokedexText[] = _( + "It lives in water virtually all day long.\n" + "Its body color and pattern act as\n" + "camouflage that makes it tough for\n" + "enemies to spot in water."); + +const u8 gSudowoodoPokedexText[] = _( + "It mimics a tree to avoid being attacked\n" + "by enemies. But since its forelegs\n" + "remain green throughout the year, it is\n" + "easily identified as a fake in the winter."); + +const u8 gPolitoedPokedexText[] = _( + "The curled hair on its head proves its\n" + "status as a king. It is said that the\n" + "longer and curlier the hair, the more\n" + "respect it earns from its peers."); + +const u8 gHoppipPokedexText[] = _( + "This POKéMON drifts and floats with the\n" + "wind. If it senses the approach of strong\n" + "winds, a HOPPIP links leaves with others\n" + "to prepare against being blown away."); + +const u8 gSkiploomPokedexText[] = _( + "It blossoms when the temperature rises\n" + "above 64 degrees F. Because its flower’s\n" + "blooming changes with the temperature,\n" + "it is sometimes used as a thermometer."); + +const u8 gJumpluffPokedexText[] = _( + "JUMPLUFF ride warm southern winds to\n" + "cross the sea and fly to foreign lands.\n" + "This POKéMON lands when it encounters\n" + "cold air while it is floating."); + +const u8 gAipomPokedexText[] = _( + "Its tail ends with a dexterous, handlike\n" + "appendage. However, because it uses the\n" + "tail so much, AIPOM’s real hands have\n" + "become rather clumsy."); + +const u8 gSunkernPokedexText[] = _( + "SUNKERN try to minimize movement to\n" + "conserve the nutrients they have stored\n" + "in their bodies for evolution. They will\n" + "not eat, subsisting only on morning dew."); + +const u8 gSunfloraPokedexText[] = _( + "SUNFLORA convert solar energy into\n" + "nutrition. They are highly active in the\n" + "warm daytime but suddenly stop moving as\n" + "soon as the sun sets."); + +const u8 gYanmaPokedexText[] = _( + "It can see 360 degrees without moving\n" + "its eyes. It is a great flier capable of\n" + "making sudden stops and turning midair to\n" + "quickly chase down targeted prey."); + +const u8 gWooperPokedexText[] = _( + "WOOPER usually live in water but come\n" + "out onto land seeking food occasionally.\n" + "On land, they coat their bodies with a\n" + "gooey, toxic film."); + +const u8 gQuagsirePokedexText[] = _( + "A QUAGSIRE hunts by leaving its mouth wide\n" + "open in water and waiting for its prey to\n" + "blunder in. Because it doesn’t move, it\n" + "does not get very hungry."); + +const u8 gEspeonPokedexText[] = _( + "An ESPEON is extremely loyal to any\n" + "TRAINER it considers to be worthy. It is\n" + "said to have developed precognitive\n" + "powers to protect its TRAINER from harm."); + +const u8 gUmbreonPokedexText[] = _( + "UMBREON evolved from exposure to the\n" + "moon’s energy pulses. It lurks in darkness\n" + "and waits for its foes to move. The rings\n" + "on its body glow when it leaps to attack."); + +const u8 gMurkrowPokedexText[] = _( + "MURKROW were feared as the alleged\n" + "bearers of ill fortune. It shows strong\n" + "interest in anything that sparkles. It will\n" + "even try to steal rings from women."); + +const u8 gSlowkingPokedexText[] = _( + "It undertakes research every day to\n" + "solve the mysteries of the world.\n" + "However, it apparently forgets everything\n" + "if the SHELLDER on its head comes off."); + +const u8 gMisdreavusPokedexText[] = _( + "A MISDREAVUS frightens people with a\n" + "creepy, sobbing cry. It apparently uses\n" + "its red spheres to absorb the fear of foes\n" + "as its nutrition."); + +const u8 gUnownPokedexText[] = _( + "This POKéMON is shaped like ancient text\n" + "characters. Although research is ongoing,\n" + "it is a mystery as to which came first,\n" + "the ancient writings or the various UNOWN."); + +const u8 gWobbuffetPokedexText[] = _( + "Usually docile, a WOBBUFFET strikes back\n" + "ferociously if its black tail is attacked.\n" + "It makes its lair in caves where it waits\n" + "for nightfall."); + +const u8 gGirafarigPokedexText[] = _( + "A GIRAFARIG is an herbivore--it eats\n" + "grass and tree shoots. While it is eating,\n" + "its tail makes chewing and swallowing\n" + "motions as if it were also eating."); + +const u8 gPinecoPokedexText[] = _( + "A PINECO hangs from a tree branch and\n" + "waits for prey. While eating, if it is\n" + "disturbed by someone shaking its tree, it\n" + "falls on the ground and suddenly explodes."); + +const u8 gForretressPokedexText[] = _( + "It keeps itself inside its steel shell.\n" + "The shell is opened when it is catching\n" + "prey, but it is so quick that the shell’s\n" + "inside cannot be seen."); + +const u8 gDunsparcePokedexText[] = _( + "Its drill-tipped tail is used to burrow into\n" + "the ground backwards. This POKéMON is\n" + "known to make its nest in complex shapes\n" + "deep under the ground."); + +const u8 gGligarPokedexText[] = _( + "It glides without making a single sound.\n" + "It grasps the face of its foe using its\n" + "hind and large front claws, then stabs\n" + "with its poison barb."); + +const u8 gSteelixPokedexText[] = _( + "STEELIX live even further underground\n" + "than ONIX. This POKéMON is known to dig\n" + "toward the earth’s core, reaching a depth\n" + "of over six-tenths of a mile underground."); + +const u8 gSnubbullPokedexText[] = _( + "By baring its fangs and making a scary\n" + "face, it sends smaller POKéMON scurrying\n" + "in terror. The SNUBBULL does seem a\n" + "little sad at making its foes flee."); + +const u8 gGranbullPokedexText[] = _( + "It has a particularly well-developed lower\n" + "jaw. The huge fangs are heavy, causing\n" + "it to tilt its head. Unless it is startled, it\n" + "will not try to bite."); + +const u8 gQwilfishPokedexText[] = _( + "A QWILFISH uses the pressure of water\n" + "it swallows to shoot toxic quills all at\n" + "once from all over its body. It finds\n" + "swimming to be somewhat challenging."); + +const u8 gScizorPokedexText[] = _( + "A SCIZOR has a body with the hardness of\n" + "steel. It is not easily fazed by ordinary\n" + "sorts of attacks. It flaps its wings to\n" + "regulate its body temperature."); + +const u8 gShucklePokedexText[] = _( + "A SHUCKLE hides under rocks, keeping its\n" + "body concealed inside its shell while\n" + "eating stored berries. The berries mix with\n" + "its body fluids to become a juice."); + +const u8 gHeracrossPokedexText[] = _( + "They gather in forests seeking the sweet\n" + "sap of trees. It is completely clad in a\n" + "steel-hard shell. It is proud of its horn,\n" + "which it uses to fling foes."); + +const u8 gSneaselPokedexText[] = _( + "A SNEASEL scales trees by punching its\n" + "hooked claws into the bark. It seeks out\n" + "unguarded nests and steals eggs for food\n" + "while the parents are away."); + +const u8 gTeddiursaPokedexText[] = _( + "It licks its palms that are sweetened by\n" + "being soaked in honey. A TEDDIURSA makes\n" + "its own honey by blending fruits and pollen\n" + "collected by BEEDRILL."); + +const u8 gUrsaringPokedexText[] = _( + "In forests, it is said that there are many\n" + "streams and towering trees where an\n" + "URSARING gathers food. It walks through\n" + "its forest collecting food every day."); + +const u8 gSlugmaPokedexText[] = _( + "It is a species of POKéMON that lives in\n" + "volcanic areas. If its body cools, its skin\n" + "hardens and immobilizes it. To avoid that,\n" + "it sleeps near magma."); + +const u8 gMagcargoPokedexText[] = _( + "The shell on its back is made of hardened\n" + "magma. Tens of thousands of years spent\n" + "living in volcanic craters have turned\n" + "MAGCARGO’s bodies into magma."); + +const u8 gSwinubPokedexText[] = _( + "It roots for food by rubbing its snout\n" + "against the ground. Its favorite food is a\n" + "mushroom that grows under dried grass.\n" + "It occasionally roots out hot springs."); + +const u8 gPiloswinePokedexText[] = _( + "A PILOSWINE is covered by a thick coat\n" + "of long hair for enduring freezing cold.\n" + "It uses its tusks to dig up food that has\n" + "been buried under ice."); + +const u8 gCorsolaPokedexText[] = _( + "CORSOLA live in warm southern seas.\n" + "If the sea becomes polluted, the beautiful\n" + "coral stalks become discolored and crumble\n" + "away in tatters."); + +const u8 gRemoraidPokedexText[] = _( + "A REMORAID uses its abdominal muscles\n" + "to forcefully expel swallowed water, then\n" + "shoot down flying prey. When evolution\n" + "approaches, it travels down rivers."); + +const u8 gOctilleryPokedexText[] = _( + "It ensnares its foe with its suction-\n" + "cupped tentacles before delivering the\n" + "finishing blow. If the foe turns out to be\n" + "too strong, it spews ink to escape."); + +const u8 gDelibirdPokedexText[] = _( + "It carries food bundled up in its tail.\n" + "There was a famous explorer who\n" + "managed to scale Mt. Everest thanks\n" + "to a DELIBIRD sharing its food."); + +const u8 gMantinePokedexText[] = _( + "On sunny days, schools of MANTINE can be\n" + "seen elegantly leaping over the waves.\n" + "It is not bothered by the REMORAID that\n" + "hitches rides."); + +const u8 gSkarmoryPokedexText[] = _( + "A POKéMON that has a body and wings of\n" + "steel. People in the past used feathers\n" + "fallen from SKARMORY to make swords and\n" + "knives."); + +const u8 gHoundourPokedexText[] = _( + "HOUNDOUR communicate with each other\n" + "using a variety of cries to corner their\n" + "prey. This POKéMON’s remarkable teamwork\n" + "is simply unparalleled."); + +const u8 gHoundoomPokedexText[] = _( + "In a HOUNDOOM pack, the one with its horns\n" + "raked sharply back serves a leadership\n" + "role. They choose their leader by fighting\n" + "among themselves."); + +const u8 gKingdraPokedexText[] = _( + "It sleeps quietly, deep on the seafloor.\n" + "When it comes up to the surface, it\n" + "creates a huge whirlpool that can swallow\n" + "even ships."); + +const u8 gPhanpyPokedexText[] = _( + "PHANPY’s big ears serve as broad fans.\n" + "When it becomes hot, it flaps the ears\n" + "busily to cool down. Even the young are\n" + "very strong."); + +const u8 gDonphanPokedexText[] = _( + "A DONPHAN is so strong it can easily haul\n" + "a dump truck. Its hide has toughened to a\n" + "rock-hard state. An ordinary sort of\n" + "attack won’t even leave a scratch."); + +const u8 gPorygon2PokedexText[] = _( + "It was created by humans using the power\n" + "of science. It has been given artificial\n" + "intelligence that enables it to learn new\n" + "gestures and emotions on its own."); + +const u8 gStantlerPokedexText[] = _( + "STANTLER’s magnificent antlers were\n" + "once traded at high prices as works of art.\n" + "As a result, this POKéMON was hunted\n" + "close to extinction."); + +const u8 gSmearglePokedexText[] = _( + "A SMEARGLE marks its territory using a\n" + "fluid that leaks out from the tip of its\n" + "tail. About 5,000 different marks left by\n" + "this POKéMON have been found."); + +const u8 gTyroguePokedexText[] = _( + "TYROGUE become stressed out if they do\n" + "not get to train every day. When raising\n" + "this POKéMON, the TRAINER must establish\n" + "a regular training schedule."); + +const u8 gHitmontopPokedexText[] = _( + "Its technique of kicking while spinning is\n" + "a remarkable mix of both offense and\n" + "defense. HITMONTOP travel faster\n" + "spinning than they do walking."); + +const u8 gSmoochumPokedexText[] = _( + "It actively runs about, but also falls\n" + "often. Whenever it falls, it will check its\n" + "reflection on a lake’s surface to make\n" + "sure its face hasn’t become dirty."); + +const u8 gElekidPokedexText[] = _( + "If it touches metal and discharges the\n" + "electricity it has stored in its body, an\n" + "ELEKID begins swinging its arms in circles\n" + "to recharge itself."); + +const u8 gMagbyPokedexText[] = _( + "If a MAGBY is spouting yellow flames from\n" + "its mouth, it is in good health. When it is\n" + "fatigued, black smoke will be mixed in with\n" + "the flames."); + +const u8 gMiltankPokedexText[] = _( + "It gives over five gallons of milk daily.\n" + "Its sweet milk is enjoyed by children and\n" + "grown-ups alike. People who can’t drink\n" + "milk turn it into yogurt and eat it instead."); + +const u8 gBlisseyPokedexText[] = _( + "If it senses sadness with its fluffy fur,\n" + "a BLISSEY will rush over to the sad person,\n" + "however far away, to share an egg of\n" + "happiness that brings a smile to any face."); + +const u8 gRaikouPokedexText[] = _( + "RAIKOU embodies the speed of lightning.\n" + "Its roars send shock waves shuddering\n" + "through the air and ground as if\n" + "lightning bolts were crashing down."); + +const u8 gEnteiPokedexText[] = _( + "ENTEI embodies the passion of magma.\n" + "It is thought to have been born in the\n" + "eruption of a volcano. It blasts fire that\n" + "consumes all that it touches."); + +const u8 gSuicunePokedexText[] = _( + "SUICUNE embodies the compassion of\n" + "a pure spring of water. It runs across\n" + "the land with gliding elegance. It has the\n" + "power to purify dirty water."); + +const u8 gLarvitarPokedexText[] = _( + "A LARVITAR is born deep under the ground.\n" + "It must eat its way through the soil above\n" + "and reach the surface for it to see its\n" + "parents’ faces."); + +const u8 gPupitarPokedexText[] = _( + "A PUPITAR creates a gas inside its body\n" + "that it ejects under compression to propel\n" + "itself like a jet. Its body can withstand\n" + "a collision with solid steel."); + +const u8 gTyranitarPokedexText[] = _( + "A TYRANITAR is so overwhelmingly powerful,\n" + "it can bring down a whole mountain to make\n" + "its nest. It roams in mountains seeking\n" + "new opponents to fight."); + +const u8 gLugiaPokedexText[] = _( + "LUGIA is so powerful even a light\n" + "fluttering of its wings can blow apart\n" + "houses. As a result, it chooses to live out\n" + "of sight deep under the sea."); + +const u8 gHoOhPokedexText[] = _( + "Its feathers--which glow in seven colors\n" + "depending on the angle at which they are\n" + "struck by light--are thought to bring joy.\n" + "It is said to live at the foot of a rainbow."); + +const u8 gCelebiPokedexText[] = _( + "This POKéMON came from the future by\n" + "crossing over time. It is thought that so\n" + "long as CELEBI appears, a bright and\n" + "shining future awaits us."); + +const u8 gTreeckoPokedexText[] = _( + "It makes its nest in a giant tree in the\n" + "forest. It ferociously guards against\n" + "anything nearing its territory. It is said\n" + "to be the protector of the forest’s trees."); + +const u8 gGrovylePokedexText[] = _( + "Leaves grow out of this POKéMON’s body.\n" + "They help obscure a GROVYLE from the eyes\n" + "of its enemies while it is in a thickly\n" + "overgrown forest."); + +const u8 gSceptilePokedexText[] = _( + "In the jungle, its power is without equal.\n" + "This POKéMON carefully grows trees and\n" + "plants. It regulates its body temperature\n" + "by basking in sunlight."); + +const u8 gTorchicPokedexText[] = _( + "If attacked, it strikes back by spitting\n" + "balls of fire it forms in its stomach.\n" + "A TORCHIC dislikes darkness because it\n" + "can’t see its surroundings."); + +const u8 gCombuskenPokedexText[] = _( + "It lashes out with 10 kicks per second.\n" + "Its strong fighting instinct compels it\n" + "to keep up its offensive until the\n" + "opponent gives up."); + +const u8 gBlazikenPokedexText[] = _( + "It learns martial arts that use punches\n" + "and kicks. Every several years, its old\n" + "feathers burn off, and new, supple\n" + "feathers grow back in their place."); + +const u8 gMudkipPokedexText[] = _( + "On land, it can powerfully lift large\n" + "boulders by planting its four feet and\n" + "heaving. It sleeps by burying itself in soil\n" + "at the water’s edge."); + +const u8 gMarshtompPokedexText[] = _( + "Its toughened hind legs enable it to stand\n" + "upright. Because it weakens if its skin\n" + "dries out, it replenishes fluids by playing\n" + "in mud."); + +const u8 gSwampertPokedexText[] = _( + "If it senses the approach of a storm and\n" + "a tidal wave, it protects its seaside nest\n" + "by piling up boulders. It swims as fast as\n" + "a jet ski."); + +const u8 gPoochyenaPokedexText[] = _( + "It savagely threatens foes with bared\n" + "fangs. It chases after fleeing targets\n" + "tenaciously. It turns tail and runs,\n" + "however, if the foe strikes back."); + +const u8 gMightyenaPokedexText[] = _( + "In the wild, MIGHTYENA live in a pack.\n" + "They never defy their leader’s orders.\n" + "They defeat foes with perfectly\n" + "coordinated teamwork."); + +const u8 gZigzagoonPokedexText[] = _( + "Rubbing its nose against the ground, it\n" + "always wanders about back and forth in\n" + "search of something. It is distinguished\n" + "by the zigzag footprints it leaves."); + +const u8 gLinoonePokedexText[] = _( + "It is exceedingly fast if it only has to run\n" + "in a straight line. When it spots pond-\n" + "dwelling prey underwater, it quickly leaps\n" + "in and catches it with its sharp claws."); + +const u8 gWurmplePokedexText[] = _( + "It sticks to tree branches and eats\n" + "leaves. The thread it spits from its mouth,\n" + "which becomes gooey when it touches\n" + "air, slows the movement of its foes."); + +const u8 gSilcoonPokedexText[] = _( + "It prepares for evolution using the\n" + "energy it stored while it was a WURMPLE.\n" + "It keeps watch over the surroundings with\n" + "its two eyes."); + +const u8 gBeautiflyPokedexText[] = _( + "Its colorfully patterned wings are its\n" + "most prominent feature. It flies through\n" + "flower-covered fields collecting pollen.\n" + "It attacks ferociously when angered."); + +const u8 gCascoonPokedexText[] = _( + "To avoid detection by its enemies, it hides\n" + "motionlessly beneath large leaves and in\n" + "the gaps of branches. It also attaches\n" + "dead leaves to its body for camouflage."); + +const u8 gDustoxPokedexText[] = _( + "It is a nocturnal POKéMON that flies from\n" + "fields and mountains to the attraction of\n" + "streetlights at night. It looses highly\n" + "toxic powder from its wings."); + +const u8 gLotadPokedexText[] = _( + "This POKéMON lives in ponds with clean\n" + "water. It is known to ferry small POKéMON\n" + "across ponds by carrying them on the\n" + "broad leaf on its head."); + +const u8 gLombrePokedexText[] = _( + "In the evening, it takes great delight in\n" + "popping out of rivers and startling people.\n" + "It feeds on aquatic moss that grows on\n" + "rocks in the riverbed."); + +const u8 gLudicoloPokedexText[] = _( + "When it hears festive music, all the cells\n" + "in its body become stimulated, and it\n" + "begins moving in rhythm. It does not\n" + "quail even when it faces a tough opponent."); + +const u8 gSeedotPokedexText[] = _( + "It hangs off branches and absorbs\n" + "nutrients. When it finishes eating, its\n" + "body becomes so heavy that it drops to\n" + "the ground with a thump."); + +const u8 gNuzleafPokedexText[] = _( + "A forest-dwelling POKéMON that is skilled\n" + "at climbing trees. Its long and pointed\n" + "nose is its weak point. It loses power if\n" + "the nose is gripped."); + +const u8 gShiftryPokedexText[] = _( + "It is said to arrive on chilly, wintry winds.\n" + "Feared from long ago as the guardian of\n" + "forests, this POKéMON lives in a deep\n" + "forest where people do not venture."); + +const u8 gTaillowPokedexText[] = _( + "Although it is small, it is very courageous.\n" + "It will take on a larger SKARMORY on an\n" + "equal footing. However, its will weakens if\n" + "it becomes hungry."); + +const u8 gSwellowPokedexText[] = _( + "A SWELLOW dives upon prey from far above.\n" + "It never misses its targets. It takes to\n" + "the skies in search of lands with a warm\n" + "climate."); + +const u8 gWingullPokedexText[] = _( + "It makes its nest on a sheer cliff at the\n" + "edge of the sea. It has trouble keeping\n" + "its wings flapping in flight. Instead, it\n" + "soars on updrafts."); + +const u8 gPelipperPokedexText[] = _( + "It skims the tops of waves as it flies.\n" + "When it spots prey, it uses its large beak\n" + "to scoop up the victim with water.\n" + "It protects its eggs in its beak."); + +const u8 gRaltsPokedexText[] = _( + "A RALTS has the power to sense the\n" + "emotions of people and POKéMON with the\n" + "horns on its head. It takes cover if it\n" + "senses any hostility."); + +const u8 gKirliaPokedexText[] = _( + "A KIRLIA has the psychic power to create \n" + "a rip in the dimensions and see into the\n" + "future. It is said to dance with pleasure\n" + "on sunny mornings."); + +const u8 gGardevoirPokedexText[] = _( + "It apparently does not feel the pull of\n" + "gravity because it supports itself with\n" + "psychic power. It will give its life to\n" + "protect its TRAINER."); + +const u8 gSurskitPokedexText[] = _( + "They gather on puddles after evening\n" + "downpours, gliding across the surface\n" + "of water as if sliding. It secretes honey\n" + "with a sweet aroma from its head."); + +const u8 gMasquerainPokedexText[] = _( + "It intimidates foes with the large eyelike\n" + "patterns on its antennae. Because it can’t\n" + "fly if its wings get wet, it shelters itself\n" + "from rain under large trees and eaves."); + +const u8 gShroomishPokedexText[] = _( + "It loves to eat damp, composted soil in\n" + "forests. If you enter a forest after a\n" + "long rain, you can see many SHROOMISH\n" + "feasting on composted soil."); + +const u8 gBreloomPokedexText[] = _( + "It scatters spores from holes in the cap\n" + "on its head. It loves warm and humid\n" + "climates. It feeds on trees and plants in\n" + "fields and forests."); + +const u8 gSlakothPokedexText[] = _( + "It sleeps virtually all day and night long.\n" + "It doesn’t change its nest its entire life,\n" + "but it sometimes travels great distances\n" + "by swimming in rivers."); + +const u8 gVigorothPokedexText[] = _( + "It can’t keep still because its blood boils\n" + "with energy. It runs through the fields\n" + "and mountains all day to calm itself. If it\n" + "doesn’t, it can’t sleep at night."); + +const u8 gSlakingPokedexText[] = _( + "Hordes of SLAKING gather around trees\n" + "when fruits come into season. They wait\n" + "around patiently for ripened fruits to fall\n" + "out of the trees."); + +const u8 gNincadaPokedexText[] = _( + "It makes its nest at the roots of a mighty\n" + "tree. Using its whiskerlike antennae, it\n" + "probes its surroundings in the\n" + "pitch-black darkness of soil."); + +const u8 gNinjaskPokedexText[] = _( + "Because it darts about vigorously at high\n" + "speed, it is very difficult to see. Hearing\n" + "its distinctive cries for too long induces\n" + "a headache."); + +const u8 gShedinjaPokedexText[] = _( + "A peculiar POKéMON that floats in air even\n" + "though its wings remain completely still.\n" + "The inside of its body is hollow and\n" + "utterly dark."); + +const u8 gWhismurPokedexText[] = _( + "Its cries equal a jet plane in volume.\n" + "It inhales through its ear canals. Because\n" + "of this system, it can cry continually\n" + "without having to catch its breath."); + +const u8 gLoudredPokedexText[] = _( + "It positions the round speakers on its\n" + "head to assail foes with ultrasonic waves\n" + "at massive volume. It builds power by\n" + "stomping the ground."); + +const u8 gExploudPokedexText[] = _( + "It has sound-generating organs all over\n" + "its body. It communicates with others by\n" + "adjusting the tone and volume of the cries\n" + "it emits."); + +const u8 gMakuhitaPokedexText[] = _( + "It loves to toughen up its body above all\n" + "else. If you hear quaking rumbles in a cave,\n" + "it is the sound of MAKUHITA undertaking\n" + "strenuous training."); + +const u8 gHariyamaPokedexText[] = _( + "It has the habit of challenging others\n" + "without hesitation to tests of strength.\n" + "It’s been known to stand on train tracks\n" + "and stop trains using forearm thrusts."); + +const u8 gAzurillPokedexText[] = _( + "Its tail, which is packed with nutrition,\n" + "is very bouncy like a rubber ball. On sunny\n" + "days they gather at the edge of water and\n" + "splash about for fun."); + +const u8 gNosepassPokedexText[] = _( + "Its body emits a powerful magnetism.\n" + "It feeds on prey that is pulled in by the\n" + "force. Its magnetism is stronger in cold\n" + "seasons."); + +const u8 gSkittyPokedexText[] = _( + "A SKITTY’s adorably cute behavior makes it\n" + "highly popular. In battle, it makes its tail\n" + "puff out. It threatens foes with a sharp\n" + "growl."); + +const u8 gDelcattyPokedexText[] = _( + "Rather than keeping a permanent lair,\n" + "it habitually seeks comfortable spots and\n" + "sleeps there. It is nocturnal and becomes\n" + "active at dusk."); + +const u8 gSableyePokedexText[] = _( + "It digs branching holes in caves using its\n" + "sharp claws in search of food--raw gems.\n" + "A SABLEYE lurks in darkness and is seen\n" + "only rarely."); + +const u8 gMawilePokedexText[] = _( + "Its giant jaws are actually steel horns\n" + "that transformed. It fools foes into\n" + "complacency with its adorable gestures,\n" + "then chomps them with its huge jaws."); + +const u8 gAronPokedexText[] = _( + "A POKéMON that is clad in steel armor.\n" + "A new suit of armor is made when it evolves.\n" + "The old, discarded armor is salvaged as\n" + "metal for making iron products."); + +const u8 gLaironPokedexText[] = _( + "When two LAIRON meet in the wild, they\n" + "fight for territory by bashing into each\n" + "other with their steel bodies. The sound\n" + "of their collision carries for miles."); + +const u8 gAggronPokedexText[] = _( + "Its iron horns grow longer a little at\n" + "a time. They are used to determine the\n" + "AGGRON’s age. The gouges in its armor are\n" + "worn with pride as mementos from battles."); + +const u8 gMedititePokedexText[] = _( + "It continually meditates for hours every\n" + "day. As a result of rigorous and dedicated\n" + "yoga training, it has tempered its\n" + "spiritual power so much it can fly."); + +const u8 gMedichamPokedexText[] = _( + "Through crushingly harsh yoga training, it\n" + "gained the power to foretell its foe’s\n" + "actions. It battles with elegant, dance-\n" + "like movement."); + +const u8 gElectrikePokedexText[] = _( + "It generates electricity using friction\n" + "from the atmosphere. In seasons with\n" + "especially arid air, its entire body blazes\n" + "with violent showers of sparks."); + +const u8 gManectricPokedexText[] = _( + "Because lightning falls in their vicinities,\n" + "MANECTRIC were thought to have been born\n" + "from lightning. In battle, they create\n" + "thunderclouds."); + +const u8 gPluslePokedexText[] = _( + "It has the trait of cheering on its fellow\n" + "POKéMON. By shorting out the electricity\n" + "it releases from its paws, it creates\n" + "pom-poms for cheering."); + +const u8 gMinunPokedexText[] = _( + "At a meeting of POKéMON academics, it was\n" + "announced that simultaneous exposure to\n" + "electricity from a PLUSLE and MINUN will\n" + "promote circulation and boost vitality."); + +const u8 gVolbeatPokedexText[] = _( + "With their taillights lit, VOLBEAT fly in\n" + "a swarm, drawing geometric designs in the\n" + "night sky. They move their nests if their\n" + "pond water becomes dirty."); + +const u8 gIllumisePokedexText[] = _( + "A nocturnal POKéMON that becomes active\n" + "upon nightfall. It leads a VOLBEAT swarm\n" + "to draw patterns in the night sky. Over 200\n" + "different patterns have been confirmed."); + +const u8 gRoseliaPokedexText[] = _( + "A ROSELIA that drinks nutritionally rich\n" + "springwater blooms with lovely flowers.\n" + "The fragrance of its flowers has the\n" + "effect of making its foes careless."); + +const u8 gGulpinPokedexText[] = _( + "This POKéMON’s stomach fluid can even\n" + "digest scrap iron. In one gulp, it can\n" + "swallow something that is as large as\n" + "itself."); + +const u8 gSwalotPokedexText[] = _( + "Its powerful stomach acid is capable of\n" + "digesting almost anything. The one thing\n" + "in the whole world a SWALOT can’t digest is\n" + "its own stomach."); + +const u8 gCarvanhaPokedexText[] = _( + "CARVANHA attack ships in swarms, making\n" + "them sink. Although it is said to be a very\n" + "vicious POKéMON, it timidly flees as soon\n" + "as it finds itself alone."); + +const u8 gSharpedoPokedexText[] = _( + "The vicious and sly gangster of the sea.\n" + "Its skin is specially textured to minimize\n" + "drag in water. Its speed tops out at over\n" + "75 miles per hour."); + +const u8 gWailmerPokedexText[] = _( + "While this POKéMON usually lives in the sea,\n" + "it can survive on land, although not too\n" + "long. It loses vitality if its body becomes\n" + "dried out."); + +const u8 gWailordPokedexText[] = _( + "It breathes through nostrils that it\n" + "raises above the sea. By inhaling to its\n" + "maximum capacity, a WAILORD can dive close\n" + "to 10,000 feet beneath the waves."); + +const u8 gNumelPokedexText[] = _( + "A NUMEL stores boiling magma in the hump\n" + "on its back. It is a hardy POKéMON that can\n" + "transport a 220-pound load. It has served\n" + "humans at work since long ago."); + +const u8 gCameruptPokedexText[] = _( + "A POKéMON that lives in the crater of\n" + "a volcano. Every 10 years, the volcanoes\n" + "on its back erupt violently. Research is\n" + "under way on the cause of eruption."); + +const u8 gTorkoalPokedexText[] = _( + "It battles using energy it gets from\n" + "burning coal. When loosing smoke from its\n" + "nostrils, it lets off a sound that is\n" + "similar to a locomotive’s horn."); + +const u8 gSpoinkPokedexText[] = _( + "A POKéMON that manipulates psychic power\n" + "at will. It doesn’t stop bouncing even when\n" + "it is asleep. It loves eating mushrooms\n" + "that grow underground."); + +const u8 gGrumpigPokedexText[] = _( + "It stores power in the black pearls on its\n" + "forehead. When it uses psychic power, it\n" + "performs an odd dance step. Its style of\n" + "dancing became hugely popular overseas."); + +const u8 gSpindaPokedexText[] = _( + "It is distinguished by a pattern of\n" + "spots that is always different. Its\n" + "unsteady, tottering walk has the\n" + "effect of fouling its foe’s aim."); + +const u8 gTrapinchPokedexText[] = _( + "Its big jaws crunch through boulders.\n" + "Because its head is so big, it has a hard\n" + "time getting back upright if it tips over\n" + "onto its back."); + +const u8 gVibravaPokedexText[] = _( + "It looses ultrasonic waves by rubbing its\n" + "wings together. Since a VIBRAVA’s wings\n" + "are still in the process of growing, it can\n" + "only fly short distances."); + +const u8 gFlygonPokedexText[] = _( + "The flapping of its wings sounds like\n" + "singing. To prevent detection by enemies,\n" + "it hides itself by flapping up a cloud of\n" + "desert sand."); + +const u8 gCacneaPokedexText[] = _( + "CACNEA live in deserts with virtually no\n" + "rainfall. It battles by swinging its thick,\n" + "spiked arms. Once a year, a yellow flower\n" + "blooms."); + +const u8 gCacturnePokedexText[] = _( + "After spending thousands of years in\n" + "harsh deserts, its blood transformed into\n" + "the same substances as sand. It is\n" + "nocturnal, so it hunts at night."); + +const u8 gSwabluPokedexText[] = _( + "A POKéMON that has wings like cottony\n" + "clouds. After enduring winter, in which\n" + "little food is available, SWABLU flocks\n" + "move closer to towns in the spring."); + +const u8 gAltariaPokedexText[] = _( + "It hums in a beautiful soprano voice.\n" + "It flies among white clouds in the blue\n" + "sky. It launches intensely hot fireballs\n" + "from its mouth."); + +const u8 gZangoosePokedexText[] = _( + "When it battles, it stands on its hind legs\n" + "and attacks with its sharply clawed\n" + "forelegs. Its fur bristles if it encounters\n" + "any SEVIPER."); + +const u8 gSeviperPokedexText[] = _( + "SEVIPER and ZANGOOSE are eternal rivals.\n" + "It counters a ZANGOOSE’s dazzling agility\n" + "with its swordlike tail, which also oozes\n" + "a horrible poison."); + +const u8 gLunatonePokedexText[] = _( + "It becomes very active on the night of\n" + "a full moon. This POKéMON was first\n" + "discovered 40 years ago at the site of\n" + "a meteor strike."); + +const u8 gSolrockPokedexText[] = _( + "Solar energy is the source of this \n" + "POKéMON’s power. On sunny days, groups of\n" + "SOLROCK line up facing the sun and absorb\n" + "its light."); + +const u8 gBarboachPokedexText[] = _( + "Its body is covered with a slimy film.\n" + "The film acts as a barrier to prevent germs\n" + "in muddy water from entering the\n" + "BARBOACH’s body."); + +const u8 gWhiscashPokedexText[] = _( + "Mysteriously, it can foretell earthquakes.\n" + "In the daytime, it sleeps in mud at the\n" + "bottom of a pond. When it awakens, it\n" + "continually feeds throughout the night."); + +const u8 gCorphishPokedexText[] = _( + "Once it grips prey with its large pincers,\n" + "it will never let go, no matter what.\n" + "It is a hardy POKéMON that can thrive\n" + "in any environment."); + +const u8 gCrawdauntPokedexText[] = _( + "A brutish POKéMON that loves to battle.\n" + "A veteran CRAWDAUNT that has prevailed in\n" + "hundreds of battles has giant pincers\n" + "marked with countless scars."); + +const u8 gBaltoyPokedexText[] = _( + "A BALTOY moves by spinning on its single\n" + "foot. It has been depicted in murals \n" + "adorning the walls of a once-bustling city\n" + "in an ancient age."); + +const u8 gClaydolPokedexText[] = _( + "A CLAYDOL sleeps while hovering in midair.\n" + "Its arms are separate from its body.\n" + "They are kept floating by the POKéMON’s\n" + "manipulation of psychic power."); + +const u8 gLileepPokedexText[] = _( + "It disguises itself as seaweed by making\n" + "its tentacles sway. Unsuspecting prey\n" + "that come too close are swallowed whole.\n" + "It became extinct 100 million years ago."); + +const u8 gCradilyPokedexText[] = _( + "It drags its heavy body along the\n" + "seafloor. It makes its nest in the shallows\n" + "of warm seas. CRADILY can be seen on\n" + "beaches when the tide goes out."); + +const u8 gAnorithPokedexText[] = _( + "It was resurrected from a fossil using the\n" + "power of science. It swims by undulating\n" + "the eight wings at its sides. They were\n" + "feet that adapted to life in the sea."); + +const u8 gArmaldoPokedexText[] = _( + "ARMALDO usually lives on land. However,\n" + "when it hunts for prey, it dives beneath\n" + "the ocean. It swims around using its two\n" + "large wings."); + +const u8 gFeebasPokedexText[] = _( + "FEEBAS live in ponds that are heavily\n" + "infested with weeds. Because of its\n" + "hopelessly shabby appearance, it\n" + "seems as if few TRAINERS raise it."); + +const u8 gMiloticPokedexText[] = _( + "It is said to live at the bottom of\n" + "large lakes. Considered to be the most\n" + "beautiful of all POKéMON, it has been\n" + "depicted in paintings and statues."); + +const u8 gCastformPokedexText[] = _( + "It alters its form depending on the\n" + "weather. Changes in the climate such as\n" + "the temperature and humidity appear to\n" + "affect its cellular structure."); + +const u8 gKecleonPokedexText[] = _( + "A POKéMON that has the ability to alter its\n" + "body colors to match its surroundings.\n" + "A KECLEON reverts to its original colors if\n" + "it is startled."); + +const u8 gShuppetPokedexText[] = _( + "This POKéMON roams about deep in the\n" + "night seeking such negative emotions as\n" + "grudges and envy. It retreats to its nest\n" + "when the sun begins to rise."); + +const u8 gBanettePokedexText[] = _( + "An abandoned plush doll became this\n" + "POKéMON. They are said to live in garbage\n" + "dumps and wander about in search of the\n" + "children that threw them away."); + +const u8 gDuskullPokedexText[] = _( + "A glare from its single scarlet eye makes\n" + "even burly grown-ups freeze in utter fear.\n" + "It is a nocturnal POKéMON that roams\n" + "about under the cloak of darkness."); + +const u8 gDusclopsPokedexText[] = _( + "It is thought that its body is hollow with\n" + "only a spectral ball of fire burning inside.\n" + "However, no one has been able to\n" + "confirm this theory as fact."); + +const u8 gTropiusPokedexText[] = _( + "It flies by flapping its broad leaves.\n" + "The bunch of fruit that grows around its\n" + "neck is deliciously sweet. In the spring,\n" + "it scatters pollen from its neck."); + +const u8 gChimechoPokedexText[] = _( + "They fly about very actively when the hot\n" + "season arrives. They communicate among\n" + "themselves using seven different and\n" + "distinguishing cries."); + +const u8 gAbsolPokedexText[] = _( + "It sharply senses even subtle changes in\n" + "the sky and the land to predict natural\n" + "disasters. It is a long-lived POKéMON that\n" + "has a life-span of 100 years."); + +const u8 gWynautPokedexText[] = _( + "A WYNAUT loves to eat sweet fruits.\n" + "It cleverly picks fruits using its earlike\n" + "arms. They gather in fruit gardens, drawn\n" + "by the fragrance."); + +const u8 gSnoruntPokedexText[] = _( + "They tend to move about in groups of\n" + "around five SNORUNT. In snowy regions,\n" + "it is said that when they are seen late at\n" + "night, snowfall will arrive by morning."); + +const u8 gGlaliePokedexText[] = _( + "A GLALIE has the power to instantaneously\n" + "freeze moisture in the atmosphere.\n" + "A dazzling cloud of diamondlike ice\n" + "crystals forms around its body."); + +const u8 gSphealPokedexText[] = _( + "It is completely covered with plushy fur.\n" + "As a result, it never feels the cold even\n" + "when it is rolling about on ice floes or\n" + "diving in the sea."); + +const u8 gSealeoPokedexText[] = _( + "SEALEO live in herds on ice floes. Using its\n" + "powerful flippers, it shatters ice.\n" + "It dives into the sea to hunt prey five\n" + "times a day."); + +const u8 gWalreinPokedexText[] = _( + "To protect its herd, the leader battles\n" + "anything that invades its territory, even\n" + "at the cost of its life. Its tusks may snap\n" + "off in battle."); + +const u8 gClamperlPokedexText[] = _( + "A CLAMPERL slams its shell closed on prey\n" + "to prevent escape. The pearl it creates\n" + "upon evolution is said to be infused with\n" + "a mysterious energy."); + +const u8 gHuntailPokedexText[] = _( + "To withstand the crushing pressure of\n" + "water deep under the sea, its spine is very\n" + "thick and sturdy. Its tail, which is shaped\n" + "like a small fish, has eyes that light up."); + +const u8 gGorebyssPokedexText[] = _( + "A GOREBYSS siphons the body fluids of prey\n" + "through its thin, tubular mouth. Its light\n" + "pink body color turns vivid when it\n" + "finishes feeding."); + +const u8 gRelicanthPokedexText[] = _( + "A POKéMON that was once believed to have\n" + "been extinct. The species has not changed\n" + "its form for 100 million years. It walks on\n" + "the seafloor using its pectoral fins."); + +const u8 gLuvdiscPokedexText[] = _( + "LUVDISC make the branches of CORSOLA\n" + "their nests. There is a custom from long\n" + "ago of giving a LUVDISC as a gift to\n" + "express one’s feelings of love."); + +const u8 gBagonPokedexText[] = _( + "Although it is small, this POKéMON is very\n" + "powerful because its body is a bundle of\n" + "muscles. It launches head-butts with its\n" + "ironlike skull."); + +const u8 gShelgonPokedexText[] = _( + "It hardly eats while it awaits evolution.\n" + "It becomes hardier by enduring hunger.\n" + "Its shell peels off the instant it begins\n" + "to evolve."); + +const u8 gSalamencePokedexText[] = _( + "After many long years, its cellular\n" + "structure underwent a sudden mutation to\n" + "grow wings. When angered, it loses all\n" + "thought and rampages out of control."); + +const u8 gBeldumPokedexText[] = _( + "When BELDUM gather in a swarm, they move\n" + "in perfect unison as if they were but one\n" + "POKéMON. They communicate with each other\n" + "using brain waves."); + +const u8 gMetangPokedexText[] = _( + "The claws tipping its arms pack the\n" + "destructive power to tear through thick\n" + "iron sheets as if they were silk. It flies\n" + "at over 60 miles per hour."); + +const u8 gMetagrossPokedexText[] = _( + "METAGROSS has four brains that are joined\n" + "by a complex neural network. As a result of\n" + "integration, this POKéMON is smarter than\n" + "a supercomputer."); + +const u8 gRegirockPokedexText[] = _( + "A POKéMON that is made entirely of rocks\n" + "and boulders. If parts of its body chip off\n" + "in battle, REGIROCK repairs itself by\n" + "adding new rocks."); + +const u8 gRegicePokedexText[] = _( + "Its entire body is made of Antarctic ice.\n" + "After extensive studies, researchers\n" + "believe the ice was formed during an\n" + "ice age."); + +const u8 gRegisteelPokedexText[] = _( + "Its body is harder than any other kind of\n" + "metal. The body metal is composed of a\n" + "mysterious substance. Not only is it hard,\n" + "it shrinks and stretches flexibly."); + +const u8 gLatiasPokedexText[] = _( + "They make a small herd of only several\n" + "members. They rarely make contact with\n" + "people or other POKéMON. They disappear\n" + "if they sense enemies."); + +const u8 gLatiosPokedexText[] = _( + "Even in hiding, it can detect the locations\n" + "of others and sense their emotions since\n" + "it has telepathy. Its intelligence allows\n" + "it to understand human languages."); + +const u8 gKyogrePokedexText[] = _( + "KYOGRE has appeared in mythology as the\n" + "creator of the sea. After long years of\n" + "feuding with GROUDON, it took to sleep at\n" + "the bottom of the sea."); + +const u8 gGroudonPokedexText[] = _( + "GROUDON has appeared in mythology as the\n" + "creator of the land. It sleeps in magma\n" + "underground and is said to make volcanoes\n" + "erupt on awakening."); + +const u8 gRayquazaPokedexText[] = _( + "A POKéMON that flies endlessly in the\n" + "ozone layer. It is said it would descend\n" + "to the ground if KYOGRE and GROUDON\n" + "were to fight."); + +const u8 gJirachiPokedexText[] = _( + "JIRACHI is said to make wishes come true.\n" + "While it sleeps, a tough crystalline shell\n" + "envelops the body to protect it from\n" + "enemies."); + +const u8 gDeoxysPokedexText[] = _( + "A POKéMON that mutated from an\n" + "extraterrestrial virus exposed to a laser\n" + "beam. Its body is configured for superior\n" + "agility and speed."); diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h new file mode 100644 index 000000000..779ce3dcd --- /dev/null +++ b/src/data/pokemon_graphics/footprint_table.h @@ -0,0 +1,416 @@ +const u8 *const gMonFootprintTable[] = +{ + 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, +}; diff --git a/src/pokedex.c b/src/pokedex.c index 1405393c1..6d8e701f9 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_main.h" #include "bg.h" #include "data2.h" #include "decompress.h" @@ -87,35 +88,6 @@ struct UnknownStruct4 u8 unk9; }; -//TO BE CONVERTED TO C - -extern const u8 gUnknown_0855D30C[]; -extern struct BgTemplate gUnknown_0856E630[]; -extern struct WindowTemplate gUnknown_0856E640[]; -extern const u16 gUnknown_0856E610[16]; -extern const struct PokedexEntry gPokedexEntries[]; -extern struct BgTemplate gUnknown_0856E668[]; -extern struct WindowTemplate gUnknown_0856E670[]; -extern const u8 *gMonFootprintTable[]; -extern u8 gUnknown_0856ED08[][4]; -extern struct BgTemplate gUnknown_0856EFF8[]; -extern struct WindowTemplate gUnknown_0856F008[]; -extern const u8 gUnknown_0856ED9C[][4]; -extern const u8 gUnknown_0856EDB8[][4]; -extern const u8 gUnknown_0856EDD4[][4]; -extern const u8 gUnknown_0856EDF0[][4]; -extern const struct UnknownStruct1 gUnknown_0856EFC8[]; -extern const struct UnknownStruct3 gUnknown_0856ED30[]; -extern const struct UnknownStruct4 gUnknown_0856ED48[]; -extern const struct UnknownStruct2 gUnknown_0856EE0C[]; -extern const struct UnknownStruct2 gUnknown_0856EE5C[]; -extern const struct UnknownStruct2 gUnknown_0856EEB4[]; -extern const struct UnknownStruct2 gUnknown_0856EF14[]; -extern const struct UnknownStruct2 gUnknown_0856EE24[]; -extern const u8 gUnknown_0856EFAC[]; -extern const u8 gUnknown_0856EFAE[]; -extern const u8 gUnknown_0856EFB4[]; - #define HOENN_DEX_COUNT 202 #define NATIONAL_DEX_COUNT 386 @@ -654,7 +626,7 @@ static const union AnimCmd *const sSpriteAnimTable_855D190[] = sSpriteAnim_855D10C }; -const struct SpriteTemplate gUnknown_0855D194 = +static const struct SpriteTemplate gUnknown_0855D194 = { .tileTag = 4096, .paletteTag = 4096, @@ -665,7 +637,7 @@ const struct SpriteTemplate gUnknown_0855D194 = .callback = sub_80BE604, }; -const struct SpriteTemplate gUnknown_0855D1AC = +static const struct SpriteTemplate gUnknown_0855D1AC = { .tileTag = 4096, .paletteTag = 4096, @@ -676,7 +648,7 @@ const struct SpriteTemplate gUnknown_0855D1AC = .callback = sub_80BE658, }; -const struct SpriteTemplate gUnknown_0855D1C4 = +static const struct SpriteTemplate gUnknown_0855D1C4 = { .tileTag = 4096, .paletteTag = 4096, @@ -687,7 +659,7 @@ const struct SpriteTemplate gUnknown_0855D1C4 = .callback = sub_80BE758, }; -const struct SpriteTemplate gUnknown_0855D1DC = +static const struct SpriteTemplate gUnknown_0855D1DC = { .tileTag = 4096, .paletteTag = 4096, @@ -698,7 +670,7 @@ const struct SpriteTemplate gUnknown_0855D1DC = .callback = sub_80BE780, }; -const struct SpriteTemplate gUnknown_0855D1F4 = +static const struct SpriteTemplate gUnknown_0855D1F4 = { .tileTag = 4096, .paletteTag = 4096, @@ -709,7 +681,7 @@ const struct SpriteTemplate gUnknown_0855D1F4 = .callback = sub_80BE44C, }; -const struct SpriteTemplate gUnknown_0855D20C = +static const struct SpriteTemplate gUnknown_0855D20C = { .tileTag = 4096, .paletteTag = 4096, @@ -720,7 +692,7 @@ const struct SpriteTemplate gUnknown_0855D20C = .callback = sub_80BE44C, }; -const struct SpriteTemplate gUnknown_0855D224 = +static const struct SpriteTemplate gUnknown_0855D224 = { .tileTag = 4096, .paletteTag = 4096, @@ -731,7 +703,7 @@ const struct SpriteTemplate gUnknown_0855D224 = .callback = sub_80BE44C, }; -const struct SpriteTemplate gUnknown_0855D23C = +static const struct SpriteTemplate gUnknown_0855D23C = { .tileTag = 4096, .paletteTag = 4096, @@ -742,7 +714,7 @@ const struct SpriteTemplate gUnknown_0855D23C = .callback = sub_80BE44C, }; -const struct SpriteTemplate gUnknown_0855D254 = +static const struct SpriteTemplate gUnknown_0855D254 = { .tileTag = 4096, .paletteTag = 4096, @@ -753,22 +725,22 @@ const struct SpriteTemplate gUnknown_0855D254 = .callback = sub_80BE834, }; -const struct CompressedSpriteSheet gSpriteSheets_0855D26C[] = +static const struct CompressedSpriteSheet gSpriteSheets_0855D26C[] = { {gPokedexMenu2_Gfx, 0x2000, 4096}, {0} }; -const struct SpritePalette gSpritePalettes_0855D26C[] = +static const struct SpritePalette gSpritePalettes_0855D26C[] = { {gPokedexText_Pal, 4096}, {0} }; -const u8 gUnknown_0855D28C[] = {0x4, 0x8, 0x10, 0x20, 0x20}; -const u8 gUnknown_0855D291[] = {0x8, 0x4, 0x2, 0x1, 0x1}; +static const u8 gUnknown_0855D28C[] = {0x4, 0x8, 0x10, 0x20, 0x20}; +static const u8 gUnknown_0855D291[] = {0x8, 0x4, 0x2, 0x1, 0x1}; -const struct BgTemplate gBgTemplates_0855D298[] = +static const struct BgTemplate gBgTemplates_0855D298[] = { { .bg = 0, @@ -808,15 +780,448 @@ const struct BgTemplate gBgTemplates_0855D298[] = } }; -const struct WindowTemplate sWindowTemplates_0855D2A8[] = +static const struct WindowTemplate sWindowTemplates_0855D2A8[] = { - {2, 0, 0, 0x20, 0x20, 0, 1}, + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 32, + .height = 32, + .paletteNum = 0, + .baseBlock = 1, + }, DUMMY_WIN_TEMPLATE }; -const u8 gUnknown_0855D2B8[] = _("{NO}000"); -const u8 gUnknown_0855D2BE[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); -const u8 sText_TenDashes[] = _("----------"); +static const u8 gUnknown_0855D2B8[] = _("{NO}000"); +static const u8 gUnknown_0855D2BE[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); +static const u8 sText_TenDashes[] = _("----------"); + +asm(".align 2"); +static const u8 gUnknown_0855D30C[] = _(""); + +#include "data/pokemon/pokedex_text.h" +#include "data/pokemon/pokedex_entries.h" + +static const u16 gUnknown_0856E610[] = INCBIN_U16("graphics/pokedex/black.gbapal"); + +static const struct BgTemplate gUnknown_0856E630[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 12, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 13, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + } +}; + +static const struct WindowTemplate gUnknown_0856E640[] = +{ + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 32, + .height = 20, + .paletteNum = 0, + .baseBlock = 0x0001, + }, + { + .bg = 2, + .tilemapLeft = 25, + .tilemapTop = 8, + .width = 2, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0281, + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 12, + .width = 32, + .height = 7, + .paletteNum = 8, + .baseBlock = 0x0285, + }, + { + .bg = 2, + .tilemapLeft = 18, + .tilemapTop = 3, + .width = 10, + .height = 8, + .paletteNum = 9, + .baseBlock = 0x0365, + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct BgTemplate gUnknown_0856E668[] = +{ + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_0856E670[] = +{ + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 32, + .height = 20, + .paletteNum = 0, + .baseBlock = 0x0001, + }, + { + .bg = 2, + .tilemapLeft = 25, + .tilemapTop = 8, + .width = 2, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0281, + }, + DUMMY_WIN_TEMPLATE +}; + +static const u8 sText_TenDashes2[] = _("----------"); + +#include "data/pokemon_graphics/footprint_table.h" + +static const u8 gUnknown_0856ED08[][4] = +{ + {0x00, 0x00, 0x00, 0x00}, + {0xbb, 0x03, 0xd5, 0x03}, + {0xbe, 0x03, 0xd8, 0x03}, + {0xc1, 0x03, 0xdb, 0x03}, + {0xc4, 0x03, 0xde, 0x03}, + {0xc7, 0x03, 0xe1, 0x03}, + {0xca, 0x03, 0xe4, 0x03}, + {0xcd, 0x03, 0xe7, 0x03}, + {0xd0, 0x03, 0xea, 0x03}, + {0xd3, 0x02, 0xed, 0x02}, +}; + +static const struct UnknownStruct3 gUnknown_0856ED30[] = +{ + { + .text = gUnknown_085E87A5, + .unk4 = 0, + .unk5 = 0, + .unk6 = 5, + }, + { + .text = gUnknown_085E87D6, + .unk4 = 6, + .unk5 = 0, + .unk6 = 5, + }, + { + .text = gUnknown_085E87EF, + .unk4 = 12, + .unk5 = 0, + .unk6 = 5, + }, +}; + +static const struct UnknownStruct4 gUnknown_0856ED48[] = +{ + { + .text = gUnknown_085E8840, + .unk4 = 0, + .unk5 = 2, + .unk6 = 5, + .unk7 = 5, + .unk8 = 2, + .unk9 = 12, + }, + { + .text = gUnknown_085E887C, + .unk4 = 0, + .unk5 = 4, + .unk6 = 5, + .unk7 = 5, + .unk8 = 4, + .unk9 = 12, + }, + { + .text = gUnknown_085E88A6, + .unk4 = 0, + .unk5 = 6, + .unk6 = 5, + .unk7 = 5, + .unk8 = 6, + .unk9 = 6, + }, + { + .text = gUnknown_085E88A6, + .unk4 = 0, + .unk5 = 6, + .unk6 = 5, + .unk7 = 11, + .unk8 = 6, + .unk9 = 6, + }, + { + .text = gUnknown_085E881F, + .unk4 = 0, + .unk5 = 8, + .unk6 = 5, + .unk7 = 5, + .unk8 = 8, + .unk9 = 12, + }, + { + .text = gUnknown_085E8806, + .unk4 = 0, + .unk5 = 10, + .unk6 = 5, + .unk7 = 5, + .unk8 = 10, + .unk9 = 12, + }, + { + .text = gUnknown_085E88C8, + .unk4 = 0, + .unk5 = 12, + .unk6 = 5, + .unk7 = 0, + .unk8 = 0, + .unk9 = 0, + }, +}; + +static const u8 gUnknown_0856ED9C[][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_0856EDB8[][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_0856EDD4[][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_0856EDF0[][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_0856EE0C[] = +{ + {gUnknown_085E89A4, gUnknown_085E88DF}, + {gUnknown_085E89BB, gUnknown_085E88E9}, + {NULL, NULL}, +}; + +static const struct UnknownStruct2 gUnknown_0856EE24[] = +{ + {gUnknown_085E89D4, gUnknown_085E88F6}, + {gUnknown_085E8A02, gUnknown_085E8905}, + {gUnknown_085E8A37, gUnknown_085E8911}, + {gUnknown_085E8A73, gUnknown_085E891F}, + {gUnknown_085E8AAF, gUnknown_085E892D}, + {gUnknown_085E8AEA, gUnknown_085E893A}, + {NULL, NULL}, +}; + +static const struct UnknownStruct2 gUnknown_0856EE5C[] = +{ + {gUnknown_085E8B25, gUnknown_085E8B26}, + {gUnknown_085E8B25, gUnknown_085E8948}, + {gUnknown_085E8B25, gUnknown_085E894C}, + {gUnknown_085E8B25, gUnknown_085E8950}, + {gUnknown_085E8B25, gUnknown_085E8954}, + {gUnknown_085E8B25, gUnknown_085E8958}, + {gUnknown_085E8B25, gUnknown_085E895C}, + {gUnknown_085E8B25, gUnknown_085E8960}, + {gUnknown_085E8B25, gUnknown_085E8964}, + {gUnknown_085E8B25, gUnknown_085E8968}, + {NULL, NULL}, +}; + +static const struct UnknownStruct2 gUnknown_0856EEB4[] = +{ + {gUnknown_085E8B25, gUnknown_085E8B26}, + {gUnknown_085E8B25, gUnknown_085E896B}, + {gUnknown_085E8B25, gUnknown_085E896F}, + {gUnknown_085E8B25, gUnknown_085E8974}, + {gUnknown_085E8B25, gUnknown_085E897B}, + {gUnknown_085E8B25, gUnknown_085E8981}, + {gUnknown_085E8B25, gUnknown_085E8987}, + {gUnknown_085E8B25, gUnknown_085E898D}, + {gUnknown_085E8B25, gUnknown_085E8994}, + {gUnknown_085E8B25, gUnknown_085E8999}, + {gUnknown_085E8B25, gUnknown_085E899F}, + {NULL, NULL}, +}; + +static const struct UnknownStruct2 gUnknown_0856EF14[] = +{ + {gUnknown_085E8B25, gUnknown_085E8B35}, + {gUnknown_085E8B25, gTypeNames[TYPE_NORMAL]}, + {gUnknown_085E8B25, gTypeNames[TYPE_FIGHTING]}, + {gUnknown_085E8B25, gTypeNames[TYPE_FLYING]}, + {gUnknown_085E8B25, gTypeNames[TYPE_POISON]}, + {gUnknown_085E8B25, gTypeNames[TYPE_GROUND]}, + {gUnknown_085E8B25, gTypeNames[TYPE_ROCK]}, + {gUnknown_085E8B25, gTypeNames[TYPE_BUG]}, + {gUnknown_085E8B25, gTypeNames[TYPE_GHOST]}, + {gUnknown_085E8B25, gTypeNames[TYPE_STEEL]}, + {gUnknown_085E8B25, gTypeNames[TYPE_FIRE]}, + {gUnknown_085E8B25, gTypeNames[TYPE_WATER]}, + {gUnknown_085E8B25, gTypeNames[TYPE_GRASS]}, + {gUnknown_085E8B25, gTypeNames[TYPE_ELECTRIC]}, + {gUnknown_085E8B25, gTypeNames[TYPE_PSYCHIC]}, + {gUnknown_085E8B25, gTypeNames[TYPE_ICE]}, + {gUnknown_085E8B25, gTypeNames[TYPE_DRAGON]}, + {gUnknown_085E8B25, gTypeNames[TYPE_DARK]}, + {NULL, NULL}, +}; + +static const u8 gUnknown_0856EFAC[] = {0x00, 0x01}; +static const u8 gUnknown_0856EFAE[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; +static const u8 gUnknown_0856EFB4[] = {0xFF, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17}; + +static const struct UnknownStruct1 gUnknown_0856EFC8[] = +{ + {gUnknown_0856EE5C, 6, 7, 10}, + {gUnknown_0856EEB4, 8, 9, 11}, + {gUnknown_0856EF14, 10,11, 18}, + {gUnknown_0856EF14, 12, 13, 18}, + {gUnknown_0856EE24, 4, 5, 6}, + {gUnknown_0856EE0C, 2, 3, 2}, +}; + +static const struct BgTemplate gUnknown_0856EFF8[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 12, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 13, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +static const struct WindowTemplate gUnknown_0856F008[] = +{ + { + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 32, + .height = 20, + .paletteNum = 0, + .baseBlock = 0x0001, + }, + DUMMY_WIN_TEMPLATE +}; // .text |