From ee03065904fbd1e5f35e4a43c31c9cf4fb9c3d08 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 10 Oct 2022 20:29:12 -0300 Subject: [PATCH] Base form check --- include/pokedex.h | 1 + include/pokemon.h | 3 +- src/battle_main.c | 2 +- src/battle_script_commands.c | 4 +- src/contest_util.c | 5 +- src/data/pokemon/base_form_species_table.h | 920 +++++++++++++++++++++ src/debug.c | 8 +- src/easy_chat.c | 6 +- src/egg_hatch.c | 2 +- src/evolution_scene.c | 6 +- src/mystery_event_script.c | 5 +- src/pokedex.c | 25 +- src/pokemon.c | 30 +- src/script_pokemon_util.c | 6 +- src/trade.c | 3 +- src/tv.c | 4 +- 16 files changed, 986 insertions(+), 44 deletions(-) create mode 100644 src/data/pokemon/base_form_species_table.h diff --git a/include/pokedex.h b/include/pokedex.h index a38b1f6bf2..8e934de402 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -42,6 +42,7 @@ u16 GetHoennPokedexCount(u8); u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality); s8 GetSetPokedexSeenFlag(u16 species, u8 caseID); s8 GetSetPokedexCaughtFlag(u16 nationalDexNo, u8 caseID); +u16 GetPokedexFlagFirstSeen(u16 nationalDexNo); s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16); bool16 HasAllHoennMons(void); diff --git a/include/pokemon.h b/include/pokemon.h index 7918e11742..52d514c8d0 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -409,6 +409,7 @@ extern const u16 gUnionRoomFacilityClasses[]; extern const struct SpriteTemplate gBattlerSpriteTemplates[]; extern const s8 gNatureStatTable[][5]; extern const u32 sExpCandyExperienceTable[]; +extern const u16 gBaseFormSpeciesIdTable[NATIONAL_DEX_COUNT + 1]; void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); @@ -550,7 +551,7 @@ void BattleAnimateBackSprite(struct Sprite *sprite, u16 species); u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId); u16 FacilityClassToPicIndex(u16 facilityClass); u16 PlayerGenderToFrontTrainerPicId(u8 playerGender); -void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); +void HandleSetPokedexFlag(u16 species, u8 caseId, u32 personality); const u8 *GetTrainerClassNameFromId(u16 trainerId); const u8 *GetTrainerNameFromId(u16 trainerId); bool8 HasTwoFramesAnimation(u16 species); diff --git a/src/battle_main.c b/src/battle_main.c index e798796627..2655f7940f 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3584,7 +3584,7 @@ static void DoBattleIntro(void) | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER_HILL))) { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); + HandleSetPokedexFlag(gBattleMons[gActiveBattler].species, FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d4db1bd747..983206ece1 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5944,7 +5944,7 @@ static void Cmd_switchinanim(void) | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_FRONTIER))) - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); + HandleSetPokedexFlag(gBattleMons[gActiveBattler].species, FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); @@ -14238,7 +14238,7 @@ static void Cmd_trysetcaughtmondexflags(void) } else { - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT, personality); + HandleSetPokedexFlag(species, FLAG_SET_CAUGHT, personality); gBattlescriptCurrInstr += 5; } } diff --git a/src/contest_util.c b/src/contest_util.c index 1adb0d28bd..a30d09b750 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -964,7 +964,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId) static void Task_SetSeenWinnerMon(u8 taskId) { - int i, nationalDexNum; + int i; if (JOY_NEW(A_BUTTON)) { @@ -972,8 +972,7 @@ static void Task_SetSeenWinnerMon(u8 taskId) { for (i = 0; i < CONTESTANT_COUNT; i++) { - nationalDexNum = SpeciesToNationalPokedexNum(gContestMons[i].species); - GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); + GetSetPokedexSeenFlag(gContestMons[i].species, FLAG_SET_SEEN); } } diff --git a/src/data/pokemon/base_form_species_table.h b/src/data/pokemon/base_form_species_table.h new file mode 100644 index 0000000000..c683c9072f --- /dev/null +++ b/src/data/pokemon/base_form_species_table.h @@ -0,0 +1,920 @@ +#define NATIONAL_DEX_TO_SPECIES(species) [NATIONAL_DEX_##species] = SPECIES_##species + +const u16 gBaseFormSpeciesIdTable[NATIONAL_DEX_COUNT + 1] = +{ + NATIONAL_DEX_TO_SPECIES(NONE), + // Kanto + NATIONAL_DEX_TO_SPECIES(BULBASAUR), + NATIONAL_DEX_TO_SPECIES(IVYSAUR), + NATIONAL_DEX_TO_SPECIES(VENUSAUR), + NATIONAL_DEX_TO_SPECIES(CHARMANDER), + NATIONAL_DEX_TO_SPECIES(CHARMELEON), + NATIONAL_DEX_TO_SPECIES(CHARIZARD), + NATIONAL_DEX_TO_SPECIES(SQUIRTLE), + NATIONAL_DEX_TO_SPECIES(WARTORTLE), + NATIONAL_DEX_TO_SPECIES(BLASTOISE), + NATIONAL_DEX_TO_SPECIES(CATERPIE), + NATIONAL_DEX_TO_SPECIES(METAPOD), + NATIONAL_DEX_TO_SPECIES(BUTTERFREE), + NATIONAL_DEX_TO_SPECIES(WEEDLE), + NATIONAL_DEX_TO_SPECIES(KAKUNA), + NATIONAL_DEX_TO_SPECIES(BEEDRILL), + NATIONAL_DEX_TO_SPECIES(PIDGEY), + NATIONAL_DEX_TO_SPECIES(PIDGEOTTO), + NATIONAL_DEX_TO_SPECIES(PIDGEOT), + NATIONAL_DEX_TO_SPECIES(RATTATA), + NATIONAL_DEX_TO_SPECIES(RATICATE), + NATIONAL_DEX_TO_SPECIES(SPEAROW), + NATIONAL_DEX_TO_SPECIES(FEAROW), + NATIONAL_DEX_TO_SPECIES(EKANS), + NATIONAL_DEX_TO_SPECIES(ARBOK), + NATIONAL_DEX_TO_SPECIES(PIKACHU), + NATIONAL_DEX_TO_SPECIES(RAICHU), + NATIONAL_DEX_TO_SPECIES(SANDSHREW), + NATIONAL_DEX_TO_SPECIES(SANDSLASH), + NATIONAL_DEX_TO_SPECIES(NIDORAN_F), + NATIONAL_DEX_TO_SPECIES(NIDORINA), + NATIONAL_DEX_TO_SPECIES(NIDOQUEEN), + NATIONAL_DEX_TO_SPECIES(NIDORAN_M), + NATIONAL_DEX_TO_SPECIES(NIDORINO), + NATIONAL_DEX_TO_SPECIES(NIDOKING), + NATIONAL_DEX_TO_SPECIES(CLEFAIRY), + NATIONAL_DEX_TO_SPECIES(CLEFABLE), + NATIONAL_DEX_TO_SPECIES(VULPIX), + NATIONAL_DEX_TO_SPECIES(NINETALES), + NATIONAL_DEX_TO_SPECIES(JIGGLYPUFF), + NATIONAL_DEX_TO_SPECIES(WIGGLYTUFF), + NATIONAL_DEX_TO_SPECIES(ZUBAT), + NATIONAL_DEX_TO_SPECIES(GOLBAT), + NATIONAL_DEX_TO_SPECIES(ODDISH), + NATIONAL_DEX_TO_SPECIES(GLOOM), + NATIONAL_DEX_TO_SPECIES(VILEPLUME), + NATIONAL_DEX_TO_SPECIES(PARAS), + NATIONAL_DEX_TO_SPECIES(PARASECT), + NATIONAL_DEX_TO_SPECIES(VENONAT), + NATIONAL_DEX_TO_SPECIES(VENOMOTH), + NATIONAL_DEX_TO_SPECIES(DIGLETT), + NATIONAL_DEX_TO_SPECIES(DUGTRIO), + NATIONAL_DEX_TO_SPECIES(MEOWTH), + NATIONAL_DEX_TO_SPECIES(PERSIAN), + NATIONAL_DEX_TO_SPECIES(PSYDUCK), + NATIONAL_DEX_TO_SPECIES(GOLDUCK), + NATIONAL_DEX_TO_SPECIES(MANKEY), + NATIONAL_DEX_TO_SPECIES(PRIMEAPE), + NATIONAL_DEX_TO_SPECIES(GROWLITHE), + NATIONAL_DEX_TO_SPECIES(ARCANINE), + NATIONAL_DEX_TO_SPECIES(POLIWAG), + NATIONAL_DEX_TO_SPECIES(POLIWHIRL), + NATIONAL_DEX_TO_SPECIES(POLIWRATH), + NATIONAL_DEX_TO_SPECIES(ABRA), + NATIONAL_DEX_TO_SPECIES(KADABRA), + NATIONAL_DEX_TO_SPECIES(ALAKAZAM), + NATIONAL_DEX_TO_SPECIES(MACHOP), + NATIONAL_DEX_TO_SPECIES(MACHOKE), + NATIONAL_DEX_TO_SPECIES(MACHAMP), + NATIONAL_DEX_TO_SPECIES(BELLSPROUT), + NATIONAL_DEX_TO_SPECIES(WEEPINBELL), + NATIONAL_DEX_TO_SPECIES(VICTREEBEL), + NATIONAL_DEX_TO_SPECIES(TENTACOOL), + NATIONAL_DEX_TO_SPECIES(TENTACRUEL), + NATIONAL_DEX_TO_SPECIES(GEODUDE), + NATIONAL_DEX_TO_SPECIES(GRAVELER), + NATIONAL_DEX_TO_SPECIES(GOLEM), + NATIONAL_DEX_TO_SPECIES(PONYTA), + NATIONAL_DEX_TO_SPECIES(RAPIDASH), + NATIONAL_DEX_TO_SPECIES(SLOWPOKE), + NATIONAL_DEX_TO_SPECIES(SLOWBRO), + NATIONAL_DEX_TO_SPECIES(MAGNEMITE), + NATIONAL_DEX_TO_SPECIES(MAGNETON), + NATIONAL_DEX_TO_SPECIES(FARFETCHD), + NATIONAL_DEX_TO_SPECIES(DODUO), + NATIONAL_DEX_TO_SPECIES(DODRIO), + NATIONAL_DEX_TO_SPECIES(SEEL), + NATIONAL_DEX_TO_SPECIES(DEWGONG), + NATIONAL_DEX_TO_SPECIES(GRIMER), + NATIONAL_DEX_TO_SPECIES(MUK), + NATIONAL_DEX_TO_SPECIES(SHELLDER), + NATIONAL_DEX_TO_SPECIES(CLOYSTER), + NATIONAL_DEX_TO_SPECIES(GASTLY), + NATIONAL_DEX_TO_SPECIES(HAUNTER), + NATIONAL_DEX_TO_SPECIES(GENGAR), + NATIONAL_DEX_TO_SPECIES(ONIX), + NATIONAL_DEX_TO_SPECIES(DROWZEE), + NATIONAL_DEX_TO_SPECIES(HYPNO), + NATIONAL_DEX_TO_SPECIES(KRABBY), + NATIONAL_DEX_TO_SPECIES(KINGLER), + NATIONAL_DEX_TO_SPECIES(VOLTORB), + NATIONAL_DEX_TO_SPECIES(ELECTRODE), + NATIONAL_DEX_TO_SPECIES(EXEGGCUTE), + NATIONAL_DEX_TO_SPECIES(EXEGGUTOR), + NATIONAL_DEX_TO_SPECIES(CUBONE), + NATIONAL_DEX_TO_SPECIES(MAROWAK), + NATIONAL_DEX_TO_SPECIES(HITMONLEE), + NATIONAL_DEX_TO_SPECIES(HITMONCHAN), + NATIONAL_DEX_TO_SPECIES(LICKITUNG), + NATIONAL_DEX_TO_SPECIES(KOFFING), + NATIONAL_DEX_TO_SPECIES(WEEZING), + NATIONAL_DEX_TO_SPECIES(RHYHORN), + NATIONAL_DEX_TO_SPECIES(RHYDON), + NATIONAL_DEX_TO_SPECIES(CHANSEY), + NATIONAL_DEX_TO_SPECIES(TANGELA), + NATIONAL_DEX_TO_SPECIES(KANGASKHAN), + NATIONAL_DEX_TO_SPECIES(HORSEA), + NATIONAL_DEX_TO_SPECIES(SEADRA), + NATIONAL_DEX_TO_SPECIES(GOLDEEN), + NATIONAL_DEX_TO_SPECIES(SEAKING), + NATIONAL_DEX_TO_SPECIES(STARYU), + NATIONAL_DEX_TO_SPECIES(STARMIE), + NATIONAL_DEX_TO_SPECIES(MR_MIME), + NATIONAL_DEX_TO_SPECIES(SCYTHER), + NATIONAL_DEX_TO_SPECIES(JYNX), + NATIONAL_DEX_TO_SPECIES(ELECTABUZZ), + NATIONAL_DEX_TO_SPECIES(MAGMAR), + NATIONAL_DEX_TO_SPECIES(PINSIR), + NATIONAL_DEX_TO_SPECIES(TAUROS), + NATIONAL_DEX_TO_SPECIES(MAGIKARP), + NATIONAL_DEX_TO_SPECIES(GYARADOS), + NATIONAL_DEX_TO_SPECIES(LAPRAS), + NATIONAL_DEX_TO_SPECIES(DITTO), + NATIONAL_DEX_TO_SPECIES(EEVEE), + NATIONAL_DEX_TO_SPECIES(VAPOREON), + NATIONAL_DEX_TO_SPECIES(JOLTEON), + NATIONAL_DEX_TO_SPECIES(FLAREON), + NATIONAL_DEX_TO_SPECIES(PORYGON), + NATIONAL_DEX_TO_SPECIES(OMANYTE), + NATIONAL_DEX_TO_SPECIES(OMASTAR), + NATIONAL_DEX_TO_SPECIES(KABUTO), + NATIONAL_DEX_TO_SPECIES(KABUTOPS), + NATIONAL_DEX_TO_SPECIES(AERODACTYL), + NATIONAL_DEX_TO_SPECIES(SNORLAX), + NATIONAL_DEX_TO_SPECIES(ARTICUNO), + NATIONAL_DEX_TO_SPECIES(ZAPDOS), + NATIONAL_DEX_TO_SPECIES(MOLTRES), + NATIONAL_DEX_TO_SPECIES(DRATINI), + NATIONAL_DEX_TO_SPECIES(DRAGONAIR), + NATIONAL_DEX_TO_SPECIES(DRAGONITE), + NATIONAL_DEX_TO_SPECIES(MEWTWO), + NATIONAL_DEX_TO_SPECIES(MEW), + // Johto + NATIONAL_DEX_TO_SPECIES(CHIKORITA), + NATIONAL_DEX_TO_SPECIES(BAYLEEF), + NATIONAL_DEX_TO_SPECIES(MEGANIUM), + NATIONAL_DEX_TO_SPECIES(CYNDAQUIL), + NATIONAL_DEX_TO_SPECIES(QUILAVA), + NATIONAL_DEX_TO_SPECIES(TYPHLOSION), + NATIONAL_DEX_TO_SPECIES(TOTODILE), + NATIONAL_DEX_TO_SPECIES(CROCONAW), + NATIONAL_DEX_TO_SPECIES(FERALIGATR), + NATIONAL_DEX_TO_SPECIES(SENTRET), + NATIONAL_DEX_TO_SPECIES(FURRET), + NATIONAL_DEX_TO_SPECIES(HOOTHOOT), + NATIONAL_DEX_TO_SPECIES(NOCTOWL), + NATIONAL_DEX_TO_SPECIES(LEDYBA), + NATIONAL_DEX_TO_SPECIES(LEDIAN), + NATIONAL_DEX_TO_SPECIES(SPINARAK), + NATIONAL_DEX_TO_SPECIES(ARIADOS), + NATIONAL_DEX_TO_SPECIES(CROBAT), + NATIONAL_DEX_TO_SPECIES(CHINCHOU), + NATIONAL_DEX_TO_SPECIES(LANTURN), + NATIONAL_DEX_TO_SPECIES(PICHU), + NATIONAL_DEX_TO_SPECIES(CLEFFA), + NATIONAL_DEX_TO_SPECIES(IGGLYBUFF), + NATIONAL_DEX_TO_SPECIES(TOGEPI), + NATIONAL_DEX_TO_SPECIES(TOGETIC), + NATIONAL_DEX_TO_SPECIES(NATU), + NATIONAL_DEX_TO_SPECIES(XATU), + NATIONAL_DEX_TO_SPECIES(MAREEP), + NATIONAL_DEX_TO_SPECIES(FLAAFFY), + NATIONAL_DEX_TO_SPECIES(AMPHAROS), + NATIONAL_DEX_TO_SPECIES(BELLOSSOM), + NATIONAL_DEX_TO_SPECIES(MARILL), + NATIONAL_DEX_TO_SPECIES(AZUMARILL), + NATIONAL_DEX_TO_SPECIES(SUDOWOODO), + NATIONAL_DEX_TO_SPECIES(POLITOED), + NATIONAL_DEX_TO_SPECIES(HOPPIP), + NATIONAL_DEX_TO_SPECIES(SKIPLOOM), + NATIONAL_DEX_TO_SPECIES(JUMPLUFF), + NATIONAL_DEX_TO_SPECIES(AIPOM), + NATIONAL_DEX_TO_SPECIES(SUNKERN), + NATIONAL_DEX_TO_SPECIES(SUNFLORA), + NATIONAL_DEX_TO_SPECIES(YANMA), + NATIONAL_DEX_TO_SPECIES(WOOPER), + NATIONAL_DEX_TO_SPECIES(QUAGSIRE), + NATIONAL_DEX_TO_SPECIES(ESPEON), + NATIONAL_DEX_TO_SPECIES(UMBREON), + NATIONAL_DEX_TO_SPECIES(MURKROW), + NATIONAL_DEX_TO_SPECIES(SLOWKING), + NATIONAL_DEX_TO_SPECIES(MISDREAVUS), + NATIONAL_DEX_TO_SPECIES(UNOWN), + NATIONAL_DEX_TO_SPECIES(WOBBUFFET), + NATIONAL_DEX_TO_SPECIES(GIRAFARIG), + NATIONAL_DEX_TO_SPECIES(PINECO), + NATIONAL_DEX_TO_SPECIES(FORRETRESS), + NATIONAL_DEX_TO_SPECIES(DUNSPARCE), + NATIONAL_DEX_TO_SPECIES(GLIGAR), + NATIONAL_DEX_TO_SPECIES(STEELIX), + NATIONAL_DEX_TO_SPECIES(SNUBBULL), + NATIONAL_DEX_TO_SPECIES(GRANBULL), + NATIONAL_DEX_TO_SPECIES(QWILFISH), + NATIONAL_DEX_TO_SPECIES(SCIZOR), + NATIONAL_DEX_TO_SPECIES(SHUCKLE), + NATIONAL_DEX_TO_SPECIES(HERACROSS), + NATIONAL_DEX_TO_SPECIES(SNEASEL), + NATIONAL_DEX_TO_SPECIES(TEDDIURSA), + NATIONAL_DEX_TO_SPECIES(URSARING), + NATIONAL_DEX_TO_SPECIES(SLUGMA), + NATIONAL_DEX_TO_SPECIES(MAGCARGO), + NATIONAL_DEX_TO_SPECIES(SWINUB), + NATIONAL_DEX_TO_SPECIES(PILOSWINE), + NATIONAL_DEX_TO_SPECIES(CORSOLA), + NATIONAL_DEX_TO_SPECIES(REMORAID), + NATIONAL_DEX_TO_SPECIES(OCTILLERY), + NATIONAL_DEX_TO_SPECIES(DELIBIRD), + NATIONAL_DEX_TO_SPECIES(MANTINE), + NATIONAL_DEX_TO_SPECIES(SKARMORY), + NATIONAL_DEX_TO_SPECIES(HOUNDOUR), + NATIONAL_DEX_TO_SPECIES(HOUNDOOM), + NATIONAL_DEX_TO_SPECIES(KINGDRA), + NATIONAL_DEX_TO_SPECIES(PHANPY), + NATIONAL_DEX_TO_SPECIES(DONPHAN), + NATIONAL_DEX_TO_SPECIES(PORYGON2), + NATIONAL_DEX_TO_SPECIES(STANTLER), + NATIONAL_DEX_TO_SPECIES(SMEARGLE), + NATIONAL_DEX_TO_SPECIES(TYROGUE), + NATIONAL_DEX_TO_SPECIES(HITMONTOP), + NATIONAL_DEX_TO_SPECIES(SMOOCHUM), + NATIONAL_DEX_TO_SPECIES(ELEKID), + NATIONAL_DEX_TO_SPECIES(MAGBY), + NATIONAL_DEX_TO_SPECIES(MILTANK), + NATIONAL_DEX_TO_SPECIES(BLISSEY), + NATIONAL_DEX_TO_SPECIES(RAIKOU), + NATIONAL_DEX_TO_SPECIES(ENTEI), + NATIONAL_DEX_TO_SPECIES(SUICUNE), + NATIONAL_DEX_TO_SPECIES(LARVITAR), + NATIONAL_DEX_TO_SPECIES(PUPITAR), + NATIONAL_DEX_TO_SPECIES(TYRANITAR), + NATIONAL_DEX_TO_SPECIES(LUGIA), + NATIONAL_DEX_TO_SPECIES(HO_OH), + NATIONAL_DEX_TO_SPECIES(CELEBI), + // Hoenn + NATIONAL_DEX_TO_SPECIES(TREECKO), + NATIONAL_DEX_TO_SPECIES(GROVYLE), + NATIONAL_DEX_TO_SPECIES(SCEPTILE), + NATIONAL_DEX_TO_SPECIES(TORCHIC), + NATIONAL_DEX_TO_SPECIES(COMBUSKEN), + NATIONAL_DEX_TO_SPECIES(BLAZIKEN), + NATIONAL_DEX_TO_SPECIES(MUDKIP), + NATIONAL_DEX_TO_SPECIES(MARSHTOMP), + NATIONAL_DEX_TO_SPECIES(SWAMPERT), + NATIONAL_DEX_TO_SPECIES(POOCHYENA), + NATIONAL_DEX_TO_SPECIES(MIGHTYENA), + NATIONAL_DEX_TO_SPECIES(ZIGZAGOON), + NATIONAL_DEX_TO_SPECIES(LINOONE), + NATIONAL_DEX_TO_SPECIES(WURMPLE), + NATIONAL_DEX_TO_SPECIES(SILCOON), + NATIONAL_DEX_TO_SPECIES(BEAUTIFLY), + NATIONAL_DEX_TO_SPECIES(CASCOON), + NATIONAL_DEX_TO_SPECIES(DUSTOX), + NATIONAL_DEX_TO_SPECIES(LOTAD), + NATIONAL_DEX_TO_SPECIES(LOMBRE), + NATIONAL_DEX_TO_SPECIES(LUDICOLO), + NATIONAL_DEX_TO_SPECIES(SEEDOT), + NATIONAL_DEX_TO_SPECIES(NUZLEAF), + NATIONAL_DEX_TO_SPECIES(SHIFTRY), + NATIONAL_DEX_TO_SPECIES(TAILLOW), + NATIONAL_DEX_TO_SPECIES(SWELLOW), + NATIONAL_DEX_TO_SPECIES(WINGULL), + NATIONAL_DEX_TO_SPECIES(PELIPPER), + NATIONAL_DEX_TO_SPECIES(RALTS), + NATIONAL_DEX_TO_SPECIES(KIRLIA), + NATIONAL_DEX_TO_SPECIES(GARDEVOIR), + NATIONAL_DEX_TO_SPECIES(SURSKIT), + NATIONAL_DEX_TO_SPECIES(MASQUERAIN), + NATIONAL_DEX_TO_SPECIES(SHROOMISH), + NATIONAL_DEX_TO_SPECIES(BRELOOM), + NATIONAL_DEX_TO_SPECIES(SLAKOTH), + NATIONAL_DEX_TO_SPECIES(VIGOROTH), + NATIONAL_DEX_TO_SPECIES(SLAKING), + NATIONAL_DEX_TO_SPECIES(NINCADA), + NATIONAL_DEX_TO_SPECIES(NINJASK), + NATIONAL_DEX_TO_SPECIES(SHEDINJA), + NATIONAL_DEX_TO_SPECIES(WHISMUR), + NATIONAL_DEX_TO_SPECIES(LOUDRED), + NATIONAL_DEX_TO_SPECIES(EXPLOUD), + NATIONAL_DEX_TO_SPECIES(MAKUHITA), + NATIONAL_DEX_TO_SPECIES(HARIYAMA), + NATIONAL_DEX_TO_SPECIES(AZURILL), + NATIONAL_DEX_TO_SPECIES(NOSEPASS), + NATIONAL_DEX_TO_SPECIES(SKITTY), + NATIONAL_DEX_TO_SPECIES(DELCATTY), + NATIONAL_DEX_TO_SPECIES(SABLEYE), + NATIONAL_DEX_TO_SPECIES(MAWILE), + NATIONAL_DEX_TO_SPECIES(ARON), + NATIONAL_DEX_TO_SPECIES(LAIRON), + NATIONAL_DEX_TO_SPECIES(AGGRON), + NATIONAL_DEX_TO_SPECIES(MEDITITE), + NATIONAL_DEX_TO_SPECIES(MEDICHAM), + NATIONAL_DEX_TO_SPECIES(ELECTRIKE), + NATIONAL_DEX_TO_SPECIES(MANECTRIC), + NATIONAL_DEX_TO_SPECIES(PLUSLE), + NATIONAL_DEX_TO_SPECIES(MINUN), + NATIONAL_DEX_TO_SPECIES(VOLBEAT), + NATIONAL_DEX_TO_SPECIES(ILLUMISE), + NATIONAL_DEX_TO_SPECIES(ROSELIA), + NATIONAL_DEX_TO_SPECIES(GULPIN), + NATIONAL_DEX_TO_SPECIES(SWALOT), + NATIONAL_DEX_TO_SPECIES(CARVANHA), + NATIONAL_DEX_TO_SPECIES(SHARPEDO), + NATIONAL_DEX_TO_SPECIES(WAILMER), + NATIONAL_DEX_TO_SPECIES(WAILORD), + NATIONAL_DEX_TO_SPECIES(NUMEL), + NATIONAL_DEX_TO_SPECIES(CAMERUPT), + NATIONAL_DEX_TO_SPECIES(TORKOAL), + NATIONAL_DEX_TO_SPECIES(SPOINK), + NATIONAL_DEX_TO_SPECIES(GRUMPIG), + NATIONAL_DEX_TO_SPECIES(SPINDA), + NATIONAL_DEX_TO_SPECIES(TRAPINCH), + NATIONAL_DEX_TO_SPECIES(VIBRAVA), + NATIONAL_DEX_TO_SPECIES(FLYGON), + NATIONAL_DEX_TO_SPECIES(CACNEA), + NATIONAL_DEX_TO_SPECIES(CACTURNE), + NATIONAL_DEX_TO_SPECIES(SWABLU), + NATIONAL_DEX_TO_SPECIES(ALTARIA), + NATIONAL_DEX_TO_SPECIES(ZANGOOSE), + NATIONAL_DEX_TO_SPECIES(SEVIPER), + NATIONAL_DEX_TO_SPECIES(LUNATONE), + NATIONAL_DEX_TO_SPECIES(SOLROCK), + NATIONAL_DEX_TO_SPECIES(BARBOACH), + NATIONAL_DEX_TO_SPECIES(WHISCASH), + NATIONAL_DEX_TO_SPECIES(CORPHISH), + NATIONAL_DEX_TO_SPECIES(CRAWDAUNT), + NATIONAL_DEX_TO_SPECIES(BALTOY), + NATIONAL_DEX_TO_SPECIES(CLAYDOL), + NATIONAL_DEX_TO_SPECIES(LILEEP), + NATIONAL_DEX_TO_SPECIES(CRADILY), + NATIONAL_DEX_TO_SPECIES(ANORITH), + NATIONAL_DEX_TO_SPECIES(ARMALDO), + NATIONAL_DEX_TO_SPECIES(FEEBAS), + NATIONAL_DEX_TO_SPECIES(MILOTIC), + NATIONAL_DEX_TO_SPECIES(CASTFORM), + NATIONAL_DEX_TO_SPECIES(KECLEON), + NATIONAL_DEX_TO_SPECIES(SHUPPET), + NATIONAL_DEX_TO_SPECIES(BANETTE), + NATIONAL_DEX_TO_SPECIES(DUSKULL), + NATIONAL_DEX_TO_SPECIES(DUSCLOPS), + NATIONAL_DEX_TO_SPECIES(TROPIUS), + NATIONAL_DEX_TO_SPECIES(CHIMECHO), + NATIONAL_DEX_TO_SPECIES(ABSOL), + NATIONAL_DEX_TO_SPECIES(WYNAUT), + NATIONAL_DEX_TO_SPECIES(SNORUNT), + NATIONAL_DEX_TO_SPECIES(GLALIE), + NATIONAL_DEX_TO_SPECIES(SPHEAL), + NATIONAL_DEX_TO_SPECIES(SEALEO), + NATIONAL_DEX_TO_SPECIES(WALREIN), + NATIONAL_DEX_TO_SPECIES(CLAMPERL), + NATIONAL_DEX_TO_SPECIES(HUNTAIL), + NATIONAL_DEX_TO_SPECIES(GOREBYSS), + NATIONAL_DEX_TO_SPECIES(RELICANTH), + NATIONAL_DEX_TO_SPECIES(LUVDISC), + NATIONAL_DEX_TO_SPECIES(BAGON), + NATIONAL_DEX_TO_SPECIES(SHELGON), + NATIONAL_DEX_TO_SPECIES(SALAMENCE), + NATIONAL_DEX_TO_SPECIES(BELDUM), + NATIONAL_DEX_TO_SPECIES(METANG), + NATIONAL_DEX_TO_SPECIES(METAGROSS), + NATIONAL_DEX_TO_SPECIES(REGIROCK), + NATIONAL_DEX_TO_SPECIES(REGICE), + NATIONAL_DEX_TO_SPECIES(REGISTEEL), + NATIONAL_DEX_TO_SPECIES(LATIAS), + NATIONAL_DEX_TO_SPECIES(LATIOS), + NATIONAL_DEX_TO_SPECIES(KYOGRE), + NATIONAL_DEX_TO_SPECIES(GROUDON), + NATIONAL_DEX_TO_SPECIES(RAYQUAZA), + NATIONAL_DEX_TO_SPECIES(JIRACHI), + NATIONAL_DEX_TO_SPECIES(DEOXYS), + // Sinnoh + NATIONAL_DEX_TO_SPECIES(TURTWIG), + NATIONAL_DEX_TO_SPECIES(GROTLE), + NATIONAL_DEX_TO_SPECIES(TORTERRA), + NATIONAL_DEX_TO_SPECIES(CHIMCHAR), + NATIONAL_DEX_TO_SPECIES(MONFERNO), + NATIONAL_DEX_TO_SPECIES(INFERNAPE), + NATIONAL_DEX_TO_SPECIES(PIPLUP), + NATIONAL_DEX_TO_SPECIES(PRINPLUP), + NATIONAL_DEX_TO_SPECIES(EMPOLEON), + NATIONAL_DEX_TO_SPECIES(STARLY), + NATIONAL_DEX_TO_SPECIES(STARAVIA), + NATIONAL_DEX_TO_SPECIES(STARAPTOR), + NATIONAL_DEX_TO_SPECIES(BIDOOF), + NATIONAL_DEX_TO_SPECIES(BIBAREL), + NATIONAL_DEX_TO_SPECIES(KRICKETOT), + NATIONAL_DEX_TO_SPECIES(KRICKETUNE), + NATIONAL_DEX_TO_SPECIES(SHINX), + NATIONAL_DEX_TO_SPECIES(LUXIO), + NATIONAL_DEX_TO_SPECIES(LUXRAY), + NATIONAL_DEX_TO_SPECIES(BUDEW), + NATIONAL_DEX_TO_SPECIES(ROSERADE), + NATIONAL_DEX_TO_SPECIES(CRANIDOS), + NATIONAL_DEX_TO_SPECIES(RAMPARDOS), + NATIONAL_DEX_TO_SPECIES(SHIELDON), + NATIONAL_DEX_TO_SPECIES(BASTIODON), + NATIONAL_DEX_TO_SPECIES(BURMY), + NATIONAL_DEX_TO_SPECIES(WORMADAM), + NATIONAL_DEX_TO_SPECIES(MOTHIM), + NATIONAL_DEX_TO_SPECIES(COMBEE), + NATIONAL_DEX_TO_SPECIES(VESPIQUEN), + NATIONAL_DEX_TO_SPECIES(PACHIRISU), + NATIONAL_DEX_TO_SPECIES(BUIZEL), + NATIONAL_DEX_TO_SPECIES(FLOATZEL), + NATIONAL_DEX_TO_SPECIES(CHERUBI), + NATIONAL_DEX_TO_SPECIES(CHERRIM), + NATIONAL_DEX_TO_SPECIES(SHELLOS), + NATIONAL_DEX_TO_SPECIES(GASTRODON), + NATIONAL_DEX_TO_SPECIES(AMBIPOM), + NATIONAL_DEX_TO_SPECIES(DRIFLOON), + NATIONAL_DEX_TO_SPECIES(DRIFBLIM), + NATIONAL_DEX_TO_SPECIES(BUNEARY), + NATIONAL_DEX_TO_SPECIES(LOPUNNY), + NATIONAL_DEX_TO_SPECIES(MISMAGIUS), + NATIONAL_DEX_TO_SPECIES(HONCHKROW), + NATIONAL_DEX_TO_SPECIES(GLAMEOW), + NATIONAL_DEX_TO_SPECIES(PURUGLY), + NATIONAL_DEX_TO_SPECIES(CHINGLING), + NATIONAL_DEX_TO_SPECIES(STUNKY), + NATIONAL_DEX_TO_SPECIES(SKUNTANK), + NATIONAL_DEX_TO_SPECIES(BRONZOR), + NATIONAL_DEX_TO_SPECIES(BRONZONG), + NATIONAL_DEX_TO_SPECIES(BONSLY), + NATIONAL_DEX_TO_SPECIES(MIME_JR), + NATIONAL_DEX_TO_SPECIES(HAPPINY), + NATIONAL_DEX_TO_SPECIES(CHATOT), + NATIONAL_DEX_TO_SPECIES(SPIRITOMB), + NATIONAL_DEX_TO_SPECIES(GIBLE), + NATIONAL_DEX_TO_SPECIES(GABITE), + NATIONAL_DEX_TO_SPECIES(GARCHOMP), + NATIONAL_DEX_TO_SPECIES(MUNCHLAX), + NATIONAL_DEX_TO_SPECIES(RIOLU), + NATIONAL_DEX_TO_SPECIES(LUCARIO), + NATIONAL_DEX_TO_SPECIES(HIPPOPOTAS), + NATIONAL_DEX_TO_SPECIES(HIPPOWDON), + NATIONAL_DEX_TO_SPECIES(SKORUPI), + NATIONAL_DEX_TO_SPECIES(DRAPION), + NATIONAL_DEX_TO_SPECIES(CROAGUNK), + NATIONAL_DEX_TO_SPECIES(TOXICROAK), + NATIONAL_DEX_TO_SPECIES(CARNIVINE), + NATIONAL_DEX_TO_SPECIES(FINNEON), + NATIONAL_DEX_TO_SPECIES(LUMINEON), + NATIONAL_DEX_TO_SPECIES(MANTYKE), + NATIONAL_DEX_TO_SPECIES(SNOVER), + NATIONAL_DEX_TO_SPECIES(ABOMASNOW), + NATIONAL_DEX_TO_SPECIES(WEAVILE), + NATIONAL_DEX_TO_SPECIES(MAGNEZONE), + NATIONAL_DEX_TO_SPECIES(LICKILICKY), + NATIONAL_DEX_TO_SPECIES(RHYPERIOR), + NATIONAL_DEX_TO_SPECIES(TANGROWTH), + NATIONAL_DEX_TO_SPECIES(ELECTIVIRE), + NATIONAL_DEX_TO_SPECIES(MAGMORTAR), + NATIONAL_DEX_TO_SPECIES(TOGEKISS), + NATIONAL_DEX_TO_SPECIES(YANMEGA), + NATIONAL_DEX_TO_SPECIES(LEAFEON), + NATIONAL_DEX_TO_SPECIES(GLACEON), + NATIONAL_DEX_TO_SPECIES(GLISCOR), + NATIONAL_DEX_TO_SPECIES(MAMOSWINE), + NATIONAL_DEX_TO_SPECIES(PORYGON_Z), + NATIONAL_DEX_TO_SPECIES(GALLADE), + NATIONAL_DEX_TO_SPECIES(PROBOPASS), + NATIONAL_DEX_TO_SPECIES(DUSKNOIR), + NATIONAL_DEX_TO_SPECIES(FROSLASS), + NATIONAL_DEX_TO_SPECIES(ROTOM), + NATIONAL_DEX_TO_SPECIES(UXIE), + NATIONAL_DEX_TO_SPECIES(MESPRIT), + NATIONAL_DEX_TO_SPECIES(AZELF), + NATIONAL_DEX_TO_SPECIES(DIALGA), + NATIONAL_DEX_TO_SPECIES(PALKIA), + NATIONAL_DEX_TO_SPECIES(HEATRAN), + NATIONAL_DEX_TO_SPECIES(REGIGIGAS), + NATIONAL_DEX_TO_SPECIES(GIRATINA), + NATIONAL_DEX_TO_SPECIES(CRESSELIA), + NATIONAL_DEX_TO_SPECIES(PHIONE), + NATIONAL_DEX_TO_SPECIES(MANAPHY), + NATIONAL_DEX_TO_SPECIES(DARKRAI), + NATIONAL_DEX_TO_SPECIES(SHAYMIN), + NATIONAL_DEX_TO_SPECIES(ARCEUS), + // Unova + NATIONAL_DEX_TO_SPECIES(VICTINI), + NATIONAL_DEX_TO_SPECIES(SNIVY), + NATIONAL_DEX_TO_SPECIES(SERVINE), + NATIONAL_DEX_TO_SPECIES(SERPERIOR), + NATIONAL_DEX_TO_SPECIES(TEPIG), + NATIONAL_DEX_TO_SPECIES(PIGNITE), + NATIONAL_DEX_TO_SPECIES(EMBOAR), + NATIONAL_DEX_TO_SPECIES(OSHAWOTT), + NATIONAL_DEX_TO_SPECIES(DEWOTT), + NATIONAL_DEX_TO_SPECIES(SAMUROTT), + NATIONAL_DEX_TO_SPECIES(PATRAT), + NATIONAL_DEX_TO_SPECIES(WATCHOG), + NATIONAL_DEX_TO_SPECIES(LILLIPUP), + NATIONAL_DEX_TO_SPECIES(HERDIER), + NATIONAL_DEX_TO_SPECIES(STOUTLAND), + NATIONAL_DEX_TO_SPECIES(PURRLOIN), + NATIONAL_DEX_TO_SPECIES(LIEPARD), + NATIONAL_DEX_TO_SPECIES(PANSAGE), + NATIONAL_DEX_TO_SPECIES(SIMISAGE), + NATIONAL_DEX_TO_SPECIES(PANSEAR), + NATIONAL_DEX_TO_SPECIES(SIMISEAR), + NATIONAL_DEX_TO_SPECIES(PANPOUR), + NATIONAL_DEX_TO_SPECIES(SIMIPOUR), + NATIONAL_DEX_TO_SPECIES(MUNNA), + NATIONAL_DEX_TO_SPECIES(MUSHARNA), + NATIONAL_DEX_TO_SPECIES(PIDOVE), + NATIONAL_DEX_TO_SPECIES(TRANQUILL), + NATIONAL_DEX_TO_SPECIES(UNFEZANT), + NATIONAL_DEX_TO_SPECIES(BLITZLE), + NATIONAL_DEX_TO_SPECIES(ZEBSTRIKA), + NATIONAL_DEX_TO_SPECIES(ROGGENROLA), + NATIONAL_DEX_TO_SPECIES(BOLDORE), + NATIONAL_DEX_TO_SPECIES(GIGALITH), + NATIONAL_DEX_TO_SPECIES(WOOBAT), + NATIONAL_DEX_TO_SPECIES(SWOOBAT), + NATIONAL_DEX_TO_SPECIES(DRILBUR), + NATIONAL_DEX_TO_SPECIES(EXCADRILL), + NATIONAL_DEX_TO_SPECIES(AUDINO), + NATIONAL_DEX_TO_SPECIES(TIMBURR), + NATIONAL_DEX_TO_SPECIES(GURDURR), + NATIONAL_DEX_TO_SPECIES(CONKELDURR), + NATIONAL_DEX_TO_SPECIES(TYMPOLE), + NATIONAL_DEX_TO_SPECIES(PALPITOAD), + NATIONAL_DEX_TO_SPECIES(SEISMITOAD), + NATIONAL_DEX_TO_SPECIES(THROH), + NATIONAL_DEX_TO_SPECIES(SAWK), + NATIONAL_DEX_TO_SPECIES(SEWADDLE), + NATIONAL_DEX_TO_SPECIES(SWADLOON), + NATIONAL_DEX_TO_SPECIES(LEAVANNY), + NATIONAL_DEX_TO_SPECIES(VENIPEDE), + NATIONAL_DEX_TO_SPECIES(WHIRLIPEDE), + NATIONAL_DEX_TO_SPECIES(SCOLIPEDE), + NATIONAL_DEX_TO_SPECIES(COTTONEE), + NATIONAL_DEX_TO_SPECIES(WHIMSICOTT), + NATIONAL_DEX_TO_SPECIES(PETILIL), + NATIONAL_DEX_TO_SPECIES(LILLIGANT), + NATIONAL_DEX_TO_SPECIES(BASCULIN), + NATIONAL_DEX_TO_SPECIES(SANDILE), + NATIONAL_DEX_TO_SPECIES(KROKOROK), + NATIONAL_DEX_TO_SPECIES(KROOKODILE), + NATIONAL_DEX_TO_SPECIES(DARUMAKA), + NATIONAL_DEX_TO_SPECIES(DARMANITAN), + NATIONAL_DEX_TO_SPECIES(MARACTUS), + NATIONAL_DEX_TO_SPECIES(DWEBBLE), + NATIONAL_DEX_TO_SPECIES(CRUSTLE), + NATIONAL_DEX_TO_SPECIES(SCRAGGY), + NATIONAL_DEX_TO_SPECIES(SCRAFTY), + NATIONAL_DEX_TO_SPECIES(SIGILYPH), + NATIONAL_DEX_TO_SPECIES(YAMASK), + NATIONAL_DEX_TO_SPECIES(COFAGRIGUS), + NATIONAL_DEX_TO_SPECIES(TIRTOUGA), + NATIONAL_DEX_TO_SPECIES(CARRACOSTA), + NATIONAL_DEX_TO_SPECIES(ARCHEN), + NATIONAL_DEX_TO_SPECIES(ARCHEOPS), + NATIONAL_DEX_TO_SPECIES(TRUBBISH), + NATIONAL_DEX_TO_SPECIES(GARBODOR), + NATIONAL_DEX_TO_SPECIES(ZORUA), + NATIONAL_DEX_TO_SPECIES(ZOROARK), + NATIONAL_DEX_TO_SPECIES(MINCCINO), + NATIONAL_DEX_TO_SPECIES(CINCCINO), + NATIONAL_DEX_TO_SPECIES(GOTHITA), + NATIONAL_DEX_TO_SPECIES(GOTHORITA), + NATIONAL_DEX_TO_SPECIES(GOTHITELLE), + NATIONAL_DEX_TO_SPECIES(SOLOSIS), + NATIONAL_DEX_TO_SPECIES(DUOSION), + NATIONAL_DEX_TO_SPECIES(REUNICLUS), + NATIONAL_DEX_TO_SPECIES(DUCKLETT), + NATIONAL_DEX_TO_SPECIES(SWANNA), + NATIONAL_DEX_TO_SPECIES(VANILLITE), + NATIONAL_DEX_TO_SPECIES(VANILLISH), + NATIONAL_DEX_TO_SPECIES(VANILLUXE), + NATIONAL_DEX_TO_SPECIES(DEERLING), + NATIONAL_DEX_TO_SPECIES(SAWSBUCK), + NATIONAL_DEX_TO_SPECIES(EMOLGA), + NATIONAL_DEX_TO_SPECIES(KARRABLAST), + NATIONAL_DEX_TO_SPECIES(ESCAVALIER), + NATIONAL_DEX_TO_SPECIES(FOONGUS), + NATIONAL_DEX_TO_SPECIES(AMOONGUSS), + NATIONAL_DEX_TO_SPECIES(FRILLISH), + NATIONAL_DEX_TO_SPECIES(JELLICENT), + NATIONAL_DEX_TO_SPECIES(ALOMOMOLA), + NATIONAL_DEX_TO_SPECIES(JOLTIK), + NATIONAL_DEX_TO_SPECIES(GALVANTULA), + NATIONAL_DEX_TO_SPECIES(FERROSEED), + NATIONAL_DEX_TO_SPECIES(FERROTHORN), + NATIONAL_DEX_TO_SPECIES(KLINK), + NATIONAL_DEX_TO_SPECIES(KLANG), + NATIONAL_DEX_TO_SPECIES(KLINKLANG), + NATIONAL_DEX_TO_SPECIES(TYNAMO), + NATIONAL_DEX_TO_SPECIES(EELEKTRIK), + NATIONAL_DEX_TO_SPECIES(EELEKTROSS), + NATIONAL_DEX_TO_SPECIES(ELGYEM), + NATIONAL_DEX_TO_SPECIES(BEHEEYEM), + NATIONAL_DEX_TO_SPECIES(LITWICK), + NATIONAL_DEX_TO_SPECIES(LAMPENT), + NATIONAL_DEX_TO_SPECIES(CHANDELURE), + NATIONAL_DEX_TO_SPECIES(AXEW), + NATIONAL_DEX_TO_SPECIES(FRAXURE), + NATIONAL_DEX_TO_SPECIES(HAXORUS), + NATIONAL_DEX_TO_SPECIES(CUBCHOO), + NATIONAL_DEX_TO_SPECIES(BEARTIC), + NATIONAL_DEX_TO_SPECIES(CRYOGONAL), + NATIONAL_DEX_TO_SPECIES(SHELMET), + NATIONAL_DEX_TO_SPECIES(ACCELGOR), + NATIONAL_DEX_TO_SPECIES(STUNFISK), + NATIONAL_DEX_TO_SPECIES(MIENFOO), + NATIONAL_DEX_TO_SPECIES(MIENSHAO), + NATIONAL_DEX_TO_SPECIES(DRUDDIGON), + NATIONAL_DEX_TO_SPECIES(GOLETT), + NATIONAL_DEX_TO_SPECIES(GOLURK), + NATIONAL_DEX_TO_SPECIES(PAWNIARD), + NATIONAL_DEX_TO_SPECIES(BISHARP), + NATIONAL_DEX_TO_SPECIES(BOUFFALANT), + NATIONAL_DEX_TO_SPECIES(RUFFLET), + NATIONAL_DEX_TO_SPECIES(BRAVIARY), + NATIONAL_DEX_TO_SPECIES(VULLABY), + NATIONAL_DEX_TO_SPECIES(MANDIBUZZ), + NATIONAL_DEX_TO_SPECIES(HEATMOR), + NATIONAL_DEX_TO_SPECIES(DURANT), + NATIONAL_DEX_TO_SPECIES(DEINO), + NATIONAL_DEX_TO_SPECIES(ZWEILOUS), + NATIONAL_DEX_TO_SPECIES(HYDREIGON), + NATIONAL_DEX_TO_SPECIES(LARVESTA), + NATIONAL_DEX_TO_SPECIES(VOLCARONA), + NATIONAL_DEX_TO_SPECIES(COBALION), + NATIONAL_DEX_TO_SPECIES(TERRAKION), + NATIONAL_DEX_TO_SPECIES(VIRIZION), + NATIONAL_DEX_TO_SPECIES(TORNADUS), + NATIONAL_DEX_TO_SPECIES(THUNDURUS), + NATIONAL_DEX_TO_SPECIES(RESHIRAM), + NATIONAL_DEX_TO_SPECIES(ZEKROM), + NATIONAL_DEX_TO_SPECIES(LANDORUS), + NATIONAL_DEX_TO_SPECIES(KYUREM), + NATIONAL_DEX_TO_SPECIES(KELDEO), + NATIONAL_DEX_TO_SPECIES(MELOETTA), + NATIONAL_DEX_TO_SPECIES(GENESECT), + // Kalos + NATIONAL_DEX_TO_SPECIES(CHESPIN), + NATIONAL_DEX_TO_SPECIES(QUILLADIN), + NATIONAL_DEX_TO_SPECIES(CHESNAUGHT), + NATIONAL_DEX_TO_SPECIES(FENNEKIN), + NATIONAL_DEX_TO_SPECIES(BRAIXEN), + NATIONAL_DEX_TO_SPECIES(DELPHOX), + NATIONAL_DEX_TO_SPECIES(FROAKIE), + NATIONAL_DEX_TO_SPECIES(FROGADIER), + NATIONAL_DEX_TO_SPECIES(GRENINJA), + NATIONAL_DEX_TO_SPECIES(BUNNELBY), + NATIONAL_DEX_TO_SPECIES(DIGGERSBY), + NATIONAL_DEX_TO_SPECIES(FLETCHLING), + NATIONAL_DEX_TO_SPECIES(FLETCHINDER), + NATIONAL_DEX_TO_SPECIES(TALONFLAME), + NATIONAL_DEX_TO_SPECIES(SCATTERBUG), + NATIONAL_DEX_TO_SPECIES(SPEWPA), + NATIONAL_DEX_TO_SPECIES(VIVILLON), + NATIONAL_DEX_TO_SPECIES(LITLEO), + NATIONAL_DEX_TO_SPECIES(PYROAR), + NATIONAL_DEX_TO_SPECIES(FLABEBE), + NATIONAL_DEX_TO_SPECIES(FLOETTE), + NATIONAL_DEX_TO_SPECIES(FLORGES), + NATIONAL_DEX_TO_SPECIES(SKIDDO), + NATIONAL_DEX_TO_SPECIES(GOGOAT), + NATIONAL_DEX_TO_SPECIES(PANCHAM), + NATIONAL_DEX_TO_SPECIES(PANGORO), + NATIONAL_DEX_TO_SPECIES(FURFROU), + NATIONAL_DEX_TO_SPECIES(ESPURR), + NATIONAL_DEX_TO_SPECIES(MEOWSTIC), + NATIONAL_DEX_TO_SPECIES(HONEDGE), + NATIONAL_DEX_TO_SPECIES(DOUBLADE), + NATIONAL_DEX_TO_SPECIES(AEGISLASH), + NATIONAL_DEX_TO_SPECIES(SPRITZEE), + NATIONAL_DEX_TO_SPECIES(AROMATISSE), + NATIONAL_DEX_TO_SPECIES(SWIRLIX), + NATIONAL_DEX_TO_SPECIES(SLURPUFF), + NATIONAL_DEX_TO_SPECIES(INKAY), + NATIONAL_DEX_TO_SPECIES(MALAMAR), + NATIONAL_DEX_TO_SPECIES(BINACLE), + NATIONAL_DEX_TO_SPECIES(BARBARACLE), + NATIONAL_DEX_TO_SPECIES(SKRELP), + NATIONAL_DEX_TO_SPECIES(DRAGALGE), + NATIONAL_DEX_TO_SPECIES(CLAUNCHER), + NATIONAL_DEX_TO_SPECIES(CLAWITZER), + NATIONAL_DEX_TO_SPECIES(HELIOPTILE), + NATIONAL_DEX_TO_SPECIES(HELIOLISK), + NATIONAL_DEX_TO_SPECIES(TYRUNT), + NATIONAL_DEX_TO_SPECIES(TYRANTRUM), + NATIONAL_DEX_TO_SPECIES(AMAURA), + NATIONAL_DEX_TO_SPECIES(AURORUS), + NATIONAL_DEX_TO_SPECIES(SYLVEON), + NATIONAL_DEX_TO_SPECIES(HAWLUCHA), + NATIONAL_DEX_TO_SPECIES(DEDENNE), + NATIONAL_DEX_TO_SPECIES(CARBINK), + NATIONAL_DEX_TO_SPECIES(GOOMY), + NATIONAL_DEX_TO_SPECIES(SLIGGOO), + NATIONAL_DEX_TO_SPECIES(GOODRA), + NATIONAL_DEX_TO_SPECIES(KLEFKI), + NATIONAL_DEX_TO_SPECIES(PHANTUMP), + NATIONAL_DEX_TO_SPECIES(TREVENANT), + NATIONAL_DEX_TO_SPECIES(PUMPKABOO), + NATIONAL_DEX_TO_SPECIES(GOURGEIST), + NATIONAL_DEX_TO_SPECIES(BERGMITE), + NATIONAL_DEX_TO_SPECIES(AVALUGG), + NATIONAL_DEX_TO_SPECIES(NOIBAT), + NATIONAL_DEX_TO_SPECIES(NOIVERN), + NATIONAL_DEX_TO_SPECIES(XERNEAS), + NATIONAL_DEX_TO_SPECIES(YVELTAL), + NATIONAL_DEX_TO_SPECIES(ZYGARDE), + NATIONAL_DEX_TO_SPECIES(DIANCIE), + NATIONAL_DEX_TO_SPECIES(HOOPA), + NATIONAL_DEX_TO_SPECIES(VOLCANION), + // Alola + NATIONAL_DEX_TO_SPECIES(ROWLET), + NATIONAL_DEX_TO_SPECIES(DARTRIX), + NATIONAL_DEX_TO_SPECIES(DECIDUEYE), + NATIONAL_DEX_TO_SPECIES(LITTEN), + NATIONAL_DEX_TO_SPECIES(TORRACAT), + NATIONAL_DEX_TO_SPECIES(INCINEROAR), + NATIONAL_DEX_TO_SPECIES(POPPLIO), + NATIONAL_DEX_TO_SPECIES(BRIONNE), + NATIONAL_DEX_TO_SPECIES(PRIMARINA), + NATIONAL_DEX_TO_SPECIES(PIKIPEK), + NATIONAL_DEX_TO_SPECIES(TRUMBEAK), + NATIONAL_DEX_TO_SPECIES(TOUCANNON), + NATIONAL_DEX_TO_SPECIES(YUNGOOS), + NATIONAL_DEX_TO_SPECIES(GUMSHOOS), + NATIONAL_DEX_TO_SPECIES(GRUBBIN), + NATIONAL_DEX_TO_SPECIES(CHARJABUG), + NATIONAL_DEX_TO_SPECIES(VIKAVOLT), + NATIONAL_DEX_TO_SPECIES(CRABRAWLER), + NATIONAL_DEX_TO_SPECIES(CRABOMINABLE), + NATIONAL_DEX_TO_SPECIES(ORICORIO), + NATIONAL_DEX_TO_SPECIES(CUTIEFLY), + NATIONAL_DEX_TO_SPECIES(RIBOMBEE), + NATIONAL_DEX_TO_SPECIES(ROCKRUFF), + NATIONAL_DEX_TO_SPECIES(LYCANROC), + NATIONAL_DEX_TO_SPECIES(WISHIWASHI), + NATIONAL_DEX_TO_SPECIES(MAREANIE), + NATIONAL_DEX_TO_SPECIES(TOXAPEX), + NATIONAL_DEX_TO_SPECIES(MUDBRAY), + NATIONAL_DEX_TO_SPECIES(MUDSDALE), + NATIONAL_DEX_TO_SPECIES(DEWPIDER), + NATIONAL_DEX_TO_SPECIES(ARAQUANID), + NATIONAL_DEX_TO_SPECIES(FOMANTIS), + NATIONAL_DEX_TO_SPECIES(LURANTIS), + NATIONAL_DEX_TO_SPECIES(MORELULL), + NATIONAL_DEX_TO_SPECIES(SHIINOTIC), + NATIONAL_DEX_TO_SPECIES(SALANDIT), + NATIONAL_DEX_TO_SPECIES(SALAZZLE), + NATIONAL_DEX_TO_SPECIES(STUFFUL), + NATIONAL_DEX_TO_SPECIES(BEWEAR), + NATIONAL_DEX_TO_SPECIES(BOUNSWEET), + NATIONAL_DEX_TO_SPECIES(STEENEE), + NATIONAL_DEX_TO_SPECIES(TSAREENA), + NATIONAL_DEX_TO_SPECIES(COMFEY), + NATIONAL_DEX_TO_SPECIES(ORANGURU), + NATIONAL_DEX_TO_SPECIES(PASSIMIAN), + NATIONAL_DEX_TO_SPECIES(WIMPOD), + NATIONAL_DEX_TO_SPECIES(GOLISOPOD), + NATIONAL_DEX_TO_SPECIES(SANDYGAST), + NATIONAL_DEX_TO_SPECIES(PALOSSAND), + NATIONAL_DEX_TO_SPECIES(PYUKUMUKU), + NATIONAL_DEX_TO_SPECIES(TYPE_NULL), + NATIONAL_DEX_TO_SPECIES(SILVALLY), + NATIONAL_DEX_TO_SPECIES(MINIOR), + NATIONAL_DEX_TO_SPECIES(KOMALA), + NATIONAL_DEX_TO_SPECIES(TURTONATOR), + NATIONAL_DEX_TO_SPECIES(TOGEDEMARU), + NATIONAL_DEX_TO_SPECIES(MIMIKYU), + NATIONAL_DEX_TO_SPECIES(BRUXISH), + NATIONAL_DEX_TO_SPECIES(DRAMPA), + NATIONAL_DEX_TO_SPECIES(DHELMISE), + NATIONAL_DEX_TO_SPECIES(JANGMO_O), + NATIONAL_DEX_TO_SPECIES(HAKAMO_O), + NATIONAL_DEX_TO_SPECIES(KOMMO_O), + NATIONAL_DEX_TO_SPECIES(TAPU_KOKO), + NATIONAL_DEX_TO_SPECIES(TAPU_LELE), + NATIONAL_DEX_TO_SPECIES(TAPU_BULU), + NATIONAL_DEX_TO_SPECIES(TAPU_FINI), + NATIONAL_DEX_TO_SPECIES(COSMOG), + NATIONAL_DEX_TO_SPECIES(COSMOEM), + NATIONAL_DEX_TO_SPECIES(SOLGALEO), + NATIONAL_DEX_TO_SPECIES(LUNALA), + NATIONAL_DEX_TO_SPECIES(NIHILEGO), + NATIONAL_DEX_TO_SPECIES(BUZZWOLE), + NATIONAL_DEX_TO_SPECIES(PHEROMOSA), + NATIONAL_DEX_TO_SPECIES(XURKITREE), + NATIONAL_DEX_TO_SPECIES(CELESTEELA), + NATIONAL_DEX_TO_SPECIES(KARTANA), + NATIONAL_DEX_TO_SPECIES(GUZZLORD), + NATIONAL_DEX_TO_SPECIES(NECROZMA), + NATIONAL_DEX_TO_SPECIES(MAGEARNA), + NATIONAL_DEX_TO_SPECIES(MARSHADOW), + NATIONAL_DEX_TO_SPECIES(POIPOLE), + NATIONAL_DEX_TO_SPECIES(NAGANADEL), + NATIONAL_DEX_TO_SPECIES(STAKATAKA), + NATIONAL_DEX_TO_SPECIES(BLACEPHALON), + NATIONAL_DEX_TO_SPECIES(ZERAORA), + // Unknown + NATIONAL_DEX_TO_SPECIES(MELTAN), + NATIONAL_DEX_TO_SPECIES(MELMETAL), + // Galar + NATIONAL_DEX_TO_SPECIES(GROOKEY), + NATIONAL_DEX_TO_SPECIES(THWACKEY), + NATIONAL_DEX_TO_SPECIES(RILLABOOM), + NATIONAL_DEX_TO_SPECIES(SCORBUNNY), + NATIONAL_DEX_TO_SPECIES(RABOOT), + NATIONAL_DEX_TO_SPECIES(CINDERACE), + NATIONAL_DEX_TO_SPECIES(SOBBLE), + NATIONAL_DEX_TO_SPECIES(DRIZZILE), + NATIONAL_DEX_TO_SPECIES(INTELEON), + NATIONAL_DEX_TO_SPECIES(SKWOVET), + NATIONAL_DEX_TO_SPECIES(GREEDENT), + NATIONAL_DEX_TO_SPECIES(ROOKIDEE), + NATIONAL_DEX_TO_SPECIES(CORVISQUIRE), + NATIONAL_DEX_TO_SPECIES(CORVIKNIGHT), + NATIONAL_DEX_TO_SPECIES(BLIPBUG), + NATIONAL_DEX_TO_SPECIES(DOTTLER), + NATIONAL_DEX_TO_SPECIES(ORBEETLE), + NATIONAL_DEX_TO_SPECIES(NICKIT), + NATIONAL_DEX_TO_SPECIES(THIEVUL), + NATIONAL_DEX_TO_SPECIES(GOSSIFLEUR), + NATIONAL_DEX_TO_SPECIES(ELDEGOSS), + NATIONAL_DEX_TO_SPECIES(WOOLOO), + NATIONAL_DEX_TO_SPECIES(DUBWOOL), + NATIONAL_DEX_TO_SPECIES(CHEWTLE), + NATIONAL_DEX_TO_SPECIES(DREDNAW), + NATIONAL_DEX_TO_SPECIES(YAMPER), + NATIONAL_DEX_TO_SPECIES(BOLTUND), + NATIONAL_DEX_TO_SPECIES(ROLYCOLY), + NATIONAL_DEX_TO_SPECIES(CARKOL), + NATIONAL_DEX_TO_SPECIES(COALOSSAL), + NATIONAL_DEX_TO_SPECIES(APPLIN), + NATIONAL_DEX_TO_SPECIES(FLAPPLE), + NATIONAL_DEX_TO_SPECIES(APPLETUN), + NATIONAL_DEX_TO_SPECIES(SILICOBRA), + NATIONAL_DEX_TO_SPECIES(SANDACONDA), + NATIONAL_DEX_TO_SPECIES(CRAMORANT), + NATIONAL_DEX_TO_SPECIES(ARROKUDA), + NATIONAL_DEX_TO_SPECIES(BARRASKEWDA), + NATIONAL_DEX_TO_SPECIES(TOXEL), + NATIONAL_DEX_TO_SPECIES(TOXTRICITY), + NATIONAL_DEX_TO_SPECIES(SIZZLIPEDE), + NATIONAL_DEX_TO_SPECIES(CENTISKORCH), + NATIONAL_DEX_TO_SPECIES(CLOBBOPUS), + NATIONAL_DEX_TO_SPECIES(GRAPPLOCT), + NATIONAL_DEX_TO_SPECIES(SINISTEA), + NATIONAL_DEX_TO_SPECIES(POLTEAGEIST), + NATIONAL_DEX_TO_SPECIES(HATENNA), + NATIONAL_DEX_TO_SPECIES(HATTREM), + NATIONAL_DEX_TO_SPECIES(HATTERENE), + NATIONAL_DEX_TO_SPECIES(IMPIDIMP), + NATIONAL_DEX_TO_SPECIES(MORGREM), + NATIONAL_DEX_TO_SPECIES(GRIMMSNARL), + NATIONAL_DEX_TO_SPECIES(OBSTAGOON), + NATIONAL_DEX_TO_SPECIES(PERRSERKER), + NATIONAL_DEX_TO_SPECIES(CURSOLA), + NATIONAL_DEX_TO_SPECIES(SIRFETCHD), + NATIONAL_DEX_TO_SPECIES(MR_RIME), + NATIONAL_DEX_TO_SPECIES(RUNERIGUS), + NATIONAL_DEX_TO_SPECIES(MILCERY), + NATIONAL_DEX_TO_SPECIES(ALCREMIE), + NATIONAL_DEX_TO_SPECIES(FALINKS), + NATIONAL_DEX_TO_SPECIES(PINCURCHIN), + NATIONAL_DEX_TO_SPECIES(SNOM), + NATIONAL_DEX_TO_SPECIES(FROSMOTH), + NATIONAL_DEX_TO_SPECIES(STONJOURNER), + NATIONAL_DEX_TO_SPECIES(EISCUE), + NATIONAL_DEX_TO_SPECIES(INDEEDEE), + NATIONAL_DEX_TO_SPECIES(MORPEKO), + NATIONAL_DEX_TO_SPECIES(CUFANT), + NATIONAL_DEX_TO_SPECIES(COPPERAJAH), + NATIONAL_DEX_TO_SPECIES(DRACOZOLT), + NATIONAL_DEX_TO_SPECIES(ARCTOZOLT), + NATIONAL_DEX_TO_SPECIES(DRACOVISH), + NATIONAL_DEX_TO_SPECIES(ARCTOVISH), + NATIONAL_DEX_TO_SPECIES(DURALUDON), + NATIONAL_DEX_TO_SPECIES(DREEPY), + NATIONAL_DEX_TO_SPECIES(DRAKLOAK), + NATIONAL_DEX_TO_SPECIES(DRAGAPULT), + NATIONAL_DEX_TO_SPECIES(ZACIAN), + NATIONAL_DEX_TO_SPECIES(ZAMAZENTA), + NATIONAL_DEX_TO_SPECIES(ETERNATUS), + NATIONAL_DEX_TO_SPECIES(KUBFU), + NATIONAL_DEX_TO_SPECIES(URSHIFU), + NATIONAL_DEX_TO_SPECIES(ZARUDE), + NATIONAL_DEX_TO_SPECIES(REGIELEKI), + NATIONAL_DEX_TO_SPECIES(REGIDRAGO), + NATIONAL_DEX_TO_SPECIES(GLASTRIER), + NATIONAL_DEX_TO_SPECIES(SPECTRIER), + NATIONAL_DEX_TO_SPECIES(CALYREX), + NATIONAL_DEX_TO_SPECIES(WYRDEER), + NATIONAL_DEX_TO_SPECIES(KLEAVOR), + NATIONAL_DEX_TO_SPECIES(URSALUNA), + NATIONAL_DEX_TO_SPECIES(BASCULEGION), + NATIONAL_DEX_TO_SPECIES(SNEASLER), + NATIONAL_DEX_TO_SPECIES(OVERQWIL), + NATIONAL_DEX_TO_SPECIES(ENAMORUS), +}; \ No newline at end of file diff --git a/src/debug.c b/src/debug.c index de7602e636..16e11eec4e 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1467,7 +1467,7 @@ static void DebugAction_Flags_SetPokedexFlags(u8 taskId) for (i = 0; i < NATIONAL_DEX_COUNT; i++) GetSetPokedexCaughtFlag(i + 1, FLAG_SET_CAUGHT); for (i = 0; i < NUM_SPECIES; i++) - GetSetPokedexFlag(i + 1, FLAG_SET_SEEN); + GetSetPokedexSeenFlag(i + 1, FLAG_SET_SEEN); Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } @@ -2625,7 +2625,6 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId) } static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://github.com/ghoulslash/pokeemerald/tree/custom-givemon { - u16 nationalDexNum; int sentToPc; struct Pokemon mon; u8 i; @@ -2719,13 +2718,12 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu } //Pokedex entry - nationalDexNum = SpeciesToNationalPokedexNum(species); switch(sentToPc) { case MON_GIVEN_TO_PARTY: case MON_GIVEN_TO_PC: - GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); - GetSetPokedexCaughtFlag(nationalDexNum, FLAG_SET_CAUGHT); + GetSetPokedexSeenFlag(species, FLAG_SET_SEEN); + GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT); break; case MON_CANT_GIVE: break; diff --git a/src/easy_chat.c b/src/easy_chat.c index 054c65c0fb..309e8a0da1 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -5515,7 +5515,7 @@ static u16 GetRandomUnlockedEasyChatPokemon(void) for (i = 0; i < numWords; i++) { u16 dexNum = SpeciesToNationalPokedexNum(*species); - if (GetSetPokedexFlag(dexNum, FLAG_GET_SEEN)) + if (GetPokedexFlagFirstSeen(dexNum) ? TRUE : FALSE) { if (index) index--; @@ -5779,10 +5779,10 @@ static bool8 IsEasyChatIndexAndGroupUnlocked(u16 wordIndex, u8 groupId) switch (groupId) { case EC_GROUP_POKEMON: - return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + return GetPokedexFlagFirstSeen(SpeciesToNationalPokedexNum(wordIndex) ? TRUE : FALSE); case EC_GROUP_POKEMON_NATIONAL: if (IsRestrictedWordSpecies(wordIndex)) - GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + GetPokedexFlagFirstSeen(SpeciesToNationalPokedexNum(wordIndex) ? TRUE : FALSE); return TRUE; case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 7f7bf650cb..1e8eeed2c2 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -372,7 +372,7 @@ static void AddHatchedMonToParty(u8 id) GetSpeciesName(name, species); SetMonData(mon, MON_DATA_NICKNAME, name); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_SEEN); + GetSetPokedexSeenFlag(species, FLAG_SET_SEEN); GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT); GetMonNickname2(mon, gStringVar1); diff --git a/src/evolution_scene.c b/src/evolution_scene.c index d6a411b69f..4f2069a368 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -583,7 +583,7 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) CalculateMonStats(&gPlayerParty[gPlayerPartyCount]); CalculatePlayerPartyCount(); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_SEEN); + GetSetPokedexSeenFlag(gEvolutionTable[preEvoSpecies][1].targetSpecies, FLAG_SET_SEEN); GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_CAUGHT); if (GetMonData(shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA @@ -775,7 +775,7 @@ static void Task_EvolutionScene(u8 taskId) SetMonData(mon, MON_DATA_SPECIES, (void *)(&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexSeenFlag(gTasks[taskId].tPostEvoSpecies, FLAG_SET_SEEN); GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } @@ -1195,7 +1195,7 @@ static void Task_TradeEvolutionScene(u8 taskId) SetMonData(mon, MON_DATA_SPECIES, (&gTasks[taskId].tPostEvoSpecies)); CalculateMonStats(mon); EvolutionRenameMon(mon, gTasks[taskId].tPreEvoSpecies, gTasks[taskId].tPostEvoSpecies); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_SEEN); + GetSetPokedexSeenFlag(gTasks[taskId].tPostEvoSpecies, FLAG_SET_SEEN); GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(gTasks[taskId].tPostEvoSpecies), FLAG_SET_CAUGHT); IncrementGameStat(GAME_STAT_EVOLVED_POKEMON); } diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index e2ccc6dfdf..6b0ffbd316 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -338,9 +338,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) if (species != SPECIES_EGG) { - u16 pokedexNum = SpeciesToNationalPokedexNum(species); - GetSetPokedexFlag(pokedexNum, FLAG_SET_SEEN); - GetSetPokedexCaughtFlag(pokedexNum, FLAG_SET_CAUGHT); + GetSetPokedexSeenFlag(species, FLAG_SET_SEEN); + GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT); } heldItem = GetMonData(&gPlayerParty[PARTY_SIZE - 1], MON_DATA_HELD_ITEM); diff --git a/src/pokedex.c b/src/pokedex.c index 99df87bb89..062fe389a5 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2210,7 +2210,7 @@ static void CreatePokedexList(u8 dexMode, u8 order) { temp_dexNum = HoennToNationalOrder(i + 1); sPokedexView->pokedexList[i].dexNum = temp_dexNum; - sPokedexView->pokedexList[i].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN); + sPokedexView->pokedexList[i].seen = GetPokedexFlagFirstSeen(temp_dexNum) ? TRUE : FALSE; sPokedexView->pokedexList[i].owned = GetSetPokedexCaughtFlag(temp_dexNum, FLAG_GET_CAUGHT); if (sPokedexView->pokedexList[i].seen) sPokedexView->pokemonListCount = i + 1; @@ -2222,12 +2222,12 @@ static void CreatePokedexList(u8 dexMode, u8 order) for (i = 0, r5 = 0, r10 = 0; i < temp_dexCount; i++) { temp_dexNum = i + 1; - if (GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN)) + if (GetPokedexFlagFirstSeen(temp_dexNum) ? TRUE : FALSE) r10 = 1; if (r10) { sPokedexView->pokedexList[r5].dexNum = temp_dexNum; - sPokedexView->pokedexList[r5].seen = GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN); + sPokedexView->pokedexList[r5].seen = GetPokedexFlagFirstSeen(temp_dexNum) ? TRUE : FALSE; sPokedexView->pokedexList[r5].owned = GetSetPokedexCaughtFlag(temp_dexNum, FLAG_GET_CAUGHT); if (sPokedexView->pokedexList[r5].seen) sPokedexView->pokemonListCount = r5 + 1; @@ -2241,7 +2241,7 @@ static void CreatePokedexList(u8 dexMode, u8 order) { temp_dexNum = gPokedexOrder_Alphabetical[i]; - if (temp_dexNum <= NATIONAL_DEX_COUNT && (!temp_isHoennDex || NationalToHoennOrder(temp_dexNum) != 0) && GetSetPokedexFlag(temp_dexNum, FLAG_GET_SEEN)) + if (temp_dexNum <= NATIONAL_DEX_COUNT && (!temp_isHoennDex || NationalToHoennOrder(temp_dexNum) != 0) && GetPokedexFlagFirstSeen(temp_dexNum) ? TRUE : FALSE) { sPokedexView->pokedexList[sPokedexView->pokemonListCount].dexNum = temp_dexNum; sPokedexView->pokedexList[sPokedexView->pokemonListCount].seen = TRUE; @@ -4305,11 +4305,20 @@ u16 GetPokedexFlagFirstSeen(u16 nationalDexNo) { for (formId = 0; formTable[formId] != FORM_SPECIES_END; formId++) { + if (nationalDexNo == 25) + MgbaPrintf(MGBA_LOG_INFO, "species1:%d, found:%d", formTable[formId], GetSetPokedexSeenFlag(formTable[formId], FLAG_GET_SEEN)); + if (GetSetPokedexSeenFlag(formTable[formId], FLAG_GET_SEEN)) return formTable[formId]; } + return SPECIES_NONE; + } + else + { + if (nationalDexNo == 25) + MgbaPrintf(MGBA_LOG_INFO, "species2:%d, found:%d", gBaseFormSpeciesIdTable[nationalDexNo], GetSetPokedexSeenFlag(gBaseFormSpeciesIdTable[nationalDexNo], FLAG_GET_SEEN)); + return GetSetPokedexSeenFlag(gBaseFormSpeciesIdTable[nationalDexNo], FLAG_GET_SEEN); } - return SPECIES_NONE; } s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID) @@ -4351,7 +4360,7 @@ u16 GetNationalPokedexCount(u8 caseID) switch (caseID) { case FLAG_GET_SEEN: - if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN)) + if (GetPokedexFlagFirstSeen(i + 1) ? TRUE : FALSE) count++; break; case FLAG_GET_CAUGHT: @@ -4373,7 +4382,7 @@ u16 GetHoennPokedexCount(u8 caseID) switch (caseID) { case FLAG_GET_SEEN: - if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN)) + if (GetPokedexFlagFirstSeen(HoennToNationalOrder(i + 1)) ? TRUE : FALSE) count++; break; case FLAG_GET_CAUGHT: @@ -4395,7 +4404,7 @@ u16 GetKantoPokedexCount(u8 caseID) switch (caseID) { case FLAG_GET_SEEN: - if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN)) + if (GetPokedexFlagFirstSeen(i + 1) ? TRUE : FALSE) count++; break; case FLAG_GET_CAUGHT: diff --git a/src/pokemon.c b/src/pokemon.c index 2f925a50b5..15667bd4e9 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1908,6 +1908,7 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/form_species_table_pointers.h" #include "data/pokemon/form_change_tables.h" #include "data/pokemon/form_change_table_pointers.h" +#include "data/pokemon/base_form_species_table.h" // SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result #if P_ENABLE_DEBUG == TRUE @@ -8184,15 +8185,32 @@ u16 PlayerGenderToFrontTrainerPicId(u8 playerGender) return FacilityClassToPicIndex(FACILITY_CLASS_BRENDAN); } -void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality) +void HandleSetPokedexFlag(u16 species, u8 caseId, u32 personality) { - u8 getFlagCaseId = (caseId == FLAG_SET_SEEN) ? FLAG_GET_SEEN : FLAG_GET_CAUGHT; - if (!GetSetPokedexFlag(nationalNum, getFlagCaseId)) // don't set if it's already set + bool8 updateUnownSpinda = FALSE; + if (caseId == FLAG_SET_SEEN) { - GetSetPokedexFlag(nationalNum, caseId); - if (NationalPokedexNumToSpecies(nationalNum) == SPECIES_UNOWN) + if (!GetSetPokedexSeenFlag(species, FLAG_GET_SEEN)) // don't set if it's already set + { + GetSetPokedexSeenFlag(species, caseId); + updateUnownSpinda = TRUE; + } + } + else if (caseId == FLAG_SET_CAUGHT) + { + u16 nationalNum = SpeciesToNationalPokedexNum(species); + if (!GetSetPokedexCaughtFlag(nationalNum, FLAG_GET_CAUGHT)) // don't set if it's already set + { + GetSetPokedexCaughtFlag(nationalNum, caseId); + updateUnownSpinda = TRUE; + } + } + + if (updateUnownSpinda) + { + if (species == SPECIES_UNOWN) gSaveBlock2Ptr->pokedex.unownPersonality = personality; - if (NationalPokedexNumToSpecies(nationalNum) == SPECIES_SPINDA) + if (species == SPECIES_SPINDA) gSaveBlock2Ptr->pokedex.spindaPersonality = personality; } } diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 264d0803f6..05804a3e8d 100755 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -60,7 +60,6 @@ void HealPlayerParty(void) u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 unused3) { - u16 nationalDexNum; int sentToPc; u8 heldItem[2]; struct Pokemon mon; @@ -80,15 +79,14 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u } sentToPc = GiveMonToPlayer(&mon); - nationalDexNum = SpeciesToNationalPokedexNum(species); // Don't set Pokédex flag for MON_CANT_GIVE switch(sentToPc) { case MON_GIVEN_TO_PARTY: case MON_GIVEN_TO_PC: - GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); - GetSetPokedexCaughtFlag(nationalDexNum, FLAG_SET_CAUGHT); + GetSetPokedexSeenFlag(species, FLAG_SET_SEEN); + GetSetPokedexCaughtFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT); break; } return sentToPc; diff --git a/src/trade.c b/src/trade.c index 8ded41a1e1..64066aadd7 100644 --- a/src/trade.c +++ b/src/trade.c @@ -3023,8 +3023,7 @@ static void UpdatePokedexForReceivedMon(u8 partyIdx) { u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); - species = SpeciesToNationalPokedexNum(species); - GetSetPokedexFlag(species, FLAG_SET_SEEN); + GetSetPokedexSeenFlag(species, FLAG_SET_SEEN); HandleSetPokedexFlag(species, FLAG_SET_CAUGHT, personality); } } diff --git a/src/tv.c b/src/tv.c index da1ff29175..061ba3fefa 100644 --- a/src/tv.c +++ b/src/tv.c @@ -3068,7 +3068,7 @@ static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 excludedSpecies) u16 species = Random() % (NUM_SPECIES - 1) + 1; u16 initSpecies = species; - while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == excludedSpecies) + while (GetPokedexFlagFirstSeen(SpeciesToNationalPokedexNum(species)) == FALSE || species == excludedSpecies) { if (species == SPECIES_NONE + 1) species = NUM_SPECIES - 1; @@ -3762,7 +3762,7 @@ static void DeactivateShow(u8 showIdx) static void DeactivateShowIfNotSeenSpecies(u16 species, u8 showIdx) { - if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN)) + if (!GetPokedexFlagFirstSeen(SpeciesToNationalPokedexNum(species)) ? TRUE : FALSE) gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; }