#include "global.h" #include "rom_8077ABC.h" #include "battle_anim.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; void sub_80D7704(struct Sprite *sprite); void sub_80D78EC(struct Sprite *sprite); void sub_80D792C(struct Sprite *sprite); void sub_80D79B4(struct Sprite *sprite); void sub_80D7A64(struct Sprite *sprite); void sub_80D7CD4(struct Sprite *sprite); void sub_80D7E88(struct Sprite *sprite); void sub_80D7F10(struct Sprite *sprite); void sub_80D83E0(struct Sprite *sprite); void sub_80D8700(struct Sprite *sprite); void sub_80D8D1C(struct Sprite *sprite); void sub_807A9BC(struct Sprite *sprite); void unc_080B06FC(struct Sprite *sprite); void sub_80D8F10(struct Sprite *sprite); const union AnimCmd gSpriteAnim_83D9B58[] = { ANIMCMD_FRAME(0, 5, .hFlip = TRUE), ANIMCMD_FRAME(1, 5, .hFlip = TRUE), ANIMCMD_JUMP(0), }; const union AnimCmd *const gSpriteAnimTable_83D9B64[] = { gSpriteAnim_83D9B58, }; const struct SpriteTemplate gSpriteTemplate_83D9B68 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837DF24, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7704, }; const union AnimCmd gSpriteAnim_83D9B80[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9B88[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9B90[] = { ANIMCMD_FRAME(6, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9B98[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9BA0[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9BA8[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_FRAME(13, 6), ANIMCMD_JUMP(0), }; const union AnimCmd *const gSpriteAnimTable_83D9BB4[] = { gSpriteAnim_83D9B80, }; const union AnimCmd *const gSpriteAnimTable_83D9BB8[] = { gSpriteAnim_83D9B88, }; const union AnimCmd *const gSpriteAnimTable_83D9BBC[] = { gSpriteAnim_83D9B90, }; const union AnimCmd *const gSpriteAnimTable_83D9BC0[] = { gSpriteAnim_83D9B98, }; const union AnimCmd *const gSpriteAnimTable_83D9BC4[] = { gSpriteAnim_83D9BA0, }; const union AnimCmd *const gSpriteAnimTable_83D9BC8[] = { gSpriteAnim_83D9BA8, }; const union AffineAnimCmd gSpriteAffineAnim_83D9BCC[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1), AFFINEANIMCMD_JUMP(0), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9BDC[] = { gSpriteAffineAnim_83D9BCC, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9BE0 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E144, .anims = gSpriteAnimTable_83D9BB8, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9BDC, .callback = sub_80D78EC, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9BF8 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E044, .anims = gSpriteAnimTable_83D9BBC, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D78EC, }; const union AffineAnimCmd gSpriteAffineAnim_83D9C10[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9C20[] = { gSpriteAffineAnim_83D9C10, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C24 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E0E4, .anims = gSpriteAnimTable_83D9BB8, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9C20, .callback = sub_80D792C, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C3C = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E044, .anims = gSpriteAnimTable_83D9BBC, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D792C, }; const union AffineAnimCmd gSpriteAffineAnim_83D9C54[] = { AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), AFFINEANIMCMD_END, }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9C74[] = { gSpriteAffineAnim_83D9C54, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C78 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E0E4, .anims = gSpriteAnimTable_83D9BB8, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9C74, .callback = sub_80D79B4, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C90 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837E0A4, .anims = gSpriteAnimTable_83D9BBC, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9C74, .callback = sub_80D79B4, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CA8 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837DF24, .anims = gSpriteAnimTable_83D9BC0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7A64, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CC0 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837DF2C, .anims = gSpriteAnimTable_83D9BC4, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7CD4, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CD8 = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837DF24, .anims = gSpriteAnimTable_83D9BC0, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7CD4, }; const union AnimCmd gSpriteAnim_83D9CF0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(6, 5), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(2, 5), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; const union AnimCmd *const gSpriteAnimTable_83D9D10[] = { gSpriteAnim_83D9CF0, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D14 = { .tileTag = 10142, .paletteTag = 10142, .oam = &gOamData_837E084, .anims = gSpriteAnimTable_83D9D10, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7E88, }; const union AnimCmd gSpriteAnim_83D9D2C[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(8, 8), ANIMCMD_JUMP(0), }; const union AnimCmd *const gSpriteAnimTable_83D9D38[] = { gSpriteAnim_83D9D2C, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D3C = { .tileTag = 10144, .paletteTag = 10144, .oam = &gOamData_837E074, .anims = gSpriteAnimTable_83D9D38, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7F10, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D54 = { .tileTag = 10172, .paletteTag = 10172, .oam = &gOamData_837E074, .anims = gSpriteAnimTable_83D9D38, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D7F10, }; const u8 gUnknown_083D9D6C[] = { 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D80 = { .tileTag = 10155, .paletteTag = 10155, .oam = &gOamData_837DF2C, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D83E0, }; const u8 gUnknown_083D9D98[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9DAC = { .tileTag = 10172, .paletteTag = 10172, .oam = &gOamData_837E074, .anims = gSpriteAnimTable_83D9D38, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D8700, }; // bitfield array const u32 gUnknown_083D9DC4[] = { 0x2001E064, 0x0001E055, 0x1011E0F2, 0x1021E042, 0x0031E0B6, 0x2001E03C, 0x0011E0D6, 0x1001E071, 0x1031E0D2, 0x0021E026, }; const union AffineAnimCmd gSpriteAffineAnim_83D9DEC[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9DFC[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9E0C[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9E1C[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9E2C[] = { gSpriteAffineAnim_83D9DEC, gSpriteAffineAnim_83D9DFC, gSpriteAffineAnim_83D9E0C, }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9E38[] = { gSpriteAffineAnim_83D9E1C, }; const struct SpriteTemplate gSpriteTemplate_83D9E3C = { .tileTag = 10263, .paletteTag = 10263, .oam = &gOamData_837DF8C, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9E2C, .callback = sub_80D8D1C, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9E54 = { .tileTag = 10263, .paletteTag = 10263, .oam = &gOamData_837DF8C, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9E38, .callback = sub_807A9BC, }; const union AnimCmd gSpriteAnim_83D9E6C[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; const union AnimCmd gSpriteAnim_83D9E74[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), ANIMCMD_FRAME(48, 4), ANIMCMD_FRAME(64, 4), ANIMCMD_END, }; const union AnimCmd *const gSpriteAnimTable_83D9E88[] = { gSpriteAnim_83D9E6C, gSpriteAnim_83D9E74, }; const union AffineAnimCmd gSpriteAffineAnim_83D9E90[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9EA0[] = { AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9EB0[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9EC0[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd gSpriteAffineAnim_83D9ED0[] = { AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0), AFFINEANIMCMD_END, }; const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9EE0[] = { gSpriteAffineAnim_83D9E90, gSpriteAffineAnim_83D9EA0, gSpriteAffineAnim_83D9EB0, gSpriteAffineAnim_83D9EC0, gSpriteAffineAnim_83D9ED0, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9EF4 = { .tileTag = 10043, .paletteTag = 10043, .oam = &gOamData_837DFF4, .anims = gSpriteAnimTable_83D9E88, .images = NULL, .affineAnims = gSpriteAffineAnimTable_83D9EE0, .callback = unc_080B06FC, }; const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9F0C = { .tileTag = 10141, .paletteTag = 10141, .oam = &gOamData_837DF24, .anims = gSpriteAnimTable_83D9BBC, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80D8F10, };