diff options
Diffstat (limited to 'src/battle/anim/roots.c')
-rw-r--r-- | src/battle/anim/roots.c | 69 |
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; |