summaryrefslogtreecommitdiff
path: root/src/battle/anim/seed.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/anim/seed.c')
-rw-r--r--src/battle/anim/seed.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c
index be8613a74..7f8154504 100644
--- a/src/battle/anim/seed.c
+++ b/src/battle/anim/seed.c
@@ -7,15 +7,20 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
-static void sub_80CAB88(struct Sprite* sprite);
-static void sub_80CABC0(struct Sprite* sprite);
+static void AnimLeechSeedStep(struct Sprite* sprite);
+static void AnimLeechSeedSprouts(struct Sprite* sprite);
// seed (sprouts a sapling from a seed.)
// Used by Leech Seed.
-
-void sub_80CAB18(struct Sprite* sprite)
+// arg 0: initial x pixel offset
+// arg 1: initial y pixel offset
+// arg 2: target x pixel offset
+// arg 3: target y pixel offset
+// arg 4: duration
+// arg 5: wave amplitude
+void AnimLeechSeed(struct Sprite* sprite)
{
- sub_80787B0(sprite, 1);
+ InitAnimSpritePos(sprite, 1);
if (GetBankSide(gAnimBankAttacker))
{
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -25,26 +30,26 @@ void sub_80CAB18(struct Sprite* sprite)
sprite->data[2] = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5];
- sub_80786EC(sprite);
- sprite->callback = sub_80CAB88;
+ InitAnimSpriteTranslationOverDuration(sprite);
+ sprite->callback = AnimLeechSeedStep;
}
-void sub_80CAB88(struct Sprite* sprite)
+static void AnimLeechSeedStep(struct Sprite* sprite)
{
- if (sub_8078718(sprite))
+ if (TranslateAnimSpriteLinearAndSine(sprite))
{
sprite->invisible = 1;
sprite->data[0] = 10;
- sprite->callback = sub_80782D8;
- StoreSpriteCallbackInData(sprite, sub_80CABC0);
+ sprite->callback = WaitAnimForDuration;
+ StoreSpriteCallbackInData(sprite, AnimLeechSeedSprouts);
}
}
-void sub_80CABC0(struct Sprite* sprite)
+static void AnimLeechSeedSprouts(struct Sprite* sprite)
{
sprite->invisible = 0;
StartSpriteAnim(sprite, 1);
sprite->data[0] = 60;
- sprite->callback = sub_80782D8;
+ sprite->callback = WaitAnimForDuration;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}