#if P_FAMILY_BULBASAUR
static const struct FormChange sVenusaurFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_VENUSAUR_MEGA, ITEM_VENUSAURITE},
#endif
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX,             SPECIES_VENUSAUR_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BULBASAUR

#if P_FAMILY_CHARMANDER
static const struct FormChange sCharizardFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_CHARIZARD_MEGA_X, ITEM_CHARIZARDITE_X},
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_CHARIZARD_MEGA_Y, ITEM_CHARIZARDITE_Y},
#endif
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX,             SPECIES_CHARIZARD_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CHARMANDER

#if P_FAMILY_SQUIRTLE
static const struct FormChange sBlastoiseFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_BLASTOISE_MEGA, ITEM_BLASTOISINITE},
#endif
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX,             SPECIES_BLASTOISE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SQUIRTLE

#if P_FAMILY_CATERPIE
static const struct FormChange sButterfreeFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BUTTERFREE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CATERPIE

#if P_FAMILY_WEEDLE
static const struct FormChange sBeedrillFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_BEEDRILL_MEGA, ITEM_BEEDRILLITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_WEEDLE

#if P_FAMILY_PIDGEY
static const struct FormChange sPidgeotFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_PIDGEOT_MEGA, ITEM_PIDGEOTITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_PIDGEY

#if P_FAMILY_PIKACHU
static const struct FormChange sPikachuFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_PIKACHU_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_PIKACHU

#if P_FAMILY_MEOWTH
static const struct FormChange sMeowthFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MEOWTH_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MEOWTH

#if P_FAMILY_ABRA
static const struct FormChange sAlakazamFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_ALAKAZAM_MEGA, ITEM_ALAKAZITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ABRA

#if P_FAMILY_MACHOP
static const struct FormChange sMachampFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MACHAMP_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MACHOP

#if P_FAMILY_SLOWPOKE
static const struct FormChange sSlowbroFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SLOWBRO_MEGA, ITEM_SLOWBRONITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SLOWPOKE

#if P_FAMILY_GASTLY
static const struct FormChange sGengarFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GENGAR_MEGA, ITEM_GENGARITE},
#endif
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX,             SPECIES_GENGAR_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GASTLY

#if P_FAMILY_ONIX
#if P_GEN_2_CROSS_EVOS
static const struct FormChange sSteelixFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_STEELIX_MEGA, ITEM_STEELIXITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_ONIX

#if P_FAMILY_KRABBY
static const struct FormChange sKinglerFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_KINGLER_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_KRABBY

#if P_FAMILY_KANGASKHAN
static const struct FormChange sKangaskhanFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_KANGASKHAN_MEGA, ITEM_KANGASKHANITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_KANGASKHAN

#if P_FAMILY_SCYTHER
#if P_GEN_2_CROSS_EVOS
static const struct FormChange sScizorFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SCIZOR_MEGA, ITEM_SCIZORITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_GEN_2_CROSS_EVOS
#endif //P_FAMILY_SCYTHER

#if P_FAMILY_PINSIR
static const struct FormChange sPinsirFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_PINSIR_MEGA, ITEM_PINSIRITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_PINSIR

#if P_FAMILY_MAGIKARP
static const struct FormChange sGyaradosFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GYARADOS_MEGA, ITEM_GYARADOSITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MAGIKARP

#if P_FAMILY_LAPRAS
static const struct FormChange sLaprasFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_LAPRAS

#if P_FAMILY_EEVEE
static const struct FormChange sEeveeFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_EEVEE

#if P_FAMILY_AERODACTYL
static const struct FormChange sAerodactylFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_AERODACTYL_MEGA, ITEM_AERODACTYLITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_AERODACTYL

#if P_FAMILY_SNORLAX
static const struct FormChange sSnorlaxFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SNORLAX

#if P_FAMILY_MEWTWO
static const struct FormChange sMewtwoFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_MEWTWO_MEGA_X, ITEM_MEWTWONITE_X},
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_MEWTWO_MEGA_Y, ITEM_MEWTWONITE_Y},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MEWTWO

#if P_FAMILY_MAREEP
static const struct FormChange sAmpharosFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_AMPHAROS_MEGA, ITEM_AMPHAROSITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MAREEP

