From d7f5e8d8f2c49f19c1eadc45093df64b5a9ebd01 Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Mon, 12 Jul 2021 23:57:38 -0400 Subject: port UB fix from emerald --- src/battle_anim_effects_1.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 152e93eec..6479d483e 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3945,22 +3945,21 @@ void AnimProtect(struct Sprite* sprite) static void AnimProtectStep(struct Sprite *sprite) { - int a; - int i; - + int i, id, savedPal; sprite->data[5] += 96; sprite->pos2.x = -(sprite->data[5] >> 8); if (++sprite->data[1] > 1) { sprite->data[1] = 0; - a = gPlttBufferFaded[sprite->data[2] + 1]; + savedPal = gPlttBufferFaded[sprite->data[2] + 1]; i = 0; - do + while (i < 6) { - gPlttBufferFaded[sprite->data[2] + ++i] = gPlttBufferFaded[sprite->data[2] + i + 1]; - } while (i < 6); + id = sprite->data[2] + ++i; + gPlttBufferFaded[id] = gPlttBufferFaded[id + 1]; + } - gPlttBufferFaded[sprite->data[2] + 7] = a; + gPlttBufferFaded[sprite->data[2] + 7] = savedPal; } if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1) -- cgit v1.2.3