battle intro: fix issues with follower slide-in and wild shiny mon (#7325)

This commit is contained in:
mudskipper13 2025-07-14 01:47:14 +07:00 committed by GitHub
parent 8ce4f42f4d
commit 688ec0023e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 7 deletions

View File

@ -2237,9 +2237,7 @@ void BtlController_HandleLoadMonSprite(u32 battler)
SetBattlerShadowSpriteCallback(battler, species); SetBattlerShadowSpriteCallback(battler, species);
if (IsControllerOpponent(battler) if (IsControllerOpponent(battler) || IsControllerLinkOpponent(battler) || IsControllerRecordedOpponent(battler))
&& IsControllerLinkOpponent(battler)
&& IsControllerRecordedOpponent(battler))
gBattlerControllerFuncs[battler] = TryShinyAnimAfterMonAnim; gBattlerControllerFuncs[battler] = TryShinyAnimAfterMonAnim;
else else
gBattlerControllerFuncs[battler] = WaitForMonAnimAfterLoad; gBattlerControllerFuncs[battler] = WaitForMonAnimAfterLoad;
@ -2919,14 +2917,14 @@ void TrySetBattlerShadowSpriteCallback(u32 battler)
void TryShinyAnimAfterMonAnim(u32 battler) void TryShinyAnimAfterMonAnim(u32 battler)
{ {
if (gSprites[gBattlerSpriteIds[battler]].callback == SpriteCallbackDummy if (gSprites[gBattlerSpriteIds[battler]].x2 == 0)
&& gSprites[gBattlerSpriteIds[battler]].x2 == 0)
{ {
if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim) if (!gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim)
{ {
TryShinyAnimation(battler, GetBattlerMon(battler)); TryShinyAnimation(battler, GetBattlerMon(battler));
} }
else if (gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
if (gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim)
{ {
gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[battler].triedShinyMonAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = FALSE;

View File

@ -1080,8 +1080,11 @@ static void HandleBallAnimEnd(struct Sprite *sprite)
AnimateSprite(&gSprites[gBattlerSpriteIds[battler]]); AnimateSprite(&gSprites[gBattlerSpriteIds[battler]]);
gSprites[gBattlerSpriteIds[battler]].data[1] = 0x1000; gSprites[gBattlerSpriteIds[battler]].data[1] = 0x1000;
} }
else
{
gSprites[gBattlerSpriteIds[battler]].invisible = FALSE;
}
gSprites[gBattlerSpriteIds[battler]].invisible = FALSE;
if (sprite->animEnded) if (sprite->animEnded)
sprite->invisible = TRUE; sprite->invisible = TRUE;
if (gSprites[gBattlerSpriteIds[battler]].affineAnimEnded) if (gSprites[gBattlerSpriteIds[battler]].affineAnimEnded)