#if P_FAMILY_HERACROSS
static const struct FormChange sHeracrossFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_HERACROSS_MEGA, ITEM_HERACRONITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_HERACROSS

#if P_FAMILY_HOUNDOUR
static const struct FormChange sHoundoomFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_HOUNDOOM_MEGA, ITEM_HOUNDOOMINITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_HOUNDOUR

#if P_FAMILY_LARVITAR
static const struct FormChange sTyranitarFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_TYRANITAR_MEGA, ITEM_TYRANITARITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_LARVITAR

#if P_FAMILY_TREECKO
static const struct FormChange sSceptileFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SCEPTILE_MEGA, ITEM_SCEPTILITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TREECKO

#if P_FAMILY_TORCHIC
static const struct FormChange sBlazikenFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_BLAZIKEN_MEGA, ITEM_BLAZIKENITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TORCHIC

#if P_FAMILY_MUDKIP
static const struct FormChange sSwampertFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SWAMPERT_MEGA, ITEM_SWAMPERTITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MUDKIP

#if P_FAMILY_RALTS
static const struct FormChange sGardevoirFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GARDEVOIR_MEGA, ITEM_GARDEVOIRITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};

#if P_GEN_4_CROSS_EVOS
static const struct FormChange sGalladeFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GALLADE_MEGA, ITEM_GALLADITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_GEN_4_CROSS_EVOS
#endif //P_FAMILY_RALTS

#if P_FAMILY_SABLEYE
static const struct FormChange sSableyeFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SABLEYE_MEGA, ITEM_SABLENITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SABLEYE

#if P_FAMILY_MAWILE
static const struct FormChange sMawileFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_MAWILE_MEGA, ITEM_MAWILITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MAWILE

#if P_FAMILY_ARON
static const struct FormChange sAggronFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_AGGRON_MEGA, ITEM_AGGRONITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ARON

#if P_FAMILY_MEDITITE
static const struct FormChange sMedichamFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_MEDICHAM_MEGA, ITEM_MEDICHAMITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MEDITITE

#if P_FAMILY_ELECTRIKE
static const struct FormChange sManectricFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ELECTRIKE

#if P_FAMILY_CARVANHA
static const struct FormChange sSharpedoFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SHARPEDO_MEGA, ITEM_SHARPEDONITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CARVANHA

#if P_FAMILY_NUMEL
static const struct FormChange sCameruptFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_NUMEL

#if P_FAMILY_SWABLU
static const struct FormChange sAltariaFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_ALTARIA_MEGA, ITEM_ALTARIANITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SWABLU

#if P_FAMILY_SHUPPET
static const struct FormChange sBanetteFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_BANETTE_MEGA, ITEM_BANETTITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SHUPPET

#if P_FAMILY_ABSOL
static const struct FormChange sAbsolFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_ABSOL_MEGA, ITEM_ABSOLITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ABSOL

#if P_FAMILY_SNORUNT
static const struct FormChange sGlalieFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GLALIE_MEGA, ITEM_GLALITITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SNORUNT

#if P_FAMILY_CASTFORM
static const struct FormChange sCastformFormChangeTable[] = {
#if B_WEATHER_FORMS >= GEN_5
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_SUNNY, B_WEATHER_SUN, ABILITY_FORECAST},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_RAINY, B_WEATHER_RAIN, ABILITY_FORECAST},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_SNOWY, B_WEATHER_HAIL | B_WEATHER_SNOW, ABILITY_FORECAST},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_NORMAL, ~(B_WEATHER_SUN | B_WEATHER_RAIN | B_WEATHER_HAIL | B_WEATHER_SNOW), ABILITY_FORECAST},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_NORMAL, B_WEATHER_NONE, ABILITY_FORECAST},
#else
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_SUNNY, B_WEATHER_SUN},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_RAINY, B_WEATHER_RAIN},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_SNOWY, B_WEATHER_HAIL | B_WEATHER_SNOW},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_NORMAL, ~(B_WEATHER_SUN | B_WEATHER_RAIN | B_WEATHER_HAIL | B_WEATHER_SNOW)},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CASTFORM_NORMAL, B_WEATHER_NONE},
#endif
    {FORM_CHANGE_BATTLE_SWITCH,                 SPECIES_CASTFORM_NORMAL},
    {FORM_CHANGE_FAINT,                         SPECIES_CASTFORM_NORMAL},
    {FORM_CHANGE_END_BATTLE,                    SPECIES_CASTFORM_NORMAL},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CASTFORM

