diff --git a/include/battle.h b/include/battle.h index 0b23033ec0..110c252bce 100644 --- a/include/battle.h +++ b/include/battle.h @@ -489,7 +489,6 @@ struct MegaEvolutionData u8 battlerId; bool8 playerSelect; u8 triggerSpriteId; - bool8 isWishMegaEvo; }; struct Illusion diff --git a/src/battle_main.c b/src/battle_main.c index 7ec8ad285a..b7306eb167 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4883,9 +4883,14 @@ static void CheckMegaEvolutionBeforeTurn(void) if (gBattleStruct->mega.toEvolve & gBitTable[gActiveBattler] && !(gProtectStructs[gActiveBattler].noValidMoves)) { + struct Pokemon *mon; + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) + mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; + else + mon = &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]; gBattleStruct->mega.toEvolve &= ~(gBitTable[gActiveBattler]); gLastUsedItem = gBattleMons[gActiveBattler].item; - if (gBattleStruct->mega.isWishMegaEvo == TRUE) + if (GetWishMegaEvolutionSpecies(GetMonData(mon, MON_DATA_SPECIES), GetMonData(mon, MON_DATA_MOVE1), GetMonData(mon, MON_DATA_MOVE2), GetMonData(mon, MON_DATA_MOVE3), GetMonData(mon, MON_DATA_MOVE4))) BattleScriptExecute(BattleScript_WishMegaEvolution); else BattleScriptExecute(BattleScript_MegaEvolution); diff --git a/src/battle_util.c b/src/battle_util.c index f7944b4d94..8765a16d03 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10109,18 +10109,12 @@ bool32 CanMegaEvolve(u8 battlerId) // Can Mega Evolve via Mega Stone. if (holdEffect == HOLD_EFFECT_MEGA_STONE) - { - gBattleStruct->mega.isWishMegaEvo = FALSE; return TRUE; - } } // Check if there is an entry in the evolution table for Wish Mega Evolution. if (GetWishMegaEvolutionSpecies(species, GetMonData(mon, MON_DATA_MOVE1), GetMonData(mon, MON_DATA_MOVE2), GetMonData(mon, MON_DATA_MOVE3), GetMonData(mon, MON_DATA_MOVE4))) - { - gBattleStruct->mega.isWishMegaEvo = TRUE; return TRUE; - } // No checks passed, the mon CAN'T mega evolve. return FALSE;