diff --git a/data/battle_anim_80A9C70.s b/data/battle_anim_80A9C70.s deleted file mode 100644 index f82a657b9..000000000 --- a/data/battle_anim_80A9C70.s +++ /dev/null @@ -1,89 +0,0 @@ -#include "constants/battle_anim.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0853EDE4:: @ 853EDE4 - .2byte 0x0000, 0x0003, 0x0004, 0x0003, 0x0008, 0x0003, 0x000c, 0x0003, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EDF8:: @ 853EDF8 - .4byte gUnknown_0853EDE4 - - .align 2 -gUnknown_0853EDFC:: @ 853EDFC - spr_template ANIM_TAG_UNUSED_ORB, ANIM_TAG_UNUSED_ORB, gUnknown_0852490C, gUnknown_0853EDF8, NULL, gDummySpriteAffineAnimTable, sub_80A8AEC - spr_template ANIM_TAG_UNUSED_ORB, ANIM_TAG_UNUSED_ORB, gUnknown_0852490C, gUnknown_0853EDF8, NULL, gDummySpriteAffineAnimTable, sub_80A8A6C - - .align 2 -gUnknown_0853EE2C:: @ 853EE2C - .2byte 0x0000, 0x0003, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EE34:: @ 853EE34 - .4byte gUnknown_0853EE2C - - .align 2 -gUnknown_0853EE38:: @ 853EE38 - spr_template ANIM_TAG_WEATHER_BALL, ANIM_TAG_WEATHER_BALL, gUnknown_08524914, gUnknown_0853EE34, NULL, gDummySpriteAffineAnimTable, sub_80A8E30 - - .align 2 -gUnknown_0853EE50:: @ 853EE50 - spr_template ANIM_TAG_WEATHER_BALL, ANIM_TAG_WEATHER_BALL, gUnknown_08524914, gUnknown_0853EE34, NULL, gDummySpriteAffineAnimTable, sub_80A8EE4 - - .align 2 -gUnknown_0853EE68:: @ 853EE68 - .2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0x0040, 0x0003, 0xffff, 0x0000 - - .align 2 -gUnknown_0853EE80:: @ 853EE80 - .4byte gUnknown_0853EE68 - - .align 2 -gUnknown_0853EE84:: @ 853EE84 - spr_template ANIM_TAG_SPARKLE_4, ANIM_TAG_SPARKLE_4, gUnknown_08524914, gUnknown_0853EE80, NULL, gDummySpriteAffineAnimTable, sub_80A8B64 - spr_template ANIM_TAG_UNUSED_MONSTER_FOOT, ANIM_TAG_UNUSED_MONSTER_FOOT, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8AEC - - .align 2 -gUnknown_0853EEB4:: @ 853EEB4 - .2byte 0x0000, 0x0005, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EEBC:: @ 853EEBC - .2byte 0x0000, 0x0005, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EEC4:: @ 853EEC4 - .2byte 0x0000, 0x0005, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EECC:: @ 853EECC - .4byte gUnknown_0853EEB4 - .4byte gUnknown_0853EEBC - .4byte gUnknown_0853EEC4 - - .align 2 -gUnknown_0853EED8:: @ 853EED8 - spr_template ANIM_TAG_IMPACT, ANIM_TAG_IMPACT, gUnknown_08524914, gUnknown_0853EECC, NULL, gDummySpriteAffineAnimTable, sub_80A8AEC - - .align 2 -gUnknown_0853EEF0:: @ 853EEF0 - .2byte 0x0000, 0x000f, 0xfffe, 0x0000 - - .align 2 -gUnknown_0853EEF8:: @ 853EEF8 - .4byte gUnknown_0853EEF0 - - .align 2 -gUnknown_0853EEFC:: @ 853EEFC - .2byte 0x0060, 0x0060, 0x0000, 0x0000, 0x0002, 0x0002, 0x0100, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 - - .align 2 -gUnknown_0853EF14:: @ 853EF14 - .4byte gUnknown_0853EEFC - - .align 2 -gUnknown_0853EF18:: @ 853EF18 - spr_template ANIM_TAG_UNUSED_ORB, ANIM_TAG_UNUSED_ORB, gUnknown_085249CC, gUnknown_0853EEF8, NULL, gUnknown_0853EF14, sub_80A8A6C diff --git a/include/battle_anim.h b/include/battle_anim.h index fc0f603eb..8e8a17675 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -75,6 +75,10 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_80A5C6C.s void sub_80A6450(struct Sprite *sprite); +void sub_80A8AEC(struct Sprite *sprite); +void sub_80A8A6C(struct Sprite *sprite); +void sub_80A8E30(struct Sprite *sprite); +void sub_80A8B64(struct Sprite *sprite); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void DestroySpriteAndMatrix(struct Sprite *sprite); void AnimTranslateLinearSimple(struct Sprite *sprite); diff --git a/ld_script.txt b/ld_script.txt index bf8d4bde9..306a1f4b0 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -441,7 +441,6 @@ SECTIONS { src/battle_anim.o(.rodata); src/battle_anim_80A5C6C.o(.rodata); data/map_events.o(.rodata); - data/battle_anim_80A9C70.o(.rodata); src/battle_anim_80A9C70.o(.rodata); src/title_screen.o(.rodata); src/field_weather.o(.rodata); diff --git a/src/battle_anim_80A9C70.c b/src/battle_anim_80A9C70.c index 001f99d7f..1271680e0 100644 --- a/src/battle_anim_80A9C70.c +++ b/src/battle_anim_80A9C70.c @@ -28,6 +28,182 @@ static void sub_80A9E44(struct Sprite *sprite); static void sub_80A9E78(struct Sprite *sprite); // const rom data +static const union AnimCmd sSpriteAnim_853EDE4[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(4, 3), + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(12, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = +{ + sSpriteAnim_853EDE4 +}; + +const struct SpriteTemplate gUnknown_0853EDFC = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +const struct SpriteTemplate gUnknown_0853EE14 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8A6C, +}; + +static const union AnimCmd sSpriteAnim_853EE2C[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE34[] = +{ + sSpriteAnim_853EE2C +}; + +const struct SpriteTemplate gUnknown_0853EE38 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8E30, +}; + +const struct SpriteTemplate gUnknown_0853EE50 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8EE4, +}; + +static const union AnimCmd sSpriteAnim_853EE68[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE80[] = +{ + sSpriteAnim_853EE68 +}; + +const struct SpriteTemplate gUnknown_0853EE84 = +{ + .tileTag = ANIM_TAG_SPARKLE_4, + .paletteTag = ANIM_TAG_SPARKLE_4, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE80, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8B64, +}; + +const struct SpriteTemplate gUnknown_0853EE9C = +{ + .tileTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .paletteTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEB4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEBC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEC4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EECC[] = +{ + sSpriteAnim_853EEB4, + sSpriteAnim_853EEBC, + sSpriteAnim_853EEC4 +}; + +const struct SpriteTemplate gUnknown_0853EED8 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EECC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEF0[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EEF8[] = +{ + sSpriteAnim_853EEF0 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] = +{ + AFFINEANIMCMD_FRAME(96, 96, 0, 0), + AFFINEANIMCMD_FRAME(2, 2, 0, 1), + AFFINEANIMCMD_JUMP(1) +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = +{ + sSpriteAffineAnim_853EEFC +}; + +const struct SpriteTemplate gUnknown_0853EF18 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_085249CC, + .anims = sSpriteAnimTable_853EEF8, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_853EEF8, + .callback = sub_80A8A6C, +}; + static const struct Subsprite gUnknown_0853EF30[] = { {.x = -16, .y = -16, .shape = ST_OAM_SQUARE, .size = 3, .tileOffset = 0, .priority = 2},