#if P_FAMILY_BAGON
static const struct FormChange sSalamenceFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_SALAMENCE_MEGA, ITEM_SALAMENCITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BAGON

#if P_FAMILY_BELDUM
static const struct FormChange sMetagrossFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_METAGROSS_MEGA, ITEM_METAGROSSITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BELDUM

#if P_FAMILY_LATIAS
static const struct FormChange sLatiasFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_LATIAS_MEGA, ITEM_LATIASITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_LATIAS

#if P_FAMILY_LATIOS
static const struct FormChange sLatiosFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_LATIOS_MEGA, ITEM_LATIOSITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_LATIOS

#if P_FAMILY_KYOGRE
static const struct FormChange sKyogreFormChangeTable[] = {
#if P_PRIMAL_REVERSIONS
    {FORM_CHANGE_BATTLE_PRIMAL_REVERSION,   SPECIES_KYOGRE_PRIMAL, ITEM_BLUE_ORB},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_KYOGRE

#if P_FAMILY_GROUDON
static const struct FormChange sGroudonFormChangeTable[] = {
#if P_PRIMAL_REVERSIONS
    {FORM_CHANGE_BATTLE_PRIMAL_REVERSION,   SPECIES_GROUDON_PRIMAL, ITEM_RED_ORB},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GROUDON

#if P_FAMILY_RAYQUAZA
static const struct FormChange sRayquazaFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_MOVE,    SPECIES_RAYQUAZA_MEGA, MOVE_DRAGON_ASCENT},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_RAYQUAZA

#if P_FAMILY_DEOXYS
static const struct FormChange sDeoxysNormalFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_ATTACK,  ITEM_METEORITE},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sDeoxysAttackFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_DEFENSE,  ITEM_METEORITE},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sDeoxysDefenseFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_SPEED,  ITEM_METEORITE},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sDeoxysSpeedFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_NORMAL,  ITEM_METEORITE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_DEOXYS

#if P_FAMILY_BURMY
static const struct FormChange sBurmyFormChangeTable[] = {
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_GRASS},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_LONG_GRASS},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_POND},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_MOUNTAIN},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_PLAIN},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY_CLOAK, BATTLE_TERRAIN_CAVE},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY_CLOAK, BATTLE_TERRAIN_SAND},
    {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH_CLOAK, BATTLE_TERRAIN_BUILDING},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BURMY

#if P_FAMILY_CHERUBI
static const struct FormChange sCherrimFormChangeTable[] = {
#if B_WEATHER_FORMS >= GEN_5
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_SUNSHINE, B_WEATHER_SUN, ABILITY_FLOWER_GIFT},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_OVERCAST, ~B_WEATHER_SUN, ABILITY_FLOWER_GIFT},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_OVERCAST, B_WEATHER_NONE, ABILITY_FLOWER_GIFT},
#else
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_SUNSHINE, B_WEATHER_SUN},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_OVERCAST, ~B_WEATHER_SUN},
    {FORM_CHANGE_BATTLE_WEATHER,                SPECIES_CHERRIM_OVERCAST, B_WEATHER_NONE},
#endif
    {FORM_CHANGE_BATTLE_SWITCH,                 SPECIES_CHERRIM_OVERCAST},
    {FORM_CHANGE_FAINT,                         SPECIES_CHERRIM_OVERCAST},
    {FORM_CHANGE_END_BATTLE,                    SPECIES_CHERRIM_OVERCAST},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CHERUBI

#if P_FAMILY_BUNEARY
static const struct FormChange sLopunnyFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_LOPUNNY_MEGA, ITEM_LOPUNNITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BUNEARY

#if P_FAMILY_GIBLE
static const struct FormChange sGarchompFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_GARCHOMP_MEGA, ITEM_GARCHOMPITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GIBLE

#if P_FAMILY_RIOLU
static const struct FormChange sLucarioFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_LUCARIO_MEGA, ITEM_LUCARIONITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_RIOLU

#if P_FAMILY_SNOVER
static const struct FormChange sAbomasnowFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_ABOMASNOW_MEGA, ITEM_ABOMASITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SNOVER

