From df4b8008b6c2d0d8ff5d7c0bcc1acd9154503f74 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 5 Mar 2025 10:13:29 +0100 Subject: [PATCH] Fix GetEvolutionSequence fakematching --- src/pokemon.c | 76 ++++++++++++++------------------------------------- 1 file changed, 20 insertions(+), 56 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index a5f5bfdb2..fbb04218b 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1216,67 +1216,31 @@ s32 sub_808E218(unkStruct_808E218_arg* a1, PokemonStruct1* pokemon) return count; } - s32 GetEvolutionSequence(PokemonStruct1* pokemon, struct EvolveStage* a2) { -#ifdef NONMATCHING - s32 count; - s32 species; - s32 i; + s32 count; + s32 species; + s32 i; - a2[0].speciesNum = pokemon->speciesNum; - a2[0].level = pokemon->level; + a2[0].speciesNum = pokemon->speciesNum; + a2[0].level = pokemon->level; - count = 1; - species = pokemon->speciesNum; - i = 0; + count = 1; + species = pokemon->speciesNum; - for (; i < 2; i++) { - if (!pokemon->unkC[i].level) { - break; - } - species = (s16) GetPokemonEvolveFrom(species); - if (!species) { - break; - } - a2[1 + i].speciesNum = species; - a2[1 + i].level = pokemon->unkC[i].level; - // wrong increment order: - count++; - } - return count; -#else - s32 count; - s32 species; - s32 i; - struct EvolveStage* stage; - struct unkPokeSubStruct_C* has_next_stage; - - a2[0].speciesNum = pokemon->speciesNum; - a2[0].level = pokemon->level; - - count = 1; - species = pokemon->speciesNum; - i = 0; - has_next_stage = pokemon->unkC; - stage = &a2[1]; - - for (; i < 2; i++) { - if (!has_next_stage->level) { - break; - } - species = (s16) GetPokemonEvolveFrom(species); - if (!species) { - break; - } - stage->speciesNum = species; - stage->level = has_next_stage->level; - stage++; - count++; - has_next_stage++; - } - return count; -#endif + for (i = 0; i < 2; i++) { + if (!pokemon->unkC[i].level) { + break; + } + species = (s16) GetPokemonEvolveFrom(species); + if (!species) { + break; + } + a2[count].speciesNum = species; + a2[count].level = pokemon->unkC[i].level; + count++; + } + return count; } s32 sub_808E400(s32 _species, s16* _a2, bool32 _bodySizeCheck, bool32 _shedinjaCheck)