diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 47bb0b37ee..8706cc9e06 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -2237,9 +2237,7 @@ void BtlController_HandleLoadMonSprite(u32 battler) SetBattlerShadowSpriteCallback(battler, species); - if (IsControllerOpponent(battler) - && IsControllerLinkOpponent(battler) - && IsControllerRecordedOpponent(battler)) + if (IsControllerOpponent(battler) || IsControllerLinkOpponent(battler) || IsControllerRecordedOpponent(battler)) gBattlerControllerFuncs[battler] = TryShinyAnimAfterMonAnim; else gBattlerControllerFuncs[battler] = WaitForMonAnimAfterLoad; @@ -2919,14 +2917,14 @@ void TrySetBattlerShadowSpriteCallback(u32 battler) void TryShinyAnimAfterMonAnim(u32 battler) { - if (gSprites[gBattlerSpriteIds[battler]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[battler]].x2 == 0) + if (gSprites[gBattlerSpriteIds[battler]].x2 == 0) { if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim) { TryShinyAnimation(battler, GetBattlerMon(battler)); } - else if (gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim) + + if (gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = FALSE; diff --git a/src/pokeball.c b/src/pokeball.c index d77d49797d..5608de9647 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -1080,8 +1080,11 @@ static void HandleBallAnimEnd(struct Sprite *sprite) AnimateSprite(&gSprites[gBattlerSpriteIds[battler]]); gSprites[gBattlerSpriteIds[battler]].data[1] = 0x1000; } + else + { + gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; + } - gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; if (sprite->animEnded) sprite->invisible = TRUE; if (gSprites[gBattlerSpriteIds[battler]].affineAnimEnded)