#if P_FAMILY_ROTOM
static const struct FormChange sRotomFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM,       ITEM_ROTOM_CATALOG, 0},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_HEAT,  ITEM_ROTOM_CATALOG, 1},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_WASH,  ITEM_ROTOM_CATALOG, 2},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FROST, ITEM_ROTOM_CATALOG, 3},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FAN,   ITEM_ROTOM_CATALOG, 4},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_MOW,   ITEM_ROTOM_CATALOG, 5},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ROTOM

#if P_FAMILY_DIALGA
static const struct FormChange sDialgaFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA, ITEM_NONE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA_ORIGIN, ITEM_ADAMANT_CRYSTAL},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_DIALGA

#if P_FAMILY_PALKIA
static const struct FormChange sPalkiaFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA, ITEM_NONE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA_ORIGIN, ITEM_LUSTROUS_GLOBE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_PALKIA

#if P_FAMILY_GIRATINA
static const struct FormChange sGiratinaFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ALTERED, ITEM_NONE},
#if I_GRISEOUS_ORB_FORM_CHANGE < GEN_9
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_ORB},
#endif
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_CORE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GIRATINA

#if P_FAMILY_SHAYMIN
static const struct FormChange sShayminFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE,    SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY},
    {FORM_CHANGE_WITHDRAW,    SPECIES_SHAYMIN_LAND},
    {FORM_CHANGE_TIME_OF_DAY, SPECIES_SHAYMIN_LAND, NIGHT},
    {FORM_CHANGE_STATUS,      SPECIES_SHAYMIN_LAND, (STATUS1_FREEZE | STATUS1_FROSTBITE)},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SHAYMIN

#if P_FAMILY_ARCEUS
static const struct FormChange sArceusFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_NORMAL,   ITEM_NONE,         ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIGHTING, ITEM_FIST_PLATE,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIGHTING, ITEM_FIGHTINIUM_Z, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FLYING,   ITEM_SKY_PLATE,    ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FLYING,   ITEM_FLYINIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_POISON,   ITEM_TOXIC_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_POISON,   ITEM_POISONIUM_Z,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ROCK,     ITEM_STONE_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ROCK,     ITEM_ROCKIUM_Z,    ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GROUND,   ITEM_EARTH_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GROUND,   ITEM_GROUNDIUM_Z,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_BUG,      ITEM_INSECT_PLATE, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_BUG,      ITEM_BUGINIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GHOST,    ITEM_SPOOKY_PLATE, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GHOST,    ITEM_GHOSTIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_STEEL,    ITEM_IRON_PLATE,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_STEEL,    ITEM_STEELIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIRE,     ITEM_FLAME_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIRE,     ITEM_FIRIUM_Z,     ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_WATER,    ITEM_SPLASH_PLATE, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_WATER,    ITEM_WATERIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GRASS,    ITEM_MEADOW_PLATE, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GRASS,    ITEM_GRASSIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ELECTRIC, ITEM_ZAP_PLATE,    ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ELECTRIC, ITEM_ELECTRIUM_Z,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_PSYCHIC,  ITEM_MIND_PLATE,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_PSYCHIC,  ITEM_PSYCHIUM_Z,   ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ICE,      ITEM_ICICLE_PLATE, ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ICE,      ITEM_ICIUM_Z,      ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DRAGON,   ITEM_DRACO_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DRAGON,   ITEM_DRAGONIUM_Z,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DARK,     ITEM_DREAD_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DARK,     ITEM_DARKINIUM_Z,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FAIRY,    ITEM_PIXIE_PLATE,  ABILITY_MULTITYPE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FAIRY,    ITEM_FAIRIUM_Z,    ABILITY_MULTITYPE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ARCEUS

#if P_FAMILY_AUDINO
static const struct FormChange sAudinoFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_AUDINO_MEGA, ITEM_AUDINITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_AUDINO

#if P_FAMILY_DARUMAKA
static const struct FormChange sDarmanitanFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_ZEN_MODE,      ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_FAINT,             SPECIES_DARMANITAN_STANDARD_MODE},
    {FORM_CHANGE_END_BATTLE,        SPECIES_DARMANITAN_STANDARD_MODE},
    {FORM_CHANGE_TERMINATOR},
};

