summaryrefslogtreecommitdiff
path: root/src/electric.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/electric.c')
-rw-r--r--src/electric.c137
1 files changed, 63 insertions, 74 deletions
diff --git a/src/electric.c b/src/electric.c
index 4a0c5525e..5d772e042 100644
--- a/src/electric.c
+++ b/src/electric.c
@@ -5,7 +5,6 @@
#include "constants/songs.h"
#include "sound.h"
-extern void sub_80A62EC(struct Sprite *);
extern void sub_810E2C8(struct Sprite *);
extern bool8 sub_810B614(struct Task *task, u8 taskId);
extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
@@ -487,13 +486,13 @@ static void sub_810A214(struct Sprite *sprite)
static void sub_810A258(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
- move_anim_8074EE0(sprite);
+ DestroySpriteAndMatrix(sprite);
}
static void sub_810A274(struct Sprite *sprite)
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -509,65 +508,55 @@ static void sub_810A274(struct Sprite *sprite)
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[2] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[4];
- StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
- sprite->callback = sub_80A62EC;
+ StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+ sprite->callback = TranslateSpriteInCircleOverDuration;
}
static void sub_810A308(struct Sprite *sprite)
{
- u8 slot;
+ u8 battler;
u32 matrixNum;
s16 sineVal;
switch (gBattleAnimArgs[4])
{
case 0:
- slot = gBattleAnimAttacker;
+ battler = gBattleAnimAttacker;
break;
case 1:
default:
- slot = gBattleAnimTarget;
+ battler = gBattleAnimTarget;
break;
case 2:
- if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2))
- {
- slot = gBattleAnimAttacker;
- }
+ if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
+ battler = gBattleAnimAttacker;
else
- {
- slot = gBattleAnimAttacker ^ 2;
- }
+ battler = BATTLE_PARTNER(gBattleAnimAttacker);
break;
case 3:
- if (IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2))
- {
- slot = gBattleAnimTarget ^ 2;
- }
+ if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
+ battler = BATTLE_PARTNER(gBattleAnimTarget);
else
- {
- slot = gBattleAnimTarget;
- }
+ battler = gBattleAnimTarget;
break;
}
if (gBattleAnimArgs[5] == 0)
{
- sprite->pos1.x = GetBattlerSpriteCoord(slot, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(slot, 1);
+ sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
+ sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
}
else
{
- sprite->pos1.x = GetBattlerSpriteCoord(slot, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(slot, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET);
}
sprite->pos2.x = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8;
sprite->pos2.y = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8;
if (gBattleAnimArgs[6] & 1)
- {
- sprite->oam.priority = sub_80A8328(slot) + 1;
- }
+ sprite->oam.priority = sub_80A8328(battler) + 1;
matrixNum = sprite->oam.matrixNum;
sineVal = gSineTable[gBattleAnimArgs[2]];
@@ -585,9 +574,9 @@ static void sub_810A46C(struct Sprite *sprite)
InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[3];
sprite->data[1] = sprite->pos1.x;
- sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[3] = sprite->pos1.y;
- sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
InitAnimLinearTranslation(sprite);
sprite->data[5] = gBattleAnimArgs[2];
sprite->data[6] = gBattleAnimArgs[5];
@@ -627,8 +616,8 @@ static void sub_810A5BC(struct Sprite *sprite)
if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1];
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2];
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
sprite->data[3] = gBattleAnimArgs[0];
sprite->data[4] = gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[3];
@@ -637,19 +626,19 @@ static void sub_810A5BC(struct Sprite *sprite)
static void sub_810A628(struct Sprite *sprite)
{
- u8 bank;
+ u8 battler;
sprite->data[0] = gBattleAnimArgs[3];
if (gBattleAnimArgs[7] & 0x8000)
- bank = gBattleAnimTarget;
+ battler = gBattleAnimTarget;
else
- bank = gBattleAnimAttacker;
+ battler = gBattleAnimAttacker;
- if (IsContest() || GetBattlerSide(bank) == B_SIDE_PLAYER)
+ if (IsContest() || GetBattlerSide(battler) == B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
- sprite->pos1.x = GetBattlerSpriteCoord(bank, 2) + gBattleAnimArgs[0];
- sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[1];
+ sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
+ sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[4] = gBattleAnimArgs[7] & 0x7FFF;
sprite->data[5] = gBattleAnimArgs[2];
@@ -658,7 +647,7 @@ static void sub_810A628(struct Sprite *sprite)
sprite->oam.tileNum += gBattleAnimArgs[6] * 4;
sprite->callback = sub_810A6EC;
- sub_810A6EC(sprite);
+ sprite->callback(sprite);
}
static void sub_810A6EC(struct Sprite *sprite)
@@ -1015,13 +1004,13 @@ void sub_810AAFC(u8 taskId)
if (!gBattleAnimArgs[0])
{
- task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
- task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
task->data[6] = gBattleAnimArgs[1];
@@ -1061,7 +1050,7 @@ void sub_810AB78(u8 taskId)
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, sub_810ACC0);
- sprite->callback = sub_80A67D8;
+ sprite->callback = RunStoredCallbackWhenAnimEnds;
if (++task->data[9] > 15)
task->data[9] = 0;
@@ -1101,43 +1090,43 @@ static void sub_810ACD8(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
- StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
- sprite->callback = sub_80A67BC;
+ StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
+ sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_810AD30(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
sprite->pos2.x = gBattleAnimArgs[1];
sprite->pos2.y = gBattleAnimArgs[2];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
- sprite->callback = sub_80A67D8;
+ sprite->callback = RunStoredCallbackWhenAnimEnds;
}
static void sub_810AD98(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, 1);
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[6] = GetAnimBattlerSpriteId(0);
sprite->data[7] = 16;
@@ -1159,7 +1148,7 @@ static void sub_810ADF8(struct Sprite *sprite)
sprite->pos1.x += sprite->data[7];
gSprites[sprite->data[6]].pos2.x += sprite->data[7];
if ((u16)(sprite->pos1.x + 80) > 400)
- move_anim_8074EE0(sprite);
+ DestroySpriteAndMatrix(sprite);
}
}
@@ -1171,7 +1160,7 @@ void sub_810AE5C(u8 taskId)
{
case 0:
task->data[15] = GetAnimBattlerSpriteId(0);
- task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
+ task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{
task->data[14] = -32;
@@ -1230,14 +1219,14 @@ void sub_810AFCC(u8 taskId)
switch (gBattleAnimArgs[0])
{
case 0:
- task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- task->data[5] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ task->data[5] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
task->data[4] = (task->data[1] * 128) + 120;
break;
case 4:
task->data[3] = 120 - (task->data[1] * 128);
- task->data[5] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
- task->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) - (task->data[1] * 32);
+ task->data[5] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
+ task->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - (task->data[1] * 32);
break;
default:
if ((gBattleAnimArgs[0] & 1) != 0)
@@ -1337,14 +1326,14 @@ static void sub_810B23C(struct Sprite *sprite)
switch (sprite->data[0])
{
case 0:
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
StartSpriteAffineAnim(sprite, 2);
sprite->data[0]++;
break;
case 1:
if (sprite->affineAnimEnded)
- move_anim_8074EE0(sprite);
+ DestroySpriteAndMatrix(sprite);
}
}
@@ -1355,10 +1344,10 @@ void sub_810B29C(u8 taskId)
switch (task->data[0])
{
case 0:
- task->data[6] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
- task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
+ task->data[6] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
+ task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
task->data[8] = 4;
- task->data[10] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
+ task->data[10] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[9] = (task->data[10] - task->data[6]) / 5;
task->data[4] = 7;
task->data[5] = -1;
@@ -1479,15 +1468,15 @@ void sub_810B55C(u8 taskId)
switch (task->data[0])
{
case 0:
- task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32;
+ task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32;
task->data[14] = task->data[15];
while (task->data[14] > 16)
{
task->data[14] -= 32;
}
- task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
- task->data[12] = GetBattlerSubpriority(gBattleAnimTarget) - 2;
+ task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
+ task->data[12] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 2;
task->data[0]++;
break;
case 1: