summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-02-10 23:49:54 -0800
committerMarcus Huderle <huderlem@gmail.com>2018-02-11 13:29:15 -0800
commit4fe6a8bd80ff947661aea391060207a53895338e (patch)
tree01b570b02b904eea2255beb2e402c0a944cb1c4a /src
parent9bf6448707a36bf7d530bf932347c1adb508192e (diff)
Document battle anim things related to SWIFT and TWISTER
Diffstat (limited to 'src')
-rw-r--r--src/battle/anim/aurora.c6
-rw-r--r--src/battle/anim/blow_kiss.c6
-rw-r--r--src/battle/anim/bubble.c4
-rw-r--r--src/battle/anim/bug.c16
-rw-r--r--src/battle/anim/bullet.c2
-rw-r--r--src/battle/anim/cutter.c58
-rw-r--r--src/battle/anim/cyclone.c2
-rw-r--r--src/battle/anim/dark.c2
-rw-r--r--src/battle/anim/egg.c2
-rw-r--r--src/battle/anim/energy_wave.c8
-rw-r--r--src/battle/anim/fight.c12
-rw-r--r--src/battle/anim/fire_2.c8
-rw-r--r--src/battle/anim/flying_path.c14
-rw-r--r--src/battle/anim/glitter.c2
-rw-r--r--src/battle/anim/guard.c2
-rw-r--r--src/battle/anim/guillotine.c6
-rw-r--r--src/battle/anim/heart_1.c2
-rw-r--r--src/battle/anim/hop.c2
-rw-r--r--src/battle/anim/money.c2
-rw-r--r--src/battle/anim/note_rain.c2
-rw-r--r--src/battle/anim/note_scatter_2.c4
-rw-r--r--src/battle/anim/orbit.c12
-rw-r--r--src/battle/anim/orbs.c12
-rw-r--r--src/battle/anim/perceive.c2
-rw-r--r--src/battle/anim/poison.c14
-rw-r--r--src/battle/anim/psychic.c4
-rw-r--r--src/battle/anim/ring.c8
-rw-r--r--src/battle/anim/rock.c8
-rw-r--r--src/battle/anim/seed.c4
-rw-r--r--src/battle/anim/sonic.c2
-rw-r--r--src/battle/anim/sonic_task.c2
-rw-r--r--src/battle/anim/sword.c2
-rw-r--r--src/battle/anim/unused_8.c2
-rw-r--r--src/battle/anim/unused_9.c2
-rw-r--r--src/battle/anim/water.c2
-rw-r--r--src/battle/anim/wisp_orb.c4
-rw-r--r--src/battle/battle_anim_80A7E7C.c42
-rw-r--r--src/battle/pokeball.c8
-rw-r--r--src/rom_8077ABC.c62
39 files changed, 185 insertions, 169 deletions
diff --git a/src/battle/anim/aurora.c b/src/battle/anim/aurora.c
index 90fa5c879..b24809264 100644
--- a/src/battle/anim/aurora.c
+++ b/src/battle/anim/aurora.c
@@ -16,7 +16,7 @@ void sub_80D33B4(struct Sprite *sprite)
{
s16 r6;
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
if (GetBankSide(gAnimBankAttacker) != 0)
r6 = -gBattleAnimArgs[2];
else
@@ -26,7 +26,7 @@ void sub_80D33B4(struct Sprite *sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r6;
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->callback = sub_80D344C;
sprite->affineAnimPaused = TRUE;
sprite->callback(sprite);
@@ -39,7 +39,7 @@ static void sub_80D344C(struct Sprite *sprite)
StartSpriteAnim(sprite, 1);
sprite->affineAnimPaused = FALSE;
}
- if (sub_8078B5C(sprite) != 0)
+ if (TranslateAnimSpriteByDeltas(sprite) != 0)
DestroyAnimSprite(sprite);
}
diff --git a/src/battle/anim/blow_kiss.c b/src/battle/anim/blow_kiss.c
index e7b49471d..f585b74bc 100644
--- a/src/battle/anim/blow_kiss.c
+++ b/src/battle/anim/blow_kiss.c
@@ -15,19 +15,19 @@ static void sub_80D1FA4(struct Sprite* sprite);
void sub_80D1F58(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = 0x5F;
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->callback = sub_80D1FA4;
}
void sub_80D1FA4(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite) == 0)
+ if (TranslateAnimSpriteByDeltas(sprite) == 0)
{
sprite->pos2.y += Sin(sprite->data[5], 14);
sprite->data[5] = (sprite->data[5] + 4) & 0xFF;
diff --git a/src/battle/anim/bubble.c b/src/battle/anim/bubble.c
index 403003ce3..1252c1315 100644
--- a/src/battle/anim/bubble.c
+++ b/src/battle/anim/bubble.c
@@ -43,7 +43,7 @@ void sub_80D31C8(struct Sprite* sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
sprite->data[5] = newSpriteId;
@@ -69,7 +69,7 @@ static void sub_80D32E8(struct Sprite *sprite)
u16 index = gSprites[spriteId].data[3];
sprite->data[0] = 1;
- sub_8078B5C(sprite);
+ TranslateAnimSpriteByDeltas(sprite);
sprite->pos2.x += Sin(index / 256, gSprites[spriteId].data[0]);
sprite->pos2.y += Cos(index / 256, gSprites[spriteId].data[1]);
diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c
index dbc0f75a5..b2726d8dd 100644
--- a/src/battle/anim/bug.c
+++ b/src/battle/anim/bug.c
@@ -76,7 +76,7 @@ void sub_80DC9A0(struct Sprite *sprite)
if (IsContest())
gBattleAnimArgs[2] /= 2;
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
@@ -88,7 +88,7 @@ void sub_80DC9A0(struct Sprite *sprite)
}
else
{
- sub_807A3FC(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
+ SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
}
sub_8078BD4(sprite);
@@ -98,7 +98,7 @@ void sub_80DC9A0(struct Sprite *sprite)
static void sub_80DCA38(struct Sprite *sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
{
DestroyAnimSprite(sprite);
return;
@@ -111,7 +111,7 @@ static void sub_80DCA38(struct Sprite *sprite)
// used in Move_STRING_SHOT
void sub_80DCA70(struct Sprite *sprite)
{
- sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
if (GetBankSide(gAnimBankAttacker))
sprite->pos1.x -= gBattleAnimArgs[0];
else
@@ -212,7 +212,7 @@ void sub_80DCBCC(struct Sprite *sprite)
}
}
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
@@ -232,7 +232,7 @@ void sub_80DCBCC(struct Sprite *sprite)
// Move_PIN_MISSILE, Move_ICICLE_SPEAR
void sub_80DCCFC(struct Sprite *sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -251,7 +251,7 @@ void sub_80DCD78(struct Sprite *sprite)
{
sprite->invisible = FALSE;
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
DestroyAnimSprite(sprite);
}
@@ -271,7 +271,7 @@ void sub_80DCD78(struct Sprite *sprite)
x2 += x1;
y2 += y1;
- if (!sub_8078718(sprite))
+ if (!TranslateAnimSpriteLinearAndSine(sprite))
{
u16 rot = sub_80790F0(sprite->pos1.x + sprite->pos2.x - x2,
sprite->pos1.y + sprite->pos2.y - y2);
diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c
index 90b2021f1..8fc581d47 100644
--- a/src/battle/anim/bullet.c
+++ b/src/battle/anim/bullet.c
@@ -17,7 +17,7 @@ static void sub_80D00B4(struct Sprite* sprite);
void sub_80CFFD8(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = 20;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c
index 2234ebacb..0f23fed82 100644
--- a/src/battle/anim/cutter.c
+++ b/src/battle/anim/cutter.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "battle.h"
#include "rom_8077ABC.h"
#include "trig.h"
#include "battle_anim.h"
@@ -7,29 +8,36 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
-static void sub_80CB09C(struct Sprite* sprite);
-static void sub_80CB1A4(struct Sprite* sprite);
+static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite);
+static void AnimMoveTwisterParticleStep(struct Sprite* sprite);
-// cutter (the cresent shaped leaf used in throwing projectiles for the listed moves.)
+// Animates a sprite that moves linearly from one location to another, with a
+// single-cycle sine wave added to the y position along the way.
// Used by Razor Leaf and Magical Leaf.
-
-void sub_80CAFD0(struct Sprite* sprite)
+// arg 0: initial x offset
+// arg 1: initial y offset
+// arg 2: target x offset
+// arg 3: target y offset
+// arg 4: translation duration
+// arg 5: wave amplitude
+// arg 6: target between double battle opponents (boolean)
+void AnimTranslateLinearSingleSineWave(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
- if (GetBankSide(gAnimBankAttacker))
+ InitAnimSpritePos(sprite, 1);
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
{
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data[0] = gBattleAnimArgs[4];
- if (!(gBattleAnimArgs[6]))
+ if (!gBattleAnimArgs[6])
{
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
}
else
{
- sub_807A3FC(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
+ SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
sprite->data[2] += gBattleAnimArgs[2];
sprite->data[4] += gBattleAnimArgs[3];
}
@@ -45,18 +53,18 @@ void sub_80CAFD0(struct Sprite* sprite)
sprite->data[0] = 0;
}
- sprite->callback = sub_80CB09C;
+ sprite->callback = AnimTranslateLinearSingleSineWaveStep;
}
-void sub_80CB09C(struct Sprite* sprite)
+static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite)
{
- bool8 c = FALSE;
+ bool8 destroy = FALSE;
s16 a = sprite->data[0];
s16 b = sprite->data[7];
s16 r0;
sprite->data[0] = 1;
- sub_8078718(sprite);
+ TranslateAnimSpriteLinearAndSine(sprite);
r0 = sprite->data[7];
sprite->data[0] = a;
if (b > 0xC8 && r0 <= 0x37 && sprite->oam.affineParam == 0)
@@ -67,24 +75,30 @@ void sub_80CB09C(struct Sprite* sprite)
sprite->invisible ^= 1;
sprite->oam.affineParam++;
if (sprite->oam.affineParam == 0x1E)
- c = TRUE;
+ destroy = TRUE;
}
- if (sprite->pos1.x + sprite->pos2.x > 0x100
+ if (sprite->pos1.x + sprite->pos2.x > 256
|| sprite->pos1.x + sprite->pos2.x < -16
- || sprite->pos1.y + sprite->pos2.y > 0xA0
+ || sprite->pos1.y + sprite->pos2.y > 160
|| sprite->pos1.y + sprite->pos2.y < -16)
- c = TRUE;
+ destroy = TRUE;
- if (c)
+ if (destroy)
DestroyAnimSprite(sprite);
}
-void sub_80CB144(struct Sprite* sprite)
+// Animates particles in the Twister move animation.
+// arg 0: duration
+// arg 1: total y delta (the particles rise upward)
+// arg 2: wave period (higher means faster wave)
+// arg 3: wave amplitude
+// arg 4: speedup frame (particles move faster at the end of the animation)
+void AnimMoveTwisterParticle(struct Sprite* sprite)
{
if (!IsContest() && IsDoubleBattle() == TRUE)
{
- sub_807A3FC(gAnimBankTarget, 1, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankTarget, 1, &sprite->pos1.x, &sprite->pos1.y);
}
sprite->pos1.y += 32;
@@ -93,10 +107,10 @@ void sub_80CB144(struct Sprite* sprite)
sprite->data[2] = gBattleAnimArgs[2];
sprite->data[3] = gBattleAnimArgs[3];
sprite->data[4] = gBattleAnimArgs[4];
- sprite->callback = sub_80CB1A4;
+ sprite->callback = AnimMoveTwisterParticleStep;
}
-void sub_80CB1A4(struct Sprite* sprite)
+static void AnimMoveTwisterParticleStep(struct Sprite* sprite)
{
if (sprite->data[1] == 0xFF)
{
diff --git a/src/battle/anim/cyclone.c b/src/battle/anim/cyclone.c
index 0f83df211..b1210bc54 100644
--- a/src/battle/anim/cyclone.c
+++ b/src/battle/anim/cyclone.c
@@ -13,7 +13,7 @@ extern u8 gAnimBankTarget;
void sub_80D0118(struct Sprite* sprite)
{
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
if (GetBankSide(gAnimBankAttacker) == 0)
sprite->pos1.y += 16;
diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c
index 674ae5188..83a375495 100644
--- a/src/battle/anim/dark.c
+++ b/src/battle/anim/dark.c
@@ -244,7 +244,7 @@ void sub_80DFFD0(struct Sprite *sprite)
static void sub_80E00D0(struct Sprite *sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
move_anim_8074EE0(sprite);
}
diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c
index 8004b3bf5..b3de1dbb1 100644
--- a/src/battle/anim/egg.c
+++ b/src/battle/anim/egg.c
@@ -22,7 +22,7 @@ static void sub_80D158C(struct Sprite* sprite);
void sub_80D1368(struct Sprite* sprite)
{
s16 r1;
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
r1 = (GetBankSide(gAnimBankAttacker)) ? -0xA0 : 0xA0;
sprite->data[0] = 0x380;
sprite->data[1] = r1;
diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c
index 15045f5bd..acab7bf80 100644
--- a/src/battle/anim/energy_wave.c
+++ b/src/battle/anim/energy_wave.c
@@ -20,7 +20,7 @@ static void sub_80D370C(struct Sprite *);
void sub_80D3554(struct Sprite *sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = 30;
sprite->data[1] = sprite->pos1.x;
@@ -28,7 +28,7 @@ void sub_80D3554(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = 0xD200 / sprite->data[0];
sprite->data[7] = gBattleAnimArgs[3];
@@ -49,7 +49,7 @@ void sub_80D3554(struct Sprite *sprite)
static void sub_80D35DC(struct Sprite *sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
{
DestroyAnimSprite(sprite);
}
@@ -147,7 +147,7 @@ void sub_80D3728(struct Sprite *sprite)
else
var2 = 1;
- sub_80787B0(sprite, var1);
+ InitAnimSpritePos(sprite, var1);
if (GetBankSide(gAnimBankAttacker) != 0)
{
diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c
index 160b51274..f589622bd 100644
--- a/src/battle/anim/fight.c
+++ b/src/battle/anim/fight.c
@@ -77,7 +77,7 @@ void sub_80D90A4(struct Sprite *sprite)
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
if (gBattleAnimArgs[3] == 0)
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
else
sub_8078764(sprite, 1);
@@ -203,7 +203,7 @@ void sub_80D9378(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = sprite->pos1.y;
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = gBattleAnimArgs[5];
sprite->data[6] = gBattleAnimArgs[4];
@@ -214,7 +214,7 @@ void sub_80D9378(struct Sprite *sprite)
static void sub_80D9404(struct Sprite *sprite)
{
- if (!sub_8078B5C(sprite))
+ if (!TranslateAnimSpriteByDeltas(sprite))
{
sprite->pos2.y += Sin(sprite->data[7] >> 8, sprite->data[5]);
sprite->data[7] += sprite->data[6];
@@ -435,7 +435,7 @@ static void sub_80D986C(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(sprite->data[7], 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
sprite->callback = sub_8078BB8;
}
@@ -530,7 +530,7 @@ void sub_80D9A38(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(bank, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
sprite->callback = sub_8078BB8;
}
@@ -573,7 +573,7 @@ void sub_80D9B48(struct Sprite *sprite)
void sub_80D9BD4(struct Sprite *sprite)
{
if (gBattleAnimArgs[2] == 0)
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
else
sub_8078764(sprite, 0);
diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c
index 4d577a765..fe63fcff1 100644
--- a/src/battle/anim/fire_2.c
+++ b/src/battle/anim/fire_2.c
@@ -42,7 +42,7 @@ struct Sprite *sub_80D5210(struct Sprite *sprite)
void sub_80D522C(struct Sprite *sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[7] = gBattleAnimArgs[2];
sprite->data[0] = 0;
@@ -62,7 +62,7 @@ void sub_80D5254(struct Sprite *sprite)
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->callback = sub_80D52AC;
}
@@ -70,7 +70,7 @@ void sub_80D5254(struct Sprite *sprite)
void sub_80D52AC(struct Sprite *sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
{
sprite->data[0] = 0;
@@ -123,7 +123,7 @@ void sub_80D5374(struct Sprite *sprite)
void sub_80D53B4(struct Sprite *sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[3];
diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c
index 441ac0e6d..559f617c6 100644
--- a/src/battle/anim/flying_path.c
+++ b/src/battle/anim/flying_path.c
@@ -53,7 +53,7 @@ void sub_80CBF5C(u8 taskId)
{
case 4:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
{
break;
}
@@ -65,7 +65,7 @@ void sub_80CBF5C(u8 taskId)
break;
case 8:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
{
break;
}
@@ -77,7 +77,7 @@ void sub_80CBF5C(u8 taskId)
break;
case 0:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
break;
task->data[15] = 1;
@@ -103,7 +103,7 @@ void sub_80CBF5C(u8 taskId)
break;
case 2:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
break;
task->data[15] = 3;
@@ -146,7 +146,7 @@ void sub_80CBF5C(u8 taskId)
break;
case 6:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
break;
task->data[15] = 7;
@@ -189,7 +189,7 @@ void sub_80CBF5C(u8 taskId)
break;
case 10:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) == 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) == 0)
{
break;
}
@@ -221,7 +221,7 @@ void sub_80CBF5C(u8 taskId)
}
case 12:
sub_80CC358(task, taskId);
- if (sub_8078718(sprite) != 0)
+ if (TranslateAnimSpriteLinearAndSine(sprite) != 0)
{
DestroySprite(sprite);
task->data[0]++;
diff --git a/src/battle/anim/glitter.c b/src/battle/anim/glitter.c
index e4577f1e1..e6c101de3 100644
--- a/src/battle/anim/glitter.c
+++ b/src/battle/anim/glitter.c
@@ -35,7 +35,7 @@ void sub_80CD190(struct Sprite* sprite)
if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2))
{
- sub_807A3FC(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(bank, gBattleAnimArgs[6], &sprite->pos1.x, &sprite->pos1.y);
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
}
diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c
index 254160109..9dcfa9f5d 100644
--- a/src/battle/anim/guard.c
+++ b/src/battle/anim/guard.c
@@ -15,7 +15,7 @@ void sub_80D3014(struct Sprite *sprite)
{
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
{
- sub_807A3FC(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y);
sprite->pos1.y += 40;
StartSpriteAffineAnim(sprite, 1);
diff --git a/src/battle/anim/guillotine.c b/src/battle/anim/guillotine.c
index b3d842cdf..15279d5e2 100644
--- a/src/battle/anim/guillotine.c
+++ b/src/battle/anim/guillotine.c
@@ -37,7 +37,7 @@ void sub_80D0228(struct Sprite* sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + r9;
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + r6;
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = gBattleAnimArgs[0];
sprite->data[6] = sprite->data[0];
sprite->callback = sub_80D02D0;
@@ -45,7 +45,7 @@ void sub_80D0228(struct Sprite* sprite)
void sub_80D02D0(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite) && sprite->animEnded == 1)
+ if (TranslateAnimSpriteByDeltas(sprite) && sprite->animEnded == 1)
{
SeekSpriteAnim(sprite, 0);
sprite->animPaused = 1;
@@ -85,6 +85,6 @@ void sub_80D0344(struct Sprite* sprite)
void sub_80D03A8(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite) != 0)
+ if (TranslateAnimSpriteByDeltas(sprite) != 0)
DestroyAnimSprite(sprite);
}
diff --git a/src/battle/anim/heart_1.c b/src/battle/anim/heart_1.c
index 5df89f929..857169e62 100644
--- a/src/battle/anim/heart_1.c
+++ b/src/battle/anim/heart_1.c
@@ -14,7 +14,7 @@ extern u8 gAnimBankTarget;
void sub_80D1C80(struct Sprite* sprite)
{
if (++sprite->data[0] == 1)
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
sprite->pos2.x = Sin(sprite->data[1], 8);
sprite->pos2.y = sprite->data[2] >> 8;
diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c
index 4006e2d43..0697e83a0 100644
--- a/src/battle/anim/hop.c
+++ b/src/battle/anim/hop.c
@@ -91,7 +91,7 @@ void sub_80CB94C(struct Sprite* sprite)
{
s16 e1;
s16 e2;
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
e1 = GetBankPosition(gAnimBankTarget, 0);
e2 = GetBankPosition(gAnimBankTarget, 1);
if ((gAnimBankAttacker ^ 2) == gAnimBankTarget)
diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c
index 8358d23db..0ee381e13 100644
--- a/src/battle/anim/money.c
+++ b/src/battle/anim/money.c
@@ -19,7 +19,7 @@ void sub_80CFE9C(struct Sprite* sprite)
s16 r7;
u16 var;
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
r6 = GetBankPosition(gAnimBankTarget, 2);
r7 = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
if (GetBankSide(gAnimBankAttacker) != 0)
diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c
index 715462d73..552329a57 100644
--- a/src/battle/anim/note_rain.c
+++ b/src/battle/anim/note_rain.c
@@ -24,7 +24,7 @@ void sub_80D1BA8(struct Sprite* sprite, u8 a, u8 b)
void sub_80D1C08(struct Sprite* sprite)
{
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
if (GetBankSide(gAnimBankAttacker) != 0)
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
diff --git a/src/battle/anim/note_scatter_2.c b/src/battle/anim/note_scatter_2.c
index 524c51c08..262afb8bf 100644
--- a/src/battle/anim/note_scatter_2.c
+++ b/src/battle/anim/note_scatter_2.c
@@ -32,14 +32,14 @@ void sub_80CEE60(struct Sprite* sprite)
sprite->data[2] = a + sprite->data[1];
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = sprite->data[3] - 40;
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = sub_80CEEE8;
}
void sub_80CEEE8(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite) == 0)
+ if (TranslateAnimSpriteByDeltas(sprite) == 0)
{
s16 a;
a = Sin(sprite->data[5], 8);
diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c
index c8cf339d2..e7dd0df49 100644
--- a/src/battle/anim/orbit.c
+++ b/src/battle/anim/orbit.c
@@ -79,13 +79,13 @@ void sub_80CACEC(u8 taskId)
void sub_80CAD54(struct Sprite* sprite)
{
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
sprite->data[0] = gBattleAnimArgs[3];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2];
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = 0x40;
sprite->callback = sub_80CADA8;
sub_80CADA8(sprite);
@@ -93,7 +93,7 @@ void sub_80CAD54(struct Sprite* sprite)
void sub_80CADA8(struct Sprite* sprite)
{
- if (!sub_8078B5C(sprite))
+ if (!TranslateAnimSpriteByDeltas(sprite))
{
sprite->pos2.x += Sin(sprite->data[5], 32);
sprite->pos2.y += Cos(sprite->data[5], -5);
@@ -116,13 +116,13 @@ void sub_80CADA8(struct Sprite* sprite)
void sub_80CAE20(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[3];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[2];
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = 0x40;
sprite->callback = sub_80CAE74;
sub_80CAE74(sprite);
@@ -130,7 +130,7 @@ void sub_80CAE20(struct Sprite* sprite)
void sub_80CAE74(struct Sprite* sprite)
{
- if (!sub_8078B5C(sprite))
+ if (!TranslateAnimSpriteByDeltas(sprite))
{
sprite->pos2.x += Sin(sprite->data[5], 8);
if ((u16)(sprite->data[5] - 0x3B) < 5 || (u16)(sprite->data[5] - 0xBB) < 5)
diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c
index 6ca2fa71c..eede55695 100644
--- a/src/battle/anim/orbs.c
+++ b/src/battle/anim/orbs.c
@@ -19,7 +19,7 @@ extern struct SpriteTemplate gSpriteTemplate_83D631C;
void sub_80CA7B0(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3);
@@ -29,7 +29,7 @@ void sub_80CA7B0(struct Sprite* sprite)
void sub_80CA800(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
StartSpriteAnim(sprite, gBattleAnimArgs[3]);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
@@ -40,13 +40,13 @@ void sub_80CA800(struct Sprite* sprite)
void sub_80CA858(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[5] = gBattleAnimArgs[3];
sprite->callback = sub_80CA8B4;
sub_80CA8B4(sprite);
@@ -54,7 +54,7 @@ void sub_80CA858(struct Sprite* sprite)
void sub_80CA8B4(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
{
DestroySprite(sprite);
}
@@ -105,7 +105,7 @@ void sub_80CA9A8(struct Sprite* sprite)
void sub_80CA9F8(struct Sprite* sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
DestroyAnimSprite(sprite);
}
diff --git a/src/battle/anim/perceive.c b/src/battle/anim/perceive.c
index 3b3153428..14db096c6 100644
--- a/src/battle/anim/perceive.c
+++ b/src/battle/anim/perceive.c
@@ -19,6 +19,6 @@ void sub_80D2904(struct Sprite* sprite)
void sub_80D2920(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->callback = sub_80D2904;
}
diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c
index f31c441fb..656e923bc 100644
--- a/src/battle/anim/poison.c
+++ b/src/battle/anim/poison.c
@@ -17,7 +17,7 @@ void sub_80D9D70(struct Sprite *sprite)
if (!gBattleAnimArgs[3])
StartSpriteAnim(sprite, 2);
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
@@ -31,7 +31,7 @@ void sub_80D9D70(struct Sprite *sprite)
void sub_80D9DD4(struct Sprite *sprite) // same as sub_80D9E78
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
DestroyAnimSprite(sprite);
}
@@ -41,8 +41,8 @@ void sub_80D9DF0(struct Sprite *sprite)
if (!gBattleAnimArgs[3])
StartSpriteAnim(sprite, 2);
- sub_80787B0(sprite, 1);
- sub_807A3FC(gAnimBankTarget, 1, &l1, &l2);
+ InitAnimSpritePos(sprite, 1);
+ SetAverageBattlerPositions(gAnimBankTarget, 1, &l1, &l2);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[4] = -gBattleAnimArgs[4];
@@ -59,7 +59,7 @@ void sub_80D9DF0(struct Sprite *sprite)
void sub_80D9E78(struct Sprite *sprite) // same as sub_80D9DD4
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
DestroyAnimSprite(sprite);
}
@@ -92,7 +92,7 @@ void sub_80D9EE8(struct Sprite *sprite)
void sub_80D9F14(struct Sprite *sprite)
{
- sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
@@ -116,7 +116,7 @@ void sub_80D9F88(struct Sprite *sprite)
}
else
{
- sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c
index 37c527183..b108c496a 100644
--- a/src/battle/anim/psychic.c
+++ b/src/battle/anim/psychic.c
@@ -192,7 +192,7 @@ void sub_80DBA4C(struct Sprite *sprite)
else
{
if (gBattleAnimArgs[2] == 0)
- sub_80787B0(sprite, var0);
+ InitAnimSpritePos(sprite, var0);
else
sub_8078764(sprite, var0);
}
@@ -539,7 +539,7 @@ static void sub_80DC1FC(u8 taskId)
void sub_80DC2B0(struct Sprite *sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
FreeOamMatrix(sprite->oam.matrixNum);
DestroySprite(sprite);
diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c
index 759652f0c..86b2c4659 100644
--- a/src/battle/anim/ring.c
+++ b/src/battle/anim/ring.c
@@ -32,7 +32,7 @@ void sub_80D0FD8(struct Sprite* sprite)
r4 = gBattleAnimArgs[3] ^ 1;
if (IsDoubleBattle() && IsAnimBankSpriteVisible(bank ^ 2))
{
- sub_807A3FC(bank, r4, &sp0, &sp1);
+ SetAverageBattlerPositions(bank, r4, &sp0, &sp1);
if (r4 == 0)
r4 = GetBankPosition(bank, 0);
else
@@ -50,7 +50,7 @@ void sub_80D0FD8(struct Sprite* sprite)
void sub_80D1098(struct Sprite* sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
{
FreeSpriteOamMatrix(sprite);
DestroyAnimSprite(sprite);
@@ -118,7 +118,7 @@ void sub_80D10B8(struct Sprite* sprite)
r6 = GetBankPosition(bankr7, sp4) + gBattleAnimArgs[1];
if (gMain.inBattle && IsAnimBankSpriteVisible(bankr8 ^ 2))
{
- sub_807A3FC(bankr8, gBattleAnimArgs[6], &sp0, &sp1);
+ SetAverageBattlerPositions(bankr8, gBattleAnimArgs[6], &sp0, &sp1);
}
else
{
@@ -137,7 +137,7 @@ void sub_80D10B8(struct Sprite* sprite)
sprite->data[2] = sp0;
sprite->data[4] = sp1;
sprite->data[0] = gBattleAnimArgs[0];
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->callback = sub_80D1098;
sub_80D1098(sprite);
}
diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c
index b113ce040..2df7e6642 100644
--- a/src/battle/anim/rock.c
+++ b/src/battle/anim/rock.c
@@ -38,7 +38,7 @@ static void sub_80DD9FC(struct Sprite *sprite);
void sub_80DCE9C(struct Sprite *sprite)
{
if (gBattleAnimArgs[3] != 0)
- sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
+ SetAverageBattlerPositions(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += 14;
@@ -102,7 +102,7 @@ void sub_80DCF60(struct Sprite *sprite)
void sub_80DCFE4(struct Sprite *sprite)
{
if (gBattleAnimArgs[6] == 0)
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
else
sub_8078764(sprite, 0);
@@ -275,7 +275,7 @@ void sub_80DD3AC(struct Sprite *sprite)
void sub_80DD490(struct Sprite *sprite)
{
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
sprite->data[0] = gBattleAnimArgs[3];
sprite->data[2] = sprite->pos1.x;
@@ -455,7 +455,7 @@ static void sub_80DD774(struct Task *task)
void sub_80DD87C(struct Sprite *sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
u8 taskId = FindTaskIdByFunc(sub_80DD604);
if (taskId != 0xFF)
diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c
index be8613a74..e3d4bd3fb 100644
--- a/src/battle/anim/seed.c
+++ b/src/battle/anim/seed.c
@@ -15,7 +15,7 @@ static void sub_80CABC0(struct Sprite* sprite);
void sub_80CAB18(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
if (GetBankSide(gAnimBankAttacker))
{
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -31,7 +31,7 @@ void sub_80CAB18(struct Sprite* sprite)
void sub_80CAB88(struct Sprite* sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
sprite->invisible = 1;
sprite->data[0] = 10;
diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c
index 0897ec6e3..280943a67 100644
--- a/src/battle/anim/sonic.c
+++ b/src/battle/anim/sonic.c
@@ -29,7 +29,7 @@ void sub_80CF6DC(struct Sprite* sprite)
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
}
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y);
diff --git a/src/battle/anim/sonic_task.c b/src/battle/anim/sonic_task.c
index 924b1b568..260ae544c 100644
--- a/src/battle/anim/sonic_task.c
+++ b/src/battle/anim/sonic_task.c
@@ -87,7 +87,7 @@ void sub_80CFB04(u8 taskId)
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
{
- sub_807A3FC(gAnimBankTarget, 0, &sp1, &sp2);
+ SetAverageBattlerPositions(gAnimBankTarget, 0, &sp1, &sp2);
}
else
{
diff --git a/src/battle/anim/sword.c b/src/battle/anim/sword.c
index b46fe6759..ca74980ea 100644
--- a/src/battle/anim/sword.c
+++ b/src/battle/anim/sword.c
@@ -15,7 +15,7 @@ static void sub_80CF6B4(struct Sprite* sprite);
void sub_80CF690(struct Sprite* sprite)
{
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
sprite->callback = sub_80785E4;
StoreSpriteCallbackInData(sprite, sub_80CF6B4);
}
diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c
index 03772f951..0a06d3ac8 100644
--- a/src/battle/anim/unused_8.c
+++ b/src/battle/anim/unused_8.c
@@ -15,7 +15,7 @@ static void sub_80CF4B8(struct Sprite* sprite);
void sub_80CF458(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[4];
diff --git a/src/battle/anim/unused_9.c b/src/battle/anim/unused_9.c
index 0efd40c02..6e0d0321b 100644
--- a/src/battle/anim/unused_9.c
+++ b/src/battle/anim/unused_9.c
@@ -18,7 +18,7 @@ static void sub_80CFE2C(struct Sprite* sprite);
void sub_80CFDFC(struct Sprite* sprite)
{
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gSpriteTemplate_83D75AC.paletteTag) << 4);
sprite->callback = sub_80CFE2C;
}
diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c
index 4068cbe78..d1ed05747 100644
--- a/src/battle/anim/water.c
+++ b/src/battle/anim/water.c
@@ -30,7 +30,7 @@ void sub_80D3838(struct Sprite *sprite)
}
else
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
}
sprite->data[7] = gBattleAnimArgs[2];
diff --git a/src/battle/anim/wisp_orb.c b/src/battle/anim/wisp_orb.c
index 0cbe6eed7..7c22b7f13 100644
--- a/src/battle/anim/wisp_orb.c
+++ b/src/battle/anim/wisp_orb.c
@@ -21,7 +21,7 @@ void sub_80D5B0C(struct Sprite *sprite)
switch (sprite->data[0])
{
case 0:
- sub_80787B0(sprite, 0);
+ InitAnimSpritePos(sprite, 0);
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
sprite->data[7] = gBattleAnimArgs[2];
@@ -86,7 +86,7 @@ static void sub_80D5C5C(struct Sprite *sprite)
s16 initialData5;
s16 newData5;
- if (!sub_8078B5C(sprite))
+ if (!TranslateAnimSpriteByDeltas(sprite))
{
sprite->pos2.x += Sin(sprite->data[5], 16);
initialData5 = sprite->data[5];
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index 2f10b07ae..aadeb71b0 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -16,7 +16,7 @@ extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
static void AnimTask_ShakeMonStep(u8 taskId);
-static void sub_80A808C(u8 taskId);
+static void AnimTask_ShakeMon2Step(u8 taskId);
static void sub_80A81D8(u8 taskId);
static void sub_80A8374(u8 taskId);
static void sub_80A8488(u8 taskId);
@@ -154,13 +154,19 @@ static void AnimTask_ShakeMonStep(u8 taskId)
}
}
-
-void sub_80A7FA0(u8 taskId)
+// Task to facilitate simple shaking of a pokemon's picture in battle.
+// The shaking alternates between the positive and negative versions of the specified pixel offsets.
+// arg 0: anim battler
+// arg 1: x pixel offset
+// arg 2: y pixel offset
+// arg 3: num times to shake
+// arg 4: frame delay
+void AnimTask_ShakeMon2(u8 taskId)
{
u8 sprite;
- bool8 r6;
+ bool8 destroy;
u8 side;
- r6 = 0;
+ destroy = FALSE;
if (gBattleAnimArgs[0] < 4)
{
sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
@@ -188,21 +194,23 @@ void sub_80A7FA0(u8 taskId)
side = GetBankByIdentity(3);
break;
}
+
if (IsAnimBankSpriteVisible(side) == FALSE)
- {
- r6 = 1;
- }
+ destroy = TRUE;
+
sprite = gBankSpriteIds[side];
}
else
{
sprite = gBankSpriteIds[gAnimBankAttacker];
}
- if (r6)
+
+ if (destroy)
{
DestroyAnimVisualTask(taskId);
return;
}
+
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
gSprites[sprite].pos2.y = gBattleAnimArgs[2];
TASK.data[0] = sprite;
@@ -211,30 +219,24 @@ void sub_80A7FA0(u8 taskId)
TASK.data[3] = gBattleAnimArgs[4];
TASK.data[4] = gBattleAnimArgs[1];
TASK.data[5] = gBattleAnimArgs[2];
- TASK.func = sub_80A808C;
- sub_80A808C(taskId);
+ TASK.func = AnimTask_ShakeMon2Step;
+ TASK.func(taskId);
}
-static void sub_80A808C(u8 taskId)
+static void AnimTask_ShakeMon2Step(u8 taskId)
{
if (TASK.data[3] == 0)
{
if (SPRITE.pos2.x == TASK.data[4])
- {
SPRITE.pos2.x = -TASK.data[4];
- }
else
- {
SPRITE.pos2.x = TASK.data[4];
- }
+
if (SPRITE.pos2.y == TASK.data[5])
- {
SPRITE.pos2.y = -TASK.data[5];
- }
else
- {
SPRITE.pos2.y = TASK.data[5];
- }
+
TASK.data[3] = TASK.data[2];
if (--TASK.data[1] == 0)
{
diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c
index f5b8e1c5d..3a47e0204 100644
--- a/src/battle/pokeball.c
+++ b/src/battle/pokeball.c
@@ -298,7 +298,7 @@ const struct SpriteTemplate gBallSpriteTemplates[] =
extern u32 ball_number_to_ball_processing_index(u16); // not sure of return type
extern void sub_80786EC();
-extern bool8 sub_8078718(struct Sprite *);
+extern bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *);
extern u8 sub_814086C(u8, u8, int, int, u8);
extern u8 sub_8141314(u8, u8, int, u8);
@@ -406,7 +406,7 @@ static void sub_8046464(u8 taskId)
static void objc_0804ABD4(struct Sprite *sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
u8 taskId = sprite->oam.affineParam;
u8 r5 = gTasks[taskId].data[4];
@@ -858,7 +858,7 @@ static void sub_80470C4(struct Sprite *sprite)
StartSpriteAffineAnim(sprite, 4);
}
r4 = sprite->data[0];
- sub_8078B5C(sprite);
+ TranslateAnimSpriteByDeltas(sprite);
sprite->data[7] += sprite->data[6] / 3;
sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]);
sprite->oam.affineParam += 0x100;
@@ -876,7 +876,7 @@ static void sub_80470C4(struct Sprite *sprite)
}
else
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index a60fc1078..9119c74ef 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -766,14 +766,14 @@ void sub_80786EC(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->data[6] = 0x8000 / sprite->data[0];
sprite->data[7] = 0;
}
-bool8 sub_8078718(struct Sprite *sprite)
+bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
@@ -799,7 +799,7 @@ void sub_8078764(struct Sprite *sprite, bool8 a2)
sprite->pos1.y += gBattleAnimArgs[1];
}
-void sub_80787B0(struct Sprite *sprite, u8 a2)
+void InitAnimSpritePos(struct Sprite *sprite, u8 a2)
{
if (!a2)
{
@@ -953,30 +953,30 @@ void sub_8078A5C(struct Sprite *sprite)
sprite->data[3] = 0;
}
-void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite)
+void InitAnimSpriteTranslationDeltas(struct Sprite *sprite)
{
int x = sprite->data[2] - sprite->data[1];
int y = sprite->data[4] - sprite->data[3];
- bool8 r8 = x < 0;
- bool8 r9 = y < 0;
- u16 x2 = abs(x) << 8;
- u16 y2 = abs(y) << 8;
+ bool8 movingLeft = x < 0;
+ bool8 movingUp = y < 0;
+ u16 xDelta = abs(x) << 8;
+ u16 yDelta = abs(y) << 8;
- x2 = x2 / sprite->data[0];
- y2 = y2 / sprite->data[0];
+ xDelta = xDelta / sprite->data[0];
+ yDelta = yDelta / sprite->data[0];
- if (r8)
- x2 |= 1;
+ if (movingLeft)
+ xDelta |= 1;
else
- x2 &= ~1;
+ xDelta &= ~1;
- if (r9)
- y2 |= 1;
+ if (movingUp)
+ yDelta |= 1;
else
- y2 &= ~1;
+ yDelta &= ~1;
- sprite->data[1] = x2;
- sprite->data[2] = y2;
+ sprite->data[1] = xDelta;
+ sprite->data[2] = yDelta;
sprite->data[4] = 0;
sprite->data[3] = 0;
}
@@ -985,12 +985,12 @@ void sub_8078B34(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
sprite->callback = sub_8078BB8;
sprite->callback(sprite);
}
-bool8 sub_8078B5C(struct Sprite *sprite)
+bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite)
{
u16 v1, v2, x, y;
@@ -1022,7 +1022,7 @@ bool8 sub_8078B5C(struct Sprite *sprite)
void sub_8078BB8(struct Sprite *sprite)
{
- if (sub_8078B5C(sprite))
+ if (TranslateAnimSpriteByDeltas(sprite))
SetCallbackToStoredInData(sprite);
}
@@ -1030,7 +1030,7 @@ void sub_8078BD4(struct Sprite *sprite)
{
int v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
sprite->data[0] = v1 / sprite->data[0];
- obj_translate_based_on_private_1_2_3_4(sprite);
+ InitAnimSpriteTranslationDeltas(sprite);
}
void sub_8078C00(struct Sprite *sprite)
@@ -1380,7 +1380,7 @@ void sub_80793C4(struct Sprite *sprite)
else
var = FALSE;
if (!gBattleAnimArgs[2])
- sub_80787B0(sprite, var);
+ InitAnimSpritePos(sprite, var);
else
sub_8078764(sprite, var);
sprite->data[0]++;
@@ -1407,7 +1407,7 @@ void sub_807941C(struct Sprite *sprite)
else
v2 = 1;
- sub_80787B0(sprite, v1);
+ InitAnimSpritePos(sprite, v1);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4];
@@ -1419,7 +1419,7 @@ void sub_807941C(struct Sprite *sprite)
void sub_80794A8(struct Sprite *sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->data[0] = gBattleAnimArgs[4];
@@ -1432,7 +1432,7 @@ void sub_80794A8(struct Sprite *sprite)
void sub_8079518(struct Sprite *sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
DestroyAnimSprite(sprite);
}
@@ -1452,7 +1452,7 @@ void sub_8079534(struct Sprite *sprite)
}
if (!gBattleAnimArgs[5])
{
- sub_80787B0(sprite, r4);
+ InitAnimSpritePos(sprite, r4);
slot = gAnimBankAttacker;
}
else
@@ -2107,7 +2107,7 @@ s16 sub_807A100(u8 slot, u8 a2)
}
}
-void sub_807A3FC(u8 slot, bool8 a2, s16 *a3, s16 *a4)
+void SetAverageBattlerPositions(u8 slot, bool8 a2, s16 *x, s16 *y)
{
u8 v1, v2;
s16 v3, v4;
@@ -2135,8 +2135,8 @@ void sub_807A3FC(u8 slot, bool8 a2, s16 *a3, s16 *a4)
v5 = v3;
v6 = v4;
}
- *a3 = (v3 + v5) / 2;
- *a4 = (v4 + v6) / 2;
+ *x = (v3 + v5) / 2;
+ *y = (v4 + v6) / 2;
}
u8 sub_807A4A0(int bank, u8 sprite, int species)