#if P_GALARIAN_FORMS
static const struct FormChange sDarmanitanGalarianFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_ZEN_MODE,      ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_FAINT,             SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE},
    {FORM_CHANGE_END_BATTLE,        SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_GALARIAN_FORMS
#endif //P_FAMILY_DARUMAKA

#if P_FAMILY_TRUBBISH
static const struct FormChange sGarbodorFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TRUBBISH

#if P_FAMILY_TORNADUS
static const struct FormChange sTornadusFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_THERIAN,   ITEM_REVEAL_GLASS},
    {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_INCARNATE, ITEM_REVEAL_GLASS},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TORNADUS

#if P_FAMILY_THUNDURUS
static const struct FormChange sThundurusFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_THERIAN,   ITEM_REVEAL_GLASS},
    {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_INCARNATE, ITEM_REVEAL_GLASS},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_THUNDURUS

#if P_FAMILY_LANDORUS
static const struct FormChange sLandorusFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_THERIAN,   ITEM_REVEAL_GLASS},
    {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_INCARNATE, ITEM_REVEAL_GLASS},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_LANDORUS

#if P_FAMILY_KYUREM
static const struct Fusion sKyuremFusionTable[] = {
    {0, ITEM_DNA_SPLICERS,   SPECIES_KYUREM,   SPECIES_RESHIRAM,  SPECIES_KYUREM_WHITE},
    {0, ITEM_DNA_SPLICERS,   SPECIES_KYUREM,   SPECIES_ZEKROM,    SPECIES_KYUREM_BLACK},
    {FUSION_TERMINATOR},
};
#endif //P_FAMILY_KYUREM

#if P_FAMILY_KELDEO
static const struct FormChange sKeldeoFormChangeTable[] = {
    {FORM_CHANGE_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED},
    {FORM_CHANGE_MOVE, SPECIES_KELDEO_ORDINARY, MOVE_SECRET_SWORD, WHEN_FORGOTTEN},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_KELDEO

#if P_FAMILY_MELOETTA
static const struct FormChange sMeloettaFormChangeTable[] = {
    {FORM_CHANGE_FAINT,         SPECIES_MELOETTA_ARIA},
    {FORM_CHANGE_END_BATTLE,    SPECIES_MELOETTA_ARIA},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MELOETTA

#if P_FAMILY_GENESECT
static const struct FormChange sGenesectFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT,             ITEM_NONE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_DOUSE_DRIVE, ITEM_DOUSE_DRIVE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_SHOCK_DRIVE, ITEM_SHOCK_DRIVE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_BURN_DRIVE,  ITEM_BURN_DRIVE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_CHILL_DRIVE, ITEM_CHILL_DRIVE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GENESECT

#if P_FAMILY_FROAKIE
static const struct FormChange sGreninjaBattleBondFormChangeTable[] = {
    {FORM_CHANGE_FAINT,         SPECIES_GRENINJA_BATTLE_BOND},
    {FORM_CHANGE_END_BATTLE,    SPECIES_GRENINJA_BATTLE_BOND},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_FROAKIE

#if P_FAMILY_HONEDGE
static const struct FormChange sAegislashFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_SWITCH, SPECIES_AEGISLASH_SHIELD},
    {FORM_CHANGE_FAINT,         SPECIES_AEGISLASH_SHIELD},
    {FORM_CHANGE_END_BATTLE,    SPECIES_AEGISLASH_SHIELD},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_HONEDGE

#if P_FAMILY_XERNEAS
static const struct FormChange sXerneasFormChangeTable[] = {
    {FORM_CHANGE_BEGIN_BATTLE, SPECIES_XERNEAS_ACTIVE},
    {FORM_CHANGE_END_BATTLE,   SPECIES_XERNEAS_NEUTRAL},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_XERNEAS

#if P_FAMILY_ZYGARDE
static const struct FormChange sZygarde50AuraBreakFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK,      ITEM_ZYGARDE_CUBE, 0},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sZygarde10AuraBreakFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_AURA_BREAK,      ITEM_ZYGARDE_CUBE, 0},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sZygarde50PowerConstructFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_AURA_BREAK,      ITEM_ZYGARDE_CUBE, 1},
    {FORM_CHANGE_BATTLE_HP_PERCENT,    SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sZygarde10PowerConstructFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0},
    {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK,      ITEM_ZYGARDE_CUBE, 1},
    {FORM_CHANGE_BATTLE_HP_PERCENT,    SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sZygardeCompleteFormChangeTable[] = {
    {FORM_CHANGE_FAINT},
    {FORM_CHANGE_END_BATTLE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ZYGARDE

#if P_FAMILY_DIANCIE
static const struct FormChange sDiancieFormChangeTable[] = {
#if P_MEGA_EVOLUTIONS
    {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM,    SPECIES_DIANCIE_MEGA, ITEM_DIANCITE},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_DIANCIE

#if P_FAMILY_HOOPA
static const struct FormChange sHoopaFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_HOOPA_UNBOUND, ITEM_PRISON_BOTTLE, SPECIES_HOOPA_CONFINED},
    {FORM_CHANGE_WITHDRAW, SPECIES_HOOPA_CONFINED},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_HOOPA

#if P_FAMILY_ORICORIO
static const struct FormChange sOricorioFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_BAILE,   ITEM_RED_NECTAR},
    {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_POM_POM, ITEM_YELLOW_NECTAR},
    {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_PAU,     ITEM_PINK_NECTAR},
    {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_SENSU,   ITEM_PURPLE_NECTAR},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ORICORIO

#if P_FAMILY_WISHIWASHI
static const struct FormChange sWishiwashiFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SCHOOL, ABILITY_SCHOOLING, HP_HIGHER_THAN,   25},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SOLO,   ABILITY_SCHOOLING, HP_LOWER_EQ_THAN, 25},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_WISHIWASHI_SOLO},
    {FORM_CHANGE_FAINT,             SPECIES_WISHIWASHI_SOLO},
    {FORM_CHANGE_END_BATTLE,        SPECIES_WISHIWASHI_SOLO},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_WISHIWASHI

