diff --git a/src/pokeball.c b/src/pokeball.c index 92081a296e..916c86287f 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -1133,6 +1133,11 @@ static void sub_80767D4(struct Sprite *sprite) AnimateBallOpenParticlesForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5); sprite->callback = sub_807687C; +#ifdef BUGFIX + // FIX: If this is used on a sprite that has previously had an affine animation, it will not + // play the shrink anim properly due to being paused. Works together with the fix to `sub_817F77C`. + gSprites[r7].affineAnimPaused = FALSE; +#endif // BUGFIX StartSpriteAffineAnim(&gSprites[r7], 2); AnimateSprite(&gSprites[r7]); gSprites[r7].data[1] = 0; diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 58c1742635..c4077aff46 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -1046,7 +1046,6 @@ static void sub_817F77C(struct Sprite *sprite) { // FIX: Reset these back to normal after they were changed so Poké Ball catch/release // animations without a screen transition in between don't break - sprite->affineAnimPaused = FALSE; sprite->affineAnims = gUnknown_082FF694; } #endif // BUGFIX