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.c37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c
index 7f8154504..11eebada0 100644
--- a/src/battle/anim/seed.c
+++ b/src/battle/anim/seed.c
@@ -7,9 +7,40 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
+void AnimLeechSeed(struct Sprite* sprite);
static void AnimLeechSeedStep(struct Sprite* sprite);
static void AnimLeechSeedSprouts(struct Sprite* sprite);
+const union AnimCmd gSpriteAnim_83D63AC[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D63B4[] =
+{
+ ANIMCMD_FRAME(4, 7),
+ ANIMCMD_FRAME(8, 7),
+ ANIMCMD_JUMP(0),
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D63C0[] =
+{
+ gSpriteAnim_83D63AC,
+ gSpriteAnim_83D63B4,
+};
+
+const struct SpriteTemplate gLeechSeedSpriteTemplate =
+{
+ .tileTag = 10006,
+ .paletteTag = 10006,
+ .oam = &gOamData_837DF2C,
+ .anims = gSpriteAnimTable_83D63C0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = AnimLeechSeed,
+};
+
// seed (sprouts a sapling from a seed.)
// Used by Leech Seed.
// arg 0: initial x pixel offset
@@ -21,14 +52,14 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite);
void AnimLeechSeed(struct Sprite* sprite)
{
InitAnimSpritePos(sprite, 1);
- if (GetBankSide(gAnimBankAttacker))
+ if (GetBattlerSide(gAnimBankAttacker))
{
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data[0] = gBattleAnimArgs[4];
- sprite->data[2] = GetBankPosition(gAnimBankTarget, 0) + gBattleAnimArgs[2];
- sprite->data[4] = GetBankPosition(gAnimBankTarget, 1) + gBattleAnimArgs[3];
+ sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 0) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 1) + gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[5];
InitAnimSpriteTranslationOverDuration(sprite);
sprite->callback = AnimLeechSeedStep;