From ef7832a55cbf8ef0262ba63400afcf5648e8b0be Mon Sep 17 00:00:00 2001 From: Sierraffinity Date: Wed, 30 Dec 2020 17:36:53 -0800 Subject: [PATCH] Change how mon affine transform fix is handled --- src/pokeball.c | 5 +++++ src/pokemon_animation.c | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pokeball.c b/src/pokeball.c index 92081a296..916c86287 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 58c174263..c4077aff4 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