From c9c42fb3319151221f317b3cbc255f6d117af5b9 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Fri, 18 Aug 2017 17:36:59 -0400 Subject: Removed dependency on ROM-internal arrays I looked at the base stats array and determined that, especially if I limited it to just the data I needed, that it wouldn't be too bad a thing to just include it and the other two arrays I need in my multiboot image rather than reference the ones already located in the game ROM. This way, we get back compatibility with all previously-compatible ROMs, and not just ones that I have dumped. New issue: Deoxys's base stats are actually different per-game, though, so a special case will have to be written for that. --- gba/source/basestats.c | 1667 ++++++++++++++++++++++++++++++++++++++++++++++++ gba/source/basestats.h | 26 + gba/source/dexorder.c | 10 + gba/source/dexorder.h | 15 + gba/source/exptables.c | 828 ++++++++++++++++++++++++ gba/source/exptables.h | 15 + gba/source/gamedata.c | 9 - gba/source/gamedata.h | 3 - gba/source/serialize.c | 9 +- 9 files changed, 2567 insertions(+), 15 deletions(-) create mode 100644 gba/source/basestats.c create mode 100644 gba/source/basestats.h create mode 100644 gba/source/dexorder.c create mode 100644 gba/source/dexorder.h create mode 100644 gba/source/exptables.c create mode 100644 gba/source/exptables.h diff --git a/gba/source/basestats.c b/gba/source/basestats.c new file mode 100644 index 0000000..a8c335b --- /dev/null +++ b/gba/source/basestats.c @@ -0,0 +1,1667 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#include "basestats.h" + +enum { + GROWTH_MEDIUM_FAST, + GROWTH_ERRATIC, + GROWTH_FLUCTUATING, + GROWTH_MEDIUM_SLOW, + GROWTH_FAST, + GROWTH_SLOW +}; + +const struct SmallBaseStats gSmallBaseStats[] = { + { // ?????????? + }, { + // Bulbasaur + 45, 49, 49, 45, 65, 65, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Ivysaur + 60, 62, 63, 60, 80, 80, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Venusaur + 80, 82, 83, 80, 100, 100, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Charmander + 39, 52, 43, 65, 60, 50, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Charmeleon + 58, 64, 58, 80, 80, 65, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Charizard + 78, 84, 78, 100, 109, 85, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Squirtle + 44, 48, 65, 43, 50, 64, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Wartortle + 59, 63, 80, 58, 65, 80, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Blastoise + 79, 83, 100, 78, 85, 105, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Caterpie + 45, 30, 35, 45, 20, 20, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Metapod + 50, 20, 55, 30, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Butterfree + 60, 45, 50, 70, 80, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Weedle + 40, 35, 30, 50, 20, 20, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Kakuna + 45, 25, 50, 35, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Beedrill + 65, 80, 40, 75, 45, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Pidgey + 40, 45, 40, 56, 35, 35, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Pidgeotto + 63, 60, 55, 71, 50, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Pidgeot + 83, 80, 75, 91, 70, 70, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Rattata + 30, 56, 35, 72, 25, 35, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Raticate + 55, 81, 60, 97, 50, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Spearow + 40, 60, 30, 70, 31, 31, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Fearow + 65, 90, 65, 100, 61, 61, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Ekans + 35, 60, 44, 55, 40, 54, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Arbok + 60, 85, 69, 80, 65, 79, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Pikachu + 35, 55, 30, 90, 50, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Raichu + 60, 90, 55, 100, 90, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Sandshrew + 50, 75, 85, 40, 20, 30, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Sandslash + 75, 100, 110, 65, 45, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Nidoran♀ + 55, 47, 52, 41, 40, 40, + 254, // gender + GROWTH_MEDIUM_SLOW + }, { // Nidorina + 70, 62, 67, 56, 55, 55, + 254, // gender + GROWTH_MEDIUM_SLOW + }, { // Nidoqueen + 90, 82, 87, 76, 75, 85, + 254, // gender + GROWTH_MEDIUM_SLOW + }, { // Nidoran♂ + 46, 57, 40, 50, 40, 40, + 0, // gender + GROWTH_MEDIUM_SLOW + }, { // Nidorino + 61, 72, 57, 65, 55, 55, + 0, // gender + GROWTH_MEDIUM_SLOW + }, { // Nidoking + 81, 92, 77, 85, 85, 75, + 0, // gender + GROWTH_MEDIUM_SLOW + }, { // Clefairy + 70, 45, 48, 35, 60, 65, + 191, // gender + GROWTH_FAST + }, { // Clefable + 95, 70, 73, 60, 85, 90, + 191, // gender + GROWTH_FAST + }, { // Vulpix + 38, 41, 40, 65, 50, 65, + 191, // gender + GROWTH_MEDIUM_FAST + }, { // Ninetales + 73, 76, 75, 100, 81, 100, + 191, // gender + GROWTH_MEDIUM_FAST + }, { // Jigglypuff + 115, 45, 20, 20, 45, 25, + 191, // gender + GROWTH_FAST + }, { // Wigglytuff + 140, 70, 45, 45, 75, 50, + 191, // gender + GROWTH_FAST + }, { // Zubat + 40, 45, 35, 55, 30, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Golbat + 75, 80, 70, 90, 65, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Oddish + 45, 50, 55, 30, 75, 65, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Gloom + 60, 65, 70, 40, 85, 75, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Vileplume + 75, 80, 85, 50, 100, 90, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Paras + 35, 70, 55, 25, 45, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Parasect + 60, 95, 80, 30, 60, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Venonat + 60, 55, 50, 45, 40, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Venomoth + 70, 65, 60, 90, 90, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Diglett + 10, 55, 25, 95, 35, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Dugtrio + 35, 80, 50, 120, 50, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Meowth + 40, 45, 35, 90, 40, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Persian + 65, 70, 60, 115, 65, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Psyduck + 50, 52, 48, 55, 65, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Golduck + 80, 82, 78, 85, 95, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Mankey + 40, 80, 35, 70, 35, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Primeape + 65, 105, 60, 95, 60, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Growlithe + 55, 70, 45, 60, 70, 50, + 63, // gender + GROWTH_SLOW + }, { // Arcanine + 90, 110, 80, 95, 100, 80, + 63, // gender + GROWTH_SLOW + }, { // Poliwag + 40, 50, 40, 90, 40, 40, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Poliwhirl + 65, 65, 65, 90, 50, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Poliwrath + 90, 85, 95, 70, 70, 90, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Abra + 25, 20, 15, 90, 105, 55, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Kadabra + 40, 35, 30, 105, 120, 70, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Alakazam + 55, 50, 45, 120, 135, 85, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Machop + 70, 80, 50, 35, 35, 35, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Machoke + 80, 100, 70, 45, 50, 60, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Machamp + 90, 130, 80, 55, 65, 85, + 63, // gender + GROWTH_MEDIUM_SLOW + }, { // Bellsprout + 50, 75, 35, 40, 70, 30, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Weepinbell + 65, 90, 50, 55, 85, 45, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Victreebel + 80, 105, 65, 70, 100, 60, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Tentacool + 40, 40, 35, 70, 50, 100, + 127, // gender + GROWTH_SLOW + }, { // Tentacruel + 80, 70, 65, 100, 80, 120, + 127, // gender + GROWTH_SLOW + }, { // Geodude + 40, 80, 100, 20, 30, 30, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Graveler + 55, 95, 115, 35, 45, 45, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Golem + 80, 110, 130, 45, 55, 65, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Ponyta + 50, 85, 55, 90, 65, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Rapidash + 65, 100, 70, 105, 80, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Slowpoke + 90, 65, 65, 15, 40, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Slowbro + 95, 75, 110, 30, 100, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Magnemite + 25, 35, 70, 45, 95, 55, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Magneton + 50, 60, 95, 70, 120, 70, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Farfetch'd + 52, 65, 55, 60, 58, 62, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Doduo + 35, 85, 45, 75, 35, 35, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Dodrio + 60, 110, 70, 100, 60, 60, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Seel + 65, 45, 55, 45, 45, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Dewgong + 90, 70, 80, 70, 70, 95, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Grimer + 80, 80, 50, 25, 40, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Muk + 105, 105, 75, 50, 65, 100, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Shellder + 30, 65, 100, 40, 45, 25, + 127, // gender + GROWTH_SLOW + }, { // Cloyster + 50, 95, 180, 70, 85, 45, + 127, // gender + GROWTH_SLOW + }, { // Gastly + 30, 35, 30, 80, 100, 35, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Haunter + 45, 50, 45, 95, 115, 55, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Gengar + 60, 65, 60, 110, 130, 75, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Onix + 35, 45, 160, 70, 30, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Drowzee + 60, 48, 45, 42, 43, 90, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Hypno + 85, 73, 70, 67, 73, 115, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Krabby + 30, 105, 90, 50, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Kingler + 55, 130, 115, 75, 50, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Voltorb + 40, 30, 50, 100, 55, 55, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Electrode + 60, 50, 70, 140, 80, 80, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Exeggcute + 60, 40, 80, 40, 60, 45, + 127, // gender + GROWTH_SLOW + }, { // Exeggutor + 95, 95, 85, 55, 125, 65, + 127, // gender + GROWTH_SLOW + }, { // Cubone + 50, 50, 95, 35, 40, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Marowak + 60, 80, 110, 45, 50, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Hitmonlee + 50, 120, 53, 87, 35, 110, + 0, // gender + GROWTH_MEDIUM_FAST + }, { // Hitmonchan + 50, 105, 79, 76, 35, 110, + 0, // gender + GROWTH_MEDIUM_FAST + }, { // Lickitung + 90, 55, 75, 30, 60, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Koffing + 40, 65, 95, 35, 60, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Weezing + 65, 90, 120, 60, 85, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Rhyhorn + 80, 85, 95, 25, 30, 30, + 127, // gender + GROWTH_SLOW + }, { // Rhydon + 105, 130, 120, 40, 45, 45, + 127, // gender + GROWTH_SLOW + }, { // Chansey + 250, 5, 5, 50, 35, 105, + 254, // gender + GROWTH_FAST + }, { // Tangela + 65, 55, 115, 60, 100, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Kangaskhan + 105, 95, 80, 90, 40, 80, + 254, // gender + GROWTH_MEDIUM_FAST + }, { // Horsea + 30, 40, 70, 60, 70, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Seadra + 55, 65, 95, 85, 95, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Goldeen + 45, 67, 60, 63, 35, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Seaking + 80, 92, 65, 68, 65, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Staryu + 30, 45, 55, 85, 70, 55, + 255, // gender + GROWTH_SLOW + }, { // Starmie + 60, 75, 85, 115, 100, 85, + 255, // gender + GROWTH_SLOW + }, { // Mr. mime + 40, 45, 65, 90, 100, 120, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Scyther + 70, 110, 80, 105, 55, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Jynx + 65, 50, 35, 95, 115, 95, + 254, // gender + GROWTH_MEDIUM_FAST + }, { // Electabuzz + 65, 83, 57, 105, 95, 85, + 63, // gender + GROWTH_MEDIUM_FAST + }, { // Magmar + 65, 95, 57, 93, 100, 85, + 63, // gender + GROWTH_MEDIUM_FAST + }, { // Pinsir + 65, 125, 100, 85, 55, 70, + 127, // gender + GROWTH_SLOW + }, { // Tauros + 75, 100, 95, 110, 40, 70, + 0, // gender + GROWTH_SLOW + }, { // Magikarp + 20, 10, 55, 80, 15, 20, + 127, // gender + GROWTH_SLOW + }, { // Gyarados + 95, 125, 79, 81, 60, 100, + 127, // gender + GROWTH_SLOW + }, { // Lapras + 130, 85, 80, 60, 85, 95, + 127, // gender + GROWTH_SLOW + }, { // Ditto + 48, 48, 48, 48, 48, 48, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Eevee + 55, 55, 50, 55, 45, 65, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Vaporeon + 130, 65, 60, 65, 110, 95, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Jolteon + 65, 65, 60, 130, 110, 95, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Flareon + 65, 130, 60, 65, 95, 110, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Porygon + 65, 60, 70, 40, 85, 75, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Omanyte + 35, 40, 100, 35, 90, 55, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Omastar + 70, 60, 125, 55, 115, 70, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Kabuto + 30, 80, 90, 55, 55, 45, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Kabutops + 60, 115, 105, 80, 65, 70, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Aerodactyl + 80, 105, 65, 130, 60, 75, + 31, // gender + GROWTH_SLOW + }, { // Snorlax + 160, 110, 65, 30, 65, 110, + 31, // gender + GROWTH_SLOW + }, { // Articuno + 90, 85, 100, 85, 95, 125, + 255, // gender + GROWTH_SLOW + }, { // Zapdos + 90, 90, 85, 100, 125, 90, + 255, // gender + GROWTH_SLOW + }, { // Moltres + 90, 100, 90, 90, 125, 85, + 255, // gender + GROWTH_SLOW + }, { // Dratini + 41, 64, 45, 50, 50, 50, + 127, // gender + GROWTH_SLOW + }, { // Dragonair + 61, 84, 65, 70, 70, 70, + 127, // gender + GROWTH_SLOW + }, { // Dragonite + 91, 134, 95, 80, 100, 100, + 127, // gender + GROWTH_SLOW + }, { // Mewtwo + 106, 110, 90, 130, 154, 90, + 255, // gender + GROWTH_SLOW + }, { // Mew + 100, 100, 100, 100, 100, 100, + 255, // gender + GROWTH_MEDIUM_SLOW + }, { // Chikorita + 45, 49, 65, 45, 49, 65, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Bayleef + 60, 62, 80, 60, 63, 80, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Meganium + 80, 82, 100, 80, 83, 100, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Cyndaquil + 39, 52, 43, 65, 60, 50, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Quilava + 58, 64, 58, 80, 80, 65, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Typhlosion + 78, 84, 78, 100, 109, 85, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Totodile + 50, 65, 64, 43, 44, 48, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Croconaw + 65, 80, 80, 58, 59, 63, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Feraligatr + 85, 105, 100, 78, 79, 83, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Sentret + 35, 46, 34, 20, 35, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Furret + 85, 76, 64, 90, 45, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Hoothoot + 60, 30, 30, 50, 36, 56, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Noctowl + 100, 50, 50, 70, 76, 96, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Ledyba + 40, 20, 30, 55, 40, 80, + 127, // gender + GROWTH_FAST + }, { // Ledian + 55, 35, 50, 85, 55, 110, + 127, // gender + GROWTH_FAST + }, { // Spinarak + 40, 60, 40, 30, 40, 40, + 127, // gender + GROWTH_FAST + }, { // Ariados + 70, 90, 70, 40, 60, 60, + 127, // gender + GROWTH_FAST + }, { // Crobat + 85, 90, 80, 130, 70, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Chinchou + 75, 38, 38, 67, 56, 56, + 127, // gender + GROWTH_SLOW + }, { // Lanturn + 125, 58, 58, 67, 76, 76, + 127, // gender + GROWTH_SLOW + }, { // Pichu + 20, 40, 15, 60, 35, 35, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Cleffa + 50, 25, 28, 15, 45, 55, + 191, // gender + GROWTH_FAST + }, { // Igglybuff + 90, 30, 15, 15, 40, 20, + 191, // gender + GROWTH_FAST + }, { // Togepi + 35, 20, 65, 20, 40, 65, + 31, // gender + GROWTH_FAST + }, { // Togetic + 55, 40, 85, 40, 80, 105, + 31, // gender + GROWTH_FAST + }, { // Natu + 40, 50, 45, 70, 70, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Xatu + 65, 75, 70, 95, 95, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Mareep + 55, 40, 40, 35, 65, 45, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Flaaffy + 70, 55, 55, 45, 80, 60, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Ampharos + 90, 75, 75, 55, 115, 90, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Bellossom + 75, 80, 85, 50, 90, 100, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Marill + 70, 20, 50, 40, 20, 50, + 127, // gender + GROWTH_FAST + }, { // Azumarill + 100, 50, 80, 50, 50, 80, + 127, // gender + GROWTH_FAST + }, { // Sudowoodo + 70, 100, 115, 30, 30, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Politoed + 90, 75, 75, 70, 90, 100, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Hoppip + 35, 35, 40, 50, 35, 55, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Skiploom + 55, 45, 50, 80, 45, 65, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Jumpluff + 75, 55, 70, 110, 55, 85, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Aipom + 55, 70, 55, 85, 40, 55, + 127, // gender + GROWTH_FAST + }, { // Sunkern + 30, 30, 30, 30, 30, 30, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Sunflora + 75, 75, 55, 30, 105, 85, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Yanma + 65, 65, 45, 95, 75, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Wooper + 55, 45, 45, 15, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Quagsire + 95, 85, 85, 35, 65, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Espeon + 65, 65, 60, 110, 130, 95, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Umbreon + 95, 65, 110, 65, 60, 130, + 31, // gender + GROWTH_MEDIUM_FAST + }, { // Murkrow + 60, 85, 42, 91, 85, 42, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Slowking + 95, 75, 80, 30, 100, 110, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Misdreavus + 60, 60, 60, 85, 85, 85, + 127, // gender + GROWTH_FAST + }, { // Unown + 48, 72, 48, 48, 72, 48, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Wobbuffet + 190, 33, 58, 33, 33, 58, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Girafarig + 70, 80, 65, 85, 90, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Pineco + 50, 65, 90, 15, 35, 35, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Forretress + 75, 90, 140, 40, 60, 60, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Dunsparce + 100, 70, 70, 45, 65, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Gligar + 65, 75, 105, 85, 35, 65, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Steelix + 75, 85, 200, 30, 55, 65, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Snubbull + 60, 80, 50, 30, 40, 40, + 191, // gender + GROWTH_FAST + }, { // Granbull + 90, 120, 75, 45, 60, 60, + 191, // gender + GROWTH_FAST + }, { // Qwilfish + 65, 95, 75, 85, 55, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Scizor + 70, 130, 100, 65, 55, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Shuckle + 20, 10, 230, 5, 10, 230, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Heracross + 80, 125, 75, 85, 40, 95, + 127, // gender + GROWTH_SLOW + }, { // Sneasel + 55, 95, 55, 115, 35, 75, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Teddiursa + 60, 80, 50, 40, 50, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Ursaring + 90, 130, 75, 55, 75, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Slugma + 40, 40, 40, 20, 70, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Magcargo + 50, 50, 120, 30, 80, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Swinub + 50, 50, 40, 50, 30, 30, + 127, // gender + GROWTH_SLOW + }, { // Piloswine + 100, 100, 80, 50, 60, 60, + 127, // gender + GROWTH_SLOW + }, { // Corsola + 55, 55, 85, 35, 65, 85, + 191, // gender + GROWTH_FAST + }, { // Remoraid + 35, 65, 35, 65, 65, 35, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Octillery + 75, 105, 75, 45, 105, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Delibird + 45, 55, 45, 75, 65, 45, + 127, // gender + GROWTH_FAST + }, { // Mantine + 65, 40, 70, 70, 80, 140, + 127, // gender + GROWTH_SLOW + }, { // Skarmory + 65, 80, 140, 70, 40, 70, + 127, // gender + GROWTH_SLOW + }, { // Houndour + 45, 60, 30, 65, 80, 50, + 127, // gender + GROWTH_SLOW + }, { // Houndoom + 75, 90, 50, 95, 110, 80, + 127, // gender + GROWTH_SLOW + }, { // Kingdra + 75, 95, 95, 85, 95, 95, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Phanpy + 90, 60, 60, 40, 40, 40, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Donphan + 90, 120, 120, 50, 60, 60, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Porygon2 + 85, 80, 90, 60, 105, 95, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Stantler + 73, 95, 62, 85, 85, 65, + 127, // gender + GROWTH_SLOW + }, { // Smeargle + 55, 20, 35, 75, 20, 45, + 127, // gender + GROWTH_FAST + }, { // Tyrogue + 35, 35, 35, 35, 35, 35, + 0, // gender + GROWTH_MEDIUM_FAST + }, { // Hitmontop + 50, 95, 95, 70, 35, 110, + 0, // gender + GROWTH_MEDIUM_FAST + }, { // Smoochum + 45, 30, 15, 65, 85, 65, + 254, // gender + GROWTH_MEDIUM_FAST + }, { // Elekid + 45, 63, 37, 95, 65, 55, + 63, // gender + GROWTH_MEDIUM_FAST + }, { // Magby + 45, 75, 37, 83, 70, 55, + 63, // gender + GROWTH_MEDIUM_FAST + }, { // Miltank + 95, 80, 105, 100, 40, 70, + 254, // gender + GROWTH_SLOW + }, { // Blissey + 255, 10, 10, 55, 75, 135, + 254, // gender + GROWTH_FAST + }, { // Raikou + 90, 85, 75, 115, 115, 100, + 255, // gender + GROWTH_SLOW + }, { // Entei + 115, 115, 85, 100, 90, 75, + 255, // gender + GROWTH_SLOW + }, { // Suicune + 100, 75, 115, 85, 90, 115, + 255, // gender + GROWTH_SLOW + }, { // Larvitar + 50, 64, 50, 41, 45, 50, + 127, // gender + GROWTH_SLOW + }, { // Pupitar + 70, 84, 70, 51, 65, 70, + 127, // gender + GROWTH_SLOW + }, { // Tyranitar + 100, 134, 110, 61, 95, 100, + 127, // gender + GROWTH_SLOW + }, { // Lugia + 106, 90, 130, 110, 90, 154, + 255, // gender + GROWTH_SLOW + }, { // Ho-Oh + 106, 130, 90, 90, 110, 154, + 255, // gender + GROWTH_SLOW + }, { // Celebi + 100, 100, 100, 100, 100, 100, + 255, // gender + GROWTH_MEDIUM_SLOW + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // ? + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Treecko + 40, 45, 35, 70, 65, 55, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Grovyle + 50, 65, 45, 95, 85, 65, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Sceptile + 70, 85, 65, 120, 105, 85, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Torchic + 45, 60, 40, 45, 70, 50, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Combusken + 60, 85, 60, 55, 85, 60, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Blaziken + 80, 120, 70, 80, 110, 70, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Mudkip + 50, 70, 50, 40, 50, 50, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Marshtomp + 70, 85, 70, 50, 60, 70, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Swampert + 100, 110, 90, 60, 85, 90, + 31, // gender + GROWTH_MEDIUM_SLOW + }, { // Poochyena + 35, 55, 35, 35, 30, 30, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Mightyena + 70, 90, 70, 70, 60, 60, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Zigzagoon + 38, 30, 41, 60, 30, 41, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Linoone + 78, 70, 61, 100, 50, 61, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Wurmple + 45, 45, 35, 20, 20, 30, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Silcoon + 50, 35, 55, 15, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Beautifly + 60, 70, 50, 65, 90, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Cascoon + 50, 35, 55, 15, 25, 25, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Dustox + 60, 50, 70, 65, 50, 90, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Lotad + 40, 30, 30, 30, 40, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Lombre + 60, 50, 50, 50, 60, 70, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Ludicolo + 80, 70, 70, 70, 90, 100, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Seedot + 40, 40, 50, 30, 30, 30, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Nuzleaf + 70, 70, 40, 60, 60, 40, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Shiftry + 90, 100, 60, 80, 90, 60, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Nincada + 31, 45, 90, 40, 30, 30, + 127, // gender + GROWTH_ERRATIC + }, { // Ninjask + 61, 90, 45, 160, 50, 50, + 127, // gender + GROWTH_ERRATIC + }, { // Shedinja + 1, 90, 45, 40, 30, 30, + 255, // gender + GROWTH_ERRATIC + }, { // Taillow + 40, 55, 30, 85, 30, 30, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Swellow + 60, 85, 60, 125, 50, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Shroomish + 60, 40, 60, 35, 40, 60, + 127, // gender + GROWTH_FLUCTUATING + }, { // Breloom + 60, 130, 80, 70, 60, 60, + 127, // gender + GROWTH_FLUCTUATING + }, { // Spinda + 60, 60, 60, 60, 60, 60, + 127, // gender + GROWTH_FAST + }, { // Wingull + 40, 30, 30, 85, 55, 30, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Pelipper + 60, 50, 100, 65, 85, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Surskit + 40, 30, 32, 65, 50, 52, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Masquerain + 70, 60, 62, 60, 80, 82, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Wailmer + 130, 70, 35, 60, 70, 35, + 127, // gender + GROWTH_FLUCTUATING + }, { // Wailord + 170, 90, 45, 60, 90, 45, + 127, // gender + GROWTH_FLUCTUATING + }, { // Skitty + 50, 45, 45, 50, 35, 35, + 191, // gender + GROWTH_FAST + }, { // Delcatty + 70, 65, 65, 70, 55, 55, + 191, // gender + GROWTH_FAST + }, { // Kecleon + 60, 90, 70, 40, 60, 120, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Baltoy + 40, 40, 55, 55, 40, 70, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Claydol + 60, 70, 105, 75, 70, 120, + 255, // gender + GROWTH_MEDIUM_FAST + }, { // Nosepass + 30, 45, 135, 30, 45, 90, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Torkoal + 70, 85, 140, 20, 85, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Sableye + 50, 75, 75, 50, 65, 65, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Barboach + 50, 48, 43, 60, 46, 41, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Whiscash + 110, 78, 73, 60, 76, 71, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Luvdisc + 43, 30, 55, 97, 40, 65, + 191, // gender + GROWTH_FAST + }, { // Corphish + 43, 80, 65, 35, 50, 35, + 127, // gender + GROWTH_FLUCTUATING + }, { // Crawdaunt + 63, 120, 85, 55, 90, 55, + 127, // gender + GROWTH_FLUCTUATING + }, { // Feebas + 20, 15, 20, 80, 10, 55, + 127, // gender + GROWTH_ERRATIC + }, { // Milotic + 95, 60, 79, 81, 100, 125, + 127, // gender + GROWTH_ERRATIC + }, { // Carvanha + 45, 90, 20, 65, 65, 20, + 127, // gender + GROWTH_SLOW + }, { // Sharpedo + 70, 120, 40, 95, 95, 40, + 127, // gender + GROWTH_SLOW + }, { // Trapinch + 45, 100, 45, 10, 45, 45, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Vibrava + 50, 70, 50, 70, 50, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Flygon + 80, 100, 80, 100, 80, 80, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Makuhita + 72, 60, 30, 25, 20, 30, + 63, // gender + GROWTH_FLUCTUATING + }, { // Hariyama + 144, 120, 60, 50, 40, 60, + 63, // gender + GROWTH_FLUCTUATING + }, { // Electrike + 40, 45, 40, 65, 65, 40, + 127, // gender + GROWTH_SLOW + }, { // Manectric + 70, 75, 60, 105, 105, 60, + 127, // gender + GROWTH_SLOW + }, { // Numel + 60, 60, 40, 35, 65, 45, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Camerupt + 70, 100, 70, 40, 105, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Spheal + 70, 40, 50, 25, 55, 50, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Sealeo + 90, 60, 70, 45, 75, 70, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Walrein + 110, 80, 90, 65, 95, 90, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Cacnea + 50, 85, 40, 35, 85, 40, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Cacturne + 70, 115, 60, 55, 115, 60, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Snorunt + 50, 50, 50, 50, 50, 50, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Glalie + 80, 80, 80, 80, 80, 80, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Lunatone + 70, 55, 65, 70, 95, 85, + 255, // gender + GROWTH_FAST + }, { // Solrock + 70, 95, 85, 70, 55, 65, + 255, // gender + GROWTH_FAST + }, { // Azurill + 50, 20, 40, 20, 20, 40, + 191, // gender + GROWTH_FAST + }, { // Spoink + 60, 25, 35, 60, 70, 80, + 127, // gender + GROWTH_FAST + }, { // Grumpig + 80, 45, 65, 80, 90, 110, + 127, // gender + GROWTH_FAST + }, { // Plusle + 60, 50, 40, 95, 85, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Minun + 60, 40, 50, 95, 75, 85, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Mawile + 50, 85, 85, 50, 55, 55, + 127, // gender + GROWTH_FAST + }, { // Meditite + 30, 40, 55, 60, 40, 55, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Medicham + 60, 60, 75, 80, 60, 75, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Swablu + 45, 40, 60, 50, 40, 75, + 127, // gender + GROWTH_ERRATIC + }, { // Altaria + 75, 70, 90, 80, 70, 105, + 127, // gender + GROWTH_ERRATIC + }, { // Wynaut + 95, 23, 48, 23, 23, 48, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Duskull + 20, 40, 90, 25, 30, 90, + 127, // gender + GROWTH_FAST + }, { // Dusclops + 40, 70, 130, 25, 60, 130, + 127, // gender + GROWTH_FAST + }, { // Roselia + 50, 60, 45, 65, 100, 80, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Slakoth + 60, 60, 60, 30, 35, 35, + 127, // gender + GROWTH_SLOW + }, { // Vigoroth + 80, 80, 80, 90, 55, 55, + 127, // gender + GROWTH_SLOW + }, { // Slaking + 150, 160, 100, 100, 95, 65, + 127, // gender + GROWTH_SLOW + }, { // Gulpin + 70, 43, 53, 40, 43, 53, + 127, // gender + GROWTH_FLUCTUATING + }, { // Swalot + 100, 73, 83, 55, 73, 83, + 127, // gender + GROWTH_FLUCTUATING + }, { // Tropius + 99, 68, 83, 51, 72, 87, + 127, // gender + GROWTH_SLOW + }, { // Whismur + 64, 51, 23, 28, 51, 23, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Loudred + 84, 71, 43, 48, 71, 43, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Exploud + 104, 91, 63, 68, 91, 63, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Clamperl + 35, 64, 85, 32, 74, 55, + 127, // gender + GROWTH_ERRATIC + }, { // Huntail + 55, 104, 105, 52, 94, 75, + 127, // gender + GROWTH_ERRATIC + }, { // Gorebyss + 55, 84, 105, 52, 114, 75, + 127, // gender + GROWTH_ERRATIC + }, { // Absol + 65, 130, 60, 75, 75, 60, + 127, // gender + GROWTH_MEDIUM_SLOW + }, { // Shuppet + 44, 75, 35, 45, 63, 33, + 127, // gender + GROWTH_FAST + }, { // Banette + 64, 115, 65, 65, 83, 63, + 127, // gender + GROWTH_FAST + }, { // Seviper + 73, 100, 60, 65, 100, 60, + 127, // gender + GROWTH_FLUCTUATING + }, { // Zangoose + 73, 115, 60, 90, 60, 60, + 127, // gender + GROWTH_ERRATIC + }, { // Relicanth + 100, 90, 130, 55, 45, 65, + 31, // gender + GROWTH_SLOW + }, { // Aron + 50, 70, 100, 30, 40, 40, + 127, // gender + GROWTH_SLOW + }, { // Lairon + 60, 90, 140, 40, 50, 50, + 127, // gender + GROWTH_SLOW + }, { // Aggron + 70, 110, 180, 50, 60, 60, + 127, // gender + GROWTH_SLOW + }, { // Castform + 70, 70, 70, 70, 70, 70, + 127, // gender + GROWTH_MEDIUM_FAST + }, { // Volbeat + 65, 73, 55, 85, 47, 75, + 0, // gender + GROWTH_ERRATIC + }, { // Illumise + 65, 47, 55, 85, 73, 75, + 254, // gender + GROWTH_FLUCTUATING + }, { // Lileep + 66, 41, 77, 23, 61, 87, + 31, // gender + GROWTH_ERRATIC + }, { // Cradily + 86, 81, 97, 43, 81, 107, + 31, // gender + GROWTH_ERRATIC + }, { // Anorith + 45, 95, 50, 75, 40, 50, + 31, // gender + GROWTH_ERRATIC + }, { // Armaldo + 75, 125, 100, 45, 70, 80, + 31, // gender + GROWTH_ERRATIC + }, { // Ralts + 28, 25, 25, 40, 45, 35, + 127, // gender + GROWTH_SLOW + }, { // Kirlia + 38, 35, 35, 50, 65, 55, + 127, // gender + GROWTH_SLOW + }, { // Gardevoir + 68, 65, 65, 80, 125, 115, + 127, // gender + GROWTH_SLOW + }, { // Bagon + 45, 75, 60, 50, 40, 30, + 127, // gender + GROWTH_SLOW + }, { // Shelgon + 65, 95, 100, 50, 60, 50, + 127, // gender + GROWTH_SLOW + }, { // Salamence + 95, 135, 80, 100, 110, 80, + 127, // gender + GROWTH_SLOW + }, { // Beldum + 40, 55, 80, 30, 35, 60, + 255, // gender + GROWTH_SLOW + }, { // Metang + 60, 75, 100, 50, 55, 80, + 255, // gender + GROWTH_SLOW + }, { // Metagross + 80, 135, 130, 70, 95, 90, + 255, // gender + GROWTH_SLOW + }, { // Regirock + 80, 100, 200, 50, 50, 100, + 255, // gender + GROWTH_SLOW + }, { // Regice + 80, 50, 100, 50, 100, 200, + 255, // gender + GROWTH_SLOW + }, { // Registeel + 80, 75, 150, 50, 75, 150, + 255, // gender + GROWTH_SLOW + }, { // Kyogre + 100, 100, 90, 90, 150, 140, + 255, // gender + GROWTH_SLOW + }, { // Groudon + 100, 150, 140, 90, 100, 90, + 255, // gender + GROWTH_SLOW + }, { // Rayquaza + 105, 150, 90, 95, 150, 90, + 255, // gender + GROWTH_SLOW + }, { // Latias + 80, 80, 90, 110, 110, 130, + 254, // gender + GROWTH_SLOW + }, { // Latios + 80, 90, 80, 110, 130, 110, + 0, // gender + GROWTH_SLOW + }, { // Jirachi + 100, 100, 100, 100, 100, 100, + 255, // gender + GROWTH_SLOW + }, { // Deoxys + 50, 150, 50, 150, 150, 50, + 255, // gender + GROWTH_SLOW + }, { // Chimecho + 65, 50, 70, 65, 95, 80, + 127, // gender + GROWTH_FAST + } +}; diff --git a/gba/source/basestats.h b/gba/source/basestats.h new file mode 100644 index 0000000..8adb031 --- /dev/null +++ b/gba/source/basestats.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#ifndef BASESTATS_H +#define BASESTATS_H + +#include + +struct SmallBaseStats { + u8 baseHP; + u8 baseAttack; + u8 baseDefense; + u8 baseSpeed; + u8 baseSpAttack; + u8 baseSpDefense; + u8 genderRatio; + u8 growthRate; +}; + +extern const struct SmallBaseStats gSmallBaseStats[]; + +#endif diff --git a/gba/source/dexorder.c b/gba/source/dexorder.c new file mode 100644 index 0000000..ae79706 --- /dev/null +++ b/gba/source/dexorder.c @@ -0,0 +1,10 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#include "dexorder.h" + +const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358}; diff --git a/gba/source/dexorder.h b/gba/source/dexorder.h new file mode 100644 index 0000000..21cf4b1 --- /dev/null +++ b/gba/source/dexorder.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#ifndef DEXORDER_H +#define DEXORDER_H + +#include + +extern const u16 gSpeciesToNationalPokedexNum[]; + +#endif diff --git a/gba/source/exptables.c b/gba/source/exptables.c new file mode 100644 index 0000000..60bf731 --- /dev/null +++ b/gba/source/exptables.c @@ -0,0 +1,828 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#include "exptables.h" + +const u32 gExperienceTables[][101] = { + { // Medium Fast + 0, // 0 + 1, // 1 + 8, // 2 + 27, // 3 + 64, // 4 + 125, // 5 + 216, // 6 + 343, // 7 + 512, // 8 + 729, // 9 + 1000, // 10 + 1331, // 11 + 1728, // 12 + 2197, // 13 + 2744, // 14 + 3375, // 15 + 4096, // 16 + 4913, // 17 + 5832, // 18 + 6859, // 19 + 8000, // 20 + 9261, // 21 + 10648, // 22 + 12167, // 23 + 13824, // 24 + 15625, // 25 + 17576, // 26 + 19683, // 27 + 21952, // 28 + 24389, // 29 + 27000, // 30 + 29791, // 31 + 32768, // 32 + 35937, // 33 + 39304, // 34 + 42875, // 35 + 46656, // 36 + 50653, // 37 + 54872, // 38 + 59319, // 39 + 64000, // 40 + 68921, // 41 + 74088, // 42 + 79507, // 43 + 85184, // 44 + 91125, // 45 + 97336, // 46 + 103823, // 47 + 110592, // 48 + 117649, // 49 + 125000, // 50 + 132651, // 51 + 140608, // 52 + 148877, // 53 + 157464, // 54 + 166375, // 55 + 175616, // 56 + 185193, // 57 + 195112, // 58 + 205379, // 59 + 216000, // 60 + 226981, // 61 + 238328, // 62 + 250047, // 63 + 262144, // 64 + 274625, // 65 + 287496, // 66 + 300763, // 67 + 314432, // 68 + 328509, // 69 + 343000, // 70 + 357911, // 71 + 373248, // 72 + 389017, // 73 + 405224, // 74 + 421875, // 75 + 438976, // 76 + 456533, // 77 + 474552, // 78 + 493039, // 79 + 512000, // 80 + 531441, // 81 + 551368, // 82 + 571787, // 83 + 592704, // 84 + 614125, // 85 + 636056, // 86 + 658503, // 87 + 681472, // 88 + 704969, // 89 + 729000, // 90 + 753571, // 91 + 778688, // 92 + 804357, // 93 + 830584, // 94 + 857375, // 95 + 884736, // 96 + 912673, // 97 + 941192, // 98 + 970299, // 99 + 1000000 // 100 + }, { // Erratic + 0, // 0 + 1, // 1 + 15, // 2 + 52, // 3 + 122, // 4 + 237, // 5 + 406, // 6 + 637, // 7 + 942, // 8 + 1326, // 9 + 1800, // 10 + 2369, // 11 + 3041, // 12 + 3822, // 13 + 4719, // 14 + 5737, // 15 + 6881, // 16 + 8155, // 17 + 9564, // 18 + 11111, // 19 + 12800, // 20 + 14632, // 21 + 16610, // 22 + 18737, // 23 + 21012, // 24 + 23437, // 25 + 26012, // 26 + 28737, // 27 + 31610, // 28 + 34632, // 29 + 37800, // 30 + 41111, // 31 + 44564, // 32 + 48155, // 33 + 51881, // 34 + 55737, // 35 + 59719, // 36 + 63822, // 37 + 68041, // 38 + 72369, // 39 + 76800, // 40 + 81326, // 41 + 85942, // 42 + 90637, // 43 + 95406, // 44 + 100237, // 45 + 105122, // 46 + 110052, // 47 + 115015, // 48 + 120001, // 49 + 125000, // 50 + 131324, // 51 + 137795, // 52 + 144410, // 53 + 151165, // 54 + 158056, // 55 + 165079, // 56 + 172229, // 57 + 179503, // 58 + 186894, // 59 + 194400, // 60 + 202013, // 61 + 209728, // 62 + 217540, // 63 + 225443, // 64 + 233431, // 65 + 241496, // 66 + 249633, // 67 + 257834, // 68 + 267406, // 69 + 276458, // 70 + 286328, // 71 + 296358, // 72 + 305767, // 73 + 316074, // 74 + 326531, // 75 + 336255, // 76 + 346965, // 77 + 357812, // 78 + 367807, // 79 + 378880, // 80 + 390077, // 81 + 400293, // 82 + 411686, // 83 + 423190, // 84 + 433572, // 85 + 445239, // 86 + 457001, // 87 + 467489, // 88 + 479378, // 89 + 491346, // 90 + 501878, // 91 + 513934, // 92 + 526049, // 93 + 536557, // 94 + 548720, // 95 + 560922, // 96 + 571333, // 97 + 583539, // 98 + 591882, // 99 + 600000 // 100 + }, { // Fluctuating + 0, // 0 + 1, // 1 + 4, // 2 + 13, // 3 + 32, // 4 + 65, // 5 + 112, // 6 + 178, // 7 + 276, // 8 + 393, // 9 + 540, // 10 + 745, // 11 + 967, // 12 + 1230, // 13 + 1591, // 14 + 1957, // 15 + 2457, // 16 + 3046, // 17 + 3732, // 18 + 4526, // 19 + 5440, // 20 + 6482, // 21 + 7666, // 22 + 9003, // 23 + 10506, // 24 + 12187, // 25 + 14060, // 26 + 16140, // 27 + 18439, // 28 + 20974, // 29 + 23760, // 30 + 26811, // 31 + 30146, // 32 + 33780, // 33 + 37731, // 34 + 42017, // 35 + 46656, // 36 + 50653, // 37 + 55969, // 38 + 60505, // 39 + 66560, // 40 + 71677, // 41 + 78533, // 42 + 84277, // 43 + 91998, // 44 + 98415, // 45 + 107069, // 46 + 114205, // 47 + 123863, // 48 + 131766, // 49 + 142500, // 50 + 151222, // 51 + 163105, // 52 + 172697, // 53 + 185807, // 54 + 196322, // 55 + 210739, // 56 + 222231, // 57 + 238036, // 58 + 250562, // 59 + 267840, // 60 + 281456, // 61 + 300293, // 62 + 315059, // 63 + 335544, // 64 + 351520, // 65 + 373744, // 66 + 390991, // 67 + 415050, // 68 + 433631, // 69 + 459620, // 70 + 479600, // 71 + 507617, // 72 + 529063, // 73 + 559209, // 74 + 582187, // 75 + 614566, // 76 + 639146, // 77 + 673863, // 78 + 700115, // 79 + 737280, // 80 + 765275, // 81 + 804997, // 82 + 834809, // 83 + 877201, // 84 + 908905, // 85 + 954084, // 86 + 987754, // 87 + 1035837, // 88 + 1071552, // 89 + 1122660, // 90 + 1160499, // 91 + 1214753, // 92 + 1254796, // 93 + 1312322, // 94 + 1354652, // 95 + 1415577, // 96 + 1460276, // 97 + 1524731, // 98 + 1571884, // 99 + 1640000 // 100 + }, { // Medium Slow + 0, // 0 + 1, // 1 + 9, // 2 + 57, // 3 + 96, // 4 + 135, // 5 + 179, // 6 + 236, // 7 + 314, // 8 + 419, // 9 + 560, // 10 + 742, // 11 + 973, // 12 + 1261, // 13 + 1612, // 14 + 2035, // 15 + 2535, // 16 + 3120, // 17 + 3798, // 18 + 4575, // 19 + 5460, // 20 + 6458, // 21 + 7577, // 22 + 8825, // 23 + 10208, // 24 + 11735, // 25 + 13411, // 26 + 15244, // 27 + 17242, // 28 + 19411, // 29 + 21760, // 30 + 24294, // 31 + 27021, // 32 + 29949, // 33 + 33084, // 34 + 36435, // 35 + 40007, // 36 + 43808, // 37 + 47846, // 38 + 52127, // 39 + 56660, // 40 + 61450, // 41 + 66505, // 42 + 71833, // 43 + 77440, // 44 + 83335, // 45 + 89523, // 46 + 96012, // 47 + 102810, // 48 + 109923, // 49 + 117360, // 50 + 125126, // 51 + 133229, // 52 + 141677, // 53 + 150476, // 54 + 159635, // 55 + 169159, // 56 + 179056, // 57 + 189334, // 58 + 199999, // 59 + 211060, // 60 + 222522, // 61 + 234393, // 62 + 246681, // 63 + 259392, // 64 + 272535, // 65 + 286115, // 66 + 300140, // 67 + 314618, // 68 + 329555, // 69 + 344960, // 70 + 360838, // 71 + 377197, // 72 + 394045, // 73 + 411388, // 74 + 429235, // 75 + 447591, // 76 + 466464, // 77 + 485862, // 78 + 505791, // 79 + 526260, // 80 + 547274, // 81 + 568841, // 82 + 590969, // 83 + 613664, // 84 + 636935, // 85 + 660787, // 86 + 685228, // 87 + 710266, // 88 + 735907, // 89 + 762160, // 90 + 789030, // 91 + 816525, // 92 + 844653, // 93 + 873420, // 94 + 902835, // 95 + 932903, // 96 + 963632, // 97 + 995030, // 98 + 1027103, // 99 + 1059860 // 100 + }, { // Fast + 0, // 0 + 1, // 1 + 6, // 2 + 21, // 3 + 51, // 4 + 100, // 5 + 172, // 6 + 274, // 7 + 409, // 8 + 583, // 9 + 800, // 10 + 1064, // 11 + 1382, // 12 + 1757, // 13 + 2195, // 14 + 2700, // 15 + 3276, // 16 + 3930, // 17 + 4665, // 18 + 5487, // 19 + 6400, // 20 + 7408, // 21 + 8518, // 22 + 9733, // 23 + 11059, // 24 + 12500, // 25 + 14060, // 26 + 15746, // 27 + 17561, // 28 + 19511, // 29 + 21600, // 30 + 23832, // 31 + 26214, // 32 + 28749, // 33 + 31443, // 34 + 34300, // 35 + 37324, // 36 + 40522, // 37 + 43897, // 38 + 47455, // 39 + 51200, // 40 + 55136, // 41 + 59270, // 42 + 63605, // 43 + 68147, // 44 + 72900, // 45 + 77868, // 46 + 83058, // 47 + 88473, // 48 + 94119, // 49 + 100000, // 50 + 106120, // 51 + 112486, // 52 + 119101, // 53 + 125971, // 54 + 133100, // 55 + 140492, // 56 + 148154, // 57 + 156089, // 58 + 164303, // 59 + 172800, // 60 + 181584, // 61 + 190662, // 62 + 200037, // 63 + 209715, // 64 + 219700, // 65 + 229996, // 66 + 240610, // 67 + 251545, // 68 + 262807, // 69 + 274400, // 70 + 286328, // 71 + 298598, // 72 + 311213, // 73 + 324179, // 74 + 337500, // 75 + 351180, // 76 + 365226, // 77 + 379641, // 78 + 394431, // 79 + 409600, // 80 + 425152, // 81 + 441094, // 82 + 457429, // 83 + 474163, // 84 + 491300, // 85 + 508844, // 86 + 526802, // 87 + 545177, // 88 + 563975, // 89 + 583200, // 90 + 602856, // 91 + 622950, // 92 + 643485, // 93 + 664467, // 94 + 685900, // 95 + 707788, // 96 + 730138, // 97 + 752953, // 98 + 776239, // 99 + 800000 // 100 + }, { // Slow + 0, // 0 + 1, // 1 + 10, // 2 + 33, // 3 + 80, // 4 + 156, // 5 + 270, // 6 + 428, // 7 + 640, // 8 + 911, // 9 + 1250, // 10 + 1663, // 11 + 2160, // 12 + 2746, // 13 + 3430, // 14 + 4218, // 15 + 5120, // 16 + 6141, // 17 + 7290, // 18 + 8573, // 19 + 10000, // 20 + 11576, // 21 + 13310, // 22 + 15208, // 23 + 17280, // 24 + 19531, // 25 + 21970, // 26 + 24603, // 27 + 27440, // 28 + 30486, // 29 + 33750, // 30 + 37238, // 31 + 40960, // 32 + 44921, // 33 + 49130, // 34 + 53593, // 35 + 58320, // 36 + 63316, // 37 + 68590, // 38 + 74148, // 39 + 80000, // 40 + 86151, // 41 + 92610, // 42 + 99383, // 43 + 106480, // 44 + 113906, // 45 + 121670, // 46 + 129778, // 47 + 138240, // 48 + 147061, // 49 + 156250, // 50 + 165813, // 51 + 175760, // 52 + 186096, // 53 + 196830, // 54 + 207968, // 55 + 219520, // 56 + 231491, // 57 + 243890, // 58 + 256723, // 59 + 270000, // 60 + 283726, // 61 + 297910, // 62 + 312558, // 63 + 327680, // 64 + 343281, // 65 + 359370, // 66 + 375953, // 67 + 393040, // 68 + 410636, // 69 + 428750, // 70 + 447388, // 71 + 466560, // 72 + 486271, // 73 + 506530, // 74 + 527343, // 75 + 548720, // 76 + 570666, // 77 + 593190, // 78 + 616298, // 79 + 640000, // 80 + 664301, // 81 + 689210, // 82 + 714733, // 83 + 740880, // 84 + 767656, // 85 + 795070, // 86 + 823128, // 87 + 851840, // 88 + 881211, // 89 + 911250, // 90 + 941963, // 91 + 973360, // 92 + 1005446, // 93 + 1038230, // 94 + 1071718, // 95 + 1105920, // 96 + 1140841, // 97 + 1176490, // 98 + 1212873, // 99 + 1250000 // 100 + }, { // Medium Fast copy 2 (unused? to-do: investigate) + 0, // 0 + 1, // 1 + 8, // 2 + 27, // 3 + 64, // 4 + 125, // 5 + 216, // 6 + 343, // 7 + 512, // 8 + 729, // 9 + 1000, // 10 + 1331, // 11 + 1728, // 12 + 2197, // 13 + 2744, // 14 + 3375, // 15 + 4096, // 16 + 4913, // 17 + 5832, // 18 + 6859, // 19 + 8000, // 20 + 9261, // 21 + 10648, // 22 + 12167, // 23 + 13824, // 24 + 15625, // 25 + 17576, // 26 + 19683, // 27 + 21952, // 28 + 24389, // 29 + 27000, // 30 + 29791, // 31 + 32768, // 32 + 35937, // 33 + 39304, // 34 + 42875, // 35 + 46656, // 36 + 50653, // 37 + 54872, // 38 + 59319, // 39 + 64000, // 40 + 68921, // 41 + 74088, // 42 + 79507, // 43 + 85184, // 44 + 91125, // 45 + 97336, // 46 + 103823, // 47 + 110592, // 48 + 117649, // 49 + 125000, // 50 + 132651, // 51 + 140608, // 52 + 148877, // 53 + 157464, // 54 + 166375, // 55 + 175616, // 56 + 185193, // 57 + 195112, // 58 + 205379, // 59 + 216000, // 60 + 226981, // 61 + 238328, // 62 + 250047, // 63 + 262144, // 64 + 274625, // 65 + 287496, // 66 + 300763, // 67 + 314432, // 68 + 328509, // 69 + 343000, // 70 + 357911, // 71 + 373248, // 72 + 389017, // 73 + 405224, // 74 + 421875, // 75 + 438976, // 76 + 456533, // 77 + 474552, // 78 + 493039, // 79 + 512000, // 80 + 531441, // 81 + 551368, // 82 + 571787, // 83 + 592704, // 84 + 614125, // 85 + 636056, // 86 + 658503, // 87 + 681472, // 88 + 704969, // 89 + 729000, // 90 + 753571, // 91 + 778688, // 92 + 804357, // 93 + 830584, // 94 + 857375, // 95 + 884736, // 96 + 912673, // 97 + 941192, // 98 + 970299, // 99 + 1000000 // 100 + }, { // Medium Fast copy 3 (unused? to-do: investigate) + 0, // 0 + 1, // 1 + 8, // 2 + 27, // 3 + 64, // 4 + 125, // 5 + 216, // 6 + 343, // 7 + 512, // 8 + 729, // 9 + 1000, // 10 + 1331, // 11 + 1728, // 12 + 2197, // 13 + 2744, // 14 + 3375, // 15 + 4096, // 16 + 4913, // 17 + 5832, // 18 + 6859, // 19 + 8000, // 20 + 9261, // 21 + 10648, // 22 + 12167, // 23 + 13824, // 24 + 15625, // 25 + 17576, // 26 + 19683, // 27 + 21952, // 28 + 24389, // 29 + 27000, // 30 + 29791, // 31 + 32768, // 32 + 35937, // 33 + 39304, // 34 + 42875, // 35 + 46656, // 36 + 50653, // 37 + 54872, // 38 + 59319, // 39 + 64000, // 40 + 68921, // 41 + 74088, // 42 + 79507, // 43 + 85184, // 44 + 91125, // 45 + 97336, // 46 + 103823, // 47 + 110592, // 48 + 117649, // 49 + 125000, // 50 + 132651, // 51 + 140608, // 52 + 148877, // 53 + 157464, // 54 + 166375, // 55 + 175616, // 56 + 185193, // 57 + 195112, // 58 + 205379, // 59 + 216000, // 60 + 226981, // 61 + 238328, // 62 + 250047, // 63 + 262144, // 64 + 274625, // 65 + 287496, // 66 + 300763, // 67 + 314432, // 68 + 328509, // 69 + 343000, // 70 + 357911, // 71 + 373248, // 72 + 389017, // 73 + 405224, // 74 + 421875, // 75 + 438976, // 76 + 456533, // 77 + 474552, // 78 + 493039, // 79 + 512000, // 80 + 531441, // 81 + 551368, // 82 + 571787, // 83 + 592704, // 84 + 614125, // 85 + 636056, // 86 + 658503, // 87 + 681472, // 88 + 704969, // 89 + 729000, // 90 + 753571, // 91 + 778688, // 92 + 804357, // 93 + 830584, // 94 + 857375, // 95 + 884736, // 96 + 912673, // 97 + 941192, // 98 + 970299, // 99 + 1000000 // 100 + } +}; diff --git a/gba/source/exptables.h b/gba/source/exptables.h new file mode 100644 index 0000000..8ab7eb7 --- /dev/null +++ b/gba/source/exptables.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2017 Scott Norton + * Copyright (C) 2017 hatkirby + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ +#ifndef EXPTABLES_H +#define EXPTABLES_H + +#include + +extern const u32 gExperienceTables[][101]; + +#endif diff --git a/gba/source/gamedata.c b/gba/source/gamedata.c index ae593b1..271eaf9 100644 --- a/gba/source/gamedata.c +++ b/gba/source/gamedata.c @@ -140,9 +140,6 @@ bool initSaveData(struct GameData* gameData) pSaveBlock1 gSaveBlock1; pSaveBlock2 gSaveBlock2; pSaveBlock3 gSaveBlock3; - struct BaseStats* gBaseStats; - const u32 (*gExpTables)[101]; - const u16* gNatOrder; //u32 titlemid = 0; // get the address of the save loading function. @@ -345,9 +342,6 @@ bool initSaveData(struct GameData* gameData) //mainloop = (void(*)()) 0x8000429; //titlemid = 0x807928f; //load_pokemon = (void(*)()) 0x804c245; - gBaseStats = (struct BaseStats*) ( GAME_FR ? 0 : 0x82547d0 ); - gExpTables = (ExperienceTables) ( GAME_FR ? 0 : 0x8253b30 ); - gNatOrder = (const u16*) ( GAME_FR ? 0 : 0x825203a ); break; } @@ -518,9 +512,6 @@ bool initSaveData(struct GameData* gameData) gameData->SaveBlock1 = gSaveBlock1; gameData->SaveBlock2 = gSaveBlock2; gameData->SaveBlock3 = gSaveBlock3; - gameData->baseStats = gBaseStats; - gameData->expTables = gExpTables; - gameData->natOrder = gNatOrder; return true; } diff --git a/gba/source/gamedata.h b/gba/source/gamedata.h index 247626a..979ef03 100644 --- a/gba/source/gamedata.h +++ b/gba/source/gamedata.h @@ -27,9 +27,6 @@ struct GameData { pSaveBlock1 SaveBlock1; pSaveBlock2 SaveBlock2; pSaveBlock3 SaveBlock3; - struct BaseStats* baseStats; - ExperienceTables expTables; - const u16* natOrder; }; bool initSaveData(struct GameData* gameData); diff --git a/gba/source/serialize.c b/gba/source/serialize.c index 72afe2f..086e751 100644 --- a/gba/source/serialize.c +++ b/gba/source/serialize.c @@ -7,6 +7,9 @@ #include "serialize.h" #include "gamedata.h" #include "link.h" +#include "basestats.h" +#include "exptables.h" +#include "dexorder.h" #define UNOWN_SPECIES_INDEX 201 #define SHEDINJA_SPECIES_INDEX 303 @@ -60,7 +63,7 @@ void PokemonIntermediateInit( struct PokemonSubstruct2* sub2 = GetBoxPokemonSubstruct2(bpkm); struct PokemonSubstruct3* sub3 = GetBoxPokemonSubstruct3(bpkm); - struct BaseStats* baseStats = &gameData->baseStats[sub0->species]; + const struct SmallBaseStats* baseStats = &gSmallBaseStats[sub0->species]; for (int i=0; iotId = bpkm->otId; pki->otGender = sub3->otGender; - pki->species = gameData->natOrder[sub0->species - 1]; + pki->species = gSpeciesToNationalPokedexNum[sub0->species - 1]; pki->heldItem = sub0->heldItem; pki->experience = sub0->experience; @@ -141,7 +144,7 @@ void PokemonIntermediateInit( // Calculate level from experience. pki->level = 1; - const u32* expTable = gameData->expTables[baseStats->growthRate]; + const u32* expTable = gExperienceTables[baseStats->growthRate]; while ((pki->level <= 100) && (expTable[pki->level] <= sub0->experience)) { pki->level++; -- cgit 1.4.1