From f31b4f3bab25220efbb5e88a3966d0d310dbe454 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Sun, 31 Dec 2023 11:33:52 +0100 Subject: [PATCH 1/6] Turn nature names into compound strings (#3871) * Turn nature names into compound strings * Move nature names out of dedicated file --- src/data/text/nature_names.h | 54 ------------------------------------ src/pokemon.c | 29 +++++++++++++++++++ src/pokemon_summary_screen.c | 1 - 3 files changed, 29 insertions(+), 55 deletions(-) delete mode 100644 src/data/text/nature_names.h diff --git a/src/data/text/nature_names.h b/src/data/text/nature_names.h deleted file mode 100644 index 5cf2d8024c..0000000000 --- a/src/data/text/nature_names.h +++ /dev/null @@ -1,54 +0,0 @@ -static const u8 sHardyNatureName[] = _("Hardy"); -static const u8 sLonelyNatureName[] = _("Lonely"); -static const u8 sBraveNatureName[] = _("Brave"); -static const u8 sAdamantNatureName[] = _("Adamant"); -static const u8 sNaughtyNatureName[] = _("Naughty"); -static const u8 sBoldNatureName[] = _("Bold"); -static const u8 sDocileNatureName[] = _("Docile"); -static const u8 sRelaxedNatureName[] = _("Relaxed"); -static const u8 sImpishNatureName[] = _("Impish"); -static const u8 sLaxNatureName[] = _("Lax"); -static const u8 sTimidNatureName[] = _("Timid"); -static const u8 sHastyNatureName[] = _("Hasty"); -static const u8 sSeriousNatureName[] = _("Serious"); -static const u8 sJollyNatureName[] = _("Jolly"); -static const u8 sNaiveNatureName[] = _("Naive"); -static const u8 sModestNatureName[] = _("Modest"); -static const u8 sMildNatureName[] = _("Mild"); -static const u8 sQuietNatureName[] = _("Quiet"); -static const u8 sBashfulNatureName[] = _("Bashful"); -static const u8 sRashNatureName[] = _("Rash"); -static const u8 sCalmNatureName[] = _("Calm"); -static const u8 sGentleNatureName[] = _("Gentle"); -static const u8 sSassyNatureName[] = _("Sassy"); -static const u8 sCarefulNatureName[] = _("Careful"); -static const u8 sQuirkyNatureName[] = _("Quirky"); - -const u8 *const gNatureNamePointers[NUM_NATURES] = -{ - [NATURE_HARDY] = sHardyNatureName, - [NATURE_LONELY] = sLonelyNatureName, - [NATURE_BRAVE] = sBraveNatureName, - [NATURE_ADAMANT] = sAdamantNatureName, - [NATURE_NAUGHTY] = sNaughtyNatureName, - [NATURE_BOLD] = sBoldNatureName, - [NATURE_DOCILE] = sDocileNatureName, - [NATURE_RELAXED] = sRelaxedNatureName, - [NATURE_IMPISH] = sImpishNatureName, - [NATURE_LAX] = sLaxNatureName, - [NATURE_TIMID] = sTimidNatureName, - [NATURE_HASTY] = sHastyNatureName, - [NATURE_SERIOUS] = sSeriousNatureName, - [NATURE_JOLLY] = sJollyNatureName, - [NATURE_NAIVE] = sNaiveNatureName, - [NATURE_MODEST] = sModestNatureName, - [NATURE_MILD] = sMildNatureName, - [NATURE_QUIET] = sQuietNatureName, - [NATURE_BASHFUL] = sBashfulNatureName, - [NATURE_RASH] = sRashNatureName, - [NATURE_CALM] = sCalmNatureName, - [NATURE_GENTLE] = sGentleNatureName, - [NATURE_SASSY] = sSassyNatureName, - [NATURE_CAREFUL] = sCarefulNatureName, - [NATURE_QUIRKY] = sQuirkyNatureName, -}; diff --git a/src/pokemon.c b/src/pokemon.c index a2e357f134..96811a92dd 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -362,6 +362,35 @@ const struct SpindaSpot gSpindaSpotGraphics[] = #include "data/pokemon/item_effects.h" +const u8 *const gNatureNamePointers[NUM_NATURES] = +{ + [NATURE_HARDY] = COMPOUND_STRING("Hardy"), + [NATURE_LONELY] = COMPOUND_STRING("Lonely"), + [NATURE_BRAVE] = COMPOUND_STRING("Brave"), + [NATURE_ADAMANT] = COMPOUND_STRING("Adamant"), + [NATURE_NAUGHTY] = COMPOUND_STRING("Naughty"), + [NATURE_BOLD] = COMPOUND_STRING("Bold"), + [NATURE_DOCILE] = COMPOUND_STRING("Docile"), + [NATURE_RELAXED] = COMPOUND_STRING("Relaxed"), + [NATURE_IMPISH] = COMPOUND_STRING("Impish"), + [NATURE_LAX] = COMPOUND_STRING("Lax"), + [NATURE_TIMID] = COMPOUND_STRING("Timid"), + [NATURE_HASTY] = COMPOUND_STRING("Hasty"), + [NATURE_SERIOUS] = COMPOUND_STRING("Serious"), + [NATURE_JOLLY] = COMPOUND_STRING("Jolly"), + [NATURE_NAIVE] = COMPOUND_STRING("Naive"), + [NATURE_MODEST] = COMPOUND_STRING("Modest"), + [NATURE_MILD] = COMPOUND_STRING("Mild"), + [NATURE_QUIET] = COMPOUND_STRING("Quiet"), + [NATURE_BASHFUL] = COMPOUND_STRING("Bashful"), + [NATURE_RASH] = COMPOUND_STRING("Rash"), + [NATURE_CALM] = COMPOUND_STRING("Calm"), + [NATURE_GENTLE] = COMPOUND_STRING("Gentle"), + [NATURE_SASSY] = COMPOUND_STRING("Sassy"), + [NATURE_CAREFUL] = COMPOUND_STRING("Careful"), + [NATURE_QUIRKY] = COMPOUND_STRING("Quirky"), +}; + const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = { // Attack Defense Speed Sp.Atk Sp. Def [NATURE_HARDY] = { 0, 0, 0, 0, 0 }, diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 8502996620..b6a64c0211 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -322,7 +322,6 @@ static void SummaryScreen_DestroyAnimDelayTask(void); // const rom data #include "data/text/move_descriptions.h" -#include "data/text/nature_names.h" static const struct BgTemplate sBgTemplates[] = { From f6f287d63724fb45b57e499184ded48cfe6e69fe Mon Sep 17 00:00:00 2001 From: kittenchilly Date: Sun, 31 Dec 2023 18:38:50 -0600 Subject: [PATCH 2/6] Add Indigo Disk Pokemon data (#3878) * Archaludon? * more archuladon stuff * Hydrapple and Gouging Fire * Raging Bolt * Iron Boulder and Iron Crown * Terapagos * Pecharunt * Update gen_9.h * Pokedex orders --- include/config/species_enabled.h | 6 + include/constants/cries.h | 22 ++ include/constants/pokedex.h | 18 +- include/constants/species.h | 24 +- src/data/graphics/pokemon.h | 82 +++++ src/data/pokemon/form_change_tables.h | 9 + src/data/pokemon/form_species_tables.h | 9 + src/data/pokemon/item_effects.h | 1 + src/data/pokemon/level_up_learnsets.h | 171 ++++++++- src/data/pokemon/pokedex_orders.h | 33 ++ src/data/pokemon/species_info/gen_8.h | 98 +++++ src/data/pokemon/species_info/gen_9.h | 380 +++++++++++++++++++- src/data/pokemon/teachable_learnsets.h | 46 +++ src/data/pokemon_graphics/front_pic_anims.h | 55 +++ 14 files changed, 929 insertions(+), 25 deletions(-) diff --git a/include/config/species_enabled.h b/include/config/species_enabled.h index 8004abc3bb..9720f78f0e 100644 --- a/include/config/species_enabled.h +++ b/include/config/species_enabled.h @@ -594,5 +594,11 @@ #define P_FAMILY_MUNKIDORI P_GEN_9_POKEMON #define P_FAMILY_FEZANDIPITI P_GEN_9_POKEMON #define P_FAMILY_OGERPON P_GEN_9_POKEMON +#define P_FAMILY_GOUGING_FIRE P_GEN_9_POKEMON +#define P_FAMILY_RAGING_BOLT P_GEN_9_POKEMON +#define P_FAMILY_IRON_BOULDER P_GEN_9_POKEMON +#define P_FAMILY_IRON_CROWN P_GEN_9_POKEMON +#define P_FAMILY_TERAPAGOS P_GEN_9_POKEMON +#define P_FAMILY_PECHARUNT P_GEN_9_POKEMON #endif // GUARD_CONFIG_SPECIES_ENABLED_H diff --git a/include/constants/cries.h b/include/constants/cries.h index ddeee56d42..03aa9c558e 100644 --- a/include/constants/cries.h +++ b/include/constants/cries.h @@ -2025,6 +2025,7 @@ enum { CRY_APPLETUN, #if P_GEN_9_CROSS_EVOS CRY_DIPPLIN, + //CRY_HYDRAPPLE, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -2112,6 +2113,9 @@ enum { #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON CRY_DURALUDON, +#if P_GEN_9_CROSS_EVOS + //CRY_ARCHALUDON, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY CRY_DREEPY, @@ -2404,6 +2408,24 @@ enum { #if P_FAMILY_OGERPON CRY_OGERPON, #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + //CRY_GOUGING_FIRE, +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT + //CRY_RAGING_BOLT, +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER + //CRY_IRON_BOULDER, +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN + //CRY_IRON_CROWN, +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS + //CRY_TERAPAGOS, +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT + //CRY_PECHARUNT, +#endif //P_FAMILY_PECHARUNT CRY_COUNT, }; diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index 07e8c02fe2..c03b096f9a 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1031,21 +1031,21 @@ enum { NATIONAL_DEX_MUNKIDORI, NATIONAL_DEX_FEZANDIPITI, NATIONAL_DEX_OGERPON, - NATIONAL_DEX_1018, - NATIONAL_DEX_1019, - NATIONAL_DEX_1020, - NATIONAL_DEX_1021, - NATIONAL_DEX_1022, - NATIONAL_DEX_1023, - NATIONAL_DEX_1024, - NATIONAL_DEX_1025, + NATIONAL_DEX_ARCHALUDON, + NATIONAL_DEX_HYDRAPPLE, + NATIONAL_DEX_GOUGING_FIRE, + NATIONAL_DEX_RAGING_BOLT, + NATIONAL_DEX_IRON_BOULDER, + NATIONAL_DEX_IRON_CROWN, + NATIONAL_DEX_TERAPAGOS, + NATIONAL_DEX_PECHARUNT, }; #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_GEN_9_POKEMON == TRUE - #define NATIONAL_DEX_COUNT NATIONAL_DEX_1025 + #define NATIONAL_DEX_COUNT NATIONAL_DEX_PECHARUNT #elif P_GEN_8_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #elif P_GEN_7_POKEMON == TRUE diff --git a/include/constants/species.h b/include/constants/species.h index bcac9ecbc8..4f0e86738d 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1658,19 +1658,19 @@ #define SPECIES_OGERPON_CORNERSTONE_MASK_TERA GEN9_START + 135 #define SPECIES_URSALUNA_BLOODMOON GEN9_START + 136 // Indigo Disk -#define SPECIES_1018 GEN9_START + 137 -#define SPECIES_1019 GEN9_START + 138 -#define SPECIES_1020 GEN9_START + 139 -#define SPECIES_1021 GEN9_START + 140 -#define SPECIES_1022 GEN9_START + 141 -#define SPECIES_1023 GEN9_START + 142 -#define SPECIES_1024 SPECIES_1024_FORM_1 -#define SPECIES_1024_FORM_1 GEN9_START + 143 -#define SPECIES_1024_FORM_2 GEN9_START + 144 -#define SPECIES_1024_FORM_3 GEN9_START + 145 -#define SPECIES_1025 GEN9_START + 146 +#define SPECIES_ARCHALUDON GEN9_START + 137 +#define SPECIES_HYDRAPPLE GEN9_START + 138 +#define SPECIES_GOUGING_FIRE GEN9_START + 139 +#define SPECIES_RAGING_BOLT GEN9_START + 140 +#define SPECIES_IRON_BOULDER GEN9_START + 141 +#define SPECIES_IRON_CROWN GEN9_START + 142 +#define SPECIES_TERAPAGOS SPECIES_TERAPAGOS_NORMAL +#define SPECIES_TERAPAGOS_NORMAL GEN9_START + 143 +#define SPECIES_TERAPAGOS_TERASTAL GEN9_START + 144 +#define SPECIES_TERAPAGOS_STELLAR GEN9_START + 145 +#define SPECIES_PECHARUNT GEN9_START + 146 -#define PLACEHOLDER_START SPECIES_1025 +#define PLACEHOLDER_START SPECIES_PECHARUNT // XD: Gale of Darkness #define SPECIES_LUGIA_SHADOW PLACEHOLDER_START + 1 // Diamond & Pearl diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 68dc952952..643f65e251 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -9269,6 +9269,13 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonShinyPalette_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/shiny.gbapal.lz"); const u8 gMonIcon_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/icon.4bpp"); // const u8 gMonFootprint_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/footprint.1bpp"); + + // const u32 gMonFrontPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/front.4bpp.lz"); + // const u32 gMonPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/normal.gbapal.lz"); + // const u32 gMonBackPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/back.4bpp.lz"); + // const u32 gMonShinyPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/shiny.gbapal.lz"); + // const u8 gMonIcon_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/icon.4bpp"); + // const u8 gMonFootprint_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/footprint.1bpp"); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9767,6 +9774,15 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + // const u32 gMonFrontPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/front.4bpp.lz"); + // const u32 gMonPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/normal.gbapal.lz"); + // const u32 gMonBackPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/back.4bpp.lz"); + // const u32 gMonShinyPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/shiny.gbapal.lz"); + // const u8 gMonIcon_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/icon.4bpp"); + // const u8 gMonFootprint_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10906,6 +10922,72 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar // const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/shiny.gbapal.lz"); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + // const u32 gMonFrontPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/front.4bpp.lz"); + // const u32 gMonPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/normal.gbapal.lz"); + // const u32 gMonBackPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/back.4bpp.lz"); + // const u32 gMonShinyPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/shiny.gbapal.lz"); + // const u8 gMonIcon_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/icon.4bpp"); + // const u8 gMonFootprint_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/footprint.1bpp"); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + // const u32 gMonFrontPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/front.4bpp.lz"); + // const u32 gMonPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/normal.gbapal.lz"); + // const u32 gMonBackPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/back.4bpp.lz"); + // const u32 gMonShinyPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/shiny.gbapal.lz"); + // const u8 gMonIcon_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/icon.4bpp"); + // const u8 gMonFootprint_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/footprint.1bpp"); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + // const u32 gMonFrontPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/front.4bpp.lz"); + // const u32 gMonPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/normal.gbapal.lz"); + // const u32 gMonBackPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/back.4bpp.lz"); + // const u32 gMonShinyPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/shiny.gbapal.lz"); + // const u8 gMonIcon_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/icon.4bpp"); + // const u8 gMonFootprint_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/footprint.1bpp"); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + // const u32 gMonFrontPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/front.4bpp.lz"); + // const u32 gMonPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/normal.gbapal.lz"); + // const u32 gMonBackPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/back.4bpp.lz"); + // const u32 gMonShinyPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/shiny.gbapal.lz"); + // const u8 gMonIcon_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/icon.4bpp"); + // const u8 gMonFootprint_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/footprint.1bpp"); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS + // const u32 gMonFrontPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosNormal[] = INCBIN_U8("graphics/pokemon/terapagos/icon.4bpp"); + // const u8 gMonFootprint_Terapagos[] = INCBIN_U8("graphics/pokemon/terapagos/footprint.1bpp"); + + // const u32 gMonFrontPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosTerastal[] = INCBIN_U8("graphics/pokemon/terapagos/terastal/icon.4bpp"); + + // const u32 gMonFrontPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosStellar[] = INCBIN_U8("graphics/pokemon/terapagos/stellar/icon.4bpp"); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + // const u32 gMonFrontPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/front.4bpp.lz"); + // const u32 gMonPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/normal.gbapal.lz"); + // const u32 gMonBackPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/back.4bpp.lz"); + // const u32 gMonShinyPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/shiny.gbapal.lz"); + // const u8 gMonIcon_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/icon.4bpp"); + // const u8 gMonFootprint_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/footprint.1bpp"); +#endif //P_FAMILY_PECHARUNT + const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 2411783728..62ba52dd02 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -1092,5 +1092,14 @@ static const struct FormChange sOgerponFormChangeTable[] = { }; #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 + //{FORM_CHANGE_TERASTALLIZATION, SPECIES_TERAPAGOS_STELLAR}, + {FORM_CHANGE_END_BATTLE, SPECIES_TERAPAGOS_NORMAL}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_TERAPAGOS + #undef WHEN_LEARNED #undef WHEN_FORGOTTEN diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index b9d2631739..3fdd6dcbf5 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1761,3 +1761,12 @@ static const u16 sOgerponFormSpeciesIdTable[] = { FORM_SPECIES_END, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosFormSpeciesIdTable[] = { + SPECIES_TERAPAGOS_NORMAL, + SPECIES_TERAPAGOS_TERASTAL, + SPECIES_TERAPAGOS_STELLAR, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TERAPAGOS diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index e129d9505a..4273610b5e 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -629,6 +629,7 @@ const u8 *const gItemEffectTable[ITEMS_COUNT] = [ITEM_SYRUPY_APPLE] = gItemEffect_EvoItem, [ITEM_UNREMARKABLE_TEACUP] = gItemEffect_EvoItem, [ITEM_MASTERPIECE_TEACUP] = gItemEffect_EvoItem, + [ITEM_METAL_ALLOY] = gItemEffect_EvoItem, // Berries [ITEM_CHERI_BERRY] = gItemEffect_CheriBerry, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 3325cb2b8a..e41d0ca937 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -19855,6 +19855,26 @@ static const struct LevelUpMove sDipplinLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), LEVEL_UP_END }; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -20571,6 +20591,26 @@ static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), LEVEL_UP_END }; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -23146,4 +23186,133 @@ static const struct LevelUpMove sOgerponLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h index e877bbb17f..f7bd77cf12 100644 --- a/src/data/pokemon/pokedex_orders.h +++ b/src/data/pokemon/pokedex_orders.h @@ -26,6 +26,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_ARBOLIVA, NATIONAL_DEX_ARCANINE, NATIONAL_DEX_ARCEUS, + NATIONAL_DEX_ARCHALUDON, NATIONAL_DEX_ARCHEN, NATIONAL_DEX_ARCHEOPS, NATIONAL_DEX_ARCTIBAX, @@ -361,6 +362,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_GOTHITA, NATIONAL_DEX_GOTHITELLE, NATIONAL_DEX_GOTHORITA, + NATIONAL_DEX_GOUGING_FIRE, NATIONAL_DEX_GOURGEIST, NATIONAL_DEX_GRAFAIAI, NATIONAL_DEX_GRANBULL, @@ -416,6 +418,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_HOUNDOUR, NATIONAL_DEX_HOUNDSTONE, NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_HYDRAPPLE, NATIONAL_DEX_HYDREIGON, NATIONAL_DEX_HYPNO, @@ -427,7 +430,9 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_INFERNAPE, NATIONAL_DEX_INKAY, NATIONAL_DEX_INTELEON, + NATIONAL_DEX_IRON_BOULDER, NATIONAL_DEX_IRON_BUNDLE, + NATIONAL_DEX_IRON_CROWN, NATIONAL_DEX_IRON_HANDS, NATIONAL_DEX_IRON_JUGULIS, NATIONAL_DEX_IRON_LEAVES, @@ -658,6 +663,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_PAWMO, NATIONAL_DEX_PAWMOT, NATIONAL_DEX_PAWNIARD, + NATIONAL_DEX_PECHARUNT, NATIONAL_DEX_PELIPPER, NATIONAL_DEX_PERRSERKER, NATIONAL_DEX_PERSIAN, @@ -715,6 +721,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_RABOOT, NATIONAL_DEX_RABSCA, + NATIONAL_DEX_RAGING_BOLT, NATIONAL_DEX_RAICHU, NATIONAL_DEX_RAIKOU, NATIONAL_DEX_RALTS, @@ -906,6 +913,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_TENTACOOL, NATIONAL_DEX_TENTACRUEL, NATIONAL_DEX_TEPIG, + NATIONAL_DEX_TERAPAGOS, NATIONAL_DEX_TERRAKION, NATIONAL_DEX_THIEVUL, NATIONAL_DEX_THROH, @@ -1078,6 +1086,7 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_MINIOR_CORE_INDIGO, //NATIONAL_DEX_MINIOR_CORE_VIOLET, NATIONAL_DEX_MILCERY, + NATIONAL_DEX_PECHARUNT, // 0.9 lbs / 0.4 kg NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_CURSOLA, @@ -1397,6 +1406,7 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_MELOETTA_PIROUETTE, NATIONAL_DEX_PAWMO, NATIONAL_DEX_SMOLIV, + NATIONAL_DEX_TERAPAGOS,//_NORMAL // 14.6 lbs / 6.6 kg NATIONAL_DEX_RALTS, NATIONAL_DEX_WHIMSICOTT, @@ -1662,6 +1672,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_CORVISQUIRE, NATIONAL_DEX_NACLI, NATIONAL_DEX_MASCHIFF, + //NATIONAL_DEX_TERAPAGOS_TERASTAL // 35.9 lbs / 16.3 kg NATIONAL_DEX_WHISMUR, NATIONAL_DEX_LILLIGANT, @@ -2281,6 +2292,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_LATIOS, //NATIONAL_DEX_GUMSHOOS_TOTEM_SIZED, NATIONAL_DEX_SANDY_SHOCKS, + NATIONAL_DEX_ARCHALUDON, // 132.7 lbs / 60.2 kg NATIONAL_DEX_FINIZEN, NATIONAL_DEX_PALAFIN,//_ZERO, @@ -2377,6 +2389,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_COFAGRIGUS, // 168.9 lbs / 76.6 kg NATIONAL_DEX_GOLDUCK, + //NATIONAL_DEX_TERAPAGOS_STELLAR // 170.6 lbs / 77.4 kg NATIONAL_DEX_CACTURNE, // 172.0 lbs / 78.0 kg @@ -2477,6 +2490,8 @@ const u16 gPokedexOrder_Weight[] = // 204.8 lbs / 92.9 kg NATIONAL_DEX_DARMANITAN,//_STANDARD_MODE, //NATIONAL_DEX_DARMANITAN_ZEN_MODE, + // 205.0 lbs / 93.0 kg + NATIONAL_DEX_HYDRAPPLE, // 208.6 lbs / 94.6 kg NATIONAL_DEX_BOUFFALANT, NATIONAL_DEX_SAMUROTT, @@ -2659,6 +2674,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ARCANINE, // 342.8 lbs / 155.5 kg //NATIONAL_DEX_VENUSAUR_MEGA, + // 343.9 lbs / 156.0 kg + NATIONAL_DEX_IRON_CROWN, // 352.7 lbs / 160.0 kg NATIONAL_DEX_HYDREIGON, NATIONAL_DEX_FARIGIRAF, @@ -2666,6 +2683,8 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_SABLEYE_MEGA, // 357.1 lbs / 162.0 kg NATIONAL_DEX_MILOTIC, + // 358.2 lbs / 162.5 kg + NATIONAL_DEX_IRON_BOULDER, // 370.4 lbs / 168.0 kg //NATIONAL_DEX_ARCANINE_HISUIAN, NATIONAL_DEX_LUNATONE, @@ -2859,6 +2878,8 @@ const u16 gPokedexOrder_Weight[] = // 1014.1 lbs / 460.0 kg NATIONAL_DEX_SNORLAX, //NATIONAL_DEX_NECROZMA_DUSK_MANE, + // 1058.2 lbs / 480.0 kg + NATIONAL_DEX_RAGING_BOLT, // 1080.3 lbs / 490.0 kg //NATIONAL_DEX_HOOPA_UNBOUND, // 1113.3 lbs / 505.0 kg @@ -2867,6 +2888,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_STONJOURNER, // 1212.5 lbs / 550.0 kg NATIONAL_DEX_METAGROSS, + // 1300.7 lbs / 590.0 kg + NATIONAL_DEX_GOUGING_FIRE, // 1344.8 lbs / 610.0 kg //NATIONAL_DEX_ZYGARDE_COMPLETE, // 1433.8 lbs / 650.0 kg @@ -2965,6 +2988,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_RELLOR, NATIONAL_DEX_FLITTLE, NATIONAL_DEX_SINISTCHA, + NATIONAL_DEX_TERAPAGOS,//_NORMAL // 1'00" / 0.3m NATIONAL_DEX_CATERPIE, NATIONAL_DEX_WEEDLE, @@ -3129,6 +3153,8 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_TATSUGIRI_DROOPY, //NATIONAL_DEX_TATSUGIRI_STRETCHY, NATIONAL_DEX_GIMMIGHOUL,//_CHEST, + //NATIONAL_DEX_TERAPAGOS_TERASTAL, + NATIONAL_DEX_PECHARUNT, // 0.4m NATIONAL_DEX_SPRIGATITO, NATIONAL_DEX_FUECOCO, @@ -3871,6 +3897,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GLIMMORA, NATIONAL_DEX_WO_CHIEN, NATIONAL_DEX_IRON_LEAVES, + NATIONAL_DEX_IRON_BOULDER, // 5'03" / 1.6m NATIONAL_DEX_BLASTOISE, //NATIONAL_DEX_BLASTOISE_MEGA, @@ -3918,6 +3945,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CYCLIZAR, NATIONAL_DEX_FLAMIGO, NATIONAL_DEX_IRON_THORNS, + NATIONAL_DEX_IRON_CROWN, // 5'07" / 1.7m NATIONAL_DEX_CHARIZARD, //NATIONAL_DEX_CHARIZARD_MEGA_X, @@ -3955,6 +3983,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_GOURGEIST_SUPER, NATIONAL_DEX_VOLCANION, NATIONAL_DEX_CRABOMINABLE, + //NATIONAL_DEX_TERAPAGOS_STELLAR // 5'11" / 1.8m NATIONAL_DEX_DODRIO, NATIONAL_DEX_AERODACTYL, @@ -3993,6 +4022,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CLODSIRE, NATIONAL_DEX_IRON_HANDS, NATIONAL_DEX_OKIDOGI, + NATIONAL_DEX_HYDRAPPLE, // 6'03" / 1.9m NATIONAL_DEX_ARCANINE, NATIONAL_DEX_RHYDON, @@ -4053,6 +4083,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_HOUNDSTONE, NATIONAL_DEX_KINGAMBIT, NATIONAL_DEX_ROARING_MOON, + NATIONAL_DEX_ARCHALUDON, // 6'11" / 2.1m //NATIONAL_DEX_AERODACTYL_MEGA, NATIONAL_DEX_SNORLAX, @@ -4198,6 +4229,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GROUDON, NATIONAL_DEX_MIRAIDON, NATIONAL_DEX_WALKING_WAKE, + NATIONAL_DEX_GOUGING_FIRE, // 11'10" / 3.6m //NATIONAL_DEX_KYUREM_WHITE, NATIONAL_DEX_NAGANADEL, @@ -4229,6 +4261,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_ZYGARDE_50_POWER_CONSTRUCT, // 17'01" / 5.2m NATIONAL_DEX_LUGIA, + NATIONAL_DEX_RAGING_BOLT, // 17'09" / 5.4m NATIONAL_DEX_DIALGA, // 18'01" / 5.5m diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8.h index bcf77fcfa2..0bbd9b2f3a 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8.h @@ -1938,6 +1938,54 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = ICON(Dipplin, 1), //.footprint = gMonFootprint_Dipplin, LEARNSETS(Dipplin), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_CHEER, SPECIES_HYDRAPPLE}), + }, + + [SPECIES_HYDRAPPLE] = + { + .baseHP = 106, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 44, + .baseSpAttack = 120, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 170, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_REGENERATOR, ABILITY_STICKY_HOLD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Hydrapple"), + //.cryId = CRY_HYDRAPPLE, + .natDexNum = NATIONAL_DEX_HYDRAPPLE, + .categoryName = _("Apple Hydra"), + .height = 18, + .weight = 930, + .description = COMPOUND_STRING( + "These capricious syrpents have\n" + "banded together. On the rare\n" + "occasion that their moods align,\n" + "their true power is unleashed."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + //FRONT_PIC(Hydrapple, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Hydrapple, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Hydrapple, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Hydrapple), + //ICON(Hydrapple, 0), + //.footprint = gMonFootprint_Hydrapple, + LEARNSETS(Hydrapple), }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -4215,6 +4263,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = //.backAnimId = BACK_ANIM_NONE, PALETTES(Duraludon), ICON(Duraludon, 0), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_METAL_ALLOY, SPECIES_ARCHALUDON}), }, #if P_GIGANTAMAX_FORMS @@ -4244,6 +4293,55 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .isGigantamax = TRUE, }, #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + [SPECIES_ARCHALUDON] = + { + .baseHP = 90, + .baseAttack = 105, + .baseDefense = 130, + .baseSpeed = 85, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = { TYPE_STEEL, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 187, //Currently unknown + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_STAMINA, ABILITY_STURDY, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Archaludon"), + //.cryId = CRY_ARCHALUDON, + .natDexNum = NATIONAL_DEX_ARCHALUDON, + .categoryName = _("Alloy"), + .height = 20, + .weight = 600, + .description = COMPOUND_STRING( + "It gathers static electricity\n" + "from its surroundings. The beams\n" + "it launches when down on all fours\n" + "are tremendously powerful."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + //FRONT_PIC(Archaludon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Archaludon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Archaludon, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Archaludon), + //ICON(Archaludon, 0), + //.footprint = gMonFootprint_Archaludon, + LEARNSETS(Archaludon), + }, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9.h index 2f5f0ad76a..70e55ae320 100644 --- a/src/data/pokemon/species_info/gen_9.h +++ b/src/data/pokemon/species_info/gen_9.h @@ -5026,7 +5026,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 35, .weight = 2800, .description = COMPOUND_STRING( - "Ecology under research."), + "This ferocious creature is shrouded in\n" + "mystery. It's named after an aquatic\n" + "monster mentioned in an old journal."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -5073,7 +5075,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 15, .weight = 1250, .description = COMPOUND_STRING( - "Ecology under analysis."), + "According to the few eyewitness accounts\n" + "that exist, it used its shining blades\n" + "to julienne large trees and boulders."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -5428,6 +5432,376 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + [SPECIES_GOUGING_FIRE] = + { + .baseHP = 105, + .baseAttack = 115, + .baseDefense = 121, + .baseSpeed = 91, + .baseSpAttack = 65, + .baseSpDefense = 93, + .types = { TYPE_FIRE, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .isParadoxForm = TRUE, + .speciesName = _("GouginFire"), + //.cryId = CRY_GOUGING_FIRE, + .natDexNum = NATIONAL_DEX_GOUGING_FIRE, + .categoryName = _("Paradox"), + .height = 35, + .weight = 5900, + .description = COMPOUND_STRING( + "There are scant few reports of\n" + "this creature being sighted.\n" + "One short video shows it rampaging,\n" + "and spouting pillars of flame."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + //FRONT_PIC(GougingFire, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GougingFire, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(GougingFire, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(GougingFire), + //ICON(GougingFire, 0), + //.footprint = gMonFootprint_GougingFire, + LEARNSETS(GougingFire), + }, +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + [SPECIES_RAGING_BOLT] = + { + .baseHP = 125, + .baseAttack = 73, + .baseDefense = 91, + .baseSpeed = 75, + .baseSpAttack = 137, + .baseSpDefense = 89, + .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .isParadoxForm = TRUE, + .speciesName = _("RagingBolt"), + //.cryId = CRY_RAGING_BOLT, + .natDexNum = NATIONAL_DEX_RAGING_BOLT, + .categoryName = _("Paradox"), + .height = 52, + .weight = 4800, + .description = COMPOUND_STRING( + "It bears resemblance to a Pokémon\n" + "that became a hot topic for a short\n" + "while after a paranomal magazine\n" + "touted it as Raikou's ancestor."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + //FRONT_PIC(RagingBolt, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RagingBolt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(RagingBolt, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(RagingBolt), + //ICON(RagingBolt, 0), + //.footprint = gMonFootprint_RagingBolt, + LEARNSETS(RagingBolt), + }, +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + [SPECIES_IRON_BOULDER] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 124, + .baseSpAttack = 68, + .baseSpDefense = 108, + .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .isParadoxForm = TRUE, + .speciesName = _("IronBouldr"), + //.cryId = CRY_IRON_BOULDER, + .natDexNum = NATIONAL_DEX_IRON_BOULDER, + .categoryName = _("Paradox"), + .height = 15, + .weight = 1625, + .description = COMPOUND_STRING( + "It was named after a mysterious\n" + "object recorded in an old book.\n" + "Its body seems to be metallic."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 336, + .trainerOffset = 4, + //FRONT_PIC(IronBoulder, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronBoulder, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(IronBoulder, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(IronBoulder), + //ICON(IronBoulder, 0), + //.footprint = gMonFootprint_IronBoulder, + LEARNSETS(IronBoulder), + }, +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + [SPECIES_IRON_CROWN] = + { + .baseHP = 90, + .baseAttack = 72, + .baseDefense = 100, + .baseSpeed = 98, + .baseSpAttack = 122, + .baseSpDefense = 108, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .isParadoxForm = TRUE, + .speciesName = _("Iron Crown"), + //.cryId = CRY_IRON_CROWN, + .natDexNum = NATIONAL_DEX_IRON_CROWN, + .categoryName = _("Paradox"), + .height = 16, + .weight = 1560, + .description = COMPOUND_STRING( + "It resembles a mysterious object\n" + "introduced in a paranormal magazine\n" + "as a cutting-edge weapon\n" + "shaped like Cobalion."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(IronCrown, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronCrown, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(IronCrown, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(IronCrown), + //ICON(IronCrown, 0), + //.footprint = gMonFootprint_IronCrown, + LEARNSETS(IronCrown), + }, +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +#define TERAPAGOS_MISC_INFO \ + .types = { TYPE_NORMAL, TYPE_NORMAL }, \ + .catchRate = 255, \ + .expYield = 275, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .speciesName = _("Terapagos"), \ + .natDexNum = NATIONAL_DEX_TERAPAGOS, \ + .categoryName = _("Tera"), \ + LEARNSETS(Terapagos), \ + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, \ + .formChangeTable = sTerapagosFormChangeTable, \ + .isLegendary = TRUE + //.cryId = CRY_TERAPAGOS, + //.footprint = gMonFootprint_Terapagos, + + [SPECIES_TERAPAGOS_NORMAL] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 85, + .baseSpeed = 60, + .baseSpAttack = 65, + .baseSpDefense = 85, + .evYield_Defense = 1, + .abilities = { ABILITY_TERA_SHIFT, ABILITY_NONE }, + .height = 2, + .weight = 65, + .description = COMPOUND_STRING( + "Terapagos protects itself using its\n" + "power to transform energy into hard\n" + "crystals. This Pokémon is the source\n" + "of the Terastal phenomenon."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosNormal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosNormal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosNormal, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosNormal), + //ICON(TerapagosNormal, 0), + }, + + [SPECIES_TERAPAGOS_TERASTAL] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 105, + .baseSpDefense = 110, + .evYield_Defense = 2, + .abilities = { ABILITY_TERA_SHELL, ABILITY_NONE }, + .height = 3, + .weight = 160, + .description = COMPOUND_STRING( + "The shell is made of crystallized\n" + "Terastal energy. When struck by a move,\n" + "this shell absorbs the move's energy\n" + "and transfers it to Terapagos."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosTerastal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosTerastal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosTerastal, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosTerastal), + //ICON(TerapagosTerastal, 0), + }, + + [SPECIES_TERAPAGOS_STELLAR] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 160, + .baseAttack = 105, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 130, + .baseSpDefense = 110, + .evYield_HP = 3, + .abilities = { ABILITY_TERAFORM_ZERO, ABILITY_NONE }, + .height = 17, + .weight = 770, + .description = COMPOUND_STRING( + "An old expedition journal describes the\n" + "sight of this Pokémon buried in the,\n" + "depths of the earth as resembling a\n" + "planet floating in space."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosStellar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosStellar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosStellar, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosStellar), + //ICON(TerapagosStellar, 0), + }, +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + [SPECIES_PECHARUNT] = + { + .baseHP = 88, + .baseAttack = 88, + .baseDefense = 160, + .baseSpeed = 88, + .baseSpAttack = 88, + .baseSpDefense = 88, + .types = { TYPE_POISON, TYPE_GHOST }, + .catchRate = 3, + .expYield = 261, //Currently unknown + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_POISON_PUPPETEER, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .isMythical = TRUE, + .speciesName = _("Pecharunt"), + //.cryId = CRY_PECHARUNT, + .natDexNum = NATIONAL_DEX_PECHARUNT, + .categoryName = _("Subjugation"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "It feeds others toxic mochi that\n" + "draw out desires and capabilities.\n" + "Those who eat the mochi fall under\n" + "Pecharunt's control, chained to its will."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(Pecharunt, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Pecharunt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Pecharunt, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Pecharunt), + //ICON(Pecharunt, 0), + //.footprint = gMonFootprint_Pecharunt, + LEARNSETS(Pecharunt), + }, +#endif //P_FAMILY_PECHARUNT + #ifdef __INTELLISENSE__ }; -#endif \ No newline at end of file +#endif diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index f274363f61..b8f2a39e30 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -33821,6 +33821,10 @@ static const u16 sAppletunTeachableLearnset[] = { static const u16 sDipplinTeachableLearnset[] = { MOVE_UNAVAILABLE, }; + +static const u16 sHydrappleTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -34654,6 +34658,12 @@ static const u16 sDuraludonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; + +#if P_GEN_9_CROSS_EVOS +static const u16 sArchaludonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -39114,3 +39124,39 @@ static const u16 sOgerponTeachableLearnset[] = { MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const u16 sGougingFireTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const u16 sRagingBoltTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const u16 sIronBoulderTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const u16 sIronCrownTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const u16 sPecharuntTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 75cb52732c..77a3ef8d69 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -9567,6 +9567,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); #if P_GEN_9_CROSS_EVOS PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9718,6 +9719,10 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); #if P_GIGANTAMAX_FORMS PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10084,6 +10089,32 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +PLACEHOLDER_ANIM_SINGLE_FRAME(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +PLACEHOLDER_ANIM_SINGLE_FRAME(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +PLACEHOLDER_ANIM_SINGLE_FRAME(IronCrown); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosNormal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosTerastal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +PLACEHOLDER_ANIM_SINGLE_FRAME(Pecharunt); +#endif //P_FAMILY_PECHARUNT + static const union AnimCmd sAnim_Egg_1[] = { ANIMCMD_FRAME(0, 6), @@ -12341,6 +12372,7 @@ SINGLE_ANIMATION(AppletunGigantamax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Dipplin); +SINGLE_ANIMATION(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -12448,6 +12480,9 @@ SINGLE_ANIMATION(Duraludon); #if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY SINGLE_ANIMATION(Dreepy); @@ -12731,4 +12766,24 @@ SINGLE_ANIMATION(Fezandipiti); #if P_FAMILY_OGERPON SINGLE_ANIMATION(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +SINGLE_ANIMATION(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT +SINGLE_ANIMATION(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER +SINGLE_ANIMATION(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN +SINGLE_ANIMATION(IronCrown); +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS +SINGLE_ANIMATION(TerapagosNormal); +SINGLE_ANIMATION(TerapagosTerastal); +SINGLE_ANIMATION(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT +SINGLE_ANIMATION(Pecharunt); +#endif //P_FAMILY_PECHARUNT SINGLE_ANIMATION(Egg); From ab75ad6d0289fe6f4e7eb30e3ef36d9136b5e9b5 Mon Sep 17 00:00:00 2001 From: Nephrite Date: Mon, 1 Jan 2024 14:03:34 +0000 Subject: [PATCH 3/6] Ability flags update (#3886) * Added five ability flags Omitted duplicate flags that are basically "can't copy" (Role Play, Receiver, Entrainment, Skill Swap), didn't bother adding Neutralizing Gas flag, * Mold Breaker and Trace * Gastro Acid, Simple Beam, Worry Seed Decided to keep the Simple Beam/Worry Seed functions * Entrainment done * Skill Swap * Doodle/Role Play + flag descriptions Also adjusted Doodle test * Wandering Spirit, Mummy, Neutralizing Gas Neutralizing Gas really only needs to check for other mons with Neutralizing Gas, otherwise unsuppressable abilities are handled separately. * Renamed flags --- include/battle_util.h | 10 - include/config/battle.h | 3 + include/pokemon.h | 7 + src/battle_ai_main.c | 21 +- src/battle_script_commands.c | 21 +- src/battle_util.c | 539 ++----------------------------- src/data/abilities.h | 224 +++++++++++++ test/battle/move_effect/doodle.c | 8 +- 8 files changed, 294 insertions(+), 539 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index 18b27eed2c..575d18edf8 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -222,16 +222,6 @@ void RecalcBattlerStats(u32 battler, struct Pokemon *mon); bool32 IsAlly(u32 battlerAtk, u32 battlerDef); bool32 IsGen6ExpShareEnabled(void); -// Ability checks -bool32 IsSkillSwapBannedAbility(u16 ability); -bool32 IsRolePlayDoodleBannedAbility(u16 ability); -bool32 IsRolePlayDoodleBannedAbilityAttacker(u16 ability); -bool32 IsWorrySeedBannedAbility(u16 ability); -bool32 IsGastroAcidBannedAbility(u16 ability); -bool32 IsEntrainmentBannedAbility(u16 ability); -bool32 IsEntrainmentBannedAbilityAttacker(u16 ability); -bool32 IsSimpleBeamBannedAbility(u16 ability); - bool32 CanSleep(u32 battler); bool32 CanBePoisoned(u32 battlerAttacker, u32 battlerTarget); bool32 CanBeBurned(u32 battler); diff --git a/include/config/battle.h b/include/config/battle.h index acce0ac124..e963dc775b 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -71,6 +71,9 @@ #define B_PP_REDUCED_BY_SPITE GEN_LATEST // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. #define B_EXTRAPOLATED_MOVE_FLAGS TRUE // Adds move flags to moves that they don't officially have but would likely have if they were in the latest core series game. +// Ability data settings +#define B_UPDATED_ABILITY_DATA GEN_LATEST // Affects flags + // Move accuracy settings #define B_TOXIC_NEVER_MISS GEN_LATEST // In Gen6+, if Toxic is used by a Poison-type Pokémon, it will never miss. #define B_MINIMIZE_DMG_ACC GEN_LATEST // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. diff --git a/include/pokemon.h b/include/pokemon.h index c95ecbf940..87d74b766c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -514,6 +514,13 @@ struct Ability u8 name[ABILITY_NAME_LENGTH + 1]; const u8 *description; s8 aiRating; + u8 cantBeCopied:1; // cannot be copied by Role Play or Doodle + u8 cantBeSwapped:1; // cannot be swapped with Skill Swap or Wandering Spirit + u8 cantBeTraced:1; // cannot be copied by Trace - same as cantBeCopied except for Wonder Guard + u8 cantBeSuppressed:1; // cannot be negated by Gastro Acid or Neutralizing Gas + u8 cantBeOverwritten:1; // cannot be overwritten by Entrainment, Worry Seed or Simple Beam (but can be by Mummy) - same as cantBeSuppressed except for Truant + u8 breakable:1; // can be bypassed by Mold Breaker and clones + u8 failsOnImposter:1; // doesn't work on an Imposter mon; when can we actually use this? }; #define SPINDA_SPOT_WIDTH 16 diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 6aa8374b6f..ae06cdfb51 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2153,8 +2153,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ROLE_PLAY: if (aiData->abilities[battlerAtk] == aiData->abilities[battlerDef] || aiData->abilities[battlerDef] == ABILITY_NONE - || IsRolePlayDoodleBannedAbilityAttacker(aiData->abilities[battlerAtk]) - || IsRolePlayDoodleBannedAbility(aiData->abilities[battlerDef])) + || gAbilities[aiData->abilities[battlerAtk]].cantBeSuppressed + || gAbilities[aiData->abilities[battlerDef]].cantBeCopied) ADJUST_SCORE(-10); else if (IsAbilityOfRating(aiData->abilities[battlerAtk], 5)) ADJUST_SCORE(-4); @@ -2183,25 +2183,26 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_SKILL_SWAP: if (aiData->abilities[battlerAtk] == ABILITY_NONE || aiData->abilities[battlerDef] == ABILITY_NONE - || IsSkillSwapBannedAbility(aiData->abilities[battlerAtk]) || IsSkillSwapBannedAbility(aiData->abilities[battlerDef]) + || gAbilities[aiData->abilities[battlerAtk]].cantBeSwapped + || gAbilities[aiData->abilities[battlerDef]].cantBeSwapped || aiData->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; case EFFECT_WORRY_SEED: if (aiData->abilities[battlerDef] == ABILITY_INSOMNIA - || IsWorrySeedBannedAbility(aiData->abilities[battlerDef]) + || gAbilities[aiData->abilities[battlerDef]].cantBeOverwritten || aiData->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; case EFFECT_GASTRO_ACID: if (gStatuses3[battlerDef] & STATUS3_GASTRO_ACID - || IsGastroAcidBannedAbility(aiData->abilities[battlerDef])) + || gAbilities[aiData->abilities[battlerDef]].cantBeSuppressed) ADJUST_SCORE(-10); break; case EFFECT_ENTRAINMENT: if (aiData->abilities[battlerAtk] == ABILITY_NONE - || IsEntrainmentBannedAbilityAttacker(aiData->abilities[battlerAtk]) - || IsEntrainmentBannedAbility(aiData->abilities[battlerDef]) + || gAbilities[aiData->abilities[battlerAtk]].cantBeCopied + || gAbilities[aiData->abilities[battlerDef]].cantBeOverwritten || aiData->holdEffects[battlerAtk] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; @@ -2209,7 +2210,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_SIMPLE_BEAM: if (aiData->abilities[battlerDef] == ABILITY_SIMPLE - || IsSimpleBeamBannedAbility(aiData->abilities[battlerDef]) + || gAbilities[aiData->abilities[battlerDef]].cantBeOverwritten || aiData->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; @@ -4377,8 +4378,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } break; case EFFECT_ROLE_PLAY: - if (!IsRolePlayDoodleBannedAbilityAttacker(aiData->abilities[battlerAtk]) - && !IsRolePlayDoodleBannedAbility(aiData->abilities[battlerDef]) + if (!gAbilities[aiData->abilities[battlerAtk]].cantBeSuppressed + && !gAbilities[aiData->abilities[battlerDef]].cantBeCopied && !IsAbilityOfRating(aiData->abilities[battlerAtk], 5) && IsAbilityOfRating(aiData->abilities[battlerDef], 5)) ADJUST_SCORE(2); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index efa31669e1..6cc177769f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9329,7 +9329,7 @@ static void Cmd_various(void) case VARIOUS_SET_SIMPLE_BEAM: { VARIOUS_ARGS(const u8 *failInstr); - if (IsSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) + if (gAbilities[gBattleMons[gBattlerTarget].ability].cantBeOverwritten || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); @@ -9353,8 +9353,8 @@ static void Cmd_various(void) case VARIOUS_TRY_ENTRAINMENT: { VARIOUS_ARGS(const u8 *failInstr); - if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) - || IsEntrainmentBannedAbility(gBattleMons[gBattlerTarget].ability)) + if (gAbilities[gBattleMons[gBattlerAttacker].ability].cantBeCopied + || gAbilities[gBattleMons[gBattlerTarget].ability].cantBeOverwritten) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = cmd->failInstr; @@ -13951,9 +13951,9 @@ static void Cmd_trycopyability(void) if (gBattleMons[battler].ability == defAbility || defAbility == ABILITY_NONE - || IsRolePlayDoodleBannedAbilityAttacker(gBattleMons[battler].ability) - || IsRolePlayDoodleBannedAbilityAttacker(gBattleMons[BATTLE_PARTNER(battler)].ability) - || IsRolePlayDoodleBannedAbility(defAbility)) + || gAbilities[gBattleMons[battler].ability].cantBeSuppressed + || gAbilities[gBattleMons[BATTLE_PARTNER(battler)].ability].cantBeSuppressed + || gAbilities[defAbility].cantBeCopied) { gBattlescriptCurrInstr = cmd->failInstr; } @@ -14029,7 +14029,7 @@ static void Cmd_setgastroacid(void) { CMD_ARGS(const u8 *failInstr); - if (IsGastroAcidBannedAbility(gBattleMons[gBattlerTarget].ability)) + if (gAbilities[gBattleMons[gBattlerTarget].ability].cantBeSuppressed) { gBattlescriptCurrInstr = cmd->failInstr; } @@ -14129,8 +14129,8 @@ static void Cmd_tryswapabilities(void) { CMD_ARGS(const u8 *failInstr); - if (IsSkillSwapBannedAbility(gBattleMons[gBattlerAttacker].ability) - || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability)) + if (gAbilities[gBattleMons[gBattlerAttacker].ability].cantBeSwapped + || gAbilities[gBattleMons[gBattlerTarget].ability].cantBeSwapped) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = cmd->failInstr; @@ -15489,7 +15489,8 @@ static void Cmd_tryworryseed(void) { CMD_ARGS(const u8 *failInstr); - if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability)) + if (gAbilities[gBattleMons[gBattlerTarget].ability].cantBeOverwritten + || gBattleMons[gBattlerTarget].ability == ABILITY_INSOMNIA) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); diff --git a/src/battle_util.c b/src/battle_util.c index 86e616140a..04ba26ed86 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -94,224 +94,6 @@ static const u8 sPkblToEscapeFactor[][3] = { static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1}; static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4}; -static const u16 sSkillSwapBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_HUNGER_SWITCH, - ABILITY_ICE_FACE, - ABILITY_ILLUSION, - ABILITY_MULTITYPE, - ABILITY_NEUTRALIZING_GAS, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_WONDER_GUARD, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sRolePlayDoodleBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_FLOWER_GIFT, - ABILITY_FORECAST, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_HUNGER_SWITCH, - ABILITY_ICE_FACE, - ABILITY_ILLUSION, - ABILITY_IMPOSTER, - ABILITY_MULTITYPE, - ABILITY_NEUTRALIZING_GAS, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_POWER_OF_ALCHEMY, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RECEIVER, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_TRACE, - ABILITY_WONDER_GUARD, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sRolePlayDoodleBannedAttackerAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_ICE_FACE, - ABILITY_MULTITYPE, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sWorrySeedBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_ICE_FACE, - ABILITY_INSOMNIA, - ABILITY_MULTITYPE, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_TRUANT, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sGastroAcidBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_ICE_FACE, - ABILITY_MULTITYPE, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sEntrainmentBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_ICE_FACE, - ABILITY_MULTITYPE, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_TRUANT, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sEntrainmentBannedAttackerAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_FLOWER_GIFT, - ABILITY_FORECAST, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_HUNGER_SWITCH, - ABILITY_ICE_FACE, - ABILITY_ILLUSION, - ABILITY_IMPOSTER, - ABILITY_MULTITYPE, - ABILITY_NEUTRALIZING_GAS, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_POWER_OF_ALCHEMY, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RECEIVER, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_TRACE, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -static const u16 sSimpleBeamBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_BATTLE_BOND, - ABILITY_COMATOSE, - ABILITY_COMMANDER, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_HADRON_ENGINE, - ABILITY_ICE_FACE, - ABILITY_MULTITYPE, - ABILITY_ORICHALCUM_PULSE, - ABILITY_POWER_CONSTRUCT, - ABILITY_PROTOSYNTHESIS, - ABILITY_QUARK_DRIVE, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_SIMPLE, - ABILITY_STANCE_CHANGE, - ABILITY_TRUANT, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - static u8 CalcBeatUpPower(void) { u8 basePower; @@ -985,114 +767,6 @@ void HandleAction_ActionFinished(void) } } -static const u8 sAbilitiesAffectedByMoldBreaker[] = -{ - [ABILITY_BATTLE_ARMOR] = 1, - [ABILITY_CLEAR_BODY] = 1, - [ABILITY_DAMP] = 1, - [ABILITY_DRY_SKIN] = 1, - [ABILITY_FILTER] = 1, - [ABILITY_FLASH_FIRE] = 1, - [ABILITY_FLOWER_GIFT] = 1, - [ABILITY_HEATPROOF] = 1, - [ABILITY_HYPER_CUTTER] = 1, - [ABILITY_IMMUNITY] = 1, - [ABILITY_INNER_FOCUS] = 1, - [ABILITY_INSOMNIA] = 1, - [ABILITY_KEEN_EYE] = 1, - [ABILITY_LEAF_GUARD] = 1, - [ABILITY_LEVITATE] = 1, - [ABILITY_LIGHTNING_ROD] = 1, - [ABILITY_LIMBER] = 1, - [ABILITY_MAGMA_ARMOR] = 1, - [ABILITY_MARVEL_SCALE] = 1, - [ABILITY_MOTOR_DRIVE] = 1, - [ABILITY_OBLIVIOUS] = 1, - [ABILITY_OWN_TEMPO] = 1, - [ABILITY_SAND_VEIL] = 1, - [ABILITY_SHELL_ARMOR] = 1, - [ABILITY_SHIELD_DUST] = 1, - [ABILITY_SIMPLE] = 1, - [ABILITY_SNOW_CLOAK] = 1, - [ABILITY_SOLID_ROCK] = 1, - [ABILITY_SOUNDPROOF] = 1, - [ABILITY_STICKY_HOLD] = 1, - [ABILITY_STORM_DRAIN] = 1, - [ABILITY_STURDY] = 1, - [ABILITY_SUCTION_CUPS] = 1, - [ABILITY_TANGLED_FEET] = 1, - [ABILITY_THICK_FAT] = 1, - [ABILITY_UNAWARE] = 1, - [ABILITY_VITAL_SPIRIT] = 1, - [ABILITY_VOLT_ABSORB] = 1, - [ABILITY_WATER_ABSORB] = 1, - [ABILITY_WATER_VEIL] = 1, - [ABILITY_WHITE_SMOKE] = 1, - [ABILITY_WONDER_GUARD] = 1, - [ABILITY_BIG_PECKS] = 1, - [ABILITY_CONTRARY] = 1, - [ABILITY_FRIEND_GUARD] = 1, - [ABILITY_HEAVY_METAL] = 1, - [ABILITY_LIGHT_METAL] = 1, - [ABILITY_MAGIC_BOUNCE] = 1, - [ABILITY_MULTISCALE] = 1, - [ABILITY_SAP_SIPPER] = 1, - [ABILITY_TELEPATHY] = 1, - [ABILITY_WONDER_SKIN] = 1, - [ABILITY_AROMA_VEIL] = 1, - [ABILITY_BULLETPROOF] = 1, - [ABILITY_FLOWER_VEIL] = 1, - [ABILITY_FUR_COAT] = 1, - [ABILITY_OVERCOAT] = 1, - [ABILITY_SWEET_VEIL] = 1, - [ABILITY_DAZZLING] = 1, - [ABILITY_DISGUISE] = 1, - [ABILITY_FLUFFY] = 1, - [ABILITY_QUEENLY_MAJESTY] = 1, - [ABILITY_WATER_BUBBLE] = 1, - [ABILITY_MIRROR_ARMOR] = 1, - [ABILITY_PUNK_ROCK] = 1, - [ABILITY_ICE_SCALES] = 1, - [ABILITY_ICE_FACE] = 1, - [ABILITY_PASTEL_VEIL] = 1, - [ABILITY_ARMOR_TAIL] = 1, - [ABILITY_EARTH_EATER] = 1, - [ABILITY_GOOD_AS_GOLD] = 1, - [ABILITY_PURIFYING_SALT] = 1, - [ABILITY_WELL_BAKED_BODY] = 1, - [ABILITY_MINDS_EYE] = 1, - [ABILITY_ILLUMINATE] = 1, -}; - -static const u8 sAbilitiesNotTraced[ABILITIES_COUNT] = -{ - [ABILITY_AS_ONE_ICE_RIDER] = 1, - [ABILITY_AS_ONE_SHADOW_RIDER] = 1, - [ABILITY_BATTLE_BOND] = 1, - [ABILITY_COMATOSE] = 1, - [ABILITY_DISGUISE] = 1, - [ABILITY_FLOWER_GIFT] = 1, - [ABILITY_FORECAST] = 1, - [ABILITY_GULP_MISSILE] = 1, - [ABILITY_HUNGER_SWITCH] = 1, - [ABILITY_ICE_FACE] = 1, - [ABILITY_ILLUSION] = 1, - [ABILITY_IMPOSTER] = 1, - [ABILITY_MULTITYPE] = 1, - [ABILITY_NEUTRALIZING_GAS] = 1, - [ABILITY_NONE] = 1, - [ABILITY_POWER_CONSTRUCT] = 1, - [ABILITY_POWER_OF_ALCHEMY] = 1, - [ABILITY_RECEIVER] = 1, - [ABILITY_RKS_SYSTEM] = 1, - [ABILITY_SCHOOLING] = 1, - [ABILITY_SHIELDS_DOWN] = 1, - [ABILITY_STANCE_CHANGE] = 1, - [ABILITY_TRACE] = 1, - [ABILITY_ZEN_MODE] = 1, - [ABILITY_ZERO_TO_HERO] = 1, -}; - static const u8 sHoldEffectToType[][2] = { {HOLD_EFFECT_BUG_POWER, TYPE_BUG}, @@ -5459,34 +5133,22 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED && IsMoveMakingContact(move, gBattlerAttacker) - && gBattleStruct->overwrittenAbilities[gBattlerAttacker] != GetBattlerAbility(gBattlerTarget)) + && gBattleStruct->overwrittenAbilities[gBattlerAttacker] != GetBattlerAbility(gBattlerTarget) + && gBattleMons[gBattlerTarget].ability != ABILITY_MUMMY + && gBattleMons[gBattlerTarget].ability != ABILITY_LINGERING_AROMA + && !gAbilities[gBattleMons[gBattlerTarget].ability].cantBeSuppressed) { - switch (gBattleMons[gBattlerAttacker].ability) + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { - case ABILITY_MUMMY: - case ABILITY_BATTLE_BOND: - case ABILITY_COMATOSE: - case ABILITY_DISGUISE: - case ABILITY_MULTITYPE: - case ABILITY_POWER_CONSTRUCT: - case ABILITY_RKS_SYSTEM: - case ABILITY_SCHOOLING: - case ABILITY_SHIELDS_DOWN: - case ABILITY_STANCE_CHANGE: - break; - default: - if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) - { - RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); - break; - } - - gLastUsedAbility = gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MummyActivates; - effect++; + RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } + + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MummyActivates; + effect++; + break; } break; case ABILITY_WANDERING_SPIRIT: @@ -5494,40 +5156,22 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED && IsMoveMakingContact(move, gBattlerAttacker) - && !IsDynamaxed(gBattlerTarget)) + && !IsDynamaxed(gBattlerTarget) + && !gAbilities[gBattleMons[gBattlerAttacker].ability].cantBeSwapped) { - switch (gBattleMons[gBattlerAttacker].ability) + if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { - case ABILITY_DISGUISE: - case ABILITY_FLOWER_GIFT: - case ABILITY_GULP_MISSILE: - case ABILITY_HUNGER_SWITCH: - case ABILITY_ICE_FACE: - case ABILITY_ILLUSION: - case ABILITY_IMPOSTER: - case ABILITY_RECEIVER: - case ABILITY_RKS_SYSTEM: - case ABILITY_SCHOOLING: - case ABILITY_STANCE_CHANGE: - case ABILITY_WONDER_GUARD: - case ABILITY_ZEN_MODE: - case ABILITY_ZERO_TO_HERO: - break; - default: - if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) - { - RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); - break; - } - - gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; - gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; - gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_WanderingSpiritActivates; - effect++; + RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } + + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_WanderingSpiritActivates; + effect++; + break; } break; case ABILITY_ANGER_POINT: @@ -6152,17 +5796,17 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (!sAbilitiesNotTraced[gBattleMons[target1].ability] && gBattleMons[target1].hp != 0 - && !sAbilitiesNotTraced[gBattleMons[target2].ability] && gBattleMons[target2].hp != 0) + if (!gAbilities[gBattleMons[target1].ability].cantBeTraced && gBattleMons[target1].hp != 0 + && !gAbilities[gBattleMons[target2].ability].cantBeTraced && gBattleMons[target2].hp != 0) chosenTarget = GetBattlerAtPosition((RandomPercentage(RNG_TRACE, 50) * 2) | side), effect++; - else if (!sAbilitiesNotTraced[gBattleMons[target1].ability] && gBattleMons[target1].hp != 0) + else if (!gAbilities[gBattleMons[target1].ability].cantBeTraced && gBattleMons[target1].hp != 0) chosenTarget = target1, effect++; - else if (!sAbilitiesNotTraced[gBattleMons[target2].ability] && gBattleMons[target2].hp != 0) + else if (!gAbilities[gBattleMons[target2].ability].cantBeTraced && gBattleMons[target2].hp != 0) chosenTarget = target2, effect++; } else { - if (!sAbilitiesNotTraced[gBattleMons[target1].ability] && gBattleMons[target1].hp != 0) + if (!gAbilities[gBattleMons[target1].ability].cantBeTraced && gBattleMons[target1].hp != 0) chosenTarget = target1, effect++; } @@ -6324,35 +5968,6 @@ bool32 TryPrimalReversion(u32 battler) return FALSE; } -static const u16 sNeutralizingGasBannedAbilities[] = -{ - ABILITY_AS_ONE_ICE_RIDER, - ABILITY_AS_ONE_SHADOW_RIDER, - ABILITY_COMATOSE, - ABILITY_DISGUISE, - ABILITY_GULP_MISSILE, - ABILITY_ICE_FACE, - ABILITY_MULTITYPE, - ABILITY_POWER_CONSTRUCT, - ABILITY_RKS_SYSTEM, - ABILITY_SCHOOLING, - ABILITY_SHIELDS_DOWN, - ABILITY_STANCE_CHANGE, - ABILITY_ZEN_MODE, - ABILITY_ZERO_TO_HERO, -}; - -bool32 IsNeutralizingGasBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sNeutralizingGasBannedAbilities); i++) - { - if (ability == sNeutralizingGasBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - bool32 IsNeutralizingGasOnField(void) { u32 i; @@ -6386,10 +6001,13 @@ bool32 IsMoldBreakerTypeAbility(u32 ability) u32 GetBattlerAbility(u32 battler) { + if (gAbilities[gBattleMons[battler].ability].cantBeSuppressed) + return gBattleMons[battler].ability; + if (gStatuses3[battler] & STATUS3_GASTRO_ACID) return ABILITY_NONE; - if (IsNeutralizingGasOnField() && !IsNeutralizingGasBannedAbility(gBattleMons[battler].ability)) + if (IsNeutralizingGasOnField() && gBattleMons[battler].ability != ABILITY_NEUTRALIZING_GAS) return ABILITY_NONE; if (IsMyceliumMightOnField()) @@ -6398,7 +6016,7 @@ u32 GetBattlerAbility(u32 battler) if (((IsMoldBreakerTypeAbility(gBattleMons[gBattlerAttacker].ability) && !(gStatuses3[gBattlerAttacker] & STATUS3_GASTRO_ACID)) || gBattleMoves[gCurrentMove].ignoresTargetAbility) - && sAbilitiesAffectedByMoldBreaker[gBattleMons[battler].ability] + && gAbilities[gBattleMons[battler].ability].breakable && gBattlerByTurnOrder[gCurrentTurnActionNumber] == gBattlerAttacker && gActionsByTurnOrder[gBattlerByTurnOrder[gBattlerAttacker]] == B_ACTION_USE_MOVE && gCurrentTurnActionNumber < gBattlersCount) @@ -10953,95 +10571,6 @@ bool32 CanFling(u32 battler) return TRUE; } -// Ability checks -bool32 IsSkillSwapBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sSkillSwapBannedAbilities); i++) - { - if (ability == sSkillSwapBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsRolePlayDoodleBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sRolePlayDoodleBannedAbilities); i++) - { - if (ability == sRolePlayDoodleBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsRolePlayDoodleBannedAbilityAttacker(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sRolePlayDoodleBannedAttackerAbilities); i++) - { - if (ability == sRolePlayDoodleBannedAttackerAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsWorrySeedBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sWorrySeedBannedAbilities); i++) - { - if (ability == sWorrySeedBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsGastroAcidBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sGastroAcidBannedAbilities); i++) - { - if (ability == sGastroAcidBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsEntrainmentBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sEntrainmentBannedAbilities); i++) - { - if (ability == sEntrainmentBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsEntrainmentBannedAbilityAttacker(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sEntrainmentBannedAttackerAbilities); i++) - { - if (ability == sEntrainmentBannedAttackerAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsSimpleBeamBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sSimpleBeamBannedAbilities); i++) - { - if (ability == sSimpleBeamBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - // Sort an array of battlers by speed // Useful for effects like pickpocket, eject button, red card, dancer void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast) diff --git a/src/data/abilities.h b/src/data/abilities.h index 56f7547b23..81bfc995a3 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -5,6 +5,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("-------"), .description = COMPOUND_STRING("No special ability."), .aiRating = 0, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_STENCH] = @@ -33,6 +35,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Battle Armor"), .description = COMPOUND_STRING("Blocks critical hits."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_STURDY] = @@ -40,6 +43,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Sturdy"), .description = COMPOUND_STRING("Negates 1-hit KO attacks."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_DAMP] = @@ -47,6 +51,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Damp"), .description = COMPOUND_STRING("Prevents self-destruction."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_LIMBER] = @@ -54,6 +59,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Limber"), .description = COMPOUND_STRING("Prevents paralysis."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_SAND_VEIL] = @@ -61,6 +67,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Sand Veil"), .description = COMPOUND_STRING("Ups evasion in a sandstorm."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_STATIC] = @@ -75,6 +82,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Volt Absorb"), .description = COMPOUND_STRING("Turns electricity into HP."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_WATER_ABSORB] = @@ -82,6 +90,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Water Absorb"), .description = COMPOUND_STRING("Changes water into HP."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_OBLIVIOUS] = @@ -89,6 +98,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Oblivious"), .description = COMPOUND_STRING("Prevents attraction."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_CLOUD_NINE] = @@ -114,6 +124,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Insomnia"), .description = COMPOUND_STRING("Prevents sleep."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_COLOR_CHANGE] = @@ -128,6 +139,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Immunity"), .description = COMPOUND_STRING("Prevents poisoning."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_FLASH_FIRE] = @@ -135,6 +147,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Flash Fire"), .description = COMPOUND_STRING("Powers up if hit by fire."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_SHIELD_DUST] = @@ -142,6 +155,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Shield Dust"), .description = COMPOUND_STRING("Prevents added effects."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_OWN_TEMPO] = @@ -149,6 +163,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Own Tempo"), .description = COMPOUND_STRING("Prevents confusion."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_SUCTION_CUPS] = @@ -156,6 +171,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Suction Cups"), .description = COMPOUND_STRING("Firmly anchors the body."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_INTIMIDATE] = @@ -184,6 +200,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Wonder Guard"), .description = COMPOUND_STRING("“Supereffective” hits."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .breakable = TRUE, }, [ABILITY_LEVITATE] = @@ -191,6 +210,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Levitate"), .description = COMPOUND_STRING("Not hit by Ground attacks."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_EFFECT_SPORE] = @@ -212,6 +232,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Clear Body"), .description = COMPOUND_STRING("Prevents ability reduction."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_NATURAL_CURE] = @@ -230,6 +251,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Draws electrical moves."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_SERENE_GRACE] = @@ -258,6 +280,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Illuminate"), .description = COMPOUND_STRING("Encounter rate increases."), .aiRating = 0, + .breakable = TRUE, }, [ABILITY_TRACE] = @@ -265,6 +288,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Trace"), .description = COMPOUND_STRING("Copies special ability."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_HUGE_POWER] = @@ -286,6 +311,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Inner Focus"), .description = COMPOUND_STRING("Prevents flinching."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_MAGMA_ARMOR] = @@ -293,6 +319,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Magma Armor"), .description = COMPOUND_STRING("Prevents freezing."), .aiRating = 1, + .breakable = TRUE, }, [ABILITY_WATER_VEIL] = @@ -300,6 +327,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Water Veil"), .description = COMPOUND_STRING("Prevents burns."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_MAGNET_PULL] = @@ -314,6 +342,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Soundproof"), .description = COMPOUND_STRING("Avoids sound-based moves."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_RAIN_DISH] = @@ -342,6 +371,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Thick Fat"), .description = COMPOUND_STRING("Heat-and-cold protection."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_EARLY_BIRD] = @@ -370,6 +400,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Keen Eye"), .description = COMPOUND_STRING("Prevents loss of accuracy."), .aiRating = 1, + .breakable = TRUE, }, [ABILITY_HYPER_CUTTER] = @@ -377,6 +408,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Hyper Cutter"), .description = COMPOUND_STRING("Prevents Attack reduction."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_PICKUP] = @@ -391,6 +423,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Truant"), .description = COMPOUND_STRING("Moves only every two turns."), .aiRating = -2, + .cantBeOverwritten = TRUE, }, [ABILITY_HUSTLE] = @@ -426,6 +459,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Forecast"), .description = COMPOUND_STRING("Changes with the weather."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_STICKY_HOLD] = @@ -433,6 +468,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Sticky Hold"), .description = COMPOUND_STRING("Prevents item theft."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_SHED_SKIN] = @@ -454,6 +490,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Marvel Scale"), .description = COMPOUND_STRING("Ups Defense if suffering."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_LIQUID_OOZE] = @@ -517,6 +554,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Vital Spirit"), .description = COMPOUND_STRING("Prevents sleep."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_WHITE_SMOKE] = @@ -524,6 +562,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("White Smoke"), .description = COMPOUND_STRING("Prevents ability reduction."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_PURE_POWER] = @@ -538,6 +577,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Shell Armor"), .description = COMPOUND_STRING("Blocks critical hits."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_AIR_LOCK] = @@ -552,6 +592,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Tangled Feet"), .description = COMPOUND_STRING("Ups evasion if confused."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_MOTOR_DRIVE] = @@ -559,6 +600,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Motor Drive"), .description = COMPOUND_STRING("Electricity raises Speed."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_RIVALRY] = @@ -580,6 +622,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Snow Cloak"), .description = COMPOUND_STRING("Ups evasion in Hail or Snow."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_GLUTTONY] = @@ -608,6 +651,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Heatproof"), .description = COMPOUND_STRING("Heat and burn protection."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_SIMPLE] = @@ -615,6 +659,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Simple"), .description = COMPOUND_STRING("Prone to wild stat changes."), .aiRating = 8, + .breakable = TRUE, }, [ABILITY_DRY_SKIN] = @@ -622,6 +667,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Dry Skin"), .description = COMPOUND_STRING("Prefers moisture to heat."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_DOWNLOAD] = @@ -727,6 +773,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Leaf Guard"), .description = COMPOUND_STRING("Blocks status in sunshine."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_KLUTZ] = @@ -776,6 +823,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Unaware"), .description = COMPOUND_STRING("Ignores stat changes."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_TINTED_LENS] = @@ -790,6 +838,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Filter"), .description = COMPOUND_STRING("Weakens “supereffective”."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_SLOW_START] = @@ -811,6 +860,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Storm Drain"), .description = COMPOUND_STRING("Draws in Water moves."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_ICE_BODY] = @@ -825,6 +875,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Solid Rock"), .description = COMPOUND_STRING("Weakens “supereffective”."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_SNOW_WARNING] = @@ -860,6 +911,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Multitype"), .description = COMPOUND_STRING("Changes type to its Plate."), .aiRating = 8, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_FLOWER_GIFT] = @@ -867,6 +923,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Flower Gift"), .description = COMPOUND_STRING("Allies power up in sunshine."), .aiRating = 4, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, + .breakable = TRUE, }, [ABILITY_BAD_DREAMS] = @@ -895,6 +954,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Contrary"), .description = COMPOUND_STRING("Inverts stat changes."), .aiRating = 8, + .breakable = TRUE, }, [ABILITY_UNNERVE] = @@ -937,6 +997,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Friend Guard"), .description = COMPOUND_STRING("Lowers damage to partner."), .aiRating = 0, + .breakable = TRUE, }, [ABILITY_WEAK_ARMOR] = @@ -951,6 +1012,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Heavy Metal"), .description = COMPOUND_STRING("Doubles weight."), .aiRating = -1, + .breakable = TRUE, }, [ABILITY_LIGHT_METAL] = @@ -958,6 +1020,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Light Metal"), .description = COMPOUND_STRING("Halves weight."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_MULTISCALE] = @@ -965,6 +1028,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Multiscale"), .description = COMPOUND_STRING("Halves damage at full HP."), .aiRating = 8, + .breakable = TRUE, }, [ABILITY_TOXIC_BOOST] = @@ -993,6 +1057,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Telepathy"), .description = COMPOUND_STRING("Can't be damaged by an ally."), .aiRating = 0, + .breakable = TRUE, }, [ABILITY_MOODY] = @@ -1007,6 +1072,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Overcoat"), .description = COMPOUND_STRING("Blocks weather and powder."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_POISON_TOUCH] = @@ -1028,6 +1094,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Big Pecks"), .description = COMPOUND_STRING("Prevents Defense loss."), .aiRating = 1, + .breakable = TRUE, }, [ABILITY_SAND_RUSH] = @@ -1042,6 +1109,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Wonder Skin"), .description = COMPOUND_STRING("May avoid status problems."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_ANALYTIC] = @@ -1056,6 +1124,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Illusion"), .description = COMPOUND_STRING("Appears as a partner."), .aiRating = 8, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_IMPOSTER] = @@ -1063,6 +1134,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Imposter"), .description = COMPOUND_STRING("Transforms into the foe."), .aiRating = 9, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_INFILTRATOR] = @@ -1105,6 +1178,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Magic Bounce"), .description = COMPOUND_STRING("Reflects status moves."), .aiRating = 9, + .breakable = TRUE, }, [ABILITY_SAP_SIPPER] = @@ -1112,6 +1186,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Sap Sipper"), .description = COMPOUND_STRING("Grass increases Attack."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_PRANKSTER] = @@ -1140,6 +1215,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Zen Mode"), .description = COMPOUND_STRING("Transforms at half HP."), .aiRating = -1, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = B_UPDATED_ABILITY_DATA >= GEN_7, }, [ABILITY_VICTORY_STAR] = @@ -1168,6 +1247,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Aroma Veil"), .description = COMPOUND_STRING("Prevents limiting of moves."), .aiRating = 3, + .breakable = TRUE, }, [ABILITY_FLOWER_VEIL] = @@ -1238,6 +1318,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Sweet Veil"), .description = COMPOUND_STRING("Prevents party from sleep."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_STANCE_CHANGE] = @@ -1249,6 +1330,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Transforms as it battles."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_GALE_WINGS] = @@ -1274,6 +1360,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Grass Pelt"), .description = COMPOUND_STRING("Ups Defense in grass."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_SYMBIOSIS] = @@ -1420,6 +1507,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Shields Down"), .description = COMPOUND_STRING("Shell breaks at half HP."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_STAKEOUT] = @@ -1497,6 +1589,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Schooling"), .description = COMPOUND_STRING("Forms a school when strong."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_DISGUISE] = @@ -1504,6 +1601,12 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Disguise"), .description = COMPOUND_STRING("Decoy protects it once."), .aiRating = 8, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_BATTLE_BOND] = @@ -1511,6 +1614,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Battle Bond"), .description = COMPOUND_STRING("Changes form after a KO."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_POWER_CONSTRUCT] = @@ -1522,6 +1630,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Cells aid it when weakened."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_CORROSION] = @@ -1536,6 +1649,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Comatose"), .description = COMPOUND_STRING("Always drowsing."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_QUEENLY_MAJESTY] = @@ -1547,6 +1665,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Protects from priority."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_INNARDS_OUT] = @@ -1575,6 +1694,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Fluffy"), .description = COMPOUND_STRING("Tougher but flammable."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_DAZZLING] = @@ -1582,6 +1702,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Dazzling"), .description = COMPOUND_STRING("Protects from priority."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_SOUL_HEART] = @@ -1607,6 +1728,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Receiver"), .description = COMPOUND_STRING("Copies ally's ability."), .aiRating = 0, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_POWER_OF_ALCHEMY] = @@ -1618,6 +1741,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Copies ally's ability."), .aiRating = 0, + .cantBeCopied = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_BEAST_BOOST] = @@ -1632,6 +1757,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("RKS System"), .description = COMPOUND_STRING("Memories change its type."), .aiRating = 8, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_ELECTRIC_SURGE] = @@ -1764,6 +1894,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Mirror Armor"), .description = COMPOUND_STRING("Reflect stat decreases."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_GULP_MISSILE] = @@ -1771,6 +1902,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Gulp Missile"), .description = COMPOUND_STRING("If hit, spits prey from sea."), .aiRating = 3, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_STALWART] = @@ -1792,6 +1926,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Punk Rock"), .description = COMPOUND_STRING("Ups and resists sound."), .aiRating = 2, + .breakable = TRUE, }, [ABILITY_SAND_SPIT] = @@ -1806,6 +1941,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Ice Scales"), .description = COMPOUND_STRING("Halves special damage."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_RIPEN] = @@ -1820,6 +1956,13 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Ice Face"), .description = COMPOUND_STRING("Hail or Snow renew free hit."), .aiRating = 4, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, + .breakable = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_POWER_SPOT] = @@ -1896,6 +2039,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("All Abilities are nullified."), .aiRating = 5, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_PASTEL_VEIL] = @@ -1903,6 +2050,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Pastel Veil"), .description = COMPOUND_STRING("Protects team from poison."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_HUNGER_SWITCH] = @@ -1914,6 +2062,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Changes form each turn."), .aiRating = 2, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_QUICK_DRAW] = @@ -1978,6 +2130,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("As One"), .description = COMPOUND_STRING("Unnerve and Chilling Neigh."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_AS_ONE_SHADOW_RIDER] = @@ -1985,6 +2142,11 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("As One"), .description = COMPOUND_STRING("Unnerve and Grim Neigh."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, }, [ABILITY_LINGERING_AROMA] = @@ -2014,6 +2176,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Fire hits up Attack."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_ANGER_SHELL] = @@ -2032,6 +2195,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Protected by pure salts."), .aiRating = 6, + .breakable = TRUE, }, [ABILITY_WELL_BAKED_BODY] = @@ -2043,6 +2207,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Strengthened by Fire."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_WIND_RIDER] = @@ -2050,6 +2215,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Wind Rider"), .description = COMPOUND_STRING("Ups Attack if hit by wind."), .aiRating = 4, + .breakable = TRUE, }, [ABILITY_GUARD_DOG] = @@ -2057,6 +2223,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Guard Dog"), .description = COMPOUND_STRING("Cannot be intimidated."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_ROCKY_PAYLOAD] = @@ -2082,6 +2249,12 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Zero to Hero"), .description = COMPOUND_STRING("Changes form on switch out."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_COMMANDER] = @@ -2089,6 +2262,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Commander"), .description = COMPOUND_STRING("Commands from Dondozo."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_ELECTROMORPHOSIS] = @@ -2111,6 +2287,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Sun boosts best stat."), .aiRating = 7, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_QUARK_DRIVE] = @@ -2118,6 +2298,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Quark Drive"), .description = COMPOUND_STRING("Elec. field ups best stat."), .aiRating = 7, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_GOOD_AS_GOLD] = @@ -2125,6 +2309,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Good as Gold"), .description = COMPOUND_STRING("Avoids status problems."), .aiRating = 8, + .breakable = TRUE, }, [ABILITY_VESSEL_OF_RUIN] = @@ -2136,6 +2321,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Lowers foes' sp. damage."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_SWORD_OF_RUIN] = @@ -2147,6 +2333,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Lowers foes' Defense."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_TABLETS_OF_RUIN] = @@ -2158,6 +2345,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Lowers foes' damage."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_BEADS_OF_RUIN] = @@ -2169,6 +2357,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Lowers foes' Sp. Defense."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_ORICHALCUM_PULSE] = @@ -2244,6 +2433,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Armor Tail"), .description = COMPOUND_STRING("Protects from priority."), .aiRating = 5, + .breakable = TRUE, }, [ABILITY_EARTH_EATER] = @@ -2251,6 +2441,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Earth Eater"), .description = COMPOUND_STRING("Eats ground to heal HP."), .aiRating = 7, + .breakable = TRUE, }, [ABILITY_MYCELIUM_MIGHT] = @@ -2276,6 +2467,7 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Mind's Eye"), .description = COMPOUND_STRING("Keen Eye and Scrappy."), .aiRating = 8, + .breakable = TRUE, }, [ABILITY_EMBODY_ASPECT_TEAL] = @@ -2287,6 +2479,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Raises Speed."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_EMBODY_ASPECT_HEARTHFLAME] = @@ -2298,6 +2494,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Raises Attack."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_EMBODY_ASPECT_WELLSPRING] = @@ -2309,6 +2509,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Raises Sp. Def."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_EMBODY_ASPECT_CORNERSTONE] = @@ -2320,6 +2524,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Raises Defense."), .aiRating = 6, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_TOXIC_CHAIN] = @@ -2345,6 +2553,12 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Tera Shift"), .description = COMPOUND_STRING("Terasteralizes upon entry."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .cantBeSuppressed = TRUE, + .cantBeOverwritten = TRUE, + .failsOnImposter = TRUE, }, [ABILITY_TERA_SHELL] = @@ -2352,6 +2566,10 @@ const struct Ability gAbilities[ABILITIES_COUNT] = .name = _("Tera Shell"), .description = COMPOUND_STRING("Resistant to types at full HP."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, + .breakable = TRUE, }, [ABILITY_TERAFORM_ZERO] = @@ -2363,6 +2581,9 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Removes weather and terrain."), .aiRating = 10, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, }, [ABILITY_POISON_PUPPETEER] = @@ -2374,5 +2595,8 @@ const struct Ability gAbilities[ABILITIES_COUNT] = #endif .description = COMPOUND_STRING("Confuses poisoned foes."), .aiRating = 8, + .cantBeCopied = TRUE, + .cantBeSwapped = TRUE, + .cantBeTraced = TRUE, }, }; diff --git a/test/battle/move_effect/doodle.c b/test/battle/move_effect/doodle.c index 8a7144b430..23671b3846 100644 --- a/test/battle/move_effect/doodle.c +++ b/test/battle/move_effect/doodle.c @@ -49,7 +49,7 @@ DOUBLE_BATTLE_TEST("Doodle can't copy a banned ability") DOUBLE_BATTLE_TEST("Doodle fails if user has a banned Ability") { GIVEN { - PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); } + PLAYER(SPECIES_CRAMORANT) { Ability(ABILITY_GULP_MISSILE); } PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); } OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } OPPONENT(SPECIES_WOBBUFFET); @@ -59,7 +59,7 @@ DOUBLE_BATTLE_TEST("Doodle fails if user has a banned Ability") ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); MESSAGE("But it failed!"); } THEN { - EXPECT(playerLeft->ability == ABILITY_PROTOSYNTHESIS); + EXPECT(playerLeft->ability == ABILITY_GULP_MISSILE); EXPECT(playerRight->ability == ABILITY_SHADOW_TAG); } } @@ -68,7 +68,7 @@ DOUBLE_BATTLE_TEST("Doodle fails if partner has a banned Ability") { GIVEN { PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); } - PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); } + PLAYER(SPECIES_CRAMORANT) { Ability(ABILITY_GULP_MISSILE); } OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -78,6 +78,6 @@ DOUBLE_BATTLE_TEST("Doodle fails if partner has a banned Ability") MESSAGE("But it failed!"); } THEN { EXPECT(playerLeft->ability == ABILITY_SHADOW_TAG); - EXPECT(playerRight->ability == ABILITY_PROTOSYNTHESIS); + EXPECT(playerRight->ability == ABILITY_GULP_MISSILE); } } From 7aaefe72fb4938ea12b5f7797fefe7356f571daa Mon Sep 17 00:00:00 2001 From: Nephrite Date: Mon, 1 Jan 2024 18:58:29 +0000 Subject: [PATCH 4/6] Receiver/Power of Alchemy (#3889) --- src/battle_script_commands.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6cc177769f..ab9a544c34 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9210,28 +9210,14 @@ static void Cmd_various(void) i = GetBattlerAbility(gBattlerAbility); if (IsBattlerAlive(gBattlerAbility) && (i == ABILITY_RECEIVER || i == ABILITY_POWER_OF_ALCHEMY) - && GetBattlerHoldEffect(battler, TRUE) != HOLD_EFFECT_ABILITY_SHIELD) + && GetBattlerHoldEffect(battler, TRUE) != HOLD_EFFECT_ABILITY_SHIELD + && !gAbilities[gBattleMons[battler].ability].cantBeCopied) { - switch (gBattleMons[battler].ability) - { // Can't copy these abilities. - case ABILITY_POWER_OF_ALCHEMY: case ABILITY_RECEIVER: - case ABILITY_FORECAST: case ABILITY_MULTITYPE: - case ABILITY_FLOWER_GIFT: case ABILITY_ILLUSION: - case ABILITY_WONDER_GUARD: case ABILITY_ZEN_MODE: - case ABILITY_STANCE_CHANGE: case ABILITY_IMPOSTER: - case ABILITY_POWER_CONSTRUCT: case ABILITY_BATTLE_BOND: - case ABILITY_SCHOOLING: case ABILITY_COMATOSE: - case ABILITY_SHIELDS_DOWN: case ABILITY_DISGUISE: - case ABILITY_RKS_SYSTEM: case ABILITY_TRACE: - case ABILITY_ZERO_TO_HERO: - break; - default: - gBattleStruct->tracedAbility[gBattlerAbility] = gBattleMons[battler].ability; // re-using the variable for trace - gBattleScripting.battler = battler; - BattleScriptPush(cmd->nextInstr); - gBattlescriptCurrInstr = BattleScript_ReceiverActivates; - return; - } + gBattleStruct->tracedAbility[gBattlerAbility] = gBattleMons[battler].ability; // re-using the variable for trace + gBattleScripting.battler = battler; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = BattleScript_ReceiverActivates; + return; } break; } From 3c21e23555195f5f8643eb95578aae30c885a06f Mon Sep 17 00:00:00 2001 From: aronson Date: Tue, 2 Jan 2024 08:24:52 -0600 Subject: [PATCH 5/6] Allocate initialized sections for EWRAM and IWRAM (#3892) --- Makefile | 2 +- include/crt0.h | 2 ++ include/gba/defines.h | 6 +++-- ld_script.ld | 38 ++++++++++++++++++++++++--- ld_script_modern.ld | 44 ++++++++++++++++++++++++++----- ld_script_test.ld | 41 +++++++++++++++++++++++++---- src/crt0.s | 61 +++++++++++++++++++++++++++++++++++++++++-- src/main.c | 5 ---- src/reload_save.c | 2 ++ 9 files changed, 175 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index d899015225..ea7adb0e66 100644 --- a/Makefile +++ b/Makefile @@ -473,7 +473,7 @@ endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld -LDFLAGS = -Map ../../$(MAP) +LDFLAGS = -Map ../../$(MAP) --no-warn-rwx-segments $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat diff --git a/include/crt0.h b/include/crt0.h index a4a5c7f79b..c60ed3b0b7 100644 --- a/include/crt0.h +++ b/include/crt0.h @@ -3,4 +3,6 @@ extern u32 IntrMain[]; +extern void ReInitializeEWRAM(); + #endif //GUARD_CRT0_H diff --git a/include/gba/defines.h b/include/gba/defines.h index fbe0a60706..65dfc5e855 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -6,8 +6,10 @@ #define TRUE 1 #define FALSE 0 -#define IWRAM_DATA __attribute__((section("iwram_data"))) -#define EWRAM_DATA __attribute__((section("ewram_data"))) +#define IWRAM_DATA __attribute__((section(".bss"))) +#define EWRAM_DATA __attribute__((section(".sbss"))) +#define IWRAM_INIT __attribute__((section(".iwram"))) +#define EWRAM_INIT __attribute__((section(".ewram"))) #define UNUSED __attribute__((unused)) #if MODERN diff --git a/ld_script.ld b/ld_script.ld index 642480d35d..e9cbae8957 100644 --- a/ld_script.ld +++ b/ld_script.ld @@ -13,19 +13,35 @@ MEMORY SECTIONS { - ewram 0x2000000 (NOLOAD) : + .ewram ORIGIN(EWRAM) : AT (__ewram_lma) + ALIGN(4) + { + __ewram_start = .; + *(.ewram*) + __ewram_end = .; + } > EWRAM + + .ewram.sbss (NOLOAD) : ALIGN(4) { INCLUDE "sym_ewram.ld" - src/*.o(ewram_data); - gflib/*.o(ewram_data); + src/*.o(.sbss); + gflib/*.o(.sbss); *libc.a:impure.o(.data); *libc.a:locale.o(.data); *libc.a:mallocr.o(.data); } > EWRAM - iwram 0x3000000 (NOLOAD) : + .iwram ORIGIN(IWRAM) : AT (__iwram_lma) + ALIGN(4) + { + __iwram_start = .; + *(.iwram*); + __iwram_end = .; + } > IWRAM + + .iwram.bss (NOLOAD) : ALIGN(4) { /* .bss starts at 0x3000000 */ @@ -1324,6 +1340,20 @@ SECTIONS { data/*.o(.rodata); } > ROM = 0 + .data.iwram : + ALIGN(4) + { + __iwram_lma = .; + . = . + (__iwram_end - __iwram_start); + } > ROM = 0 + + .data.ewram : + ALIGN(4) + { + __ewram_lma = .; + . = . + (__ewram_end - __ewram_start); + } > ROM = 0 + __rom_end = .; /* DWARF debug sections. diff --git a/ld_script_modern.ld b/ld_script_modern.ld index f3bf7b6798..fd35a1ca31 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -12,15 +12,32 @@ MEMORY } SECTIONS { - ewram 0x2000000 (NOLOAD) : + + + .ewram ORIGIN(EWRAM) : AT (__ewram_lma) ALIGN(4) { - src/*.o(ewram_data); - gflib/*.o(ewram_data); - + __ewram_start = .; + *(.ewram*) + __ewram_end = .; } > EWRAM - iwram 0x3000000 (NOLOAD) : + .ewram.sbss (NOLOAD) : + ALIGN(4) + { + src/*.o(.sbss); + gflib/*.o(.sbss); + } > EWRAM + + .iwram ORIGIN(IWRAM) : AT (__iwram_lma) + ALIGN(4) + { + __iwram_start = .; + *(.iwram*); + __iwram_end = .; + } > IWRAM + + .iwram.bss (NOLOAD) : ALIGN(4) { src/*.o(.bss); @@ -38,9 +55,8 @@ SECTIONS { } > IWRAM /* BEGIN ROM DATA */ - . = 0x8000000; - .text : + .text ORIGIN(ROM) : ALIGN(4) { src/rom_header.o(.text*); @@ -125,6 +141,20 @@ SECTIONS { src/graphics.o(.rodata); } > ROM =0 + .data.iwram : + ALIGN(4) + { + __iwram_lma = .; + . = . + (__iwram_end - __iwram_start); + } > ROM = 0 + + .data.ewram : + ALIGN(4) + { + __ewram_lma = .; + . = . + (__ewram_end - __ewram_start); + } > ROM = 0 + __rom_end = .; /* DWARF debug sections. diff --git a/ld_script_test.ld b/ld_script_test.ld index 49a0ec35b0..ec99609a7e 100644 --- a/ld_script_test.ld +++ b/ld_script_test.ld @@ -12,15 +12,32 @@ MEMORY } SECTIONS { - ewram 0x2000000 (NOLOAD) : + + .ewram ORIGIN(EWRAM) : AT (__ewram_lma) ALIGN(4) { - src/*.o(ewram_data); - gflib/*.o(ewram_data); - test/*.o(ewram_data); + __ewram_start = .; + *(.ewram*) + __ewram_end = .; } > EWRAM - iwram 0x3000000 (NOLOAD) : + .ewram.sbss (NOLOAD) : + ALIGN(4) + { + src/*.o(.sbss); + gflib/*.o(.sbss); + test/*.o(.sbss); + } > EWRAM + + .iwram ORIGIN(IWRAM) : AT (__iwram_lma) + ALIGN(4) + { + __iwram_start = .; + *(.iwram*); + __iwram_end = .; + } > IWRAM + + .iwram.sbss (NOLOAD) : ALIGN(4) { src/*.o(.bss); @@ -97,6 +114,20 @@ SECTIONS { src/libisagbprn.o(.rodata); } > ROM =0 + .data.iwram : + ALIGN(4) + { + __iwram_lma = .; + . = . + (__iwram_end - __iwram_start); + } > ROM = 0 + + .data.ewram : + ALIGN(4) + { + __ewram_lma = .; + . = . + (__ewram_end - __ewram_start); + } > ROM = 0 + tests : ALIGN(4) { diff --git a/src/crt0.s b/src/crt0.s index 5808147220..af6ea0bc95 100644 --- a/src/crt0.s +++ b/src/crt0.s @@ -6,22 +6,28 @@ .align 2, 0 Init:: +@ Set up location for IRQ stack mov r0, #PSR_IRQ_MODE msr cpsr_cf, r0 ldr sp, sp_irq +@ Set up location for system stack mov r0, #PSR_SYS_MODE msr cpsr_cf, r0 ldr sp, sp_sys +@ Prepare for interrupt handling ldr r1, =INTR_VECTOR adr r0, IntrMain str r0, [r1] - .if MODERN +@ Dispatch memory reset request to hardware mov r0, #255 @ RESET_ALL svc #1 << 16 - .endif @ MODERN +@ Fill RAM areas with appropriate data + bl InitializeWorkingMemory +@ Jump to AgbMain ldr r1, =AgbMain + 1 mov lr, pc bx r1 +@ Re-init if AgbMain exits b Init .align 2, 0 @@ -124,3 +130,54 @@ IntrMain_RetAddr: .pool .align 2, 0 @ Don't pad with nop. + +@ Fills initialized IWRAM and EWRAM sections in RAM from LMA areas in ROM +InitializeWorkingMemory: + push {r0-r3,lr} + ldr r0, =__iwram_lma + ldr r1, =__iwram_start + ldr r2, =__iwram_end + cmp r1, r2 + beq skip_iwram_copy + bl CopyMemory_DMA +skip_iwram_copy: + ldr r0, =__ewram_lma + ldr r1, =__ewram_start + ldr r2, =__ewram_end + cmp r1, r2 + beq skip_ewram_copy + bl CopyMemory_DMA +skip_ewram_copy: + pop {r0-r3,lr} + bx lr + +@ Uses a DMA transfer to load from r0 into r1 until r2 +CopyMemory_DMA: + subs r2, r2, r1 + lsr r2, r2, #2 + mov r4, #0x80000000 + orr r4, r4, #(1 << 26) + orr r2, r2, r4 + ldr r3, =REG_DMA3 + stmia r3, {r0, r1, r2} + bx lr + +.thumb +@ Called from C code to reinitialize working memory after a link connection failure +ReInitializeEWRAM:: + ldr r0, =__ewram_lma + ldr r1, =__ewram_start + ldr r2, =__ewram_end + cmp r1, r2 + beq EndReinitializeEWRAM + subs r2, r1 + movs r3, #1 + lsls r3, r3, #26 + orrs r2, r2, r3 + swi 0x0B +EndReinitializeEWRAM: + bx lr + + .pool + + .align 2, 0 @ Don't pad with nop. diff --git a/src/main.c b/src/main.c index 54d25c1c10..b7d10cabcd 100644 --- a/src/main.c +++ b/src/main.c @@ -93,11 +93,6 @@ void EnableVCountIntrAtLine150(void); void AgbMain() { - // Modern compilers are liberal with the stack on entry to this function, - // so RegisterRamReset may crash if it resets IWRAM. -#if !MODERN - RegisterRamReset(RESET_ALL); -#endif //MODERN *(vu16 *)BG_PLTT = RGB_WHITE; // Set the backdrop to white on startup InitGpuRegManager(); REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; diff --git a/src/reload_save.c b/src/reload_save.c index 5425d1c7c4..f6104c1db7 100644 --- a/src/reload_save.c +++ b/src/reload_save.c @@ -1,5 +1,6 @@ #include "global.h" #include "main.h" +#include "crt0.h" #include "gpu_regs.h" #include "m4a.h" #include "load_save.h" @@ -15,6 +16,7 @@ void ReloadSave(void) u16 imeBackup = REG_IME; REG_IME = 0; RegisterRamReset(RESET_EWRAM); + ReInitializeEWRAM(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_FORCED_BLANK); REG_IME = imeBackup; gMain.inBattle = FALSE; From 9f09309e0c7e36de020950e11796bdd2f05f06b4 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Tue, 2 Jan 2024 23:29:46 +0100 Subject: [PATCH 6/6] Remove comment from pokemon_icon.c (#3896) --- src/pokemon_icon.c | 1468 -------------------------------------------- 1 file changed, 1468 deletions(-) diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 89d7d545b8..950613dccc 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -22,1474 +22,6 @@ struct MonIconSpriteTemplate static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); static void FreeAndDestroyMonIconSprite_(struct Sprite *sprite); -// Kept this commented out table to keep PoryMap compatibility. -/* -const u8 *const gMonIconTable[NUM_SPECIES + 1] = -{ - [SPECIES_NONE] = gMonIcon_QuestionMark, - [SPECIES_BULBASAUR] = gMonIcon_Bulbasaur, - [SPECIES_IVYSAUR] = gMonIcon_Ivysaur, - [SPECIES_VENUSAUR] = gMonIcon_Venusaur, - [SPECIES_CHARMANDER] = gMonIcon_Charmander, - [SPECIES_CHARMELEON] = gMonIcon_Charmeleon, - [SPECIES_CHARIZARD] = gMonIcon_Charizard, - [SPECIES_SQUIRTLE] = gMonIcon_Squirtle, - [SPECIES_WARTORTLE] = gMonIcon_Wartortle, - [SPECIES_BLASTOISE] = gMonIcon_Blastoise, - [SPECIES_CATERPIE] = gMonIcon_Caterpie, - [SPECIES_METAPOD] = gMonIcon_Metapod, - [SPECIES_BUTTERFREE] = gMonIcon_Butterfree, - [SPECIES_WEEDLE] = gMonIcon_Weedle, - [SPECIES_KAKUNA] = gMonIcon_Kakuna, - [SPECIES_BEEDRILL] = gMonIcon_Beedrill, - [SPECIES_PIDGEY] = gMonIcon_Pidgey, - [SPECIES_PIDGEOTTO] = gMonIcon_Pidgeotto, - [SPECIES_PIDGEOT] = gMonIcon_Pidgeot, - [SPECIES_RATTATA] = gMonIcon_Rattata, - [SPECIES_RATICATE] = gMonIcon_Raticate, - [SPECIES_SPEAROW] = gMonIcon_Spearow, - [SPECIES_FEAROW] = gMonIcon_Fearow, - [SPECIES_EKANS] = gMonIcon_Ekans, - [SPECIES_ARBOK] = gMonIcon_Arbok, - [SPECIES_PIKACHU] = gMonIcon_Pikachu, - [SPECIES_RAICHU] = gMonIcon_Raichu, - [SPECIES_SANDSHREW] = gMonIcon_Sandshrew, - [SPECIES_SANDSLASH] = gMonIcon_Sandslash, - [SPECIES_NIDORAN_F] = gMonIcon_NidoranF, - [SPECIES_NIDORINA] = gMonIcon_Nidorina, - [SPECIES_NIDOQUEEN] = gMonIcon_Nidoqueen, - [SPECIES_NIDORAN_M] = gMonIcon_NidoranM, - [SPECIES_NIDORINO] = gMonIcon_Nidorino, - [SPECIES_NIDOKING] = gMonIcon_Nidoking, - [SPECIES_CLEFAIRY] = gMonIcon_Clefairy, - [SPECIES_CLEFABLE] = gMonIcon_Clefable, - [SPECIES_VULPIX] = gMonIcon_Vulpix, - [SPECIES_NINETALES] = gMonIcon_Ninetales, - [SPECIES_JIGGLYPUFF] = gMonIcon_Jigglypuff, - [SPECIES_WIGGLYTUFF] = gMonIcon_Wigglytuff, - [SPECIES_ZUBAT] = gMonIcon_Zubat, - [SPECIES_GOLBAT] = gMonIcon_Golbat, - [SPECIES_ODDISH] = gMonIcon_Oddish, - [SPECIES_GLOOM] = gMonIcon_Gloom, - [SPECIES_VILEPLUME] = gMonIcon_Vileplume, - [SPECIES_PARAS] = gMonIcon_Paras, - [SPECIES_PARASECT] = gMonIcon_Parasect, - [SPECIES_VENONAT] = gMonIcon_Venonat, - [SPECIES_VENOMOTH] = gMonIcon_Venomoth, - [SPECIES_DIGLETT] = gMonIcon_Diglett, - [SPECIES_DUGTRIO] = gMonIcon_Dugtrio, - [SPECIES_MEOWTH] = gMonIcon_Meowth, - [SPECIES_PERSIAN] = gMonIcon_Persian, - [SPECIES_PSYDUCK] = gMonIcon_Psyduck, - [SPECIES_GOLDUCK] = gMonIcon_Golduck, - [SPECIES_MANKEY] = gMonIcon_Mankey, - [SPECIES_PRIMEAPE] = gMonIcon_Primeape, - [SPECIES_GROWLITHE] = gMonIcon_Growlithe, - [SPECIES_ARCANINE] = gMonIcon_Arcanine, - [SPECIES_POLIWAG] = gMonIcon_Poliwag, - [SPECIES_POLIWHIRL] = gMonIcon_Poliwhirl, - [SPECIES_POLIWRATH] = gMonIcon_Poliwrath, - [SPECIES_ABRA] = gMonIcon_Abra, - [SPECIES_KADABRA] = gMonIcon_Kadabra, - [SPECIES_ALAKAZAM] = gMonIcon_Alakazam, - [SPECIES_MACHOP] = gMonIcon_Machop, - [SPECIES_MACHOKE] = gMonIcon_Machoke, - [SPECIES_MACHAMP] = gMonIcon_Machamp, - [SPECIES_BELLSPROUT] = gMonIcon_Bellsprout, - [SPECIES_WEEPINBELL] = gMonIcon_Weepinbell, - [SPECIES_VICTREEBEL] = gMonIcon_Victreebel, - [SPECIES_TENTACOOL] = gMonIcon_Tentacool, - [SPECIES_TENTACRUEL] = gMonIcon_Tentacruel, - [SPECIES_GEODUDE] = gMonIcon_Geodude, - [SPECIES_GRAVELER] = gMonIcon_Graveler, - [SPECIES_GOLEM] = gMonIcon_Golem, - [SPECIES_PONYTA] = gMonIcon_Ponyta, - [SPECIES_RAPIDASH] = gMonIcon_Rapidash, - [SPECIES_SLOWPOKE] = gMonIcon_Slowpoke, - [SPECIES_SLOWBRO] = gMonIcon_Slowbro, - [SPECIES_MAGNEMITE] = gMonIcon_Magnemite, - [SPECIES_MAGNETON] = gMonIcon_Magneton, - [SPECIES_FARFETCHD] = gMonIcon_Farfetchd, - [SPECIES_DODUO] = gMonIcon_Doduo, - [SPECIES_DODRIO] = gMonIcon_Dodrio, - [SPECIES_SEEL] = gMonIcon_Seel, - [SPECIES_DEWGONG] = gMonIcon_Dewgong, - [SPECIES_GRIMER] = gMonIcon_Grimer, - [SPECIES_MUK] = gMonIcon_Muk, - [SPECIES_SHELLDER] = gMonIcon_Shellder, - [SPECIES_CLOYSTER] = gMonIcon_Cloyster, - [SPECIES_GASTLY] = gMonIcon_Gastly, - [SPECIES_HAUNTER] = gMonIcon_Haunter, - [SPECIES_GENGAR] = gMonIcon_Gengar, - [SPECIES_ONIX] = gMonIcon_Onix, - [SPECIES_DROWZEE] = gMonIcon_Drowzee, - [SPECIES_HYPNO] = gMonIcon_Hypno, - [SPECIES_KRABBY] = gMonIcon_Krabby, - [SPECIES_KINGLER] = gMonIcon_Kingler, - [SPECIES_VOLTORB] = gMonIcon_Voltorb, - [SPECIES_ELECTRODE] = gMonIcon_Electrode, - [SPECIES_EXEGGCUTE] = gMonIcon_Exeggcute, - [SPECIES_EXEGGUTOR] = gMonIcon_Exeggutor, - [SPECIES_CUBONE] = gMonIcon_Cubone, - [SPECIES_MAROWAK] = gMonIcon_Marowak, - [SPECIES_HITMONLEE] = gMonIcon_Hitmonlee, - [SPECIES_HITMONCHAN] = gMonIcon_Hitmonchan, - [SPECIES_LICKITUNG] = gMonIcon_Lickitung, - [SPECIES_KOFFING] = gMonIcon_Koffing, - [SPECIES_WEEZING] = gMonIcon_Weezing, - [SPECIES_RHYHORN] = gMonIcon_Rhyhorn, - [SPECIES_RHYDON] = gMonIcon_Rhydon, - [SPECIES_CHANSEY] = gMonIcon_Chansey, - [SPECIES_TANGELA] = gMonIcon_Tangela, - [SPECIES_KANGASKHAN] = gMonIcon_Kangaskhan, - [SPECIES_HORSEA] = gMonIcon_Horsea, - [SPECIES_SEADRA] = gMonIcon_Seadra, - [SPECIES_GOLDEEN] = gMonIcon_Goldeen, - [SPECIES_SEAKING] = gMonIcon_Seaking, - [SPECIES_STARYU] = gMonIcon_Staryu, - [SPECIES_STARMIE] = gMonIcon_Starmie, - [SPECIES_MR_MIME] = gMonIcon_MrMime, - [SPECIES_SCYTHER] = gMonIcon_Scyther, - [SPECIES_JYNX] = gMonIcon_Jynx, - [SPECIES_ELECTABUZZ] = gMonIcon_Electabuzz, - [SPECIES_MAGMAR] = gMonIcon_Magmar, - [SPECIES_PINSIR] = gMonIcon_Pinsir, - [SPECIES_TAUROS] = gMonIcon_Tauros, - [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = gMonIcon_TaurosPaldeanCombatBreed, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = gMonIcon_TaurosPaldeanBlazeBreed, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = gMonIcon_TaurosPaldeanAquaBreed, - [SPECIES_MAGIKARP] = gMonIcon_Magikarp, - [SPECIES_GYARADOS] = gMonIcon_Gyarados, - [SPECIES_LAPRAS] = gMonIcon_Lapras, - [SPECIES_DITTO] = gMonIcon_Ditto, - [SPECIES_EEVEE] = gMonIcon_Eevee, - [SPECIES_VAPOREON] = gMonIcon_Vaporeon, - [SPECIES_JOLTEON] = gMonIcon_Jolteon, - [SPECIES_FLAREON] = gMonIcon_Flareon, - [SPECIES_PORYGON] = gMonIcon_Porygon, - [SPECIES_OMANYTE] = gMonIcon_Omanyte, - [SPECIES_OMASTAR] = gMonIcon_Omastar, - [SPECIES_KABUTO] = gMonIcon_Kabuto, - [SPECIES_KABUTOPS] = gMonIcon_Kabutops, - [SPECIES_AERODACTYL] = gMonIcon_Aerodactyl, - [SPECIES_SNORLAX] = gMonIcon_Snorlax, - [SPECIES_ARTICUNO] = gMonIcon_Articuno, - [SPECIES_ZAPDOS] = gMonIcon_Zapdos, - [SPECIES_MOLTRES] = gMonIcon_Moltres, - [SPECIES_DRATINI] = gMonIcon_Dratini, - [SPECIES_DRAGONAIR] = gMonIcon_Dragonair, - [SPECIES_DRAGONITE] = gMonIcon_Dragonite, - [SPECIES_MEWTWO] = gMonIcon_Mewtwo, - [SPECIES_MEW] = gMonIcon_Mew, - [SPECIES_CHIKORITA] = gMonIcon_Chikorita, - [SPECIES_BAYLEEF] = gMonIcon_Bayleef, - [SPECIES_MEGANIUM] = gMonIcon_Meganium, - [SPECIES_CYNDAQUIL] = gMonIcon_Cyndaquil, - [SPECIES_QUILAVA] = gMonIcon_Quilava, - [SPECIES_TYPHLOSION] = gMonIcon_Typhlosion, - [SPECIES_TOTODILE] = gMonIcon_Totodile, - [SPECIES_CROCONAW] = gMonIcon_Croconaw, - [SPECIES_FERALIGATR] = gMonIcon_Feraligatr, - [SPECIES_SENTRET] = gMonIcon_Sentret, - [SPECIES_FURRET] = gMonIcon_Furret, - [SPECIES_HOOTHOOT] = gMonIcon_Hoothoot, - [SPECIES_NOCTOWL] = gMonIcon_Noctowl, - [SPECIES_LEDYBA] = gMonIcon_Ledyba, - [SPECIES_LEDIAN] = gMonIcon_Ledian, - [SPECIES_SPINARAK] = gMonIcon_Spinarak, - [SPECIES_ARIADOS] = gMonIcon_Ariados, - [SPECIES_CROBAT] = gMonIcon_Crobat, - [SPECIES_CHINCHOU] = gMonIcon_Chinchou, - [SPECIES_LANTURN] = gMonIcon_Lanturn, - [SPECIES_PICHU] = gMonIcon_Pichu, - [SPECIES_CLEFFA] = gMonIcon_Cleffa, - [SPECIES_IGGLYBUFF] = gMonIcon_Igglybuff, - [SPECIES_TOGEPI] = gMonIcon_Togepi, - [SPECIES_TOGETIC] = gMonIcon_Togetic, - [SPECIES_NATU] = gMonIcon_Natu, - [SPECIES_XATU] = gMonIcon_Xatu, - [SPECIES_MAREEP] = gMonIcon_Mareep, - [SPECIES_FLAAFFY] = gMonIcon_Flaaffy, - [SPECIES_AMPHAROS] = gMonIcon_Ampharos, - [SPECIES_BELLOSSOM] = gMonIcon_Bellossom, - [SPECIES_MARILL] = gMonIcon_Marill, - [SPECIES_AZUMARILL] = gMonIcon_Azumarill, - [SPECIES_SUDOWOODO] = gMonIcon_Sudowoodo, - [SPECIES_POLITOED] = gMonIcon_Politoed, - [SPECIES_HOPPIP] = gMonIcon_Hoppip, - [SPECIES_SKIPLOOM] = gMonIcon_Skiploom, - [SPECIES_JUMPLUFF] = gMonIcon_Jumpluff, - [SPECIES_AIPOM] = gMonIcon_Aipom, - [SPECIES_SUNKERN] = gMonIcon_Sunkern, - [SPECIES_SUNFLORA] = gMonIcon_Sunflora, - [SPECIES_YANMA] = gMonIcon_Yanma, - [SPECIES_WOOPER] = gMonIcon_Wooper, - //[SPECIES_WOOPER_PALDEAN] = gMonIcon_WooperPaldean, - [SPECIES_QUAGSIRE] = gMonIcon_Quagsire, - [SPECIES_ESPEON] = gMonIcon_Espeon, - [SPECIES_UMBREON] = gMonIcon_Umbreon, - [SPECIES_MURKROW] = gMonIcon_Murkrow, - [SPECIES_SLOWKING] = gMonIcon_Slowking, - [SPECIES_MISDREAVUS] = gMonIcon_Misdreavus, - [SPECIES_UNOWN] = gMonIcon_UnownA, - [SPECIES_WOBBUFFET] = gMonIcon_Wobbuffet, - [SPECIES_GIRAFARIG] = gMonIcon_Girafarig, - [SPECIES_PINECO] = gMonIcon_Pineco, - [SPECIES_FORRETRESS] = gMonIcon_Forretress, - [SPECIES_DUNSPARCE] = gMonIcon_Dunsparce, - [SPECIES_GLIGAR] = gMonIcon_Gligar, - [SPECIES_STEELIX] = gMonIcon_Steelix, - [SPECIES_SNUBBULL] = gMonIcon_Snubbull, - [SPECIES_GRANBULL] = gMonIcon_Granbull, - [SPECIES_QWILFISH] = gMonIcon_Qwilfish, - [SPECIES_SCIZOR] = gMonIcon_Scizor, - [SPECIES_SHUCKLE] = gMonIcon_Shuckle, - [SPECIES_HERACROSS] = gMonIcon_Heracross, - [SPECIES_SNEASEL] = gMonIcon_Sneasel, - [SPECIES_TEDDIURSA] = gMonIcon_Teddiursa, - [SPECIES_URSARING] = gMonIcon_Ursaring, - [SPECIES_SLUGMA] = gMonIcon_Slugma, - [SPECIES_MAGCARGO] = gMonIcon_Magcargo, - [SPECIES_SWINUB] = gMonIcon_Swinub, - [SPECIES_PILOSWINE] = gMonIcon_Piloswine, - [SPECIES_CORSOLA] = gMonIcon_Corsola, - [SPECIES_REMORAID] = gMonIcon_Remoraid, - [SPECIES_OCTILLERY] = gMonIcon_Octillery, - [SPECIES_DELIBIRD] = gMonIcon_Delibird, - [SPECIES_MANTINE] = gMonIcon_Mantine, - [SPECIES_SKARMORY] = gMonIcon_Skarmory, - [SPECIES_HOUNDOUR] = gMonIcon_Houndour, - [SPECIES_HOUNDOOM] = gMonIcon_Houndoom, - [SPECIES_KINGDRA] = gMonIcon_Kingdra, - [SPECIES_PHANPY] = gMonIcon_Phanpy, - [SPECIES_DONPHAN] = gMonIcon_Donphan, - [SPECIES_PORYGON2] = gMonIcon_Porygon2, - [SPECIES_STANTLER] = gMonIcon_Stantler, - [SPECIES_SMEARGLE] = gMonIcon_Smeargle, - [SPECIES_TYROGUE] = gMonIcon_Tyrogue, - [SPECIES_HITMONTOP] = gMonIcon_Hitmontop, - [SPECIES_SMOOCHUM] = gMonIcon_Smoochum, - [SPECIES_ELEKID] = gMonIcon_Elekid, - [SPECIES_MAGBY] = gMonIcon_Magby, - [SPECIES_MILTANK] = gMonIcon_Miltank, - [SPECIES_BLISSEY] = gMonIcon_Blissey, - [SPECIES_RAIKOU] = gMonIcon_Raikou, - [SPECIES_ENTEI] = gMonIcon_Entei, - [SPECIES_SUICUNE] = gMonIcon_Suicune, - [SPECIES_LARVITAR] = gMonIcon_Larvitar, - [SPECIES_PUPITAR] = gMonIcon_Pupitar, - [SPECIES_TYRANITAR] = gMonIcon_Tyranitar, - [SPECIES_LUGIA] = gMonIcon_Lugia, - [SPECIES_HO_OH] = gMonIcon_HoOh, - [SPECIES_CELEBI] = gMonIcon_Celebi, - [SPECIES_TREECKO] = gMonIcon_Treecko, - [SPECIES_GROVYLE] = gMonIcon_Grovyle, - [SPECIES_SCEPTILE] = gMonIcon_Sceptile, - [SPECIES_TORCHIC] = gMonIcon_Torchic, - [SPECIES_COMBUSKEN] = gMonIcon_Combusken, - [SPECIES_BLAZIKEN] = gMonIcon_Blaziken, - [SPECIES_MUDKIP] = gMonIcon_Mudkip, - [SPECIES_MARSHTOMP] = gMonIcon_Marshtomp, - [SPECIES_SWAMPERT] = gMonIcon_Swampert, - [SPECIES_POOCHYENA] = gMonIcon_Poochyena, - [SPECIES_MIGHTYENA] = gMonIcon_Mightyena, - [SPECIES_ZIGZAGOON] = gMonIcon_Zigzagoon, - [SPECIES_LINOONE] = gMonIcon_Linoone, - [SPECIES_WURMPLE] = gMonIcon_Wurmple, - [SPECIES_SILCOON] = gMonIcon_Silcoon, - [SPECIES_BEAUTIFLY] = gMonIcon_Beautifly, - [SPECIES_CASCOON] = gMonIcon_Cascoon, - [SPECIES_DUSTOX] = gMonIcon_Dustox, - [SPECIES_LOTAD] = gMonIcon_Lotad, - [SPECIES_LOMBRE] = gMonIcon_Lombre, - [SPECIES_LUDICOLO] = gMonIcon_Ludicolo, - [SPECIES_SEEDOT] = gMonIcon_Seedot, - [SPECIES_NUZLEAF] = gMonIcon_Nuzleaf, - [SPECIES_SHIFTRY] = gMonIcon_Shiftry, - [SPECIES_NINCADA] = gMonIcon_Nincada, - [SPECIES_NINJASK] = gMonIcon_Ninjask, - [SPECIES_SHEDINJA] = gMonIcon_Shedinja, - [SPECIES_TAILLOW] = gMonIcon_Taillow, - [SPECIES_SWELLOW] = gMonIcon_Swellow, - [SPECIES_SHROOMISH] = gMonIcon_Shroomish, - [SPECIES_BRELOOM] = gMonIcon_Breloom, - [SPECIES_SPINDA] = gMonIcon_Spinda, - [SPECIES_WINGULL] = gMonIcon_Wingull, - [SPECIES_PELIPPER] = gMonIcon_Pelipper, - [SPECIES_SURSKIT] = gMonIcon_Surskit, - [SPECIES_MASQUERAIN] = gMonIcon_Masquerain, - [SPECIES_WAILMER] = gMonIcon_Wailmer, - [SPECIES_WAILORD] = gMonIcon_Wailord, - [SPECIES_SKITTY] = gMonIcon_Skitty, - [SPECIES_DELCATTY] = gMonIcon_Delcatty, - [SPECIES_KECLEON] = gMonIcon_Kecleon, - [SPECIES_BALTOY] = gMonIcon_Baltoy, - [SPECIES_CLAYDOL] = gMonIcon_Claydol, - [SPECIES_NOSEPASS] = gMonIcon_Nosepass, - [SPECIES_TORKOAL] = gMonIcon_Torkoal, - [SPECIES_SABLEYE] = gMonIcon_Sableye, - [SPECIES_BARBOACH] = gMonIcon_Barboach, - [SPECIES_WHISCASH] = gMonIcon_Whiscash, - [SPECIES_LUVDISC] = gMonIcon_Luvdisc, - [SPECIES_CORPHISH] = gMonIcon_Corphish, - [SPECIES_CRAWDAUNT] = gMonIcon_Crawdaunt, - [SPECIES_FEEBAS] = gMonIcon_Feebas, - [SPECIES_MILOTIC] = gMonIcon_Milotic, - [SPECIES_CARVANHA] = gMonIcon_Carvanha, - [SPECIES_SHARPEDO] = gMonIcon_Sharpedo, - [SPECIES_TRAPINCH] = gMonIcon_Trapinch, - [SPECIES_VIBRAVA] = gMonIcon_Vibrava, - [SPECIES_FLYGON] = gMonIcon_Flygon, - [SPECIES_MAKUHITA] = gMonIcon_Makuhita, - [SPECIES_HARIYAMA] = gMonIcon_Hariyama, - [SPECIES_ELECTRIKE] = gMonIcon_Electrike, - [SPECIES_MANECTRIC] = gMonIcon_Manectric, - [SPECIES_NUMEL] = gMonIcon_Numel, - [SPECIES_CAMERUPT] = gMonIcon_Camerupt, - [SPECIES_SPHEAL] = gMonIcon_Spheal, - [SPECIES_SEALEO] = gMonIcon_Sealeo, - [SPECIES_WALREIN] = gMonIcon_Walrein, - [SPECIES_CACNEA] = gMonIcon_Cacnea, - [SPECIES_CACTURNE] = gMonIcon_Cacturne, - [SPECIES_SNORUNT] = gMonIcon_Snorunt, - [SPECIES_GLALIE] = gMonIcon_Glalie, - [SPECIES_LUNATONE] = gMonIcon_Lunatone, - [SPECIES_SOLROCK] = gMonIcon_Solrock, - [SPECIES_AZURILL] = gMonIcon_Azurill, - [SPECIES_SPOINK] = gMonIcon_Spoink, - [SPECIES_GRUMPIG] = gMonIcon_Grumpig, - [SPECIES_PLUSLE] = gMonIcon_Plusle, - [SPECIES_MINUN] = gMonIcon_Minun, - [SPECIES_MAWILE] = gMonIcon_Mawile, - [SPECIES_MEDITITE] = gMonIcon_Meditite, - [SPECIES_MEDICHAM] = gMonIcon_Medicham, - [SPECIES_SWABLU] = gMonIcon_Swablu, - [SPECIES_ALTARIA] = gMonIcon_Altaria, - [SPECIES_WYNAUT] = gMonIcon_Wynaut, - [SPECIES_DUSKULL] = gMonIcon_Duskull, - [SPECIES_DUSCLOPS] = gMonIcon_Dusclops, - [SPECIES_ROSELIA] = gMonIcon_Roselia, - [SPECIES_SLAKOTH] = gMonIcon_Slakoth, - [SPECIES_VIGOROTH] = gMonIcon_Vigoroth, - [SPECIES_SLAKING] = gMonIcon_Slaking, - [SPECIES_GULPIN] = gMonIcon_Gulpin, - [SPECIES_SWALOT] = gMonIcon_Swalot, - [SPECIES_TROPIUS] = gMonIcon_Tropius, - [SPECIES_WHISMUR] = gMonIcon_Whismur, - [SPECIES_LOUDRED] = gMonIcon_Loudred, - [SPECIES_EXPLOUD] = gMonIcon_Exploud, - [SPECIES_CLAMPERL] = gMonIcon_Clamperl, - [SPECIES_HUNTAIL] = gMonIcon_Huntail, - [SPECIES_GOREBYSS] = gMonIcon_Gorebyss, - [SPECIES_ABSOL] = gMonIcon_Absol, - [SPECIES_SHUPPET] = gMonIcon_Shuppet, - [SPECIES_BANETTE] = gMonIcon_Banette, - [SPECIES_SEVIPER] = gMonIcon_Seviper, - [SPECIES_ZANGOOSE] = gMonIcon_Zangoose, - [SPECIES_RELICANTH] = gMonIcon_Relicanth, - [SPECIES_ARON] = gMonIcon_Aron, - [SPECIES_LAIRON] = gMonIcon_Lairon, - [SPECIES_AGGRON] = gMonIcon_Aggron, - [SPECIES_CASTFORM_NORMAL] = gMonIcon_CastformNormal, - [SPECIES_VOLBEAT] = gMonIcon_Volbeat, - [SPECIES_ILLUMISE] = gMonIcon_Illumise, - [SPECIES_LILEEP] = gMonIcon_Lileep, - [SPECIES_CRADILY] = gMonIcon_Cradily, - [SPECIES_ANORITH] = gMonIcon_Anorith, - [SPECIES_ARMALDO] = gMonIcon_Armaldo, - [SPECIES_RALTS] = gMonIcon_Ralts, - [SPECIES_KIRLIA] = gMonIcon_Kirlia, - [SPECIES_GARDEVOIR] = gMonIcon_Gardevoir, - [SPECIES_BAGON] = gMonIcon_Bagon, - [SPECIES_SHELGON] = gMonIcon_Shelgon, - [SPECIES_SALAMENCE] = gMonIcon_Salamence, - [SPECIES_BELDUM] = gMonIcon_Beldum, - [SPECIES_METANG] = gMonIcon_Metang, - [SPECIES_METAGROSS] = gMonIcon_Metagross, - [SPECIES_REGIROCK] = gMonIcon_Regirock, - [SPECIES_REGICE] = gMonIcon_Regice, - [SPECIES_REGISTEEL] = gMonIcon_Registeel, - [SPECIES_KYOGRE] = gMonIcon_Kyogre, - [SPECIES_GROUDON] = gMonIcon_Groudon, - [SPECIES_RAYQUAZA] = gMonIcon_Rayquaza, - [SPECIES_LATIAS] = gMonIcon_Latias, - [SPECIES_LATIOS] = gMonIcon_Latios, - [SPECIES_JIRACHI] = gMonIcon_Jirachi, - [SPECIES_DEOXYS_NORMAL] = gMonIcon_DeoxysNormal, - [SPECIES_CHIMECHO] = gMonIcon_Chimecho, - [SPECIES_TURTWIG] = gMonIcon_Turtwig, - [SPECIES_GROTLE] = gMonIcon_Grotle, - [SPECIES_TORTERRA] = gMonIcon_Torterra, - [SPECIES_CHIMCHAR] = gMonIcon_Chimchar, - [SPECIES_MONFERNO] = gMonIcon_Monferno, - [SPECIES_INFERNAPE] = gMonIcon_Infernape, - [SPECIES_PIPLUP] = gMonIcon_Piplup, - [SPECIES_PRINPLUP] = gMonIcon_Prinplup, - [SPECIES_EMPOLEON] = gMonIcon_Empoleon, - [SPECIES_STARLY] = gMonIcon_Starly, - [SPECIES_STARAVIA] = gMonIcon_Staravia, - [SPECIES_STARAPTOR] = gMonIcon_Staraptor, - [SPECIES_BIDOOF] = gMonIcon_Bidoof, - [SPECIES_BIBAREL] = gMonIcon_Bibarel, - [SPECIES_KRICKETOT] = gMonIcon_Kricketot, - [SPECIES_KRICKETUNE] = gMonIcon_Kricketune, - [SPECIES_SHINX] = gMonIcon_Shinx, - [SPECIES_LUXIO] = gMonIcon_Luxio, - [SPECIES_LUXRAY] = gMonIcon_Luxray, - [SPECIES_BUDEW] = gMonIcon_Budew, - [SPECIES_ROSERADE] = gMonIcon_Roserade, - [SPECIES_CRANIDOS] = gMonIcon_Cranidos, - [SPECIES_RAMPARDOS] = gMonIcon_Rampardos, - [SPECIES_SHIELDON] = gMonIcon_Shieldon, - [SPECIES_BASTIODON] = gMonIcon_Bastiodon, - [SPECIES_BURMY_PLANT_CLOAK] = gMonIcon_BurmyPlantCloak, - [SPECIES_WORMADAM_PLANT_CLOAK] = gMonIcon_WormadamPlantCloak, - [SPECIES_MOTHIM] = gMonIcon_Mothim, - [SPECIES_COMBEE] = gMonIcon_Combee, - [SPECIES_VESPIQUEN] = gMonIcon_Vespiquen, - [SPECIES_PACHIRISU] = gMonIcon_Pachirisu, - [SPECIES_BUIZEL] = gMonIcon_Buizel, - [SPECIES_FLOATZEL] = gMonIcon_Floatzel, - [SPECIES_CHERUBI] = gMonIcon_Cherubi, - [SPECIES_CHERRIM_OVERCAST] = gMonIcon_CherrimOvercast, - [SPECIES_SHELLOS_WEST_SEA] = gMonIcon_ShellosWestSea, - [SPECIES_GASTRODON_WEST_SEA] = gMonIcon_GastrodonWestSea, - [SPECIES_AMBIPOM] = gMonIcon_Ambipom, - [SPECIES_DRIFLOON] = gMonIcon_Drifloon, - [SPECIES_DRIFBLIM] = gMonIcon_Drifblim, - [SPECIES_BUNEARY] = gMonIcon_Buneary, - [SPECIES_LOPUNNY] = gMonIcon_Lopunny, - [SPECIES_MISMAGIUS] = gMonIcon_Mismagius, - [SPECIES_HONCHKROW] = gMonIcon_Honchkrow, - [SPECIES_GLAMEOW] = gMonIcon_Glameow, - [SPECIES_PURUGLY] = gMonIcon_Purugly, - [SPECIES_CHINGLING] = gMonIcon_Chingling, - [SPECIES_STUNKY] = gMonIcon_Stunky, - [SPECIES_SKUNTANK] = gMonIcon_Skuntank, - [SPECIES_BRONZOR] = gMonIcon_Bronzor, - [SPECIES_BRONZONG] = gMonIcon_Bronzong, - [SPECIES_BONSLY] = gMonIcon_Bonsly, - [SPECIES_MIME_JR] = gMonIcon_MimeJr, - [SPECIES_HAPPINY] = gMonIcon_Happiny, - [SPECIES_CHATOT] = gMonIcon_Chatot, - [SPECIES_SPIRITOMB] = gMonIcon_Spiritomb, - [SPECIES_GIBLE] = gMonIcon_Gible, - [SPECIES_GABITE] = gMonIcon_Gabite, - [SPECIES_GARCHOMP] = gMonIcon_Garchomp, - [SPECIES_MUNCHLAX] = gMonIcon_Munchlax, - [SPECIES_RIOLU] = gMonIcon_Riolu, - [SPECIES_LUCARIO] = gMonIcon_Lucario, - [SPECIES_HIPPOPOTAS] = gMonIcon_Hippopotas, - [SPECIES_HIPPOWDON] = gMonIcon_Hippowdon, - [SPECIES_SKORUPI] = gMonIcon_Skorupi, - [SPECIES_DRAPION] = gMonIcon_Drapion, - [SPECIES_CROAGUNK] = gMonIcon_Croagunk, - [SPECIES_TOXICROAK] = gMonIcon_Toxicroak, - [SPECIES_CARNIVINE] = gMonIcon_Carnivine, - [SPECIES_FINNEON] = gMonIcon_Finneon, - [SPECIES_LUMINEON] = gMonIcon_Lumineon, - [SPECIES_MANTYKE] = gMonIcon_Mantyke, - [SPECIES_SNOVER] = gMonIcon_Snover, - [SPECIES_ABOMASNOW] = gMonIcon_Abomasnow, - [SPECIES_WEAVILE] = gMonIcon_Weavile, - [SPECIES_MAGNEZONE] = gMonIcon_Magnezone, - [SPECIES_LICKILICKY] = gMonIcon_Lickilicky, - [SPECIES_RHYPERIOR] = gMonIcon_Rhyperior, - [SPECIES_TANGROWTH] = gMonIcon_Tangrowth, - [SPECIES_ELECTIVIRE] = gMonIcon_Electivire, - [SPECIES_MAGMORTAR] = gMonIcon_Magmortar, - [SPECIES_TOGEKISS] = gMonIcon_Togekiss, - [SPECIES_YANMEGA] = gMonIcon_Yanmega, - [SPECIES_LEAFEON] = gMonIcon_Leafeon, - [SPECIES_GLACEON] = gMonIcon_Glaceon, - [SPECIES_GLISCOR] = gMonIcon_Gliscor, - [SPECIES_MAMOSWINE] = gMonIcon_Mamoswine, - [SPECIES_PORYGON_Z] = gMonIcon_Porygon_Z, - [SPECIES_GALLADE] = gMonIcon_Gallade, - [SPECIES_PROBOPASS] = gMonIcon_Probopass, - [SPECIES_DUSKNOIR] = gMonIcon_Dusknoir, - [SPECIES_FROSLASS] = gMonIcon_Froslass, - [SPECIES_ROTOM] = gMonIcon_Rotom, - [SPECIES_UXIE] = gMonIcon_Uxie, - [SPECIES_MESPRIT] = gMonIcon_Mesprit, - [SPECIES_AZELF] = gMonIcon_Azelf, - [SPECIES_DIALGA] = gMonIcon_Dialga, - [SPECIES_PALKIA] = gMonIcon_Palkia, - [SPECIES_HEATRAN] = gMonIcon_Heatran, - [SPECIES_REGIGIGAS] = gMonIcon_Regigigas, - [SPECIES_GIRATINA_ALTERED] = gMonIcon_GiratinaAltered, - [SPECIES_CRESSELIA] = gMonIcon_Cresselia, - [SPECIES_PHIONE] = gMonIcon_Phione, - [SPECIES_MANAPHY] = gMonIcon_Manaphy, - [SPECIES_DARKRAI] = gMonIcon_Darkrai, - [SPECIES_SHAYMIN_LAND] = gMonIcon_ShayminLand, - [SPECIES_ARCEUS_NORMAL] = gMonIcon_Arceus, - [SPECIES_VICTINI] = gMonIcon_Victini, - [SPECIES_SNIVY] = gMonIcon_Snivy, - [SPECIES_SERVINE] = gMonIcon_Servine, - [SPECIES_SERPERIOR] = gMonIcon_Serperior, - [SPECIES_TEPIG] = gMonIcon_Tepig, - [SPECIES_PIGNITE] = gMonIcon_Pignite, - [SPECIES_EMBOAR] = gMonIcon_Emboar, - [SPECIES_OSHAWOTT] = gMonIcon_Oshawott, - [SPECIES_DEWOTT] = gMonIcon_Dewott, - [SPECIES_SAMUROTT] = gMonIcon_Samurott, - [SPECIES_PATRAT] = gMonIcon_Patrat, - [SPECIES_WATCHOG] = gMonIcon_Watchog, - [SPECIES_LILLIPUP] = gMonIcon_Lillipup, - [SPECIES_HERDIER] = gMonIcon_Herdier, - [SPECIES_STOUTLAND] = gMonIcon_Stoutland, - [SPECIES_PURRLOIN] = gMonIcon_Purrloin, - [SPECIES_LIEPARD] = gMonIcon_Liepard, - [SPECIES_PANSAGE] = gMonIcon_Pansage, - [SPECIES_SIMISAGE] = gMonIcon_Simisage, - [SPECIES_PANSEAR] = gMonIcon_Pansear, - [SPECIES_SIMISEAR] = gMonIcon_Simisear, - [SPECIES_PANPOUR] = gMonIcon_Panpour, - [SPECIES_SIMIPOUR] = gMonIcon_Simipour, - [SPECIES_MUNNA] = gMonIcon_Munna, - [SPECIES_MUSHARNA] = gMonIcon_Musharna, - [SPECIES_PIDOVE] = gMonIcon_Pidove, - [SPECIES_TRANQUILL] = gMonIcon_Tranquill, - [SPECIES_UNFEZANT] = gMonIcon_Unfezant, - [SPECIES_BLITZLE] = gMonIcon_Blitzle, - [SPECIES_ZEBSTRIKA] = gMonIcon_Zebstrika, - [SPECIES_ROGGENROLA] = gMonIcon_Roggenrola, - [SPECIES_BOLDORE] = gMonIcon_Boldore, - [SPECIES_GIGALITH] = gMonIcon_Gigalith, - [SPECIES_WOOBAT] = gMonIcon_Woobat, - [SPECIES_SWOOBAT] = gMonIcon_Swoobat, - [SPECIES_DRILBUR] = gMonIcon_Drilbur, - [SPECIES_EXCADRILL] = gMonIcon_Excadrill, - [SPECIES_AUDINO] = gMonIcon_Audino, - [SPECIES_TIMBURR] = gMonIcon_Timburr, - [SPECIES_GURDURR] = gMonIcon_Gurdurr, - [SPECIES_CONKELDURR] = gMonIcon_Conkeldurr, - [SPECIES_TYMPOLE] = gMonIcon_Tympole, - [SPECIES_PALPITOAD] = gMonIcon_Palpitoad, - [SPECIES_SEISMITOAD] = gMonIcon_Seismitoad, - [SPECIES_THROH] = gMonIcon_Throh, - [SPECIES_SAWK] = gMonIcon_Sawk, - [SPECIES_SEWADDLE] = gMonIcon_Sewaddle, - [SPECIES_SWADLOON] = gMonIcon_Swadloon, - [SPECIES_LEAVANNY] = gMonIcon_Leavanny, - [SPECIES_VENIPEDE] = gMonIcon_Venipede, - [SPECIES_WHIRLIPEDE] = gMonIcon_Whirlipede, - [SPECIES_SCOLIPEDE] = gMonIcon_Scolipede, - [SPECIES_COTTONEE] = gMonIcon_Cottonee, - [SPECIES_WHIMSICOTT] = gMonIcon_Whimsicott, - [SPECIES_PETILIL] = gMonIcon_Petilil, - [SPECIES_LILLIGANT] = gMonIcon_Lilligant, - [SPECIES_BASCULIN_RED_STRIPED] = gMonIcon_BasculinRedStriped, - [SPECIES_SANDILE] = gMonIcon_Sandile, - [SPECIES_KROKOROK] = gMonIcon_Krokorok, - [SPECIES_KROOKODILE] = gMonIcon_Krookodile, - [SPECIES_DARUMAKA] = gMonIcon_Darumaka, - [SPECIES_DARMANITAN_STANDARD_MODE] = gMonIcon_DarmanitanStandardMode, - [SPECIES_MARACTUS] = gMonIcon_Maractus, - [SPECIES_DWEBBLE] = gMonIcon_Dwebble, - [SPECIES_CRUSTLE] = gMonIcon_Crustle, - [SPECIES_SCRAGGY] = gMonIcon_Scraggy, - [SPECIES_SCRAFTY] = gMonIcon_Scrafty, - [SPECIES_SIGILYPH] = gMonIcon_Sigilyph, - [SPECIES_YAMASK] = gMonIcon_Yamask, - [SPECIES_COFAGRIGUS] = gMonIcon_Cofagrigus, - [SPECIES_TIRTOUGA] = gMonIcon_Tirtouga, - [SPECIES_CARRACOSTA] = gMonIcon_Carracosta, - [SPECIES_ARCHEN] = gMonIcon_Archen, - [SPECIES_ARCHEOPS] = gMonIcon_Archeops, - [SPECIES_TRUBBISH] = gMonIcon_Trubbish, - [SPECIES_GARBODOR] = gMonIcon_Garbodor, - [SPECIES_ZORUA] = gMonIcon_Zorua, - [SPECIES_ZOROARK] = gMonIcon_Zoroark, - [SPECIES_MINCCINO] = gMonIcon_Minccino, - [SPECIES_CINCCINO] = gMonIcon_Cinccino, - [SPECIES_GOTHITA] = gMonIcon_Gothita, - [SPECIES_GOTHORITA] = gMonIcon_Gothorita, - [SPECIES_GOTHITELLE] = gMonIcon_Gothitelle, - [SPECIES_SOLOSIS] = gMonIcon_Solosis, - [SPECIES_DUOSION] = gMonIcon_Duosion, - [SPECIES_REUNICLUS] = gMonIcon_Reuniclus, - [SPECIES_DUCKLETT] = gMonIcon_Ducklett, - [SPECIES_SWANNA] = gMonIcon_Swanna, - [SPECIES_VANILLITE] = gMonIcon_Vanillite, - [SPECIES_VANILLISH] = gMonIcon_Vanillish, - [SPECIES_VANILLUXE] = gMonIcon_Vanilluxe, - [SPECIES_DEERLING_SPRING] = gMonIcon_DeerlingSpring, - [SPECIES_SAWSBUCK_SPRING] = gMonIcon_SawsbuckSpring, - [SPECIES_EMOLGA] = gMonIcon_Emolga, - [SPECIES_KARRABLAST] = gMonIcon_Karrablast, - [SPECIES_ESCAVALIER] = gMonIcon_Escavalier, - [SPECIES_FOONGUS] = gMonIcon_Foongus, - [SPECIES_AMOONGUSS] = gMonIcon_Amoonguss, - [SPECIES_FRILLISH] = gMonIcon_Frillish, - [SPECIES_JELLICENT] = gMonIcon_Jellicent, - [SPECIES_ALOMOMOLA] = gMonIcon_Alomomola, - [SPECIES_JOLTIK] = gMonIcon_Joltik, - [SPECIES_GALVANTULA] = gMonIcon_Galvantula, - [SPECIES_FERROSEED] = gMonIcon_Ferroseed, - [SPECIES_FERROTHORN] = gMonIcon_Ferrothorn, - [SPECIES_KLINK] = gMonIcon_Klink, - [SPECIES_KLANG] = gMonIcon_Klang, - [SPECIES_KLINKLANG] = gMonIcon_Klinklang, - [SPECIES_TYNAMO] = gMonIcon_Tynamo, - [SPECIES_EELEKTRIK] = gMonIcon_Eelektrik, - [SPECIES_EELEKTROSS] = gMonIcon_Eelektross, - [SPECIES_ELGYEM] = gMonIcon_Elgyem, - [SPECIES_BEHEEYEM] = gMonIcon_Beheeyem, - [SPECIES_LITWICK] = gMonIcon_Litwick, - [SPECIES_LAMPENT] = gMonIcon_Lampent, - [SPECIES_CHANDELURE] = gMonIcon_Chandelure, - [SPECIES_AXEW] = gMonIcon_Axew, - [SPECIES_FRAXURE] = gMonIcon_Fraxure, - [SPECIES_HAXORUS] = gMonIcon_Haxorus, - [SPECIES_CUBCHOO] = gMonIcon_Cubchoo, - [SPECIES_BEARTIC] = gMonIcon_Beartic, - [SPECIES_CRYOGONAL] = gMonIcon_Cryogonal, - [SPECIES_SHELMET] = gMonIcon_Shelmet, - [SPECIES_ACCELGOR] = gMonIcon_Accelgor, - [SPECIES_STUNFISK] = gMonIcon_Stunfisk, - [SPECIES_MIENFOO] = gMonIcon_Mienfoo, - [SPECIES_MIENSHAO] = gMonIcon_Mienshao, - [SPECIES_DRUDDIGON] = gMonIcon_Druddigon, - [SPECIES_GOLETT] = gMonIcon_Golett, - [SPECIES_GOLURK] = gMonIcon_Golurk, - [SPECIES_PAWNIARD] = gMonIcon_Pawniard, - [SPECIES_BISHARP] = gMonIcon_Bisharp, - [SPECIES_BOUFFALANT] = gMonIcon_Bouffalant, - [SPECIES_RUFFLET] = gMonIcon_Rufflet, - [SPECIES_BRAVIARY] = gMonIcon_Braviary, - [SPECIES_VULLABY] = gMonIcon_Vullaby, - [SPECIES_MANDIBUZZ] = gMonIcon_Mandibuzz, - [SPECIES_HEATMOR] = gMonIcon_Heatmor, - [SPECIES_DURANT] = gMonIcon_Durant, - [SPECIES_DEINO] = gMonIcon_Deino, - [SPECIES_ZWEILOUS] = gMonIcon_Zweilous, - [SPECIES_HYDREIGON] = gMonIcon_Hydreigon, - [SPECIES_LARVESTA] = gMonIcon_Larvesta, - [SPECIES_VOLCARONA] = gMonIcon_Volcarona, - [SPECIES_COBALION] = gMonIcon_Cobalion, - [SPECIES_TERRAKION] = gMonIcon_Terrakion, - [SPECIES_VIRIZION] = gMonIcon_Virizion, - [SPECIES_TORNADUS_INCARNATE] = gMonIcon_TornadusIncarnate, - [SPECIES_THUNDURUS_INCARNATE] = gMonIcon_ThundurusIncarnate, - [SPECIES_RESHIRAM] = gMonIcon_Reshiram, - [SPECIES_ZEKROM] = gMonIcon_Zekrom, - [SPECIES_LANDORUS_INCARNATE] = gMonIcon_LandorusIncarnate, - [SPECIES_KYUREM] = gMonIcon_Kyurem, - [SPECIES_KELDEO_ORDINARY] = gMonIcon_KeldeoOrdinary, - [SPECIES_MELOETTA_ARIA] = gMonIcon_MeloettaAria, - [SPECIES_GENESECT] = gMonIcon_Genesect, - [SPECIES_CHESPIN] = gMonIcon_Chespin, - [SPECIES_QUILLADIN] = gMonIcon_Quilladin, - [SPECIES_CHESNAUGHT] = gMonIcon_Chesnaught, - [SPECIES_FENNEKIN] = gMonIcon_Fennekin, - [SPECIES_BRAIXEN] = gMonIcon_Braixen, - [SPECIES_DELPHOX] = gMonIcon_Delphox, - [SPECIES_FROAKIE] = gMonIcon_Froakie, - [SPECIES_FROGADIER] = gMonIcon_Frogadier, - [SPECIES_GRENINJA] = gMonIcon_Greninja, - [SPECIES_BUNNELBY] = gMonIcon_Bunnelby, - [SPECIES_DIGGERSBY] = gMonIcon_Diggersby, - [SPECIES_FLETCHLING] = gMonIcon_Fletchling, - [SPECIES_FLETCHINDER] = gMonIcon_Fletchinder, - [SPECIES_TALONFLAME] = gMonIcon_Talonflame, - [SPECIES_SCATTERBUG] = gMonIcon_Scatterbug, - [SPECIES_SPEWPA] = gMonIcon_Spewpa, - [SPECIES_VIVILLON_ICY_SNOW] = gMonIcon_VivillonIcySnow, - [SPECIES_LITLEO] = gMonIcon_Litleo, - [SPECIES_PYROAR] = gMonIcon_Pyroar, - [SPECIES_FLABEBE_RED_FLOWER] = gMonIcon_FlabebeRedFlower, - [SPECIES_FLOETTE_RED_FLOWER] = gMonIcon_FloetteRedFlower, - [SPECIES_FLORGES_RED_FLOWER] = gMonIcon_FlorgesRedFlower, - [SPECIES_SKIDDO] = gMonIcon_Skiddo, - [SPECIES_GOGOAT] = gMonIcon_Gogoat, - [SPECIES_PANCHAM] = gMonIcon_Pancham, - [SPECIES_PANGORO] = gMonIcon_Pangoro, - [SPECIES_FURFROU_NATURAL] = gMonIcon_FurfrouNatural, - [SPECIES_ESPURR] = gMonIcon_Espurr, - [SPECIES_MEOWSTIC_MALE] = gMonIcon_MeowsticMale, - [SPECIES_HONEDGE] = gMonIcon_Honedge, - [SPECIES_DOUBLADE] = gMonIcon_Doublade, - [SPECIES_AEGISLASH_SHIELD] = gMonIcon_AegislashShield, - [SPECIES_SPRITZEE] = gMonIcon_Spritzee, - [SPECIES_AROMATISSE] = gMonIcon_Aromatisse, - [SPECIES_SWIRLIX] = gMonIcon_Swirlix, - [SPECIES_SLURPUFF] = gMonIcon_Slurpuff, - [SPECIES_INKAY] = gMonIcon_Inkay, - [SPECIES_MALAMAR] = gMonIcon_Malamar, - [SPECIES_BINACLE] = gMonIcon_Binacle, - [SPECIES_BARBARACLE] = gMonIcon_Barbaracle, - [SPECIES_SKRELP] = gMonIcon_Skrelp, - [SPECIES_DRAGALGE] = gMonIcon_Dragalge, - [SPECIES_CLAUNCHER] = gMonIcon_Clauncher, - [SPECIES_CLAWITZER] = gMonIcon_Clawitzer, - [SPECIES_HELIOPTILE] = gMonIcon_Helioptile, - [SPECIES_HELIOLISK] = gMonIcon_Heliolisk, - [SPECIES_TYRUNT] = gMonIcon_Tyrunt, - [SPECIES_TYRANTRUM] = gMonIcon_Tyrantrum, - [SPECIES_AMAURA] = gMonIcon_Amaura, - [SPECIES_AURORUS] = gMonIcon_Aurorus, - [SPECIES_SYLVEON] = gMonIcon_Sylveon, - [SPECIES_HAWLUCHA] = gMonIcon_Hawlucha, - [SPECIES_DEDENNE] = gMonIcon_Dedenne, - [SPECIES_CARBINK] = gMonIcon_Carbink, - [SPECIES_GOOMY] = gMonIcon_Goomy, - [SPECIES_SLIGGOO] = gMonIcon_Sliggoo, - [SPECIES_GOODRA] = gMonIcon_Goodra, - [SPECIES_KLEFKI] = gMonIcon_Klefki, - [SPECIES_PHANTUMP] = gMonIcon_Phantump, - [SPECIES_TREVENANT] = gMonIcon_Trevenant, - [SPECIES_PUMPKABOO_AVERAGE] = gMonIcon_Pumpkaboo, - [SPECIES_GOURGEIST_AVERAGE] = gMonIcon_Gourgeist, - [SPECIES_BERGMITE] = gMonIcon_Bergmite, - [SPECIES_AVALUGG] = gMonIcon_Avalugg, - [SPECIES_NOIBAT] = gMonIcon_Noibat, - [SPECIES_NOIVERN] = gMonIcon_Noivern, - [SPECIES_XERNEAS_NEUTRAL] = gMonIcon_XerneasNeutral, - [SPECIES_YVELTAL] = gMonIcon_Yveltal, - [SPECIES_ZYGARDE_50_AURA_BREAK] = gMonIcon_Zygarde50, - [SPECIES_DIANCIE] = gMonIcon_Diancie, - [SPECIES_HOOPA_CONFINED] = gMonIcon_HoopaConfined, - [SPECIES_VOLCANION] = gMonIcon_Volcanion, - [SPECIES_ROWLET] = gMonIcon_Rowlet, - [SPECIES_DARTRIX] = gMonIcon_Dartrix, - [SPECIES_DECIDUEYE] = gMonIcon_Decidueye, - [SPECIES_LITTEN] = gMonIcon_Litten, - [SPECIES_TORRACAT] = gMonIcon_Torracat, - [SPECIES_INCINEROAR] = gMonIcon_Incineroar, - [SPECIES_POPPLIO] = gMonIcon_Popplio, - [SPECIES_BRIONNE] = gMonIcon_Brionne, - [SPECIES_PRIMARINA] = gMonIcon_Primarina, - [SPECIES_PIKIPEK] = gMonIcon_Pikipek, - [SPECIES_TRUMBEAK] = gMonIcon_Trumbeak, - [SPECIES_TOUCANNON] = gMonIcon_Toucannon, - [SPECIES_YUNGOOS] = gMonIcon_Yungoos, - [SPECIES_GUMSHOOS] = gMonIcon_Gumshoos, - [SPECIES_GRUBBIN] = gMonIcon_Grubbin, - [SPECIES_CHARJABUG] = gMonIcon_Charjabug, - [SPECIES_VIKAVOLT] = gMonIcon_Vikavolt, - [SPECIES_CRABRAWLER] = gMonIcon_Crabrawler, - [SPECIES_CRABOMINABLE] = gMonIcon_Crabominable, - [SPECIES_ORICORIO_BAILE] = gMonIcon_OricorioBaile, - [SPECIES_CUTIEFLY] = gMonIcon_Cutiefly, - [SPECIES_RIBOMBEE] = gMonIcon_Ribombee, - [SPECIES_ROCKRUFF] = gMonIcon_Rockruff, - [SPECIES_LYCANROC_MIDDAY] = gMonIcon_LycanrocMidday, - [SPECIES_WISHIWASHI_SOLO] = gMonIcon_WishiwashiSolo, - [SPECIES_MAREANIE] = gMonIcon_Mareanie, - [SPECIES_TOXAPEX] = gMonIcon_Toxapex, - [SPECIES_MUDBRAY] = gMonIcon_Mudbray, - [SPECIES_MUDSDALE] = gMonIcon_Mudsdale, - [SPECIES_DEWPIDER] = gMonIcon_Dewpider, - [SPECIES_ARAQUANID] = gMonIcon_Araquanid, - [SPECIES_FOMANTIS] = gMonIcon_Fomantis, - [SPECIES_LURANTIS] = gMonIcon_Lurantis, - [SPECIES_MORELULL] = gMonIcon_Morelull, - [SPECIES_SHIINOTIC] = gMonIcon_Shiinotic, - [SPECIES_SALANDIT] = gMonIcon_Salandit, - [SPECIES_SALAZZLE] = gMonIcon_Salazzle, - [SPECIES_STUFFUL] = gMonIcon_Stufful, - [SPECIES_BEWEAR] = gMonIcon_Bewear, - [SPECIES_BOUNSWEET] = gMonIcon_Bounsweet, - [SPECIES_STEENEE] = gMonIcon_Steenee, - [SPECIES_TSAREENA] = gMonIcon_Tsareena, - [SPECIES_COMFEY] = gMonIcon_Comfey, - [SPECIES_ORANGURU] = gMonIcon_Oranguru, - [SPECIES_PASSIMIAN] = gMonIcon_Passimian, - [SPECIES_WIMPOD] = gMonIcon_Wimpod, - [SPECIES_GOLISOPOD] = gMonIcon_Golisopod, - [SPECIES_SANDYGAST] = gMonIcon_Sandygast, - [SPECIES_PALOSSAND] = gMonIcon_Palossand, - [SPECIES_PYUKUMUKU] = gMonIcon_Pyukumuku, - [SPECIES_TYPE_NULL] = gMonIcon_TypeNull, - [SPECIES_SILVALLY_NORMAL] = gMonIcon_Silvally, - [SPECIES_MINIOR_METEOR_RED] = gMonIcon_MiniorMeteor, - [SPECIES_KOMALA] = gMonIcon_Komala, - [SPECIES_TURTONATOR] = gMonIcon_Turtonator, - [SPECIES_TOGEDEMARU] = gMonIcon_Togedemaru, - [SPECIES_MIMIKYU_DISGUISED] = gMonIcon_MimikyuDisguised, - [SPECIES_BRUXISH] = gMonIcon_Bruxish, - [SPECIES_DRAMPA] = gMonIcon_Drampa, - [SPECIES_DHELMISE] = gMonIcon_Dhelmise, - [SPECIES_JANGMO_O] = gMonIcon_JangmoO, - [SPECIES_HAKAMO_O] = gMonIcon_HakamoO, - [SPECIES_KOMMO_O] = gMonIcon_KommoO, - [SPECIES_TAPU_KOKO] = gMonIcon_TapuKoko, - [SPECIES_TAPU_LELE] = gMonIcon_TapuLele, - [SPECIES_TAPU_BULU] = gMonIcon_TapuBulu, - [SPECIES_TAPU_FINI] = gMonIcon_TapuFini, - [SPECIES_COSMOG] = gMonIcon_Cosmog, - [SPECIES_COSMOEM] = gMonIcon_Cosmoem, - [SPECIES_SOLGALEO] = gMonIcon_Solgaleo, - [SPECIES_LUNALA] = gMonIcon_Lunala, - [SPECIES_NIHILEGO] = gMonIcon_Nihilego, - [SPECIES_BUZZWOLE] = gMonIcon_Buzzwole, - [SPECIES_PHEROMOSA] = gMonIcon_Pheromosa, - [SPECIES_XURKITREE] = gMonIcon_Xurkitree, - [SPECIES_CELESTEELA] = gMonIcon_Celesteela, - [SPECIES_KARTANA] = gMonIcon_Kartana, - [SPECIES_GUZZLORD] = gMonIcon_Guzzlord, - [SPECIES_NECROZMA] = gMonIcon_Necrozma, - [SPECIES_MAGEARNA] = gMonIcon_Magearna, - [SPECIES_MARSHADOW] = gMonIcon_Marshadow, - [SPECIES_POIPOLE] = gMonIcon_Poipole, - [SPECIES_NAGANADEL] = gMonIcon_Naganadel, - [SPECIES_STAKATAKA] = gMonIcon_Stakataka, - [SPECIES_BLACEPHALON] = gMonIcon_Blacephalon, - [SPECIES_ZERAORA] = gMonIcon_Zeraora, - [SPECIES_MELTAN] = gMonIcon_Meltan, - [SPECIES_MELMETAL] = gMonIcon_Melmetal, - [SPECIES_GROOKEY] = gMonIcon_Grookey, - [SPECIES_THWACKEY] = gMonIcon_Thwackey, - [SPECIES_RILLABOOM] = gMonIcon_Rillaboom, - [SPECIES_SCORBUNNY] = gMonIcon_Scorbunny, - [SPECIES_RABOOT] = gMonIcon_Raboot, - [SPECIES_CINDERACE] = gMonIcon_Cinderace, - [SPECIES_SOBBLE] = gMonIcon_Sobble, - [SPECIES_DRIZZILE] = gMonIcon_Drizzile, - [SPECIES_INTELEON] = gMonIcon_Inteleon, - [SPECIES_SKWOVET] = gMonIcon_Skwovet, - [SPECIES_GREEDENT] = gMonIcon_Greedent, - [SPECIES_ROOKIDEE] = gMonIcon_Rookidee, - [SPECIES_CORVISQUIRE] = gMonIcon_Corvisquire, - [SPECIES_CORVIKNIGHT] = gMonIcon_Corviknight, - [SPECIES_BLIPBUG] = gMonIcon_Blipbug, - [SPECIES_DOTTLER] = gMonIcon_Dottler, - [SPECIES_ORBEETLE] = gMonIcon_Orbeetle, - [SPECIES_NICKIT] = gMonIcon_Nickit, - [SPECIES_THIEVUL] = gMonIcon_Thievul, - [SPECIES_GOSSIFLEUR] = gMonIcon_Gossifleur, - [SPECIES_ELDEGOSS] = gMonIcon_Eldegoss, - [SPECIES_WOOLOO] = gMonIcon_Wooloo, - [SPECIES_DUBWOOL] = gMonIcon_Dubwool, - [SPECIES_CHEWTLE] = gMonIcon_Chewtle, - [SPECIES_DREDNAW] = gMonIcon_Drednaw, - [SPECIES_YAMPER] = gMonIcon_Yamper, - [SPECIES_BOLTUND] = gMonIcon_Boltund, - [SPECIES_ROLYCOLY] = gMonIcon_Rolycoly, - [SPECIES_CARKOL] = gMonIcon_Carkol, - [SPECIES_COALOSSAL] = gMonIcon_Coalossal, - [SPECIES_APPLIN] = gMonIcon_Applin, - [SPECIES_FLAPPLE] = gMonIcon_Flapple, - [SPECIES_APPLETUN] = gMonIcon_Appletun, - [SPECIES_SILICOBRA] = gMonIcon_Silicobra, - [SPECIES_SANDACONDA] = gMonIcon_Sandaconda, - [SPECIES_CRAMORANT] = gMonIcon_Cramorant, - [SPECIES_ARROKUDA] = gMonIcon_Arrokuda, - [SPECIES_BARRASKEWDA] = gMonIcon_Barraskewda, - [SPECIES_TOXEL] = gMonIcon_Toxel, - [SPECIES_TOXTRICITY_AMPED] = gMonIcon_ToxtricityAmped, - [SPECIES_SIZZLIPEDE] = gMonIcon_Sizzlipede, - [SPECIES_CENTISKORCH] = gMonIcon_Centiskorch, - [SPECIES_CLOBBOPUS] = gMonIcon_Clobbopus, - [SPECIES_GRAPPLOCT] = gMonIcon_Grapploct, - [SPECIES_SINISTEA_PHONY] = gMonIcon_Sinistea, - [SPECIES_POLTEAGEIST_PHONY] = gMonIcon_Polteageist, - [SPECIES_HATENNA] = gMonIcon_Hatenna, - [SPECIES_HATTREM] = gMonIcon_Hattrem, - [SPECIES_HATTERENE] = gMonIcon_Hatterene, - [SPECIES_IMPIDIMP] = gMonIcon_Impidimp, - [SPECIES_MORGREM] = gMonIcon_Morgrem, - [SPECIES_GRIMMSNARL] = gMonIcon_Grimmsnarl, - [SPECIES_OBSTAGOON] = gMonIcon_Obstagoon, - [SPECIES_PERRSERKER] = gMonIcon_Perrserker, - [SPECIES_CURSOLA] = gMonIcon_Cursola, - [SPECIES_SIRFETCHD] = gMonIcon_Sirfetchd, - [SPECIES_MR_RIME] = gMonIcon_MrRime, - [SPECIES_RUNERIGUS] = gMonIcon_Runerigus, - [SPECIES_MILCERY] = gMonIcon_Milcery, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, - [SPECIES_FALINKS] = gMonIcon_Falinks, - [SPECIES_PINCURCHIN] = gMonIcon_Pincurchin, - [SPECIES_SNOM] = gMonIcon_Snom, - [SPECIES_FROSMOTH] = gMonIcon_Frosmoth, - [SPECIES_STONJOURNER] = gMonIcon_Stonjourner, - [SPECIES_EISCUE_ICE_FACE] = gMonIcon_EiscueIceFace, - [SPECIES_INDEEDEE_MALE] = gMonIcon_IndeedeeMale, - [SPECIES_MORPEKO_FULL_BELLY] = gMonIcon_MorpekoFullBelly, - [SPECIES_CUFANT] = gMonIcon_Cufant, - [SPECIES_COPPERAJAH] = gMonIcon_Copperajah, - [SPECIES_DRACOZOLT] = gMonIcon_Dracozolt, - [SPECIES_ARCTOZOLT] = gMonIcon_Arctozolt, - [SPECIES_DRACOVISH] = gMonIcon_Dracovish, - [SPECIES_ARCTOVISH] = gMonIcon_Arctovish, - [SPECIES_DURALUDON] = gMonIcon_Duraludon, - [SPECIES_DREEPY] = gMonIcon_Dreepy, - [SPECIES_DRAKLOAK] = gMonIcon_Drakloak, - [SPECIES_DRAGAPULT] = gMonIcon_Dragapult, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = gMonIcon_ZacianHeroOfManyBattles, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = gMonIcon_ZamazentaHeroOfManyBattles, - [SPECIES_ETERNATUS] = gMonIcon_Eternatus, - [SPECIES_KUBFU] = gMonIcon_Kubfu, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = gMonIcon_UrshifuSingleStrikeStyle, - [SPECIES_ZARUDE] = gMonIcon_Zarude, - [SPECIES_REGIELEKI] = gMonIcon_Regieleki, - [SPECIES_REGIDRAGO] = gMonIcon_Regidrago, - [SPECIES_GLASTRIER] = gMonIcon_Glastrier, - [SPECIES_SPECTRIER] = gMonIcon_Spectrier, - [SPECIES_CALYREX] = gMonIcon_Calyrex, - [SPECIES_WYRDEER] = gMonIcon_Wyrdeer, - [SPECIES_KLEAVOR] = gMonIcon_Kleavor, - [SPECIES_URSALUNA] = gMonIcon_Ursaluna, - //[SPECIES_URSALUNA_BLOODMOON] = gMonIcon_UrsalunaBloodmoon, TODO - [SPECIES_BASCULEGION_MALE] = gMonIcon_BasculegionMale, - [SPECIES_SNEASLER] = gMonIcon_Sneasler, - [SPECIES_OVERQWIL] = gMonIcon_Overqwil, - [SPECIES_ENAMORUS_INCARNATE] = gMonIcon_EnamorusIncarnate, - [SPECIES_VENUSAUR_MEGA] = gMonIcon_VenusaurMega, - [SPECIES_CHARIZARD_MEGA_X] = gMonIcon_CharizardMegaX, - [SPECIES_CHARIZARD_MEGA_Y] = gMonIcon_CharizardMegaY, - [SPECIES_BLASTOISE_MEGA] = gMonIcon_BlastoiseMega, - [SPECIES_BEEDRILL_MEGA] = gMonIcon_BeedrillMega, - [SPECIES_PIDGEOT_MEGA] = gMonIcon_PidgeotMega, - [SPECIES_ALAKAZAM_MEGA] = gMonIcon_AlakazamMega, - [SPECIES_SLOWBRO_MEGA] = gMonIcon_SlowbroMega, - [SPECIES_GENGAR_MEGA] = gMonIcon_GengarMega, - [SPECIES_KANGASKHAN_MEGA] = gMonIcon_KangaskhanMega, - [SPECIES_PINSIR_MEGA] = gMonIcon_PinsirMega, - [SPECIES_GYARADOS_MEGA] = gMonIcon_GyaradosMega, - [SPECIES_AERODACTYL_MEGA] = gMonIcon_AerodactylMega, - [SPECIES_MEWTWO_MEGA_X] = gMonIcon_MewtwoMegaX, - [SPECIES_MEWTWO_MEGA_Y] = gMonIcon_MewtwoMegaY, - [SPECIES_AMPHAROS_MEGA] = gMonIcon_AmpharosMega, - [SPECIES_STEELIX_MEGA] = gMonIcon_SteelixMega, - [SPECIES_SCIZOR_MEGA] = gMonIcon_ScizorMega, - [SPECIES_HERACROSS_MEGA] = gMonIcon_HeracrossMega, - [SPECIES_HOUNDOOM_MEGA] = gMonIcon_HoundoomMega, - [SPECIES_TYRANITAR_MEGA] = gMonIcon_TyranitarMega, - [SPECIES_SCEPTILE_MEGA] = gMonIcon_SceptileMega, - [SPECIES_BLAZIKEN_MEGA] = gMonIcon_BlazikenMega, - [SPECIES_SWAMPERT_MEGA] = gMonIcon_SwampertMega, - [SPECIES_GARDEVOIR_MEGA] = gMonIcon_GardevoirMega, - [SPECIES_SABLEYE_MEGA] = gMonIcon_SableyeMega, - [SPECIES_MAWILE_MEGA] = gMonIcon_MawileMega, - [SPECIES_AGGRON_MEGA] = gMonIcon_AggronMega, - [SPECIES_MEDICHAM_MEGA] = gMonIcon_MedichamMega, - [SPECIES_MANECTRIC_MEGA] = gMonIcon_ManectricMega, - [SPECIES_SHARPEDO_MEGA] = gMonIcon_SharpedoMega, - [SPECIES_CAMERUPT_MEGA] = gMonIcon_CameruptMega, - [SPECIES_ALTARIA_MEGA] = gMonIcon_AltariaMega, - [SPECIES_BANETTE_MEGA] = gMonIcon_BanetteMega, - [SPECIES_ABSOL_MEGA] = gMonIcon_AbsolMega, - [SPECIES_GLALIE_MEGA] = gMonIcon_GlalieMega, - [SPECIES_SALAMENCE_MEGA] = gMonIcon_SalamenceMega, - [SPECIES_METAGROSS_MEGA] = gMonIcon_MetagrossMega, - [SPECIES_LATIAS_MEGA] = gMonIcon_LatiasMega, - [SPECIES_LATIOS_MEGA] = gMonIcon_LatiosMega, - [SPECIES_LOPUNNY_MEGA] = gMonIcon_LopunnyMega, - [SPECIES_GARCHOMP_MEGA] = gMonIcon_GarchompMega, - [SPECIES_LUCARIO_MEGA] = gMonIcon_LucarioMega, - [SPECIES_ABOMASNOW_MEGA] = gMonIcon_AbomasnowMega, - [SPECIES_GALLADE_MEGA] = gMonIcon_GalladeMega, - [SPECIES_AUDINO_MEGA] = gMonIcon_AudinoMega, - [SPECIES_DIANCIE_MEGA] = gMonIcon_DiancieMega, - [SPECIES_RAYQUAZA_MEGA] = gMonIcon_RayquazaMega, - [SPECIES_KYOGRE_PRIMAL] = gMonIcon_KyogrePrimal, - [SPECIES_GROUDON_PRIMAL] = gMonIcon_GroudonPrimal, - [SPECIES_RATTATA_ALOLAN] = gMonIcon_RattataAlolan, - [SPECIES_RATICATE_ALOLAN] = gMonIcon_RaticateAlolan, - [SPECIES_RAICHU_ALOLAN] = gMonIcon_RaichuAlolan, - [SPECIES_SANDSHREW_ALOLAN] = gMonIcon_SandshrewAlolan, - [SPECIES_SANDSLASH_ALOLAN] = gMonIcon_SandslashAlolan, - [SPECIES_VULPIX_ALOLAN] = gMonIcon_VulpixAlolan, - [SPECIES_NINETALES_ALOLAN] = gMonIcon_NinetalesAlolan, - [SPECIES_DIGLETT_ALOLAN] = gMonIcon_DiglettAlolan, - [SPECIES_DUGTRIO_ALOLAN] = gMonIcon_DugtrioAlolan, - [SPECIES_MEOWTH_ALOLAN] = gMonIcon_MeowthAlolan, - [SPECIES_PERSIAN_ALOLAN] = gMonIcon_PersianAlolan, - [SPECIES_GEODUDE_ALOLAN] = gMonIcon_GeodudeAlolan, - [SPECIES_GRAVELER_ALOLAN] = gMonIcon_GravelerAlolan, - [SPECIES_GOLEM_ALOLAN] = gMonIcon_GolemAlolan, - [SPECIES_GRIMER_ALOLAN] = gMonIcon_GrimerAlolan, - [SPECIES_MUK_ALOLAN] = gMonIcon_MukAlolan, - [SPECIES_EXEGGUTOR_ALOLAN] = gMonIcon_ExeggutorAlolan, - [SPECIES_MAROWAK_ALOLAN] = gMonIcon_MarowakAlolan, - [SPECIES_MEOWTH_GALARIAN] = gMonIcon_MeowthGalarian, - [SPECIES_PONYTA_GALARIAN] = gMonIcon_PonytaGalarian, - [SPECIES_RAPIDASH_GALARIAN] = gMonIcon_RapidashGalarian, - [SPECIES_SLOWPOKE_GALARIAN] = gMonIcon_SlowpokeGalarian, - [SPECIES_SLOWBRO_GALARIAN] = gMonIcon_SlowbroGalarian, - [SPECIES_FARFETCHD_GALARIAN] = gMonIcon_FarfetchdGalarian, - [SPECIES_WEEZING_GALARIAN] = gMonIcon_WeezingGalarian, - [SPECIES_MR_MIME_GALARIAN] = gMonIcon_MrMimeGalarian, - [SPECIES_ARTICUNO_GALARIAN] = gMonIcon_ArticunoGalarian, - [SPECIES_ZAPDOS_GALARIAN] = gMonIcon_ZapdosGalarian, - [SPECIES_MOLTRES_GALARIAN] = gMonIcon_MoltresGalarian, - [SPECIES_SLOWKING_GALARIAN] = gMonIcon_SlowkingGalarian, - [SPECIES_CORSOLA_GALARIAN] = gMonIcon_CorsolaGalarian, - [SPECIES_ZIGZAGOON_GALARIAN] = gMonIcon_ZigzagoonGalarian, - [SPECIES_LINOONE_GALARIAN] = gMonIcon_LinooneGalarian, - [SPECIES_DARUMAKA_GALARIAN] = gMonIcon_DarumakaGalarian, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = gMonIcon_DarmanitanGalarianStandardMode, - [SPECIES_YAMASK_GALARIAN] = gMonIcon_YamaskGalarian, - [SPECIES_STUNFISK_GALARIAN] = gMonIcon_StunfiskGalarian, - [SPECIES_GROWLITHE_HISUIAN] = gMonIcon_GrowlitheHisuian, - [SPECIES_ARCANINE_HISUIAN] = gMonIcon_ArcanineHisuian, - [SPECIES_VOLTORB_HISUIAN] = gMonIcon_VoltorbHisuian, - [SPECIES_ELECTRODE_HISUIAN] = gMonIcon_ElectrodeHisuian, - [SPECIES_TYPHLOSION_HISUIAN] = gMonIcon_TyphlosionHisuian, - [SPECIES_QWILFISH_HISUIAN] = gMonIcon_QwilfishHisuian, - [SPECIES_SNEASEL_HISUIAN] = gMonIcon_SneaselHisuian, - [SPECIES_SAMUROTT_HISUIAN] = gMonIcon_SamurottHisuian, - [SPECIES_LILLIGANT_HISUIAN] = gMonIcon_LilligantHisuian, - [SPECIES_ZORUA_HISUIAN] = gMonIcon_ZoruaHisuian, - [SPECIES_ZOROARK_HISUIAN] = gMonIcon_ZoroarkHisuian, - [SPECIES_BRAVIARY_HISUIAN] = gMonIcon_BraviaryHisuian, - [SPECIES_SLIGGOO_HISUIAN] = gMonIcon_SliggooHisuian, - [SPECIES_GOODRA_HISUIAN] = gMonIcon_GoodraHisuian, - [SPECIES_AVALUGG_HISUIAN] = gMonIcon_AvaluggHisuian, - [SPECIES_DECIDUEYE_HISUIAN] = gMonIcon_DecidueyeHisuian, - [SPECIES_PIKACHU_COSPLAY] = gMonIcon_PikachuCosplay, - [SPECIES_PIKACHU_ROCK_STAR] = gMonIcon_PikachuRockStar, - [SPECIES_PIKACHU_BELLE] = gMonIcon_PikachuBelle, - [SPECIES_PIKACHU_POP_STAR] = gMonIcon_PikachuPopStar, - [SPECIES_PIKACHU_PH_D] = gMonIcon_PikachuPhD, - [SPECIES_PIKACHU_LIBRE] = gMonIcon_PikachuLibre, - [SPECIES_PIKACHU_ORIGINAL_CAP] = gMonIcon_PikachuOriginalCap, - [SPECIES_PIKACHU_HOENN_CAP] = gMonIcon_PikachuHoennCap, - [SPECIES_PIKACHU_SINNOH_CAP] = gMonIcon_PikachuSinnohCap, - [SPECIES_PIKACHU_UNOVA_CAP] = gMonIcon_PikachuUnovaCap, - [SPECIES_PIKACHU_KALOS_CAP] = gMonIcon_PikachuKalosCap, - [SPECIES_PIKACHU_ALOLA_CAP] = gMonIcon_PikachuAlolaCap, - [SPECIES_PIKACHU_PARTNER_CAP] = gMonIcon_PikachuPartnerCap, - [SPECIES_PIKACHU_WORLD_CAP] = gMonIcon_PikachuWorldCap, - [SPECIES_PICHU_SPIKY_EARED] = gMonIcon_PichuSpikyEared, - [SPECIES_UNOWN_B] = gMonIcon_UnownB, - [SPECIES_UNOWN_C] = gMonIcon_UnownC, - [SPECIES_UNOWN_D] = gMonIcon_UnownD, - [SPECIES_UNOWN_E] = gMonIcon_UnownE, - [SPECIES_UNOWN_F] = gMonIcon_UnownF, - [SPECIES_UNOWN_G] = gMonIcon_UnownG, - [SPECIES_UNOWN_H] = gMonIcon_UnownH, - [SPECIES_UNOWN_I] = gMonIcon_UnownI, - [SPECIES_UNOWN_J] = gMonIcon_UnownJ, - [SPECIES_UNOWN_K] = gMonIcon_UnownK, - [SPECIES_UNOWN_L] = gMonIcon_UnownL, - [SPECIES_UNOWN_M] = gMonIcon_UnownM, - [SPECIES_UNOWN_N] = gMonIcon_UnownN, - [SPECIES_UNOWN_O] = gMonIcon_UnownO, - [SPECIES_UNOWN_P] = gMonIcon_UnownP, - [SPECIES_UNOWN_Q] = gMonIcon_UnownQ, - [SPECIES_UNOWN_R] = gMonIcon_UnownR, - [SPECIES_UNOWN_S] = gMonIcon_UnownS, - [SPECIES_UNOWN_T] = gMonIcon_UnownT, - [SPECIES_UNOWN_U] = gMonIcon_UnownU, - [SPECIES_UNOWN_V] = gMonIcon_UnownV, - [SPECIES_UNOWN_W] = gMonIcon_UnownW, - [SPECIES_UNOWN_X] = gMonIcon_UnownX, - [SPECIES_UNOWN_Y] = gMonIcon_UnownY, - [SPECIES_UNOWN_Z] = gMonIcon_UnownZ, - [SPECIES_UNOWN_EMARK] = gMonIcon_UnownExclamationMark, - [SPECIES_UNOWN_QMARK] = gMonIcon_UnownQuestionMark, - [SPECIES_CASTFORM_SUNNY] = gMonIcon_CastformSunny, - [SPECIES_CASTFORM_RAINY] = gMonIcon_CastformRainy, - [SPECIES_CASTFORM_SNOWY] = gMonIcon_CastformSnowy, - [SPECIES_DEOXYS_ATTACK] = gMonIcon_DeoxysAttack, - [SPECIES_DEOXYS_DEFENSE] = gMonIcon_DeoxysDefense, - [SPECIES_DEOXYS_SPEED] = gMonIcon_DeoxysSpeed, - [SPECIES_BURMY_SANDY_CLOAK] = gMonIcon_BurmySandyCloak, - [SPECIES_BURMY_TRASH_CLOAK] = gMonIcon_BurmyTrashCloak, - [SPECIES_WORMADAM_SANDY_CLOAK] = gMonIcon_WormadamSandyCloak, - [SPECIES_WORMADAM_TRASH_CLOAK] = gMonIcon_WormadamTrashCloak, - [SPECIES_CHERRIM_SUNSHINE] = gMonIcon_CherrimSunshine, - [SPECIES_SHELLOS_EAST_SEA] = gMonIcon_ShellosEastSea, - [SPECIES_GASTRODON_EAST_SEA] = gMonIcon_GastrodonEastSea, - [SPECIES_ROTOM_HEAT] = gMonIcon_RotomHeat, - [SPECIES_ROTOM_WASH] = gMonIcon_RotomWash, - [SPECIES_ROTOM_FROST] = gMonIcon_RotomFrost, - [SPECIES_ROTOM_FAN] = gMonIcon_RotomFan, - [SPECIES_ROTOM_MOW] = gMonIcon_RotomMow, - [SPECIES_DIALGA_ORIGIN] = gMonIcon_DialgaOrigin, - [SPECIES_PALKIA_ORIGIN] = gMonIcon_PalkiaOrigin, - [SPECIES_GIRATINA_ORIGIN] = gMonIcon_GiratinaOrigin, - [SPECIES_SHAYMIN_SKY] = gMonIcon_ShayminSky, - [SPECIES_ARCEUS_FIGHTING] = gMonIcon_Arceus, - [SPECIES_ARCEUS_FLYING] = gMonIcon_Arceus, - [SPECIES_ARCEUS_POISON] = gMonIcon_Arceus, - [SPECIES_ARCEUS_GROUND] = gMonIcon_Arceus, - [SPECIES_ARCEUS_ROCK] = gMonIcon_Arceus, - [SPECIES_ARCEUS_BUG] = gMonIcon_Arceus, - [SPECIES_ARCEUS_GHOST] = gMonIcon_Arceus, - [SPECIES_ARCEUS_STEEL] = gMonIcon_Arceus, - [SPECIES_ARCEUS_FIRE] = gMonIcon_Arceus, - [SPECIES_ARCEUS_WATER] = gMonIcon_Arceus, - [SPECIES_ARCEUS_GRASS] = gMonIcon_Arceus, - [SPECIES_ARCEUS_ELECTRIC] = gMonIcon_Arceus, - [SPECIES_ARCEUS_PSYCHIC] = gMonIcon_Arceus, - [SPECIES_ARCEUS_ICE] = gMonIcon_Arceus, - [SPECIES_ARCEUS_DRAGON] = gMonIcon_Arceus, - [SPECIES_ARCEUS_DARK] = gMonIcon_Arceus, - [SPECIES_ARCEUS_FAIRY] = gMonIcon_Arceus, - [SPECIES_BASCULIN_BLUE_STRIPED] = gMonIcon_BasculinBlueStriped, - [SPECIES_BASCULIN_WHITE_STRIPED] = gMonIcon_BasculinWhiteStriped, - [SPECIES_DARMANITAN_ZEN_MODE] = gMonIcon_DarmanitanZenMode, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = gMonIcon_DarmanitanGalarianZenMode, - [SPECIES_DEERLING_SUMMER] = gMonIcon_DeerlingSummer, - [SPECIES_DEERLING_AUTUMN] = gMonIcon_DeerlingAutumn, - [SPECIES_DEERLING_WINTER] = gMonIcon_DeerlingWinter, - [SPECIES_SAWSBUCK_SUMMER] = gMonIcon_SawsbuckSummer, - [SPECIES_SAWSBUCK_AUTUMN] = gMonIcon_SawsbuckAutumn, - [SPECIES_SAWSBUCK_WINTER] = gMonIcon_SawsbuckWinter, - [SPECIES_TORNADUS_THERIAN] = gMonIcon_TornadusTherian, - [SPECIES_THUNDURUS_THERIAN] = gMonIcon_ThundurusTherian, - [SPECIES_LANDORUS_THERIAN] = gMonIcon_LandorusTherian, - [SPECIES_KYUREM_WHITE] = gMonIcon_KyuremWhite, - [SPECIES_KYUREM_BLACK] = gMonIcon_KyuremBlack, - [SPECIES_KELDEO_RESOLUTE] = gMonIcon_KeldeoResolute, - [SPECIES_MELOETTA_PIROUETTE] = gMonIcon_MeloettaPirouette, - [SPECIES_GENESECT_DOUSE_DRIVE] = gMonIcon_Genesect, - [SPECIES_GENESECT_SHOCK_DRIVE] = gMonIcon_Genesect, - [SPECIES_GENESECT_BURN_DRIVE] = gMonIcon_Genesect, - [SPECIES_GENESECT_CHILL_DRIVE] = gMonIcon_Genesect, - [SPECIES_GRENINJA_BATTLE_BOND] = gMonIcon_Greninja, - [SPECIES_GRENINJA_ASH] = gMonIcon_GreninjaAsh, - [SPECIES_VIVILLON_POLAR] = gMonIcon_VivillonPolar, - [SPECIES_VIVILLON_TUNDRA] = gMonIcon_VivillonTundra, - [SPECIES_VIVILLON_CONTINENTAL] = gMonIcon_VivillonContinental, - [SPECIES_VIVILLON_GARDEN] = gMonIcon_VivillonGarden, - [SPECIES_VIVILLON_ELEGANT] = gMonIcon_VivillonElegant, - [SPECIES_VIVILLON_MEADOW] = gMonIcon_VivillonMeadow, - [SPECIES_VIVILLON_MODERN] = gMonIcon_VivillonModern, - [SPECIES_VIVILLON_MARINE] = gMonIcon_VivillonMarine, - [SPECIES_VIVILLON_ARCHIPELAGO] = gMonIcon_VivillonArchipelago, - [SPECIES_VIVILLON_HIGH_PLAINS] = gMonIcon_VivillonHighPlains, - [SPECIES_VIVILLON_SANDSTORM] = gMonIcon_VivillonSandstorm, - [SPECIES_VIVILLON_RIVER] = gMonIcon_VivillonRiver, - [SPECIES_VIVILLON_MONSOON] = gMonIcon_VivillonMonsoon, - [SPECIES_VIVILLON_SAVANNA] = gMonIcon_VivillonSavanna, - [SPECIES_VIVILLON_SUN] = gMonIcon_VivillonSun, - [SPECIES_VIVILLON_OCEAN] = gMonIcon_VivillonOcean, - [SPECIES_VIVILLON_JUNGLE] = gMonIcon_VivillonJungle, - [SPECIES_VIVILLON_FANCY] = gMonIcon_VivillonFancy, - [SPECIES_VIVILLON_POKE_BALL] = gMonIcon_VivillonPokeBall, - [SPECIES_FLABEBE_YELLOW_FLOWER] = gMonIcon_FlabebeYellowFlower, - [SPECIES_FLABEBE_ORANGE_FLOWER] = gMonIcon_FlabebeOrangeFlower, - [SPECIES_FLABEBE_BLUE_FLOWER] = gMonIcon_FlabebeBlueFlower, - [SPECIES_FLABEBE_WHITE_FLOWER] = gMonIcon_FlabebeWhiteFlower, - [SPECIES_FLOETTE_YELLOW_FLOWER] = gMonIcon_FloetteYellowFlower, - [SPECIES_FLOETTE_ORANGE_FLOWER] = gMonIcon_FloetteOrangeFlower, - [SPECIES_FLOETTE_BLUE_FLOWER] = gMonIcon_FloetteBlueFlower, - [SPECIES_FLOETTE_WHITE_FLOWER] = gMonIcon_FloetteWhiteFlower, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = gMonIcon_FloetteEternalFlower, - [SPECIES_FLORGES_YELLOW_FLOWER] = gMonIcon_FlorgesYellowFlower, - [SPECIES_FLORGES_ORANGE_FLOWER] = gMonIcon_FlorgesOrangeFlower, - [SPECIES_FLORGES_BLUE_FLOWER] = gMonIcon_FlorgesBlueFlower, - [SPECIES_FLORGES_WHITE_FLOWER] = gMonIcon_FlorgesWhiteFlower, - [SPECIES_FURFROU_HEART_TRIM] = gMonIcon_FurfrouHeartTrim, - [SPECIES_FURFROU_STAR_TRIM] = gMonIcon_FurfrouStarTrim, - [SPECIES_FURFROU_DIAMOND_TRIM] = gMonIcon_FurfrouDiamondTrim, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = gMonIcon_FurfrouDebutanteTrim, - [SPECIES_FURFROU_MATRON_TRIM] = gMonIcon_FurfrouMatronTrim, - [SPECIES_FURFROU_DANDY_TRIM] = gMonIcon_FurfrouDandyTrim, - [SPECIES_FURFROU_LA_REINE_TRIM] = gMonIcon_FurfrouLaReineTrim, - [SPECIES_FURFROU_KABUKI_TRIM] = gMonIcon_FurfrouKabukiTrim, - [SPECIES_FURFROU_PHARAOH_TRIM] = gMonIcon_FurfrouPharaohTrim, - [SPECIES_MEOWSTIC_FEMALE] = gMonIcon_MeowsticFemale, - [SPECIES_AEGISLASH_BLADE] = gMonIcon_AegislashBlade, - [SPECIES_PUMPKABOO_SMALL] = gMonIcon_Pumpkaboo, - [SPECIES_PUMPKABOO_LARGE] = gMonIcon_Pumpkaboo, - [SPECIES_PUMPKABOO_SUPER] = gMonIcon_Pumpkaboo, - [SPECIES_GOURGEIST_SMALL] = gMonIcon_Gourgeist, - [SPECIES_GOURGEIST_LARGE] = gMonIcon_Gourgeist, - [SPECIES_GOURGEIST_SUPER] = gMonIcon_Gourgeist, - [SPECIES_XERNEAS_ACTIVE] = gMonIcon_XerneasActive, - [SPECIES_ZYGARDE_10_AURA_BREAK] = gMonIcon_Zygarde10, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = gMonIcon_Zygarde10, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = gMonIcon_Zygarde50, - [SPECIES_ZYGARDE_COMPLETE] = gMonIcon_ZygardeComplete, - [SPECIES_HOOPA_UNBOUND] = gMonIcon_HoopaUnbound, - [SPECIES_ORICORIO_POM_POM] = gMonIcon_OricorioPomPom, - [SPECIES_ORICORIO_PAU] = gMonIcon_OricorioPau, - [SPECIES_ORICORIO_SENSU] = gMonIcon_OricorioSensu, - [SPECIES_ROCKRUFF_OWN_TEMPO] = gMonIcon_Rockruff, - [SPECIES_LYCANROC_MIDNIGHT] = gMonIcon_LycanrocMidnight, - [SPECIES_LYCANROC_DUSK] = gMonIcon_LycanrocDusk, - [SPECIES_WISHIWASHI_SCHOOL] = gMonIcon_WishiwashiSchool, - [SPECIES_SILVALLY_FIGHTING] = gMonIcon_Silvally, - [SPECIES_SILVALLY_FLYING] = gMonIcon_Silvally, - [SPECIES_SILVALLY_POISON] = gMonIcon_Silvally, - [SPECIES_SILVALLY_GROUND] = gMonIcon_Silvally, - [SPECIES_SILVALLY_ROCK] = gMonIcon_Silvally, - [SPECIES_SILVALLY_BUG] = gMonIcon_Silvally, - [SPECIES_SILVALLY_GHOST] = gMonIcon_Silvally, - [SPECIES_SILVALLY_STEEL] = gMonIcon_Silvally, - [SPECIES_SILVALLY_FIRE] = gMonIcon_Silvally, - [SPECIES_SILVALLY_WATER] = gMonIcon_Silvally, - [SPECIES_SILVALLY_GRASS] = gMonIcon_Silvally, - [SPECIES_SILVALLY_ELECTRIC] = gMonIcon_Silvally, - [SPECIES_SILVALLY_PSYCHIC] = gMonIcon_Silvally, - [SPECIES_SILVALLY_ICE] = gMonIcon_Silvally, - [SPECIES_SILVALLY_DRAGON] = gMonIcon_Silvally, - [SPECIES_SILVALLY_DARK] = gMonIcon_Silvally, - [SPECIES_SILVALLY_FAIRY] = gMonIcon_Silvally, - [SPECIES_MINIOR_METEOR_ORANGE] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_METEOR_YELLOW] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_METEOR_GREEN] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_METEOR_BLUE] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_METEOR_INDIGO] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_METEOR_VIOLET] = gMonIcon_MiniorMeteor, - [SPECIES_MINIOR_CORE_RED] = gMonIcon_MiniorCoreRed, - [SPECIES_MINIOR_CORE_ORANGE] = gMonIcon_MiniorCoreOrange, - [SPECIES_MINIOR_CORE_YELLOW] = gMonIcon_MiniorCoreYellow, - [SPECIES_MINIOR_CORE_GREEN] = gMonIcon_MiniorCoreGreen, - [SPECIES_MINIOR_CORE_BLUE] = gMonIcon_MiniorCoreBlue, - [SPECIES_MINIOR_CORE_INDIGO] = gMonIcon_MiniorCoreIndigo, - [SPECIES_MINIOR_CORE_VIOLET] = gMonIcon_MiniorCoreViolet, - [SPECIES_MIMIKYU_BUSTED] = gMonIcon_MimikyuBusted, - [SPECIES_NECROZMA_DUSK_MANE] = gMonIcon_NecrozmaDuskMane, - [SPECIES_NECROZMA_DAWN_WINGS] = gMonIcon_NecrozmaDawnWings, - [SPECIES_NECROZMA_ULTRA] = gMonIcon_NecrozmaUltra, - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = gMonIcon_MagearnaOriginalColor, - [SPECIES_CRAMORANT_GULPING] = gMonIcon_CramorantGulping, - [SPECIES_CRAMORANT_GORGING] = gMonIcon_CramorantGorging, - [SPECIES_TOXTRICITY_LOW_KEY] = gMonIcon_ToxtricityLowKey, - [SPECIES_SINISTEA_ANTIQUE] = gMonIcon_Sinistea, - [SPECIES_POLTEAGEIST_ANTIQUE] = gMonIcon_Polteageist, - [SPECIES_EISCUE_NOICE_FACE] = gMonIcon_EiscueNoiceFace, - [SPECIES_INDEEDEE_FEMALE] = gMonIcon_IndeedeeFemale, - [SPECIES_MORPEKO_HANGRY] = gMonIcon_MorpekoHangry, - [SPECIES_ZACIAN_CROWNED_SWORD] = gMonIcon_ZacianCrownedSword, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = gMonIcon_ZamazentaCrownedShield, - [SPECIES_ETERNATUS_ETERNAMAX] = gMonIcon_EternatusEternamax, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = gMonIcon_UrshifuSingleStrikeStyle, - [SPECIES_ZARUDE_DADA] = gMonIcon_ZarudeDada, - [SPECIES_CALYREX_ICE_RIDER] = gMonIcon_CalyrexIceRider, - [SPECIES_CALYREX_SHADOW_RIDER] = gMonIcon_CalyrexShadowRider, - [SPECIES_ENAMORUS_THERIAN] = gMonIcon_EnamorusTherian, - [SPECIES_BASCULEGION_FEMALE] = gMonIcon_BasculegionFemale, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = gMonIcon_VenusaurGigantamax, - [SPECIES_CHARIZARD_GIGANTAMAX] = gMonIcon_CharizardGigantamax, - [SPECIES_BLASTOISE_GIGANTAMAX] = gMonIcon_BlastoiseGigantamax, - [SPECIES_BUTTERFREE_GIGANTAMAX] = gMonIcon_ButterfreeGigantamax, - [SPECIES_PIKACHU_GIGANTAMAX] = gMonIcon_PikachuGigantamax, - [SPECIES_MEOWTH_GIGANTAMAX] = gMonIcon_MeowthGigantamax, - [SPECIES_MACHAMP_GIGANTAMAX] = gMonIcon_MachampGigantamax, - [SPECIES_GENGAR_GIGANTAMAX] = gMonIcon_GengarGigantamax, - [SPECIES_KINGLER_GIGANTAMAX] = gMonIcon_KinglerGigantamax, - [SPECIES_LAPRAS_GIGANTAMAX] = gMonIcon_LaprasGigantamax, - [SPECIES_EEVEE_GIGANTAMAX] = gMonIcon_EeveeGigantamax, - [SPECIES_SNORLAX_GIGANTAMAX] = gMonIcon_SnorlaxGigantamax, - [SPECIES_GARBODOR_GIGANTAMAX] = gMonIcon_GarbodorGigantamax, - [SPECIES_MELMETAL_GIGANTAMAX] = gMonIcon_MelmetalGigantamax, - [SPECIES_RILLABOOM_GIGANTAMAX] = gMonIcon_RillaboomGigantamax, - [SPECIES_CINDERACE_GIGANTAMAX] = gMonIcon_CinderaceGigantamax, - [SPECIES_INTELEON_GIGANTAMAX] = gMonIcon_InteleonGigantamax, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = gMonIcon_CorviknightGigantamax, - [SPECIES_ORBEETLE_GIGANTAMAX] = gMonIcon_OrbeetleGigantamax, - [SPECIES_DREDNAW_GIGANTAMAX] = gMonIcon_DrednawGigantamax, - [SPECIES_COALOSSAL_GIGANTAMAX] = gMonIcon_CoalossalGigantamax, - [SPECIES_FLAPPLE_GIGANTAMAX] = gMonIcon_FlappleGigantamax, - [SPECIES_APPLETUN_GIGANTAMAX] = gMonIcon_AppletunGigantamax, - [SPECIES_SANDACONDA_GIGANTAMAX] = gMonIcon_SandacondaGigantamax, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = gMonIcon_ToxtricityGigantamax, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = gMonIcon_ToxtricityGigantamax, - [SPECIES_CENTISKORCH_GIGANTAMAX] = gMonIcon_CentiskorchGigantamax, - [SPECIES_HATTERENE_GIGANTAMAX] = gMonIcon_HattereneGigantamax, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = gMonIcon_GrimmsnarlGigantamax, - [SPECIES_ALCREMIE_GIGANTAMAX] = gMonIcon_AlcremieGigantamax, - [SPECIES_COPPERAJAH_GIGANTAMAX] = gMonIcon_CopperajahGigantamax, - [SPECIES_DURALUDON_GIGANTAMAX] = gMonIcon_DuraludonGigantamax, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = gMonIcon_UrshifuSingleStrikeGigantamax, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = gMonIcon_UrshifuRapidStrikeGigantamax, - [SPECIES_SPRIGATITO] = gMonIcon_Sprigatito, - [SPECIES_FLORAGATO] = gMonIcon_Floragato, - [SPECIES_MEOWSCARADA] = gMonIcon_Meowscarada, - [SPECIES_FUECOCO] = gMonIcon_Fuecoco, - [SPECIES_CROCALOR] = gMonIcon_Crocalor, - [SPECIES_SKELEDIRGE] = gMonIcon_Skeledirge, - [SPECIES_QUAXLY] = gMonIcon_Quaxly, - [SPECIES_QUAXWELL] = gMonIcon_Quaxwell, - [SPECIES_QUAQUAVAL] = gMonIcon_Quaquaval, - [SPECIES_LECHONK] = gMonIcon_Lechonk, - [SPECIES_OINKOLOGNE_MALE] = gMonIcon_OinkologneMale, - [SPECIES_OINKOLOGNE_FEMALE] = gMonIcon_OinkologneFemale, - [SPECIES_TAROUNTULA] = gMonIcon_Tarountula, - [SPECIES_SPIDOPS] = gMonIcon_Spidops, - [SPECIES_NYMBLE] = gMonIcon_Nymble, - [SPECIES_LOKIX] = gMonIcon_Lokix, - [SPECIES_PAWMI] = gMonIcon_Pawmi, - [SPECIES_PAWMO] = gMonIcon_Pawmo, - [SPECIES_PAWMOT] = gMonIcon_Pawmot, - [SPECIES_TANDEMAUS] = gMonIcon_Tandemaus, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = gMonIcon_MausholdFamilyOfThree, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = gMonIcon_MausholdFamilyOfFour, - [SPECIES_FIDOUGH] = gMonIcon_Fidough, - [SPECIES_DACHSBUN] = gMonIcon_Dachsbun, - [SPECIES_SMOLIV] = gMonIcon_Smoliv, - [SPECIES_DOLLIV] = gMonIcon_Dolliv, - [SPECIES_ARBOLIVA] = gMonIcon_Arboliva, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = gMonIcon_SquawkabillyGreenPlumage, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = gMonIcon_SquawkabillyBluePlumage, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = gMonIcon_SquawkabillyYellowPlumage, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = gMonIcon_SquawkabillyWhitePlumage, - [SPECIES_NACLI] = gMonIcon_Nacli, - [SPECIES_NACLSTACK] = gMonIcon_Naclstack, - [SPECIES_GARGANACL] = gMonIcon_Garganacl, - [SPECIES_CHARCADET] = gMonIcon_Charcadet, - [SPECIES_ARMAROUGE] = gMonIcon_Armarouge, - [SPECIES_CERULEDGE] = gMonIcon_Ceruledge, - [SPECIES_TADBULB] = gMonIcon_Tadbulb, - [SPECIES_BELLIBOLT] = gMonIcon_Bellibolt, - [SPECIES_WATTREL] = gMonIcon_Wattrel, - [SPECIES_KILOWATTREL] = gMonIcon_Kilowattrel, - [SPECIES_MASCHIFF] = gMonIcon_Maschiff, - [SPECIES_MABOSSTIFF] = gMonIcon_Mabosstiff, - [SPECIES_SHROODLE] = gMonIcon_Shroodle, - [SPECIES_GRAFAIAI] = gMonIcon_Grafaiai, - [SPECIES_BRAMBLIN] = gMonIcon_Bramblin, - [SPECIES_BRAMBLEGHAST] = gMonIcon_Brambleghast, - [SPECIES_TOEDSCOOL] = gMonIcon_Toedscool, - [SPECIES_TOEDSCRUEL] = gMonIcon_Toedscruel, - [SPECIES_KLAWF] = gMonIcon_Klawf, - [SPECIES_CAPSAKID] = gMonIcon_Capsakid, - [SPECIES_SCOVILLAIN] = gMonIcon_Scovillain, - [SPECIES_RELLOR] = gMonIcon_Rellor, - [SPECIES_RABSCA] = gMonIcon_Rabsca, - [SPECIES_FLITTLE] = gMonIcon_Flittle, - [SPECIES_ESPATHRA] = gMonIcon_Espathra, - [SPECIES_TINKATINK] = gMonIcon_Tinkatink, - [SPECIES_TINKATUFF] = gMonIcon_Tinkatuff, - [SPECIES_TINKATON] = gMonIcon_Tinkaton, - [SPECIES_WIGLETT] = gMonIcon_Wiglett, - [SPECIES_WUGTRIO] = gMonIcon_Wugtrio, - [SPECIES_BOMBIRDIER] = gMonIcon_Bombirdier, - [SPECIES_FINIZEN] = gMonIcon_Finizen, - [SPECIES_PALAFIN_ZERO] = gMonIcon_PalafinZero, - [SPECIES_PALAFIN_HERO] = gMonIcon_PalafinHero, - [SPECIES_VAROOM] = gMonIcon_Varoom, - [SPECIES_REVAVROOM] = gMonIcon_Revavroom, - [SPECIES_CYCLIZAR] = gMonIcon_Cyclizar, - [SPECIES_ORTHWORM] = gMonIcon_Orthworm, - [SPECIES_GLIMMET] = gMonIcon_Glimmet, - [SPECIES_GLIMMORA] = gMonIcon_Glimmora, - [SPECIES_GREAVARD] = gMonIcon_Greavard, - [SPECIES_HOUNDSTONE] = gMonIcon_Houndstone, - [SPECIES_FLAMIGO] = gMonIcon_Flamigo, - [SPECIES_CETODDLE] = gMonIcon_Cetoddle, - [SPECIES_CETITAN] = gMonIcon_Cetitan, - [SPECIES_VELUZA] = gMonIcon_Veluza, - [SPECIES_DONDOZO] = gMonIcon_Dondozo, - [SPECIES_TATSUGIRI_CURLY] = gMonIcon_TatsugiriCurly, - [SPECIES_TATSUGIRI_DROOPY] = gMonIcon_TatsugiriDroopy, - [SPECIES_TATSUGIRI_STRETCHY] = gMonIcon_TatsugiriStretchy, - [SPECIES_ANNIHILAPE] = gMonIcon_Annihilape, - [SPECIES_CLODSIRE] = gMonIcon_Clodsire, - [SPECIES_FARIGIRAF] = gMonIcon_Farigiraf, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = gMonIcon_Dudunsparce, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = gMonIcon_Dudunsparce, - [SPECIES_KINGAMBIT] = gMonIcon_Kingambit, - [SPECIES_GREAT_TUSK] = gMonIcon_GreatTusk, - [SPECIES_SCREAM_TAIL] = gMonIcon_ScreamTail, - [SPECIES_BRUTE_BONNET] = gMonIcon_BruteBonnet, - [SPECIES_FLUTTER_MANE] = gMonIcon_FlutterMane, - [SPECIES_SLITHER_WING] = gMonIcon_SlitherWing, - [SPECIES_SANDY_SHOCKS] = gMonIcon_SandyShocks, - [SPECIES_IRON_TREADS] = gMonIcon_IronTreads, - [SPECIES_IRON_BUNDLE] = gMonIcon_IronBundle, - [SPECIES_IRON_HANDS] = gMonIcon_IronHands, - [SPECIES_IRON_JUGULIS] = gMonIcon_IronJugulis, - [SPECIES_IRON_MOTH] = gMonIcon_IronMoth, - [SPECIES_IRON_THORNS] = gMonIcon_IronThorns, - [SPECIES_FRIGIBAX] = gMonIcon_Frigibax, - [SPECIES_ARCTIBAX] = gMonIcon_Arctibax, - [SPECIES_BAXCALIBUR] = gMonIcon_Baxcalibur, - [SPECIES_GIMMIGHOUL_CHEST] = gMonIcon_GimmighoulChest, - [SPECIES_GIMMIGHOUL_ROAMING] = gMonIcon_GimmighoulRoaming, - [SPECIES_GHOLDENGO] = gMonIcon_Gholdengo, - [SPECIES_WO_CHIEN] = gMonIcon_WoChien, - [SPECIES_CHIEN_PAO] = gMonIcon_ChienPao, - [SPECIES_TING_LU] = gMonIcon_TingLu, - [SPECIES_CHI_YU] = gMonIcon_ChiYu, - [SPECIES_ROARING_MOON] = gMonIcon_RoaringMoon, - [SPECIES_IRON_VALIANT] = gMonIcon_IronValiant, - [SPECIES_KORAIDON] = gMonIcon_Koraidon, - [SPECIES_MIRAIDON] = gMonIcon_Miraidon, - [SPECIES_WALKING_WAKE] = gMonIcon_WalkingWake, - [SPECIES_IRON_LEAVES] = gMonIcon_IronLeaves, - [SPECIES_DIPPLIN] = gMonIcon_Dipplin, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = gMonIcon_Poltchageist, - [SPECIES_POLTCHAGEIST_ARTISAN] = gMonIcon_Poltchageist, - [SPECIES_SINISTCHA_UNREMARKABLE] = gMonIcon_Sinistcha, - [SPECIES_SINISTCHA_MASTERPIECE] = gMonIcon_Sinistcha, - [SPECIES_OKIDOGI] = gMonIcon_Okidogi, - [SPECIES_MUNKIDORI] = gMonIcon_Munkidori, - [SPECIES_FEZANDIPITI] = gMonIcon_Fezandipiti, - [SPECIES_OGERPON_TEAL_MASK] = gMonIcon_OgerponTealMask, - //[SPECIES_OGERPON_WELLSPRING_MASK] = gMonIcon_OgerponWellspringMask, TODO - //[SPECIES_OGERPON_HEARTHFLAME_MASK] = gMonIcon_OgerponHearthflameMask, TODO - //[SPECIES_OGERPON_CORNERSTONE_MASK] = gMonIcon_OgerponCornerstoneMask, TODO - [SPECIES_OGERPON_TEAL_MASK_TERA] = gMonIcon_OgerponTealMask, - //[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = gMonIcon_OgerponWellspringMask, TODO - //[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = gMonIcon_OgerponHearthflameMask, TODO - //[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = gMonIcon_OgerponCornerstoneMask, TODO - [SPECIES_EGG] = gMonIcon_Egg, -}; -*/ - const struct SpritePalette gMonIconPaletteTable[] = { { gMonIconPalettes[0], POKE_ICON_BASE_PAL_TAG + 0 },