diff --git a/src/battle_interface.c b/src/battle_interface.c index 736b3be58..3506e6382 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1566,8 +1566,8 @@ void CreateMegaTriggerSprite(u8 battlerId, u8 palId) gBattleStruct->megaEvoTriggerSpriteId = CreateSprite(&sSpriteTemplate_MegaTrigger, gSprites[gHealthboxSpriteIds[battlerId]].pos1.x, gSprites[gHealthboxSpriteIds[battlerId]].pos1.y - MEGA_TRIGGER_POS_Y_DIFF, 0); - gSprites[gBattleStruct->megaEvoTriggerSpriteId].tBattler = battlerId; } + gSprites[gBattleStruct->megaEvoTriggerSpriteId].tBattler = battlerId; gSprites[gBattleStruct->megaEvoTriggerSpriteId].tHide = FALSE; SetMegaTriggerSpritePal(gBattleStruct->megaEvoTriggerSpriteId, palId); diff --git a/src/battle_main.c b/src/battle_main.c index 4e79f7ad1..f01d1b52b 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4338,6 +4338,8 @@ static void HandleTurnActionSelectionState(void) { RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 3); } + + gBattleStruct->toMegaEvolve &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))]); BtlController_EmitEndBounceEffect(0); MarkBattlerForControllerExec(gActiveBattler); return; diff --git a/src/battle_util.c b/src/battle_util.c index b6e3af4d9..549f16bac 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -5611,7 +5611,8 @@ bool32 CanMegaEvolve(u8 battlerId) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (IsPartnerMonFromSameTrainer(battlerId) && gBattleStruct->alreadyMegaEvolved[partnerPosition]) + if (IsPartnerMonFromSameTrainer(battlerId) + && (gBattleStruct->alreadyMegaEvolved[partnerPosition] || (gBattleStruct->toMegaEvolve & gBitTable[BATTLE_PARTNER(battlerId)]))) return FALSE; }