summaryrefslogtreecommitdiff
path: root/src/battle/anim/hop.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/anim/hop.c')
-rw-r--r--src/battle/anim/hop.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c
index 7d1b2fd01..3aba79511 100644
--- a/src/battle/anim/hop.c
+++ b/src/battle/anim/hop.c
@@ -7,9 +7,67 @@ extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
extern u8 gAnimBankTarget;
+void sub_80CB94C(struct Sprite* sprite);
+void sub_80CBA28(struct Sprite* sprite);
+
// hop (where a sprite "hops" across the screen)
// Used by Present, Trick, and the item knock off effect.
+const union AnimCmd gSpriteAnim_83D66B0[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D66B8[] =
+{
+ gSpriteAnim_83D66B0,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83D66BC[] = {
+ AFFINEANIMCMD_FRAME(0, 0, -4, 10),
+ AFFINEANIMCMD_FRAME(0, 0, 4, 20),
+ AFFINEANIMCMD_FRAME(0, 0, -4, 10),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83D66DC[] = {
+ AFFINEANIMCMD_FRAME(0, 0, -1, 2),
+ AFFINEANIMCMD_FRAME(0, 0, 1, 4),
+ AFFINEANIMCMD_FRAME(0, 0, -1, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 1, 4),
+ AFFINEANIMCMD_FRAME(0, 0, -1, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 1, 2),
+ AFFINEANIMCMD_END,
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83D6714[] = {
+ gSpriteAffineAnim_83D66BC,
+ gSpriteAffineAnim_83D66DC,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83D671C =
+{
+ .tileTag = 10224,
+ .paletteTag = 10224,
+ .oam = &gOamData_837DF94,
+ .anims = gSpriteAnimTable_83D66B8,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_83D6714,
+ .callback = sub_80CB94C,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83D6734 =
+{
+ .tileTag = 10224,
+ .paletteTag = 10224,
+ .oam = &gOamData_837DF94,
+ .anims = gSpriteAnimTable_83D66B8,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_83D6714,
+ .callback = sub_80CBA28,
+};
+
void sub_80CB7EC(struct Sprite* sprite, s16 c)
{
s32 a = (sprite->pos1.x * 256) | sprite->pos1.y;