From d8f399e4873bb688dba1669940a5ae4484f136a3 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 16 May 2022 20:39:32 +0200 Subject: [PATCH] improved PokemonExpansion compatibility for Megas that dont have their own moveset, credits @aarant --- src/pokedex.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pokedex.c b/src/pokedex.c index eb2a9ed7e3..621b3c2510 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -5443,6 +5443,12 @@ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, u8 bodyColor, u8 t { species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); + #ifdef POKEMON_EXPANSION + // Mega pokemon don't have distinct learnsets from their base form; so use base species for calculation + if (species >= SPECIES_VENUSAUR_MEGA && species <= SPECIES_GROUDON_PRIMAL) + species = GetFormSpeciesId(species, 0); + #endif + //LevelUp if (SpeciesCanLearnLvlUpMove(species, move)) { @@ -6763,13 +6769,23 @@ static bool8 CalculateMoves(void) u16 statsMovesTMHM[NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES] = {0}; u16 statsMovesTutor[TUTOR_MOVE_COUNT] = {0}; - u8 numEggMoves = GetEggMovesSpecies(species, statsMovesEgg); - u8 numLevelUpMoves = GetLevelUpMovesBySpecies(species, statsMovesLevelUp); + u8 numEggMoves = 0; + u8 numLevelUpMoves = 0; u8 numTMHMMoves = 0; u8 numTutorMoves = 0; u16 movesTotal = 0; u8 i,j; + #ifdef POKEMON_EXPANSION + // Mega pokemon don't have distinct learnsets from their base form; so use base species for calculation + if (species >= SPECIES_VENUSAUR_MEGA && species <= SPECIES_GROUDON_PRIMAL) + species = GetFormSpeciesId(species, 0); + #endif + + //Calculate amount of Egg and LevelUp moves + numEggMoves = GetEggMovesSpecies(species, statsMovesEgg); + numLevelUpMoves = GetLevelUpMovesBySpecies(species, statsMovesLevelUp); + //Egg moves for (i=0; i < numEggMoves; i++) {