summaryrefslogtreecommitdiff
path: root/src/battle/anim/roots.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/anim/roots.c')
-rw-r--r--src/battle/anim/roots.c69
1 files changed, 67 insertions, 2 deletions
diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c
index 30c2d9652..b9b76c584 100644
--- a/src/battle/anim/roots.c
+++ b/src/battle/anim/roots.c
@@ -6,14 +6,79 @@
extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
-
extern s16 gUnknown_03000728[];
+void sub_80CB59C(struct Sprite* sprite);
+void sub_80CB620(struct Sprite *sprite);
static void sub_80CB710(struct Sprite* sprite);
// roots
// Used by Ingrain and Frenzy Plant.
+const union AnimCmd gSpriteAnim_83D6600[] =
+{
+ ANIMCMD_FRAME(0, 7),
+ ANIMCMD_FRAME(16, 7),
+ ANIMCMD_FRAME(32, 7),
+ ANIMCMD_FRAME(48, 7),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6614[] =
+{
+ ANIMCMD_FRAME(0, 7, .hFlip = TRUE),
+ ANIMCMD_FRAME(16, 7, .hFlip = TRUE),
+ ANIMCMD_FRAME(32, 7, .hFlip = TRUE),
+ ANIMCMD_FRAME(48, 7, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6628[] =
+{
+ ANIMCMD_FRAME(0, 7),
+ ANIMCMD_FRAME(16, 7),
+ ANIMCMD_FRAME(32, 7),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D6638[] =
+{
+ ANIMCMD_FRAME(0, 7, .hFlip = TRUE),
+ ANIMCMD_FRAME(16, 7, .hFlip = TRUE),
+ ANIMCMD_FRAME(32, 7, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D6648[] =
+{
+ gSpriteAnim_83D6600,
+ gSpriteAnim_83D6614,
+ gSpriteAnim_83D6628,
+ gSpriteAnim_83D6638,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83D6658 =
+{
+ .tileTag = 10223,
+ .paletteTag = 10223,
+ .oam = &gOamData_837DF34,
+ .anims = gSpriteAnimTable_83D6648,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80CB59C,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83D6670 =
+{
+ .tileTag = 10223,
+ .paletteTag = 10223,
+ .oam = &gOamData_837DF34,
+ .anims = gSpriteAnimTable_83D6648,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80CB620,
+};
+
void sub_80CB59C(struct Sprite* sprite)
{
if (!sprite->data[0])
@@ -57,7 +122,7 @@ void sub_80CB620(struct Sprite *sprite)
gUnknown_03000728[3] = e2;
}
-void sub_80CB710(struct Sprite* sprite)
+static void sub_80CB710(struct Sprite* sprite)
{
if (++sprite->data[0] > (sprite->data[2] - 10))
sprite->invisible = sprite->data[0] % 2;