summaryrefslogtreecommitdiff
path: root/src/battle/anim/flying_path.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-06-25 17:50:27 -0500
committerMarcus Huderle <huderlem@gmail.com>2018-06-25 17:50:27 -0500
commit605f8ac1141daf66d3428923e004f82f5a5e1594 (patch)
treea3e5fae5d271175c7f10b6b455fcdc7f0fdd553e /src/battle/anim/flying_path.c
parente88e39d5fda1644f77e41fd652d4310612da7532 (diff)
parent659437f07a44b6f560bb58d6c12d141ed8ba7643 (diff)
Merge branch 'master' into contest_link_80C2020
Diffstat (limited to 'src/battle/anim/flying_path.c')
-rw-r--r--src/battle/anim/flying_path.c80
1 files changed, 71 insertions, 9 deletions
diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c
index 70c418afc..b190e9e8c 100644
--- a/src/battle/anim/flying_path.c
+++ b/src/battle/anim/flying_path.c
@@ -8,8 +8,6 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
-extern struct SpriteTemplate gSpriteTemplate_83D6884;
-
static void sub_80CBF5C(u8 taskId);
static s16 sub_80CC338(struct Sprite* sprite);
static void sub_80CC358(struct Task* task, u8 taskId);
@@ -18,16 +16,80 @@ static void sub_80CC408(struct Sprite* sprite);
// flying_path (guides a sprite along a specific path.)
// Used by Leaf Blade.
+const union AnimCmd gSpriteAnim_83D6830[] =
+{
+ ANIMCMD_FRAME(28, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6838[] =
+{
+ ANIMCMD_FRAME(32, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6840[] =
+{
+ ANIMCMD_FRAME(20, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6848[] =
+{
+ ANIMCMD_FRAME(28, 1, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6850[] =
+{
+ ANIMCMD_FRAME(16, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6858[] =
+{
+ ANIMCMD_FRAME(16, 1, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6860[] =
+{
+ ANIMCMD_FRAME(28, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D6868[] =
+{
+ gSpriteAnim_83D6830,
+ gSpriteAnim_83D6838,
+ gSpriteAnim_83D6840,
+ gSpriteAnim_83D6848,
+ gSpriteAnim_83D6850,
+ gSpriteAnim_83D6858,
+ gSpriteAnim_83D6860,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83D6884 =
+{
+ .tileTag = 10063,
+ .paletteTag = 10063,
+ .oam = &gOamData_837DF2C,
+ .anims = gSpriteAnimTable_83D6868,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
void sub_80CBDF4(u8 taskId)
{
struct Task *task = &gTasks[taskId];
task->data[4] = sub_8079E90(gAnimBankTarget) - 1;
- task->data[6] = GetBankPosition(gAnimBankTarget, 2);
- task->data[7] = GetBankPosition(gAnimBankTarget, 3);
+ task->data[6] = GetBattlerSpriteCoord(gAnimBankTarget, 2);
+ task->data[7] = GetBattlerSpriteCoord(gAnimBankTarget, 3);
task->data[10] = sub_807A100(gAnimBankTarget, 1);
task->data[11] = sub_807A100(gAnimBankTarget, 0);
- task->data[5] = (GetBankSide(gAnimBankTarget) == 1) ? 1 : -1;
+ task->data[5] = (GetBattlerSide(gAnimBankTarget) == 1) ? 1 : -1;
task->data[9] = 0x38 - (task->data[5] * 64);
task->data[8] = task->data[7] - task->data[9] + task->data[6];
task->data[2] = CreateSprite(&gSpriteTemplate_83D6884, task->data[8], task->data[9], task->data[4]);
@@ -44,7 +106,7 @@ void sub_80CBDF4(u8 taskId)
task->func = sub_80CBF5C;
}
-void sub_80CBF5C(u8 taskId)
+static void sub_80CBF5C(u8 taskId)
{
struct Task* task = &gTasks[taskId];
struct Sprite* sprite = &gSprites[task->data[2]];
@@ -244,7 +306,7 @@ void sub_80CBF5C(u8 taskId)
}
}
-s16 sub_80CC338(struct Sprite* sprite)
+static s16 sub_80CC338(struct Sprite* sprite)
{
s16 var = 8;
if (sprite->data[4] < sprite->pos1.y)
@@ -253,7 +315,7 @@ s16 sub_80CC338(struct Sprite* sprite)
return var;
}
-void sub_80CC358(struct Task* task, u8 taskId)
+static void sub_80CC358(struct Task* task, u8 taskId)
{
task->data[14]++;
if (task->data[14] > 0)
@@ -279,7 +341,7 @@ void sub_80CC358(struct Task* task, u8 taskId)
}
}
-void sub_80CC408(struct Sprite* sprite)
+static void sub_80CC408(struct Sprite* sprite)
{
sprite->data[0]++;
if (sprite->data[0] > 1)