#if P_FAMILY_TYPE_NULL
static const struct FormChange sSilvallyFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_NORMAL,   ITEM_NONE,            ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FIGHTING, ITEM_FIGHTING_MEMORY, ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FLYING,   ITEM_FLYING_MEMORY,   ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_POISON,   ITEM_POISON_MEMORY,   ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GROUND,   ITEM_GROUND_MEMORY,   ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ROCK,     ITEM_ROCK_MEMORY,     ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_BUG,      ITEM_BUG_MEMORY,      ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GHOST,    ITEM_GHOST_MEMORY,    ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_STEEL,    ITEM_STEEL_MEMORY,    ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FIRE,     ITEM_FIRE_MEMORY,     ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_WATER,    ITEM_WATER_MEMORY,    ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GRASS,    ITEM_GRASS_MEMORY,    ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ELECTRIC, ITEM_ELECTRIC_MEMORY, ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_PSYCHIC,  ITEM_PSYCHIC_MEMORY,  ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ICE,      ITEM_ICE_MEMORY,      ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_DRAGON,   ITEM_DRAGON_MEMORY,   ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_DARK,     ITEM_DARK_MEMORY,     ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FAIRY,    ITEM_FAIRY_MEMORY,    ABILITY_RKS_SYSTEM},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TYPE_NULL

#if P_FAMILY_MINIOR
static const struct FormChange sMiniorRedFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_RED, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_RED,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_RED},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_RED},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_RED},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorBlueFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_BLUE, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_BLUE,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_BLUE},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_BLUE},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_BLUE},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorGreenFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_GREEN, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_GREEN,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_GREEN},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_GREEN},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_GREEN},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorIndigoFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_INDIGO, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_INDIGO,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_INDIGO},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_INDIGO},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_INDIGO},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorOrangeFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_ORANGE, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_ORANGE,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_ORANGE},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_ORANGE},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_ORANGE},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorVioletFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_VIOLET, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_VIOLET,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_VIOLET},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_VIOLET},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_VIOLET},
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sMiniorYellowFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_YELLOW, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_YELLOW,   ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MINIOR_CORE_YELLOW},
    {FORM_CHANGE_FAINT,             SPECIES_MINIOR_CORE_YELLOW},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MINIOR_CORE_YELLOW},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MINIOR

