From 267900bdcbd2875ac1a73efa3642ceb4032a2ed4 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Thu, 24 Dec 2020 16:46:39 -0800 Subject: [PATCH 1/2] Add Form Species ID tables and functions to access them. --- include/pokemon.h | 4 + .../pokemon/form_species_table_pointers.h | 80 ++++ src/data/pokemon/form_species_tables.h | 386 ++++++++++++++++++ src/pokemon.c | 25 ++ 4 files changed, 495 insertions(+) create mode 100644 src/data/pokemon/form_species_table_pointers.h create mode 100644 src/data/pokemon/form_species_tables.h diff --git a/include/pokemon.h b/include/pokemon.h index a956b9c40..cbbb89d59 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -4,6 +4,8 @@ #include "constants/pokemon.h" #include "sprite.h" +#define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0)) + struct PokemonSubstruct0 { u16 species; @@ -416,5 +418,7 @@ bool8 HasTwoFramesAnimation(u16 species); struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1); void sub_806F47C(u8 id); u8 *sub_806F4F8(u8 id, u8 arg1); +u16 GetFormSpeciesId(u16 speciesId, u8 formId); +u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); #endif // GUARD_POKEMON_H diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h new file mode 100644 index 000000000..22e32ae42 --- /dev/null +++ b/src/data/pokemon/form_species_table_pointers.h @@ -0,0 +1,80 @@ +const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = +{ + [SPECIES_VENUSAUR] = sVenusaurFormSpeciesIdTable, + [SPECIES_CHARIZARD] = sCharizardFormSpeciesIdTable, + [SPECIES_BLASTOISE] = sBlastoiseFormSpeciesIdTable, + [SPECIES_BEEDRILL] = sBeedrillFormSpeciesIdTable, + [SPECIES_PIDGEOT] = sPidgeotFormSpeciesIdTable, + [SPECIES_RATTATA] = sRattataFormSpeciesIdTable, + [SPECIES_RATICATE] = sRaticateFormSpeciesIdTable, + [SPECIES_PIKACHU] = sPikachuFormSpeciesIdTable, + [SPECIES_RAICHU] = sRaichuFormSpeciesIdTable, + [SPECIES_SANDSHREW] = sSandshrewFormSpeciesIdTable, + [SPECIES_SANDSLASH] = sSandslashFormSpeciesIdTable, + [SPECIES_VULPIX] = sVulpixFormSpeciesIdTable, + [SPECIES_NINETALES] = sNinetalesFormSpeciesIdTable, + [SPECIES_DIGLETT] = sDiglettFormSpeciesIdTable, + [SPECIES_DUGTRIO] = sDugtrioFormSpeciesIdTable, + [SPECIES_MEOWTH] = sMeowthFormSpeciesIdTable, + [SPECIES_PERSIAN] = sPersianFormSpeciesIdTable, + [SPECIES_ALAKAZAM] = sAlakazamFormSpeciesIdTable, + [SPECIES_GEODUDE] = sGeodudeFormSpeciesIdTable, + [SPECIES_GRAVELER] = sGravelerFormSpeciesIdTable, + [SPECIES_GOLEM] = sGolemFormSpeciesIdTable, + [SPECIES_PONYTA] = sPonytaFormSpeciesIdTable, + [SPECIES_RAPIDASH] = sRapidashFormSpeciesIdTable, + [SPECIES_SLOWPOKE] = sSlowpokeFormSpeciesIdTable, + [SPECIES_SLOWBRO] = sSlowbroFormSpeciesIdTable, + [SPECIES_FARFETCHD] = sFarfetchdFormSpeciesIdTable, + [SPECIES_GRIMER] = sGrimerFormSpeciesIdTable, + [SPECIES_MUK] = sMukFormSpeciesIdTable, + [SPECIES_GENGAR] = sGengarFormSpeciesIdTable, + [SPECIES_EXEGGUTOR] = sExeggutorFormSpeciesIdTable, + [SPECIES_MAROWAK] = sMarowakFormSpeciesIdTable, + [SPECIES_WEEZING] = sWeezingFormSpeciesIdTable, + [SPECIES_KANGASKHAN] = sKangaskhanFormSpeciesIdTable, + [SPECIES_MR_MIME] = sMrMimeFormSpeciesIdTable, + [SPECIES_PINSIR] = sPinsirFormSpeciesIdTable, + [SPECIES_GYARADOS] = sGyaradosFormSpeciesIdTable, + [SPECIES_AERODACTYL] = sAerodactylFormSpeciesIdTable, + [SPECIES_ARTICUNO] = sArticunoFormSpeciesIdTable, + [SPECIES_ZAPDOS] = sZapdosFormSpeciesIdTable, + [SPECIES_MOLTRES] = sMoltresFormSpeciesIdTable, + [SPECIES_MEWTWO] = sMewtwoFormSpeciesIdTable, + [SPECIES_PICHU] = sPichuFormSpeciesIdTable, + [SPECIES_AMPHAROS] = sAmpharosFormSpeciesIdTable, + [SPECIES_SLOWKING] = sSlowkingFormSpeciesIdTable, + [SPECIES_UNOWN] = sUnownFormSpeciesIdTable, + [SPECIES_STEELIX] = sSteelixFormSpeciesIdTable, + [SPECIES_SCIZOR] = sScizorFormSpeciesIdTable, + [SPECIES_HERACROSS] = sHeracrossFormSpeciesIdTable, + [SPECIES_CORSOLA] = sCorsolaFormSpeciesIdTable, + [SPECIES_HOUNDOOM] = sHoundoomFormSpeciesIdTable, + [SPECIES_TYRANITAR] = sTyranitarFormSpeciesIdTable, + [SPECIES_SCEPTILE] = sSceptileFormSpeciesIdTable, + [SPECIES_BLAZIKEN] = sBlazikenFormSpeciesIdTable, + [SPECIES_SWAMPERT] = sSwampertFormSpeciesIdTable, + [SPECIES_ZIGZAGOON] = sZigzagoonFormSpeciesIdTable, + [SPECIES_LINOONE] = sLinooneFormSpeciesIdTable, + [SPECIES_GARDEVOIR] = sGardevoirFormSpeciesIdTable, + [SPECIES_SABLEYE] = sSableyeFormSpeciesIdTable, + [SPECIES_MAWILE] = sMawileFormSpeciesIdTable, + [SPECIES_AGGRON] = sAggronFormSpeciesIdTable, + [SPECIES_MEDICHAM] = sMedichamFormSpeciesIdTable, + [SPECIES_MANECTRIC] = sManectricFormSpeciesIdTable, + [SPECIES_SHARPEDO] = sSharpedoFormSpeciesIdTable, + [SPECIES_CAMERUPT] = sCameruptFormSpeciesIdTable, + [SPECIES_ALTARIA] = sAltariaFormSpeciesIdTable, + [SPECIES_CASTFORM] = sCastformFormSpeciesIdTable, + [SPECIES_BANETTE] = sBanetteFormSpeciesIdTable, + [SPECIES_ABSOL] = sAbsolFormSpeciesIdTable, + [SPECIES_GLALIE] = sGlalieFormSpeciesIdTable, + [SPECIES_SALAMENCE] = sSalamenceFormSpeciesIdTable, + [SPECIES_METAGROSS] = sMetagrossFormSpeciesIdTable, + [SPECIES_LATIAS] = sLatiasFormSpeciesIdTable, + [SPECIES_LATIOS] = sLatiosFormSpeciesIdTable, + [SPECIES_KYOGRE] = sKyogreFormSpeciesIdTable, + [SPECIES_GROUDON] = sGroudonFormSpeciesIdTable, + [SPECIES_RAYQUAZA] = sRayquazaFormSpeciesIdTable, + [SPECIES_DEOXYS] = sDeoxysFormSpeciesIdTable, +}; diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h new file mode 100644 index 000000000..632bdd9be --- /dev/null +++ b/src/data/pokemon/form_species_tables.h @@ -0,0 +1,386 @@ +#define FORM_SPECIES_END (0xffff) + +static const u16 sVenusaurFormSpeciesIdTable[] = { + SPECIES_VENUSAUR, + FORM_SPECIES_END, +}; + +static const u16 sCharizardFormSpeciesIdTable[] = { + SPECIES_CHARIZARD, + FORM_SPECIES_END, +}; + +static const u16 sBlastoiseFormSpeciesIdTable[] = { + SPECIES_BLASTOISE, + FORM_SPECIES_END, +}; + +static const u16 sBeedrillFormSpeciesIdTable[] = { + SPECIES_BEEDRILL, + FORM_SPECIES_END, +}; + +static const u16 sPidgeotFormSpeciesIdTable[] = { + SPECIES_PIDGEOT, + FORM_SPECIES_END, +}; + +static const u16 sRattataFormSpeciesIdTable[] = { + SPECIES_RATTATA, + FORM_SPECIES_END, +}; + +static const u16 sRaticateFormSpeciesIdTable[] = { + SPECIES_RATICATE, + FORM_SPECIES_END, +}; + +static const u16 sPikachuFormSpeciesIdTable[] = { + SPECIES_PIKACHU, + FORM_SPECIES_END, +}; + +static const u16 sRaichuFormSpeciesIdTable[] = { + SPECIES_RAICHU, + FORM_SPECIES_END, +}; + +static const u16 sSandshrewFormSpeciesIdTable[] = { + SPECIES_SANDSHREW, + FORM_SPECIES_END, +}; + +static const u16 sSandslashFormSpeciesIdTable[] = { + SPECIES_SANDSLASH, + FORM_SPECIES_END, +}; + +static const u16 sVulpixFormSpeciesIdTable[] = { + SPECIES_VULPIX, + FORM_SPECIES_END, +}; + +static const u16 sNinetalesFormSpeciesIdTable[] = { + SPECIES_NINETALES, + FORM_SPECIES_END, +}; + +static const u16 sDiglettFormSpeciesIdTable[] = { + SPECIES_DIGLETT, + FORM_SPECIES_END, +}; + +static const u16 sDugtrioFormSpeciesIdTable[] = { + SPECIES_DUGTRIO, + FORM_SPECIES_END, +}; + +static const u16 sMeowthFormSpeciesIdTable[] = { + SPECIES_MEOWTH, + FORM_SPECIES_END, +}; + +static const u16 sPersianFormSpeciesIdTable[] = { + SPECIES_PERSIAN, + FORM_SPECIES_END, +}; + +static const u16 sAlakazamFormSpeciesIdTable[] = { + SPECIES_ALAKAZAM, + FORM_SPECIES_END, +}; + +static const u16 sGeodudeFormSpeciesIdTable[] = { + SPECIES_GEODUDE, + FORM_SPECIES_END, +}; + +static const u16 sGravelerFormSpeciesIdTable[] = { + SPECIES_GRAVELER, + FORM_SPECIES_END, +}; + +static const u16 sGolemFormSpeciesIdTable[] = { + SPECIES_GOLEM, + FORM_SPECIES_END, +}; + +static const u16 sPonytaFormSpeciesIdTable[] = { + SPECIES_PONYTA, + FORM_SPECIES_END, +}; + +static const u16 sRapidashFormSpeciesIdTable[] = { + SPECIES_RAPIDASH, + FORM_SPECIES_END, +}; + +static const u16 sSlowpokeFormSpeciesIdTable[] = { + SPECIES_SLOWPOKE, + FORM_SPECIES_END, +}; + +static const u16 sSlowbroFormSpeciesIdTable[] = { + SPECIES_SLOWBRO, + FORM_SPECIES_END, +}; + +static const u16 sFarfetchdFormSpeciesIdTable[] = { + SPECIES_FARFETCHD, + FORM_SPECIES_END, +}; + +static const u16 sGrimerFormSpeciesIdTable[] = { + SPECIES_GRIMER, + FORM_SPECIES_END, +}; + +static const u16 sMukFormSpeciesIdTable[] = { + SPECIES_MUK, + FORM_SPECIES_END, +}; + +static const u16 sGengarFormSpeciesIdTable[] = { + SPECIES_GENGAR, + FORM_SPECIES_END, +}; + +static const u16 sExeggutorFormSpeciesIdTable[] = { + SPECIES_EXEGGUTOR, + FORM_SPECIES_END, +}; + +static const u16 sMarowakFormSpeciesIdTable[] = { + SPECIES_MAROWAK, + FORM_SPECIES_END, +}; + +static const u16 sWeezingFormSpeciesIdTable[] = { + SPECIES_WEEZING, + FORM_SPECIES_END, +}; + +static const u16 sKangaskhanFormSpeciesIdTable[] = { + SPECIES_KANGASKHAN, + FORM_SPECIES_END, +}; + +static const u16 sMrMimeFormSpeciesIdTable[] = { + SPECIES_MR_MIME, + FORM_SPECIES_END, +}; + +static const u16 sPinsirFormSpeciesIdTable[] = { + SPECIES_PINSIR, + FORM_SPECIES_END, +}; + +static const u16 sGyaradosFormSpeciesIdTable[] = { + SPECIES_GYARADOS, + FORM_SPECIES_END, +}; + +static const u16 sAerodactylFormSpeciesIdTable[] = { + SPECIES_AERODACTYL, + FORM_SPECIES_END, +}; + +static const u16 sArticunoFormSpeciesIdTable[] = { + SPECIES_ARTICUNO, + FORM_SPECIES_END, +}; + +static const u16 sZapdosFormSpeciesIdTable[] = { + SPECIES_ZAPDOS, + FORM_SPECIES_END, +}; + +static const u16 sMoltresFormSpeciesIdTable[] = { + SPECIES_MOLTRES, + FORM_SPECIES_END, +}; + +static const u16 sMewtwoFormSpeciesIdTable[] = { + SPECIES_MEWTWO, + FORM_SPECIES_END, +}; + +static const u16 sPichuFormSpeciesIdTable[] = { + SPECIES_PICHU, + FORM_SPECIES_END, +}; + +static const u16 sAmpharosFormSpeciesIdTable[] = { + SPECIES_AMPHAROS, + FORM_SPECIES_END, +}; + +static const u16 sSlowkingFormSpeciesIdTable[] = { + SPECIES_SLOWKING, + FORM_SPECIES_END, +}; + +static const u16 sUnownFormSpeciesIdTable[] = { + SPECIES_UNOWN, + FORM_SPECIES_END, +}; + +static const u16 sSteelixFormSpeciesIdTable[] = { + SPECIES_STEELIX, + FORM_SPECIES_END, +}; + +static const u16 sScizorFormSpeciesIdTable[] = { + SPECIES_SCIZOR, + FORM_SPECIES_END, +}; + +static const u16 sHeracrossFormSpeciesIdTable[] = { + SPECIES_HERACROSS, + FORM_SPECIES_END, +}; + +static const u16 sCorsolaFormSpeciesIdTable[] = { + SPECIES_CORSOLA, + FORM_SPECIES_END, +}; + +static const u16 sHoundoomFormSpeciesIdTable[] = { + SPECIES_HOUNDOOM, + FORM_SPECIES_END, +}; + +static const u16 sTyranitarFormSpeciesIdTable[] = { + SPECIES_TYRANITAR, + FORM_SPECIES_END, +}; + +static const u16 sSceptileFormSpeciesIdTable[] = { + SPECIES_SCEPTILE, + FORM_SPECIES_END, +}; + +static const u16 sBlazikenFormSpeciesIdTable[] = { + SPECIES_BLAZIKEN, + FORM_SPECIES_END, +}; + +static const u16 sSwampertFormSpeciesIdTable[] = { + SPECIES_SWAMPERT, + FORM_SPECIES_END, +}; + +static const u16 sZigzagoonFormSpeciesIdTable[] = { + SPECIES_ZIGZAGOON, + FORM_SPECIES_END, +}; + +static const u16 sLinooneFormSpeciesIdTable[] = { + SPECIES_LINOONE, + FORM_SPECIES_END, +}; + +static const u16 sGardevoirFormSpeciesIdTable[] = { + SPECIES_GARDEVOIR, + FORM_SPECIES_END, +}; + +static const u16 sSableyeFormSpeciesIdTable[] = { + SPECIES_SABLEYE, + FORM_SPECIES_END, +}; + +static const u16 sMawileFormSpeciesIdTable[] = { + SPECIES_MAWILE, + FORM_SPECIES_END, +}; + +static const u16 sAggronFormSpeciesIdTable[] = { + SPECIES_AGGRON, + FORM_SPECIES_END, +}; + +static const u16 sMedichamFormSpeciesIdTable[] = { + SPECIES_MEDICHAM, + FORM_SPECIES_END, +}; + +static const u16 sManectricFormSpeciesIdTable[] = { + SPECIES_MANECTRIC, + FORM_SPECIES_END, +}; + +static const u16 sSharpedoFormSpeciesIdTable[] = { + SPECIES_SHARPEDO, + FORM_SPECIES_END, +}; + +static const u16 sCameruptFormSpeciesIdTable[] = { + SPECIES_CAMERUPT, + FORM_SPECIES_END, +}; + +static const u16 sAltariaFormSpeciesIdTable[] = { + SPECIES_ALTARIA, + FORM_SPECIES_END, +}; + +static const u16 sCastformFormSpeciesIdTable[] = { + SPECIES_CASTFORM, + FORM_SPECIES_END, +}; + +static const u16 sBanetteFormSpeciesIdTable[] = { + SPECIES_BANETTE, + FORM_SPECIES_END, +}; + +static const u16 sAbsolFormSpeciesIdTable[] = { + SPECIES_ABSOL, + FORM_SPECIES_END, +}; + +static const u16 sGlalieFormSpeciesIdTable[] = { + SPECIES_GLALIE, + FORM_SPECIES_END, +}; + +static const u16 sSalamenceFormSpeciesIdTable[] = { + SPECIES_SALAMENCE, + FORM_SPECIES_END, +}; + +static const u16 sMetagrossFormSpeciesIdTable[] = { + SPECIES_METAGROSS, + FORM_SPECIES_END, +}; + +static const u16 sLatiasFormSpeciesIdTable[] = { + SPECIES_LATIAS, + FORM_SPECIES_END, +}; + +static const u16 sLatiosFormSpeciesIdTable[] = { + SPECIES_LATIOS, + FORM_SPECIES_END, +}; + +static const u16 sKyogreFormSpeciesIdTable[] = { + SPECIES_KYOGRE, + FORM_SPECIES_END, +}; + +static const u16 sGroudonFormSpeciesIdTable[] = { + SPECIES_GROUDON, + FORM_SPECIES_END, +}; + +static const u16 sRayquazaFormSpeciesIdTable[] = { + SPECIES_RAYQUAZA, + FORM_SPECIES_END, +}; + +static const u16 sDeoxysFormSpeciesIdTable[] = { + SPECIES_DEOXYS, + FORM_SPECIES_END, +}; diff --git a/src/pokemon.c b/src/pokemon.c index 3621284d6..070f754c5 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1386,6 +1386,8 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/level_up_learnsets.h" #include "data/pokemon/evolution.h" #include "data/pokemon/level_up_learnset_pointers.h" +#include "data/pokemon/form_species_tables.h" +#include "data/pokemon/form_species_table_pointers.h" // SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result @@ -6982,3 +6984,26 @@ u8 *sub_806F4F8(u8 id, u8 arg1) return structPtr->byteArrays[arg1]; } } + +u16 GetFormSpeciesId(u16 speciesId, u8 formId) +{ + if (gFormSpeciesIdTables[speciesId] != NULL) + return gFormSpeciesIdTables[speciesId][formId]; + else + return speciesId; +} + +u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId) +{ + u8 targetFormId = 0; + + if (gFormSpeciesIdTables[formSpeciesId] != NULL) + { + for (targetFormId = 0; gFormSpeciesIdTables[formSpeciesId][targetFormId] != FORM_SPECIES_END; targetFormId++) + { + if (formSpeciesId == gFormSpeciesIdTables[formSpeciesId][targetFormId]) + break; + } + } + return targetFormId; +} From fdc6156f83ca59b228d2cafc70f4f5cf74de1333 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Thu, 24 Dec 2020 14:31:33 -0800 Subject: [PATCH 2/2] Add Form Species ID tables and entries for new mons and forms. --- .../pokemon/form_species_table_pointers.h | 439 ++++++++++++ src/data/pokemon/form_species_tables.h | 638 ++++++++++++++++++ 2 files changed, 1077 insertions(+) diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h index 22e32ae42..ac58f1bfb 100644 --- a/src/data/pokemon/form_species_table_pointers.h +++ b/src/data/pokemon/form_species_table_pointers.h @@ -77,4 +77,443 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_GROUDON] = sGroudonFormSpeciesIdTable, [SPECIES_RAYQUAZA] = sRayquazaFormSpeciesIdTable, [SPECIES_DEOXYS] = sDeoxysFormSpeciesIdTable, + [SPECIES_BURMY] = sBurmyFormSpeciesIdTable, + [SPECIES_WORMADAM] = sWormadamFormSpeciesIdTable, + [SPECIES_CHERRIM] = sCherrimFormSpeciesIdTable, + [SPECIES_SHELLOS] = sShellosFormSpeciesIdTable, + [SPECIES_GASTRODON] = sGastrodonFormSpeciesIdTable, + [SPECIES_LOPUNNY] = sLopunnyFormSpeciesIdTable, + [SPECIES_GARCHOMP] = sGarchompFormSpeciesIdTable, + [SPECIES_LUCARIO] = sLucarioFormSpeciesIdTable, + [SPECIES_ABOMASNOW] = sAbomasnowFormSpeciesIdTable, + [SPECIES_GALLADE] = sGalladeFormSpeciesIdTable, + [SPECIES_ROTOM] = sRotomFormSpeciesIdTable, + [SPECIES_GIRATINA] = sGiratinaFormSpeciesIdTable, + [SPECIES_SHAYMIN] = sShayminFormSpeciesIdTable, + [SPECIES_ARCEUS] = sArceusFormSpeciesIdTable, + [SPECIES_AUDINO] = sAudinoFormSpeciesIdTable, + [SPECIES_BASCULIN] = sBasculinFormSpeciesIdTable, + [SPECIES_DARUMAKA] = sDarumakaFormSpeciesIdTable, + [SPECIES_DARMANITAN] = sDarmanitanFormSpeciesIdTable, + [SPECIES_YAMASK] = sYamaskFormSpeciesIdTable, + [SPECIES_DEERLING] = sDeerlingFormSpeciesIdTable, + [SPECIES_SAWSBUCK] = sSawsbuckFormSpeciesIdTable, + [SPECIES_STUNFISK] = sStunfiskFormSpeciesIdTable, + [SPECIES_TORNADUS] = sTornadusFormSpeciesIdTable, + [SPECIES_THUNDURUS] = sThundurusFormSpeciesIdTable, + [SPECIES_LANDORUS] = sLandorusFormSpeciesIdTable, + [SPECIES_KYUREM] = sKyuremFormSpeciesIdTable, + [SPECIES_KELDEO] = sKeldeoFormSpeciesIdTable, + [SPECIES_MELOETTA] = sMeloettaFormSpeciesIdTable, + [SPECIES_GENESECT] = sGenesectFormSpeciesIdTable, + [SPECIES_GRENINJA] = sGreninjaFormSpeciesIdTable, + [SPECIES_VIVILLON] = sVivillonFormSpeciesIdTable, + [SPECIES_FLABEBE] = sFlabebeFormSpeciesIdTable, + [SPECIES_FLOETTE] = sFloetteFormSpeciesIdTable, + [SPECIES_FLORGES] = sFlorgesFormSpeciesIdTable, + [SPECIES_FURFROU] = sFurfrouFormSpeciesIdTable, + [SPECIES_MEOWSTIC] = sMeowsticFormSpeciesIdTable, + [SPECIES_AEGISLASH] = sAegislashFormSpeciesIdTable, + [SPECIES_PUMPKABOO] = sPumpkabooFormSpeciesIdTable, + [SPECIES_GOURGEIST] = sGourgeistFormSpeciesIdTable, + [SPECIES_XERNEAS] = sXerneasFormSpeciesIdTable, + [SPECIES_ZYGARDE] = sZygardeFormSpeciesIdTable, + [SPECIES_DIANCIE] = sDiancieFormSpeciesIdTable, + [SPECIES_HOOPA] = sHoopaFormSpeciesIdTable, + [SPECIES_ORICORIO] = sOricorioFormSpeciesIdTable, + [SPECIES_ROCKRUFF] = sRockruffFormSpeciesIdTable, + [SPECIES_LYCANROC] = sLycanrocFormSpeciesIdTable, + [SPECIES_WISHIWASHI] = sWishiwashiFormSpeciesIdTable, + [SPECIES_SILVALLY] = sSilvallyFormSpeciesIdTable, + [SPECIES_MINIOR] = sMiniorFormSpeciesIdTable, + [SPECIES_MIMIKYU] = sMimikyuFormSpeciesIdTable, + [SPECIES_NECROZMA] = sNecrozmaFormSpeciesIdTable, + [SPECIES_MAGEARNA] = sMagearnaFormSpeciesIdTable, + [SPECIES_CRAMORANT] = sCramorantFormSpeciesIdTable, + [SPECIES_TOXTRICITY] = sToxtricityFormSpeciesIdTable, + [SPECIES_SINISTEA] = sSinisteaFormSpeciesIdTable, + [SPECIES_POLTEAGEIST] = sPolteageistFormSpeciesIdTable, + [SPECIES_ALCREMIE] = sAlcremieFormSpeciesIdTable, + [SPECIES_EISCUE] = sEiscueFormSpeciesIdTable, + [SPECIES_INDEEDEE] = sIndeedeeFormSpeciesIdTable, + [SPECIES_MORPEKO] = sMorpekoFormSpeciesIdTable, + [SPECIES_ZACIAN] = sZacianFormSpeciesIdTable, + [SPECIES_ZAMAZENTA] = sZamazentaFormSpeciesIdTable, + [SPECIES_ETERNATUS] = sEternatusFormSpeciesIdTable, + [SPECIES_URSHIFU] = sUrshifuFormSpeciesIdTable, + [SPECIES_ZARUDE] = sZarudeFormSpeciesIdTable, + [SPECIES_CALYREX] = sCalyrexFormSpeciesIdTable, + // Megas + [SPECIES_VENUSAUR_MEGA] = sVenusaurFormSpeciesIdTable, + [SPECIES_CHARIZARD_MEGA_X] = sCharizardFormSpeciesIdTable, + [SPECIES_CHARIZARD_MEGA_Y] = sCharizardFormSpeciesIdTable, + [SPECIES_BLASTOISE_MEGA] = sBlastoiseFormSpeciesIdTable, + [SPECIES_BEEDRILL_MEGA] = sBeedrillFormSpeciesIdTable, + [SPECIES_PIDGEOT_MEGA] = sPidgeotFormSpeciesIdTable, + [SPECIES_ALAKAZAM_MEGA] = sAlakazamFormSpeciesIdTable, + [SPECIES_SLOWBRO_MEGA] = sSlowbroFormSpeciesIdTable, + [SPECIES_GENGAR_MEGA] = sGengarFormSpeciesIdTable, + [SPECIES_KANGASKHAN_MEGA] = sKangaskhanFormSpeciesIdTable, + [SPECIES_PINSIR_MEGA] = sPinsirFormSpeciesIdTable, + [SPECIES_GYARADOS_MEGA] = sGyaradosFormSpeciesIdTable, + [SPECIES_AERODACTYL_MEGA] = sAerodactylFormSpeciesIdTable, + [SPECIES_MEWTWO_MEGA_X] = sMewtwoFormSpeciesIdTable, + [SPECIES_MEWTWO_MEGA_Y] = sMewtwoFormSpeciesIdTable, + [SPECIES_AMPHAROS_MEGA] = sAmpharosFormSpeciesIdTable, + [SPECIES_STEELIX_MEGA] = sSteelixFormSpeciesIdTable, + [SPECIES_SCIZOR_MEGA] = sScizorFormSpeciesIdTable, + [SPECIES_HERACROSS_MEGA] = sHeracrossFormSpeciesIdTable, + [SPECIES_HOUNDOOM_MEGA] = sHoundoomFormSpeciesIdTable, + [SPECIES_TYRANITAR_MEGA] = sTyranitarFormSpeciesIdTable, + [SPECIES_SCEPTILE_MEGA] = sSceptileFormSpeciesIdTable, + [SPECIES_BLAZIKEN_MEGA] = sBlazikenFormSpeciesIdTable, + [SPECIES_SWAMPERT_MEGA] = sSwampertFormSpeciesIdTable, + [SPECIES_GARDEVOIR_MEGA] = sGardevoirFormSpeciesIdTable, + [SPECIES_SABLEYE_MEGA] = sSableyeFormSpeciesIdTable, + [SPECIES_MAWILE_MEGA] = sMawileFormSpeciesIdTable, + [SPECIES_AGGRON_MEGA] = sAggronFormSpeciesIdTable, + [SPECIES_MEDICHAM_MEGA] = sMedichamFormSpeciesIdTable, + [SPECIES_MANECTRIC_MEGA] = sManectricFormSpeciesIdTable, + [SPECIES_SHARPEDO_MEGA] = sSharpedoFormSpeciesIdTable, + [SPECIES_CAMERUPT_MEGA] = sCameruptFormSpeciesIdTable, + [SPECIES_ALTARIA_MEGA] = sAltariaFormSpeciesIdTable, + [SPECIES_BANETTE_MEGA] = sBanetteFormSpeciesIdTable, + [SPECIES_ABSOL_MEGA] = sAbsolFormSpeciesIdTable, + [SPECIES_GLALIE_MEGA] = sGlalieFormSpeciesIdTable, + [SPECIES_SALAMENCE_MEGA] = sSalamenceFormSpeciesIdTable, + [SPECIES_METAGROSS_MEGA] = sMetagrossFormSpeciesIdTable, + [SPECIES_LATIAS_MEGA] = sLatiasFormSpeciesIdTable, + [SPECIES_LATIOS_MEGA] = sLatiosFormSpeciesIdTable, + [SPECIES_LOPUNNY_MEGA] = sLopunnyFormSpeciesIdTable, + [SPECIES_GARCHOMP_MEGA] = sGarchompFormSpeciesIdTable, + [SPECIES_LUCARIO_MEGA] = sLucarioFormSpeciesIdTable, + [SPECIES_ABOMASNOW_MEGA] = sAbomasnowFormSpeciesIdTable, + [SPECIES_GALLADE_MEGA] = sGalladeFormSpeciesIdTable, + [SPECIES_AUDINO_MEGA] = sAudinoFormSpeciesIdTable, + [SPECIES_DIANCIE_MEGA] = sDiancieFormSpeciesIdTable, + // Special Mega + Primals + [SPECIES_RAYQUAZA_MEGA] = sRayquazaFormSpeciesIdTable, + [SPECIES_KYOGRE_PRIMAL] = sKyogreFormSpeciesIdTable, + [SPECIES_GROUDON_PRIMAL] = sGroudonFormSpeciesIdTable, + // Alolan Forms + [SPECIES_RATTATA_ALOLAN] = sRattataFormSpeciesIdTable, + [SPECIES_RATICATE_ALOLAN] = sRaticateFormSpeciesIdTable, + [SPECIES_RAICHU_ALOLAN] = sRaichuFormSpeciesIdTable, + [SPECIES_SANDSHREW_ALOLAN] = sSandshrewFormSpeciesIdTable, + [SPECIES_SANDSLASH_ALOLAN] = sSandslashFormSpeciesIdTable, + [SPECIES_VULPIX_ALOLAN] = sVulpixFormSpeciesIdTable, + [SPECIES_NINETALES_ALOLAN] = sNinetalesFormSpeciesIdTable, + [SPECIES_DIGLETT_ALOLAN] = sDiglettFormSpeciesIdTable, + [SPECIES_DUGTRIO_ALOLAN] = sDugtrioFormSpeciesIdTable, + [SPECIES_MEOWTH_ALOLAN] = sMeowthFormSpeciesIdTable, + [SPECIES_PERSIAN_ALOLAN] = sPersianFormSpeciesIdTable, + [SPECIES_GEODUDE_ALOLAN] = sGeodudeFormSpeciesIdTable, + [SPECIES_GRAVELER_ALOLAN] = sGravelerFormSpeciesIdTable, + [SPECIES_GOLEM_ALOLAN] = sGolemFormSpeciesIdTable, + [SPECIES_GRIMER_ALOLAN] = sGrimerFormSpeciesIdTable, + [SPECIES_MUK_ALOLAN] = sMukFormSpeciesIdTable, + [SPECIES_EXEGGUTOR_ALOLAN] = sExeggutorFormSpeciesIdTable, + [SPECIES_MAROWAK_ALOLAN] = sMarowakFormSpeciesIdTable, + // Galarian Forms + [SPECIES_MEOWTH_GALARIAN] = sMeowthFormSpeciesIdTable, + [SPECIES_PONYTA_GALARIAN] = sPonytaFormSpeciesIdTable, + [SPECIES_RAPIDASH_GALARIAN] = sRapidashFormSpeciesIdTable, + [SPECIES_SLOWPOKE_GALARIAN] = sSlowpokeFormSpeciesIdTable, + [SPECIES_SLOWBRO_GALARIAN] = sSlowbroFormSpeciesIdTable, + [SPECIES_FARFETCHD_GALARIAN] = sFarfetchdFormSpeciesIdTable, + [SPECIES_WEEZING_GALARIAN] = sWeezingFormSpeciesIdTable, + [SPECIES_MR_MIME_GALARIAN] = sMrMimeFormSpeciesIdTable, + [SPECIES_ARTICUNO_GALARIAN] = sArticunoFormSpeciesIdTable, + [SPECIES_ZAPDOS_GALARIAN] = sZapdosFormSpeciesIdTable, + [SPECIES_MOLTRES_GALARIAN] = sMoltresFormSpeciesIdTable, + [SPECIES_SLOWKING_GALARIAN] = sSlowkingFormSpeciesIdTable, + [SPECIES_CORSOLA_GALARIAN] = sCorsolaFormSpeciesIdTable, + [SPECIES_ZIGZAGOON_GALARIAN] = sZigzagoonFormSpeciesIdTable, + [SPECIES_LINOONE_GALARIAN] = sLinooneFormSpeciesIdTable, + [SPECIES_DARUMAKA_GALARIAN] = sDarumakaFormSpeciesIdTable, + [SPECIES_DARMANITAN_GALARIAN] = sDarmanitanFormSpeciesIdTable, + [SPECIES_YAMASK_GALARIAN] = sYamaskFormSpeciesIdTable, + [SPECIES_STUNFISK_GALARIAN] = sStunfiskFormSpeciesIdTable, + // Misc Forms + // Cosplay Pikachu + [SPECIES_PIKACHU_COSPLAY] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_ROCK_STAR] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_BELLE] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_POP_STAR] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_PH_D] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_LIBRE] = sPikachuFormSpeciesIdTable, + // Cap Pikachu + [SPECIES_PIKACHU_ORIGINAL_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_HOENN_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_SINNOH_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_UNOVA_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_KALOS_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_ALOLA_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_PARTNER_CAP] = sPikachuFormSpeciesIdTable, + [SPECIES_PIKACHU_WORLD_CAP] = sPikachuFormSpeciesIdTable, + // Pichu + [SPECIES_PICHU_SPIKY_EARED] = sPichuFormSpeciesIdTable, + // Unown + [SPECIES_UNOWN_B] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_C] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_D] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_E] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_F] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_G] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_H] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_I] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_J] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_K] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_L] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_M] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_N] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_O] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_P] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_Q] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_R] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_S] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_T] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_U] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_V] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_W] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_X] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_Y] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_Z] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_EMARK] = sUnownFormSpeciesIdTable, + [SPECIES_UNOWN_QMARK] = sUnownFormSpeciesIdTable, + // Castform + [SPECIES_CASTFORM_SUNNY] = sCastformFormSpeciesIdTable, + [SPECIES_CASTFORM_RAINY] = sCastformFormSpeciesIdTable, + [SPECIES_CASTFORM_SNOWY] = sCastformFormSpeciesIdTable, + // Deoxys + [SPECIES_DEOXYS_ATTACK] = sDeoxysFormSpeciesIdTable, + [SPECIES_DEOXYS_DEFENSE] = sDeoxysFormSpeciesIdTable, + [SPECIES_DEOXYS_SPEED] = sDeoxysFormSpeciesIdTable, + // Burmy + [SPECIES_BURMY_SANDY_CLOAK] = sBurmyFormSpeciesIdTable, + [SPECIES_BURMY_TRASH_CLOAK] = sBurmyFormSpeciesIdTable, + // Wormadam + [SPECIES_WORMADAM_SANDY_CLOAK] = sWormadamFormSpeciesIdTable, + [SPECIES_WORMADAM_TRASH_CLOAK] = sWormadamFormSpeciesIdTable, + // Cherrim + [SPECIES_CHERRIM_SUNSHINE] = sCherrimFormSpeciesIdTable, + // Shellos + [SPECIES_SHELLOS_EAST_SEA] = sShellosFormSpeciesIdTable, + // Gastrodon + [SPECIES_GASTRODON_EAST_SEA] = sGastrodonFormSpeciesIdTable, + // Rotom + [SPECIES_ROTOM_HEAT] = sRotomFormSpeciesIdTable, + [SPECIES_ROTOM_WASH] = sRotomFormSpeciesIdTable, + [SPECIES_ROTOM_FROST] = sRotomFormSpeciesIdTable, + [SPECIES_ROTOM_FAN] = sRotomFormSpeciesIdTable, + [SPECIES_ROTOM_MOW] = sRotomFormSpeciesIdTable, + // Giratina + [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormSpeciesIdTable, + // Shaymin + [SPECIES_SHAYMIN_SKY] = sShayminFormSpeciesIdTable, + // Arceus + [SPECIES_ARCEUS_FIGHTING] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_FLYING] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_POISON] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_GROUND] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_ROCK] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_BUG] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_GHOST] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_STEEL] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_FIRE] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_WATER] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_GRASS] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_ELECTRIC] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_PSYCHIC] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_ICE] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_DRAGON] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_DARK] = sArceusFormSpeciesIdTable, + [SPECIES_ARCEUS_FAIRY] = sArceusFormSpeciesIdTable, + // Basculin + [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinFormSpeciesIdTable, + // Darmanitan + [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanFormSpeciesIdTable, + [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = sDarmanitanFormSpeciesIdTable, + // Deerling + [SPECIES_DEERLING_SUMMER] = sDeerlingFormSpeciesIdTable, + [SPECIES_DEERLING_AUTUMN] = sDeerlingFormSpeciesIdTable, + [SPECIES_DEERLING_WINTER] = sDeerlingFormSpeciesIdTable, + // Sawsbuck + [SPECIES_SAWSBUCK_SUMMER] = sSawsbuckFormSpeciesIdTable, + [SPECIES_SAWSBUCK_AUTUMN] = sSawsbuckFormSpeciesIdTable, + [SPECIES_SAWSBUCK_WINTER] = sSawsbuckFormSpeciesIdTable, + // Therian Forms + [SPECIES_TORNADUS_THERIAN] = sTornadusFormSpeciesIdTable, + [SPECIES_THUNDURUS_THERIAN] = sThundurusFormSpeciesIdTable, + [SPECIES_LANDORUS_THERIAN] = sLandorusFormSpeciesIdTable, + // Kyurem + [SPECIES_KYUREM_WHITE] = sKyuremFormSpeciesIdTable, + [SPECIES_KYUREM_BLACK] = sKyuremFormSpeciesIdTable, + // Keldeo + [SPECIES_KELDEO_RESOLUTE] = sKeldeoFormSpeciesIdTable, + // Meloetta + [SPECIES_MELOETTA_PIROUETTE] = sMeloettaFormSpeciesIdTable, + // Genesect + [SPECIES_GENESECT_DOUSE_DRIVE] = sGenesectFormSpeciesIdTable, + [SPECIES_GENESECT_SHOCK_DRIVE] = sGenesectFormSpeciesIdTable, + [SPECIES_GENESECT_BURN_DRIVE] = sGenesectFormSpeciesIdTable, + [SPECIES_GENESECT_CHILL_DRIVE] = sGenesectFormSpeciesIdTable, + // Greninja + [SPECIES_GRENINJA_BATTLE_BOND] = sGreninjaFormSpeciesIdTable, + [SPECIES_GRENINJA_ASH] = sGreninjaFormSpeciesIdTable, + // Vivillon + [SPECIES_VIVILLON_POLAR] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_TUNDRA] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_CONTINENTAL] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_GARDEN] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_ELEGANT] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_MEADOW] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_MODERN] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_MARINE] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_ARCHIPELAGO] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_HIGH_PLAINS] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_SANDSTORM] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_RIVER] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_MONSOON] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_SAVANNA] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_SUN] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_OCEAN] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_JUNGLE] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_FANCY] = sVivillonFormSpeciesIdTable, + [SPECIES_VIVILLON_POKE_BALL] = sVivillonFormSpeciesIdTable, + // Flabébé + [SPECIES_FLABEBE_YELLOW_FLOWER] = sFlabebeFormSpeciesIdTable, + [SPECIES_FLABEBE_ORANGE_FLOWER] = sFlabebeFormSpeciesIdTable, + [SPECIES_FLABEBE_BLUE_FLOWER] = sFlabebeFormSpeciesIdTable, + [SPECIES_FLABEBE_WHITE_FLOWER] = sFlabebeFormSpeciesIdTable, + // Floette + [SPECIES_FLOETTE_YELLOW_FLOWER] = sFloetteFormSpeciesIdTable, + [SPECIES_FLOETTE_ORANGE_FLOWER] = sFloetteFormSpeciesIdTable, + [SPECIES_FLOETTE_BLUE_FLOWER] = sFloetteFormSpeciesIdTable, + [SPECIES_FLOETTE_WHITE_FLOWER] = sFloetteFormSpeciesIdTable, + [SPECIES_FLOETTE_ETERNAL_FLOWER] = sFloetteFormSpeciesIdTable, + // Florges + [SPECIES_FLORGES_YELLOW_FLOWER] = sFlorgesFormSpeciesIdTable, + [SPECIES_FLORGES_ORANGE_FLOWER] = sFlorgesFormSpeciesIdTable, + [SPECIES_FLORGES_BLUE_FLOWER] = sFlorgesFormSpeciesIdTable, + [SPECIES_FLORGES_WHITE_FLOWER] = sFlorgesFormSpeciesIdTable, + //Furfrou + [SPECIES_FURFROU_HEART_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_STAR_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_DIAMOND_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_DEBUTANTE_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_MATRON_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_DANDY_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_LA_REINE_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_KABUKI_TRIM] = sFurfrouFormSpeciesIdTable, + [SPECIES_FURFROU_PHARAOH_TRIM] = sFurfrouFormSpeciesIdTable, + // Meowstic + [SPECIES_MEOWSTIC_FEMALE] = sMeowsticFormSpeciesIdTable, + // Aegislash + [SPECIES_AEGISLASH_BLADE] = sAegislashFormSpeciesIdTable, + // Pumpkaboo + [SPECIES_PUMPKABOO_SMALL] = sPumpkabooFormSpeciesIdTable, + [SPECIES_PUMPKABOO_LARGE] = sPumpkabooFormSpeciesIdTable, + [SPECIES_PUMPKABOO_SUPER] = sPumpkabooFormSpeciesIdTable, + // Gourgeist + [SPECIES_GOURGEIST_SMALL] = sGourgeistFormSpeciesIdTable, + [SPECIES_GOURGEIST_LARGE] = sGourgeistFormSpeciesIdTable, + [SPECIES_GOURGEIST_SUPER] = sGourgeistFormSpeciesIdTable, + // Xerneas + [SPECIES_XERNEAS_ACTIVE] = sXerneasFormSpeciesIdTable, + // Zygarde + [SPECIES_ZYGARDE_10] = sZygardeFormSpeciesIdTable, + [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardeFormSpeciesIdTable, + [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardeFormSpeciesIdTable, + [SPECIES_ZYGARDE_COMPLETE] = sZygardeFormSpeciesIdTable, + // Hoopa + [SPECIES_HOOPA_UNBOUND] = sHoopaFormSpeciesIdTable, + // Oricorio + [SPECIES_ORICORIO_POM_POM] = sOricorioFormSpeciesIdTable, + [SPECIES_ORICORIO_PA_U] = sOricorioFormSpeciesIdTable, + [SPECIES_ORICORIO_SENSU] = sOricorioFormSpeciesIdTable, + // Rockruff + [SPECIES_ROCKRUFF_OWN_TEMPO] = sRockruffFormSpeciesIdTable, + // Lycanroc + [SPECIES_LYCANROC_MIDNIGHT] = sLycanrocFormSpeciesIdTable, + [SPECIES_LYCANROC_DUSK] = sLycanrocFormSpeciesIdTable, + // Wishiwashi + [SPECIES_WISHIWASHI_SCHOOL] = sWishiwashiFormSpeciesIdTable, + // Silvally + [SPECIES_SILVALLY_FIGHTING] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_FLYING] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_POISON] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_GROUND] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_ROCK] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_BUG] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_GHOST] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_STEEL] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_FIRE] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_WATER] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_GRASS] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_ELECTRIC] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_PSYCHIC] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_ICE] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_DRAGON] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_DARK] = sSilvallyFormSpeciesIdTable, + [SPECIES_SILVALLY_FAIRY] = sSilvallyFormSpeciesIdTable, + // Minior + [SPECIES_MINIOR_METEOR_ORANGE] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_METEOR_YELLOW] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_METEOR_GREEN] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_METEOR_BLUE] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_METEOR_INDIGO] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_METEOR_VIOLET] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_RED] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_ORANGE] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_YELLOW] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_GREEN] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_BLUE] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_INDIGO] = sMiniorFormSpeciesIdTable, + [SPECIES_MINIOR_CORE_VIOLET] = sMiniorFormSpeciesIdTable, + // Mimikyu + [SPECIES_MIMIKYU_BUSTED] = sMimikyuFormSpeciesIdTable, + // Necrozma + [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaFormSpeciesIdTable, + [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaFormSpeciesIdTable, + [SPECIES_NECROZMA_ULTRA] = sNecrozmaFormSpeciesIdTable, + // Magearna + [SPECIES_MAGEARNA_ORIGINAL_COLOR] = sMagearnaFormSpeciesIdTable, + // Cramorant + [SPECIES_CRAMORANT_GULPING] = sCramorantFormSpeciesIdTable, + [SPECIES_CRAMORANT_GORGING] = sCramorantFormSpeciesIdTable, + // Toxtricity + [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityFormSpeciesIdTable, + // Sinistea + [SPECIES_SINISTEA_ANTIQUE] = sSinisteaFormSpeciesIdTable, + // Polteageist + [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistFormSpeciesIdTable, + // Alcremie + [SPECIES_ALCREMIE_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_MINT_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, + [SPECIES_ALCREMIE_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, + // Eiscue + [SPECIES_EISCUE_NOICE_FACE] = sEiscueFormSpeciesIdTable, + // Indeedee + [SPECIES_INDEEDEE_FEMALE] = sIndeedeeFormSpeciesIdTable, + // Morpeko + [SPECIES_MORPEKO_HANGRY] = sMorpekoFormSpeciesIdTable, + // Zacian + [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianFormSpeciesIdTable, + // Zamazenta + [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaFormSpeciesIdTable, + // Eternatus + [SPECIES_ETERNATUS_ETERNAMAX] = sEternatusFormSpeciesIdTable, + // Urshifu + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuFormSpeciesIdTable, + // Zarude + [SPECIES_ZARUDE_DADA] = sZarudeFormSpeciesIdTable, + // Calyrex + [SPECIES_CALYREX_ICE_RIDER] = sCalyrexFormSpeciesIdTable, + [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexFormSpeciesIdTable, }; diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index 632bdd9be..f702530eb 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -2,385 +2,1023 @@ static const u16 sVenusaurFormSpeciesIdTable[] = { SPECIES_VENUSAUR, + SPECIES_VENUSAUR_MEGA, FORM_SPECIES_END, }; static const u16 sCharizardFormSpeciesIdTable[] = { SPECIES_CHARIZARD, + SPECIES_CHARIZARD_MEGA_X, + SPECIES_CHARIZARD_MEGA_Y, FORM_SPECIES_END, }; static const u16 sBlastoiseFormSpeciesIdTable[] = { SPECIES_BLASTOISE, + SPECIES_BLASTOISE_MEGA, FORM_SPECIES_END, }; static const u16 sBeedrillFormSpeciesIdTable[] = { SPECIES_BEEDRILL, + SPECIES_BEEDRILL_MEGA, FORM_SPECIES_END, }; static const u16 sPidgeotFormSpeciesIdTable[] = { SPECIES_PIDGEOT, + SPECIES_PIDGEOT_MEGA, FORM_SPECIES_END, }; static const u16 sRattataFormSpeciesIdTable[] = { SPECIES_RATTATA, + SPECIES_RATTATA_ALOLAN, FORM_SPECIES_END, }; static const u16 sRaticateFormSpeciesIdTable[] = { SPECIES_RATICATE, + SPECIES_RATICATE_ALOLAN, FORM_SPECIES_END, }; static const u16 sPikachuFormSpeciesIdTable[] = { SPECIES_PIKACHU, + SPECIES_PIKACHU_COSPLAY, + SPECIES_PIKACHU_ROCK_STAR, + SPECIES_PIKACHU_BELLE, + SPECIES_PIKACHU_POP_STAR, + SPECIES_PIKACHU_PH_D, + SPECIES_PIKACHU_LIBRE, + SPECIES_PIKACHU_ORIGINAL_CAP, + SPECIES_PIKACHU_HOENN_CAP, + SPECIES_PIKACHU_SINNOH_CAP, + SPECIES_PIKACHU_UNOVA_CAP, + SPECIES_PIKACHU_KALOS_CAP, + SPECIES_PIKACHU_ALOLA_CAP, + SPECIES_PIKACHU_PARTNER_CAP, + SPECIES_PIKACHU_WORLD_CAP, FORM_SPECIES_END, }; static const u16 sRaichuFormSpeciesIdTable[] = { SPECIES_RAICHU, + SPECIES_RAICHU_ALOLAN, FORM_SPECIES_END, }; static const u16 sSandshrewFormSpeciesIdTable[] = { SPECIES_SANDSHREW, + SPECIES_SANDSHREW_ALOLAN, FORM_SPECIES_END, }; static const u16 sSandslashFormSpeciesIdTable[] = { SPECIES_SANDSLASH, + SPECIES_SANDSLASH_ALOLAN, FORM_SPECIES_END, }; static const u16 sVulpixFormSpeciesIdTable[] = { SPECIES_VULPIX, + SPECIES_VULPIX_ALOLAN, FORM_SPECIES_END, }; static const u16 sNinetalesFormSpeciesIdTable[] = { SPECIES_NINETALES, + SPECIES_NINETALES_ALOLAN, FORM_SPECIES_END, }; static const u16 sDiglettFormSpeciesIdTable[] = { SPECIES_DIGLETT, + SPECIES_DIGLETT_ALOLAN, FORM_SPECIES_END, }; static const u16 sDugtrioFormSpeciesIdTable[] = { SPECIES_DUGTRIO, + SPECIES_DUGTRIO_ALOLAN, FORM_SPECIES_END, }; static const u16 sMeowthFormSpeciesIdTable[] = { SPECIES_MEOWTH, + SPECIES_MEOWTH_ALOLAN, + SPECIES_MEOWTH_GALARIAN, FORM_SPECIES_END, }; static const u16 sPersianFormSpeciesIdTable[] = { SPECIES_PERSIAN, + SPECIES_PERSIAN_ALOLAN, FORM_SPECIES_END, }; static const u16 sAlakazamFormSpeciesIdTable[] = { SPECIES_ALAKAZAM, + SPECIES_ALAKAZAM_MEGA, FORM_SPECIES_END, }; static const u16 sGeodudeFormSpeciesIdTable[] = { SPECIES_GEODUDE, + SPECIES_GEODUDE_ALOLAN, FORM_SPECIES_END, }; static const u16 sGravelerFormSpeciesIdTable[] = { SPECIES_GRAVELER, + SPECIES_GRAVELER_ALOLAN, FORM_SPECIES_END, }; static const u16 sGolemFormSpeciesIdTable[] = { SPECIES_GOLEM, + SPECIES_GOLEM_ALOLAN, FORM_SPECIES_END, }; static const u16 sPonytaFormSpeciesIdTable[] = { SPECIES_PONYTA, + SPECIES_PONYTA_GALARIAN, FORM_SPECIES_END, }; static const u16 sRapidashFormSpeciesIdTable[] = { SPECIES_RAPIDASH, + SPECIES_RAPIDASH_GALARIAN, FORM_SPECIES_END, }; static const u16 sSlowpokeFormSpeciesIdTable[] = { SPECIES_SLOWPOKE, + SPECIES_SLOWPOKE_GALARIAN, FORM_SPECIES_END, }; static const u16 sSlowbroFormSpeciesIdTable[] = { SPECIES_SLOWBRO, + SPECIES_SLOWBRO_MEGA, + SPECIES_SLOWBRO_GALARIAN, FORM_SPECIES_END, }; static const u16 sFarfetchdFormSpeciesIdTable[] = { SPECIES_FARFETCHD, + SPECIES_FARFETCHD_GALARIAN, FORM_SPECIES_END, }; static const u16 sGrimerFormSpeciesIdTable[] = { SPECIES_GRIMER, + SPECIES_GRIMER_ALOLAN, FORM_SPECIES_END, }; static const u16 sMukFormSpeciesIdTable[] = { SPECIES_MUK, + SPECIES_MUK_ALOLAN, FORM_SPECIES_END, }; static const u16 sGengarFormSpeciesIdTable[] = { SPECIES_GENGAR, + SPECIES_GENGAR_MEGA, FORM_SPECIES_END, }; static const u16 sExeggutorFormSpeciesIdTable[] = { SPECIES_EXEGGUTOR, + SPECIES_EXEGGUTOR_ALOLAN, FORM_SPECIES_END, }; static const u16 sMarowakFormSpeciesIdTable[] = { SPECIES_MAROWAK, + SPECIES_MAROWAK_ALOLAN, FORM_SPECIES_END, }; static const u16 sWeezingFormSpeciesIdTable[] = { SPECIES_WEEZING, + SPECIES_WEEZING_GALARIAN, FORM_SPECIES_END, }; static const u16 sKangaskhanFormSpeciesIdTable[] = { SPECIES_KANGASKHAN, + SPECIES_KANGASKHAN_MEGA, FORM_SPECIES_END, }; static const u16 sMrMimeFormSpeciesIdTable[] = { SPECIES_MR_MIME, + SPECIES_MR_MIME_GALARIAN, FORM_SPECIES_END, }; static const u16 sPinsirFormSpeciesIdTable[] = { SPECIES_PINSIR, + SPECIES_PINSIR_MEGA, FORM_SPECIES_END, }; static const u16 sGyaradosFormSpeciesIdTable[] = { SPECIES_GYARADOS, + SPECIES_GYARADOS_MEGA, FORM_SPECIES_END, }; static const u16 sAerodactylFormSpeciesIdTable[] = { SPECIES_AERODACTYL, + SPECIES_AERODACTYL_MEGA, FORM_SPECIES_END, }; static const u16 sArticunoFormSpeciesIdTable[] = { SPECIES_ARTICUNO, + SPECIES_ARTICUNO_GALARIAN, FORM_SPECIES_END, }; static const u16 sZapdosFormSpeciesIdTable[] = { SPECIES_ZAPDOS, + SPECIES_ZAPDOS_GALARIAN, FORM_SPECIES_END, }; static const u16 sMoltresFormSpeciesIdTable[] = { SPECIES_MOLTRES, + SPECIES_MOLTRES_GALARIAN, FORM_SPECIES_END, }; static const u16 sMewtwoFormSpeciesIdTable[] = { SPECIES_MEWTWO, + SPECIES_MEWTWO_MEGA_X, + SPECIES_MEWTWO_MEGA_Y, FORM_SPECIES_END, }; static const u16 sPichuFormSpeciesIdTable[] = { SPECIES_PICHU, + SPECIES_PICHU_SPIKY_EARED, FORM_SPECIES_END, }; static const u16 sAmpharosFormSpeciesIdTable[] = { SPECIES_AMPHAROS, + SPECIES_AMPHAROS_MEGA, FORM_SPECIES_END, }; static const u16 sSlowkingFormSpeciesIdTable[] = { SPECIES_SLOWKING, + SPECIES_SLOWKING_GALARIAN, FORM_SPECIES_END, }; static const u16 sUnownFormSpeciesIdTable[] = { SPECIES_UNOWN, + SPECIES_UNOWN_B, + SPECIES_UNOWN_C, + SPECIES_UNOWN_D, + SPECIES_UNOWN_E, + SPECIES_UNOWN_F, + SPECIES_UNOWN_G, + SPECIES_UNOWN_H, + SPECIES_UNOWN_I, + SPECIES_UNOWN_J, + SPECIES_UNOWN_K, + SPECIES_UNOWN_L, + SPECIES_UNOWN_M, + SPECIES_UNOWN_N, + SPECIES_UNOWN_O, + SPECIES_UNOWN_P, + SPECIES_UNOWN_Q, + SPECIES_UNOWN_R, + SPECIES_UNOWN_S, + SPECIES_UNOWN_T, + SPECIES_UNOWN_U, + SPECIES_UNOWN_V, + SPECIES_UNOWN_W, + SPECIES_UNOWN_X, + SPECIES_UNOWN_Y, + SPECIES_UNOWN_Z, + SPECIES_UNOWN_EMARK, + SPECIES_UNOWN_QMARK, FORM_SPECIES_END, }; static const u16 sSteelixFormSpeciesIdTable[] = { SPECIES_STEELIX, + SPECIES_STEELIX_MEGA, FORM_SPECIES_END, }; static const u16 sScizorFormSpeciesIdTable[] = { SPECIES_SCIZOR, + SPECIES_SCIZOR_MEGA, FORM_SPECIES_END, }; static const u16 sHeracrossFormSpeciesIdTable[] = { SPECIES_HERACROSS, + SPECIES_HERACROSS_MEGA, FORM_SPECIES_END, }; static const u16 sCorsolaFormSpeciesIdTable[] = { SPECIES_CORSOLA, + SPECIES_CORSOLA_GALARIAN, FORM_SPECIES_END, }; static const u16 sHoundoomFormSpeciesIdTable[] = { SPECIES_HOUNDOOM, + SPECIES_HOUNDOOM_MEGA, FORM_SPECIES_END, }; static const u16 sTyranitarFormSpeciesIdTable[] = { SPECIES_TYRANITAR, + SPECIES_TYRANITAR_MEGA, FORM_SPECIES_END, }; static const u16 sSceptileFormSpeciesIdTable[] = { SPECIES_SCEPTILE, + SPECIES_SCEPTILE_MEGA, FORM_SPECIES_END, }; static const u16 sBlazikenFormSpeciesIdTable[] = { SPECIES_BLAZIKEN, + SPECIES_BLAZIKEN_MEGA, FORM_SPECIES_END, }; static const u16 sSwampertFormSpeciesIdTable[] = { SPECIES_SWAMPERT, + SPECIES_SWAMPERT_MEGA, FORM_SPECIES_END, }; static const u16 sZigzagoonFormSpeciesIdTable[] = { SPECIES_ZIGZAGOON, + SPECIES_ZIGZAGOON_GALARIAN, FORM_SPECIES_END, }; static const u16 sLinooneFormSpeciesIdTable[] = { SPECIES_LINOONE, + SPECIES_LINOONE_GALARIAN, FORM_SPECIES_END, }; static const u16 sGardevoirFormSpeciesIdTable[] = { SPECIES_GARDEVOIR, + SPECIES_GARDEVOIR_MEGA, FORM_SPECIES_END, }; static const u16 sSableyeFormSpeciesIdTable[] = { SPECIES_SABLEYE, + SPECIES_SABLEYE_MEGA, FORM_SPECIES_END, }; static const u16 sMawileFormSpeciesIdTable[] = { SPECIES_MAWILE, + SPECIES_MAWILE_MEGA, FORM_SPECIES_END, }; static const u16 sAggronFormSpeciesIdTable[] = { SPECIES_AGGRON, + SPECIES_AGGRON_MEGA, FORM_SPECIES_END, }; static const u16 sMedichamFormSpeciesIdTable[] = { SPECIES_MEDICHAM, + SPECIES_MEDICHAM_MEGA, FORM_SPECIES_END, }; static const u16 sManectricFormSpeciesIdTable[] = { SPECIES_MANECTRIC, + SPECIES_MANECTRIC_MEGA, FORM_SPECIES_END, }; static const u16 sSharpedoFormSpeciesIdTable[] = { SPECIES_SHARPEDO, + SPECIES_SHARPEDO_MEGA, FORM_SPECIES_END, }; static const u16 sCameruptFormSpeciesIdTable[] = { SPECIES_CAMERUPT, + SPECIES_CAMERUPT_MEGA, FORM_SPECIES_END, }; static const u16 sAltariaFormSpeciesIdTable[] = { SPECIES_ALTARIA, + SPECIES_ALTARIA_MEGA, FORM_SPECIES_END, }; static const u16 sCastformFormSpeciesIdTable[] = { SPECIES_CASTFORM, + SPECIES_CASTFORM_SUNNY, + SPECIES_CASTFORM_RAINY, + SPECIES_CASTFORM_SNOWY, FORM_SPECIES_END, }; static const u16 sBanetteFormSpeciesIdTable[] = { SPECIES_BANETTE, + SPECIES_BANETTE_MEGA, FORM_SPECIES_END, }; static const u16 sAbsolFormSpeciesIdTable[] = { SPECIES_ABSOL, + SPECIES_ABSOL_MEGA, FORM_SPECIES_END, }; static const u16 sGlalieFormSpeciesIdTable[] = { SPECIES_GLALIE, + SPECIES_GLALIE_MEGA, FORM_SPECIES_END, }; static const u16 sSalamenceFormSpeciesIdTable[] = { SPECIES_SALAMENCE, + SPECIES_SALAMENCE_MEGA, FORM_SPECIES_END, }; static const u16 sMetagrossFormSpeciesIdTable[] = { SPECIES_METAGROSS, + SPECIES_METAGROSS_MEGA, FORM_SPECIES_END, }; static const u16 sLatiasFormSpeciesIdTable[] = { SPECIES_LATIAS, + SPECIES_LATIAS_MEGA, FORM_SPECIES_END, }; static const u16 sLatiosFormSpeciesIdTable[] = { SPECIES_LATIOS, + SPECIES_LATIOS_MEGA, FORM_SPECIES_END, }; static const u16 sKyogreFormSpeciesIdTable[] = { SPECIES_KYOGRE, + SPECIES_KYOGRE_PRIMAL, FORM_SPECIES_END, }; static const u16 sGroudonFormSpeciesIdTable[] = { SPECIES_GROUDON, + SPECIES_GROUDON_PRIMAL, FORM_SPECIES_END, }; static const u16 sRayquazaFormSpeciesIdTable[] = { SPECIES_RAYQUAZA, + SPECIES_RAYQUAZA_MEGA, FORM_SPECIES_END, }; static const u16 sDeoxysFormSpeciesIdTable[] = { SPECIES_DEOXYS, + SPECIES_DEOXYS_ATTACK, + SPECIES_DEOXYS_DEFENSE, + SPECIES_DEOXYS_SPEED, + FORM_SPECIES_END, +}; + +static const u16 sBurmyFormSpeciesIdTable[] = { + SPECIES_BURMY, + SPECIES_BURMY_SANDY_CLOAK, + SPECIES_BURMY_TRASH_CLOAK, + FORM_SPECIES_END, +}; + +static const u16 sWormadamFormSpeciesIdTable[] = { + SPECIES_WORMADAM, + SPECIES_WORMADAM_SANDY_CLOAK, + SPECIES_WORMADAM_TRASH_CLOAK, + FORM_SPECIES_END, +}; + +static const u16 sCherrimFormSpeciesIdTable[] = { + SPECIES_CHERRIM, + SPECIES_CHERRIM_SUNSHINE, + FORM_SPECIES_END, +}; + +static const u16 sShellosFormSpeciesIdTable[] = { + SPECIES_SHELLOS, + SPECIES_SHELLOS_EAST_SEA, + FORM_SPECIES_END, +}; + +static const u16 sGastrodonFormSpeciesIdTable[] = { + SPECIES_GASTRODON, + SPECIES_GASTRODON_EAST_SEA, + FORM_SPECIES_END, +}; + +static const u16 sLopunnyFormSpeciesIdTable[] = { + SPECIES_LOPUNNY, + SPECIES_LOPUNNY_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sGarchompFormSpeciesIdTable[] = { + SPECIES_GARCHOMP, + SPECIES_GARCHOMP_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sLucarioFormSpeciesIdTable[] = { + SPECIES_LUCARIO, + SPECIES_LUCARIO_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sAbomasnowFormSpeciesIdTable[] = { + SPECIES_ABOMASNOW, + SPECIES_ABOMASNOW_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sGalladeFormSpeciesIdTable[] = { + SPECIES_GALLADE, + SPECIES_GALLADE_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sRotomFormSpeciesIdTable[] = { + SPECIES_ROTOM, + SPECIES_ROTOM_HEAT, + SPECIES_ROTOM_WASH, + SPECIES_ROTOM_FROST, + SPECIES_ROTOM_FAN, + SPECIES_ROTOM_MOW, + FORM_SPECIES_END, +}; + +static const u16 sGiratinaFormSpeciesIdTable[] = { + SPECIES_GIRATINA, + SPECIES_GIRATINA_ORIGIN, + FORM_SPECIES_END, +}; + +static const u16 sShayminFormSpeciesIdTable[] = { + SPECIES_SHAYMIN, + SPECIES_SHAYMIN_SKY, + FORM_SPECIES_END, +}; + +static const u16 sArceusFormSpeciesIdTable[] = { + SPECIES_ARCEUS, + SPECIES_ARCEUS_FIGHTING, + SPECIES_ARCEUS_FLYING, + SPECIES_ARCEUS_POISON, + SPECIES_ARCEUS_GROUND, + SPECIES_ARCEUS_ROCK, + SPECIES_ARCEUS_BUG, + SPECIES_ARCEUS_GHOST, + SPECIES_ARCEUS_STEEL, + SPECIES_ARCEUS_FIRE, + SPECIES_ARCEUS_WATER, + SPECIES_ARCEUS_GRASS, + SPECIES_ARCEUS_ELECTRIC, + SPECIES_ARCEUS_PSYCHIC, + SPECIES_ARCEUS_ICE, + SPECIES_ARCEUS_DRAGON, + SPECIES_ARCEUS_DARK, + SPECIES_ARCEUS_FAIRY, + FORM_SPECIES_END, +}; + +static const u16 sAudinoFormSpeciesIdTable[] = { + SPECIES_AUDINO, + SPECIES_AUDINO_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sBasculinFormSpeciesIdTable[] = { + SPECIES_BASCULIN, + SPECIES_BASCULIN_BLUE_STRIPED, + FORM_SPECIES_END, +}; + +static const u16 sDarumakaFormSpeciesIdTable[] = { + SPECIES_DARUMAKA, + SPECIES_DARUMAKA_GALARIAN, + FORM_SPECIES_END, +}; + +static const u16 sDarmanitanFormSpeciesIdTable[] = { + SPECIES_DARMANITAN, + SPECIES_DARMANITAN_ZEN_MODE, + SPECIES_DARMANITAN_GALARIAN, + SPECIES_DARMANITAN_ZEN_MODE_GALARIAN, + FORM_SPECIES_END, +}; + +static const u16 sYamaskFormSpeciesIdTable[] = { + SPECIES_YAMASK, + SPECIES_YAMASK_GALARIAN, + FORM_SPECIES_END, +}; + +static const u16 sDeerlingFormSpeciesIdTable[] = { + SPECIES_DEERLING, + SPECIES_DEERLING_SUMMER, + SPECIES_DEERLING_AUTUMN, + SPECIES_DEERLING_WINTER, + FORM_SPECIES_END, +}; + +static const u16 sSawsbuckFormSpeciesIdTable[] = { + SPECIES_SAWSBUCK, + SPECIES_SAWSBUCK_SUMMER, + SPECIES_SAWSBUCK_AUTUMN, + SPECIES_SAWSBUCK_WINTER, + FORM_SPECIES_END, +}; + +static const u16 sStunfiskFormSpeciesIdTable[] = { + SPECIES_STUNFISK, + SPECIES_STUNFISK_GALARIAN, + FORM_SPECIES_END, +}; + +static const u16 sTornadusFormSpeciesIdTable[] = { + SPECIES_TORNADUS, + SPECIES_TORNADUS_THERIAN, + FORM_SPECIES_END, +}; + +static const u16 sThundurusFormSpeciesIdTable[] = { + SPECIES_THUNDURUS, + SPECIES_THUNDURUS_THERIAN, + FORM_SPECIES_END, +}; + +static const u16 sLandorusFormSpeciesIdTable[] = { + SPECIES_LANDORUS, + SPECIES_LANDORUS_THERIAN, + FORM_SPECIES_END, +}; + +static const u16 sKyuremFormSpeciesIdTable[] = { + SPECIES_KYUREM, + SPECIES_KYUREM_WHITE, + SPECIES_KYUREM_BLACK, + FORM_SPECIES_END, +}; + +static const u16 sKeldeoFormSpeciesIdTable[] = { + SPECIES_KELDEO, + SPECIES_KELDEO_RESOLUTE, + FORM_SPECIES_END, +}; + +static const u16 sMeloettaFormSpeciesIdTable[] = { + SPECIES_MELOETTA, + SPECIES_MELOETTA_PIROUETTE, + FORM_SPECIES_END, +}; + +static const u16 sGenesectFormSpeciesIdTable[] = { + SPECIES_GENESECT, + SPECIES_GENESECT_DOUSE_DRIVE, + SPECIES_GENESECT_SHOCK_DRIVE, + SPECIES_GENESECT_BURN_DRIVE, + SPECIES_GENESECT_CHILL_DRIVE, + FORM_SPECIES_END, +}; + +static const u16 sGreninjaFormSpeciesIdTable[] = { + SPECIES_GRENINJA, + SPECIES_GRENINJA_BATTLE_BOND, + SPECIES_GRENINJA_ASH, + FORM_SPECIES_END, +}; + +static const u16 sVivillonFormSpeciesIdTable[] = { + SPECIES_VIVILLON, + SPECIES_VIVILLON_POLAR, + SPECIES_VIVILLON_TUNDRA, + SPECIES_VIVILLON_CONTINENTAL, + SPECIES_VIVILLON_GARDEN, + SPECIES_VIVILLON_ELEGANT, + SPECIES_VIVILLON_MEADOW, + SPECIES_VIVILLON_MODERN, + SPECIES_VIVILLON_MARINE, + SPECIES_VIVILLON_ARCHIPELAGO, + SPECIES_VIVILLON_HIGH_PLAINS, + SPECIES_VIVILLON_SANDSTORM, + SPECIES_VIVILLON_RIVER, + SPECIES_VIVILLON_MONSOON, + SPECIES_VIVILLON_SAVANNA, + SPECIES_VIVILLON_SUN, + SPECIES_VIVILLON_OCEAN, + SPECIES_VIVILLON_JUNGLE, + SPECIES_VIVILLON_FANCY, + SPECIES_VIVILLON_POKE_BALL, + FORM_SPECIES_END, +}; + +static const u16 sFlabebeFormSpeciesIdTable[] = { + SPECIES_FLABEBE, + SPECIES_FLABEBE_YELLOW_FLOWER, + SPECIES_FLABEBE_ORANGE_FLOWER, + SPECIES_FLABEBE_BLUE_FLOWER, + SPECIES_FLABEBE_WHITE_FLOWER, + FORM_SPECIES_END, +}; + +static const u16 sFloetteFormSpeciesIdTable[] = { + SPECIES_FLOETTE, + SPECIES_FLOETTE_YELLOW_FLOWER, + SPECIES_FLOETTE_ORANGE_FLOWER, + SPECIES_FLOETTE_BLUE_FLOWER, + SPECIES_FLOETTE_WHITE_FLOWER, + SPECIES_FLOETTE_ETERNAL_FLOWER, + FORM_SPECIES_END, +}; + +static const u16 sFlorgesFormSpeciesIdTable[] = { + SPECIES_FLORGES, + SPECIES_FLORGES_YELLOW_FLOWER, + SPECIES_FLORGES_ORANGE_FLOWER, + SPECIES_FLORGES_BLUE_FLOWER, + SPECIES_FLORGES_WHITE_FLOWER, + FORM_SPECIES_END, +}; + +static const u16 sFurfrouFormSpeciesIdTable[] = { + SPECIES_FURFROU, + SPECIES_FURFROU_HEART_TRIM, + SPECIES_FURFROU_STAR_TRIM, + SPECIES_FURFROU_DIAMOND_TRIM, + SPECIES_FURFROU_DEBUTANTE_TRIM, + SPECIES_FURFROU_MATRON_TRIM, + SPECIES_FURFROU_DANDY_TRIM, + SPECIES_FURFROU_LA_REINE_TRIM, + SPECIES_FURFROU_KABUKI_TRIM, + SPECIES_FURFROU_PHARAOH_TRIM, + FORM_SPECIES_END, +}; + +static const u16 sMeowsticFormSpeciesIdTable[] = { + SPECIES_MEOWSTIC, + SPECIES_MEOWSTIC_FEMALE, + FORM_SPECIES_END, +}; + +static const u16 sAegislashFormSpeciesIdTable[] = { + SPECIES_AEGISLASH, + SPECIES_AEGISLASH_BLADE, + FORM_SPECIES_END, +}; + +static const u16 sPumpkabooFormSpeciesIdTable[] = { + SPECIES_PUMPKABOO, + SPECIES_PUMPKABOO_SMALL, + SPECIES_PUMPKABOO_LARGE, + SPECIES_PUMPKABOO_SUPER, + FORM_SPECIES_END, +}; + +static const u16 sGourgeistFormSpeciesIdTable[] = { + SPECIES_GOURGEIST, + SPECIES_GOURGEIST_SMALL, + SPECIES_GOURGEIST_LARGE, + SPECIES_GOURGEIST_SUPER, + FORM_SPECIES_END, +}; + +static const u16 sXerneasFormSpeciesIdTable[] = { + SPECIES_XERNEAS, + SPECIES_XERNEAS_ACTIVE, + FORM_SPECIES_END, +}; + +static const u16 sZygardeFormSpeciesIdTable[] = { + SPECIES_ZYGARDE, + SPECIES_ZYGARDE_10, + SPECIES_ZYGARDE_10_POWER_CONSTRUCT, + SPECIES_ZYGARDE_50_POWER_CONSTRUCT, + SPECIES_ZYGARDE_COMPLETE, + FORM_SPECIES_END, +}; + +static const u16 sDiancieFormSpeciesIdTable[] = { + SPECIES_DIANCIE, + SPECIES_DIANCIE_MEGA, + FORM_SPECIES_END, +}; + +static const u16 sHoopaFormSpeciesIdTable[] = { + SPECIES_HOOPA, + SPECIES_HOOPA_UNBOUND, + FORM_SPECIES_END, +}; + +static const u16 sOricorioFormSpeciesIdTable[] = { + SPECIES_ORICORIO, + SPECIES_ORICORIO_POM_POM, + SPECIES_ORICORIO_PA_U, + SPECIES_ORICORIO_SENSU, + FORM_SPECIES_END, +}; + +static const u16 sRockruffFormSpeciesIdTable[] = { + SPECIES_ROCKRUFF, + SPECIES_ROCKRUFF_OWN_TEMPO, + FORM_SPECIES_END, +}; + +static const u16 sLycanrocFormSpeciesIdTable[] = { + SPECIES_LYCANROC, + SPECIES_LYCANROC_MIDNIGHT, + SPECIES_LYCANROC_DUSK, + FORM_SPECIES_END, +}; + +static const u16 sWishiwashiFormSpeciesIdTable[] = { + SPECIES_WISHIWASHI, + SPECIES_WISHIWASHI_SCHOOL, + FORM_SPECIES_END, +}; + +static const u16 sSilvallyFormSpeciesIdTable[] = { + SPECIES_SILVALLY, + SPECIES_SILVALLY_FIGHTING, + SPECIES_SILVALLY_FLYING, + SPECIES_SILVALLY_POISON, + SPECIES_SILVALLY_GROUND, + SPECIES_SILVALLY_ROCK, + SPECIES_SILVALLY_BUG, + SPECIES_SILVALLY_GHOST, + SPECIES_SILVALLY_STEEL, + SPECIES_SILVALLY_FIRE, + SPECIES_SILVALLY_WATER, + SPECIES_SILVALLY_GRASS, + SPECIES_SILVALLY_ELECTRIC, + SPECIES_SILVALLY_PSYCHIC, + SPECIES_SILVALLY_ICE, + SPECIES_SILVALLY_DRAGON, + SPECIES_SILVALLY_DARK, + SPECIES_SILVALLY_FAIRY, + FORM_SPECIES_END, +}; + +static const u16 sMiniorFormSpeciesIdTable[] = { + SPECIES_MINIOR, + SPECIES_MINIOR_METEOR_ORANGE, + SPECIES_MINIOR_METEOR_YELLOW, + SPECIES_MINIOR_METEOR_GREEN, + SPECIES_MINIOR_METEOR_BLUE, + SPECIES_MINIOR_METEOR_INDIGO, + SPECIES_MINIOR_METEOR_VIOLET, + SPECIES_MINIOR_CORE_RED, + SPECIES_MINIOR_CORE_ORANGE, + SPECIES_MINIOR_CORE_YELLOW, + SPECIES_MINIOR_CORE_GREEN, + SPECIES_MINIOR_CORE_BLUE, + SPECIES_MINIOR_CORE_INDIGO, + SPECIES_MINIOR_CORE_VIOLET, + FORM_SPECIES_END, +}; + +static const u16 sMimikyuFormSpeciesIdTable[] = { + SPECIES_MIMIKYU, + SPECIES_MIMIKYU_BUSTED, + FORM_SPECIES_END, +}; + +static const u16 sNecrozmaFormSpeciesIdTable[] = { + SPECIES_NECROZMA, + SPECIES_NECROZMA_DUSK_MANE, + SPECIES_NECROZMA_DAWN_WINGS, + SPECIES_NECROZMA_ULTRA, + FORM_SPECIES_END, +}; + +static const u16 sMagearnaFormSpeciesIdTable[] = { + SPECIES_MAGEARNA, + SPECIES_MAGEARNA_ORIGINAL_COLOR, + FORM_SPECIES_END, +}; + +static const u16 sCramorantFormSpeciesIdTable[] = { + SPECIES_CRAMORANT, + SPECIES_CRAMORANT_GULPING, + SPECIES_CRAMORANT_GORGING, + FORM_SPECIES_END, +}; + +static const u16 sToxtricityFormSpeciesIdTable[] = { + SPECIES_TOXTRICITY, + SPECIES_TOXTRICITY_LOW_KEY, + FORM_SPECIES_END, +}; + +static const u16 sSinisteaFormSpeciesIdTable[] = { + SPECIES_SINISTEA, + SPECIES_SINISTEA_ANTIQUE, + FORM_SPECIES_END, +}; + +static const u16 sPolteageistFormSpeciesIdTable[] = { + SPECIES_POLTEAGEIST, + SPECIES_POLTEAGEIST_ANTIQUE, + FORM_SPECIES_END, +}; + +static const u16 sAlcremieFormSpeciesIdTable[] = { + SPECIES_ALCREMIE, + SPECIES_ALCREMIE_RUBY_CREAM, + SPECIES_ALCREMIE_MATCHA_CREAM, + SPECIES_ALCREMIE_MINT_CREAM, + SPECIES_ALCREMIE_LEMON_CREAM, + SPECIES_ALCREMIE_SALTED_CREAM, + SPECIES_ALCREMIE_RUBY_SWIRL, + SPECIES_ALCREMIE_CARAMEL_SWIRL, + SPECIES_ALCREMIE_RAINBOW_SWIRL, + FORM_SPECIES_END, +}; + +static const u16 sEiscueFormSpeciesIdTable[] = { + SPECIES_EISCUE, + SPECIES_EISCUE_NOICE_FACE, + FORM_SPECIES_END, +}; + +static const u16 sIndeedeeFormSpeciesIdTable[] = { + SPECIES_INDEEDEE, + SPECIES_INDEEDEE_FEMALE, + FORM_SPECIES_END, +}; + +static const u16 sMorpekoFormSpeciesIdTable[] = { + SPECIES_MORPEKO, + SPECIES_MORPEKO_HANGRY, + FORM_SPECIES_END, +}; + +static const u16 sZacianFormSpeciesIdTable[] = { + SPECIES_ZACIAN, + SPECIES_ZACIAN_CROWNED_SWORD, + FORM_SPECIES_END, +}; + +static const u16 sZamazentaFormSpeciesIdTable[] = { + SPECIES_ZAMAZENTA, + SPECIES_ZAMAZENTA_CROWNED_SHIELD, + FORM_SPECIES_END, +}; + +static const u16 sEternatusFormSpeciesIdTable[] = { + SPECIES_ETERNATUS, + SPECIES_ETERNATUS_ETERNAMAX, + FORM_SPECIES_END, +}; + +static const u16 sUrshifuFormSpeciesIdTable[] = { + SPECIES_URSHIFU, + SPECIES_URSHIFU_RAPID_STRIKE_STYLE, + FORM_SPECIES_END, +}; + +static const u16 sZarudeFormSpeciesIdTable[] = { + SPECIES_ZARUDE, + SPECIES_ZARUDE_DADA, + FORM_SPECIES_END, +}; + +static const u16 sCalyrexFormSpeciesIdTable[] = { + SPECIES_CALYREX, + SPECIES_CALYREX_ICE_RIDER, + SPECIES_CALYREX_SHADOW_RIDER, FORM_SPECIES_END, };