summaryrefslogtreecommitdiff
path: root/src/battle/battle_anim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/battle_anim.c')
-rw-r--r--src/battle/battle_anim.c3236
1 files changed, 0 insertions, 3236 deletions
diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c
deleted file mode 100644
index 287d80ab1..000000000
--- a/src/battle/battle_anim.c
+++ /dev/null
@@ -1,3236 +0,0 @@
-#include "global.h"
-#include "battle_anim.h"
-#include "battle.h"
-#include "battle_anim_80CA710.h"
-#include "battle_interface.h"
-#include "contest.h"
-#include "decompress.h"
-#include "m4a.h"
-#include "main.h"
-#include "palette.h"
-#include "rom_8077ABC.h"
-#include "sound.h"
-#include "sprite.h"
-#include "task.h"
-#include "ewram.h"
-#include "graphics.h"
-#include "constants/battle_anim.h"
-#include "constants/songs.h"
-
-const struct OamData gOamData_837DF24 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF2C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF34 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF3C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF44 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF4C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF54 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF5C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF64 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF6C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF74 =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF7C =
-{
- .affineMode = 0,
- .objMode = 0,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF84 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF8C =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF94 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DF9C =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFA4 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFAC =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFB4 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFBC =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFC4 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFCC =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFD4 =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFDC =
-{
- .affineMode = 1,
- .objMode = 0,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFE4 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFEC =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFF4 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837DFFC =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837D004 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837D00C =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E014 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E01C =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E024 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E02C =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E034 =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E03C =
-{
- .affineMode = 3,
- .objMode = 0,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E044 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E04C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E054 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E05C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E064 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E06C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E074 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E07C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E084 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E08C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E094 =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E09C =
-{
- .affineMode = 0,
- .objMode = 1,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0A4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0AC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0B4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0BC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0C4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0CC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0D4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0DC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0E4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0EC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0F4 =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E0FC =
-{
- .affineMode = 1,
- .objMode = 1,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E104 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 0,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E10C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 0,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E114 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 0,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E11C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 0,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E124 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 1,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E12C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 1,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E134 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 1,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E13C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 1,
- .size = 3,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E144 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 2,
- .size = 0,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E14C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 2,
- .size = 1,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E154 =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 2,
- .size = 2,
- .priority = 2,
-};
-
-const struct OamData gOamData_837E15C =
-{
- .affineMode = 3,
- .objMode = 1,
- .shape = 2,
- .size = 3,
- .priority = 2,
-};
-
-const struct CompressedSpriteSheet gBattleAnimPicTable[] =
-{
- { gBattleAnimSpriteSheet_000, 0x200, ANIM_TAG_BONE },
- { gBattleAnimSpriteSheet_001, 0x300, ANIM_TAG_SPARK },
- { gBattleAnimSpriteSheet_002, 0x200, ANIM_TAG_PENCIL },
- { gBattleAnimSpriteSheet_003, 0x100, ANIM_TAG_AIR_WAVE },
- { gBattleAnimSpriteSheet_004, 0x200, ANIM_TAG_UNUSED_ORB },
- { gBattleAnimSpriteSheet_005, 0x400, ANIM_TAG_SWORD },
- { gBattleAnimSpriteSheet_006, 0x180, ANIM_TAG_SEED },
- { gBattleAnimSpriteSheet_007, 0x800, ANIM_TAG_UNUSED_EXPLOSION },
- { gBattleAnimSpriteSheet_008, 0x20, ANIM_TAG_UNUSED_PINK_ORB },
- { gBattleAnimSpriteSheet_009, 0x400, ANIM_TAG_GUST },
- { gBattleAnimSpriteSheet_010, 0x1200, ANIM_TAG_ICE_CUBE },
- { gBattleAnimSpriteSheet_011, 0x180, ANIM_TAG_SPARK_2 },
- { gBattleAnimSpriteSheet_012, 0x80, ANIM_TAG_UNUSED_ORANGE },
- { gBattleAnimSpriteSheet_013, 0x80, ANIM_TAG_YELLOW_BALL },
- { gBattleAnimSpriteSheet_014, 0x280, ANIM_TAG_LOCK_ON },
- { gBattleAnimSpriteSheet_015, 0x80, ANIM_TAG_TIED_BAG },
- { gBattleAnimSpriteSheet_016, 0x100, ANIM_TAG_BLACK_SMOKE },
- { gBattleAnimSpriteSheet_017, 0x20, ANIM_TAG_BLACK_BALL },
- { gBattleAnimSpriteSheet_018, 0x80, ANIM_TAG_CONVERSION },
- { gBattleAnimSpriteSheet_019, 0x400, ANIM_TAG_UNUSED_GLASS },
- { gBattleAnimSpriteSheet_020, 0x200, ANIM_TAG_HORN_HIT },
- { gBattleAnimSpriteSheet_021, 0xA00, ANIM_TAG_UNUSED_HIT },
- { gBattleAnimSpriteSheet_021, 0xA00, ANIM_TAG_UNUSED_HIT_2 },
- { gBattleAnimSpriteSheet_023, 0x380, ANIM_TAG_UNUSED_BLUE_SHARDS },
- { gBattleAnimSpriteSheet_024, 0x300, ANIM_TAG_UNUSED_CLOSING_EYE },
- { gBattleAnimSpriteSheet_025, 0xA00, ANIM_TAG_UNUSED_WAVING_HAND },
- { gBattleAnimSpriteSheet_026, 0xA00, ANIM_TAG_UNUSED_HIT_DUPLICATE },
- { gBattleAnimSpriteSheet_027, 0xA00, ANIM_TAG_LEER },
- { gBattleAnimSpriteSheet_028, 0xA00, ANIM_TAG_UNUSED_BLUE_BURST },
- { gBattleAnimSpriteSheet_029, 0xA00, ANIM_TAG_SMALL_EMBER },
- { gBattleAnimSpriteSheet_030, 0xA00, ANIM_TAG_GRAY_SMOKE },
- { gBattleAnimSpriteSheet_031, 0xE00, ANIM_TAG_BLUE_STAR },
- { gBattleAnimSpriteSheet_032, 0x380, ANIM_TAG_UNUSED_BUBBLE_BURST },
- { gBattleAnimSpriteSheet_033, 0x1000, ANIM_TAG_FIRE },
- { gBattleAnimSpriteSheet_034, 0x800, ANIM_TAG_UNUSED_SPINNING_FIRE },
- { gBattleAnimSpriteSheet_035, 0xA00, ANIM_TAG_FIRE_PLUME },
- { gBattleAnimSpriteSheet_036, 0x800, ANIM_TAG_UNUSED_LIGHTNING },
- { gBattleAnimSpriteSheet_037, 0xA00, ANIM_TAG_LIGHTNING },
- { gBattleAnimSpriteSheet_038, 0xA00, ANIM_TAG_UNUSED_CLAW_SLASH },
- { gBattleAnimSpriteSheet_039, 0xA00, ANIM_TAG_CLAW_SLASH },
- { gBattleAnimSpriteSheet_040, 0xA00, ANIM_TAG_UNUSED_SCRATCH },
- { gBattleAnimSpriteSheet_041, 0xA00, ANIM_TAG_UNUSED_SCRATCH_2 },
- { gBattleAnimSpriteSheet_042, 0xA00, ANIM_TAG_UNUSED_BUBBLE_BURST_2 },
- { gBattleAnimSpriteSheet_043, 0xA00, ANIM_TAG_ICE_CHUNK },
- { gBattleAnimSpriteSheet_044, 0xA00, ANIM_TAG_UNUSED_GLASS_2 },
- { gBattleAnimSpriteSheet_045, 0xA00, ANIM_TAG_UNUSED_PINK_HEART },
- { gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_UNUSED_SAP_DRIP },
- { gBattleAnimSpriteSheet_046, 0x1000, ANIM_TAG_UNUSED_SAP_DRIP_2 },
- { gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_1 },
- { gBattleAnimSpriteSheet_048, 0x1000, ANIM_TAG_SPARKLE_2 },
- { gBattleAnimSpriteSheet_050, 0x200, ANIM_TAG_HUMANOID_FOOT },
- { gBattleAnimSpriteSheet_051, 0x200, ANIM_TAG_UNUSED_MONSTER_FOOT },
- { gBattleAnimSpriteSheet_052, 0x200, ANIM_TAG_UNUSED_HUMANOID_HAND },
- { gBattleAnimSpriteSheet_053, 0x800, ANIM_TAG_NOISE_LINE },
- { gBattleAnimSpriteSheet_054, 0x80, ANIM_TAG_UNUSED_YELLOW_UNK },
- { gBattleAnimSpriteSheet_055, 0x200, ANIM_TAG_UNUSED_RED_FIST },
- { gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_SLAM_HIT },
- { gBattleAnimSpriteSheet_057, 0x180, ANIM_TAG_UNUSED_RING },
- { gBattleAnimSpriteSheet_058, 0xC00, ANIM_TAG_ROCKS },
- { gBattleAnimSpriteSheet_059, 0x100, ANIM_TAG_UNUSED_Z },
- { gBattleAnimSpriteSheet_060, 0x40, ANIM_TAG_UNUSED_YELLOW_UNK_2 },
- { gBattleAnimSpriteSheet_061, 0x180, ANIM_TAG_UNUSED_AIR_SLASH },
- { gBattleAnimSpriteSheet_062, 0x800, ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS },
- { gBattleAnimSpriteSheet_063, 0x480, ANIM_TAG_LEAF },
- { gBattleAnimSpriteSheet_064, 0x200, ANIM_TAG_FINGER },
- { gBattleAnimSpriteSheet_065, 0x200, ANIM_TAG_POISON_POWDER },
- { gBattleAnimSpriteSheet_066, 0x100, ANIM_TAG_UNUSED_BROWN_TRIANGLE },
- { gBattleAnimSpriteSheet_065, 0x200, ANIM_TAG_SLEEP_POWDER },
- { gBattleAnimSpriteSheet_065, 0x200, ANIM_TAG_STUN_SPORE },
- { gBattleAnimSpriteSheet_065, 0x200, ANIM_TAG_UNUSED_POWDER },
- { gBattleAnimSpriteSheet_070, 0x200, ANIM_TAG_SPARKLE_3 },
- { gBattleAnimSpriteSheet_071, 0xA00, ANIM_TAG_SPARKLE_4 },
- { gBattleAnimSpriteSheet_072, 0x300, ANIM_TAG_MUSIC_NOTES },
- { gBattleAnimSpriteSheet_073, 0x180, ANIM_TAG_DUCK },
- { gBattleAnimSpriteSheet_074, 0xA0, ANIM_TAG_MUD_SAND },
- { gBattleAnimSpriteSheet_075, 0x700, ANIM_TAG_ALERT },
- { gBattleAnimSpriteSheet_076, 0x400, ANIM_TAG_UNUSED_BLUE_FLAMES },
- { gBattleAnimSpriteSheet_077, 0x200, ANIM_TAG_UNUSED_BLUE_FLAMES_2 },
- { gBattleAnimSpriteSheet_078, 0x300, ANIM_TAG_UNUSED_SHOCK },
- { gBattleAnimSpriteSheet_079, 0xC00, ANIM_TAG_SHOCK },
- { gBattleAnimSpriteSheet_080, 0xA00, ANIM_TAG_UNUSED_BELL },
- { gBattleAnimSpriteSheet_081, 0x80, ANIM_TAG_UNUSED_PINK_GLOVE },
- { gBattleAnimSpriteSheet_082, 0x40, ANIM_TAG_UNUSED_BLUE_LINES },
- { gBattleAnimSpriteSheet_083, 0xE00, ANIM_TAG_UNUSED_IMPACT },
- { gBattleAnimSpriteSheet_084, 0xE00, ANIM_TAG_UNUSED_IMPACT_2 },
- { gBattleAnimSpriteSheet_085, 0x280, ANIM_TAG_UNUSED_RETICLE },
- { gBattleAnimSpriteSheet_086, 0x200, ANIM_TAG_BREATH },
- { gBattleAnimSpriteSheet_087, 0x80, ANIM_TAG_ANGER },
- { gBattleAnimSpriteSheet_088, 0xC0, ANIM_TAG_UNUSED_SNOWBALL },
- { gBattleAnimSpriteSheet_089, 0xA00, ANIM_TAG_UNUSED_VINE },
- { gBattleAnimSpriteSheet_090, 0x200, ANIM_TAG_UNUSED_SWORD },
- { gBattleAnimSpriteSheet_091, 0x180, ANIM_TAG_UNUSED_CLAPPING },
- { gBattleAnimSpriteSheet_092, 0x80, ANIM_TAG_UNUSED_RED_TUBE },
- { gBattleAnimSpriteSheet_093, 0x1000, ANIM_TAG_AMNESIA },
- { gBattleAnimSpriteSheet_094, 0xA00, ANIM_TAG_UNUSED_STRING },
- { gBattleAnimSpriteSheet_095, 0x180, ANIM_TAG_UNUSED_PENCIL },
- { gBattleAnimSpriteSheet_096, 0x380, ANIM_TAG_UNUSED_PETAL },
- { gBattleAnimSpriteSheet_097, 0xC00, ANIM_TAG_BENT_SPOON },
- { gBattleAnimSpriteSheet_098, 0x200, ANIM_TAG_UNUSED_WEB },
- { gBattleAnimSpriteSheet_099, 0x200, ANIM_TAG_MILK_BOTTLE },
- { gBattleAnimSpriteSheet_100, 0x200, ANIM_TAG_COIN },
- { gBattleAnimSpriteSheet_101, 0x200, ANIM_TAG_UNUSED_CRACKED_EGG },
- { gBattleAnimSpriteSheet_102, 0x400, ANIM_TAG_UNUSED_HATCHED_EGG },
- { gBattleAnimSpriteSheet_103, 0x80, ANIM_TAG_UNUSED_FRESH_EGG },
- { gBattleAnimSpriteSheet_104, 0x400, ANIM_TAG_UNUSED_FANGS },
- { gBattleAnimSpriteSheet_105, 0xC00, ANIM_TAG_UNUSED_EXPLOSION_2 },
- { gBattleAnimSpriteSheet_106, 0x200, ANIM_TAG_UNUSED_EXPLOSION_3 },
- { gBattleAnimSpriteSheet_107, 0x1000, ANIM_TAG_UNUSED_WATER_DROPLET },
- { gBattleAnimSpriteSheet_108, 0xA00, ANIM_TAG_UNUSED_WATER_DROPLET_2 },
- { gBattleAnimSpriteSheet_109, 0x20, ANIM_TAG_UNUSED_SEED },
- { gBattleAnimSpriteSheet_110, 0xE00, ANIM_TAG_UNUSED_SPROUT },
- { gBattleAnimSpriteSheet_111, 0x80, ANIM_TAG_UNUSED_RED_WAND },
- { gBattleAnimSpriteSheet_112, 0xA00, ANIM_TAG_UNUSED_PURPLE_GREEN_UNK },
- { gBattleAnimSpriteSheet_113, 0x400, ANIM_TAG_UNUSED_WATER_COLUMN },
- { gBattleAnimSpriteSheet_114, 0x200, ANIM_TAG_UNUSED_MUD_UNK },
- { gBattleAnimSpriteSheet_115, 0x700, ANIM_TAG_RAIN_DROPS },
- { gBattleAnimSpriteSheet_116, 0x800, ANIM_TAG_UNUSED_FURY_SWIPES },
- { gBattleAnimSpriteSheet_117, 0xA00, ANIM_TAG_UNUSED_VINE_2 },
- { gBattleAnimSpriteSheet_118, 0x600, ANIM_TAG_UNUSED_TEETH },
- { gBattleAnimSpriteSheet_119, 0x800, ANIM_TAG_UNUSED_BONE },
- { gBattleAnimSpriteSheet_120, 0x200, ANIM_TAG_UNUSED_WHITE_BAG },
- { gBattleAnimSpriteSheet_121, 0x40, ANIM_TAG_UNUSED_UNKNOWN },
- { gBattleAnimSpriteSheet_122, 0x180, ANIM_TAG_UNUSED_PURPLE_CORAL },
- { gBattleAnimSpriteSheet_123, 0x600, ANIM_TAG_UNUSED_PURPLE_DROPLET },
- { gBattleAnimSpriteSheet_124, 0x600, ANIM_TAG_UNUSED_SHOCK_2 },
- { gBattleAnimSpriteSheet_125, 0x200, ANIM_TAG_UNUSED_CLOSING_EYE_2 },
- { gBattleAnimSpriteSheet_126, 0x80, ANIM_TAG_UNUSED_METAL_BALL },
- { gBattleAnimSpriteSheet_127, 0x200, ANIM_TAG_UNUSED_MONSTER_DOLL },
- { gBattleAnimSpriteSheet_128, 0x800, ANIM_TAG_UNUSED_WHIRLWIND },
- { gBattleAnimSpriteSheet_129, 0x80, ANIM_TAG_UNUSED_WHIRLWIND_2 },
- { gBattleAnimSpriteSheet_130, 0xA00, ANIM_TAG_UNUSED_EXPLOSION_4 },
- { gBattleAnimSpriteSheet_131, 0x280, ANIM_TAG_UNUSED_EXPLOSION_5 },
- { gBattleAnimSpriteSheet_132, 0x280, ANIM_TAG_UNUSED_TONGUE },
- { gBattleAnimSpriteSheet_133, 0x100, ANIM_TAG_UNUSED_SMOKE },
- { gBattleAnimSpriteSheet_134, 0x200, ANIM_TAG_UNUSED_SMOKE_2 },
- { gBattleAnimSpriteSheet_135, 0x200, ANIM_TAG_IMPACT },
- { gBattleAnimSpriteSheet_136, 0x20, ANIM_TAG_CIRCLE_IMPACT },
- { gBattleAnimSpriteSheet_137, 0xA00, ANIM_TAG_SCRATCH },
- { gBattleAnimSpriteSheet_138, 0x800, ANIM_TAG_CUT },
- { gBattleAnimSpriteSheet_139, 0x800, ANIM_TAG_SHARP_TEETH },
- { gBattleAnimSpriteSheet_140, 0xC0, ANIM_TAG_RAINBOW_RINGS },
- { gBattleAnimSpriteSheet_141, 0x1C0, ANIM_TAG_ICE_CRYSTALS },
- { gBattleAnimSpriteSheet_142, 0x100, ANIM_TAG_ICE_SPIKES },
- { gBattleAnimSpriteSheet_143, 0x800, ANIM_TAG_HANDS_AND_FEET },
- { gBattleAnimSpriteSheet_144, 0x200, ANIM_TAG_MIST_CLOUD },
- { gBattleAnimSpriteSheet_145, 0x800, ANIM_TAG_CLAMP },
- { gBattleAnimSpriteSheet_146, 0x180, ANIM_TAG_BUBBLE },
- { gBattleAnimSpriteSheet_147, 0x180, ANIM_TAG_ORBS },
- { gBattleAnimSpriteSheet_148, 0x200, ANIM_TAG_WATER_IMPACT },
- { gBattleAnimSpriteSheet_149, 0x200, ANIM_TAG_WATER_ORB },
- { gBattleAnimSpriteSheet_150, 0x180, ANIM_TAG_POISON_BUBBLE },
- { gBattleAnimSpriteSheet_151, 0x400, ANIM_TAG_TOXIC_BUBBLE },
- { gBattleAnimSpriteSheet_152, 0x80, ANIM_TAG_SPIKES },
- { gBattleAnimSpriteSheet_153, 0x100, ANIM_TAG_HORN_HIT_2 },
- { gBattleAnimSpriteSheet_154, 0x100, ANIM_TAG_AIR_WAVE_2 },
- { gBattleAnimSpriteSheet_155, 0x140, ANIM_TAG_SMALL_BUBBLES },
- { gBattleAnimSpriteSheet_156, 0x800, ANIM_TAG_ROUND_SHADOW },
- { gBattleAnimSpriteSheet_157, 0x200, ANIM_TAG_SUNLIGHT },
- { gBattleAnimSpriteSheet_158, 0x100, ANIM_TAG_SPORE },
- { gBattleAnimSpriteSheet_159, 0xA0, ANIM_TAG_FLOWER },
- { gBattleAnimSpriteSheet_160, 0x100, ANIM_TAG_RAZOR_LEAF },
- { gBattleAnimSpriteSheet_161, 0x80, ANIM_TAG_NEEDLE },
- { gBattleAnimSpriteSheet_162, 0x300, ANIM_TAG_WHIRLWIND_LINES },
- { gBattleAnimSpriteSheet_163, 0x100, ANIM_TAG_GOLD_RING },
- { gBattleAnimSpriteSheet_163, 0x100, ANIM_TAG_PURPLE_RING },
- { gBattleAnimSpriteSheet_163, 0x100, ANIM_TAG_BLUE_RING },
- { gBattleAnimSpriteSheet_166, 0x800, ANIM_TAG_GREEN_LIGHT_WALL },
- { gBattleAnimSpriteSheet_166, 0x800, ANIM_TAG_BLUE_LIGHT_WALL },
- { gBattleAnimSpriteSheet_166, 0x800, ANIM_TAG_RED_LIGHT_WALL },
- { gBattleAnimSpriteSheet_166, 0x800, ANIM_TAG_GRAY_LIGHT_WALL },
- { gBattleAnimSpriteSheet_166, 0x800, ANIM_TAG_ORANGE_LIGHT_WALL },
- { gBattleAnimSpriteSheet_171, 0x80, ANIM_TAG_BLACK_BALL_2 },
- { gBattleAnimSpriteSheet_144, 0x200, ANIM_TAG_PURPLE_GAS_CLOUD },
- { gBattleAnimSpriteSheet_173, 0x200, ANIM_TAG_SPARK_H },
- { gBattleAnimSpriteSheet_174, 0x200, ANIM_TAG_YELLOW_STAR },
- { gBattleAnimSpriteSheet_175, 0x80, ANIM_TAG_LARGE_FRESH_EGG },
- { gBattleAnimSpriteSheet_176, 0x200, ANIM_TAG_SHADOW_BALL },
- { gBattleAnimSpriteSheet_177, 0x500, ANIM_TAG_LICK },
- { gBattleAnimSpriteSheet_178, 0x800, ANIM_TAG_UNUSED_VOID_LINES },
- { gBattleAnimSpriteSheet_179, 0x400, ANIM_TAG_STRING },
- { gBattleAnimSpriteSheet_180, 0x20, ANIM_TAG_STRING_DOT },
- { gBattleAnimSpriteSheet_181, 0x800, ANIM_TAG_WEB },
- { gBattleAnimSpriteSheet_182, 0x100, ANIM_TAG_UNUSED_LIGHTBULB },
- { gBattleAnimSpriteSheet_183, 0x800, ANIM_TAG_SLASH },
- { gBattleAnimSpriteSheet_184, 0x400, ANIM_TAG_FOCUS_ENERGY },
- { gBattleAnimSpriteSheet_185, 0xA00, ANIM_TAG_SPHERE_TO_CUBE },
- { gBattleAnimSpriteSheet_186, 0x1000, ANIM_TAG_TENDRILS },
- { gBattleAnimSpriteSheet_187, 0x800, ANIM_TAG_EYE },
- { gBattleAnimSpriteSheet_188, 0x400, ANIM_TAG_WHITE_SHADOW },
- { gBattleAnimSpriteSheet_189, 0x200, ANIM_TAG_TEAL_ALERT },
- { gBattleAnimSpriteSheet_190, 0x800, ANIM_TAG_OPENING_EYE },
- { gBattleAnimSpriteSheet_191, 0x800, ANIM_TAG_ROUND_WHITE_HALO },
- { gBattleAnimSpriteSheet_192, 0x800, ANIM_TAG_FANG_ATTACK },
- { gBattleAnimSpriteSheet_193, 0x200, ANIM_TAG_PURPLE_HAND_OUTLINE },
- { gBattleAnimSpriteSheet_194, 0x800, ANIM_TAG_MOON },
- { gBattleAnimSpriteSheet_195, 0x200, ANIM_TAG_SPARKLE_5 },
- { gBattleAnimSpriteSheet_196, 0x800, ANIM_TAG_SPIRAL },
- { gBattleAnimSpriteSheet_197, 0x200, ANIM_TAG_SNORE_Z },
- { gBattleAnimSpriteSheet_198, 0x800, ANIM_TAG_EXPLOSION },
- { gBattleAnimSpriteSheet_199, 0x400, ANIM_TAG_NAIL },
- { gBattleAnimSpriteSheet_200, 0x200, ANIM_TAG_GHOSTLY_SPIRIT },
- { gBattleAnimSpriteSheet_201, 0xA80, ANIM_TAG_WARM_ROCK },
- { gBattleAnimSpriteSheet_202, 0x600, ANIM_TAG_BREAKING_EGG },
- { gBattleAnimSpriteSheet_203, 0x800, ANIM_TAG_THIN_RING },
- { gBattleAnimSpriteSheet_204, 0x200, ANIM_TAG_UNUSED_PUNCH_IMPACT },
- { gBattleAnimSpriteSheet_205, 0x600, ANIM_TAG_BELL },
- { gBattleAnimSpriteSheet_206, 0x800, ANIM_TAG_MUSIC_NOTES_2 },
- { gBattleAnimSpriteSheet_207, 0x180, ANIM_TAG_SPEED_DUST },
- { gBattleAnimSpriteSheet_208, 0x800, ANIM_TAG_TORN_METAL },
- { gBattleAnimSpriteSheet_209, 0x800, ANIM_TAG_THOUGHT_BUBBLE },
- { gBattleAnimSpriteSheet_210, 0x80, ANIM_TAG_MAGENTA_HEART },
- { gBattleAnimSpriteSheet_211, 0x80, ANIM_TAG_ELECTRIC_ORBS },
- { gBattleAnimSpriteSheet_212, 0x800, ANIM_TAG_CIRCLE_OF_LIGHT },
- { gBattleAnimSpriteSheet_213, 0x800, ANIM_TAG_ELECTRICITY },
- { gBattleAnimSpriteSheet_214, 0x600, ANIM_TAG_FINGER_2 },
- { gBattleAnimSpriteSheet_215, 0x600, ANIM_TAG_MOVEMENT_WAVES },
- { gBattleAnimSpriteSheet_210, 0x80, ANIM_TAG_RED_HEART },
- { gBattleAnimSpriteSheet_217, 0x80, ANIM_TAG_RED_ORB },
- { gBattleAnimSpriteSheet_218, 0x180, ANIM_TAG_EYE_SPARKLE },
- { gBattleAnimSpriteSheet_210, 0x80, ANIM_TAG_PINK_HEART },
- { gBattleAnimSpriteSheet_220, 0x200, ANIM_TAG_ANGEL },
- { gBattleAnimSpriteSheet_221, 0x400, ANIM_TAG_DEVIL },
- { gBattleAnimSpriteSheet_222, 0xA00, ANIM_TAG_SWIPE },
- { gBattleAnimSpriteSheet_223, 0x800, ANIM_TAG_ROOTS },
- { gBattleAnimSpriteSheet_224, 0x200, ANIM_TAG_ITEM_BAG },
- { gBattleAnimSpriteSheet_225, 0x400, ANIM_TAG_JAGGED_MUSIC_NOTE },
- { gBattleAnimSpriteSheet_226, 0x80, ANIM_TAG_POKEBALL },
- { gBattleAnimSpriteSheet_227, 0x800, ANIM_TAG_SPOTLIGHT },
- { gBattleAnimSpriteSheet_228, 0x200, ANIM_TAG_LETTER_Z },
- { gBattleAnimSpriteSheet_229, 0x300, ANIM_TAG_RAPID_SPIN },
- { gBattleAnimSpriteSheet_230, 0x800, ANIM_TAG_TRI_FORCE_TRIANGLE },
- { gBattleAnimSpriteSheet_231, 0x380, ANIM_TAG_WISP_ORB },
- { gBattleAnimSpriteSheet_232, 0x800, ANIM_TAG_WISP_FIRE },
- { gBattleAnimSpriteSheet_233, 0xC0, ANIM_TAG_GOLD_STARS },
- { gBattleAnimSpriteSheet_234, 0x800, ANIM_TAG_ECLIPSING_ORB },
- { gBattleAnimSpriteSheet_235, 0x60, ANIM_TAG_GRAY_ORB },
- { gBattleAnimSpriteSheet_235, 0x60, ANIM_TAG_BLUE_ORB },
- { gBattleAnimSpriteSheet_235, 0x60, ANIM_TAG_RED_ORB_2 },
- { gBattleAnimSpriteSheet_238, 0x80, ANIM_TAG_PINK_PETAL },
- { gBattleAnimSpriteSheet_239, 0x180, ANIM_TAG_PAIN_SPLIT },
- { gBattleAnimSpriteSheet_240, 0x180, ANIM_TAG_CONFETTI },
- { gBattleAnimSpriteSheet_241, 0x200, ANIM_TAG_GREEN_STAR },
- { gBattleAnimSpriteSheet_242, 0x200, ANIM_TAG_PINK_CLOUD },
- { gBattleAnimSpriteSheet_243, 0x20, ANIM_TAG_SWEAT_DROP },
- { gBattleAnimSpriteSheet_244, 0x400, ANIM_TAG_GUARD_RING },
- { gBattleAnimSpriteSheet_245, 0x600, ANIM_TAG_PURPLE_SCRATCH },
- { gBattleAnimSpriteSheet_246, 0x1000, ANIM_TAG_PURPLE_SWIPE },
- { gBattleAnimSpriteSheet_247, 0x400, ANIM_TAG_TAG_HAND },
- { gBattleAnimSpriteSheet_248, 0x20, ANIM_TAG_SMALL_RED_EYE },
- { gBattleAnimSpriteSheet_249, 0x80, ANIM_TAG_HOLLOW_ORB },
- { gBattleAnimSpriteSheet_250, 0x800, ANIM_TAG_X_SIGN },
- { gBattleAnimSpriteSheet_251, 0x80, ANIM_TAG_BLUEGREEN_ORB },
- { gBattleAnimSpriteSheet_252, 0x200, ANIM_TAG_PAW_PRINT },
- { gBattleAnimSpriteSheet_253, 0x400, ANIM_TAG_PURPLE_FLAME },
- { gBattleAnimSpriteSheet_254, 0x200, ANIM_TAG_RED_BALL },
- { gBattleAnimSpriteSheet_255, 0x200, ANIM_TAG_SMELLINGSALT_EFFECT },
- { gBattleAnimSpriteSheet_256, 0x800, ANIM_TAG_METEOR },
- { gBattleAnimSpriteSheet_257, 0x280, ANIM_TAG_FLAT_ROCK },
- { gBattleAnimSpriteSheet_258, 0x200, ANIM_TAG_MAGNIFYING_GLASS },
- { gBattleAnimSpriteSheet_149, 0x200, ANIM_TAG_BROWN_ORB },
- { gBattleAnimSpriteSheet_260, 0x400, ANIM_TAG_METAL_SOUND_WAVES },
- { gBattleAnimSpriteSheet_261, 0x200, ANIM_TAG_FLYING_DIRT },
- { gBattleAnimSpriteSheet_262, 0x200, ANIM_TAG_ICICLE_SPEAR },
- { gBattleAnimSpriteSheet_263, 0x80, ANIM_TAG_HAIL },
- { gBattleAnimSpriteSheet_264, 0x20, ANIM_TAG_GLOWY_RED_ORB },
- { gBattleAnimSpriteSheet_264, 0x20, ANIM_TAG_GLOWY_GREEN_ORB },
- { gBattleAnimSpriteSheet_266, 0x80, ANIM_TAG_GREEN_SPIKE },
- { gBattleAnimSpriteSheet_212, 0x800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT },
- { gBattleAnimSpriteSheet_264, 0x20, ANIM_TAG_GLOWY_BLUE_ORB },
- { gBattleAnimSpriteSheet_269, 0x80, ANIM_TAG_UNUSED_RED_BRICK },
- { gBattleAnimSpriteSheet_270, 0x400, ANIM_TAG_WHITE_FEATHER },
- { gBattleAnimSpriteSheet_271, 0x80, ANIM_TAG_SPARKLE_6 },
- { gBattleAnimSpriteSheet_272, 0x800, ANIM_TAG_SPLASH },
- { gBattleAnimSpriteSheet_273, 0x20, ANIM_TAG_SWEAT_BEAD },
- { gBattleAnimSpriteSheet_274, 0x800, ANIM_TAG_UNUSED_GEM_1 },
- { gBattleAnimSpriteSheet_275, 0x800, ANIM_TAG_UNUSED_GEM_2 },
- { gBattleAnimSpriteSheet_276, 0x800, ANIM_TAG_UNUSED_GEM_3 },
- { gBattleAnimSpriteSheet_277, 0x1000, ANIM_TAG_SLAM_HIT_2 },
- { gBattleAnimSpriteSheet_278, 0x800, ANIM_TAG_RECYCLE },
- { gBattleAnimSpriteSheet_279, 0xA0, ANIM_TAG_UNUSED_RED_PARTICLES },
- { gBattleAnimSpriteSheet_280, 0x800, ANIM_TAG_PROTECT },
- { gBattleAnimSpriteSheet_281, 0x200, ANIM_TAG_DIRT_MOUND },
- { gBattleAnimSpriteSheet_282, 0x600, ANIM_TAG_SHOCK_3 },
- { gBattleAnimSpriteSheet_283, 0x200, ANIM_TAG_WEATHER_BALL },
- { gBattleAnimSpriteSheet_284, 0x800, ANIM_TAG_BIRD },
- { gBattleAnimSpriteSheet_285, 0x200, ANIM_TAG_CROSS_IMPACT },
- { gBattleAnimSpriteSheet_183, 0x800, ANIM_TAG_SLASH_2 },
- { gBattleAnimSpriteSheet_056, 0x1000, ANIM_TAG_WHIP_HIT },
- { gBattleAnimSpriteSheet_163, 0x100, ANIM_TAG_BLUE_RING_2 },
-};
-
-const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
-{
- { gBattleAnimSpritePalette_000, ANIM_TAG_BONE },
- { gBattleAnimSpritePalette_001, ANIM_TAG_SPARK },
- { gBattleAnimSpritePalette_002, ANIM_TAG_PENCIL },
- { gBattleAnimSpritePalette_003, ANIM_TAG_AIR_WAVE },
- { gBattleAnimSpritePalette_004, ANIM_TAG_UNUSED_ORB },
- { gBattleAnimSpritePalette_005, ANIM_TAG_SWORD },
- { gBattleAnimSpritePalette_006, ANIM_TAG_SEED },
- { gBattleAnimSpritePalette_007, ANIM_TAG_UNUSED_EXPLOSION },
- { gBattleAnimSpritePalette_008, ANIM_TAG_UNUSED_PINK_ORB },
- { gBattleAnimSpritePalette_009, ANIM_TAG_GUST },
- { gBattleAnimSpritePalette_010, ANIM_TAG_ICE_CUBE },
- { gBattleAnimSpritePalette_011, ANIM_TAG_SPARK_2 },
- { gBattleAnimSpritePalette_012, ANIM_TAG_UNUSED_ORANGE },
- { gBattleAnimSpritePalette_013, ANIM_TAG_YELLOW_BALL },
- { gBattleAnimSpritePalette_014, ANIM_TAG_LOCK_ON },
- { gBattleAnimSpritePalette_015, ANIM_TAG_TIED_BAG },
- { gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_SMOKE },
- { gBattleAnimSpritePalette_016, ANIM_TAG_BLACK_BALL },
- { gBattleAnimSpritePalette_018, ANIM_TAG_CONVERSION },
- { gBattleAnimSpritePalette_019, ANIM_TAG_UNUSED_GLASS },
- { gBattleAnimSpritePalette_020, ANIM_TAG_HORN_HIT },
- { gBattleAnimSpritePalette_021, ANIM_TAG_UNUSED_HIT },
- { gBattleAnimSpritePalette_022, ANIM_TAG_UNUSED_HIT_2 },
- { gBattleAnimSpritePalette_023, ANIM_TAG_UNUSED_BLUE_SHARDS },
- { gBattleAnimSpritePalette_024, ANIM_TAG_UNUSED_CLOSING_EYE },
- { gBattleAnimSpritePalette_025, ANIM_TAG_UNUSED_WAVING_HAND },
- { gBattleAnimSpritePalette_026, ANIM_TAG_UNUSED_HIT_DUPLICATE },
- { gBattleAnimSpritePalette_027, ANIM_TAG_LEER },
- { gBattleAnimSpritePalette_028, ANIM_TAG_UNUSED_BLUE_BURST },
- { gBattleAnimSpritePalette_029, ANIM_TAG_SMALL_EMBER },
- { gBattleAnimSpritePalette_030, ANIM_TAG_GRAY_SMOKE },
- { gBattleAnimSpritePalette_031, ANIM_TAG_BLUE_STAR },
- { gBattleAnimSpritePalette_032, ANIM_TAG_UNUSED_BUBBLE_BURST },
- { gBattleAnimSpritePalette_033, ANIM_TAG_FIRE },
- { gBattleAnimSpritePalette_033, ANIM_TAG_UNUSED_SPINNING_FIRE },
- { gBattleAnimSpritePalette_033, ANIM_TAG_FIRE_PLUME },
- { gBattleAnimSpritePalette_036, ANIM_TAG_UNUSED_LIGHTNING },
- { gBattleAnimSpritePalette_036, ANIM_TAG_LIGHTNING },
- { gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_CLAW_SLASH },
- { gBattleAnimSpritePalette_039, ANIM_TAG_CLAW_SLASH },
- { gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_SCRATCH },
- { gBattleAnimSpritePalette_038, ANIM_TAG_UNUSED_SCRATCH_2 },
- { gBattleAnimSpritePalette_042, ANIM_TAG_UNUSED_BUBBLE_BURST_2 },
- { gBattleAnimSpritePalette_043, ANIM_TAG_ICE_CHUNK },
- { gBattleAnimSpritePalette_044, ANIM_TAG_UNUSED_GLASS_2 },
- { gBattleAnimSpritePalette_045, ANIM_TAG_UNUSED_PINK_HEART },
- { gBattleAnimSpritePalette_046, ANIM_TAG_UNUSED_SAP_DRIP },
- { gBattleAnimSpritePalette_047, ANIM_TAG_UNUSED_SAP_DRIP },
- { gBattleAnimSpritePalette_048, ANIM_TAG_SPARKLE_1 },
- { gBattleAnimSpritePalette_049, ANIM_TAG_SPARKLE_2 },
- { gBattleAnimSpritePalette_050, ANIM_TAG_HUMANOID_FOOT },
- { gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_MONSTER_FOOT },
- { gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_HUMANOID_HAND },
- { gBattleAnimSpritePalette_026, ANIM_TAG_NOISE_LINE },
- { gBattleAnimSpritePalette_054, ANIM_TAG_UNUSED_YELLOW_UNK },
- { gBattleAnimSpritePalette_050, ANIM_TAG_UNUSED_RED_FIST },
- { gBattleAnimSpritePalette_056, ANIM_TAG_SLAM_HIT },
- { gBattleAnimSpritePalette_057, ANIM_TAG_UNUSED_RING },
- { gBattleAnimSpritePalette_058, ANIM_TAG_ROCKS },
- { gBattleAnimSpritePalette_059, ANIM_TAG_UNUSED_Z },
- { gBattleAnimSpritePalette_060, ANIM_TAG_UNUSED_YELLOW_UNK_2 },
- { gBattleAnimSpritePalette_061, ANIM_TAG_UNUSED_AIR_SLASH },
- { gBattleAnimSpritePalette_062, ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS },
- { gBattleAnimSpritePalette_063, ANIM_TAG_LEAF },
- { gBattleAnimSpritePalette_064, ANIM_TAG_FINGER },
- { gBattleAnimSpritePalette_065, ANIM_TAG_POISON_POWDER },
- { gBattleAnimSpritePalette_066, ANIM_TAG_UNUSED_BROWN_TRIANGLE },
- { gBattleAnimSpritePalette_067, ANIM_TAG_SLEEP_POWDER },
- { gBattleAnimSpritePalette_068, ANIM_TAG_STUN_SPORE },
- { gBattleAnimSpritePalette_065, ANIM_TAG_UNUSED_POWDER },
- { gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_3 },
- { gBattleAnimSpritePalette_070, ANIM_TAG_SPARKLE_4 },
- { gBattleAnimSpritePalette_072, ANIM_TAG_MUSIC_NOTES },
- { gBattleAnimSpritePalette_073, ANIM_TAG_DUCK },
- { gBattleAnimSpritePalette_074, ANIM_TAG_MUD_SAND },
- { gBattleAnimSpritePalette_075, ANIM_TAG_ALERT },
- { gBattleAnimSpritePalette_076, ANIM_TAG_UNUSED_BLUE_FLAMES },
- { gBattleAnimSpritePalette_076, ANIM_TAG_UNUSED_BLUE_FLAMES_2 },
- { gBattleAnimSpritePalette_078, ANIM_TAG_UNUSED_SHOCK },
- { gBattleAnimSpritePalette_078, ANIM_TAG_SHOCK },
- { gBattleAnimSpritePalette_080, ANIM_TAG_UNUSED_BELL },
- { gBattleAnimSpritePalette_081, ANIM_TAG_UNUSED_PINK_GLOVE },
- { gBattleAnimSpritePalette_082, ANIM_TAG_UNUSED_BLUE_LINES },
- { gBattleAnimSpritePalette_083, ANIM_TAG_UNUSED_IMPACT },
- { gBattleAnimSpritePalette_084, ANIM_TAG_UNUSED_IMPACT_2 },
- { gBattleAnimSpritePalette_085, ANIM_TAG_UNUSED_RETICLE },
- { gBattleAnimSpritePalette_086, ANIM_TAG_BREATH },
- { gBattleAnimSpritePalette_087, ANIM_TAG_ANGER },
- { gBattleAnimSpritePalette_088, ANIM_TAG_UNUSED_SNOWBALL },
- { gBattleAnimSpritePalette_089, ANIM_TAG_UNUSED_VINE },
- { gBattleAnimSpritePalette_090, ANIM_TAG_UNUSED_SWORD },
- { gBattleAnimSpritePalette_091, ANIM_TAG_UNUSED_CLAPPING },
- { gBattleAnimSpritePalette_092, ANIM_TAG_UNUSED_RED_TUBE },
- { gBattleAnimSpritePalette_093, ANIM_TAG_AMNESIA },
- { gBattleAnimSpritePalette_094, ANIM_TAG_UNUSED_STRING },
- { gBattleAnimSpritePalette_095, ANIM_TAG_UNUSED_PENCIL },
- { gBattleAnimSpritePalette_096, ANIM_TAG_UNUSED_PETAL },
- { gBattleAnimSpritePalette_097, ANIM_TAG_BENT_SPOON },
- { gBattleAnimSpritePalette_094, ANIM_TAG_UNUSED_WEB },
- { gBattleAnimSpritePalette_099, ANIM_TAG_MILK_BOTTLE },
- { gBattleAnimSpritePalette_100, ANIM_TAG_COIN },
- { gBattleAnimSpritePalette_101, ANIM_TAG_UNUSED_CRACKED_EGG },
- { gBattleAnimSpritePalette_101, ANIM_TAG_UNUSED_HATCHED_EGG },
- { gBattleAnimSpritePalette_103, ANIM_TAG_UNUSED_FRESH_EGG },
- { gBattleAnimSpritePalette_104, ANIM_TAG_UNUSED_FANGS },
- { gBattleAnimSpritePalette_105, ANIM_TAG_UNUSED_EXPLOSION_2 },
- { gBattleAnimSpritePalette_105, ANIM_TAG_UNUSED_EXPLOSION_3 },
- { gBattleAnimSpritePalette_107, ANIM_TAG_UNUSED_WATER_DROPLET },
- { gBattleAnimSpritePalette_107, ANIM_TAG_UNUSED_WATER_DROPLET_2 },
- { gBattleAnimSpritePalette_109, ANIM_TAG_UNUSED_SEED },
- { gBattleAnimSpritePalette_109, ANIM_TAG_UNUSED_SPROUT },
- { gBattleAnimSpritePalette_111, ANIM_TAG_UNUSED_RED_WAND },
- { gBattleAnimSpritePalette_112, ANIM_TAG_UNUSED_PURPLE_GREEN_UNK },
- { gBattleAnimSpritePalette_113, ANIM_TAG_UNUSED_WATER_COLUMN },
- { gBattleAnimSpritePalette_114, ANIM_TAG_UNUSED_MUD_UNK },
- { gBattleAnimSpritePalette_115, ANIM_TAG_RAIN_DROPS },
- { gBattleAnimSpritePalette_116, ANIM_TAG_UNUSED_FURY_SWIPES },
- { gBattleAnimSpritePalette_117, ANIM_TAG_UNUSED_VINE_2 },
- { gBattleAnimSpritePalette_118, ANIM_TAG_UNUSED_TEETH },
- { gBattleAnimSpritePalette_119, ANIM_TAG_UNUSED_BONE },
- { gBattleAnimSpritePalette_120, ANIM_TAG_UNUSED_WHITE_BAG },
- { gBattleAnimSpritePalette_121, ANIM_TAG_UNUSED_UNKNOWN },
- { gBattleAnimSpritePalette_122, ANIM_TAG_UNUSED_PURPLE_CORAL },
- { gBattleAnimSpritePalette_122, ANIM_TAG_UNUSED_PURPLE_DROPLET },
- { gBattleAnimSpritePalette_124, ANIM_TAG_UNUSED_SHOCK_2 },
- { gBattleAnimSpritePalette_125, ANIM_TAG_UNUSED_CLOSING_EYE_2 },
- { gBattleAnimSpritePalette_126, ANIM_TAG_UNUSED_METAL_BALL },
- { gBattleAnimSpritePalette_127, ANIM_TAG_UNUSED_MONSTER_DOLL },
- { gBattleAnimSpritePalette_128, ANIM_TAG_UNUSED_WHIRLWIND },
- { gBattleAnimSpritePalette_128, ANIM_TAG_UNUSED_WHIRLWIND_2 },
- { gBattleAnimSpritePalette_130, ANIM_TAG_UNUSED_EXPLOSION_4 },
- { gBattleAnimSpritePalette_130, ANIM_TAG_UNUSED_EXPLOSION_5 },
- { gBattleAnimSpritePalette_132, ANIM_TAG_UNUSED_TONGUE },
- { gBattleAnimSpritePalette_133, ANIM_TAG_UNUSED_SMOKE },
- { gBattleAnimSpritePalette_133, ANIM_TAG_UNUSED_SMOKE_2 },
- { gBattleAnimSpritePalette_135, ANIM_TAG_IMPACT },
- { gBattleAnimSpritePalette_136, ANIM_TAG_CIRCLE_IMPACT },
- { gBattleAnimSpritePalette_135, ANIM_TAG_SCRATCH },
- { gBattleAnimSpritePalette_135, ANIM_TAG_CUT },
- { gBattleAnimSpritePalette_139, ANIM_TAG_SHARP_TEETH },
- { gBattleAnimSpritePalette_140, ANIM_TAG_RAINBOW_RINGS },
- { gBattleAnimSpritePalette_141, ANIM_TAG_ICE_CRYSTALS },
- { gBattleAnimSpritePalette_141, ANIM_TAG_ICE_SPIKES },
- { gBattleAnimSpritePalette_143, ANIM_TAG_HANDS_AND_FEET },
- { gBattleAnimSpritePalette_144, ANIM_TAG_MIST_CLOUD },
- { gBattleAnimSpritePalette_139, ANIM_TAG_CLAMP },
- { gBattleAnimSpritePalette_115, ANIM_TAG_BUBBLE },
- { gBattleAnimSpritePalette_147, ANIM_TAG_ORBS },
- { gBattleAnimSpritePalette_148, ANIM_TAG_WATER_IMPACT },
- { gBattleAnimSpritePalette_148, ANIM_TAG_WATER_ORB },
- { gBattleAnimSpritePalette_150, ANIM_TAG_POISON_BUBBLE },
- { gBattleAnimSpritePalette_150, ANIM_TAG_TOXIC_BUBBLE },
- { gBattleAnimSpritePalette_152, ANIM_TAG_SPIKES },
- { gBattleAnimSpritePalette_153, ANIM_TAG_HORN_HIT_2 },
- { gBattleAnimSpritePalette_154, ANIM_TAG_AIR_WAVE_2 },
- { gBattleAnimSpritePalette_155, ANIM_TAG_SMALL_BUBBLES },
- { gBattleAnimSpritePalette_156, ANIM_TAG_ROUND_SHADOW },
- { gBattleAnimSpritePalette_157, ANIM_TAG_SUNLIGHT },
- { gBattleAnimSpritePalette_158, ANIM_TAG_SPORE },
- { gBattleAnimSpritePalette_159, ANIM_TAG_FLOWER },
- { gBattleAnimSpritePalette_160, ANIM_TAG_RAZOR_LEAF },
- { gBattleAnimSpritePalette_161, ANIM_TAG_NEEDLE },
- { gBattleAnimSpritePalette_162, ANIM_TAG_WHIRLWIND_LINES },
- { gBattleAnimSpritePalette_163, ANIM_TAG_GOLD_RING },
- { gBattleAnimSpritePalette_164, ANIM_TAG_PURPLE_RING },
- { gBattleAnimSpritePalette_165, ANIM_TAG_BLUE_RING },
- { gBattleAnimSpritePalette_166, ANIM_TAG_GREEN_LIGHT_WALL },
- { gBattleAnimSpritePalette_167, ANIM_TAG_BLUE_LIGHT_WALL },
- { gBattleAnimSpritePalette_168, ANIM_TAG_RED_LIGHT_WALL },
- { gBattleAnimSpritePalette_169, ANIM_TAG_GRAY_LIGHT_WALL },
- { gBattleAnimSpritePalette_170, ANIM_TAG_ORANGE_LIGHT_WALL },
- { gBattleAnimSpritePalette_171, ANIM_TAG_BLACK_BALL_2 },
- { gBattleAnimSpritePalette_172, ANIM_TAG_PURPLE_GAS_CLOUD },
- { gBattleAnimSpritePalette_001, ANIM_TAG_SPARK_H },
- { gBattleAnimSpritePalette_174, ANIM_TAG_YELLOW_STAR },
- { gBattleAnimSpritePalette_175, ANIM_TAG_LARGE_FRESH_EGG },
- { gBattleAnimSpritePalette_176, ANIM_TAG_SHADOW_BALL },
- { gBattleAnimSpritePalette_177, ANIM_TAG_LICK },
- { gBattleAnimSpritePalette_178, ANIM_TAG_UNUSED_VOID_LINES },
- { gBattleAnimSpritePalette_179, ANIM_TAG_STRING },
- { gBattleAnimSpritePalette_179, ANIM_TAG_STRING_DOT },
- { gBattleAnimSpritePalette_179, ANIM_TAG_WEB },
- { gBattleAnimSpritePalette_182, ANIM_TAG_UNUSED_LIGHTBULB },
- { gBattleAnimSpritePalette_183, ANIM_TAG_SLASH },
- { gBattleAnimSpritePalette_184, ANIM_TAG_FOCUS_ENERGY },
- { gBattleAnimSpritePalette_185, ANIM_TAG_SPHERE_TO_CUBE },
- { gBattleAnimSpritePalette_186, ANIM_TAG_TENDRILS },
- { gBattleAnimSpritePalette_187, ANIM_TAG_EYE },
- { gBattleAnimSpritePalette_188, ANIM_TAG_WHITE_SHADOW },
- { gBattleAnimSpritePalette_189, ANIM_TAG_TEAL_ALERT },
- { gBattleAnimSpritePalette_190, ANIM_TAG_OPENING_EYE },
- { gBattleAnimSpritePalette_191, ANIM_TAG_ROUND_WHITE_HALO },
- { gBattleAnimSpritePalette_192, ANIM_TAG_FANG_ATTACK },
- { gBattleAnimSpritePalette_193, ANIM_TAG_PURPLE_HAND_OUTLINE },
- { gBattleAnimSpritePalette_194, ANIM_TAG_MOON },
- { gBattleAnimSpritePalette_195, ANIM_TAG_SPARKLE_5 },
- { gBattleAnimSpritePalette_196, ANIM_TAG_SPIRAL },
- { gBattleAnimSpritePalette_197, ANIM_TAG_SNORE_Z },
- { gBattleAnimSpritePalette_198, ANIM_TAG_EXPLOSION },
- { gBattleAnimSpritePalette_199, ANIM_TAG_NAIL },
- { gBattleAnimSpritePalette_200, ANIM_TAG_GHOSTLY_SPIRIT },
- { gBattleAnimSpritePalette_201, ANIM_TAG_WARM_ROCK },
- { gBattleAnimSpritePalette_202, ANIM_TAG_BREAKING_EGG },
- { gBattleAnimSpritePalette_203, ANIM_TAG_THIN_RING },
- { gBattleAnimSpritePalette_204, ANIM_TAG_UNUSED_PUNCH_IMPACT },
- { gBattleAnimSpritePalette_205, ANIM_TAG_BELL },
- { gBattleAnimSpritePalette_206, ANIM_TAG_MUSIC_NOTES_2 },
- { gBattleAnimSpritePalette_207, ANIM_TAG_SPEED_DUST },
- { gBattleAnimSpritePalette_167, ANIM_TAG_TORN_METAL },
- { gBattleAnimSpritePalette_209, ANIM_TAG_THOUGHT_BUBBLE },
- { gBattleAnimSpritePalette_210, ANIM_TAG_MAGENTA_HEART },
- { gBattleAnimSpritePalette_211, ANIM_TAG_ELECTRIC_ORBS },
- { gBattleAnimSpritePalette_211, ANIM_TAG_CIRCLE_OF_LIGHT },
- { gBattleAnimSpritePalette_211, ANIM_TAG_ELECTRICITY },
- { gBattleAnimSpritePalette_064, ANIM_TAG_FINGER_2 },
- { gBattleAnimSpritePalette_215, ANIM_TAG_MOVEMENT_WAVES },
- { gBattleAnimSpritePalette_216, ANIM_TAG_RED_HEART },
- { gBattleAnimSpritePalette_217, ANIM_TAG_RED_ORB },
- { gBattleAnimSpritePalette_218, ANIM_TAG_EYE_SPARKLE },
- { gBattleAnimSpritePalette_219, ANIM_TAG_PINK_HEART },
- { gBattleAnimSpritePalette_220, ANIM_TAG_ANGEL },
- { gBattleAnimSpritePalette_221, ANIM_TAG_DEVIL },
- { gBattleAnimSpritePalette_222, ANIM_TAG_SWIPE },
- { gBattleAnimSpritePalette_223, ANIM_TAG_ROOTS },
- { gBattleAnimSpritePalette_224, ANIM_TAG_ITEM_BAG },
- { gBattleAnimSpritePalette_225, ANIM_TAG_JAGGED_MUSIC_NOTE },
- { gBattleAnimSpritePalette_226, ANIM_TAG_POKEBALL },
- { gBattleAnimSpritePalette_226, ANIM_TAG_SPOTLIGHT },
- { gBattleAnimSpritePalette_228, ANIM_TAG_LETTER_Z },
- { gBattleAnimSpritePalette_229, ANIM_TAG_RAPID_SPIN },
- { gBattleAnimSpritePalette_230, ANIM_TAG_TRI_FORCE_TRIANGLE },
- { gBattleAnimSpritePalette_231, ANIM_TAG_WISP_ORB },
- { gBattleAnimSpritePalette_231, ANIM_TAG_WISP_FIRE },
- { gBattleAnimSpritePalette_233, ANIM_TAG_GOLD_STARS },
- { gBattleAnimSpritePalette_234, ANIM_TAG_ECLIPSING_ORB },
- { gBattleAnimSpritePalette_235, ANIM_TAG_GRAY_ORB },
- { gBattleAnimSpritePalette_236, ANIM_TAG_BLUE_ORB },
- { gBattleAnimSpritePalette_237, ANIM_TAG_RED_ORB_2 },
- { gBattleAnimSpritePalette_238, ANIM_TAG_PINK_PETAL },
- { gBattleAnimSpritePalette_239, ANIM_TAG_PAIN_SPLIT },
- { gBattleAnimSpritePalette_240, ANIM_TAG_CONFETTI },
- { gBattleAnimSpritePalette_241, ANIM_TAG_GREEN_STAR },
- { gBattleAnimSpritePalette_242, ANIM_TAG_PINK_CLOUD },
- { gBattleAnimSpritePalette_243, ANIM_TAG_SWEAT_DROP },
- { gBattleAnimSpritePalette_244, ANIM_TAG_GUARD_RING },
- { gBattleAnimSpritePalette_245, ANIM_TAG_PURPLE_SCRATCH },
- { gBattleAnimSpritePalette_245, ANIM_TAG_PURPLE_SWIPE },
- { gBattleAnimSpritePalette_064, ANIM_TAG_TAG_HAND },
- { gBattleAnimSpritePalette_248, ANIM_TAG_SMALL_RED_EYE },
- { gBattleAnimSpritePalette_249, ANIM_TAG_HOLLOW_ORB },
- { gBattleAnimSpritePalette_249, ANIM_TAG_X_SIGN },
- { gBattleAnimSpritePalette_251, ANIM_TAG_BLUEGREEN_ORB },
- { gBattleAnimSpritePalette_252, ANIM_TAG_PAW_PRINT },
- { gBattleAnimSpritePalette_253, ANIM_TAG_PURPLE_FLAME },
- { gBattleAnimSpritePalette_254, ANIM_TAG_RED_BALL },
- { gBattleAnimSpritePalette_255, ANIM_TAG_SMELLINGSALT_EFFECT },
- { gBattleAnimSpritePalette_256, ANIM_TAG_METEOR },
- { gBattleAnimSpritePalette_257, ANIM_TAG_FLAT_ROCK },
- { gBattleAnimSpritePalette_258, ANIM_TAG_MAGNIFYING_GLASS },
- { gBattleAnimSpritePalette_259, ANIM_TAG_BROWN_ORB },
- { gBattleAnimSpritePalette_260, ANIM_TAG_METAL_SOUND_WAVES },
- { gBattleAnimSpritePalette_261, ANIM_TAG_FLYING_DIRT },
- { gBattleAnimSpritePalette_262, ANIM_TAG_ICICLE_SPEAR },
- { gBattleAnimSpritePalette_263, ANIM_TAG_HAIL },
- { gBattleAnimSpritePalette_264, ANIM_TAG_GLOWY_RED_ORB },
- { gBattleAnimSpritePalette_265, ANIM_TAG_GLOWY_GREEN_ORB },
- { gBattleAnimSpritePalette_266, ANIM_TAG_GREEN_SPIKE },
- { gBattleAnimSpritePalette_267, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT },
- { gBattleAnimSpritePalette_268, ANIM_TAG_GLOWY_BLUE_ORB },
- { gBattleAnimSpritePalette_269, ANIM_TAG_UNUSED_RED_BRICK },
- { gBattleAnimSpritePalette_270, ANIM_TAG_WHITE_FEATHER },
- { gBattleAnimSpritePalette_271, ANIM_TAG_SPARKLE_6 },
- { gBattleAnimSpritePalette_272, ANIM_TAG_SPLASH },
- { gBattleAnimSpritePalette_272, ANIM_TAG_SWEAT_BEAD },
- { gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_1 },
- { gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_2 },
- { gBattleAnimSpritePalette_274, ANIM_TAG_UNUSED_GEM_3 },
- { gBattleAnimSpritePalette_277, ANIM_TAG_SLAM_HIT_2 },
- { gBattleAnimSpritePalette_278, ANIM_TAG_RECYCLE },
- { gBattleAnimSpritePalette_279, ANIM_TAG_UNUSED_RED_PARTICLES },
- { gBattleAnimSpritePalette_280, ANIM_TAG_PROTECT },
- { gBattleAnimSpritePalette_281, ANIM_TAG_DIRT_MOUND },
- { gBattleAnimSpritePalette_282, ANIM_TAG_SHOCK_3 },
- { gBattleAnimSpritePalette_283, ANIM_TAG_WEATHER_BALL },
- { gBattleAnimSpritePalette_284, ANIM_TAG_BIRD },
- { gBattleAnimSpritePalette_285, ANIM_TAG_CROSS_IMPACT },
- { gBattleAnimSpritePalette_286, ANIM_TAG_SLASH_2 },
- { gBattleAnimSpritePalette_287, ANIM_TAG_WHIP_HIT },
- { gBattleAnimSpritePalette_288, ANIM_TAG_BLUE_RING_2 },
-};
-
-const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
-{
- &gBattleAnimBackgroundImage_00, &gBattleAnimBackgroundPalette_00, &gBattleAnimBackgroundTilemap_00,
- &gBattleAnimBackgroundImage_00, &gBattleAnimBackgroundPalette_00, &gBattleAnimBackgroundTilemap_00,
- &gBattleAnimBackgroundImage_02, &gBattleAnimBackgroundPalette_02, &gBattleAnimBackgroundTilemap_02,
- &gBattleAnimBackgroundImage_03, &gBattleAnimBackgroundPalette_03, &gBattleAnimBackgroundTilemap_03,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_04,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_05,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_06,
- &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_07, &gBattleAnimBackgroundTilemap_07,
- &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_07, &gBattleAnimBackgroundTilemap_08,
- &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_09, &gBattleAnimBackgroundTilemap_09,
- &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_09, &gBattleAnimBackgroundTilemap_10,
- &gBattleAnimBackgroundImage_11, &gBattleAnimBackgroundPalette_11, &gBattleAnimBackgroundTilemap_11,
- &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_12,
- &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_13,
- &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_14,
- &gBattleAnimBackgroundImage_15, &gBattleAnimBackgroundPalette_15, &gBattleAnimBackgroundTilemap_15,
- &gBattleAnimBackgroundImage_16, &gBattleAnimBackgroundPalette_16, &gBattleAnimBackgroundTilemap_16,
- &gBattleAnimBackgroundImage_17, &gBattleAnimBackgroundPalette_17, &gBattleAnimBackgroundTilemap_17,
- &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_18, &gBattleAnimBackgroundTilemap_07,
- &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_18, &gBattleAnimBackgroundTilemap_08,
- &gBattleAnimBackgroundImage_20, &gBattleAnimBackgroundPalette_20, &gBattleAnimBackgroundTilemap_20,
- &gBattleAnimBackgroundImage_21, &gBattleAnimBackgroundPalette_21, &gBattleAnimBackgroundTilemap_21,
- &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_22, &gBattleAnimBackgroundTilemap_09,
- &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_22, &gBattleAnimBackgroundTilemap_10,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_04,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_05,
- &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_06,
-};
-
-extern u16 gBattlerPartyIndexes[4];
-extern u8 gBankSpriteIds[];
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
-
-// sBattleAnimScriptPtr is a pointer to the next set of battle script commands.
-EWRAM_DATA const u8 *sBattleAnimScriptPtr = NULL;
-EWRAM_DATA const u8 *gBattleAnimScriptRetAddr = NULL;
-EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL;
-EWRAM_DATA s8 gAnimFramesToWait = 0;
-EWRAM_DATA u8 gAnimScriptActive = FALSE;
-EWRAM_DATA u8 gAnimVisualTaskCount = 0;
-EWRAM_DATA u8 gAnimSoundTaskCount = 0;
-EWRAM_DATA struct DisableStruct *gAnimDisableStructPtr = NULL;
-EWRAM_DATA s32 gAnimMoveDmg = 0;
-EWRAM_DATA u16 gAnimMovePower = 0;
-EWRAM_DATA u8 gAnimFriendship = 0;
-EWRAM_DATA u16 gWeatherMoveAnim = 0;
-EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
-EWRAM_DATA u8 gAnimMoveTurn = 0;
-EWRAM_DATA u8 sAnimBackgroundFadeState = 0;
-EWRAM_DATA u16 sAnimMoveIndex = 0; // set but unused.
-EWRAM_DATA u8 gBattleAnimAttacker = 0;
-EWRAM_DATA u8 gBattleAnimTarget = 0;
-EWRAM_DATA u16 gAnimSpeciesByBanks[4] = {0};
-EWRAM_DATA u8 gUnknown_0202F7D2 = 0; // some global pan variable
-
-u16 gSoundAnimFramesToWait;
-s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
-u16 gAnimSpriteIndexArray[ANIM_SPRITE_INDEX_COUNT];
-
-extern struct MusicPlayerInfo gMPlay_BGM;
-extern struct MusicPlayerInfo gMPlay_SE1;
-extern struct MusicPlayerInfo gMPlay_SE2;
-
-extern const u16 gSingingMoves[];
-extern const u8 *const gBattleAnims_Moves[];
-
-static void RunAnimScriptCommand(void);
-static void ScriptCmd_loadspritegfx(void);
-static void ScriptCmd_unloadspritegfx(void);
-static void ScriptCmd_createsprite(void);
-static void ScriptCmd_createvisualtask(void);
-static void ScriptCmd_delay(void);
-static void ScriptCmd_waitforvisualfinish(void);
-static void ScriptCmd_hang1(void);
-static void ScriptCmd_hang2(void);
-static void ScriptCmd_end(void);
-static void ScriptCmd_playse(void);
-static void ScriptCmd_monbg(void);
-static void sub_8076380(void);
-static void task_pA_ma0A_obj_to_bg_pal(u8);
-static void ScriptCmd_clearmonbg(void);
-static void sub_807672C(u8);
-static void ScriptCmd_monbg_22(void);
-static void ScriptCmd_clearmonbg_23(void);
-static void sub_80769A4(u8);
-static void ScriptCmd_setalpha(void);
-static void ScriptCmd_setbldcnt(void);
-static void ScriptCmd_blendoff(void);
-static void ScriptCmd_call(void);
-static void ScriptCmd_return(void);
-static void ScriptCmd_setarg(void);
-static void ScriptCmd_choosetwoturnanim(void);
-static void ScriptCmd_jumpifmoveturn(void);
-static void ScriptCmd_jump(void);
-static void ScriptCmd_fadetobg(void);
-static void ScriptCmd_fadetobgfromset(void);
-static void Task_FadeToBg(u8);
-static void LoadMoveBg(u16);
-static void LoadDefaultBg(void);
-static void ScriptCmd_restorebg(void);
-static void ScriptCmd_waitbgfadeout(void);
-static void ScriptCmd_waitbgfadein(void);
-static void ScriptCmd_changebg(void);
-static void ScriptCmd_playsewithpan(void);
-static void ScriptCmd_setpan(void);
-static void ScriptCmd_panse_1B(void);
-static void Task_PanFromInitialToTarget(u8);
-static void ScriptCmd_panse_26(void);
-static void ScriptCmd_panse_27(void);
-static void ScriptCmd_loopsewithpan(void);
-static void Task_LoopAndPlaySE(u8);
-static void ScriptCmd_waitplaysewithpan(void);
-static void Task_WaitAndPlaySE(u8);
-static void ScriptCmd_createsoundtask(void);
-static void ScriptCmd_waitsound(void);
-static void ScriptCmd_jumpargeq(void);
-static void ScriptCmd_jumpifcontest(void);
-static void ScriptCmd_monbgprio_28(void);
-static void ScriptCmd_monbgprio_29(void);
-static void ScriptCmd_monbgprio_2A(void);
-static void ScriptCmd_invisible(void);
-static void ScriptCmd_visible(void);
-static void ScriptCmd_doublebattle_2D(void);
-static void ScriptCmd_doublebattle_2E(void);
-static void ScriptCmd_stopsound(void);
-
-static void (*const sScriptCmdTable[])(void) = {
- ScriptCmd_loadspritegfx,
- ScriptCmd_unloadspritegfx,
- ScriptCmd_createsprite,
- ScriptCmd_createvisualtask,
- ScriptCmd_delay,
- ScriptCmd_waitforvisualfinish,
- ScriptCmd_hang1,
- ScriptCmd_hang2,
- ScriptCmd_end,
- ScriptCmd_playse,
- ScriptCmd_monbg,
- ScriptCmd_clearmonbg,
- ScriptCmd_setalpha,
- ScriptCmd_blendoff,
- ScriptCmd_call,
- ScriptCmd_return,
- ScriptCmd_setarg,
- ScriptCmd_choosetwoturnanim,
- ScriptCmd_jumpifmoveturn,
- ScriptCmd_jump,
- ScriptCmd_fadetobg,
- ScriptCmd_restorebg,
- ScriptCmd_waitbgfadeout,
- ScriptCmd_waitbgfadein,
- ScriptCmd_changebg,
- ScriptCmd_playsewithpan,
- ScriptCmd_setpan,
- ScriptCmd_panse_1B,
- ScriptCmd_loopsewithpan,
- ScriptCmd_waitplaysewithpan,
- ScriptCmd_setbldcnt,
- ScriptCmd_createsoundtask,
- ScriptCmd_waitsound,
- ScriptCmd_jumpargeq,
- ScriptCmd_monbg_22,
- ScriptCmd_clearmonbg_23,
- ScriptCmd_jumpifcontest,
- ScriptCmd_fadetobgfromset,
- ScriptCmd_panse_26,
- ScriptCmd_panse_27,
- ScriptCmd_monbgprio_28,
- ScriptCmd_monbgprio_29,
- ScriptCmd_monbgprio_2A,
- ScriptCmd_invisible,
- ScriptCmd_visible,
- ScriptCmd_doublebattle_2D,
- ScriptCmd_doublebattle_2E,
- ScriptCmd_stopsound,
-};
-
-void ClearBattleAnimationVars(void)
-{
- s32 i;
-
- gAnimFramesToWait = 0;
- gAnimScriptActive = FALSE;
- gAnimVisualTaskCount = 0;
- gAnimSoundTaskCount = 0;
- gAnimDisableStructPtr = NULL;
- gAnimMoveDmg = 0;
- gAnimMovePower = 0;
- gAnimFriendship = 0;
-
- // clear index array.
- for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
- gAnimSpriteIndexArray[i] |= 0xFFFF;
-
- // clear anim args.
- for (i = 0; i < ANIM_ARGS_COUNT; i++)
- gBattleAnimArgs[i] = 0;
-
- gMonAnimTaskIdArray[0] = 0xFF;
- gMonAnimTaskIdArray[1] = 0xFF;
- gAnimMoveTurn = 0;
- sAnimBackgroundFadeState = 0;
- sAnimMoveIndex = 0;
- gBattleAnimAttacker = 0;
- gBattleAnimTarget = 0;
- gUnknown_0202F7D2 = 0;
-}
-
-void DoMoveAnim(u16 move)
-{
- gBattleAnimAttacker = gBankAttacker;
- gBattleAnimTarget = gBankTarget;
- LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE);
-}
-
-void LaunchBattleAnimation(const u8 *const moveAnims[], u16 move, u8 isMoveAnim)
-{
- s32 i;
-
- if (!IsContest())
- {
- UpdateBattlerSpritePriorities();
- UpdateOamPriorityInAllHealthboxes(0);
- for (i = 0; i < 4; i++)
- {
- if (GetBattlerSide(i) != 0)
- gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
- else
- gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
- }
- }
- else
- {
- for (i = 0; i < 4; i++)
- gAnimSpeciesByBanks[i] = EWRAM_19348[0];
- }
-
- if (isMoveAnim == 0)
- sAnimMoveIndex = 0;
- else
- sAnimMoveIndex = move;
-
- for (i = 0; i < ANIM_ARGS_COUNT; i++)
- gBattleAnimArgs[i] = 0;
-
- gMonAnimTaskIdArray[0] = 0xFF;
- gMonAnimTaskIdArray[1] = 0xFF;
- sBattleAnimScriptPtr = moveAnims[move];
- gAnimScriptActive = TRUE;
- gAnimFramesToWait = 0;
- gAnimScriptCallback = RunAnimScriptCommand;
-
- for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
- gAnimSpriteIndexArray[i] |= 0xFFFF;
-
- if (isMoveAnim)
- {
- for (i = 0; gSingingMoves[i] != 0xFFFF; i++)
- {
- if (move == gSingingMoves[i])
- {
- // Lower the volume for the short song that gets played.
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128);
- break;
- }
- }
- }
-
- gBattle_WIN0H = 0;
- gBattle_WIN0V = 0;
- gBattle_WIN1H = 0;
- gBattle_WIN1V = 0;
-}
-
-void DestroyAnimSprite(struct Sprite *sprite)
-{
- FreeSpriteOamMatrix(sprite);
- DestroySprite(sprite);
- gAnimVisualTaskCount--;
-}
-
-void DestroyAnimVisualTask(u8 taskId)
-{
- DestroyTask(taskId);
- gAnimVisualTaskCount--;
-}
-
-void DestroyAnimSoundTask(u8 taskId)
-{
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
-}
-
-static void AddSpriteIndex(u16 index)
-{
- s32 i;
-
- for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
- {
- if (gAnimSpriteIndexArray[i] == 0xFFFF)
- {
- gAnimSpriteIndexArray[i] = index;
- return;
- }
- }
-}
-
-static void ClearSpriteIndex(u16 index)
-{
- s32 i;
-
- for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
- {
- if (gAnimSpriteIndexArray[i] == index)
- {
- gAnimSpriteIndexArray[i] |= 0xFFFF;
- return;
- }
- }
-}
-
-static void WaitAnimFrameCount(void)
-{
- if (gAnimFramesToWait <= 0)
- {
- gAnimScriptCallback = RunAnimScriptCommand;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait--;
- }
-}
-
-static void RunAnimScriptCommand(void)
-{
- do
- {
- sScriptCmdTable[T1_READ_8(sBattleAnimScriptPtr)]();
- } while (gAnimFramesToWait == 0 && gAnimScriptActive);
-}
-
-// Loads sprite graphics used in a move into memory.
-// arg 0: gfx ANIM_TAG
-static void ScriptCmd_loadspritegfx(void)
-{
- u16 tag;
-
- sBattleAnimScriptPtr++;
- tag = T1_READ_16(sBattleAnimScriptPtr);
- LoadCompressedObjectPic(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(tag)]);
- LoadCompressedObjectPalette(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(tag)]);
- sBattleAnimScriptPtr += 2;
- AddSpriteIndex(GET_TRUE_SPRITE_INDEX(tag));
- gAnimFramesToWait = 1;
- gAnimScriptCallback = WaitAnimFrameCount;
-}
-
-// Frees sprite graphics from memory when move animation no longer needs them.
-// arg0: gfx ANIM_TAG
-static void ScriptCmd_unloadspritegfx(void)
-{
- u16 tag;
-
- sBattleAnimScriptPtr++;
- tag = T1_READ_16(sBattleAnimScriptPtr);
- FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(tag)].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(tag)].tag);
- sBattleAnimScriptPtr += 2;
- ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(tag));
-}
-
-// Creates a sprite from the given sprite template.
-// arg0: SpriteTemplate
-// arg1: s16[] gBattleAnimArgs
-static void ScriptCmd_createsprite(void)
-{
- s32 i;
- const struct SpriteTemplate *template;
- u8 argVar;
- u8 argsCount;
- s16 subpriority;
-
- sBattleAnimScriptPtr++;
- template = (const struct SpriteTemplate *)(T2_READ_32(sBattleAnimScriptPtr));
- sBattleAnimScriptPtr += 4;
-
- argVar = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
-
- argsCount = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
- for (i = 0; i < argsCount; i++)
- {
- gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr += 2;
- }
-
- if (argVar & 0x80)
- {
- argVar ^= 0x80;
- if (argVar >= 0x40)
- argVar -= 0x40;
- else
- argVar *= -1;
-
- subpriority = GetBattlerSubpriority(gBattleAnimTarget) + (s8)(argVar);
- }
- else
- {
- if (argVar >= 0x40)
- argVar -= 0x40;
- else
- argVar *= -1;
-
- subpriority = GetBattlerSubpriority(gBattleAnimAttacker) + (s8)(argVar);
- }
-
- if (subpriority < 3)
- subpriority = 3;
-
- CreateSpriteAndAnimate(template, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), subpriority);
- gAnimVisualTaskCount++;
-}
-
-// Initializes an animation task.
-// arg0: AnimTask function
-// arg1: s16[] arguments
-static void ScriptCmd_createvisualtask(void)
-{
- TaskFunc taskFunc;
- u8 taskPriority;
- u8 taskId;
- u8 numArgs;
- s32 i;
-
- sBattleAnimScriptPtr++;
-
- taskFunc = (TaskFunc)T2_READ_32(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr += 4;
-
- taskPriority = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
-
- numArgs = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
-
- for (i = 0; i < numArgs; i++)
- {
- gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr += 2;
- }
-
- taskId = CreateTask(taskFunc, taskPriority);
- taskFunc(taskId);
- gAnimVisualTaskCount++;
-}
-
-// Creates a visual delay.
-// arg0: number of frames to wait.
-static void ScriptCmd_delay(void)
-{
- sBattleAnimScriptPtr++;
- gAnimFramesToWait = T1_READ_8(sBattleAnimScriptPtr);
- if (gAnimFramesToWait == 0)
- gAnimFramesToWait = -1;
- sBattleAnimScriptPtr++;
- gAnimScriptCallback = WaitAnimFrameCount;
-}
-
-// Wait for visual tasks to finish.
-static void ScriptCmd_waitforvisualfinish(void)
-{
- if (gAnimVisualTaskCount == 0)
- {
- sBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-static void ScriptCmd_hang1(void)
-{
-}
-
-static void ScriptCmd_hang2(void)
-{
-}
-
-// Marks the end of an animation. Finishes the anims, tasks, and sound effects.
-// started during an animaiton.
-static void ScriptCmd_end(void)
-{
- s32 i;
- bool32 continuousAnim = FALSE;
-
- // keep waiting as long as there is animations to be done.
- if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0
- || gMonAnimTaskIdArray[0] != 0xFF || gMonAnimTaskIdArray[1] != 0xFF)
- {
- gSoundAnimFramesToWait = 0;
- gAnimFramesToWait = 1;
- return;
- }
-
- // finish the sound effects.
- if (IsSEPlaying())
- {
- if (++gSoundAnimFramesToWait <= 90) // wait 90 frames, then halt the sound effect.
- {
- gAnimFramesToWait = 1;
- return;
- }
- else
- {
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- }
- }
-
- // the SE has halted, so set the SE Frame Counter to 0 and continue.
- gSoundAnimFramesToWait = 0;
-
- for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
- {
- if (gAnimSpriteIndexArray[i] != 0xFFFF)
- {
- FreeSpriteTilesByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
- gAnimSpriteIndexArray[i] |= 0xFFFF; // set terminator.
- }
- }
-
- if (!continuousAnim) // may have been used for debug?
- {
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- if (IsContest() == 0)
- {
- UpdateBattlerSpritePriorities();
- UpdateOamPriorityInAllHealthboxes(1);
- }
- gAnimScriptActive = FALSE;
- }
-}
-
-// Plays a sound effect.
-// arg0: sound effect ID
-static void ScriptCmd_playse(void)
-{
- sBattleAnimScriptPtr++;
- PlaySE(T1_READ_16(sBattleAnimScriptPtr));
- sBattleAnimScriptPtr += 2;
-}
-
-//
-// arg0: battler
-static void ScriptCmd_monbg(void)
-{
- u8 animBank;
- u8 bank;
- u8 identity;
- bool8 toBG_2;
- u16 spriteId;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- animBank = T1_READ_8(sBattleAnimScriptPtr);
- if (animBank == ANIM_BATTLER_ATTACKER)
- animBank = ANIM_BATTLER_ATK_PARTNER;
- else if (animBank == ANIM_BATTLER_TARGET)
- animBank = ANIM_BATTLER_DEF_PARTNER;
-
- if (animBank == ANIM_BATTLER_ATTACKER || animBank == ANIM_BATTLER_ATK_PARTNER)
- bank = gBattleAnimAttacker;
- else
- bank = gBattleAnimTarget;
-
- if (IsAnimBankSpriteVisible(bank))
- {
- identity = GetBattlerPosition(bank);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- toBG_2 = 0;
- else
- toBG_2 = 1;
-
- MoveBattlerSpriteToBG(bank, toBG_2);
- spriteId = gBankSpriteIds[bank];
- taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10);
- gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
- gTasks[taskId].data[2] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
- if (toBG_2 == 0)
- {
- gTasks[taskId].data[3] = gBattle_BG1_X;
- gTasks[taskId].data[4] = gBattle_BG1_Y;
- }
- else
- {
- gTasks[taskId].data[3] = gBattle_BG2_X;
- gTasks[taskId].data[4] = gBattle_BG2_Y;
- }
- gTasks[taskId].data[5] = toBG_2;
- gTasks[taskId].data[6] = bank;
- gMonAnimTaskIdArray[0] = taskId;
-
- }
-
- bank ^= 2;
- if (animBank >= ANIM_BATTLER_ATK_PARTNER && IsAnimBankSpriteVisible(bank))
- {
- identity = GetBattlerPosition(bank);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- toBG_2 = 0;
- else
- toBG_2 = 1;
- MoveBattlerSpriteToBG(bank, toBG_2);
- spriteId = gBankSpriteIds[bank];
- taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10);
- gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].data[1] = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
- gTasks[taskId].data[2] = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y;
- if (toBG_2 == 0)
- {
- gTasks[taskId].data[3] = gBattle_BG1_X;
- gTasks[taskId].data[4] = gBattle_BG1_Y;
- }
- else
- {
- gTasks[taskId].data[3] = gBattle_BG2_X;
- gTasks[taskId].data[4] = gBattle_BG2_Y;
- }
-
- gTasks[taskId].data[5] = toBG_2;
- gTasks[taskId].data[6] = bank;
- gMonAnimTaskIdArray[1] = taskId;
- }
-
- sBattleAnimScriptPtr++;
-}
-
-bool8 IsAnimBankSpriteVisible(u8 bank)
-{
- if (IsContest())
- {
- if (bank == gBattleAnimAttacker)
- return TRUE;
- else
- return FALSE;
- }
- if (!IsBankSpritePresent(bank))
- return FALSE;
- if (IsContest())
- return TRUE; // this line wont ever be reached.
- if (!(EWRAM_17800[bank].unk0 & 1) || !gSprites[gBankSpriteIds[bank]].invisible)
- return TRUE;
-
- return FALSE;
-}
-
-void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2)
-{
- u8 spriteId;
-
- if (toBG_2 == 0)
- {
- volatile u8 pointlessZero;
- struct UnknownStruct2 s;
- u8 r2;
-
- sub_8078914(&s);
- DmaFill32Large(3, 0, s.unk0, 0x2000, 0x1000);
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- DmaFill16Defvars(3, 0xFF, (void *)s.unk4, 0x1000);
-
- REG_BG1CNT_BITFIELD.priority = 2;
- REG_BG1CNT_BITFIELD.screenSize = 1;
- REG_BG1CNT_BITFIELD.areaOverflowMode = 0;
-
- spriteId = gBankSpriteIds[bank];
- gBattle_BG1_X = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- if (IsContest() != 0 && IsSpeciesNotUnown(EWRAM_19348[0]) != 0)
- gBattle_BG1_X--;
- gBattle_BG1_Y = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
-
- REG_BG1HOFS = gBattle_BG1_X;
- REG_BG1VOFS = gBattle_BG1_Y;
-
- LoadPalette(gPlttBufferUnfaded + 0x100 + bank * 16, s.unk8 * 16, 32);
- DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + bank * 16, (u16 *)PLTT + s.unk8 * 16, 32);
-
- if (IsContest() != 0)
- r2 = 0;
- else
- r2 = GetBattlerPosition(bank);
- sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock);
- if (IsContest() != 0)
- sub_8076380();
- }
- else
- {
- volatile u8 pointlessZero;
-
- DmaFill32Large(3, 0, (void *)(VRAM + 0x6000), 0x2000, 0x1000);
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- DmaFill32Defvars(3, 0, (void *)(VRAM + 0xF000), 0x800);
-
- REG_BG2CNT_BITFIELD.priority = 2;
- REG_BG2CNT_BITFIELD.screenSize = 1;
- REG_BG2CNT_BITFIELD.areaOverflowMode = 0;
-
- spriteId = gBankSpriteIds[bank];
- gBattle_BG2_X = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- gBattle_BG2_Y = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
-
- REG_BG2HOFS = gBattle_BG2_X;
- REG_BG2VOFS = gBattle_BG2_Y;
-
- LoadPalette(gPlttBufferUnfaded + 0x100 + bank * 16, 0x90, 32);
- DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + bank * 16, (void *)(PLTT + 0x120), 32);
-
- sub_80E4EF8(0, 0, GetBattlerPosition(bank), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock);
- }
-}
-
-static void sub_8076380(void)
-{
- int i;
- int j;
- struct UnknownStruct2 s;
- u16 *ptr;
-
- if (IsSpeciesNotUnown(EWRAM_19348[0]))
- {
- sub_8078914(&s);
- ptr = s.unk4;
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 4; j++)
- {
- u16 temp = ptr[j + i * 32];
-
- ptr[j + i * 32] = ptr[7 - j + i * 32];
- ptr[7 - j + i * 32] = temp;
- }
- }
- for (i = 0; i < 8; i++)
- {
- for (j = 0; j < 8; j++)
- ptr[j + i * 32] ^= 0x400;
- }
- }
-}
-
-void sub_80763FC(u16 a, u16 *b, u32 c, u8 d)
-{
- u8 i;
- u8 j;
- u32 r9;
-
- if (d == 0)
- r9 = 32;
- else
- r9 = 64;
- a <<= 12;
- for (i = 0; i < r9; i++)
- {
- for (j = 0; j < 32; j++)
- b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c;
- }
-}
-
-void sub_8076464(u8 a)
-{
- volatile u8 pointlessZero;
- struct UnknownStruct2 s;
-
- sub_8078914(&s);
- if (a == 0 || IsContest() != 0)
- {
- DmaFill32Large(3, 0, s.unk0, 0x2000, 0x1000);
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- DmaFill32Defvars(3, 0, s.unk4, 0x800);
- gBattle_BG1_X = 0;
- gBattle_BG1_Y = 0;
- }
- else
- {
- DmaFill32Large(3, 0, (void *)(VRAM + 0x6000), 0x2000, 0x1000);
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
- DmaFill32Defvars(3, 0, (void *)(VRAM + 0xF000), 0x800);
- gBattle_BG2_X = 0;
- gBattle_BG2_Y = 0;
- }
-}
-
-static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
-{
- u8 spriteId, palIndex;
- s16 x, y;
- struct UnknownStruct2 s;
-
- spriteId = gTasks[taskId].data[0];
- palIndex = gTasks[taskId].data[6];
- sub_8078914(&s);
- x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x);
- y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y);
-
- if (gTasks[taskId].data[5] == 0)
- {
- gBattle_BG1_X = x + gTasks[taskId].data[3];
- gBattle_BG1_Y = y + gTasks[taskId].data[4];
- DmaCopy32Defvars(3, gPlttBufferFaded + 0x100 + palIndex * 16, gPlttBufferFaded + 0x100 + s.unk8 * 16 - 256, 32);
- }
- else
- {
- gBattle_BG2_X = x + gTasks[taskId].data[3];
- gBattle_BG2_Y = y + gTasks[taskId].data[4];
- DmaCopy32Defvars(3, gPlttBufferFaded + 0x100 + palIndex * 16, gPlttBufferFaded + 0x100 - 112, 32);
- }
-}
-
-static void ScriptCmd_clearmonbg(void)
-{
- u8 animBankId;
- u8 bank;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- animBankId = T1_READ_8(sBattleAnimScriptPtr);
-
- if (animBankId == ANIM_BATTLER_ATTACKER)
- animBankId = ANIM_BATTLER_ATK_PARTNER;
- else if (animBankId == ANIM_BATTLER_TARGET)
- animBankId = ANIM_BATTLER_DEF_PARTNER;
-
- if (animBankId == ANIM_BATTLER_ATTACKER || animBankId == ANIM_BATTLER_ATK_PARTNER)
- bank = gBattleAnimAttacker;
- else
- bank = gBattleAnimTarget;
-
- if (gMonAnimTaskIdArray[0] != 0xFF)
- gSprites[gBankSpriteIds[bank]].invisible = FALSE;
- if (animBankId > 1 && gMonAnimTaskIdArray[1] != 0xFF)
- gSprites[gBankSpriteIds[bank ^ 2]].invisible = FALSE;
- else
- animBankId = 0;
-
- taskId = CreateTask(sub_807672C, 5);
- gTasks[taskId].data[0] = animBankId;
- gTasks[taskId].data[2] = bank;
- sBattleAnimScriptPtr++;
-}
-
-static void sub_807672C(u8 taskId)
-{
- u8 identity;
- u8 to_BG2;
-
- gTasks[taskId].data[1]++;
- if (gTasks[taskId].data[1] != 1)
- {
- identity = GetBattlerPosition(gTasks[taskId].data[2]);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- to_BG2 = 0;
- else
- to_BG2 = 1;
- if (gMonAnimTaskIdArray[0] != 0xFF)
- {
- sub_8076464(to_BG2);
- DestroyTask(gMonAnimTaskIdArray[0]);
- gMonAnimTaskIdArray[0] = 0xFF;
- }
- if (gTasks[taskId].data[0] > 1)
- {
- sub_8076464(to_BG2 ^ 1);
- DestroyTask(gMonAnimTaskIdArray[1]);
- gMonAnimTaskIdArray[1] = 0xFF;
- }
- DestroyTask(taskId);
- }
-}
-
-static void ScriptCmd_monbg_22(void)
-{
- u8 animBankId;
- u8 bank;
- u8 identity;
- u8 r1;
-
- sBattleAnimScriptPtr++;
- animBankId = T1_READ_8(sBattleAnimScriptPtr);
-
- if (animBankId == ANIM_BATTLER_ATTACKER)
- animBankId = ANIM_BATTLER_ATK_PARTNER;
- else if (animBankId == ANIM_BATTLER_TARGET)
- animBankId = ANIM_BATTLER_DEF_PARTNER;
-
- if (animBankId == ANIM_BATTLER_ATTACKER || animBankId == ANIM_BATTLER_ATK_PARTNER)
- bank = gBattleAnimAttacker;
- else
- bank = gBattleAnimTarget;
-
- if (IsAnimBankSpriteVisible(bank))
- {
- identity = GetBattlerPosition(bank);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- r1 = 0;
- else
- r1 = 1;
- MoveBattlerSpriteToBG(bank, r1);
- gSprites[gBankSpriteIds[bank]].invisible = FALSE;
- }
-
- bank ^= 2;
- if (animBankId > ANIM_BATTLER_TARGET && IsAnimBankSpriteVisible(bank))
- {
- identity = GetBattlerPosition(bank);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- r1 = 0;
- else
- r1 = 1;
- MoveBattlerSpriteToBG(bank, r1);
- gSprites[gBankSpriteIds[bank]].invisible = FALSE;
- }
- sBattleAnimScriptPtr++;
-}
-
-static void ScriptCmd_clearmonbg_23(void)
-{
- u8 animBankId;
- u8 bank;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- animBankId = T1_READ_8(sBattleAnimScriptPtr);
-
- if (animBankId == ANIM_BATTLER_ATTACKER)
- animBankId = ANIM_BATTLER_ATK_PARTNER;
- else if (animBankId == ANIM_BATTLER_TARGET)
- animBankId = ANIM_BATTLER_DEF_PARTNER;
-
- if (animBankId == ANIM_BATTLER_ATTACKER || animBankId == ANIM_BATTLER_ATK_PARTNER)
- bank = gBattleAnimAttacker;
- else
- bank = gBattleAnimTarget;
-
- if (IsAnimBankSpriteVisible(bank))
- gSprites[gBankSpriteIds[bank]].invisible = FALSE;
- if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ 2))
- gSprites[gBankSpriteIds[bank ^ 2]].invisible = FALSE;
- else
- animBankId = 0;
-
- taskId = CreateTask(sub_80769A4, 5);
- gTasks[taskId].data[0] = animBankId;
- gTasks[taskId].data[2] = bank;
-
- sBattleAnimScriptPtr++;
-}
-
-static void sub_80769A4(u8 taskId)
-{
- u8 identity;
- u8 bank;
- u8 toBG_2;
-
- gTasks[taskId].data[1]++;
- if (gTasks[taskId].data[1] != 1)
- {
- bank = gTasks[taskId].data[2];
- identity = GetBattlerPosition(bank);
- identity += 0xFF;
- if (identity <= 1 || IsContest() != 0)
- toBG_2 = 0;
- else
- toBG_2 = 1;
- if (IsAnimBankSpriteVisible(bank))
- sub_8076464(toBG_2);
- if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ 2))
- sub_8076464(toBG_2 ^ 1);
- DestroyTask(taskId);
- }
-}
-
-// Sets transparency of sprite.
-// arg0: sprite alpha value
-// arg1: background alpha value
-static void ScriptCmd_setalpha(void)
-{
- u16 spriteAlpha, bgAlpha;
-
- sBattleAnimScriptPtr++;
- spriteAlpha = *(sBattleAnimScriptPtr++);
- bgAlpha = *(sBattleAnimScriptPtr++) << 8;
- REG_BLDCNT = BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND;
- REG_BLDALPHA = spriteAlpha | bgAlpha;
-}
-
-static void ScriptCmd_setbldcnt(void)
-{
- u16 half1, half2;
-
- sBattleAnimScriptPtr++;
- half1 = *(sBattleAnimScriptPtr++);
- half2 = *(sBattleAnimScriptPtr++) << 8;
- REG_BLDCNT = half1 | half2;
-}
-
-// Turns off alpha blending / semi transparency.
-static void ScriptCmd_blendoff(void)
-{
- sBattleAnimScriptPtr++;
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
-}
-
-// Calls another animation by resetting sBattleAnimScriptPtr.
-// arg0: Function
-static void ScriptCmd_call(void)
-{
- sBattleAnimScriptPtr++;
- gBattleAnimScriptRetAddr = sBattleAnimScriptPtr + 4;
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
-}
-
-// Returns to the function that called this.
-static void ScriptCmd_return(void)
-{
- sBattleAnimScriptPtr = gBattleAnimScriptRetAddr;
-}
-
-// Sets a value into gBattleAnimArgs[8]
-// arg0: index / arg number
-// arg1: value to set
-static void ScriptCmd_setarg(void)
-{
- const u8 *addr = sBattleAnimScriptPtr;
- u16 value;
- u8 argId;
-
- sBattleAnimScriptPtr++;
- argId = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
- value = T1_READ_16(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr = addr + 4;
- gBattleAnimArgs[argId] = value;
-}
-
-// Flips between the first and second step of a move with two turns.
-// arg0: first turn animation
-// arg1: second turn animation
-static void ScriptCmd_choosetwoturnanim(void)
-{
- sBattleAnimScriptPtr++;
- if (gAnimMoveTurn & 1)
- sBattleAnimScriptPtr += 4;
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
-}
-
-// Jump to specified step of multi turn moves.
-// arg0: move turn
-// arg1: turn animation
-static void ScriptCmd_jumpifmoveturn(void)
-{
- u8 toCheck;
-
- sBattleAnimScriptPtr++;
- toCheck = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
-
- if (toCheck == gAnimMoveTurn)
- {
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
- }
- else
- {
- sBattleAnimScriptPtr += 4;
- }
-}
-
-// Jump to another animation.
-// arg0: new animation
-static void ScriptCmd_jump(void)
-{
- sBattleAnimScriptPtr++;
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
-}
-
-bool8 IsContest(void)
-{
- if (!gMain.inBattle)
- return TRUE;
- else
- return FALSE;
-}
-
-#define tBackgroundId data[0]
-#define tState data[10]
-
-// Fades the screen and sets new background image.
-// arg0: background ID
-static void ScriptCmd_fadetobg(void)
-{
- u8 backgroundId;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- backgroundId = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
- taskId = CreateTask(Task_FadeToBg, 5);
- gTasks[taskId].tBackgroundId = backgroundId;
- sAnimBackgroundFadeState = 1;
-}
-
-// Fades to background image based on context of move (contest, battle)
-// arg0: opponent background image ID
-// arg1: player background image ID
-// arg2: contest background image ID
-static void ScriptCmd_fadetobgfromset(void)
-{
- u8 bg1, bg2, bg3;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- bg1 = sBattleAnimScriptPtr[0];
- bg2 = sBattleAnimScriptPtr[1];
- bg3 = sBattleAnimScriptPtr[2];
- sBattleAnimScriptPtr += 3;
- taskId = CreateTask(Task_FadeToBg, 5);
-
- if (IsContest())
- gTasks[taskId].tBackgroundId = bg3;
- else if (GetBattlerSide(gBattleAnimTarget) == 0)
- gTasks[taskId].tBackgroundId = bg2;
- else
- gTasks[taskId].tBackgroundId = bg1;
-
- sAnimBackgroundFadeState = 1;
-}
-
-static void Task_FadeToBg(u8 taskId)
-{
- if (gTasks[taskId].tState == 0)
- {
- BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0);
- gTasks[taskId].tState++;
- return;
- }
- if (gPaletteFade.active)
- return;
- if (gTasks[taskId].tState == 1)
- {
- gTasks[taskId].tState++;
- sAnimBackgroundFadeState = 2;
- }
- else if (gTasks[taskId].tState == 2)
- {
- s16 bgId = (u16)gTasks[taskId].tBackgroundId;
-
- if (bgId == -1)
- LoadDefaultBg();
- else
- LoadMoveBg(bgId);
-
- BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1);
- gTasks[taskId].tState++;
- return;
- }
- if (gPaletteFade.active)
- return;
- if (gTasks[taskId].tState == 3)
- {
- DestroyTask(taskId);
- sAnimBackgroundFadeState = 0;
- }
-}
-
-static void LoadMoveBg(u16 bgId)
-{
- if (IsContest())
- {
- void *tilemap = gBattleAnimBackgroundTable[bgId].tilemap;
-
- LZDecompressWram(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
- sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
- DmaCopy32Defvars(3, IsContest() ? EWRAM_14800 : EWRAM_18000, (void *)(VRAM + 0xD000), 0x800);
- LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000));
- LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80789BC() * 16, 32);
- }
- else
- {
- LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000));
- LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x8000));
- LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
- }
-}
-
-static void LoadDefaultBg(void)
-{
- if (IsContest())
- LoadContestBgAfterMoveAnim();
- else
- DrawMainBattleBackground();
-}
-
-// Restores default background image.
-static void ScriptCmd_restorebg(void)
-{
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- taskId = CreateTask(Task_FadeToBg, 5);
- gTasks[taskId].tBackgroundId = 0xFFFF;
- sAnimBackgroundFadeState = 1;
-}
-
-#undef tBackgroundId
-#undef tState
-
-// Wait for background image fade out to compete.
-static void ScriptCmd_waitbgfadeout(void)
-{
- if (sAnimBackgroundFadeState == 2)
- {
- sBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-// Wait for background image fade in to compete.
-static void ScriptCmd_waitbgfadein(void)
-{
- if (sAnimBackgroundFadeState == 0)
- {
- sBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
-}
-
-// Change background.
-// arg0: background image ID
-static void ScriptCmd_changebg(void)
-{
- sBattleAnimScriptPtr++;
- LoadMoveBg(T1_READ_8(sBattleAnimScriptPtr));
- sBattleAnimScriptPtr++;
-}
-
-//Weird control flow
-/*
-s8 BattleAnimAdjustPanning(s8 a)
-{
- if (!IsContest() && (EWRAM_17810[gBattleAnimAttacker].unk0 & 0x10))
- {
- a = GetBattlerSide(gBattleAnimAttacker) ? SOUND_PAN_ATTACKER : SOUND_PAN_TARGET;
- }
- //_08076FDC
- else
- {
- if (IsContest())
- {
- if (gBattleAnimAttacker == gBattleAnimTarget && gBattleAnimAttacker == 2
- && a == SOUND_PAN_TARGET)
- {
- //jump to _0807707A
- if (a < SOUND_PAN_ATTACKER_NEG)
- a = SOUND_PAN_ATTACKER;
- return a;
- }
- }
- //_08077004
- else
- {
- if (GetBattlerSide(gBattleAnimAttacker) == 0)
- {
- if (GetBattlerSide(gBattleAnimTarget) == 0)
- }
- //_08077042
- else
- {
-
- }
- //_0807706C
- }
- }
- //_0807706E
-}
-*/
-NAKED
-s8 BattleAnimAdjustPanning(s8 a)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08076FDC\n\
- ldr r0, _08076FD4 @ =gBattleAnimAttacker\n\
- ldrb r2, [r0]\n\
- lsls r0, r2, 1\n\
- adds r0, r2\n\
- lsls r0, 2\n\
- ldr r1, _08076FD8 @ =gSharedMem + 0x17810\n\
- adds r0, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08076FDC\n\
- adds r0, r2, 0\n\
- bl GetBattlerSide\n\
- lsls r0, 24\n\
- movs r4, 0xC0\n\
- cmp r0, 0\n\
- beq _0807706E\n\
- movs r4, 0x3F\n\
- b _0807706E\n\
- .align 2, 0\n\
-_08076FD4: .4byte gBattleAnimAttacker\n\
-_08076FD8: .4byte gSharedMem + 0x17810\n\
-_08076FDC:\n\
- bl IsContest\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08077004\n\
- ldr r0, _08076FFC @ =gBattleAnimAttacker\n\
- ldr r1, _08077000 @ =gBattleAnimTarget\n\
- ldrb r0, [r0]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bne _08077068\n\
- cmp r0, 0x2\n\
- bne _08077068\n\
- cmp r4, 0x3F\n\
- beq _0807707A\n\
- b _08077068\n\
- .align 2, 0\n\
-_08076FFC: .4byte gBattleAnimAttacker\n\
-_08077000: .4byte gBattleAnimTarget\n\
-_08077004:\n\
- ldr r0, _0807702C @ =gBattleAnimAttacker\n\
- ldrb r0, [r0]\n\
- bl GetBattlerSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _08077042\n\
- ldr r0, _08077030 @ =gBattleAnimTarget\n\
- ldrb r0, [r0]\n\
- bl GetBattlerSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _0807706E\n\
- lsls r0, r4, 24\n\
- asrs r1, r0, 24\n\
- cmp r1, 0x3F\n\
- bne _08077034\n\
- movs r4, 0xC0\n\
- b _0807706E\n\
- .align 2, 0\n\
-_0807702C: .4byte gBattleAnimAttacker\n\
-_08077030: .4byte gBattleAnimTarget\n\
-_08077034:\n\
- movs r0, 0x40\n\
- negs r0, r0\n\
- cmp r1, r0\n\
- beq _0807706E\n\
- negs r0, r1\n\
- lsls r0, 24\n\
- b _0807706C\n\
-_08077042:\n\
- ldr r0, _08077064 @ =gBattleAnimTarget\n\
- ldrb r0, [r0]\n\
- bl GetBattlerSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _08077068\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- movs r1, 0x40\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bne _0807706E\n\
- movs r4, 0x3F\n\
- b _0807706E\n\
- .align 2, 0\n\
-_08077064: .4byte gBattleAnimTarget\n\
-_08077068:\n\
- lsls r0, r4, 24\n\
- negs r0, r0\n\
-_0807706C:\n\
- lsrs r4, r0, 24\n\
-_0807706E:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- cmp r0, 0x3F\n\
- ble _0807707A\n\
- movs r4, 0x3F\n\
- b _08077088\n\
-_0807707A:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- movs r1, 0x40\n\
- negs r1, r1\n\
- cmp r0, r1\n\
- bge _08077088\n\
- movs r4, 0xC0\n\
-_08077088:\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-
-s8 BattleAnimAdjustPanning2(s8 pan)
-{
- if (!IsContest() && (EWRAM_17810[gBattleAnimAttacker].unk0 & 0x10))
- {
- if (GetBattlerSide(gBattleAnimAttacker) != 0)
- pan = SOUND_PAN_TARGET;
- else
- pan = SOUND_PAN_ATTACKER;
- }
- else
- {
- if (GetBattlerSide(gBattleAnimAttacker) != 0 || IsContest() != 0)
- pan = -pan;
- }
- return pan;
-}
-
-s16 sub_8077104(s16 newPan, int oldPan)
-{
- s16 var = newPan;
-
- if (var > SOUND_PAN_TARGET)
- var = SOUND_PAN_TARGET;
- else if (var < SOUND_PAN_ATTACKER_NEG)
- var = SOUND_PAN_ATTACKER_NEG;
- return var;
-}
-
-s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan)
-{
- u16 ret;
-
- if (sourcePan < targetPan)
- ret = ((incrementPan < 0) ? -incrementPan : incrementPan);
- else if (sourcePan > targetPan)
- ret = -((incrementPan < 0) ? -incrementPan : incrementPan);
- else
- ret = 0;
-
- return ret;
-}
-
-static void ScriptCmd_playsewithpan(void)
-{
- u16 soundId;
- s8 pan;
-
- sBattleAnimScriptPtr++;
- soundId = T1_READ_16(sBattleAnimScriptPtr);
- pan = T1_READ_8(sBattleAnimScriptPtr + 2);
- PlaySE12WithPanning(soundId, BattleAnimAdjustPanning(pan));
- sBattleAnimScriptPtr += 3;
-}
-
-static void ScriptCmd_setpan(void)
-{
- s8 pan;
-
- sBattleAnimScriptPtr++;
- pan = T1_READ_8(sBattleAnimScriptPtr);
- SE12PanpotControl(BattleAnimAdjustPanning(pan));
- sBattleAnimScriptPtr++;
-}
-
-#define tInitialPan data[0]
-#define tTargetPan data[1]
-#define tIncrementPan data[2]
-#define tFramesToWait data[3]
-#define tCurrentPan data[4]
-#define tFrameCounter data[8]
-
-static void ScriptCmd_panse_1B(void)
-{
- u16 songNum;
- s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan;
- u8 framesToWait;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- songNum = T1_READ_16(sBattleAnimScriptPtr);
- currentPanArg = T1_READ_8(sBattleAnimScriptPtr + 2);
- incrementPan = T1_READ_8(sBattleAnimScriptPtr + 3);
- incrementPanArg = T1_READ_8(sBattleAnimScriptPtr + 4);
- framesToWait = T1_READ_8(sBattleAnimScriptPtr + 5);
-
- currentPan = BattleAnimAdjustPanning(currentPanArg);
- targetPan = BattleAnimAdjustPanning(incrementPan);
- incrementPan = CalculatePanIncrement(currentPan, targetPan, incrementPanArg);
- taskId = CreateTask(Task_PanFromInitialToTarget, 1);
- gTasks[taskId].tInitialPan = currentPan;
- gTasks[taskId].tTargetPan = targetPan;
- gTasks[taskId].tIncrementPan = incrementPan;
- gTasks[taskId].tFramesToWait = framesToWait;
- gTasks[taskId].tCurrentPan = currentPan;
-
- PlaySE12WithPanning(songNum, currentPan);
-
- gAnimSoundTaskCount++;
- sBattleAnimScriptPtr += 6;
-}
-
-void Task_PanFromInitialToTarget(u8 taskId)
-{
- bool32 destroyTask = FALSE;
- if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait)
- {
- s16 pan;
- s16 initialPanning, targetPanning, currentPan, incrementPan;
-
- gTasks[taskId].tFrameCounter = 0;
- initialPanning = gTasks[taskId].tInitialPan;
- targetPanning = gTasks[taskId].tTargetPan;
- currentPan = gTasks[taskId].tCurrentPan;
- incrementPan = gTasks[taskId].tIncrementPan;
- pan = currentPan + incrementPan;
- gTasks[taskId].tCurrentPan = pan;
-
- if (incrementPan == 0) // If we're not incrementing, just cancel the task immediately
- {
- destroyTask = TRUE;
- }
- else if (initialPanning < targetPanning) // Panning increasing
- {
- if (pan >= targetPanning) // Target reached
- destroyTask = TRUE;
- }
- else // Panning decreasing
- {
- if (pan <= targetPanning) // Target reached
- destroyTask = TRUE;
- }
-
- if (destroyTask)
- {
- pan = targetPanning;
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
-
- SE12PanpotControl(pan);
- }
-}
-
-static void ScriptCmd_panse_26(void)
-{
- u16 songId;
- s8 currentPan, targetPan, incrementPan;
- u8 framesToWait;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- songId = T1_READ_16(sBattleAnimScriptPtr);
- currentPan = T1_READ_8(sBattleAnimScriptPtr + 2);
- targetPan = T1_READ_8(sBattleAnimScriptPtr + 3);
- incrementPan = T1_READ_8(sBattleAnimScriptPtr + 4);
- framesToWait = T1_READ_8(sBattleAnimScriptPtr + 5);
-
- taskId = CreateTask(Task_PanFromInitialToTarget, 1);
- gTasks[taskId].tInitialPan = currentPan;
- gTasks[taskId].tTargetPan = targetPan;
- gTasks[taskId].tIncrementPan = incrementPan;
- gTasks[taskId].tFramesToWait = framesToWait;
- gTasks[taskId].tCurrentPan = currentPan;
-
- PlaySE12WithPanning(songId, currentPan);
-
- gAnimSoundTaskCount++;
- sBattleAnimScriptPtr += 6;
-}
-
-static void ScriptCmd_panse_27(void)
-{
- u16 songId;
- u8 targetPanArg, incrementPanArg, currentPan, currentPanArg;
- s8 targetPan, incrementPan, framesToWait;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- songId = T1_READ_16(sBattleAnimScriptPtr);
- currentPanArg = T1_READ_8(sBattleAnimScriptPtr + 2);
- targetPanArg = T1_READ_8(sBattleAnimScriptPtr + 3);
- incrementPanArg = T1_READ_8(sBattleAnimScriptPtr + 4);
- currentPan = T1_READ_8(sBattleAnimScriptPtr + 5);
-
- targetPan = BattleAnimAdjustPanning2(currentPanArg);
- incrementPan = BattleAnimAdjustPanning2(targetPanArg);
- framesToWait = BattleAnimAdjustPanning2(incrementPanArg);
-
- taskId = CreateTask(Task_PanFromInitialToTarget, 1);
- gTasks[taskId].data[0] = targetPan;
- gTasks[taskId].data[1] = incrementPan;
- gTasks[taskId].data[2] = framesToWait;
- gTasks[taskId].data[3] = currentPan;
- gTasks[taskId].data[4] = targetPan;
-
- PlaySE12WithPanning(songId, targetPan);
-
- gAnimSoundTaskCount++;
- sBattleAnimScriptPtr += 6;
-}
-
-#undef tInitialPan
-#undef tTargetPan
-#undef tIncrementPan
-#undef tFramesToWait
-#undef tCurrentPan
-#undef tFrameCounter
-
-#define tSongId data[0]
-#define tPanning data[1]
-#define tFramesToWait data[2]
-#define tNumberOfPlays data[3]
-#define tFrameCounter data[8]
-
-static void ScriptCmd_loopsewithpan(void)
-{
- u16 songId;
- s8 panningArg, panning;
- u8 framesToWait, numberOfPlays;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- songId = T1_READ_16(sBattleAnimScriptPtr);
- panningArg = T1_READ_8(sBattleAnimScriptPtr + 2);
- framesToWait = T1_READ_8(sBattleAnimScriptPtr + 3);
- numberOfPlays = T1_READ_8(sBattleAnimScriptPtr + 4);
- panning = BattleAnimAdjustPanning(panningArg);
-
- taskId = CreateTask(Task_LoopAndPlaySE, 1);
- gTasks[taskId].tSongId = songId;
- gTasks[taskId].tPanning = panning;
- gTasks[taskId].tFramesToWait = framesToWait;
- gTasks[taskId].tNumberOfPlays = numberOfPlays;
- gTasks[taskId].tFrameCounter = framesToWait;
- gTasks[taskId].func(taskId);
-
- gAnimSoundTaskCount++;
- sBattleAnimScriptPtr += 5;
-}
-
-static void Task_LoopAndPlaySE(u8 taskId)
-{
- if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait)
- {
- u16 songId;
- s8 panning;
- u8 numberOfPlays;
-
- gTasks[taskId].tFrameCounter = 0;
- songId = gTasks[taskId].tSongId;
- panning = gTasks[taskId].tPanning;
- numberOfPlays = --gTasks[taskId].tNumberOfPlays;
- PlaySE12WithPanning(songId, panning);
- if (numberOfPlays == 0)
- {
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
- }
-}
-
-#undef tSongId
-#undef tPanning
-#undef tFramesToWait
-#undef tNumberOfPlays
-#undef tFrameCounter
-
-#define tSongId data[0]
-#define tPanning data[1]
-#define tFramesToWait data[2]
-
-static void ScriptCmd_waitplaysewithpan(void)
-{
- u16 songId;
- s8 panningArg, panning;
- u8 framesToWait;
- u8 taskId;
-
- sBattleAnimScriptPtr++;
- songId = T1_READ_16(sBattleAnimScriptPtr);
- panningArg = T1_READ_8(sBattleAnimScriptPtr + 2);
- framesToWait = T1_READ_8(sBattleAnimScriptPtr + 3);
- panning = BattleAnimAdjustPanning(panningArg);
-
- taskId = CreateTask(Task_WaitAndPlaySE, 1);
- gTasks[taskId].tSongId = songId;
- gTasks[taskId].tPanning = panning;
- gTasks[taskId].tFramesToWait = framesToWait;
-
- gAnimSoundTaskCount++;
- sBattleAnimScriptPtr += 4;
-}
-
-static void Task_WaitAndPlaySE(u8 taskId)
-{
- if (gTasks[taskId].tFramesToWait-- <= 0)
- {
- PlaySE12WithPanning(gTasks[taskId].tSongId, gTasks[taskId].tPanning);
- DestroyTask(taskId);
- gAnimSoundTaskCount--;
- }
-}
-
-#undef tSongId
-#undef tPanning
-#undef tFramesToWait
-
-// Creates a sound task.
-// arg0: sound task function
-// arg1: s16[] gBattleAnimArgs
-static void ScriptCmd_createsoundtask(void)
-{
- TaskFunc func;
- u8 numArgs, taskId;
- s32 i;
-
- sBattleAnimScriptPtr++;
- func = (TaskFunc)T2_READ_32(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr += 4;
- numArgs = T1_READ_8(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr++;
- for (i = 0; i < numArgs; i++)
- {
- gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr);
- sBattleAnimScriptPtr += 2;
- }
- taskId = CreateTask(func, 1);
- func(taskId);
- gAnimSoundTaskCount++;
-}
-
-// Wait for sound effect to end.
-static void ScriptCmd_waitsound(void)
-{
- if (gAnimSoundTaskCount != 0)
- {
- gSoundAnimFramesToWait = 0;
- gAnimFramesToWait = 1;
- }
- else if (IsSEPlaying())
- {
- if (++gSoundAnimFramesToWait > 90)
- {
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- gSoundAnimFramesToWait = 0;
- }
- else
- {
- gAnimFramesToWait = 1;
- }
- }
- else
- {
- gSoundAnimFramesToWait = 0;
- sBattleAnimScriptPtr++;
- gAnimFramesToWait = 0;
- }
-}
-
-// Jump to animation based on gBattleAnimArgs[index] value.
-// arg0: gBattleAnimArgs[] argument index
-// arg1: value
-// arg2: animation script
-static void ScriptCmd_jumpargeq(void)
-{
- u8 argId;
- s16 valueToCheck;
-
- sBattleAnimScriptPtr++;
- argId = T1_READ_8(sBattleAnimScriptPtr);
- valueToCheck = T1_READ_16(sBattleAnimScriptPtr + 1);
-
- if (valueToCheck == gBattleAnimArgs[argId])
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr + 3);
- else
- sBattleAnimScriptPtr += 7;
-}
-
-// If using move in contest, go to specific animation script.
-// arg0: animation script
-static void ScriptCmd_jumpifcontest(void)
-{
- sBattleAnimScriptPtr++;
- if (IsContest())
- sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr);
- else
- sBattleAnimScriptPtr += 4;
-}
-
-static void ScriptCmd_monbgprio_28(void)
-{
- u8 wantedBank;
- u8 bank;
- u8 bankIdentity;
-
- wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1);
- sBattleAnimScriptPtr += 2;
-
- if (wantedBank != 0)
- bank = gBattleAnimTarget;
- else
- bank = gBattleAnimAttacker;
-
- bankIdentity = GetBattlerPosition(bank);
- if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3))
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
-}
-
-static void ScriptCmd_monbgprio_29(void)
-{
- sBattleAnimScriptPtr++;
- if (!IsContest())
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
-}
-
-static void ScriptCmd_monbgprio_2A(void)
-{
- u8 wantedBank;
- u8 bankIdentity;
- u8 bank;
-
- wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1);
- sBattleAnimScriptPtr += 2;
- if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget))
- {
- if (wantedBank != 0)
- bank = gBattleAnimTarget;
- else
- bank = gBattleAnimAttacker;
- bankIdentity = GetBattlerPosition(bank);
- if (!IsContest() && (bankIdentity == 0 || bankIdentity == 3))
- {
- REG_BG1CNT_BITFIELD.priority = 1;
- REG_BG2CNT_BITFIELD.priority = 2;
- }
- }
-}
-
-// Sets sprite to be invisible.
-// arg0: battler sprite ID
-static void ScriptCmd_invisible(void)
-{
- u8 spriteId;
-
- spriteId = GetAnimBattlerSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1));
- if (spriteId != 0xFF)
- gSprites[spriteId].invisible = TRUE;
-
- sBattleAnimScriptPtr += 2;
-}
-
-// Sets aprite to be visible.
-// arg0: battler sprite ID
-static void ScriptCmd_visible(void)
-{
- u8 spriteId;
-
- spriteId = GetAnimBattlerSpriteId(T1_READ_8(sBattleAnimScriptPtr + 1));
- if (spriteId != 0xFF)
- gSprites[spriteId].invisible = FALSE;
-
- sBattleAnimScriptPtr += 2;
-}
-
-static void ScriptCmd_doublebattle_2D(void)
-{
- u8 wantedBank;
- u8 r4;
- u8 spriteId;
-
- wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1);
- sBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
- && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
- {
- if (wantedBank == 0)
- {
- r4 = GetBattlerPosition_permutated(gBattleAnimAttacker);
- spriteId = GetAnimBattlerSpriteId(0);
- }
- else
- {
- r4 = GetBattlerPosition_permutated(gBattleAnimTarget);
- spriteId = GetAnimBattlerSpriteId(1);
- }
- if (spriteId != 0xFF)
- {
- gSprites[spriteId].invisible = FALSE;
- if (r4 == 2)
- gSprites[spriteId].oam.priority = 3;
- if (r4 == 1)
- sub_8076464(0);
- else
- sub_8076464(1);
- }
- }
-}
-
-static void ScriptCmd_doublebattle_2E(void)
-{
- u8 wantedBank;
- u8 r4;
- u8 spriteId;
-
- wantedBank = T1_READ_8(sBattleAnimScriptPtr + 1);
- sBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
- && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
- {
- if (wantedBank == 0)
- {
- r4 = GetBattlerPosition_permutated(gBattleAnimAttacker);
- spriteId = GetAnimBattlerSpriteId(0);
- }
- else
- {
- r4 = GetBattlerPosition_permutated(gBattleAnimTarget);
- spriteId = GetAnimBattlerSpriteId(1);
- }
- if (spriteId != 0xFF && r4 == 2)
- {
- gSprites[spriteId].oam.priority = 2;
- }
- }
-}
-
-// Cease playing sounds.
-static void ScriptCmd_stopsound(void)
-{
- m4aMPlayStop(&gMPlay_SE1);
- m4aMPlayStop(&gMPlay_SE2);
- sBattleAnimScriptPtr++;
-}