#if P_FAMILY_MIMIKYU
static const struct FormChange sMimikyuFormChangeTable[] = {
    {FORM_CHANGE_FAINT,         SPECIES_MIMIKYU_DISGUISED},
    {FORM_CHANGE_END_BATTLE,    SPECIES_MIMIKYU_DISGUISED},
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sMimikyuTotemFormChangeTable[] = {
    {FORM_CHANGE_FAINT,         SPECIES_MIMIKYU_TOTEM_DISGUISED},
    {FORM_CHANGE_END_BATTLE,    SPECIES_MIMIKYU_TOTEM_DISGUISED},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MIMIKYU

#if P_FAMILY_NECROZMA
static const struct Fusion sNecrozmaFusionTable[] = {
    {1, ITEM_N_SOLARIZER,    SPECIES_NECROZMA, SPECIES_SOLGALEO,  SPECIES_NECROZMA_DUSK_MANE,   MOVE_SUNSTEEL_STRIKE, MOVE_CONFUSION},
    {2, ITEM_N_LUNARIZER,    SPECIES_NECROZMA, SPECIES_LUNALA,    SPECIES_NECROZMA_DAWN_WINGS,  MOVE_MOONGEIST_BEAM,  MOVE_CONFUSION},
    {FUSION_TERMINATOR},
};

static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = {
#if P_ULTRA_BURST_FORMS
    {FORM_CHANGE_BATTLE_ULTRA_BURST,    SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z},
#endif
    {FORM_CHANGE_TERMINATOR},
};
static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = {
#if P_ULTRA_BURST_FORMS
    {FORM_CHANGE_BATTLE_ULTRA_BURST,    SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_NECROZMA

#if P_FAMILY_MELTAN
static const struct FormChange sMelmetalFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MELMETAL_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MELTAN

#if P_FAMILY_GROOKEY
static const struct FormChange sRillaboomFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_RILLABOOM_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_GROOKEY

#if P_FAMILY_SCORBUNNY
static const struct FormChange sCinderaceFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CINDERACE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SCORBUNNY

#if P_FAMILY_SOBBLE
static const struct FormChange sInteleonFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_INTELEON_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SOBBLE

#if P_FAMILY_ROOKIDEE
static const struct FormChange sCorviknightFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CORVIKNIGHT_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ROOKIDEE

#if P_FAMILY_BLIPBUG
static const struct FormChange sOrbeetleFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ORBEETLE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_BLIPBUG

#if P_FAMILY_CHEWTLE
static const struct FormChange sDrednawFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DREDNAW_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CHEWTLE

#if P_FAMILY_ROLYCOLY
static const struct FormChange sCoalossalFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COALOSSAL_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ROLYCOLY

#if P_FAMILY_APPLIN
static const struct FormChange sFlappleFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_FLAPPLE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sAppletunFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_APPLETUN_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_APPLIN

#if P_FAMILY_SILICOBRA
static const struct FormChange sSandacondaFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SANDACONDA_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SILICOBRA

#if P_FAMILY_CRAMORANT
static const struct FormChange sCramorantFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GULPING, ABILITY_GULP_MISSILE, HP_HIGHER_THAN,   50},
    {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GORGING, ABILITY_GULP_MISSILE, HP_LOWER_EQ_THAN, 50},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_CRAMORANT},
    {FORM_CHANGE_FAINT,             SPECIES_CRAMORANT},
    {FORM_CHANGE_END_BATTLE,        SPECIES_CRAMORANT},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CRAMORANT

#if P_FAMILY_TOXEL
static const struct FormChange sToxtricityAmpedFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_AMPED_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sToxtricityLowKeyFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TOXEL

#if P_FAMILY_SIZZLIPEDE
static const struct FormChange sCentiskorchFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CENTISKORCH_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_SIZZLIPEDE

#if P_FAMILY_HATENNA
static const struct FormChange sHattereneFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_HATTERENE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_HATENNA

#if P_FAMILY_IMPIDIMP
static const struct FormChange sGrimmsnarlFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GRIMMSNARL_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_IMPIDIMP

#if P_FAMILY_MILCERY
static const struct FormChange sAlcremieFormChangeTable[] =
{
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ALCREMIE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MILCERY

#if P_FAMILY_EISCUE
static const struct FormChange sEiscueFormChangeTable[] = {
    {FORM_CHANGE_FAINT,             SPECIES_EISCUE_ICE_FACE},
    {FORM_CHANGE_END_BATTLE,        SPECIES_EISCUE_ICE_FACE},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_EISCUE

#if P_FAMILY_MORPEKO
static const struct FormChange sMorpekoFormChangeTable[] = {
    {FORM_CHANGE_BATTLE_TURN_END,   SPECIES_MORPEKO_HANGRY,     ABILITY_HUNGER_SWITCH},
    {FORM_CHANGE_BATTLE_TURN_END,   SPECIES_MORPEKO_FULL_BELLY, ABILITY_HUNGER_SWITCH},
    {FORM_CHANGE_BATTLE_SWITCH,     SPECIES_MORPEKO_FULL_BELLY},
    {FORM_CHANGE_FAINT,             SPECIES_MORPEKO_FULL_BELLY},
    {FORM_CHANGE_END_BATTLE,        SPECIES_MORPEKO_FULL_BELLY},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_MORPEKO

#if P_FAMILY_CUFANT
static const struct FormChange sCopperajahFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COPPERAJAH_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_CUFANT

#if P_FAMILY_DURALUDON
static const struct FormChange sDuraludonFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DURALUDON_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_DURALUDON

#if P_FAMILY_ZACIAN
static const struct FormChange sZacianFormChangeTable[] = {
    {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZACIAN_CROWNED_SWORD,        ITEM_RUSTED_SWORD, MOVE_IRON_HEAD,      MOVE_BEHEMOTH_BLADE},
    {FORM_CHANGE_END_BATTLE,   SPECIES_ZACIAN_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SWORD, MOVE_BEHEMOTH_BLADE, MOVE_IRON_HEAD},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ZACIAN

#if P_FAMILY_ZAMAZENTA
static const struct FormChange sZamazentaFormChangeTable[] = {
    {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZAMAZENTA_CROWNED_SHIELD,       ITEM_RUSTED_SHIELD, MOVE_IRON_HEAD,      MOVE_BEHEMOTH_BASH},
    {FORM_CHANGE_END_BATTLE,   SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SHIELD, MOVE_BEHEMOTH_BASH,  MOVE_IRON_HEAD},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ZAMAZENTA

#if P_FAMILY_KUBFU
static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};

static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] = {
#if P_GIGANTAMAX_FORMS
    {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX},
#endif
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_KUBFU

#if P_FAMILY_CALYREX
static const struct Fusion sCalyrexFusionTable[] = {
    {3, ITEM_REINS_OF_UNITY, SPECIES_CALYREX,  SPECIES_GLASTRIER, SPECIES_CALYREX_ICE_RIDER,    MOVE_GLACIAL_LANCE,   MOVE_CONFUSION},
    {3, ITEM_REINS_OF_UNITY, SPECIES_CALYREX,  SPECIES_SPECTRIER, SPECIES_CALYREX_SHADOW_RIDER, MOVE_ASTRAL_BARRAGE,  MOVE_CONFUSION},
    {FUSION_TERMINATOR},
};
#endif //P_FAMILY_CALYREX

#if P_FAMILY_ENAMORUS
static const struct FormChange sEnamorusFormChangeTable[] = {
    {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_INCARNATE, ITEM_REVEAL_GLASS},
    {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_THERIAN,   ITEM_REVEAL_GLASS},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_ENAMORUS

#if P_FAMILY_FINIZEN
static const struct FormChange sPalafinZeroFormChangeTable[] =
{
    {FORM_CHANGE_BATTLE_SWITCH, SPECIES_PALAFIN_HERO},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_FINIZEN

#if P_FAMILY_OGERPON
static const struct FormChange sOgerponFormChangeTable[] = {
    {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_TEAL_MASK,        ITEM_NONE},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_WELLSPRING_MASK,  ITEM_WELLSPRING_MASK},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_HEARTHFLAME_MASK, ITEM_HEARTHFLAME_MASK},
    {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_CORNERSTONE_MASK, ITEM_CORNERSTONE_MASK},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_OGERPON

#if P_FAMILY_TERAPAGOS
static const struct FormChange sTerapagosFormChangeTable[] = {
    {FORM_CHANGE_BEGIN_BATTLE, SPECIES_TERAPAGOS_TERASTAL}, //needs to be tied to the ability
#if P_TERA_FORMS
    //{FORM_CHANGE_TERASTALLIZATION, SPECIES_TERAPAGOS_STELLAR},
#endif
    {FORM_CHANGE_END_BATTLE,   SPECIES_TERAPAGOS_NORMAL},
    {FORM_CHANGE_TERMINATOR},
};
#endif //P_FAMILY_TERAPAGOS

#undef WHEN_LEARNED
#undef WHEN_FORGOTTEN
