}; const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB428 = { .tileTag = 0, .paletteTag = 0, .oam = &gDummyOamData, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80E24B8, }; const union AffineAnimCmd gSpriteAffineAnim_83DB440[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83DB450[] = { AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83DB468[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END,
const union AnimCmd *const gSpriteAnimTable_83D70D8[] = { gSpriteAnim_83D7098, gSpriteAnim_83D70A0, gSpriteAnim_83D70A8, gSpriteAnim_83D70B0, gSpriteAnim_83D70B8, gSpriteAnim_83D70C0, gSpriteAnim_83D70C8, gSpriteAnim_83D70D0, }; const union AffineAnimCmd gSpriteAffineAnim_83D70F8[] = { AFFINEANIMCMD_FRAME(0xC, 0xC, 0, 16), AFFINEANIMCMD_FRAME(0xFFF4, 0xFFF4, 0, 16), AFFINEANIMCMD_JUMP(0), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D7110[] = { gSpriteAffineAnim_83D70F8, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D7114 = { .tileTag = 10072, .paletteTag = 10072, .oam = &gOamData_837DFEC, .anims = gSpriteAnimTable_83D70D8,
#include "sound.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern const union AnimCmd *const gSpriteAnimTable_83D6424[]; extern const union AnimCmd *const gSpriteAnimTable_83D6420[]; void sub_80CC474(struct Sprite* sprite); static void sub_80CC580(struct Sprite* sprite); // flying_petals (petals fly across the screen.) // Used by Aromatherapy. const union AffineAnimCmd gSpriteAffineAnim_83D689C[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(0, 0, 4, 1), AFFINEANIMCMD_JUMP(1), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D68B4[] = { gSpriteAffineAnim_83D689C, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D68B8 = { .tileTag = 10159, .paletteTag = 10159, .oam = &gOamData_837DF24, .anims = gSpriteAnimTable_83D6424, .images = NULL,
gSpriteAnim_83D6294, gSpriteAnim_83D629C, }; const union AnimCmd *const gSpriteAnimTable_83D62D0[] = { gSpriteAnim_83D62A4, }; const union AnimCmd *const gSpriteAnimTable_83D62D4[] = { gSpriteAnim_83D62AC, }; const union AffineAnimCmd gSpriteAffineAnim_83D62D8[] = { AFFINEANIMCMD_FRAME(-5, -5, 0, 1), AFFINEANIMCMD_JUMP(0), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D62E8[] = { gSpriteAffineAnim_83D62D8, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D62EC = { .tileTag = 10147, .paletteTag = 10147, .oam = &gOamData_837E0AC, .anims = gSpriteAnimTable_83D62D4, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D62E8,
#include "trig.h" #include "battle_anim.h" #include "sound.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; static void sub_80D0904(u8 taskId); // grow (grows a Pokemon then shrinks back to normal size.) // Used in Swagger and Bulk Up. const union AffineAnimCmd gSpriteAffineAnim_83D7714[] = { AFFINEANIMCMD_FRAME(-4, -5, 0, 12), AFFINEANIMCMD_FRAME(0, 0, 0, 24), AFFINEANIMCMD_FRAME(4, 5, 0, 12), AFFINEANIMCMD_END, }; void sub_80D08C8(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(0); sub_80798F4(task, spriteId, &gSpriteAffineAnim_83D7714); task->func = sub_80D0904; } static void sub_80D0904(u8 taskId) {
// Used by Rest and the sleep turn when the Pokemon is still asleep. const union AnimCmd gSpriteAnim_83D6D20[] = { ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; const union AnimCmd *const gSpriteAnimTable_83D6D28[] = { gSpriteAnim_83D6D20, }; const union AffineAnimCmd gSpriteAffineAnim_83D6D2C[] = { AFFINEANIMCMD_FRAME(0x14, 0x14, -30, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 1, 24), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D6D44[] = { AFFINEANIMCMD_LOOP(0), AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 24), AFFINEANIMCMD_LOOP(10), }; const union AffineAnimCmd gSpriteAffineAnim_83D6D5C[] = { AFFINEANIMCMD_FRAME(0x14, 0x14, 30, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, -1, 24),
}; const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAC7C = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, .oam = &gOamData_837DF24, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80DCFE4, }; const union AffineAnimCmd gSpriteAffineAnim_83DAC94[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(0x2, 0xFFFD, 0, 5), AFFINEANIMCMD_FRAME(0xFFFE, 0x3, 0, 5), AFFINEANIMCMD_JUMP(1), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83DACB4[] = { gSpriteAffineAnim_83DAC94, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACB8 = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_837E0AC,
#include "global.h" #include "rom_8077ABC.h" #include "trig.h" #include "battle_anim.h" #include "sound.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; // startle (the pokemon sprite shrivels upward and restores after a brief time.) // Used in Fake Out, Trick, and Astonish. const union AffineAnimCmd gSpriteAffineAnim_83D7A98[] = { AFFINEANIMCMD_FRAME(0x000A, 0xFFF3, 0x00, 0x0A), AFFINEANIMCMD_FRAME(0xFFF6, 0x000D, 0x00, 0x0A), AFFINEANIMCMD_END, }; // opponent void sub_80D1E38(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(1); if (++gTasks[taskId].data[0] == 1) { sub_80798F4(&gTasks[taskId], GetAnimBattlerSpriteId(1), &gSpriteAffineAnim_83D7A98); gSprites[spriteId].pos2.x = 4; } else {