summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKurausukun <lord.uber1@gmail.com>2021-07-12 23:57:38 -0400
committerKurausukun <lord.uber1@gmail.com>2021-07-12 23:57:38 -0400
commitd7f5e8d8f2c49f19c1eadc45093df64b5a9ebd01 (patch)
tree5ef234b0f53b3c46000715f5aa10875dc8003902 /src
parentf1e345d279d01659598430df4d434aeaa5521d8e (diff)
port UB fix from emerald
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_1.c15
1 files changed, 7 insertions, 8 deletions
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)