summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 17:47:05 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2017-12-26 17:47:05 -0500
commitb5417fafec7dd37cb4be391f3bd3d4541a2a381e (patch)
treea4e7d08afb2e862186a138e82c8ef4785d82786d
parent2f98c2032fd47ada3484bfc37d590992f286d3d4 (diff)
Split battle/ into data/ and engine/ components
-rw-r--r--Makefile34
-rw-r--r--battle/anim_gfx.asm41
-rw-r--r--battle/anim_objects.asm9
-rw-r--r--constants.asm1
-rw-r--r--constants/animation_constants.asm24
-rw-r--r--constants/battle_constants.asm4
-rw-r--r--constants/item_constants.asm2
-rw-r--r--constants/map_setup_constants.asm42
-rw-r--r--constants/move_constants.asm8
-rw-r--r--constants/pokemon_data_constants.asm12
-rw-r--r--constants/sprite_anim_constants.asm316
-rw-r--r--constants/sprite_data_constants.asm317
-rw-r--r--constants/type_constants.asm4
-rw-r--r--data/anims/ball_colors.asm (renamed from data/battle/ball_colors.asm)0
-rwxr-xr-xdata/anims/framesets.asm (renamed from battle/objects/framesets.asm)375
-rwxr-xr-xdata/anims/oam.asm (renamed from battle/objects/oam.asm)435
-rwxr-xr-xdata/anims/object_gfx.asm (renamed from battle/objects/object_gfx.asm)0
-rwxr-xr-xdata/anims/objects.asm (renamed from battle/objects/data.asm)0
-rw-r--r--data/maps/flypoints.asm (renamed from data/flypoints.asm)0
-rw-r--r--data/maps/map_setup_scripts.asm177
-rw-r--r--data/moves/effect_command_pointers.asm (renamed from battle/effect_command_pointers.asm)0
-rw-r--r--data/moves/move_anims.asm (renamed from battle/anims.asm)1
-rw-r--r--data/moves/move_descriptions.asm (renamed from battle/moves/move_descriptions.asm)0
-rw-r--r--data/moves/move_effects.asm (renamed from battle/moves/move_effects.asm)0
-rw-r--r--data/moves/move_effects_pointers.asm (renamed from battle/moves/move_effects_pointers.asm)0
-rw-r--r--data/moves/move_names.asm (renamed from battle/move_names.asm)0
-rw-r--r--data/moves/moves.asm (renamed from battle/moves/moves.asm)0
-rw-r--r--data/moves/tmhm_moves.asm (renamed from data/tmhm_moves.asm)3
-rw-r--r--data/mystery_gift_decos.asm (renamed from data/mystery_gift/decos.asm)0
-rw-r--r--data/mystery_gift_items.asm (renamed from data/mystery_gift/items.asm)0
-rwxr-xr-xdata/sprite_anim_frames.asm499
-rwxr-xr-xdata/sprites/framesets.asm499
-rw-r--r--data/sprites/oam.asm (renamed from data/sprite_anim_oam.asm)282
-rw-r--r--data/sprites/sequences.asm (renamed from data/sprite_anim_seqs.asm)0
-rw-r--r--data/type_matchups.asm (renamed from battle/type_matchup.asm)13
-rw-r--r--data/type_names.asm50
-rw-r--r--data/wild/flee_mons.asm (renamed from data/battle/flee_mons.asm)0
-rw-r--r--docs/bugs_and_glitches.md26
-rw-r--r--docs/move_anim_commands.md2
-rw-r--r--docs/pic_animations.md2
-rw-r--r--engine/anims/anim_commands.asm (renamed from battle/anim_commands.asm)1
-rw-r--r--engine/anims/bg_effects.asm (renamed from battle/bg_effects.asm)1
-rwxr-xr-xengine/anims/engine.asm (renamed from battle/objects/engine.asm)0
-rwxr-xr-xengine/anims/functions.asm (renamed from battle/objects/functions.asm)3
-rwxr-xr-xengine/anims/helpers.asm (renamed from battle/objects/helpers.asm)0
-rw-r--r--engine/battle/ai/items.asm (renamed from battle/ai/items.asm)0
-rwxr-xr-xengine/battle/ai/move.asm (renamed from battle/ai/move.asm)0
-rwxr-xr-xengine/battle/ai/redundant.asm (renamed from battle/ai/redundant.asm)0
-rw-r--r--engine/battle/ai/scoring.asm (renamed from battle/ai/scoring.asm)0
-rwxr-xr-xengine/battle/ai/switch.asm (renamed from battle/ai/switch.asm)0
-rwxr-xr-xengine/battle/anim_hp_bar.asm (renamed from engine/anim_hp_bar.asm)0
-rw-r--r--engine/battle/battle_transition.asm (renamed from engine/battle_transition.asm)0
-rw-r--r--engine/battle/core.asm (renamed from battle/core.asm)2
-rw-r--r--engine/battle/effect_commands.asm (renamed from battle/effect_commands.asm)41
-rwxr-xr-xengine/battle/effect_commands/attract.asm (renamed from battle/effects/attract.asm)0
-rw-r--r--engine/battle/effect_commands/curse.asm (renamed from battle/effects/curse.asm)0
-rw-r--r--engine/battle/effect_commands/endure.asm (renamed from battle/effects/endure.asm)0
-rw-r--r--engine/battle/effect_commands/foresight.asm (renamed from battle/effects/foresight.asm)0
-rw-r--r--engine/battle/effect_commands/metronome.asm (renamed from battle/effects/metronome.asm)0
-rw-r--r--engine/battle/effect_commands/mirror_move.asm (renamed from battle/effects/mirror_move.asm)0
-rw-r--r--engine/battle/effect_commands/nightmare.asm (renamed from battle/effects/nightmare.asm)0
-rw-r--r--engine/battle/effect_commands/perish_song.asm (renamed from battle/effects/perish_song.asm)0
-rwxr-xr-xengine/battle/effect_commands/present.asm (renamed from battle/effects/present.asm)0
-rw-r--r--engine/battle/effect_commands/protect.asm (renamed from battle/effects/protect.asm)0
-rw-r--r--engine/battle/effect_commands/rollout.asm (renamed from battle/effects/rollout.asm)0
-rw-r--r--engine/battle/effect_commands/sandstorm.asm (renamed from battle/effects/sandstorm.asm)0
-rw-r--r--engine/battle/effect_commands/spikes.asm (renamed from battle/effects/spikes.asm)0
-rw-r--r--engine/battle/effect_commands/thief.asm (renamed from battle/effects/thief.asm)0
-rwxr-xr-xengine/battle/effect_commands/transform.asm (renamed from battle/effects/transform.asm)0
-rw-r--r--engine/battle/hidden_power.asm (renamed from battle/hidden_power.asm)0
-rwxr-xr-xengine/battle/link_result.asm (renamed from battle/link_result.asm)0
-rwxr-xr-xengine/battle/menu.asm (renamed from battle/menu.asm)0
-rw-r--r--engine/battle/misc.asm (renamed from battle/misc.asm)0
-rw-r--r--engine/battle/read_trainer_attributes.asm (renamed from engine/read_trainer_attributes.asm)0
-rwxr-xr-xengine/battle/read_trainer_party.asm (renamed from engine/read_trainer_party.asm)0
-rwxr-xr-xengine/battle/sliding_intro.asm (renamed from battle/sliding_intro.asm)0
-rw-r--r--engine/battle/start_battle.asm (renamed from engine/start_battle.asm)0
-rwxr-xr-xengine/battle/trainer_huds.asm (renamed from battle/trainer_huds.asm)0
-rw-r--r--engine/battle/trainer_scripts.asm (renamed from engine/trainer_scripts.asm)0
-rwxr-xr-xengine/battle/used_move_text.asm (renamed from battle/used_move_text.asm)3
-rw-r--r--engine/map_setup.asm180
-rwxr-xr-xengine/mystery_gift_2.asm4
-rwxr-xr-xengine/pokegear.asm2
-rwxr-xr-xengine/sprites.asm6
-rwxr-xr-xengine/tmhm.asm2
-rw-r--r--engine/types.asm (renamed from text/types.asm)50
-rw-r--r--gfx/anims.asm41
-rw-r--r--gfx/anims/aeroblast.2bpp.lz.2f07c4ea (renamed from gfx/fx/aeroblast.2bpp.lz.2f07c4ea)bin128 -> 128 bytes
-rw-r--r--gfx/anims/aeroblast.png (renamed from gfx/fx/aeroblast.png)bin187 -> 187 bytes
-rw-r--r--gfx/anims/angels.2bpp.lz.b026d81e (renamed from gfx/fx/angels.2bpp.lz.b026d81e)bin368 -> 368 bytes
-rw-r--r--gfx/anims/angels.png (renamed from gfx/fx/angels.png)bin363 -> 363 bytes
-rw-r--r--gfx/anims/beam.2bpp.lz.80b6d613 (renamed from gfx/fx/beam.2bpp.lz.80b6d613)bin144 -> 144 bytes
-rwxr-xr-xgfx/anims/beam.png (renamed from gfx/fx/beam.png)bin562 -> 562 bytes
-rw-r--r--gfx/anims/bubble.2bpp.lz.03b8ac99 (renamed from gfx/fx/bubble.2bpp.lz.03b8ac99)bin160 -> 160 bytes
-rw-r--r--gfx/anims/bubble.png (renamed from gfx/fx/bubble.png)bin237 -> 237 bytes
-rw-r--r--gfx/anims/charge.2bpp.lz.95d3ea98 (renamed from gfx/fx/charge.2bpp.lz.95d3ea98)bin112 -> 112 bytes
-rw-r--r--gfx/anims/charge.png (renamed from gfx/fx/charge.png)bin188 -> 188 bytes
-rw-r--r--gfx/anims/cut.2bpp.lz.03d343ed (renamed from gfx/fx/cut.2bpp.lz.03d343ed)bin96 -> 96 bytes
-rw-r--r--gfx/anims/cut.png (renamed from gfx/fx/cut.png)bin170 -> 170 bytes
-rw-r--r--gfx/anims/egg.2bpp.lz.41dd1a53 (renamed from gfx/fx/egg.2bpp.lz.41dd1a53)bin128 -> 128 bytes
-rw-r--r--gfx/anims/egg.png (renamed from gfx/fx/egg.png)bin200 -> 200 bytes
-rw-r--r--gfx/anims/explosion.2bpp.lz.55fc334f (renamed from gfx/fx/explosion.2bpp.lz.55fc334f)bin96 -> 96 bytes
-rw-r--r--gfx/anims/explosion.png (renamed from gfx/fx/explosion.png)bin157 -> 157 bytes
-rw-r--r--gfx/anims/fire.2bpp.lz.d7701cda (renamed from gfx/fx/fire.2bpp.lz.d7701cda)bin96 -> 96 bytes
-rw-r--r--gfx/anims/fire.png (renamed from gfx/fx/fire.png)bin153 -> 153 bytes
-rw-r--r--gfx/anims/flower.2bpp.lz.1bc2e9d2 (renamed from gfx/fx/flower.2bpp.lz.1bc2e9d2)bin96 -> 96 bytes
-rw-r--r--gfx/anims/flower.png (renamed from gfx/fx/flower.png)bin149 -> 149 bytes
-rw-r--r--gfx/anims/globe.2bpp.lz.710dbb8e (renamed from gfx/fx/globe.2bpp.lz.710dbb8e)bin240 -> 240 bytes
-rw-r--r--gfx/anims/globe.png (renamed from gfx/fx/globe.png)bin292 -> 292 bytes
-rw-r--r--gfx/anims/haze.2bpp.lz.91424607 (renamed from gfx/fx/haze.2bpp.lz.91424607)bin144 -> 144 bytes
-rw-r--r--gfx/anims/haze.png (renamed from gfx/fx/haze.png)bin173 -> 173 bytes
-rw-r--r--gfx/anims/hit.2bpp.lz.2b3c83f2 (renamed from gfx/fx/hit.2bpp.lz.2b3c83f2)bin240 -> 240 bytes
-rw-r--r--gfx/anims/hit.png (renamed from gfx/fx/hit.png)bin306 -> 306 bytes
-rw-r--r--gfx/anims/horn.2bpp.lz.48908aae (renamed from gfx/fx/horn.2bpp.lz.48908aae)bin96 -> 96 bytes
-rw-r--r--gfx/anims/horn.png (renamed from gfx/fx/horn.png)bin179 -> 179 bytes
-rw-r--r--gfx/anims/ice.2bpp.lz.664d900f (renamed from gfx/fx/ice.2bpp.lz.664d900f)bin64 -> 64 bytes
-rw-r--r--gfx/anims/ice.png (renamed from gfx/fx/ice.png)bin137 -> 137 bytes
-rw-r--r--gfx/anims/lightning.2bpp.lz.a88fc131 (renamed from gfx/fx/lightning.2bpp.lz.a88fc131)bin320 -> 320 bytes
-rwxr-xr-xgfx/anims/lightning.png (renamed from gfx/fx/lightning.png)bin820 -> 820 bytes
-rw-r--r--gfx/anims/misc.2bpp.lz.4b20c3d7 (renamed from gfx/fx/misc.2bpp.lz.4b20c3d7)bin416 -> 416 bytes
-rwxr-xr-xgfx/anims/misc.png (renamed from gfx/fx/misc.png)bin1082 -> 1082 bytes
-rw-r--r--gfx/anims/noise.2bpp.lz.acb4a76e (renamed from gfx/fx/noise.2bpp.lz.acb4a76e)bin192 -> 192 bytes
-rwxr-xr-xgfx/anims/noise.png (renamed from gfx/fx/noise.png)bin526 -> 526 bytes
-rw-r--r--gfx/anims/objects.2bpp.lz.83f812de (renamed from gfx/fx/objects.2bpp.lz.83f812de)bin224 -> 224 bytes
-rwxr-xr-xgfx/anims/objects.png (renamed from gfx/fx/objects.png)bin705 -> 705 bytes
-rw-r--r--gfx/anims/plant.2bpp.lz.4a00c417 (renamed from gfx/fx/plant.2bpp.lz.4a00c417)bin224 -> 224 bytes
-rw-r--r--gfx/anims/plant.png (renamed from gfx/fx/plant.png)bin293 -> 293 bytes
-rw-r--r--gfx/anims/poison.2bpp.lz.fc7dc9c1 (renamed from gfx/fx/poison.2bpp.lz.fc7dc9c1)bin112 -> 112 bytes
-rwxr-xr-xgfx/anims/poison.png (renamed from gfx/fx/poison.png)bin166 -> 166 bytes
-rw-r--r--gfx/anims/pokeball.2bpp.lz.c58f7e01 (renamed from gfx/fx/pokeball.2bpp.lz.c58f7e01)bin80 -> 80 bytes
-rwxr-xr-xgfx/anims/pokeball.png (renamed from gfx/fx/pokeball.png)bin388 -> 388 bytes
-rw-r--r--gfx/anims/powder.2bpp.lz.bfd566bb (renamed from gfx/fx/powder.2bpp.lz.bfd566bb)bin32 -> 32 bytes
-rw-r--r--gfx/anims/powder.png (renamed from gfx/fx/powder.png)bin100 -> 100 bytes
-rw-r--r--gfx/anims/psychic.2bpp.lz.d80f285c (renamed from gfx/fx/psychic.2bpp.lz.d80f285c)bin112 -> 112 bytes
-rw-r--r--gfx/anims/psychic.png (renamed from gfx/fx/psychic.png)bin175 -> 175 bytes
-rw-r--r--gfx/anims/reflect.2bpp.lz.9a9c822d (renamed from gfx/fx/reflect.2bpp.lz.9a9c822d)bin112 -> 112 bytes
-rw-r--r--gfx/anims/reflect.png (renamed from gfx/fx/reflect.png)bin211 -> 211 bytes
-rw-r--r--gfx/anims/rocks.2bpp.lz.73d0153e (renamed from gfx/fx/rocks.2bpp.lz.73d0153e)bin240 -> 240 bytes
-rwxr-xr-xgfx/anims/rocks.png (renamed from gfx/fx/rocks.png)bin669 -> 669 bytes
-rw-r--r--gfx/anims/rope.2bpp.lz.209d63dd (renamed from gfx/fx/rope.2bpp.lz.209d63dd)bin192 -> 192 bytes
-rw-r--r--gfx/anims/rope.png (renamed from gfx/fx/rope.png)bin256 -> 256 bytes
-rw-r--r--gfx/anims/sand.2bpp.lz.c87c0eaa (renamed from gfx/fx/sand.2bpp.lz.c87c0eaa)bin96 -> 96 bytes
-rwxr-xr-xgfx/anims/sand.png (renamed from gfx/fx/sand.png)bin384 -> 384 bytes
-rw-r--r--gfx/anims/shapes.2bpp.lz.262d77f0 (renamed from gfx/fx/shapes.2bpp.lz.262d77f0)bin160 -> 160 bytes
-rw-r--r--gfx/anims/shapes.png (renamed from gfx/fx/shapes.png)bin237 -> 237 bytes
-rw-r--r--gfx/anims/shine.2bpp.lz.5fb79056 (renamed from gfx/fx/shine.2bpp.lz.5fb79056)bin224 -> 224 bytes
-rw-r--r--gfx/anims/shine.png (renamed from gfx/fx/shine.png)bin273 -> 273 bytes
-rw-r--r--gfx/anims/skyattack.2bpp.lz.31738ab8 (renamed from gfx/fx/skyattack.2bpp.lz.31738ab8)bin352 -> 352 bytes
-rw-r--r--gfx/anims/skyattack.png (renamed from gfx/fx/skyattack.png)bin393 -> 393 bytes
-rw-r--r--gfx/anims/smoke.2bpp.lz.aa05905e (renamed from gfx/fx/smoke.2bpp.lz.aa05905e)bin144 -> 144 bytes
-rw-r--r--gfx/anims/smoke.png (renamed from gfx/fx/smoke.png)bin191 -> 191 bytes
-rw-r--r--gfx/anims/speed.2bpp.lz.1732b364 (renamed from gfx/fx/speed.2bpp.lz.1732b364)bin80 -> 80 bytes
-rw-r--r--gfx/anims/speed.png (renamed from gfx/fx/speed.png)bin136 -> 136 bytes
-rw-r--r--gfx/anims/status.2bpp.lz.0c0aa13e (renamed from gfx/fx/status.2bpp.lz.0c0aa13e)bin288 -> 288 bytes
-rw-r--r--gfx/anims/status.png (renamed from gfx/fx/status.png)bin364 -> 364 bytes
-rw-r--r--gfx/anims/water.2bpp.lz.7b52ed12 (renamed from gfx/fx/water.2bpp.lz.7b52ed12)bin208 -> 208 bytes
-rw-r--r--gfx/anims/water.png (renamed from gfx/fx/water.png)bin277 -> 277 bytes
-rw-r--r--gfx/anims/wave.2bpp.lz.bee99402 (renamed from gfx/fx/wave.2bpp.lz.bee99402)bin160 -> 160 bytes
-rw-r--r--gfx/anims/wave.png (renamed from gfx/fx/wave.png)bin205 -> 205 bytes
-rw-r--r--gfx/anims/web.2bpp.lz.80e3d480 (renamed from gfx/fx/web.2bpp.lz.80e3d480)bin128 -> 128 bytes
-rw-r--r--gfx/anims/web.png (renamed from gfx/fx/web.png)bin191 -> 191 bytes
-rw-r--r--gfx/anims/whip.2bpp.lz.d80d8d6e (renamed from gfx/fx/whip.2bpp.lz.d80d8d6e)bin128 -> 128 bytes
-rw-r--r--gfx/anims/whip.png (renamed from gfx/fx/whip.png)bin210 -> 210 bytes
-rw-r--r--gfx/anims/wind.2bpp.lz.5a785180 (renamed from gfx/fx/wind.2bpp.lz.5a785180)bin192 -> 192 bytes
-rw-r--r--gfx/anims/wind.png (renamed from gfx/fx/wind.png)bin286 -> 286 bytes
-rw-r--r--macros/scripts/effect_commands.asm2
-rw-r--r--macros/scripts/move_anim.asm2
-rw-r--r--main.asm70
-rw-r--r--pokecrystal.link2
-rw-r--r--text/battle_tower.asm1
170 files changed, 1791 insertions, 1800 deletions
diff --git a/Makefile b/Makefile
index c30d4a180..f507fa362 100644
--- a/Makefile
+++ b/Makefile
@@ -169,23 +169,23 @@ gfx/slots/slots_3.2bpp: tools/gfx += --interleave --png=$< --remove-duplicates -
gfx/card_flip/card_flip_2.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/angels.2bpp: tools/gfx += --trim-whitespace
-gfx/fx/beam.2bpp: tools/gfx += --remove-xflip --remove-yflip --remove-whitespace
-gfx/fx/bubble.2bpp: tools/gfx += --trim-whitespace
-gfx/fx/charge.2bpp: tools/gfx += --trim-whitespace
-gfx/fx/egg.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/explosion.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/hit.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/horn.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/lightning.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/misc.2bpp: tools/gfx += --remove-duplicates --remove-xflip
-gfx/fx/noise.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/objects.2bpp: tools/gfx += --remove-whitespace --remove-xflip
-gfx/fx/pokeball.2bpp: tools/gfx += --remove-xflip --keep-whitespace
-gfx/fx/reflect.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/rocks.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/skyattack.2bpp: tools/gfx += --remove-whitespace
-gfx/fx/status.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/angels.2bpp: tools/gfx += --trim-whitespace
+gfx/anims/beam.2bpp: tools/gfx += --remove-xflip --remove-yflip --remove-whitespace
+gfx/anims/bubble.2bpp: tools/gfx += --trim-whitespace
+gfx/anims/charge.2bpp: tools/gfx += --trim-whitespace
+gfx/anims/egg.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/explosion.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/hit.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/horn.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/lightning.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/misc.2bpp: tools/gfx += --remove-duplicates --remove-xflip
+gfx/anims/noise.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/objects.2bpp: tools/gfx += --remove-whitespace --remove-xflip
+gfx/anims/pokeball.2bpp: tools/gfx += --remove-xflip --keep-whitespace
+gfx/anims/reflect.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/rocks.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/skyattack.2bpp: tools/gfx += --remove-whitespace
+gfx/anims/status.2bpp: tools/gfx += --remove-whitespace
gfx/player/chris.2bpp: rgbgfx += -h
gfx/player/chris_back.2bpp: rgbgfx += -h
diff --git a/battle/anim_gfx.asm b/battle/anim_gfx.asm
deleted file mode 100644
index da6614980..000000000
--- a/battle/anim_gfx.asm
+++ /dev/null
@@ -1,41 +0,0 @@
-AnimObj00GFX: ; 84a2e
-AnimObjHitGFX: INCBIN "gfx/fx/hit.2bpp.lz"
-AnimObjCutGFX: INCBIN "gfx/fx/cut.2bpp.lz"
-AnimObjFireGFX: INCBIN "gfx/fx/fire.2bpp.lz"
-AnimObjWaterGFX: INCBIN "gfx/fx/water.2bpp.lz"
-AnimObjLightningGFX: INCBIN "gfx/fx/lightning.2bpp.lz"
-AnimObjSmokeGFX: INCBIN "gfx/fx/smoke.2bpp.lz"
-AnimObjExplosionGFX: INCBIN "gfx/fx/explosion.2bpp.lz"
-AnimObjIceGFX: INCBIN "gfx/fx/ice.2bpp.lz"
-AnimObjRocksGFX: INCBIN "gfx/fx/rocks.2bpp.lz"
-AnimObjPoisonGFX: INCBIN "gfx/fx/poison.2bpp.lz"
-AnimObjPlantGFX: INCBIN "gfx/fx/plant.2bpp.lz"
-AnimObjPokeBallGFX: INCBIN "gfx/fx/pokeball.2bpp.lz"
-AnimObjBubbleGFX: INCBIN "gfx/fx/bubble.2bpp.lz"
-AnimObjNoiseGFX: INCBIN "gfx/fx/noise.2bpp.lz"
-AnimObjReflectGFX: INCBIN "gfx/fx/reflect.2bpp.lz"
-AnimObjPowderGFX: INCBIN "gfx/fx/powder.2bpp.lz"
-AnimObjBeamGFX: INCBIN "gfx/fx/beam.2bpp.lz"
-AnimObjSpeedGFX: INCBIN "gfx/fx/speed.2bpp.lz"
-AnimObjChargeGFX: INCBIN "gfx/fx/charge.2bpp.lz"
-AnimObjWindGFX: INCBIN "gfx/fx/wind.2bpp.lz"
-AnimObjWhipGFX: INCBIN "gfx/fx/whip.2bpp.lz"
-AnimObjRopeGFX: INCBIN "gfx/fx/rope.2bpp.lz"
-AnimObjEggGFX: INCBIN "gfx/fx/egg.2bpp.lz"
-AnimObjPsychicGFX: INCBIN "gfx/fx/psychic.2bpp.lz"
-AnimObjSandGFX: INCBIN "gfx/fx/sand.2bpp.lz"
-AnimObjWebGFX: INCBIN "gfx/fx/web.2bpp.lz"
-AnimObjHazeGFX: INCBIN "gfx/fx/haze.2bpp.lz"
-AnimObjHornGFX: INCBIN "gfx/fx/horn.2bpp.lz"
-AnimObjFlowerGFX: INCBIN "gfx/fx/flower.2bpp.lz"
-AnimObjMiscGFX: INCBIN "gfx/fx/misc.2bpp.lz"
-AnimObjSkyAttackGFX: INCBIN "gfx/fx/skyattack.2bpp.lz"
-AnimObjGlobeGFX: INCBIN "gfx/fx/globe.2bpp.lz"
-AnimObjShapesGFX: INCBIN "gfx/fx/shapes.2bpp.lz"
-AnimObjStatusGFX: INCBIN "gfx/fx/status.2bpp.lz"
-AnimObjObjectsGFX: INCBIN "gfx/fx/objects.2bpp.lz"
-AnimObjShineGFX: INCBIN "gfx/fx/shine.2bpp.lz"
-AnimObjAngelsGFX: INCBIN "gfx/fx/angels.2bpp.lz"
-AnimObjWaveGFX: INCBIN "gfx/fx/wave.2bpp.lz"
-AnimObjAeroblastGFX: INCBIN "gfx/fx/aeroblast.2bpp.lz"
-; 8640e
diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm
deleted file mode 100644
index 65f0b4628..000000000
--- a/battle/anim_objects.asm
+++ /dev/null
@@ -1,9 +0,0 @@
-; Objects used in battle animations.
-
-INCLUDE "battle/objects/engine.asm"
-INCLUDE "battle/objects/data.asm"
-INCLUDE "battle/objects/functions.asm"
-INCLUDE "battle/objects/helpers.asm"
-INCLUDE "battle/objects/framesets.asm"
-INCLUDE "battle/objects/oam.asm"
-INCLUDE "battle/objects/object_gfx.asm"
diff --git a/constants.asm b/constants.asm
index acc2553ee..3e0f5311d 100644
--- a/constants.asm
+++ b/constants.asm
@@ -35,6 +35,7 @@ INCLUDE "constants/radio_constants.asm"
INCLUDE "constants/npctrade_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/sprite_data_constants.asm"
+INCLUDE "constants/sprite_anim_constants.asm"
INCLUDE "constants/tileset_constants.asm"
INCLUDE "constants/collision_constants.asm"
INCLUDE "constants/cgb_constants.asm"
diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm
index c8df4e3be..c6f27f31d 100644
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -26,7 +26,7 @@
const BATTLEANIMSTRUCT_17
BATTLEANIMSTRUCT_LENGTH EQU const_value
-; BattleAnimObjects indexes (see battle/objects/data.asm)
+; BattleAnimObjects indexes (see data/anims/objects.asm)
const_def
const ANIM_OBJ_00
const ANIM_OBJ_01
@@ -217,7 +217,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const ANIM_OBJ_BA
const ANIM_OBJ_BB
-; DoBattleAnimFrame arguments (see battle/objects/functions.asm)
+; DoBattleAnimFrame arguments (see engine/anims/functions.asm)
const_def
const BATTLEANIMFUNC_00
const BATTLEANIMFUNC_01
@@ -300,7 +300,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const BATTLEANIMFUNC_4E
const BATTLEANIMFUNC_4F
-; BattleAnimFrameData indexes (see battle/objects/framesets.asm)
+; BattleAnimFrameData indexes (see data/anims/framesets.asm)
const_def
const BATTLEANIMFRAMESET_00
const BATTLEANIMFRAMESET_01
@@ -488,7 +488,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const BATTLEANIMFRAMESET_B7
const BATTLEANIMFRAMESET_B8
-; BattleAnimOAMData indexes (see battle/objects/oam.asm)
+; BattleAnimOAMData indexes (see data/anims/oam.asm)
const_def
const BATTLEANIMOAMSET_00
const BATTLEANIMOAMSET_01
@@ -707,7 +707,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
const BATTLEANIMOAMSET_D6
const BATTLEANIMOAMSET_D7
-; BattleBGEffects indexes (see battle/bg_effects.asm)
+; BattleBGEffects indexes (see engine/anims/bg_effects.asm)
const_value SET 1
const ANIM_BG_FLASH_INVERTED
const ANIM_BG_FLASH_WHITE
@@ -763,19 +763,7 @@ const_value SET 1
const ANIM_BG_WOBBLE_MON
const ANIM_BG_35
-; PokeAnims indexes (see gfx/pokemon/animation.asm)
- const_def
- const ANIM_MON_SLOW
- const ANIM_MON_NORMAL
- const ANIM_MON_MENU
- const ANIM_MON_TRADE
- const ANIM_MON_EVOLVE
- const ANIM_MON_HATCH
- const ANIM_MON_UNUSED
- const ANIM_MON_EGG1
- const ANIM_MON_EGG2
-
-; AnimObjGFX indexes (see battle/objects/object_gfx.asm)
+; AnimObjGFX indexes (see data/anims/object_gfx.asm)
const_value SET 1
const ANIM_GFX_HIT
const ANIM_GFX_CUT
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index adfeb580d..9c0e06c6a 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -30,7 +30,7 @@ TREEMON_SLEEP_TURNS EQU 7
const ABILITY ; used for BattleCommand_Curse
NUM_LEVEL_STATS EQU const_value
-; move struct members (see battle/moves/moves.asm)
+; move struct members (see data/moves/moves.asm)
const_def
const MOVE_ANIM ; 0
const MOVE_EFFECT ; 1
@@ -213,7 +213,7 @@ SUBSTATUS_CURLED EQU 0
const WEATHER_SUN_END
const WEATHER_SANDSTORM_END
-; MoveEffectsPointers indexes (see battle/moves/move_effects_pointers.asm)
+; MoveEffectsPointers indexes (see data/moves/move_effects_pointers.asm)
const_def
const EFFECT_NORMAL_HIT
const EFFECT_SLEEP
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 9a536ae7a..5e5805495 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -197,7 +197,7 @@
const MIRAGE_MAIL ; $BD
const ITEM_BE ; $BE
-; see data/tmhm_moves.asm for moves
+; see data/moves/tmhm_moves.asm for moves
add_tm DYNAMICPUNCH ; $BF
add_tm HEADBUTT ; $C0
add_tm CURSE ; $C1
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index 7b0dfdf83..2505bda55 100644
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -1,26 +1,18 @@
; hMapEntryMethod values
-; MapSetupScripts indexes (see engine/map_setup.asm)
+; MapSetupScripts indexes (see data/maps/map_setup_scripts.asm)
const_value SET $f1
- const MAPSETUP_WARP
- const MAPSETUP_CONTINUE
- const MAPSETUP_RELOADMAP
- const MAPSETUP_TELEPORT
- const MAPSETUP_DOOR
- const MAPSETUP_FALL
- const MAPSETUP_CONNECTION
- const MAPSETUP_LINKRETURN
- const MAPSETUP_TRAIN
- const MAPSETUP_SUBMENU
- const MAPSETUP_BADWARP
- const MAPSETUP_FLY
-
-; callback types
-const_value SET 1
- const MAPCALLBACK_TILES
- const MAPCALLBACK_OBJECTS
- const MAPCALLBACK_CMDQUEUE
- const MAPCALLBACK_SPRITES
- const MAPCALLBACK_NEWMAP
+ const MAPSETUP_WARP ; f1
+ const MAPSETUP_CONTINUE ; f2
+ const MAPSETUP_RELOADMAP ; f3
+ const MAPSETUP_TELEPORT ; f4
+ const MAPSETUP_DOOR ; f5
+ const MAPSETUP_FALL ; f6
+ const MAPSETUP_CONNECTION ; f7
+ const MAPSETUP_LINKRETURN ; f8
+ const MAPSETUP_TRAIN ; f9
+ const MAPSETUP_SUBMENU ; fa
+ const MAPSETUP_BADWARP ; fb
+ const MAPSETUP_FLY ; fc
; MapSetupCommands indexes (see engine/map_setup.asm)
; Names taken from Condensation water's scripting compendium
@@ -73,3 +65,11 @@ const_value SET 1
const map_text_scroll_off ; 2c
const map_stop_script ; 2d
map_end EQU -1
+
+; callback types
+const_value SET 1
+ const MAPCALLBACK_TILES
+ const MAPCALLBACK_OBJECTS
+ const MAPCALLBACK_CMDQUEUE
+ const MAPCALLBACK_SPRITES
+ const MAPCALLBACK_NEWMAP
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index a4b1a0ba8..fb729028c 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,9 +1,9 @@
; move ids
; indexes for:
-; - MoveDescriptions (see battle/moves/move_descriptions.asm)
-; - Moves (see battle/moves/moves.asm)
-; - MoveNames (see battle/move_names.asm)
-; - BattleAnimations (see battle/anims.asm)
+; - Moves (see data/moves/moves.asm)
+; - MoveNames (see data/moves/move_names.asm)
+; - MoveDescriptions (see data/moves/move_descriptions.asm)
+; - BattleAnimations (see data/moves/move_anims.asm)
const_def
const NO_MOVE ; 00
const POUND ; 01
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 4093adfa9..c1d0aee17 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -192,6 +192,18 @@ FISHSWARM_QWILFISH EQU 1
FISHSWARM_REMORAID EQU 2
+; PokeAnims indexes (see gfx/pokemon/animation.asm)
+ const_def
+ const ANIM_MON_SLOW
+ const ANIM_MON_NORMAL
+ const ANIM_MON_MENU
+ const ANIM_MON_TRADE
+ const ANIM_MON_EVOLVE
+ const ANIM_MON_HATCH
+ const ANIM_MON_UNUSED
+ const ANIM_MON_EGG1
+ const ANIM_MON_EGG2
+
; MonMenuOptions indexes (see engine/mon_menu.asm)
const_value SET 1
; moves
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
new file mode 100644
index 000000000..548c9b8be
--- /dev/null
+++ b/constants/sprite_anim_constants.asm
@@ -0,0 +1,316 @@
+; sprite_anim_struct members (see macros/wram.asm)
+ const_def
+ const SPRITEANIMSTRUCT_INDEX ; 0
+ const SPRITEANIMSTRUCT_FRAMESET_ID ; 1
+ const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2
+ const SPRITEANIMSTRUCT_TILE_ID ; 3
+ const SPRITEANIMSTRUCT_XCOORD ; 4
+ const SPRITEANIMSTRUCT_YCOORD ; 5
+ const SPRITEANIMSTRUCT_XOFFSET ; 6
+ const SPRITEANIMSTRUCT_YOFFSET ; 7
+ const SPRITEANIMSTRUCT_DURATION ; 8
+ const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
+ const SPRITEANIMSTRUCT_FRAME ; a
+ const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
+ const SPRITEANIMSTRUCT_0C ; c
+ const SPRITEANIMSTRUCT_0D ; d
+ const SPRITEANIMSTRUCT_0E ; e
+ const SPRITEANIMSTRUCT_0F ; f
+
+; SpriteAnimSeqData indexes (see data/sprites/sequences.asm)
+ const_def
+ const SPRITE_ANIM_INDEX_PARTY_MON ; 00
+ const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01
+ const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02
+ const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03
+ const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04
+ const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05
+ const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06
+ const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07
+ const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08
+ const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09
+ const SPRITE_ANIM_INDEX_RED_WALK ; 0a
+ const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b
+ const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c
+ const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d
+ const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e
+ const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f
+ const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE ; 10
+ const SPRITE_ANIM_INDEX_TRADEMON_ICON ; 11
+ const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE ; 12
+ const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13
+ const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB ; 14
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED ; 15
+ const SPRITE_ANIM_INDEX_LEAF ; 16
+ const SPRITE_ANIM_INDEX_CUT_TREE ; 17
+ const SPRITE_ANIM_INDEX_FLY_LEAF ; 18
+ const SPRITE_ANIM_INDEX_EGG_CRACK ; 19
+ const SPRITE_ANIM_INDEX_1A ; 1a
+ const SPRITE_ANIM_INDEX_HEADBUTT ; 1b
+ const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c
+ const SPRITE_ANIM_INDEX_1D ; 1d
+ const SPRITE_ANIM_INDEX_BLUE_WALK ; 1e
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE ; 1f
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL ; 20
+ const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL ; 21
+ const SPRITE_ANIM_INDEX_MOBILE_22 ; 22
+ const SPRITE_ANIM_INDEX_MOBILE_23 ; 23
+ const SPRITE_ANIM_INDEX_MOBILE_24 ; 24
+ const SPRITE_ANIM_INDEX_MOBILE_25 ; 25
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE ; 26
+ const SPRITE_ANIM_INDEX_INTRO_PICHU ; 27
+ const SPRITE_ANIM_INDEX_INTRO_WOOPER ; 28
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN ; 29
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
+ const SPRITE_ANIM_INDEX_CELEBI ; 2c
+
+; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
+ const_def
+ const SPRITE_ANIM_SEQ_NULL ; 00
+ const SPRITE_ANIM_SEQ_PARTY_MON ; 01
+ const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH ; 02
+ const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED ; 03
+ const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04
+ const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
+ const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06
+ const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07
+ const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08
+ const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09
+ const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a
+ const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b
+ const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c
+ const SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR ; 0d
+ const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e
+ const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f
+ const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10
+ const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11
+ const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE ; 12
+ const SPRITE_ANIM_SEQ_REVEAL_NEW_MON ; 13
+ const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB ; 14
+ const SPRITE_ANIM_SEQ_CUT_LEAVES ; 15
+ const SPRITE_ANIM_SEQ_FLY_FROM ; 16
+ const SPRITE_ANIM_SEQ_FLY_LEAF ; 17
+ const SPRITE_ANIM_SEQ_FLY_TO ; 18
+ const SPRITE_ANIM_SEQ_19 ; 19
+ const SPRITE_ANIM_SEQ_1A ; 1a
+ const SPRITE_ANIM_SEQ_FOR_MOBILE_23 ; 1b
+ const SPRITE_ANIM_SEQ_FOR_MOBILE_24 ; 1c
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE ; 1d
+ const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER ; 1e
+ const SPRITE_ANIM_SEQ_CELEBI ; 1f
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
+
+; SpriteAnimFrameData indexes (see data/sprites/framesets.asm)
+ const_def
+ const SPRITE_ANIM_FRAMESET_00
+ const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST ; 05
+ const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST ; 06
+ const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07
+ const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
+ const SPRITE_ANIM_FRAMESET_09
+ const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
+ const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
+ const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
+ const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
+ const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10
+ const SPRITE_ANIM_FRAMESET_RED_WALK ; 11
+ const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12
+ const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13
+ const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 ; 14
+ const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15
+ const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16
+ const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17
+ const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18
+ const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19
+ const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a
+ const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b
+ const SPRITE_ANIM_FRAMESET_1C
+ const SPRITE_ANIM_FRAMESET_LEAF ; 1d
+ const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e
+ const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f
+ const SPRITE_ANIM_FRAMESET_EGG_HATCH ; 20
+ const SPRITE_ANIM_FRAMESET_21
+ const SPRITE_ANIM_FRAMESET_22
+ const SPRITE_ANIM_FRAMESET_23
+ const SPRITE_ANIM_FRAMESET_24
+ const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25
+ const SPRITE_ANIM_FRAMESET_26
+ const SPRITE_ANIM_FRAMESET_27
+ const SPRITE_ANIM_FRAMESET_28
+ const SPRITE_ANIM_FRAMESET_29
+ const SPRITE_ANIM_FRAMESET_2A
+ const SPRITE_ANIM_FRAMESET_2B
+ const SPRITE_ANIM_FRAMESET_2C
+ const SPRITE_ANIM_FRAMESET_BLUE_WALK ; 2d
+ const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f
+ const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30
+ const SPRITE_ANIM_FRAMESET_FOR_MOBILE_22 ; 31
+ const SPRITE_ANIM_FRAMESET_FOR_MOBILE_23 ; 32
+ const SPRITE_ANIM_FRAMESET_FOR_MOBILE_24 ; 33
+ const SPRITE_ANIM_FRAMESET_FOR_MOBILE_25 ; 34
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36
+ const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37
+ const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d
+ const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e
+ const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
+ const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
+ const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
+
+; SpriteAnimOAMData indexes (see data/sprites/oam.asm)
+ const_def
+ const SPRITE_ANIM_OAMSET_RED_WALK_1 ; 00
+ const SPRITE_ANIM_OAMSET_RED_WALK_2 ; 01
+ const SPRITE_ANIM_OAMSET_02
+ const SPRITE_ANIM_OAMSET_03
+ const SPRITE_ANIM_OAMSET_04
+ const SPRITE_ANIM_OAMSET_05
+ const SPRITE_ANIM_OAMSET_06
+ const SPRITE_ANIM_OAMSET_07
+ const SPRITE_ANIM_OAMSET_08
+ const SPRITE_ANIM_OAMSET_09
+ const SPRITE_ANIM_OAMSET_0A
+ const SPRITE_ANIM_OAMSET_0B
+ const SPRITE_ANIM_OAMSET_0C
+ const SPRITE_ANIM_OAMSET_0D
+ const SPRITE_ANIM_OAMSET_0E
+ const SPRITE_ANIM_OAMSET_0F
+ const SPRITE_ANIM_OAMSET_10
+ const SPRITE_ANIM_OAMSET_11
+ const SPRITE_ANIM_OAMSET_12
+ const SPRITE_ANIM_OAMSET_13
+ const SPRITE_ANIM_OAMSET_14
+ const SPRITE_ANIM_OAMSET_15
+ const SPRITE_ANIM_OAMSET_16
+ const SPRITE_ANIM_OAMSET_17
+ const SPRITE_ANIM_OAMSET_18
+ const SPRITE_ANIM_OAMSET_19
+ const SPRITE_ANIM_OAMSET_1A
+ const SPRITE_ANIM_OAMSET_1B
+ const SPRITE_ANIM_OAMSET_1C
+ const SPRITE_ANIM_OAMSET_1D
+ const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1 ; 1e
+ const SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2 ; 1f
+ const SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR ; 20
+ const SPRITE_ANIM_OAMSET_FOR_FRAMESET_09 ; 21
+ const SPRITE_ANIM_OAMSET_22
+ const SPRITE_ANIM_OAMSET_GS_INTRO_STAR ; 23
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1 ; 24
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2 ; 25
+ const SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3 ; 26
+ const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1 ; 27
+ const SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2 ; 28
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1 ; 29
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2 ; 2a
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3 ; 2b
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4 ; 2c
+ const SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5 ; 2d
+ const SPRITE_ANIM_OAMSET_SLOTS_EGG ; 2e
+ const SPRITE_ANIM_OAMSET_STILL_CURSOR ; 2f
+ const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1 ; 30
+ const SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2 ; 31
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_1 ; 32
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_2 ; 33
+ const SPRITE_ANIM_OAMSET_TRADE_POOF_3 ; 34
+ const SPRITE_ANIM_OAMSET_35
+ const SPRITE_ANIM_OAMSET_36
+ const SPRITE_ANIM_OAMSET_TRADEMON_ICON_1 ; 37
+ const SPRITE_ANIM_OAMSET_TRADEMON_ICON_2 ; 38
+ const SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE ; 39
+ const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1 ; 3a
+ const SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2 ; 3b
+ const SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB ; 3c
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1 ; 3d
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2 ; 3e
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1 ; 3f
+ const SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2 ; 40
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1 ; 41
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2 ; 42
+ const SPRITE_ANIM_OAMSET_43
+ const SPRITE_ANIM_OAMSET_44
+ const SPRITE_ANIM_OAMSET_45
+ const SPRITE_ANIM_OAMSET_46
+ const SPRITE_ANIM_OAMSET_47
+ const SPRITE_ANIM_OAMSET_48
+ const SPRITE_ANIM_OAMSET_49
+ const SPRITE_ANIM_OAMSET_4A
+ const SPRITE_ANIM_OAMSET_4B
+ const SPRITE_ANIM_OAMSET_4C
+ const SPRITE_ANIM_OAMSET_4D
+ const SPRITE_ANIM_OAMSET_4E
+ const SPRITE_ANIM_OAMSET_LEAF ; 4f
+ const SPRITE_ANIM_OAMSET_TREE_1 ; 50
+ const SPRITE_ANIM_OAMSET_CUT_TREE_2 ; 51
+ const SPRITE_ANIM_OAMSET_CUT_TREE_3 ; 52
+ const SPRITE_ANIM_OAMSET_CUT_TREE_4 ; 53
+ const SPRITE_ANIM_OAMSET_EGG_CRACK ; 54
+ const SPRITE_ANIM_OAMSET_55
+ const SPRITE_ANIM_OAMSET_56
+ const SPRITE_ANIM_OAMSET_57
+ const SPRITE_ANIM_OAMSET_58
+ const SPRITE_ANIM_OAMSET_59
+ const SPRITE_ANIM_OAMSET_5A
+ const SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 ; 5b
+ const SPRITE_ANIM_OAMSET_5C
+ const SPRITE_ANIM_OAMSET_5D
+ const SPRITE_ANIM_OAMSET_5E
+ const SPRITE_ANIM_OAMSET_5F
+ const SPRITE_ANIM_OAMSET_60
+ const SPRITE_ANIM_OAMSET_61
+ const SPRITE_ANIM_OAMSET_62
+ const SPRITE_ANIM_OAMSET_BLUE_WALK_1 ; 63
+ const SPRITE_ANIM_OAMSET_BLUE_WALK_2 ; 64
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1 ; 65
+ const SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2 ; 66
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1 ; 67
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2 ; 68
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1 ; 69
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2 ; 6a
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3 ; 6b
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_23 ; 6c
+ const SPRITE_ANIM_OAMSET_FOR_MOBILE_24 ; 6d
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1 ; 6e
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2 ; 6f
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3 ; 70
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4 ; 71
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_1 ; 72
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_2 ; 73
+ const SPRITE_ANIM_OAMSET_INTRO_PICHU_3 ; 74
+ const SPRITE_ANIM_OAMSET_INTRO_WOOPER ; 75
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_1 ; 76
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_2 ; 77
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_3 ; 78
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1 ; 79
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2 ; 7a
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3 ; 7b
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4 ; 7c
+ const SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5 ; 7d
+ const SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY ; 7e
+ const SPRITE_ANIM_OAMSET_CELEBI_1 ; 7f
+ const SPRITE_ANIM_OAMSET_CELEBI_2 ; 80
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1 ; 81
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2 ; 82
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3 ; 83
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4 ; 84
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5 ; 85
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6 ; 86
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7 ; 87
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8 ; 88
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9 ; 89
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10 ; 8A
+ const SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11 ; 8B
diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm
index 0abaddd70..43a3843fc 100644
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -192,320 +192,3 @@ SPRITEMOVEDATA_FIELDS EQU 6
const FACING_BOULDER_DUST_2 ; 1d
const FACING_GRASS_1 ; 1e
const FACING_GRASS_2 ; 1f
-
-; sprite_anim_struct members (see macros/wram.asm)
- const_def
- const SPRITEANIMSTRUCT_INDEX ; 0
- const SPRITEANIMSTRUCT_FRAMESET_ID ; 1
- const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2
- const SPRITEANIMSTRUCT_TILE_ID ; 3
- const SPRITEANIMSTRUCT_XCOORD ; 4
- const SPRITEANIMSTRUCT_YCOORD ; 5
- const SPRITEANIMSTRUCT_XOFFSET ; 6
- const SPRITEANIMSTRUCT_YOFFSET ; 7
- const SPRITEANIMSTRUCT_DURATION ; 8
- const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
- const SPRITEANIMSTRUCT_FRAME ; a
- const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
- const SPRITEANIMSTRUCT_0C ; c
- const SPRITEANIMSTRUCT_0D ; d
- const SPRITEANIMSTRUCT_0E ; e
- const SPRITEANIMSTRUCT_0F ; f
-
-; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
- const_def
- const SPRITE_ANIM_INDEX_PARTY_MON ; 00
- const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01
- const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02
- const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03
- const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04
- const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05
- const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06
- const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07
- const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08
- const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09
- const SPRITE_ANIM_INDEX_RED_WALK ; 0a
- const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b
- const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c
- const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d
- const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e
- const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f
- const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE ; 10
- const SPRITE_ANIM_INDEX_TRADEMON_ICON ; 11
- const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE ; 12
- const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13
- const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB ; 14
- const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED ; 15
- const SPRITE_ANIM_INDEX_LEAF ; 16
- const SPRITE_ANIM_INDEX_CUT_TREE ; 17
- const SPRITE_ANIM_INDEX_FLY_LEAF ; 18
- const SPRITE_ANIM_INDEX_EGG_CRACK ; 19
- const SPRITE_ANIM_INDEX_1A ; 1a
- const SPRITE_ANIM_INDEX_HEADBUTT ; 1b
- const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c
- const SPRITE_ANIM_INDEX_1D ; 1d
- const SPRITE_ANIM_INDEX_BLUE_WALK ; 1e
- const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE ; 1f
- const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL ; 20
- const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL ; 21
- const SPRITE_ANIM_INDEX_MOBILE_22 ; 22
- const SPRITE_ANIM_INDEX_MOBILE_23 ; 23
- const SPRITE_ANIM_INDEX_MOBILE_24 ; 24
- const SPRITE_ANIM_INDEX_MOBILE_25 ; 25
- const SPRITE_ANIM_INDEX_INTRO_SUICUNE ; 26
- const SPRITE_ANIM_INDEX_INTRO_PICHU ; 27
- const SPRITE_ANIM_INDEX_INTRO_WOOPER ; 28
- const SPRITE_ANIM_INDEX_INTRO_UNOWN ; 29
- const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a
- const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b
- const SPRITE_ANIM_INDEX_CELEBI ; 2c
-
-; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
- const_def
- const SPRITE_ANIM_SEQ_NULL ; 00
- const SPRITE_ANIM_SEQ_PARTY_MON ; 01
- const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH ; 02
- const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED ; 03
- const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04
- const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
- const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06
- const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07
- const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08
- const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09
- const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a
- const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b
- const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c
- const SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR ; 0d
- const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e
- const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f
- const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10
- const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11
- const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE ; 12
- const SPRITE_ANIM_SEQ_REVEAL_NEW_MON ; 13
- const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB ; 14
- const SPRITE_ANIM_SEQ_CUT_LEAVES ; 15
- const SPRITE_ANIM_SEQ_FLY_FROM ; 16
- const SPRITE_ANIM_SEQ_FLY_LEAF ; 17
- const SPRITE_ANIM_SEQ_FLY_TO ; 18
- const SPRITE_ANIM_SEQ_19 ; 19
- const SPRITE_ANIM_SEQ_1A ; 1a
- const SPRITE_ANIM_SEQ_FOR_MOBILE_23 ; 1b
- const SPRITE_ANIM_SEQ_FOR_MOBILE_24 ; 1c
- const SPRITE_ANIM_SEQ_INTRO_SUICUNE ; 1d
- const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER ; 1e
- const SPRITE_ANIM_SEQ_CELEBI ; 1f
- const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20
- const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21
- const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22
-
-; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
- const_def
- const SPRITE_ANIM_FRAMESET_00
- const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03
- const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST ; 05
- const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST ; 06
- const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07
- const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
- const SPRITE_ANIM_FRAMESET_09
- const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
- const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
- const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
- const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
- const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
- const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
- const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10
- const SPRITE_ANIM_FRAMESET_RED_WALK ; 11
- const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12
- const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13
- const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 ; 14
- const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15
- const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16
- const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17
- const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18
- const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19
- const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a
- const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b
- const SPRITE_ANIM_FRAMESET_1C
- const SPRITE_ANIM_FRAMESET_LEAF ; 1d
- const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e
- const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f
- const SPRITE_ANIM_FRAMESET_EGG_HATCH ; 20
- const SPRITE_ANIM_FRAMESET_21
- const SPRITE_ANIM_FRAMESET_22
- const SPRITE_ANIM_FRAMESET_23
- const SPRITE_ANIM_FRAMESET_24
- const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25
- const SPRITE_ANIM_FRAMESET_26
- const SPRITE_ANIM_FRAMESET_27
- const SPRITE_ANIM_FRAMESET_28
- const SPRITE_ANIM_FRAMESET_29
- const SPRITE_ANIM_FRAMESET_2A
- const SPRITE_ANIM_FRAMESET_2B
- const SPRITE_ANIM_FRAMESET_2C
- const SPRITE_ANIM_FRAMESET_BLUE_WALK ; 2d
- const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e
- const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f
- const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_22 ; 31
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_23 ; 32
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_24 ; 33
- const SPRITE_ANIM_FRAMESET_FOR_MOBILE_25 ; 34
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36
- const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37
- const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d
- const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e
- const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
- const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
- const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
-
-; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
- const_def
- const SPRITE_ANIM_FRAME_IDX_RED_WALK_1 ; 00
- const SPRITE_ANIM_FRAME_IDX_RED_WALK_2 ; 01
- const SPRITE_ANIM_FRAME_IDX_02
- const SPRITE_ANIM_FRAME_IDX_03
- const SPRITE_ANIM_FRAME_IDX_04
- const SPRITE_ANIM_FRAME_IDX_05
- const SPRITE_ANIM_FRAME_IDX_06
- const SPRITE_ANIM_FRAME_IDX_07
- const SPRITE_ANIM_FRAME_IDX_08
- const SPRITE_ANIM_FRAME_IDX_09
- const SPRITE_ANIM_FRAME_IDX_0A
- const SPRITE_ANIM_FRAME_IDX_0B
- const SPRITE_ANIM_FRAME_IDX_0C
- const SPRITE_ANIM_FRAME_IDX_0D
- const SPRITE_ANIM_FRAME_IDX_0E
- const SPRITE_ANIM_FRAME_IDX_0F
- const SPRITE_ANIM_FRAME_IDX_10
- const SPRITE_ANIM_FRAME_IDX_11
- const SPRITE_ANIM_FRAME_IDX_12
- const SPRITE_ANIM_FRAME_IDX_13
- const SPRITE_ANIM_FRAME_IDX_14
- const SPRITE_ANIM_FRAME_IDX_15
- const SPRITE_ANIM_FRAME_IDX_16
- const SPRITE_ANIM_FRAME_IDX_17
- const SPRITE_ANIM_FRAME_IDX_18
- const SPRITE_ANIM_FRAME_IDX_19
- const SPRITE_ANIM_FRAME_IDX_1A
- const SPRITE_ANIM_FRAME_IDX_1B
- const SPRITE_ANIM_FRAME_IDX_1C
- const SPRITE_ANIM_FRAME_IDX_1D
- const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1 ; 1e
- const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2 ; 1f
- const SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR ; 20
- const SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09 ; 21
- const SPRITE_ANIM_FRAME_IDX_22
- const SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR ; 23
- const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1 ; 24
- const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2 ; 25
- const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3 ; 26
- const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1 ; 27
- const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2 ; 28
- const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1 ; 29
- const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2 ; 2a
- const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3 ; 2b
- const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4 ; 2c
- const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5 ; 2d
- const SPRITE_ANIM_FRAME_IDX_SLOTS_EGG ; 2e
- const SPRITE_ANIM_FRAME_IDX_STILL_CURSOR ; 2f
- const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1 ; 30
- const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2 ; 31
- const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1 ; 32
- const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2 ; 33
- const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3 ; 34
- const SPRITE_ANIM_FRAME_IDX_35
- const SPRITE_ANIM_FRAME_IDX_36
- const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1 ; 37
- const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2 ; 38
- const SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE ; 39
- const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1 ; 3a
- const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2 ; 3b
- const SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB ; 3c
- const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1 ; 3d
- const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2 ; 3e
- const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1 ; 3f
- const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2 ; 40
- const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1 ; 41
- const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2 ; 42
- const SPRITE_ANIM_FRAME_IDX_43
- const SPRITE_ANIM_FRAME_IDX_44
- const SPRITE_ANIM_FRAME_IDX_45
- const SPRITE_ANIM_FRAME_IDX_46
- const SPRITE_ANIM_FRAME_IDX_47
- const SPRITE_ANIM_FRAME_IDX_48
- const SPRITE_ANIM_FRAME_IDX_49
- const SPRITE_ANIM_FRAME_IDX_4A
- const SPRITE_ANIM_FRAME_IDX_4B
- const SPRITE_ANIM_FRAME_IDX_4C
- const SPRITE_ANIM_FRAME_IDX_4D
- const SPRITE_ANIM_FRAME_IDX_4E
- const SPRITE_ANIM_FRAME_IDX_LEAF ; 4f
- const SPRITE_ANIM_FRAME_IDX_TREE_1 ; 50
- const SPRITE_ANIM_FRAME_IDX_CUT_TREE_2 ; 51
- const SPRITE_ANIM_FRAME_IDX_CUT_TREE_3 ; 52
- const SPRITE_ANIM_FRAME_IDX_CUT_TREE_4 ; 53
- const SPRITE_ANIM_FRAME_IDX_EGG_CRACK ; 54
- const SPRITE_ANIM_FRAME_IDX_55
- const SPRITE_ANIM_FRAME_IDX_56
- const SPRITE_ANIM_FRAME_IDX_57
- const SPRITE_ANIM_FRAME_IDX_58
- const SPRITE_ANIM_FRAME_IDX_59
- const SPRITE_ANIM_FRAME_IDX_5A
- const SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2 ; 5b
- const SPRITE_ANIM_FRAME_IDX_5C
- const SPRITE_ANIM_FRAME_IDX_5D
- const SPRITE_ANIM_FRAME_IDX_5E
- const SPRITE_ANIM_FRAME_IDX_5F
- const SPRITE_ANIM_FRAME_IDX_60
- const SPRITE_ANIM_FRAME_IDX_61
- const SPRITE_ANIM_FRAME_IDX_62
- const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1 ; 63
- const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2 ; 64
- const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1 ; 65
- const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2 ; 66
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1 ; 67
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2 ; 68
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1 ; 69
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2 ; 6a
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3 ; 6b
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23 ; 6c
- const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24 ; 6d
- const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1 ; 6e
- const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2 ; 6f
- const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3 ; 70
- const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4 ; 71
- const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1 ; 72
- const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2 ; 73
- const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3 ; 74
- const SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER ; 75
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1 ; 76
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2 ; 77
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3 ; 78
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1 ; 79
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2 ; 7a
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3 ; 7b
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4 ; 7c
- const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5 ; 7d
- const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY ; 7e
- const SPRITE_ANIM_FRAME_IDX_CELEBI_1 ; 7f
- const SPRITE_ANIM_FRAME_IDX_CELEBI_2 ; 80
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1 ; 81
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2 ; 82
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3 ; 83
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4 ; 84
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5 ; 85
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6 ; 86
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7 ; 87
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8 ; 88
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9 ; 89
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10 ; 8A
- const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11 ; 8B
diff --git a/constants/type_constants.asm b/constants/type_constants.asm
index 6f389617b..c2cf2d709 100644
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -1,6 +1,6 @@
-; TypeNames indexes (see text/types.asm)
+; TypeNames indexes (see data/type_names.asm)
; also used in:
-; - TypeMatchup (see battle.type_matchup.asm)
+; - TypeMatchups (see data/type_matchups.asm)
; - Pokedex_SearchForMons.TypeConversionTable and Pokedex_PlaceSearchScreenTypeStrings.TypeStrings (see engine/pokedex.asm)
const_def
diff --git a/data/battle/ball_colors.asm b/data/anims/ball_colors.asm
index c3ba9d2b4..c3ba9d2b4 100644
--- a/data/battle/ball_colors.asm
+++ b/data/anims/ball_colors.asm
diff --git a/battle/objects/framesets.asm b/data/anims/framesets.asm
index 3e4186aed..7b4bb0a71 100755
--- a/battle/objects/framesets.asm
+++ b/data/anims/framesets.asm
@@ -1,191 +1,192 @@
BattleAnimFrameData: ; ce85e
- dw .Frameset_00 ; 00
- dw .Frameset_01 ; 01
- dw .Frameset_02 ; 02
- dw .Frameset_03 ; 03
- dw .Frameset_04 ; 04
- dw .Frameset_05 ; 05
- dw .Frameset_06 ; 06
- dw .Frameset_07 ; 07
- dw .Frameset_08 ; 08
- dw .Frameset_09 ; 09
- dw .Frameset_0a ; 0a
- dw .Frameset_0b ; 0b
- dw .Frameset_0c ; 0c
- dw .Frameset_0d ; 0d
- dw .Frameset_0e ; 0e
- dw .Frameset_0f ; 0f
- dw .Frameset_10 ; 10
- dw .Frameset_11 ; 11
- dw .Frameset_12 ; 12
- dw .Frameset_13 ; 13
- dw .Frameset_14 ; 14
- dw .Frameset_15 ; 15
- dw .Frameset_16 ; 16
- dw .Frameset_17 ; 17
- dw .Frameset_18 ; 18
- dw .Frameset_19 ; 19
- dw .Frameset_1a ; 1a
- dw .Frameset_1b ; 1b
- dw .Frameset_1c ; 1c
- dw .Frameset_1d ; 1d
- dw .Frameset_1e ; 1e
- dw .Frameset_1f ; 1f
- dw .Frameset_20 ; 20
- dw .Frameset_21 ; 21
- dw .Frameset_22 ; 22
- dw .Frameset_23 ; 23
- dw .Frameset_24 ; 24
- dw .Frameset_25 ; 25
- dw .Frameset_26 ; 26
- dw .Frameset_27 ; 27
- dw .Frameset_28 ; 28
- dw .Frameset_29 ; 29
- dw .Frameset_2a ; 2a
- dw .Frameset_2b ; 2b
- dw .Frameset_2c ; 2c
- dw .Frameset_2d ; 2d
- dw .Frameset_2e ; 2e
- dw .Frameset_2f ; 2f
- dw .Frameset_30 ; 30
- dw .Frameset_31 ; 31
- dw .Frameset_32 ; 32
- dw .Frameset_33 ; 33
- dw .Frameset_34 ; 34
- dw .Frameset_35 ; 35
- dw .Frameset_36 ; 36
- dw .Frameset_37 ; 37
- dw .Frameset_38 ; 38
- dw .Frameset_39 ; 39
- dw .Frameset_3a ; 3a
- dw .Frameset_3b ; 3b
- dw .Frameset_3c ; 3c
- dw .Frameset_3d ; 3d
- dw .Frameset_3e ; 3e
- dw .Frameset_3f ; 3f
- dw .Frameset_40 ; 40
- dw .Frameset_41 ; 41
- dw .Frameset_42 ; 42
- dw .Frameset_43 ; 43
- dw .Frameset_44 ; 44
- dw .Frameset_45 ; 45
- dw .Frameset_46 ; 46
- dw .Frameset_47 ; 47
- dw .Frameset_48 ; 48
- dw .Frameset_49 ; 49
- dw .Frameset_4a ; 4a
- dw .Frameset_4b ; 4b
- dw .Frameset_4c ; 4c
- dw .Frameset_4d ; 4d
- dw .Frameset_4e ; 4e
- dw .Frameset_4f ; 4f
- dw .Frameset_50 ; 50
- dw .Frameset_51 ; 51
- dw .Frameset_52 ; 52
- dw .Frameset_53 ; 53
- dw .Frameset_54 ; 54
- dw .Frameset_55 ; 55
- dw .Frameset_56 ; 56
- dw .Frameset_57 ; 57
- dw .Frameset_58 ; 58
- dw .Frameset_59 ; 59
- dw .Frameset_5a ; 5a
- dw .Frameset_5b ; 5b
- dw .Frameset_5c ; 5c
- dw .Frameset_5d ; 5d
- dw .Frameset_5e ; 5e
- dw .Frameset_5f ; 5f
- dw .Frameset_60 ; 60
- dw .Frameset_61 ; 61
- dw .Frameset_62 ; 62
- dw .Frameset_63 ; 63
- dw .Frameset_64 ; 64
- dw .Frameset_65 ; 65
- dw .Frameset_66 ; 66
- dw .Frameset_67 ; 67
- dw .Frameset_68 ; 68
- dw .Frameset_69 ; 69
- dw .Frameset_6a ; 6a
- dw .Frameset_6b ; 6b
- dw .Frameset_6c ; 6c
- dw .Frameset_6d ; 6d
- dw .Frameset_6e ; 6e
- dw .Frameset_6f ; 6f
- dw .Frameset_70 ; 70
- dw .Frameset_71 ; 71
- dw .Frameset_72 ; 72
- dw .Frameset_73 ; 73
- dw .Frameset_74 ; 74
- dw .Frameset_75 ; 75
- dw .Frameset_76 ; 76
- dw .Frameset_77 ; 77
- dw .Frameset_78 ; 78
- dw .Frameset_79 ; 79
- dw .Frameset_7a ; 7a
- dw .Frameset_7b ; 7b
- dw .Frameset_7c ; 7c
- dw .Frameset_7d ; 7d
- dw .Frameset_7e ; 7e
- dw .Frameset_7f ; 7f
- dw .Frameset_80 ; 80
- dw .Frameset_81 ; 81
- dw .Frameset_82 ; 82
- dw .Frameset_83 ; 83
- dw .Frameset_84 ; 84
- dw .Frameset_85 ; 85
- dw .Frameset_86 ; 86
- dw .Frameset_87 ; 87
- dw .Frameset_88 ; 88
- dw .Frameset_89 ; 89
- dw .Frameset_8a ; 8a
- dw .Frameset_8b ; 8b
- dw .Frameset_8c ; 8c
- dw .Frameset_8d ; 8d
- dw .Frameset_8e ; 8e
- dw .Frameset_8f ; 8f
- dw .Frameset_90 ; 90
- dw .Frameset_91 ; 91
- dw .Frameset_92 ; 92
- dw .Frameset_93 ; 93
- dw .Frameset_94 ; 94
- dw .Frameset_95 ; 95
- dw .Frameset_96 ; 96
- dw .Frameset_97 ; 97
- dw .Frameset_98 ; 98
- dw .Frameset_99 ; 99
- dw .Frameset_9a ; 9a
- dw .Frameset_9b ; 9b
- dw .Frameset_9c ; 9c
- dw .Frameset_9d ; 9d
- dw .Frameset_9e ; 9e
- dw .Frameset_9f ; 9f
- dw .Frameset_a0 ; a0
- dw .Frameset_a1 ; a1
- dw .Frameset_a2 ; a2
- dw .Frameset_a3 ; a3
- dw .Frameset_a4 ; a4
- dw .Frameset_a5 ; a5
- dw .Frameset_a6 ; a6
- dw .Frameset_a7 ; a7
- dw .Frameset_a8 ; a8
- dw .Frameset_a9 ; a9
- dw .Frameset_aa ; aa
- dw .Frameset_ab ; ab
- dw .Frameset_ac ; ac
- dw .Frameset_ad ; ad
- dw .Frameset_ae ; ae
- dw .Frameset_af ; af
- dw .Frameset_b0 ; b0
- dw .Frameset_b1 ; b1
- dw .Frameset_b2 ; b2
- dw .Frameset_b3 ; b3
- dw .Frameset_b4 ; b4
- dw .Frameset_b5 ; b5
- dw .Frameset_b6 ; b6
- dw .Frameset_b7 ; b7
- dw .Frameset_b8 ; b8
-
- ; OAM index (see battle/objects/oam.asm), flip flags / duration
+; entries correspond to BATTLEANIMFRAMESET_* constants
+ dw .Frameset_00 ; BATTLEANIMFRAMESET_00
+ dw .Frameset_01 ; BATTLEANIMFRAMESET_01
+ dw .Frameset_02 ; BATTLEANIMFRAMESET_02
+ dw .Frameset_03 ; BATTLEANIMFRAMESET_03
+ dw .Frameset_04 ; BATTLEANIMFRAMESET_04
+ dw .Frameset_05 ; BATTLEANIMFRAMESET_05
+ dw .Frameset_06 ; BATTLEANIMFRAMESET_06
+ dw .Frameset_07 ; BATTLEANIMFRAMESET_07
+ dw .Frameset_08 ; BATTLEANIMFRAMESET_08
+ dw .Frameset_09 ; BATTLEANIMFRAMESET_09
+ dw .Frameset_0a ; BATTLEANIMFRAMESET_0A
+ dw .Frameset_0b ; BATTLEANIMFRAMESET_0B
+ dw .Frameset_0c ; BATTLEANIMFRAMESET_0C
+ dw .Frameset_0d ; BATTLEANIMFRAMESET_0D
+ dw .Frameset_0e ; BATTLEANIMFRAMESET_0E
+ dw .Frameset_0f ; BATTLEANIMFRAMESET_0F
+ dw .Frameset_10 ; BATTLEANIMFRAMESET_10
+ dw .Frameset_11 ; BATTLEANIMFRAMESET_11
+ dw .Frameset_12 ; BATTLEANIMFRAMESET_12
+ dw .Frameset_13 ; BATTLEANIMFRAMESET_13
+ dw .Frameset_14 ; BATTLEANIMFRAMESET_14
+ dw .Frameset_15 ; BATTLEANIMFRAMESET_15
+ dw .Frameset_16 ; BATTLEANIMFRAMESET_16
+ dw .Frameset_17 ; BATTLEANIMFRAMESET_17
+ dw .Frameset_18 ; BATTLEANIMFRAMESET_18
+ dw .Frameset_19 ; BATTLEANIMFRAMESET_19
+ dw .Frameset_1a ; BATTLEANIMFRAMESET_1A
+ dw .Frameset_1b ; BATTLEANIMFRAMESET_1B
+ dw .Frameset_1c ; BATTLEANIMFRAMESET_1C
+ dw .Frameset_1d ; BATTLEANIMFRAMESET_1D
+ dw .Frameset_1e ; BATTLEANIMFRAMESET_1E
+ dw .Frameset_1f ; BATTLEANIMFRAMESET_1F
+ dw .Frameset_20 ; BATTLEANIMFRAMESET_20
+ dw .Frameset_21 ; BATTLEANIMFRAMESET_21
+ dw .Frameset_22 ; BATTLEANIMFRAMESET_22
+ dw .Frameset_23 ; BATTLEANIMFRAMESET_23
+ dw .Frameset_24 ; BATTLEANIMFRAMESET_24
+ dw .Frameset_25 ; BATTLEANIMFRAMESET_25
+ dw .Frameset_26 ; BATTLEANIMFRAMESET_26
+ dw .Frameset_27 ; BATTLEANIMFRAMESET_27
+ dw .Frameset_28 ; BATTLEANIMFRAMESET_28
+ dw .Frameset_29 ; BATTLEANIMFRAMESET_29
+ dw .Frameset_2a ; BATTLEANIMFRAMESET_2A
+ dw .Frameset_2b ; BATTLEANIMFRAMESET_2B
+ dw .Frameset_2c ; BATTLEANIMFRAMESET_2C
+ dw .Frameset_2d ; BATTLEANIMFRAMESET_2D
+ dw .Frameset_2e ; BATTLEANIMFRAMESET_2E
+ dw .Frameset_2f ; BATTLEANIMFRAMESET_2F
+ dw .Frameset_30 ; BATTLEANIMFRAMESET_30
+ dw .Frameset_31 ; BATTLEANIMFRAMESET_31
+ dw .Frameset_32 ; BATTLEANIMFRAMESET_32
+ dw .Frameset_33 ; BATTLEANIMFRAMESET_33
+ dw .Frameset_34 ; BATTLEANIMFRAMESET_34
+ dw .Frameset_35 ; BATTLEANIMFRAMESET_35
+ dw .Frameset_36 ; BATTLEANIMFRAMESET_36
+ dw .Frameset_37 ; BATTLEANIMFRAMESET_37
+ dw .Frameset_38 ; BATTLEANIMFRAMESET_38
+ dw .Frameset_39 ; BATTLEANIMFRAMESET_39
+ dw .Frameset_3a ; BATTLEANIMFRAMESET_3A
+ dw .Frameset_3b ; BATTLEANIMFRAMESET_3B
+ dw .Frameset_3c ; BATTLEANIMFRAMESET_3C
+ dw .Frameset_3d ; BATTLEANIMFRAMESET_3D
+ dw .Frameset_3e ; BATTLEANIMFRAMESET_3E
+ dw .Frameset_3f ; BATTLEANIMFRAMESET_3F
+ dw .Frameset_40 ; BATTLEANIMFRAMESET_40
+ dw .Frameset_41 ; BATTLEANIMFRAMESET_41
+ dw .Frameset_42 ; BATTLEANIMFRAMESET_42
+ dw .Frameset_43 ; BATTLEANIMFRAMESET_43
+ dw .Frameset_44 ; BATTLEANIMFRAMESET_44
+ dw .Frameset_45 ; BATTLEANIMFRAMESET_45
+ dw .Frameset_46 ; BATTLEANIMFRAMESET_46
+ dw .Frameset_47 ; BATTLEANIMFRAMESET_47
+ dw .Frameset_48 ; BATTLEANIMFRAMESET_48
+ dw .Frameset_49 ; BATTLEANIMFRAMESET_49
+ dw .Frameset_4a ; BATTLEANIMFRAMESET_4A
+ dw .Frameset_4b ; BATTLEANIMFRAMESET_4B
+ dw .Frameset_4c ; BATTLEANIMFRAMESET_4C
+ dw .Frameset_4d ; BATTLEANIMFRAMESET_4D
+ dw .Frameset_4e ; BATTLEANIMFRAMESET_4E
+ dw .Frameset_4f ; BATTLEANIMFRAMESET_4F
+ dw .Frameset_50 ; BATTLEANIMFRAMESET_50
+ dw .Frameset_51 ; BATTLEANIMFRAMESET_51
+ dw .Frameset_52 ; BATTLEANIMFRAMESET_52
+ dw .Frameset_53 ; BATTLEANIMFRAMESET_53
+ dw .Frameset_54 ; BATTLEANIMFRAMESET_54
+ dw .Frameset_55 ; BATTLEANIMFRAMESET_55
+ dw .Frameset_56 ; BATTLEANIMFRAMESET_56
+ dw .Frameset_57 ; BATTLEANIMFRAMESET_57
+ dw .Frameset_58 ; BATTLEANIMFRAMESET_58
+ dw .Frameset_59 ; BATTLEANIMFRAMESET_59
+ dw .Frameset_5a ; BATTLEANIMFRAMESET_5A
+ dw .Frameset_5b ; BATTLEANIMFRAMESET_5B
+ dw .Frameset_5c ; BATTLEANIMFRAMESET_5C
+ dw .Frameset_5d ; BATTLEANIMFRAMESET_5D
+ dw .Frameset_5e ; BATTLEANIMFRAMESET_5E
+ dw .Frameset_5f ; BATTLEANIMFRAMESET_5F
+ dw .Frameset_60 ; BATTLEANIMFRAMESET_60
+ dw .Frameset_61 ; BATTLEANIMFRAMESET_61
+ dw .Frameset_62 ; BATTLEANIMFRAMESET_62
+ dw .Frameset_63 ; BATTLEANIMFRAMESET_63
+ dw .Frameset_64 ; BATTLEANIMFRAMESET_64
+ dw .Frameset_65 ; BATTLEANIMFRAMESET_65
+ dw .Frameset_66 ; BATTLEANIMFRAMESET_66
+ dw .Frameset_67 ; BATTLEANIMFRAMESET_67
+ dw .Frameset_68 ; BATTLEANIMFRAMESET_68
+ dw .Frameset_69 ; BATTLEANIMFRAMESET_69
+ dw .Frameset_6a ; BATTLEANIMFRAMESET_6A
+ dw .Frameset_6b ; BATTLEANIMFRAMESET_6B
+ dw .Frameset_6c ; BATTLEANIMFRAMESET_6C
+ dw .Frameset_6d ; BATTLEANIMFRAMESET_6D
+ dw .Frameset_6e ; BATTLEANIMFRAMESET_6E
+ dw .Frameset_6f ; BATTLEANIMFRAMESET_6F
+ dw .Frameset_70 ; BATTLEANIMFRAMESET_70
+ dw .Frameset_71 ; BATTLEANIMFRAMESET_71
+ dw .Frameset_72 ; BATTLEANIMFRAMESET_72
+ dw .Frameset_73 ; BATTLEANIMFRAMESET_73
+ dw .Frameset_74 ; BATTLEANIMFRAMESET_74
+ dw .Frameset_75 ; BATTLEANIMFRAMESET_75
+ dw .Frameset_76 ; BATTLEANIMFRAMESET_76
+ dw .Frameset_77 ; BATTLEANIMFRAMESET_77
+ dw .Frameset_78 ; BATTLEANIMFRAMESET_78
+ dw .Frameset_79 ; BATTLEANIMFRAMESET_79
+ dw .Frameset_7a ; BATTLEANIMFRAMESET_7A
+ dw .Frameset_7b ; BATTLEANIMFRAMESET_7B
+ dw .Frameset_7c ; BATTLEANIMFRAMESET_7C
+ dw .Frameset_7d ; BATTLEANIMFRAMESET_7D
+ dw .Frameset_7e ; BATTLEANIMFRAMESET_7E
+ dw .Frameset_7f ; BATTLEANIMFRAMESET_7F
+ dw .Frameset_80 ; BATTLEANIMFRAMESET_80
+ dw .Frameset_81 ; BATTLEANIMFRAMESET_81
+ dw .Frameset_82 ; BATTLEANIMFRAMESET_82
+ dw .Frameset_83 ; BATTLEANIMFRAMESET_83
+ dw .Frameset_84 ; BATTLEANIMFRAMESET_84
+ dw .Frameset_85 ; BATTLEANIMFRAMESET_85
+ dw .Frameset_86 ; BATTLEANIMFRAMESET_86
+ dw .Frameset_87 ; BATTLEANIMFRAMESET_87
+ dw .Frameset_88 ; BATTLEANIMFRAMESET_88
+ dw .Frameset_89 ; BATTLEANIMFRAMESET_89
+ dw .Frameset_8a ; BATTLEANIMFRAMESET_8A
+ dw .Frameset_8b ; BATTLEANIMFRAMESET_8B
+ dw .Frameset_8c ; BATTLEANIMFRAMESET_8C
+ dw .Frameset_8d ; BATTLEANIMFRAMESET_8D
+ dw .Frameset_8e ; BATTLEANIMFRAMESET_8E
+ dw .Frameset_8f ; BATTLEANIMFRAMESET_8F
+ dw .Frameset_90 ; BATTLEANIMFRAMESET_90
+ dw .Frameset_91 ; BATTLEANIMFRAMESET_91
+ dw .Frameset_92 ; BATTLEANIMFRAMESET_92
+ dw .Frameset_93 ; BATTLEANIMFRAMESET_93
+ dw .Frameset_94 ; BATTLEANIMFRAMESET_94
+ dw .Frameset_95 ; BATTLEANIMFRAMESET_95
+ dw .Frameset_96 ; BATTLEANIMFRAMESET_96
+ dw .Frameset_97 ; BATTLEANIMFRAMESET_97
+ dw .Frameset_98 ; BATTLEANIMFRAMESET_98
+ dw .Frameset_99 ; BATTLEANIMFRAMESET_99
+ dw .Frameset_9a ; BATTLEANIMFRAMESET_9A
+ dw .Frameset_9b ; BATTLEANIMFRAMESET_9B
+ dw .Frameset_9c ; BATTLEANIMFRAMESET_9C
+ dw .Frameset_9d ; BATTLEANIMFRAMESET_9D
+ dw .Frameset_9e ; BATTLEANIMFRAMESET_9E
+ dw .Frameset_9f ; BATTLEANIMFRAMESET_9F
+ dw .Frameset_a0 ; BATTLEANIMFRAMESET_A0
+ dw .Frameset_a1 ; BATTLEANIMFRAMESET_A1
+ dw .Frameset_a2 ; BATTLEANIMFRAMESET_A2
+ dw .Frameset_a3 ; BATTLEANIMFRAMESET_A3
+ dw .Frameset_a4 ; BATTLEANIMFRAMESET_A4
+ dw .Frameset_a5 ; BATTLEANIMFRAMESET_A5
+ dw .Frameset_a6 ; BATTLEANIMFRAMESET_A6
+ dw .Frameset_a7 ; BATTLEANIMFRAMESET_A7
+ dw .Frameset_a8 ; BATTLEANIMFRAMESET_A8
+ dw .Frameset_a9 ; BATTLEANIMFRAMESET_A9
+ dw .Frameset_aa ; BATTLEANIMFRAMESET_AA
+ dw .Frameset_ab ; BATTLEANIMFRAMESET_AB
+ dw .Frameset_ac ; BATTLEANIMFRAMESET_AC
+ dw .Frameset_ad ; BATTLEANIMFRAMESET_AD
+ dw .Frameset_ae ; BATTLEANIMFRAMESET_AE
+ dw .Frameset_af ; BATTLEANIMFRAMESET_AF
+ dw .Frameset_b0 ; BATTLEANIMFRAMESET_B0
+ dw .Frameset_b1 ; BATTLEANIMFRAMESET_B1
+ dw .Frameset_b2 ; BATTLEANIMFRAMESET_B2
+ dw .Frameset_b3 ; BATTLEANIMFRAMESET_B3
+ dw .Frameset_b4 ; BATTLEANIMFRAMESET_B4
+ dw .Frameset_b5 ; BATTLEANIMFRAMESET_B5
+ dw .Frameset_b6 ; BATTLEANIMFRAMESET_B6
+ dw .Frameset_b7 ; BATTLEANIMFRAMESET_B7
+ dw .Frameset_b8 ; BATTLEANIMFRAMESET_B8
+
+ ; OAM index (see data/anims/oam.asm), flip flags / duration
.Frameset_00:
db BATTLEANIMOAMSET_00, $06
db -4
diff --git a/battle/objects/oam.asm b/data/anims/oam.asm
index 79b475c71..5d88977bd 100755
--- a/battle/objects/oam.asm
+++ b/data/anims/oam.asm
@@ -1,221 +1,222 @@
BattleAnimOAMData: ; ceeae
-; vtile offset (?), length, address
- dbbw $00, 16, .OAMData_00 ; 00
- dbbw $04, 9, .OAMData_01 ; 01
- dbbw $08, 4, .OAMData_02 ; 02
- dbbw $09, 4, .OAMData_03 ; 03
- dbbw $0d, 4, .OAMData_04 ; 04
- dbbw $0f, 4, .OAMData_03 ; 05
- dbbw $13, 4, .OAMData_04 ; 06
- dbbw $04, 16, .OAMData_00 ; 07
- dbbw $08, 16, .OAMData_00 ; 08
- dbbw $08, 16, .OAMData_09 ; 09
- dbbw $00, 4, .OAMData_04 ; 0a
- dbbw $02, 4, .OAMData_03 ; 0b
- dbbw $06, 2, .OAMData_0c ; 0c
- dbbw $07, 2, .OAMData_0c ; 0d
- dbbw $02, 4, .OAMData_04 ; 0e
- dbbw $04, 1, .OAMData_0f ; 0f
- dbbw $05, 1, .OAMData_0f ; 10
- dbbw $00, 2, .OAMData_11 ; 11
- dbbw $02, 2, .OAMData_11 ; 12
- dbbw $00, 4, .OAMData_13 ; 13
- dbbw $00, 1, .OAMData_0f ; 14
- dbbw $01, 1, .OAMData_0f ; 15
- dbbw $02, 1, .OAMData_0f ; 16
- dbbw $03, 1, .OAMData_0f ; 17
- dbbw $00, 4, .OAMData_02 ; 18
- dbbw $01, 16, .OAMData_00 ; 19
- dbbw $05, 16, .OAMData_00 ; 1a
- dbbw $00, 4, .OAMData_03 ; 1b
- dbbw $05, 12, .OAMData_1c ; 1c
- dbbw $02, 4, .OAMData_02 ; 1d
- dbbw $06, 1, .OAMData_0f ; 1e
- dbbw $07, 1, .OAMData_0f ; 1f
- dbbw $08, 1, .OAMData_0f ; 20
- dbbw $04, 4, .OAMData_03 ; 21
- dbbw $09, 22, .OAMData_22 ; 22
- dbbw $04, 2, .OAMData_11 ; 23
- dbbw $06, 2, .OAMData_11 ; 24
- dbbw $0c, 1, .OAMData_0f ; 25
- dbbw $0a, 1, .OAMData_0f ; 26
- dbbw $0b, 4, .OAMData_02 ; 27
- dbbw $08, 4, .OAMData_04 ; 28
- dbbw $06, 4, .OAMData_04 ; 29
- dbbw $00, 5, .OAMData_2a ; 2a
- dbbw $03, 6, .OAMData_2b ; 2b
- dbbw $00, 7, .OAMData_2c ; 2c
- dbbw $03, 8, .OAMData_2d ; 2d
- dbbw $00, 9, .OAMData_2e ; 2e
- dbbw $00, 4, .OAMData_2f ; 2f
- dbbw $02, 4, .OAMData_30 ; 30
- dbbw $04, 6, .OAMData_31 ; 31
- dbbw $00, 2, .OAMData_32 ; 32
- dbbw $00, 7, .OAMData_33 ; 33
- dbbw $00, 14, .OAMData_32 ; 34
- dbbw $00, 21, .OAMData_33 ; 35
- dbbw $00, 2, .OAMData_36 ; 36
- dbbw $00, 6, .OAMData_36 ; 37
- dbbw $00, 10, .OAMData_36 ; 38
- dbbw $00, 14, .OAMData_36 ; 39
- dbbw $00, 2, .OAMData_3a ; 3a
- dbbw $00, 6, .OAMData_3a ; 3b
- dbbw $00, 10, .OAMData_3a ; 3c
- dbbw $00, 14, .OAMData_3a ; 3d
- dbbw $00, 4, .OAMData_3e ; 3e
- dbbw $00, 16, .OAMData_3e ; 3f
- dbbw $00, 26, .OAMData_3e ; 40
- dbbw $00, 26, .OAMData_41 ; 41
- dbbw $0e, 4, .OAMData_42 ; 42
- dbbw $0e, 8, .OAMData_42 ; 43
- dbbw $0e, 4, .OAMData_44 ; 44
- dbbw $0e, 8, .OAMData_44 ; 45
- dbbw $0e, 4, .OAMData_46 ; 46
- dbbw $0e, 4, .OAMData_47 ; 47
- dbbw $00, 6, .OAMData_48 ; 48
- dbbw $03, 4, .OAMData_49 ; 49
- dbbw $03, 2, .OAMData_4a ; 4a
- dbbw $01, 5, .OAMData_0f ; 4b
- dbbw $01, 6, .OAMData_4c ; 4c
- dbbw $01, 7, .OAMData_4d ; 4d
- dbbw $01, 3, .OAMData_4d ; 4e
- dbbw $01, 8, .OAMData_4f ; 4f
- dbbw $01, 9, .OAMData_50 ; 50
- dbbw $01, 10, .OAMData_51 ; 51
- dbbw $01, 6, .OAMData_51 ; 52
- dbbw $00, 9, .OAMData_01 ; 53
- dbbw $04, 4, .OAMData_02 ; 54
- dbbw $05, 4, .OAMData_02 ; 55
- dbbw $00, 2, .OAMData_56 ; 56
- dbbw $02, 2, .OAMData_56 ; 57
- dbbw $04, 2, .OAMData_56 ; 58
- dbbw $02, 4, .OAMData_59 ; 59
- dbbw $02, 4, .OAMData_5a ; 5a
- dbbw $02, 2, .OAMData_0c ; 5b
- dbbw $04, 2, .OAMData_0c ; 5c
- dbbw $06, 4, .OAMData_5d ; 5d
- dbbw $08, 2, .OAMData_0c ; 5e
- dbbw $09, 2, .OAMData_0c ; 5f
- dbbw $05, 2, .OAMData_60 ; 60
- dbbw $00, 2, .OAMData_61 ; 61
- dbbw $00, 5, .OAMData_61 ; 62
- dbbw $00, 9, .OAMData_61 ; 63
- dbbw $09, 9, .OAMData_61 ; 64
- dbbw $00, 4, .OAMData_65 ; 65
- dbbw $00, 7, .OAMData_65 ; 66
- dbbw $00, 9, .OAMData_65 ; 67
- dbbw $09, 9, .OAMData_65 ; 68
- dbbw $04, 1, .OAMData_69 ; 69
- dbbw $05, 2, .OAMData_6a ; 6a
- dbbw $06, 4, .OAMData_03 ; 6b
- dbbw $0a, 4, .OAMData_03 ; 6c
- dbbw $0e, 4, .OAMData_03 ; 6d
- dbbw $08, 5, .OAMData_6e ; 6e
- dbbw $0d, 3, .OAMData_6f ; 6f
- dbbw $01, 8, .OAMData_70 ; 70
- dbbw $03, 8, .OAMData_70 ; 71
- dbbw $05, 8, .OAMData_70 ; 72
- dbbw $07, 8, .OAMData_70 ; 73
- dbbw $06, 4, .OAMData_02 ; 74
- dbbw $07, 4, .OAMData_02 ; 75
- dbbw $0a, 2, .OAMData_76 ; 76
- dbbw $00, 1, .OAMData_77 ; 77
- dbbw $00, 3, .OAMData_78 ; 78
- dbbw $00, 6, .OAMData_79 ; 79
- dbbw $00, 9, .OAMData_7a ; 7a
- dbbw $00, 12, .OAMData_7b ; 7b
- dbbw $00, 14, .OAMData_7c ; 7c
- dbbw $00, 15, .OAMData_7d ; 7d
- dbbw $04, 4, .OAMData_03 ; 7e
- dbbw $08, 4, .OAMData_03 ; 7f
- dbbw $0d, 1, .OAMData_0f ; 80
- dbbw $0e, 4, .OAMData_81 ; 81
- dbbw $10, 1, .OAMData_0f ; 82
- dbbw $11, 1, .OAMData_0f ; 83
- dbbw $04, 2, .OAMData_6a ; 84
- dbbw $05, 2, .OAMData_6a ; 85
- dbbw $0a, 4, .OAMData_04 ; 86
- dbbw $00, 8, .OAMData_87 ; 87
- dbbw $00, 12, .OAMData_88 ; 88
- dbbw $00, 16, .OAMData_87 ; 89
- dbbw $09, 2, .OAMData_8a ; 8a
- dbbw $09, 4, .OAMData_8a ; 8b
- dbbw $09, 6, .OAMData_8a ; 8c
- dbbw $09, 8, .OAMData_8a ; 8d
- dbbw $12, 5, .OAMData_8e ; 8e
- dbbw $00, 4, .OAMData_8f ; 8f
- dbbw $04, 4, .OAMData_8f ; 90
- dbbw $08, 4, .OAMData_8f ; 91
- dbbw $0c, 4, .OAMData_8f ; 92
- dbbw $00, 6, .OAMData_93 ; 93
- dbbw $04, 4, .OAMData_03 ; 94
- dbbw $0a, 4, .OAMData_04 ; 95
- dbbw $15, 4, .OAMData_30 ; 96
- dbbw $04, 4, .OAMData_30 ; 97
- dbbw $0c, 4, .OAMData_04 ; 98
- dbbw $0a, 4, .OAMData_99 ; 99
- dbbw $0c, 4, .OAMData_03 ; 9a
- dbbw $00, 36, .OAMData_9b ; 9b
- dbbw $0d, 2, .OAMData_9c ; 9c
- dbbw $0d, 4, .OAMData_9c ; 9d
- dbbw $0d, 6, .OAMData_9c ; 9e
- dbbw $02, 8, .OAMData_9f ; 9f
- dbbw $08, 7, .OAMData_a0 ; a0
- dbbw $08, 5, .OAMData_a0 ; a1
- dbbw $08, 3, .OAMData_a0 ; a2
- dbbw $00, 16, .OAMData_1c ; a3
- dbbw $00, 9, .OAMData_a4 ; a4
- dbbw $06, 9, .OAMData_a4 ; a5
- dbbw $0c, 9, .OAMData_a4 ; a6
- dbbw $12, 9, .OAMData_a4 ; a7
- dbbw $18, 9, .OAMData_a4 ; a8
- dbbw $1e, 9, .OAMData_a4 ; a9
- dbbw $24, 9, .OAMData_a4 ; aa
- dbbw $2a, 9, .OAMData_a4 ; ab
- dbbw $03, 4, .OAMData_ac ; ac
- dbbw $12, 4, .OAMData_03 ; ad
- dbbw $10, 4, .OAMData_04 ; ae
- dbbw $16, 1, .OAMData_0f ; af
- dbbw $17, 4, .OAMData_02 ; b0
- dbbw $18, 4, .OAMData_03 ; b1
- dbbw $1c, 4, .OAMData_03 ; b2
- dbbw $20, 3, .OAMData_03 ; b3
- dbbw $23, 4, .OAMData_04 ; b4
- dbbw $25, 3, .OAMData_03 ; b5
- dbbw $17, 4, .OAMData_03 ; b6
- dbbw $0a, 16, .OAMData_00 ; b7
- dbbw $10, 16, .OAMData_1c ; b8
- dbbw $00, 16, .OAMData_1c ; b9
- dbbw $04, 4, .OAMData_03 ; ba
- dbbw $08, 2, .OAMData_11 ; bb
- dbbw $20, 6, .OAMData_bc ; bc
- dbbw $08, 1, .OAMData_0f ; bd
- dbbw $04, 4, .OAMData_03 ; be
- dbbw $1a, 4, .OAMData_30 ; bf
- dbbw $16, 9, .OAMData_01 ; c0
- dbbw $10, 16, .OAMData_c1 ; c1
- dbbw $09, 6, .OAMData_c2 ; c2
- dbbw $11, 9, .OAMData_c3 ; c3
- dbbw $0e, 4, .OAMData_03 ; c4
- dbbw $0b, 4, .OAMData_30 ; c5
- dbbw $1c, 6, .OAMData_02 ; c6
- dbbw $20, 16, .OAMData_c1 ; c7
- dbbw $05, 6, .OAMData_c8 ; c8
- dbbw $0b, 4, .OAMData_03 ; c9
- dbbw $09, 4, .OAMData_ca ; ca
- dbbw $0b, 4, .OAMData_04 ; cb
- dbbw $11, 13, .OAMData_cc ; cc
- dbbw $00, 9, .OAMData_c3 ; cd
- dbbw $09, 9, .OAMData_c3 ; ce
- dbbw $00, 12, .OAMData_cf ; cf
- dbbw $06, 12, .OAMData_cf ; d0
- dbbw $0c, 12, .OAMData_cf ; d1
- dbbw $12, 12, .OAMData_cf ; d2
- dbbw $00, 13, .OAMData_cc ; d3
- dbbw $00, 7, .OAMData_d4 ; d4
- dbbw $00, 6, .OAMData_d5 ; d5
- dbbw $00, 14, .OAMData_d6 ; d6
- dbbw $00, 12, .OAMData_d7 ; d7
+; entries correspond to BATTLEANIMOAMSET_* constants
+ ; vtile offset, length, pointer
+ dbbw $00, 16, .OAMData_00 ; BATTLEANIMOAMSET_00
+ dbbw $04, 9, .OAMData_01 ; BATTLEANIMOAMSET_01
+ dbbw $08, 4, .OAMData_02 ; BATTLEANIMOAMSET_02
+ dbbw $09, 4, .OAMData_03 ; BATTLEANIMOAMSET_03
+ dbbw $0d, 4, .OAMData_04 ; BATTLEANIMOAMSET_04
+ dbbw $0f, 4, .OAMData_03 ; BATTLEANIMOAMSET_05
+ dbbw $13, 4, .OAMData_04 ; BATTLEANIMOAMSET_06
+ dbbw $04, 16, .OAMData_00 ; BATTLEANIMOAMSET_07
+ dbbw $08, 16, .OAMData_00 ; BATTLEANIMOAMSET_08
+ dbbw $08, 16, .OAMData_09 ; BATTLEANIMOAMSET_09
+ dbbw $00, 4, .OAMData_04 ; BATTLEANIMOAMSET_0A
+ dbbw $02, 4, .OAMData_03 ; BATTLEANIMOAMSET_0B
+ dbbw $06, 2, .OAMData_0c ; BATTLEANIMOAMSET_0C
+ dbbw $07, 2, .OAMData_0c ; BATTLEANIMOAMSET_0D
+ dbbw $02, 4, .OAMData_04 ; BATTLEANIMOAMSET_0E
+ dbbw $04, 1, .OAMData_0f ; BATTLEANIMOAMSET_0F
+ dbbw $05, 1, .OAMData_0f ; BATTLEANIMOAMSET_10
+ dbbw $00, 2, .OAMData_11 ; BATTLEANIMOAMSET_11
+ dbbw $02, 2, .OAMData_11 ; BATTLEANIMOAMSET_12
+ dbbw $00, 4, .OAMData_13 ; BATTLEANIMOAMSET_13
+ dbbw $00, 1, .OAMData_0f ; BATTLEANIMOAMSET_14
+ dbbw $01, 1, .OAMData_0f ; BATTLEANIMOAMSET_15
+ dbbw $02, 1, .OAMData_0f ; BATTLEANIMOAMSET_16
+ dbbw $03, 1, .OAMData_0f ; BATTLEANIMOAMSET_17
+ dbbw $00, 4, .OAMData_02 ; BATTLEANIMOAMSET_18
+ dbbw $01, 16, .OAMData_00 ; BATTLEANIMOAMSET_19
+ dbbw $05, 16, .OAMData_00 ; BATTLEANIMOAMSET_1A
+ dbbw $00, 4, .OAMData_03 ; BATTLEANIMOAMSET_1B
+ dbbw $05, 12, .OAMData_1c ; BATTLEANIMOAMSET_1C
+ dbbw $02, 4, .OAMData_02 ; BATTLEANIMOAMSET_1D
+ dbbw $06, 1, .OAMData_0f ; BATTLEANIMOAMSET_1E
+ dbbw $07, 1, .OAMData_0f ; BATTLEANIMOAMSET_1F
+ dbbw $08, 1, .OAMData_0f ; BATTLEANIMOAMSET_20
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_21
+ dbbw $09, 22, .OAMData_22 ; BATTLEANIMOAMSET_22
+ dbbw $04, 2, .OAMData_11 ; BATTLEANIMOAMSET_23
+ dbbw $06, 2, .OAMData_11 ; BATTLEANIMOAMSET_24
+ dbbw $0c, 1, .OAMData_0f ; BATTLEANIMOAMSET_25
+ dbbw $0a, 1, .OAMData_0f ; BATTLEANIMOAMSET_26
+ dbbw $0b, 4, .OAMData_02 ; BATTLEANIMOAMSET_27
+ dbbw $08, 4, .OAMData_04 ; BATTLEANIMOAMSET_28
+ dbbw $06, 4, .OAMData_04 ; BATTLEANIMOAMSET_29
+ dbbw $00, 5, .OAMData_2a ; BATTLEANIMOAMSET_2A
+ dbbw $03, 6, .OAMData_2b ; BATTLEANIMOAMSET_2B
+ dbbw $00, 7, .OAMData_2c ; BATTLEANIMOAMSET_2C
+ dbbw $03, 8, .OAMData_2d ; BATTLEANIMOAMSET_2D
+ dbbw $00, 9, .OAMData_2e ; BATTLEANIMOAMSET_2E
+ dbbw $00, 4, .OAMData_2f ; BATTLEANIMOAMSET_2F
+ dbbw $02, 4, .OAMData_30 ; BATTLEANIMOAMSET_30
+ dbbw $04, 6, .OAMData_31 ; BATTLEANIMOAMSET_31
+ dbbw $00, 2, .OAMData_32 ; BATTLEANIMOAMSET_32
+ dbbw $00, 7, .OAMData_33 ; BATTLEANIMOAMSET_33
+ dbbw $00, 14, .OAMData_32 ; BATTLEANIMOAMSET_34
+ dbbw $00, 21, .OAMData_33 ; BATTLEANIMOAMSET_35
+ dbbw $00, 2, .OAMData_36 ; BATTLEANIMOAMSET_36
+ dbbw $00, 6, .OAMData_36 ; BATTLEANIMOAMSET_37
+ dbbw $00, 10, .OAMData_36 ; BATTLEANIMOAMSET_38
+ dbbw $00, 14, .OAMData_36 ; BATTLEANIMOAMSET_39
+ dbbw $00, 2, .OAMData_3a ; BATTLEANIMOAMSET_3A
+ dbbw $00, 6, .OAMData_3a ; BATTLEANIMOAMSET_3B
+ dbbw $00, 10, .OAMData_3a ; BATTLEANIMOAMSET_3C
+ dbbw $00, 14, .OAMData_3a ; BATTLEANIMOAMSET_3D
+ dbbw $00, 4, .OAMData_3e ; BATTLEANIMOAMSET_3E
+ dbbw $00, 16, .OAMData_3e ; BATTLEANIMOAMSET_3F
+ dbbw $00, 26, .OAMData_3e ; BATTLEANIMOAMSET_40
+ dbbw $00, 26, .OAMData_41 ; BATTLEANIMOAMSET_41
+ dbbw $0e, 4, .OAMData_42 ; BATTLEANIMOAMSET_42
+ dbbw $0e, 8, .OAMData_42 ; BATTLEANIMOAMSET_43
+ dbbw $0e, 4, .OAMData_44 ; BATTLEANIMOAMSET_44
+ dbbw $0e, 8, .OAMData_44 ; BATTLEANIMOAMSET_45
+ dbbw $0e, 4, .OAMData_46 ; BATTLEANIMOAMSET_46
+ dbbw $0e, 4, .OAMData_47 ; BATTLEANIMOAMSET_47
+ dbbw $00, 6, .OAMData_48 ; BATTLEANIMOAMSET_48
+ dbbw $03, 4, .OAMData_49 ; BATTLEANIMOAMSET_49
+ dbbw $03, 2, .OAMData_4a ; BATTLEANIMOAMSET_4A
+ dbbw $01, 5, .OAMData_0f ; BATTLEANIMOAMSET_4B
+ dbbw $01, 6, .OAMData_4c ; BATTLEANIMOAMSET_4C
+ dbbw $01, 7, .OAMData_4d ; BATTLEANIMOAMSET_4D
+ dbbw $01, 3, .OAMData_4d ; BATTLEANIMOAMSET_4E
+ dbbw $01, 8, .OAMData_4f ; BATTLEANIMOAMSET_4F
+ dbbw $01, 9, .OAMData_50 ; BATTLEANIMOAMSET_50
+ dbbw $01, 10, .OAMData_51 ; BATTLEANIMOAMSET_51
+ dbbw $01, 6, .OAMData_51 ; BATTLEANIMOAMSET_52
+ dbbw $00, 9, .OAMData_01 ; BATTLEANIMOAMSET_53
+ dbbw $04, 4, .OAMData_02 ; BATTLEANIMOAMSET_54
+ dbbw $05, 4, .OAMData_02 ; BATTLEANIMOAMSET_55
+ dbbw $00, 2, .OAMData_56 ; BATTLEANIMOAMSET_56
+ dbbw $02, 2, .OAMData_56 ; BATTLEANIMOAMSET_57
+ dbbw $04, 2, .OAMData_56 ; BATTLEANIMOAMSET_58
+ dbbw $02, 4, .OAMData_59 ; BATTLEANIMOAMSET_59
+ dbbw $02, 4, .OAMData_5a ; BATTLEANIMOAMSET_5A
+ dbbw $02, 2, .OAMData_0c ; BATTLEANIMOAMSET_5B
+ dbbw $04, 2, .OAMData_0c ; BATTLEANIMOAMSET_5C
+ dbbw $06, 4, .OAMData_5d ; BATTLEANIMOAMSET_5D
+ dbbw $08, 2, .OAMData_0c ; BATTLEANIMOAMSET_5E
+ dbbw $09, 2, .OAMData_0c ; BATTLEANIMOAMSET_5F
+ dbbw $05, 2, .OAMData_60 ; BATTLEANIMOAMSET_60
+ dbbw $00, 2, .OAMData_61 ; BATTLEANIMOAMSET_61
+ dbbw $00, 5, .OAMData_61 ; BATTLEANIMOAMSET_62
+ dbbw $00, 9, .OAMData_61 ; BATTLEANIMOAMSET_63
+ dbbw $09, 9, .OAMData_61 ; BATTLEANIMOAMSET_64
+ dbbw $00, 4, .OAMData_65 ; BATTLEANIMOAMSET_65
+ dbbw $00, 7, .OAMData_65 ; BATTLEANIMOAMSET_66
+ dbbw $00, 9, .OAMData_65 ; BATTLEANIMOAMSET_67
+ dbbw $09, 9, .OAMData_65 ; BATTLEANIMOAMSET_68
+ dbbw $04, 1, .OAMData_69 ; BATTLEANIMOAMSET_69
+ dbbw $05, 2, .OAMData_6a ; BATTLEANIMOAMSET_6A
+ dbbw $06, 4, .OAMData_03 ; BATTLEANIMOAMSET_6B
+ dbbw $0a, 4, .OAMData_03 ; BATTLEANIMOAMSET_6C
+ dbbw $0e, 4, .OAMData_03 ; BATTLEANIMOAMSET_6D
+ dbbw $08, 5, .OAMData_6e ; BATTLEANIMOAMSET_6E
+ dbbw $0d, 3, .OAMData_6f ; BATTLEANIMOAMSET_6F
+ dbbw $01, 8, .OAMData_70 ; BATTLEANIMOAMSET_70
+ dbbw $03, 8, .OAMData_70 ; BATTLEANIMOAMSET_71
+ dbbw $05, 8, .OAMData_70 ; BATTLEANIMOAMSET_72
+ dbbw $07, 8, .OAMData_70 ; BATTLEANIMOAMSET_73
+ dbbw $06, 4, .OAMData_02 ; BATTLEANIMOAMSET_74
+ dbbw $07, 4, .OAMData_02 ; BATTLEANIMOAMSET_75
+ dbbw $0a, 2, .OAMData_76 ; BATTLEANIMOAMSET_76
+ dbbw $00, 1, .OAMData_77 ; BATTLEANIMOAMSET_77
+ dbbw $00, 3, .OAMData_78 ; BATTLEANIMOAMSET_78
+ dbbw $00, 6, .OAMData_79 ; BATTLEANIMOAMSET_79
+ dbbw $00, 9, .OAMData_7a ; BATTLEANIMOAMSET_7A
+ dbbw $00, 12, .OAMData_7b ; BATTLEANIMOAMSET_7B
+ dbbw $00, 14, .OAMData_7c ; BATTLEANIMOAMSET_7C
+ dbbw $00, 15, .OAMData_7d ; BATTLEANIMOAMSET_7D
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_7E
+ dbbw $08, 4, .OAMData_03 ; BATTLEANIMOAMSET_7F
+ dbbw $0d, 1, .OAMData_0f ; BATTLEANIMOAMSET_80
+ dbbw $0e, 4, .OAMData_81 ; BATTLEANIMOAMSET_81
+ dbbw $10, 1, .OAMData_0f ; BATTLEANIMOAMSET_82
+ dbbw $11, 1, .OAMData_0f ; BATTLEANIMOAMSET_83
+ dbbw $04, 2, .OAMData_6a ; BATTLEANIMOAMSET_84
+ dbbw $05, 2, .OAMData_6a ; BATTLEANIMOAMSET_85
+ dbbw $0a, 4, .OAMData_04 ; BATTLEANIMOAMSET_86
+ dbbw $00, 8, .OAMData_87 ; BATTLEANIMOAMSET_87
+ dbbw $00, 12, .OAMData_88 ; BATTLEANIMOAMSET_88
+ dbbw $00, 16, .OAMData_87 ; BATTLEANIMOAMSET_89
+ dbbw $09, 2, .OAMData_8a ; BATTLEANIMOAMSET_8A
+ dbbw $09, 4, .OAMData_8a ; BATTLEANIMOAMSET_8B
+ dbbw $09, 6, .OAMData_8a ; BATTLEANIMOAMSET_8C
+ dbbw $09, 8, .OAMData_8a ; BATTLEANIMOAMSET_8D
+ dbbw $12, 5, .OAMData_8e ; BATTLEANIMOAMSET_8E
+ dbbw $00, 4, .OAMData_8f ; BATTLEANIMOAMSET_8F
+ dbbw $04, 4, .OAMData_8f ; BATTLEANIMOAMSET_90
+ dbbw $08, 4, .OAMData_8f ; BATTLEANIMOAMSET_91
+ dbbw $0c, 4, .OAMData_8f ; BATTLEANIMOAMSET_92
+ dbbw $00, 6, .OAMData_93 ; BATTLEANIMOAMSET_93
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_94
+ dbbw $0a, 4, .OAMData_04 ; BATTLEANIMOAMSET_95
+ dbbw $15, 4, .OAMData_30 ; BATTLEANIMOAMSET_96
+ dbbw $04, 4, .OAMData_30 ; BATTLEANIMOAMSET_97
+ dbbw $0c, 4, .OAMData_04 ; BATTLEANIMOAMSET_98
+ dbbw $0a, 4, .OAMData_99 ; BATTLEANIMOAMSET_99
+ dbbw $0c, 4, .OAMData_03 ; BATTLEANIMOAMSET_9A
+ dbbw $00, 36, .OAMData_9b ; BATTLEANIMOAMSET_9B
+ dbbw $0d, 2, .OAMData_9c ; BATTLEANIMOAMSET_9C
+ dbbw $0d, 4, .OAMData_9c ; BATTLEANIMOAMSET_9D
+ dbbw $0d, 6, .OAMData_9c ; BATTLEANIMOAMSET_9E
+ dbbw $02, 8, .OAMData_9f ; BATTLEANIMOAMSET_9F
+ dbbw $08, 7, .OAMData_a0 ; BATTLEANIMOAMSET_A0
+ dbbw $08, 5, .OAMData_a0 ; BATTLEANIMOAMSET_A1
+ dbbw $08, 3, .OAMData_a0 ; BATTLEANIMOAMSET_A2
+ dbbw $00, 16, .OAMData_1c ; BATTLEANIMOAMSET_A3
+ dbbw $00, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A4
+ dbbw $06, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A5
+ dbbw $0c, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A6
+ dbbw $12, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A7
+ dbbw $18, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A8
+ dbbw $1e, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A9
+ dbbw $24, 9, .OAMData_a4 ; BATTLEANIMOAMSET_AA
+ dbbw $2a, 9, .OAMData_a4 ; BATTLEANIMOAMSET_AB
+ dbbw $03, 4, .OAMData_ac ; BATTLEANIMOAMSET_AC
+ dbbw $12, 4, .OAMData_03 ; BATTLEANIMOAMSET_AD
+ dbbw $10, 4, .OAMData_04 ; BATTLEANIMOAMSET_AE
+ dbbw $16, 1, .OAMData_0f ; BATTLEANIMOAMSET_AF
+ dbbw $17, 4, .OAMData_02 ; BATTLEANIMOAMSET_B0
+ dbbw $18, 4, .OAMData_03 ; BATTLEANIMOAMSET_B1
+ dbbw $1c, 4, .OAMData_03 ; BATTLEANIMOAMSET_B2
+ dbbw $20, 3, .OAMData_03 ; BATTLEANIMOAMSET_B3
+ dbbw $23, 4, .OAMData_04 ; BATTLEANIMOAMSET_B4
+ dbbw $25, 3, .OAMData_03 ; BATTLEANIMOAMSET_B5
+ dbbw $17, 4, .OAMData_03 ; BATTLEANIMOAMSET_B6
+ dbbw $0a, 16, .OAMData_00 ; BATTLEANIMOAMSET_B7
+ dbbw $10, 16, .OAMData_1c ; BATTLEANIMOAMSET_B8
+ dbbw $00, 16, .OAMData_1c ; BATTLEANIMOAMSET_B9
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_BA
+ dbbw $08, 2, .OAMData_11 ; BATTLEANIMOAMSET_BB
+ dbbw $20, 6, .OAMData_bc ; BATTLEANIMOAMSET_BC
+ dbbw $08, 1, .OAMData_0f ; BATTLEANIMOAMSET_BD
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_BE
+ dbbw $1a, 4, .OAMData_30 ; BATTLEANIMOAMSET_BF
+ dbbw $16, 9, .OAMData_01 ; BATTLEANIMOAMSET_C0
+ dbbw $10, 16, .OAMData_c1 ; BATTLEANIMOAMSET_C1
+ dbbw $09, 6, .OAMData_c2 ; BATTLEANIMOAMSET_C2
+ dbbw $11, 9, .OAMData_c3 ; BATTLEANIMOAMSET_C3
+ dbbw $0e, 4, .OAMData_03 ; BATTLEANIMOAMSET_C4
+ dbbw $0b, 4, .OAMData_30 ; BATTLEANIMOAMSET_C5
+ dbbw $1c, 6, .OAMData_02 ; BATTLEANIMOAMSET_C6
+ dbbw $20, 16, .OAMData_c1 ; BATTLEANIMOAMSET_C7
+ dbbw $05, 6, .OAMData_c8 ; BATTLEANIMOAMSET_C8
+ dbbw $0b, 4, .OAMData_03 ; BATTLEANIMOAMSET_C9
+ dbbw $09, 4, .OAMData_ca ; BATTLEANIMOAMSET_CA
+ dbbw $0b, 4, .OAMData_04 ; BATTLEANIMOAMSET_CB
+ dbbw $11, 13, .OAMData_cc ; BATTLEANIMOAMSET_CC
+ dbbw $00, 9, .OAMData_c3 ; BATTLEANIMOAMSET_CD
+ dbbw $09, 9, .OAMData_c3 ; BATTLEANIMOAMSET_CE
+ dbbw $00, 12, .OAMData_cf ; BATTLEANIMOAMSET_CF
+ dbbw $06, 12, .OAMData_cf ; BATTLEANIMOAMSET_D0
+ dbbw $0c, 12, .OAMData_cf ; BATTLEANIMOAMSET_D1
+ dbbw $12, 12, .OAMData_cf ; BATTLEANIMOAMSET_D2
+ dbbw $00, 13, .OAMData_cc ; BATTLEANIMOAMSET_D3
+ dbbw $00, 7, .OAMData_d4 ; BATTLEANIMOAMSET_D4
+ dbbw $00, 6, .OAMData_d5 ; BATTLEANIMOAMSET_D5
+ dbbw $00, 14, .OAMData_d6 ; BATTLEANIMOAMSET_D6
+ dbbw $00, 12, .OAMData_d7 ; BATTLEANIMOAMSET_D7
.OAMData_11:
dsprite -1, 0, -1, 4, $00, $00
diff --git a/battle/objects/object_gfx.asm b/data/anims/object_gfx.asm
index 133298d13..133298d13 100755
--- a/battle/objects/object_gfx.asm
+++ b/data/anims/object_gfx.asm
diff --git a/battle/objects/data.asm b/data/anims/objects.asm
index 8117d8495..8117d8495 100755
--- a/battle/objects/data.asm
+++ b/data/anims/objects.asm
diff --git a/data/flypoints.asm b/data/maps/flypoints.asm
index b41db0ea1..b41db0ea1 100644
--- a/data/flypoints.asm
+++ b/data/maps/flypoints.asm
diff --git a/data/maps/map_setup_scripts.asm b/data/maps/map_setup_scripts.asm
new file mode 100644
index 000000000..47895b609
--- /dev/null
+++ b/data/maps/map_setup_scripts.asm
@@ -0,0 +1,177 @@
+MapSetupScripts: ; 15377
+; entries correspond to MAPSETUP_* constants (see constants/map_setup_constants.asm)
+ dw MapSetupScript_Warp
+ dw MapSetupScript_Continue
+ dw MapSetupScript_ReloadMap
+ dw MapSetupScript_Teleport
+ dw MapSetupScript_Door
+ dw MapSetupScript_Fall
+ dw MapSetupScript_Connection
+ dw MapSetupScript_LinkReturn
+ dw MapSetupScript_Train
+ dw MapSetupScript_Submenu
+ dw MapSetupScript_BadWarp
+ dw MapSetupScript_Fly
+; 1538f
+
+MapSetupScript_Teleport: ; 1538f
+ db map_prolong_sprites
+MapSetupScript_Fly: ; 15390
+ db map_fade_out_palettes
+ db map_keep_roam
+MapSetupScript_Warp: ; 15392
+ db map_lcd_off
+ db map_sound_off
+ db map_load_spawn
+ db map_attributes
+ db map_change_callback
+ db map_spawn_coord
+ db map_player_coord
+ db map_anchor_screen
+ db map_load_blocks
+ db map_buffer_screen
+ db map_load_graphics
+ db map_time_of_day
+ db map_load_objects
+ db map_lcd_on
+ db map_palettes
+ db map_face_down
+ db map_sprites
+ db map_bike_music
+ db map_max_volume
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_end
+
+MapSetupScript_BadWarp: ; 153a9
+ db map_load_spawn
+ db map_attributes
+ db map_change_callback
+ db map_spawn_coord
+ db map_player_coord
+ db map_anchor_screen
+ db map_load_blocks
+ db map_buffer_screen
+ db map_lcd_off
+ db map_load_graphics
+ db map_time_of_day
+ db map_fade_out_music
+ db map_lcd_on
+ db map_load_objects
+ db map_palettes
+ db map_face_down
+ db map_sprites
+ db map_fade_music
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_end
+
+MapSetupScript_Connection: ; 153bf
+ db map_animations_off
+ db map_load_connection
+ db map_attributes
+ db map_change_callback
+ db map_player_coord
+ db map_load_blocks
+ db map_load_tileset
+ db map_save_screen
+ db map_load_objects
+ db map_fade_music
+ db map_palettes
+ db map_stop_script
+ db map_keep_palettes
+ db map_wildmons
+ db map_update_roam
+ db map_animations_on
+ db map_end
+
+MapSetupScript_Fall: ; 153d0
+ db map_prolong_sprites
+MapSetupScript_Door: ; 153d1
+ db map_fade_out_palettes
+MapSetupScript_Train: ; 153d2
+ db map_load_warp
+ db map_attributes
+ db map_warp_face
+ db map_change_callback
+ db map_player_coord
+ db map_load_blocks
+ db map_buffer_screen
+ db map_lcd_off
+ db map_load_graphics
+ db map_time_of_day
+ db map_fade_out_music
+ db map_lcd_on
+ db map_load_objects
+ db map_palettes
+ db map_sprites
+ db map_fade_music
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_update_roam
+ db map_end
+
+MapSetupScript_ReloadMap: ; 153e7
+ db map_fade
+ db map_clear_bg_palettes
+ db map_lcd_off
+ db map_sound_off
+ db map_load_blocks
+ db map_connection_blocks
+ db map_load_graphics
+ db map_time_of_day
+ db map_lcd_on
+ db map_palettes
+ db map_sprites
+ db map_music_force
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_end
+
+MapSetupScript_LinkReturn: ; 153f7
+ db map_fade
+ db map_lcd_off
+ db map_sound_off
+ db map_change_callback
+ db map_load_blocks
+ db map_buffer_screen
+ db map_load_graphics
+ db map_time_of_day
+ db map_lcd_on
+ db map_palettes
+ db map_sprites
+ db map_bike_music
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_text_scroll_off
+ db map_end
+
+MapSetupScript_Continue: ; 15408
+ db map_lcd_off
+ db map_sound_off
+ db map_attributes_2
+ db map_anchor_screen
+ db map_start_callback
+ db map_load_blocks
+ db map_connection_blocks
+ db map_buffer_screen
+ db map_load_graphics
+ db map_time_of_day
+ db map_lcd_on
+ db map_palettes
+ db map_sprites
+ db map_bike_music
+ db map_fade_in_palettes
+ db map_animations_on
+ db map_wildmons
+ db map_end
+
+MapSetupScript_Submenu: ; 1541a
+ db map_load_blocks
+ db map_connection_blocks
+ db map_end
diff --git a/battle/effect_command_pointers.asm b/data/moves/effect_command_pointers.asm
index 5dd6be786..5dd6be786 100644
--- a/battle/effect_command_pointers.asm
+++ b/data/moves/effect_command_pointers.asm
diff --git a/battle/anims.asm b/data/moves/move_anims.asm
index e0b7f0014..e28a2e62d 100644
--- a/battle/anims.asm
+++ b/data/moves/move_anims.asm
@@ -1,4 +1,5 @@
BattleAnimations:: ; c906f
+; entries correspond to constants/move_constants.asm
dw BattleAnim_0
dw BattleAnim_Pound
dw BattleAnim_KarateChop
diff --git a/battle/moves/move_descriptions.asm b/data/moves/move_descriptions.asm
index d86ceea37..d86ceea37 100644
--- a/battle/moves/move_descriptions.asm
+++ b/data/moves/move_descriptions.asm
diff --git a/battle/moves/move_effects.asm b/data/moves/move_effects.asm
index c56ff2560..c56ff2560 100644
--- a/battle/moves/move_effects.asm
+++ b/data/moves/move_effects.asm
diff --git a/battle/moves/move_effects_pointers.asm b/data/moves/move_effects_pointers.asm
index a12092881..a12092881 100644
--- a/battle/moves/move_effects_pointers.asm
+++ b/data/moves/move_effects_pointers.asm
diff --git a/battle/move_names.asm b/data/moves/move_names.asm
index cfc7ac54f..cfc7ac54f 100644
--- a/battle/move_names.asm
+++ b/data/moves/move_names.asm
diff --git a/battle/moves/moves.asm b/data/moves/moves.asm
index b576fbaff..b576fbaff 100644
--- a/battle/moves/moves.asm
+++ b/data/moves/moves.asm
diff --git a/data/tmhm_moves.asm b/data/moves/tmhm_moves.asm
index c1af85ec5..fea29780c 100644
--- a/data/tmhm_moves.asm
+++ b/data/moves/tmhm_moves.asm
@@ -50,7 +50,6 @@ TMHMMoves: ; 1167a
db FIRE_PUNCH
db FURY_CUTTER
db NIGHTMARE
-
; HMs
db CUT
db FLY
@@ -59,11 +58,9 @@ TMHMMoves: ; 1167a
db FLASH
db WHIRLPOOL
db WATERFALL
-
; Move tutor
db FLAMETHROWER
db THUNDERBOLT
db ICE_BEAM
-
db 0 ; end
; 116b7
diff --git a/data/mystery_gift/decos.asm b/data/mystery_gift_decos.asm
index bdd4694c6..bdd4694c6 100644
--- a/data/mystery_gift/decos.asm
+++ b/data/mystery_gift_decos.asm
diff --git a/data/mystery_gift/items.asm b/data/mystery_gift_items.asm
index b2379071e..b2379071e 100644
--- a/data/mystery_gift/items.asm
+++ b/data/mystery_gift_items.asm
diff --git a/data/sprite_anim_frames.asm b/data/sprite_anim_frames.asm
deleted file mode 100755
index e69792ec1..000000000
--- a/data/sprite_anim_frames.asm
+++ /dev/null
@@ -1,499 +0,0 @@
-SpriteAnimFrameData: ; 8d6e6
-; entries correspond to SPRITE_ANIM_FRAMESET_* constants
- dw .Frameset_00
- dw .Frameset_PartyMon
- dw .Frameset_PartyMonWithMail
- dw .Frameset_PartyMonWithItem
- dw .Frameset_PartyMonFast
- dw .Frameset_PartyMonWithMailFast
- dw .Frameset_PartyMonWithItemFast
- dw .Frameset_GSTitleTrail
- dw .Frameset_TextEntryCursor
- dw .Frameset_09
- dw .Frameset_GameFreakLogo
- dw .Frameset_GSIntroStar
- dw .Frameset_GSIntroSparkle
- dw .Frameset_SlotsGolem
- dw .Frameset_SlotsChansey
- dw .Frameset_SlotsChansey2
- dw .Frameset_SlotsEgg
- dw .Frameset_RedWalk
- dw .Frameset_StillCursor
- dw .Frameset_TradePokeBall
- dw .Frameset_TradePokeBall0
- dw .Frameset_TradePoof
- dw .Frameset_TradeTubeBulge
- dw .Frameset_TrademonIcon
- dw .Frameset_TrademonBubble
- dw .Frameset_EvolutionBallOfLight
- dw .Frameset_RadioTuningKnob
- dw .Frameset_MagnetTrainRed
- dw .Frameset_1c
- dw .Frameset_Leaf
- dw .Frameset_CutTree
- dw .Frameset_EggCrack
- dw .Frameset_EggHatch
- dw .Frameset_21
- dw .Frameset_22
- dw .Frameset_23
- dw .Frameset_24
- dw .Frameset_HeadbuttTree
- dw .Frameset_26
- dw .Frameset_27
- dw .Frameset_28
- dw .Frameset_29
- dw .Frameset_2a
- dw .Frameset_2b
- dw .Frameset_2c
- dw .Frameset_BlueWalk
- dw .Frameset_MagnetTrainBlue
- dw .Frameset_MobileTradeSentBall
- dw .Frameset_MobileTradeOTBall
- dw .Frameset_ForMobile22
- dw .Frameset_ForMobile23
- dw .Frameset_ForMobile24
- dw .Frameset_ForMobile25
- dw .Frameset_IntroSuicune
- dw .Frameset_IntroSuicune2
- dw .Frameset_IntroPichu
- dw .Frameset_IntroWooper
- dw .Frameset_IntroUnown1
- dw .Frameset_IntroUnown2
- dw .Frameset_IntroUnown3
- dw .Frameset_IntroUnown4
- dw .Frameset_IntroUnownF2
- dw .Frameset_IntroSuicuneAway
- dw .Frameset_IntroUnownF
- dw .Frameset_CelebiLeft
- dw .Frameset_CelebiRight
-; 8d76a
-
-.Frameset_00:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 32
- endanim
-
-.Frameset_PartyMon:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8
- dorestart
-
-.Frameset_PartyMonWithMail:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1, 8
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2, 8
- dorestart
-
-.Frameset_PartyMonWithItem:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1, 8
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2, 8
- dorestart
-
-.Frameset_PartyMonFast:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 4
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 4
- dorestart
-
-.Frameset_PartyMonWithMailFast:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1, 4
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2, 4
- dorestart
-
-.Frameset_PartyMonWithItemFast:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1, 4
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2, 4
- dorestart
-
-.Frameset_RedWalk:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_BlueWalk:
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_MagnetTrainBlue:
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_GSTitleTrail:
- frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1, 1
- frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2, 1
- dorestart
-
-.Frameset_TextEntryCursor:
- frame SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR, 1
- dorepeat 1
- dorestart
-
-.Frameset_09:
- frame SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09, 1
- dorepeat 1
- dorestart
-
-.Frameset_GameFreakLogo:
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 1
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3, 1
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4, 32
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5, 3
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6, 3
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10, 10
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11, 7
- endanim
-
-.Frameset_GSIntroStar:
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR, 3
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR, 3, OAM_Y_FLIP
- dorestart
-
-.Frameset_GSIntroSparkle:
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2, 2
- dorestart
-
-.Frameset_SlotsGolem:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1, 7, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2, 7, OAM_X_FLIP
- dorestart
-
-.Frameset_SlotsChansey:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3, 7
- dorestart
-
-.Frameset_SlotsChansey2:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- endanim
-
-.Frameset_SlotsEgg:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_EGG, 20
- endanim
-
-.Frameset_StillCursor:
- frame SPRITE_ANIM_FRAME_IDX_STILL_CURSOR, 32
- endanim
-
-.Frameset_TradePokeBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 32
- endanim
-
-.Frameset_TradePokeBall0:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- dorestart
-
-.Frameset_TradePoof:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 4
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 4
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 4
- delanim
-
-.Frameset_TradeTubeBulge:
- frame SPRITE_ANIM_FRAME_IDX_35, 3
- frame SPRITE_ANIM_FRAME_IDX_36, 3
- dorestart
-
-.Frameset_TrademonIcon:
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1, 7
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2, 7
- dorestart
-
-.Frameset_TrademonBubble:
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE, 32
- endanim
-
-.Frameset_EvolutionBallOfLight:
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2, 2
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1, 2
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2, 2
- endanim
-
-.Frameset_RadioTuningKnob:
- frame SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB, 32
- endanim
-
-.Frameset_MagnetTrainRed:
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_43, 8
- frame SPRITE_ANIM_FRAME_IDX_44, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_45, 8
- frame SPRITE_ANIM_FRAME_IDX_46, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_47, 8
- frame SPRITE_ANIM_FRAME_IDX_48, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_49, 1
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_Y_FLIP
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4A, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4B, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4C, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4D, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4E, 3
- dorepeat 3
- dorestart
-
-.Frameset_1c:
- dorepeat 32
- endanim
-
-.Frameset_Leaf:
- frame SPRITE_ANIM_FRAME_IDX_LEAF, 32
- endanim
-
-.Frameset_CutTree:
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_2, 16
- dorepeat 1
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_3, 1
- dorepeat 1
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_4, 1
- delanim
-
-.Frameset_EggCrack:
- frame SPRITE_ANIM_FRAME_IDX_EGG_CRACK, 32
- endanim
-
-.Frameset_EggHatch:
- frame SPRITE_ANIM_FRAME_IDX_55, 32
- endanim
-
-.Frameset_21:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP
- endanim
-
-.Frameset_22:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_Y_FLIP
- endanim
-
-.Frameset_23:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP, OAM_Y_FLIP
- endanim
-
-.Frameset_24:
- frame SPRITE_ANIM_FRAME_IDX_56, 10
- frame SPRITE_ANIM_FRAME_IDX_57, 9
- frame SPRITE_ANIM_FRAME_IDX_58, 10
- frame SPRITE_ANIM_FRAME_IDX_59, 10
- frame SPRITE_ANIM_FRAME_IDX_58, 9
- frame SPRITE_ANIM_FRAME_IDX_5A, 10
- dorestart
-
-.Frameset_HeadbuttTree:
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2, 2
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2, 2, OAM_X_FLIP
- dorestart
-
-.Frameset_26:
- frame SPRITE_ANIM_FRAME_IDX_5C, 2
- endanim
-
-.Frameset_27:
- frame SPRITE_ANIM_FRAME_IDX_5D, 2
- endanim
-
-.Frameset_28:
- frame SPRITE_ANIM_FRAME_IDX_5E, 2
- endanim
-
-.Frameset_29:
- frame SPRITE_ANIM_FRAME_IDX_5F, 2
- endanim
-
-.Frameset_2a:
- frame SPRITE_ANIM_FRAME_IDX_60, 2
- endanim
-
-.Frameset_2b:
- frame SPRITE_ANIM_FRAME_IDX_61, 2
- endanim
-
-.Frameset_2c:
- frame SPRITE_ANIM_FRAME_IDX_62, 2
- endanim
-
-.Frameset_MobileTradeSentBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- endanim
-
-.Frameset_MobileTradeOTBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 3
- delanim
-
-.Frameset_ForMobile22:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1, 3
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2, 3
- dorestart
-
-.Frameset_ForMobile23:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23, 3
- endanim
-
-.Frameset_ForMobile24:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24, 3
- endanim
-
-.Frameset_ForMobile25:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1, 2
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2, 2
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3, 2
- delanim
-
-.Frameset_IntroSuicune:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4, 3
- dorestart
-
-.Frameset_IntroSuicune2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1, 7
- endanim
-
-.Frameset_IntroPichu:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1, 32
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2, 7
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3, 7
- endanim
-
-.Frameset_IntroWooper:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER, 3
- endanim
-
-.Frameset_IntroUnown1:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7
- delanim
-
-.Frameset_IntroUnown2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_X_FLIP
- delanim
-
-.Frameset_IntroUnown3:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_Y_FLIP
- delanim
-
-.Frameset_IntroUnown4:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_X_FLIP, OAM_Y_FLIP
- delanim
-
-.Frameset_IntroUnownF2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4, 7
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5, 7
- endanim
-
-.Frameset_IntroSuicuneAway:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY, 3
- endanim
-
-.Frameset_IntroUnownF:
- dorepeat 0
- endanim
-
-.Frameset_CelebiLeft:
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_1, 8
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_2, 8
- endanim
-
-.Frameset_CelebiRight:
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_1, 8, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_2, 8, OAM_X_FLIP
- endanim
-; 8d94d
diff --git a/data/sprites/framesets.asm b/data/sprites/framesets.asm
new file mode 100755
index 000000000..24b058859
--- /dev/null
+++ b/data/sprites/framesets.asm
@@ -0,0 +1,499 @@
+SpriteAnimFrameData: ; 8d6e6
+; entries correspond to SPRITE_ANIM_FRAMESET_* constants
+ dw .Frameset_00
+ dw .Frameset_PartyMon
+ dw .Frameset_PartyMonWithMail
+ dw .Frameset_PartyMonWithItem
+ dw .Frameset_PartyMonFast
+ dw .Frameset_PartyMonWithMailFast
+ dw .Frameset_PartyMonWithItemFast
+ dw .Frameset_GSTitleTrail
+ dw .Frameset_TextEntryCursor
+ dw .Frameset_09
+ dw .Frameset_GameFreakLogo
+ dw .Frameset_GSIntroStar
+ dw .Frameset_GSIntroSparkle
+ dw .Frameset_SlotsGolem
+ dw .Frameset_SlotsChansey
+ dw .Frameset_SlotsChansey2
+ dw .Frameset_SlotsEgg
+ dw .Frameset_RedWalk
+ dw .Frameset_StillCursor
+ dw .Frameset_TradePokeBall
+ dw .Frameset_TradePokeBall0
+ dw .Frameset_TradePoof
+ dw .Frameset_TradeTubeBulge
+ dw .Frameset_TrademonIcon
+ dw .Frameset_TrademonBubble
+ dw .Frameset_EvolutionBallOfLight
+ dw .Frameset_RadioTuningKnob
+ dw .Frameset_MagnetTrainRed
+ dw .Frameset_1c
+ dw .Frameset_Leaf
+ dw .Frameset_CutTree
+ dw .Frameset_EggCrack
+ dw .Frameset_EggHatch
+ dw .Frameset_21
+ dw .Frameset_22
+ dw .Frameset_23
+ dw .Frameset_24
+ dw .Frameset_HeadbuttTree
+ dw .Frameset_26
+ dw .Frameset_27
+ dw .Frameset_28
+ dw .Frameset_29
+ dw .Frameset_2a
+ dw .Frameset_2b
+ dw .Frameset_2c
+ dw .Frameset_BlueWalk
+ dw .Frameset_MagnetTrainBlue
+ dw .Frameset_MobileTradeSentBall
+ dw .Frameset_MobileTradeOTBall
+ dw .Frameset_ForMobile22
+ dw .Frameset_ForMobile23
+ dw .Frameset_ForMobile24
+ dw .Frameset_ForMobile25
+ dw .Frameset_IntroSuicune
+ dw .Frameset_IntroSuicune2
+ dw .Frameset_IntroPichu
+ dw .Frameset_IntroWooper
+ dw .Frameset_IntroUnown1
+ dw .Frameset_IntroUnown2
+ dw .Frameset_IntroUnown3
+ dw .Frameset_IntroUnown4
+ dw .Frameset_IntroUnownF2
+ dw .Frameset_IntroSuicuneAway
+ dw .Frameset_IntroUnownF
+ dw .Frameset_CelebiLeft
+ dw .Frameset_CelebiRight
+; 8d76a
+
+.Frameset_00:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 32
+ endanim
+
+.Frameset_PartyMon:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ dorestart
+
+.Frameset_PartyMonWithMail:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2, 8
+ dorestart
+
+.Frameset_PartyMonWithItem:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2, 8
+ dorestart
+
+.Frameset_PartyMonFast:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 4
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 4
+ dorestart
+
+.Frameset_PartyMonWithMailFast:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1, 4
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2, 4
+ dorestart
+
+.Frameset_PartyMonWithItemFast:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1, 4
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2, 4
+ dorestart
+
+.Frameset_RedWalk:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_BlueWalk:
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_2, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_MagnetTrainBlue:
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_GSTitleTrail:
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1, 1
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2, 1
+ dorestart
+
+.Frameset_TextEntryCursor:
+ frame SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR, 1
+ dorepeat 1
+ dorestart
+
+.Frameset_09:
+ frame SPRITE_ANIM_OAMSET_FOR_FRAMESET_09, 1
+ dorepeat 1
+ dorestart
+
+.Frameset_GameFreakLogo:
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 1
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3, 1
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4, 32
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5, 3
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6, 3
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10, 10
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11, 7
+ endanim
+
+.Frameset_GSIntroStar:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3, OAM_Y_FLIP
+ dorestart
+
+.Frameset_GSIntroSparkle:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ dorestart
+
+.Frameset_SlotsGolem:
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7, OAM_X_FLIP
+ dorestart
+
+.Frameset_SlotsChansey:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3, 7
+ dorestart
+
+.Frameset_SlotsChansey2:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ endanim
+
+.Frameset_SlotsEgg:
+ frame SPRITE_ANIM_OAMSET_SLOTS_EGG, 20
+ endanim
+
+.Frameset_StillCursor:
+ frame SPRITE_ANIM_OAMSET_STILL_CURSOR, 32
+ endanim
+
+.Frameset_TradePokeBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 32
+ endanim
+
+.Frameset_TradePokeBall0:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ dorestart
+
+.Frameset_TradePoof:
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 4
+ delanim
+
+.Frameset_TradeTubeBulge:
+ frame SPRITE_ANIM_OAMSET_35, 3
+ frame SPRITE_ANIM_OAMSET_36, 3
+ dorestart
+
+.Frameset_TrademonIcon:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_1, 7
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_2, 7
+ dorestart
+
+.Frameset_TrademonBubble:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE, 32
+ endanim
+
+.Frameset_EvolutionBallOfLight:
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ endanim
+
+.Frameset_RadioTuningKnob:
+ frame SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB, 32
+ endanim
+
+.Frameset_MagnetTrainRed:
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_43, 8
+ frame SPRITE_ANIM_OAMSET_44, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_45, 8
+ frame SPRITE_ANIM_OAMSET_46, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_47, 8
+ frame SPRITE_ANIM_OAMSET_48, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_49, 1
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_Y_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4A, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4B, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4C, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4D, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4E, 3
+ dorepeat 3
+ dorestart
+
+.Frameset_1c:
+ dorepeat 32
+ endanim
+
+.Frameset_Leaf:
+ frame SPRITE_ANIM_OAMSET_LEAF, 32
+ endanim
+
+.Frameset_CutTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_2, 16
+ dorepeat 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_3, 1
+ dorepeat 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_4, 1
+ delanim
+
+.Frameset_EggCrack:
+ frame SPRITE_ANIM_OAMSET_EGG_CRACK, 32
+ endanim
+
+.Frameset_EggHatch:
+ frame SPRITE_ANIM_OAMSET_55, 32
+ endanim
+
+.Frameset_21:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_X_FLIP
+ endanim
+
+.Frameset_22:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_Y_FLIP
+ endanim
+
+.Frameset_23:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
+
+.Frameset_24:
+ frame SPRITE_ANIM_OAMSET_56, 10
+ frame SPRITE_ANIM_OAMSET_57, 9
+ frame SPRITE_ANIM_OAMSET_58, 10
+ frame SPRITE_ANIM_OAMSET_59, 10
+ frame SPRITE_ANIM_OAMSET_58, 9
+ frame SPRITE_ANIM_OAMSET_5A, 10
+ dorestart
+
+.Frameset_HeadbuttTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2, OAM_X_FLIP
+ dorestart
+
+.Frameset_26:
+ frame SPRITE_ANIM_OAMSET_5C, 2
+ endanim
+
+.Frameset_27:
+ frame SPRITE_ANIM_OAMSET_5D, 2
+ endanim
+
+.Frameset_28:
+ frame SPRITE_ANIM_OAMSET_5E, 2
+ endanim
+
+.Frameset_29:
+ frame SPRITE_ANIM_OAMSET_5F, 2
+ endanim
+
+.Frameset_2a:
+ frame SPRITE_ANIM_OAMSET_60, 2
+ endanim
+
+.Frameset_2b:
+ frame SPRITE_ANIM_OAMSET_61, 2
+ endanim
+
+.Frameset_2c:
+ frame SPRITE_ANIM_OAMSET_62, 2
+ endanim
+
+.Frameset_MobileTradeSentBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ endanim
+
+.Frameset_MobileTradeOTBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 3
+ delanim
+
+.Frameset_ForMobile22:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1, 3
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2, 3
+ dorestart
+
+.Frameset_ForMobile23:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_23, 3
+ endanim
+
+.Frameset_ForMobile24:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_24, 3
+ endanim
+
+.Frameset_ForMobile25:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1, 2
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2, 2
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3, 2
+ delanim
+
+.Frameset_IntroSuicune:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4, 3
+ dorestart
+
+.Frameset_IntroSuicune2:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1, 7
+ endanim
+
+.Frameset_IntroPichu:
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_1, 32
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_2, 7
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_3, 7
+ endanim
+
+.Frameset_IntroWooper:
+ frame SPRITE_ANIM_OAMSET_INTRO_WOOPER, 3
+ endanim
+
+.Frameset_IntroUnown1:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7
+ delanim
+
+.Frameset_IntroUnown2:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_X_FLIP
+ delanim
+
+.Frameset_IntroUnown3:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_Y_FLIP
+ delanim
+
+.Frameset_IntroUnown4:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_IntroUnownF2:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4, 7
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5, 7
+ endanim
+
+.Frameset_IntroSuicuneAway:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY, 3
+ endanim
+
+.Frameset_IntroUnownF:
+ dorepeat 0
+ endanim
+
+.Frameset_CelebiLeft:
+ frame SPRITE_ANIM_OAMSET_CELEBI_1, 8
+ frame SPRITE_ANIM_OAMSET_CELEBI_2, 8
+ endanim
+
+.Frameset_CelebiRight:
+ frame SPRITE_ANIM_OAMSET_CELEBI_1, 8, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_CELEBI_2, 8, OAM_X_FLIP
+ endanim
+; 8d94d
diff --git a/data/sprite_anim_oam.asm b/data/sprites/oam.asm
index fea73f596..99adc9df3 100644
--- a/data/sprite_anim_oam.asm
+++ b/data/sprites/oam.asm
@@ -1,146 +1,146 @@
SpriteAnimOAMData: ; 8d94d
-; entries correspond to SPRITE_ANIM_FRAME_IDX_* constants
+; entries correspond to SPRITE_ANIM_OAMSET_* constants
; vtile offset, pointer
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_1
- dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_2
- dbw $4c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_02
- dbw $5c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_03
- dbw $6c, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_04
- dbw $6e, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_05
- dbw $2d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_06
- dbw $4d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_07
- dbw $60, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_08
- dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_09
- dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0A
- dbw $06, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0B
- dbw $0c, .OAMData_0c ; SPRITE_ANIM_FRAME_IDX_0C
- dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_0D
- dbw $00, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0E
- dbw $04, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0F
- dbw $08, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_10
- dbw $40, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_11
- dbw $44, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_12
- dbw $48, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_13
- dbw $4c, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_14
- dbw $80, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_15
- dbw $85, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_16
- dbw $8a, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_17
- dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_18
- dbw $01, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_19
- dbw $09, .OAMData_1a ; SPRITE_ANIM_FRAME_IDX_1A
- dbw $10, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1B
- dbw $29, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1C
- dbw $42, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1D
- dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1
- dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2
- dbw $00, .OAMData_TextEntryCursor ; SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR
- dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09
- dbw $00, .OAMData_22 ; SPRITE_ANIM_FRAME_IDX_22
- dbw $0f, .OAMData_GSIntroStar ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR
- dbw $11, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1
- dbw $12, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2
- dbw $13, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3
- dbw $00, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1
- dbw $08, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2
- dbw $10, .OAMData_SlotsChansey1 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1
- dbw $10, .OAMData_SlotsChansey2 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2
- dbw $10, .OAMData_SlotsChansey3 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3
- dbw $10, .OAMData_SlotsChansey4 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4
- dbw $10, .OAMData_SlotsChansey5 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5
- dbw $3a, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_SLOTS_EGG
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_STILL_CURSOR
- dbw $00, .OAMData_TradePokeBall1 ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1
- dbw $02, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2
- dbw $06, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1
- dbw $0a, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2
- dbw $0e, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3
- dbw $12, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_35
- dbw $13, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_36
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1
- dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2
- dbw $10, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE
- dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1
- dbw $04, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2
- dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB
- dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1
- dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2
- dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1
- dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2
- dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1
- dbw $04, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2
- dbw $00, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_43
- dbw $30, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_44
- dbw $03, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_45
- dbw $33, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_46
- dbw $06, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_47
- dbw $36, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_48
- dbw $09, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_49
- dbw $39, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_4A
- dbw $0c, .OAMData_4b ; SPRITE_ANIM_FRAME_IDX_4B
- dbw $0c, .OAMData_4c ; SPRITE_ANIM_FRAME_IDX_4C
- dbw $3c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4D
- dbw $3e, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4E
- dbw $00, .OAMData_Leaf ; SPRITE_ANIM_FRAME_IDX_LEAF
- dbw $00, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_TREE_1
- dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_2
- dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_3
- dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_4
- dbw $00, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EGG_CRACK
- dbw $01, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_55
- dbw $00, .OAMData_56 ; SPRITE_ANIM_FRAME_IDX_56
- dbw $00, .OAMData_57 ; SPRITE_ANIM_FRAME_IDX_57
- dbw $00, .OAMData_58 ; SPRITE_ANIM_FRAME_IDX_58
- dbw $00, .OAMData_59 ; SPRITE_ANIM_FRAME_IDX_59
- dbw $00, .OAMData_5a ; SPRITE_ANIM_FRAME_IDX_5A
- dbw $04, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2
- dbw $00, .OAMData_5c ; SPRITE_ANIM_FRAME_IDX_5C
- dbw $00, .OAMData_5d ; SPRITE_ANIM_FRAME_IDX_5D
- dbw $00, .OAMData_5e ; SPRITE_ANIM_FRAME_IDX_5E
- dbw $00, .OAMData_5f ; SPRITE_ANIM_FRAME_IDX_5F
- dbw $00, .OAMData_60 ; SPRITE_ANIM_FRAME_IDX_60
- dbw $00, .OAMData_61 ; SPRITE_ANIM_FRAME_IDX_61
- dbw $00, .OAMData_62 ; SPRITE_ANIM_FRAME_IDX_62
- dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1
- dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2
- dbw $00, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1
- dbw $04, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2
- dbw $20, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1
- dbw $21, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2
- dbw $22, .OAMData_ForMobile25_1 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1
- dbw $23, .OAMData_ForMobile25_2 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2
- dbw $27, .OAMData_ForMobile25_3 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3
- dbw $2a, .OAMData_ForMobile23 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23
- dbw $2a, .OAMData_ForMobile24 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24
- dbw $00, .OAMData_IntroSuicune1 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1
- dbw $08, .OAMData_IntroSuicune2 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2
- dbw $60, .OAMData_IntroSuicune3 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3
- dbw $68, .OAMData_IntroSuicune4 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4
- dbw $00, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1
- dbw $05, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2
- dbw $0a, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3
- dbw $50, .OAMData_IntroWooper ; SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER
- dbw $00, .OAMData_IntroUnown1 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1
- dbw $01, .OAMData_IntroUnown2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2
- dbw $04, .OAMData_IntroUnown3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3
- dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1
- dbw $01, .OAMData_IntroUnownF2_2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2
- dbw $03, .OAMData_IntroUnownF2_3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3
- dbw $08, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4
- dbw $1c, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5
- dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY
- dbw $00, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_1
- dbw $04, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_2
- dbw $d0, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1
- dbw $d3, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2
- dbw $d6, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3
- dbw $6c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4
- dbw $68, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5
- dbw $64, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6
- dbw $60, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7
- dbw $0c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8
- dbw $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9
- dbw $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10
- dbw $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_1
+ dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_2
+ dbw $4c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_02
+ dbw $5c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_03
+ dbw $6c, .OAMData_04 ; SPRITE_ANIM_OAMSET_04
+ dbw $6e, .OAMData_04 ; SPRITE_ANIM_OAMSET_05
+ dbw $2d, .OAMData_06 ; SPRITE_ANIM_OAMSET_06
+ dbw $4d, .OAMData_06 ; SPRITE_ANIM_OAMSET_07
+ dbw $60, .OAMData_08 ; SPRITE_ANIM_OAMSET_08
+ dbw $00, .OAMData_08 ; SPRITE_ANIM_OAMSET_09
+ dbw $00, .OAMData_08 ; SPRITE_ANIM_OAMSET_0A
+ dbw $06, .OAMData_08 ; SPRITE_ANIM_OAMSET_0B
+ dbw $0c, .OAMData_0c ; SPRITE_ANIM_OAMSET_0C
+ dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_0D
+ dbw $00, .OAMData_0e ; SPRITE_ANIM_OAMSET_0E
+ dbw $04, .OAMData_0e ; SPRITE_ANIM_OAMSET_0F
+ dbw $08, .OAMData_0e ; SPRITE_ANIM_OAMSET_10
+ dbw $40, .OAMData_0e ; SPRITE_ANIM_OAMSET_11
+ dbw $44, .OAMData_0e ; SPRITE_ANIM_OAMSET_12
+ dbw $48, .OAMData_0e ; SPRITE_ANIM_OAMSET_13
+ dbw $4c, .OAMData_0e ; SPRITE_ANIM_OAMSET_14
+ dbw $80, .OAMData_15 ; SPRITE_ANIM_OAMSET_15
+ dbw $85, .OAMData_15 ; SPRITE_ANIM_OAMSET_16
+ dbw $8a, .OAMData_15 ; SPRITE_ANIM_OAMSET_17
+ dbw $00, .OAMData_18 ; SPRITE_ANIM_OAMSET_18
+ dbw $01, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_19
+ dbw $09, .OAMData_1a ; SPRITE_ANIM_OAMSET_1A
+ dbw $10, .OAMData_1b ; SPRITE_ANIM_OAMSET_1B
+ dbw $29, .OAMData_1b ; SPRITE_ANIM_OAMSET_1C
+ dbw $42, .OAMData_1b ; SPRITE_ANIM_OAMSET_1D
+ dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1
+ dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2
+ dbw $00, .OAMData_TextEntryCursor ; SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR
+ dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_OAMSET_FOR_FRAMESET_09
+ dbw $00, .OAMData_22 ; SPRITE_ANIM_OAMSET_22
+ dbw $0f, .OAMData_GSIntroStar ; SPRITE_ANIM_OAMSET_GS_INTRO_STAR
+ dbw $11, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1
+ dbw $12, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2
+ dbw $13, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3
+ dbw $00, .OAMData_SlotsGolem ; SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1
+ dbw $08, .OAMData_SlotsGolem ; SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2
+ dbw $10, .OAMData_SlotsChansey1 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1
+ dbw $10, .OAMData_SlotsChansey2 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2
+ dbw $10, .OAMData_SlotsChansey3 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3
+ dbw $10, .OAMData_SlotsChansey4 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4
+ dbw $10, .OAMData_SlotsChansey5 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5
+ dbw $3a, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_SLOTS_EGG
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_STILL_CURSOR
+ dbw $00, .OAMData_TradePokeBall1 ; SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1
+ dbw $02, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2
+ dbw $06, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_1
+ dbw $0a, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_2
+ dbw $0e, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_3
+ dbw $12, .OAMData_35 ; SPRITE_ANIM_OAMSET_35
+ dbw $13, .OAMData_35 ; SPRITE_ANIM_OAMSET_36
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_TRADEMON_ICON_1
+ dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_TRADEMON_ICON_2
+ dbw $10, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE
+ dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1
+ dbw $04, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2
+ dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB
+ dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1
+ dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2
+ dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1
+ dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2
+ dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1
+ dbw $04, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2
+ dbw $00, .OAMData_43 ; SPRITE_ANIM_OAMSET_43
+ dbw $30, .OAMData_43 ; SPRITE_ANIM_OAMSET_44
+ dbw $03, .OAMData_43 ; SPRITE_ANIM_OAMSET_45
+ dbw $33, .OAMData_43 ; SPRITE_ANIM_OAMSET_46
+ dbw $06, .OAMData_43 ; SPRITE_ANIM_OAMSET_47
+ dbw $36, .OAMData_43 ; SPRITE_ANIM_OAMSET_48
+ dbw $09, .OAMData_43 ; SPRITE_ANIM_OAMSET_49
+ dbw $39, .OAMData_43 ; SPRITE_ANIM_OAMSET_4A
+ dbw $0c, .OAMData_4b ; SPRITE_ANIM_OAMSET_4B
+ dbw $0c, .OAMData_4c ; SPRITE_ANIM_OAMSET_4C
+ dbw $3c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_4D
+ dbw $3e, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_4E
+ dbw $00, .OAMData_Leaf ; SPRITE_ANIM_OAMSET_LEAF
+ dbw $00, .OAMData_Tree ; SPRITE_ANIM_OAMSET_TREE_1
+ dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_OAMSET_CUT_TREE_2
+ dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_OAMSET_CUT_TREE_3
+ dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_OAMSET_CUT_TREE_4
+ dbw $00, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_EGG_CRACK
+ dbw $01, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_55
+ dbw $00, .OAMData_56 ; SPRITE_ANIM_OAMSET_56
+ dbw $00, .OAMData_57 ; SPRITE_ANIM_OAMSET_57
+ dbw $00, .OAMData_58 ; SPRITE_ANIM_OAMSET_58
+ dbw $00, .OAMData_59 ; SPRITE_ANIM_OAMSET_59
+ dbw $00, .OAMData_5a ; SPRITE_ANIM_OAMSET_5A
+ dbw $04, .OAMData_Tree ; SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2
+ dbw $00, .OAMData_5c ; SPRITE_ANIM_OAMSET_5C
+ dbw $00, .OAMData_5d ; SPRITE_ANIM_OAMSET_5D
+ dbw $00, .OAMData_5e ; SPRITE_ANIM_OAMSET_5E
+ dbw $00, .OAMData_5f ; SPRITE_ANIM_OAMSET_5F
+ dbw $00, .OAMData_60 ; SPRITE_ANIM_OAMSET_60
+ dbw $00, .OAMData_61 ; SPRITE_ANIM_OAMSET_61
+ dbw $00, .OAMData_62 ; SPRITE_ANIM_OAMSET_62
+ dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_BLUE_WALK_1
+ dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_BLUE_WALK_2
+ dbw $00, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1
+ dbw $04, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2
+ dbw $20, .OAMData_ForMobile22 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1
+ dbw $21, .OAMData_ForMobile22 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2
+ dbw $22, .OAMData_ForMobile25_1 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1
+ dbw $23, .OAMData_ForMobile25_2 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2
+ dbw $27, .OAMData_ForMobile25_3 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3
+ dbw $2a, .OAMData_ForMobile23 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_23
+ dbw $2a, .OAMData_ForMobile24 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_24
+ dbw $00, .OAMData_IntroSuicune1 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1
+ dbw $08, .OAMData_IntroSuicune2 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2
+ dbw $60, .OAMData_IntroSuicune3 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3
+ dbw $68, .OAMData_IntroSuicune4 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4
+ dbw $00, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_1
+ dbw $05, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_2
+ dbw $0a, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_3
+ dbw $50, .OAMData_IntroWooper ; SPRITE_ANIM_OAMSET_INTRO_WOOPER
+ dbw $00, .OAMData_IntroUnown1 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_1
+ dbw $01, .OAMData_IntroUnown2 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_2
+ dbw $04, .OAMData_IntroUnown3 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_3
+ dbw $00, .OAMData_18 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1
+ dbw $01, .OAMData_IntroUnownF2_2 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2
+ dbw $03, .OAMData_IntroUnownF2_3 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3
+ dbw $08, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4
+ dbw $1c, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5
+ dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY
+ dbw $00, .OAMData_Celebi ; SPRITE_ANIM_OAMSET_CELEBI_1
+ dbw $04, .OAMData_Celebi ; SPRITE_ANIM_OAMSET_CELEBI_2
+ dbw $d0, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1
+ dbw $d3, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2
+ dbw $d6, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3
+ dbw $6c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4
+ dbw $68, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5
+ dbw $64, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6
+ dbw $60, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7
+ dbw $0c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8
+ dbw $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9
+ dbw $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10
+ dbw $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11
.OAMData_1x1_Palette0:
db 1
diff --git a/data/sprite_anim_seqs.asm b/data/sprites/sequences.asm
index 70544a60a..70544a60a 100644
--- a/data/sprite_anim_seqs.asm
+++ b/data/sprites/sequences.asm
diff --git a/battle/type_matchup.asm b/data/type_matchups.asm
index f330d8710..b1e06c6f7 100644
--- a/battle/type_matchup.asm
+++ b/data/type_matchups.asm
@@ -1,13 +1,11 @@
; The multiplier is divided by 10, so we can use values like 0.5.
-
+; All other cases are neutral (1x).
SUPER_EFFECTIVE EQU 20
NOT_VERY_EFFECTIVE EQU 05
NO_EFFECT EQU 00
-; All other cases are neutral (1x).
-
+TypeMatchups: ; 34bb1
; attacker defender*=
-
db NORMAL, ROCK, NOT_VERY_EFFECTIVE
db NORMAL, STEEL, NOT_VERY_EFFECTIVE
db FIRE, FIRE, NOT_VERY_EFFECTIVE
@@ -117,12 +115,11 @@ NO_EFFECT EQU 00
db STEEL, ROCK, SUPER_EFFECTIVE
db STEEL, STEEL, NOT_VERY_EFFECTIVE
+ db $fe ; end
; Foresight removes Ghost's immunities.
-
- db $fe
-
db NORMAL, GHOST, NO_EFFECT
db FIGHTING, GHOST, NO_EFFECT
- db $ff ; end
+ db $ff ; end (with Foresight)
+; 34cfd
diff --git a/data/type_names.asm b/data/type_names.asm
new file mode 100644
index 000000000..d86fd62c7
--- /dev/null
+++ b/data/type_names.asm
@@ -0,0 +1,50 @@
+TypeNames: ; 5097b
+; entries correspond to types (see constants/type_constants.asm)
+ dw Normal
+ dw Fighting
+ dw Flying
+ dw Poison
+ dw Ground
+ dw Rock
+ dw Bird
+ dw Bug
+ dw Ghost
+ dw Steel
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw CurseType
+ dw Fire
+ dw Water
+ dw Grass
+ dw Electric
+ dw Psychic
+ dw Ice
+ dw Dragon
+ dw Dark
+
+Normal: db "NORMAL@"
+Fighting: db "FIGHTING@"
+Flying: db "FLYING@"
+Poison: db "POISON@"
+CurseType: db "???@"
+Fire: db "FIRE@"
+Water: db "WATER@"
+Grass: db "GRASS@"
+Electric: db "ELECTRIC@"
+Psychic: db "PSYCHIC@"
+Ice: db "ICE@"
+Ground: db "GROUND@"
+Rock: db "ROCK@"
+Bird: db "BIRD@"
+Bug: db "BUG@"
+Ghost: db "GHOST@"
+Steel: db "STEEL@"
+Dragon: db "DRAGON@"
+Dark: db "DARK@"
diff --git a/data/battle/flee_mons.asm b/data/wild/flee_mons.asm
index 1b1cea036..1b1cea036 100644
--- a/data/battle/flee_mons.asm
+++ b/data/wild/flee_mons.asm
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index bf170881a..9275c6572 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -56,7 +56,7 @@
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+This is a bug with `SpeciesItemBoost` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
; Double the stat
@@ -90,7 +90,7 @@ This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](/battle/ef
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+This is a bug with `DittoMetalPowder` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
ld a, c
@@ -146,7 +146,7 @@ This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](/battle/ef
([Video](https://www.youtube.com/watch?v=zuCLMikWo4Y))
-This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+This is a bug with `BattleCommand_BellyDrum` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
BattleCommand_BellyDrum: ; 37c1a
@@ -186,7 +186,7 @@ BattleCommand_BellyDrum: ; 37c1a
This bug affects Acid, Iron Tail, and Rock Smash.
-This is a bug with `DefenseDownHit` in [battle/moves/move_effects.asm](/battle/moves/move_effects.asm):
+This is a bug with `DefenseDownHit` in [data/moves/move_effects.asm](/data/moves/move_effects.asm):
```asm
DefenseDownHit:
@@ -227,7 +227,7 @@ DefenseDownHit:
([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
-This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](/battle/core.asm):
+This is a bug with `CheckPlayerHasUsableMoves` in [engine/battle/core.asm](/engine/battle/core.asm):
```asm
.done
@@ -259,7 +259,7 @@ This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](/battle/core
This bug affects Attract, Curse, Foresight, Mean Look, Mimic, Nightmare, Spider Web, Transform, and stat-lowering effects of moves like String Shot or Bubble during the semi-invulnerable turn of Fly or Dig.
-This is a bug with `CheckHiddenOpponent` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+This is a bug with `CheckHiddenOpponent` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
CheckHiddenOpponent: ; 37daa
@@ -277,7 +277,7 @@ CheckHiddenOpponent: ; 37daa
([Video](https://www.youtube.com/watch?v=202-iAsrIa8))
-This is a bug with `BattleCommand_BeatUp` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+This is a bug with `BattleCommand_BeatUp` in [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
.got_mon
@@ -314,7 +314,7 @@ This is a bug with `BattleCommand_BeatUp` in [battle/effect_commands.asm](/battl
This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
-This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](/battle/effects/present.asm):
+This is a bug with `BattleCommand_Present` in [engine/battle/effect_commands/present.asm](/engine/battle/effect_commands/present.asm):
```asm
BattleCommand_Present: ; 37874
@@ -355,7 +355,7 @@ BattleCommand_Present: ; 37874
([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
-This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](/battle/ai/scoring.asm):
+This is a bug with `AI_Smart_MeanLook` in [engine/battle/ai/scoring.asm](/engine/battle/ai/scoring.asm):
```asm
; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
@@ -370,7 +370,7 @@ This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](/battle/ai/sco
## AI makes a false assumption about `CheckTypeMatchup`
-In [battle/effect_commands.asm](/battle/effect_commands.asm):
+In [engine/battle/effect_commands.asm](/engine/battle/effect_commands.asm):
```asm
BattleCheckTypeMatchup: ; 347c8
@@ -401,7 +401,7 @@ CheckTypeMatchup: ; 347d3
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
-This is a bug with `AI_HealStatus` in [battle/ai/items.asm](/battle/ai/items.asm):
+This is a bug with `AI_HealStatus` in [engine/battle/ai/items.asm](/engine/battle/ai/items.asm):
```asm
AI_HealStatus: ; 384e0
@@ -429,7 +429,7 @@ AI_HealStatus: ; 384e0
([Video](https://www.youtube.com/watch?v=SE-BfsFgZVM))
-This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
+This is a bug with `LongAnim_UpdateVariables` in [engine/battle/anim_hp_bar.asm](/engine/battle/anim_hp_bar.asm):
```asm
; This routine is buggy. The result from ComputeHPBarPixels is stored
@@ -727,7 +727,7 @@ Data_DaisyMassage: ; 746b
## Magikarp in Lake of Rage are shorter, not longer
-This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](/battle/core.asm):
+This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [engine/battle/core.asm](/engine/battle/core.asm):
```asm
.CheckMagikarpArea:
diff --git a/docs/move_anim_commands.md b/docs/move_anim_commands.md
index 1b9bd5b8f..308c4c45e 100644
--- a/docs/move_anim_commands.md
+++ b/docs/move_anim_commands.md
@@ -1,6 +1,6 @@
# Move Animation Commands
-Defined in [macros/scripts/move_anim.asm](/macros/scripts/move_anim.asm) and [battle/anims.asm:BattleAnimations](/battle/anims.asm).
+Defined in [macros/scripts/move_anim.asm](/macros/scripts/move_anim.asm) and [data/moves/move_anims.asm:BattleAnimations](/data/moves/move_anims.asm).
## `$00`−`$EF`: `anim_wait` *length*
diff --git a/docs/pic_animations.md b/docs/pic_animations.md
index 57c7f151a..531282c13 100644
--- a/docs/pic_animations.md
+++ b/docs/pic_animations.md
@@ -1,6 +1,6 @@
# Pic Animations
-Defined in [macros/scripts/gfx_anim.asm](/macros/scripts/gfx_anim.asm) and [battle/anim_commands.asm:BattleAnimCommands](/battle/anim_commands.asm).
+Defined in [macros/scripts/gfx_anim.asm](/macros/scripts/gfx_anim.asm) and [engine/anims/anim_commands.asm:BattleAnimCommands](/engine/anims/anim_commands.asm).
Pic animations are assembled in 3 parts:
diff --git a/battle/anim_commands.asm b/engine/anims/anim_commands.asm
index 78786f516..1977f9112 100644
--- a/battle/anim_commands.asm
+++ b/engine/anims/anim_commands.asm
@@ -1,6 +1,5 @@
; Battle animation command interpreter.
-
PlayBattleAnim: ; cc0d6
ld a, [rSVBK]
diff --git a/battle/bg_effects.asm b/engine/anims/bg_effects.asm
index 7799c2cf7..ab4a8036b 100644
--- a/battle/bg_effects.asm
+++ b/engine/anims/bg_effects.asm
@@ -78,6 +78,7 @@ DoBattleBGEffectFunction: ; c804a (32:404a)
jp hl
BattleBGEffects: ; c805a (32:405a)
+; entries correspond to ANIM_BG_* constants
dw BattleBGEffect_End
dw BattleBGEffect_FlashInverted
dw BattleBGEffect_FlashWhite
diff --git a/battle/objects/engine.asm b/engine/anims/engine.asm
index ae3bdde28..ae3bdde28 100755
--- a/battle/objects/engine.asm
+++ b/engine/anims/engine.asm
diff --git a/battle/objects/functions.asm b/engine/anims/functions.asm
index 64c390cbe..e5b2b16c4 100755
--- a/battle/objects/functions.asm
+++ b/engine/anims/functions.asm
@@ -13,6 +13,7 @@ DoBattleAnimFrame: ; ccfbe
; ccfce
.Jumptable:
+; entries correspond to BATTLEANIMFUNC_* constants
dw BattleAnimFunction_Null ; 00
dw BattleAnimFunction_01 ; 01
dw BattleAnimFunction_02 ; 02
@@ -450,7 +451,7 @@ GetBallAnimPal: ; cd249 (33:5249)
ret
; cd26c (33:526c)
-INCLUDE "data/battle/ball_colors.asm"
+INCLUDE "data/anims/ball_colors.asm"
BattleAnimFunction_10: ; cd284 (33:5284)
call BattleAnim_AnonJumptable
diff --git a/battle/objects/helpers.asm b/engine/anims/helpers.asm
index a692211d3..a692211d3 100755
--- a/battle/objects/helpers.asm
+++ b/engine/anims/helpers.asm
diff --git a/battle/ai/items.asm b/engine/battle/ai/items.asm
index 09595077a..09595077a 100644
--- a/battle/ai/items.asm
+++ b/engine/battle/ai/items.asm
diff --git a/battle/ai/move.asm b/engine/battle/ai/move.asm
index 11586c0da..11586c0da 100755
--- a/battle/ai/move.asm
+++ b/engine/battle/ai/move.asm
diff --git a/battle/ai/redundant.asm b/engine/battle/ai/redundant.asm
index 2e8f7c6df..2e8f7c6df 100755
--- a/battle/ai/redundant.asm
+++ b/engine/battle/ai/redundant.asm
diff --git a/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm
index 44194d6f7..44194d6f7 100644
--- a/battle/ai/scoring.asm
+++ b/engine/battle/ai/scoring.asm
diff --git a/battle/ai/switch.asm b/engine/battle/ai/switch.asm
index c2f83fa1f..c2f83fa1f 100755
--- a/battle/ai/switch.asm
+++ b/engine/battle/ai/switch.asm
diff --git a/engine/anim_hp_bar.asm b/engine/battle/anim_hp_bar.asm
index 78062b547..78062b547 100755
--- a/engine/anim_hp_bar.asm
+++ b/engine/battle/anim_hp_bar.asm
diff --git a/engine/battle_transition.asm b/engine/battle/battle_transition.asm
index bef74ad29..bef74ad29 100644
--- a/engine/battle_transition.asm
+++ b/engine/battle/battle_transition.asm
diff --git a/battle/core.asm b/engine/battle/core.asm
index 3a6d7ac9e..a62b70d72 100644
--- a/battle/core.asm
+++ b/engine/battle/core.asm
@@ -820,7 +820,7 @@ TryEnemyFlee: ; 3c543
ret
; 3c59a
-INCLUDE "data/battle/flee_mons.asm"
+INCLUDE "data/wild/flee_mons.asm"
CompareMovePriority: ; 3c5b4
; Compare the priority of the player and enemy's moves.
diff --git a/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index f2c6b5d77..5922afea3 100644
--- a/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -1428,7 +1428,7 @@ BattleCommand_Stab: ; 346d2
ld a, BATTLE_VARS_MOVE_TYPE
call GetBattleVar
ld b, a
- ld hl, TypeMatchup
+ ld hl, TypeMatchups
.TypesLoop:
ld a, [hli]
@@ -1559,7 +1559,7 @@ CheckTypeMatchup: ; 347d3
ld c, [hl]
ld a, 10 ; 1.0
ld [wTypeMatchup], a
- ld hl, TypeMatchup
+ ld hl, TypeMatchups
.TypesLoop:
ld a, [hli]
cp $ff
@@ -1638,12 +1638,9 @@ BattleCommand_ResetTypeMatchup: ; 34833
; 3484e
-INCLUDE "battle/ai/switch.asm"
-
-TypeMatchup: ; 34bb1
-INCLUDE "battle/type_matchup.asm"
-; 34cfd
+INCLUDE "engine/battle/ai/switch.asm"
+INCLUDE "data/type_matchups.asm"
BattleCommand_DamageVariation: ; 34cfd
; damagevariation
@@ -8413,7 +8410,7 @@ BattleCommand_Heal: ; 3713e
; 371cd
-INCLUDE "battle/effects/transform.asm"
+INCLUDE "engine/battle/effect_commands/transform.asm"
BattleSideCopy: ; 372c6
; Copy bc bytes from hl to de if it's the player's turn.
@@ -8640,9 +8637,9 @@ BattleCommand_Selfdestruct: ; 37380
; 373c9
-INCLUDE "battle/effects/mirror_move.asm"
+INCLUDE "engine/battle/effect_commands/mirror_move.asm"
-INCLUDE "battle/effects/metronome.asm"
+INCLUDE "engine/battle/effect_commands/metronome.asm"
CheckUserMove: ; 37462
@@ -8689,7 +8686,7 @@ ResetTurn: ; 3747b
; 37492
-INCLUDE "battle/effects/thief.asm"
+INCLUDE "engine/battle/effect_commands/thief.asm"
BattleCommand_ArenaTrap: ; 37517
@@ -8721,7 +8718,7 @@ BattleCommand_ArenaTrap: ; 37517
; 37536
-INCLUDE "battle/effects/nightmare.asm"
+INCLUDE "engine/battle/effect_commands/nightmare.asm"
BattleCommand_Defrost: ; 37563
@@ -8758,21 +8755,21 @@ BattleCommand_Defrost: ; 37563
; 37588
-INCLUDE "battle/effects/curse.asm"
+INCLUDE "engine/battle/effect_commands/curse.asm"
-INCLUDE "battle/effects/protect.asm"
+INCLUDE "engine/battle/effect_commands/protect.asm"
-INCLUDE "battle/effects/endure.asm"
+INCLUDE "engine/battle/effect_commands/endure.asm"
-INCLUDE "battle/effects/spikes.asm"
+INCLUDE "engine/battle/effect_commands/spikes.asm"
-INCLUDE "battle/effects/foresight.asm"
+INCLUDE "engine/battle/effect_commands/foresight.asm"
-INCLUDE "battle/effects/perish_song.asm"
+INCLUDE "engine/battle/effect_commands/perish_song.asm"
-INCLUDE "battle/effects/sandstorm.asm"
+INCLUDE "engine/battle/effect_commands/sandstorm.asm"
-INCLUDE "battle/effects/rollout.asm"
+INCLUDE "engine/battle/effect_commands/rollout.asm"
BattleCommand5d: ; 37791
@@ -8845,7 +8842,7 @@ ResetFuryCutterCount: ; 377be
; 377ce
-INCLUDE "battle/effects/attract.asm"
+INCLUDE "engine/battle/effect_commands/attract.asm"
BattleCommand_HappinessPower: ; 3784b
; happinesspower
@@ -8876,7 +8873,7 @@ BattleCommand_HappinessPower: ; 3784b
; 37874
-INCLUDE "battle/effects/present.asm"
+INCLUDE "engine/battle/effect_commands/present.asm"
BattleCommand_FrustrationPower: ; 3790e
; frustrationpower
diff --git a/battle/effects/attract.asm b/engine/battle/effect_commands/attract.asm
index 0a6d7c975..0a6d7c975 100755
--- a/battle/effects/attract.asm
+++ b/engine/battle/effect_commands/attract.asm
diff --git a/battle/effects/curse.asm b/engine/battle/effect_commands/curse.asm
index dceb3b8d5..dceb3b8d5 100644
--- a/battle/effects/curse.asm
+++ b/engine/battle/effect_commands/curse.asm
diff --git a/battle/effects/endure.asm b/engine/battle/effect_commands/endure.asm
index ed4329ff5..ed4329ff5 100644
--- a/battle/effects/endure.asm
+++ b/engine/battle/effect_commands/endure.asm
diff --git a/battle/effects/foresight.asm b/engine/battle/effect_commands/foresight.asm
index 6f4f97cd2..6f4f97cd2 100644
--- a/battle/effects/foresight.asm
+++ b/engine/battle/effect_commands/foresight.asm
diff --git a/battle/effects/metronome.asm b/engine/battle/effect_commands/metronome.asm
index 1908df84d..1908df84d 100644
--- a/battle/effects/metronome.asm
+++ b/engine/battle/effect_commands/metronome.asm
diff --git a/battle/effects/mirror_move.asm b/engine/battle/effect_commands/mirror_move.asm
index c4f208d77..c4f208d77 100644
--- a/battle/effects/mirror_move.asm
+++ b/engine/battle/effect_commands/mirror_move.asm
diff --git a/battle/effects/nightmare.asm b/engine/battle/effect_commands/nightmare.asm
index 788e3de41..788e3de41 100644
--- a/battle/effects/nightmare.asm
+++ b/engine/battle/effect_commands/nightmare.asm
diff --git a/battle/effects/perish_song.asm b/engine/battle/effect_commands/perish_song.asm
index ac491ef6b..ac491ef6b 100644
--- a/battle/effects/perish_song.asm
+++ b/engine/battle/effect_commands/perish_song.asm
diff --git a/battle/effects/present.asm b/engine/battle/effect_commands/present.asm
index 819294f8c..819294f8c 100755
--- a/battle/effects/present.asm
+++ b/engine/battle/effect_commands/present.asm
diff --git a/battle/effects/protect.asm b/engine/battle/effect_commands/protect.asm
index 568ac00f8..568ac00f8 100644
--- a/battle/effects/protect.asm
+++ b/engine/battle/effect_commands/protect.asm
diff --git a/battle/effects/rollout.asm b/engine/battle/effect_commands/rollout.asm
index 4ce9ab3d8..4ce9ab3d8 100644
--- a/battle/effects/rollout.asm
+++ b/engine/battle/effect_commands/rollout.asm
diff --git a/battle/effects/sandstorm.asm b/engine/battle/effect_commands/sandstorm.asm
index 27b8e8e2c..27b8e8e2c 100644
--- a/battle/effects/sandstorm.asm
+++ b/engine/battle/effect_commands/sandstorm.asm
diff --git a/battle/effects/spikes.asm b/engine/battle/effect_commands/spikes.asm
index 3d15e4cfd..3d15e4cfd 100644
--- a/battle/effects/spikes.asm
+++ b/engine/battle/effect_commands/spikes.asm
diff --git a/battle/effects/thief.asm b/engine/battle/effect_commands/thief.asm
index 6d32d68d4..6d32d68d4 100644
--- a/battle/effects/thief.asm
+++ b/engine/battle/effect_commands/thief.asm
diff --git a/battle/effects/transform.asm b/engine/battle/effect_commands/transform.asm
index 65c3f3e60..65c3f3e60 100755
--- a/battle/effects/transform.asm
+++ b/engine/battle/effect_commands/transform.asm
diff --git a/battle/hidden_power.asm b/engine/battle/hidden_power.asm
index c75a67ab3..c75a67ab3 100644
--- a/battle/hidden_power.asm
+++ b/engine/battle/hidden_power.asm
diff --git a/battle/link_result.asm b/engine/battle/link_result.asm
index cf6102acc..cf6102acc 100755
--- a/battle/link_result.asm
+++ b/engine/battle/link_result.asm
diff --git a/battle/menu.asm b/engine/battle/menu.asm
index 07d3e6081..07d3e6081 100755
--- a/battle/menu.asm
+++ b/engine/battle/menu.asm
diff --git a/battle/misc.asm b/engine/battle/misc.asm
index b05dc8071..b05dc8071 100644
--- a/battle/misc.asm
+++ b/engine/battle/misc.asm
diff --git a/engine/read_trainer_attributes.asm b/engine/battle/read_trainer_attributes.asm
index dfb8d3682..dfb8d3682 100644
--- a/engine/read_trainer_attributes.asm
+++ b/engine/battle/read_trainer_attributes.asm
diff --git a/engine/read_trainer_party.asm b/engine/battle/read_trainer_party.asm
index 9b7727a84..9b7727a84 100755
--- a/engine/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
diff --git a/battle/sliding_intro.asm b/engine/battle/sliding_intro.asm
index ed78add8e..ed78add8e 100755
--- a/battle/sliding_intro.asm
+++ b/engine/battle/sliding_intro.asm
diff --git a/engine/start_battle.asm b/engine/battle/start_battle.asm
index 8d510b72e..8d510b72e 100644
--- a/engine/start_battle.asm
+++ b/engine/battle/start_battle.asm
diff --git a/battle/trainer_huds.asm b/engine/battle/trainer_huds.asm
index 9efe08414..9efe08414 100755
--- a/battle/trainer_huds.asm
+++ b/engine/battle/trainer_huds.asm
diff --git a/engine/trainer_scripts.asm b/engine/battle/trainer_scripts.asm
index 212cd7f28..212cd7f28 100644
--- a/engine/trainer_scripts.asm
+++ b/engine/battle/trainer_scripts.asm
diff --git a/battle/used_move_text.asm b/engine/battle/used_move_text.asm
index ea2351005..ce9e51359 100755
--- a/battle/used_move_text.asm
+++ b/engine/battle/used_move_text.asm
@@ -5,10 +5,8 @@ DisplayUsedMoveText: ; 105db0
jp WaitBGMap
; 105db9
-
UsedMoveText: ; 105db9
; this is a stream of text and asm from 105db9 to 105ef6
-
text_jump _ActorNameText
start_asm
ld a, [hBattleTurn]
@@ -45,7 +43,6 @@ UsedMoveText: ; 105db9
call GetMoveGrammar
; wd265 now contains MoveGrammar
-
; everything except 'instead' made redundant in localization
; check obedience
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
index 20faecb5d..472532739 100644
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -1,4 +1,3 @@
-
RunMapSetupScript:: ; 15363
ld a, [hMapEntryMethod]
and $f
@@ -15,183 +14,7 @@ RunMapSetupScript:: ; 15363
ret
; 15377
-MapSetupScripts: ; 15377
- dw MapSetupScript_Warp
- dw MapSetupScript_Continue
- dw MapSetupScript_ReloadMap
- dw MapSetupScript_Teleport
- dw MapSetupScript_Door
- dw MapSetupScript_Fall
- dw MapSetupScript_Connection
- dw MapSetupScript_LinkReturn
- dw MapSetupScript_Train
- dw MapSetupScript_Submenu
- dw MapSetupScript_BadWarp
- dw MapSetupScript_Fly
-; 1538f
-
-MapSetupScript_Teleport: ; 1538f
- db map_prolong_sprites
-MapSetupScript_Fly: ; 15390
- db map_fade_out_palettes
- db map_keep_roam
-MapSetupScript_Warp: ; 15392
- db map_lcd_off
- db map_sound_off
- db map_load_spawn
- db map_attributes
- db map_change_callback
- db map_spawn_coord
- db map_player_coord
- db map_anchor_screen
- db map_load_blocks
- db map_buffer_screen
- db map_load_graphics
- db map_time_of_day
- db map_load_objects
- db map_lcd_on
- db map_palettes
- db map_face_down
- db map_sprites
- db map_bike_music
- db map_max_volume
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_end
-
-MapSetupScript_BadWarp: ; 153a9
- db map_load_spawn
- db map_attributes
- db map_change_callback
- db map_spawn_coord
- db map_player_coord
- db map_anchor_screen
- db map_load_blocks
- db map_buffer_screen
- db map_lcd_off
- db map_load_graphics
- db map_time_of_day
- db map_fade_out_music
- db map_lcd_on
- db map_load_objects
- db map_palettes
- db map_face_down
- db map_sprites
- db map_fade_music
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_end
-
-MapSetupScript_Connection: ; 153bf
- db map_animations_off
- db map_load_connection
- db map_attributes
- db map_change_callback
- db map_player_coord
- db map_load_blocks
- db map_load_tileset
- db map_save_screen
- db map_load_objects
- db map_fade_music
- db map_palettes
- db map_stop_script
- db map_keep_palettes
- db map_wildmons
- db map_update_roam
- db map_animations_on
- db map_end
-
-MapSetupScript_Fall: ; 153d0
- db map_prolong_sprites
-MapSetupScript_Door: ; 153d1
- db map_fade_out_palettes
-MapSetupScript_Train: ; 153d2
- db map_load_warp
- db map_attributes
- db map_warp_face
- db map_change_callback
- db map_player_coord
- db map_load_blocks
- db map_buffer_screen
- db map_lcd_off
- db map_load_graphics
- db map_time_of_day
- db map_fade_out_music
- db map_lcd_on
- db map_load_objects
- db map_palettes
- db map_sprites
- db map_fade_music
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_update_roam
- db map_end
-
-MapSetupScript_ReloadMap: ; 153e7
- db map_fade
- db map_clear_bg_palettes
- db map_lcd_off
- db map_sound_off
- db map_load_blocks
- db map_connection_blocks
- db map_load_graphics
- db map_time_of_day
- db map_lcd_on
- db map_palettes
- db map_sprites
- db map_music_force
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_end
-
-MapSetupScript_LinkReturn: ; 153f7
- db map_fade
- db map_lcd_off
- db map_sound_off
- db map_change_callback
- db map_load_blocks
- db map_buffer_screen
- db map_load_graphics
- db map_time_of_day
- db map_lcd_on
- db map_palettes
- db map_sprites
- db map_bike_music
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_text_scroll_off
- db map_end
-
-MapSetupScript_Continue: ; 15408
- db map_lcd_off
- db map_sound_off
- db map_attributes_2
- db map_anchor_screen
- db map_start_callback
- db map_load_blocks
- db map_connection_blocks
- db map_buffer_screen
- db map_load_graphics
- db map_time_of_day
- db map_lcd_on
- db map_palettes
- db map_sprites
- db map_bike_music
- db map_fade_in_palettes
- db map_animations_on
- db map_wildmons
- db map_end
-
-MapSetupScript_Submenu: ; 1541a
- db map_load_blocks
- db map_connection_blocks
- db map_end
-
+INCLUDE "data/maps/map_setup_scripts.asm"
ReadMapSetupScript: ; 1541d
.loop
@@ -238,6 +61,7 @@ ReadMapSetupScript: ; 1541d
; 15440
MapSetupCommands: ; 15440
+; entries correspond to command indexes in constants/map_setup_constants.asm
dba EnableLCD ; 00
dba DisableLCD ; 01
dba MapSetup_Sound_Off ; 02
diff --git a/engine/mystery_gift_2.asm b/engine/mystery_gift_2.asm
index dc0baf39c..1d180f714 100755
--- a/engine/mystery_gift_2.asm
+++ b/engine/mystery_gift_2.asm
@@ -147,6 +147,6 @@ MysteryGiftFallbackItem: ; 2c722 (b:4722)
; 2c725 (b:4725)
-INCLUDE "data/mystery_gift/items.asm"
+INCLUDE "data/mystery_gift_items.asm"
-INCLUDE "data/mystery_gift/decos.asm"
+INCLUDE "data/mystery_gift_decos.asm"
diff --git a/engine/pokegear.asm b/engine/pokegear.asm
index 96959205b..a3e43cebf 100755
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -2338,7 +2338,7 @@ HasVisitedSpawn: ; 91c50
; 91c5e
-INCLUDE "data/flypoints.asm"
+INCLUDE "data/maps/flypoints.asm"
ret_91c8f: ; 91c8f
ret
diff --git a/engine/sprites.asm b/engine/sprites.asm
index 755ee0835..cc579a914 100755
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -551,13 +551,13 @@ BrokenGetStdGraphics: ; 8d1ac
; 8d1c4
-INCLUDE "data/sprite_anim_seqs.asm"
+INCLUDE "data/sprites/sequences.asm"
INCLUDE "engine/sprite_anims.asm"
-INCLUDE "data/sprite_anim_frames.asm"
+INCLUDE "data/sprites/framesets.asm"
-INCLUDE "data/sprite_anim_oam.asm"
+INCLUDE "data/sprites/oam.asm"
BrokenStdGFXPointers: ; Broken 2bpp pointers
diff --git a/engine/tmhm.asm b/engine/tmhm.asm
index 78d3b1707..6a9c76f00 100755
--- a/engine/tmhm.asm
+++ b/engine/tmhm.asm
@@ -46,4 +46,4 @@ GetTMHMMove: ; 1166a
; 1167a
-INCLUDE "data/tmhm_moves.asm"
+INCLUDE "data/moves/tmhm_moves.asm"
diff --git a/text/types.asm b/engine/types.asm
index adc1b17ef..375bfe434 100644
--- a/text/types.asm
+++ b/engine/types.asm
@@ -96,54 +96,6 @@ GetTypeName: ; 50964
; 5097b
-TypeNames: ; 5097b
- dw Normal
- dw Fighting
- dw Flying
- dw Poison
- dw Ground
- dw Rock
- dw Bird
- dw Bug
- dw Ghost
- dw Steel
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw Normal
- dw CurseType
- dw Fire
- dw Water
- dw Grass
- dw Electric
- dw Psychic
- dw Ice
- dw Dragon
- dw Dark
-
-Normal: db "NORMAL@"
-Fighting: db "FIGHTING@"
-Flying: db "FLYING@"
-Poison: db "POISON@"
-CurseType: db "???@"
-Fire: db "FIRE@"
-Water: db "WATER@"
-Grass: db "GRASS@"
-Electric: db "ELECTRIC@"
-Psychic: db "PSYCHIC@"
-Ice: db "ICE@"
-Ground: db "GROUND@"
-Rock: db "ROCK@"
-Bird: db "BIRD@"
-Bug: db "BUG@"
-Ghost: db "GHOST@"
-Steel: db "STEEL@"
-Dragon: db "DRAGON@"
-Dark: db "DARK@"
+INCLUDE "data/type_names.asm"
; 50a28
diff --git a/gfx/anims.asm b/gfx/anims.asm
new file mode 100644
index 000000000..8306518cc
--- /dev/null
+++ b/gfx/anims.asm
@@ -0,0 +1,41 @@
+AnimObj00GFX: ; 84a2e
+AnimObjHitGFX: INCBIN "gfx/anims/hit.2bpp.lz"
+AnimObjCutGFX: INCBIN "gfx/anims/cut.2bpp.lz"
+AnimObjFireGFX: INCBIN "gfx/anims/fire.2bpp.lz"
+AnimObjWaterGFX: INCBIN "gfx/anims/water.2bpp.lz"
+AnimObjLightningGFX: INCBIN "gfx/anims/lightning.2bpp.lz"
+AnimObjSmokeGFX: INCBIN "gfx/anims/smoke.2bpp.lz"
+AnimObjExplosionGFX: INCBIN "gfx/anims/explosion.2bpp.lz"
+AnimObjIceGFX: INCBIN "gfx/anims/ice.2bpp.lz"
+AnimObjRocksGFX: INCBIN "gfx/anims/rocks.2bpp.lz"
+AnimObjPoisonGFX: INCBIN "gfx/anims/poison.2bpp.lz"
+AnimObjPlantGFX: INCBIN "gfx/anims/plant.2bpp.lz"
+AnimObjPokeBallGFX: INCBIN "gfx/anims/pokeball.2bpp.lz"
+AnimObjBubbleGFX: INCBIN "gfx/anims/bubble.2bpp.lz"
+AnimObjNoiseGFX: INCBIN "gfx/anims/noise.2bpp.lz"
+AnimObjReflectGFX: INCBIN "gfx/anims/reflect.2bpp.lz"
+AnimObjPowderGFX: INCBIN "gfx/anims/powder.2bpp.lz"
+AnimObjBeamGFX: INCBIN "gfx/anims/beam.2bpp.lz"
+AnimObjSpeedGFX: INCBIN "gfx/anims/speed.2bpp.lz"
+AnimObjChargeGFX: INCBIN "gfx/anims/charge.2bpp.lz"
+AnimObjWindGFX: INCBIN "gfx/anims/wind.2bpp.lz"
+AnimObjWhipGFX: INCBIN "gfx/anims/whip.2bpp.lz"
+AnimObjRopeGFX: INCBIN "gfx/anims/rope.2bpp.lz"
+AnimObjEggGFX: INCBIN "gfx/anims/egg.2bpp.lz"
+AnimObjPsychicGFX: INCBIN "gfx/anims/psychic.2bpp.lz"
+AnimObjSandGFX: INCBIN "gfx/anims/sand.2bpp.lz"
+AnimObjWebGFX: INCBIN "gfx/anims/web.2bpp.lz"
+AnimObjHazeGFX: INCBIN "gfx/anims/haze.2bpp.lz"
+AnimObjHornGFX: INCBIN "gfx/anims/horn.2bpp.lz"
+AnimObjFlowerGFX: INCBIN "gfx/anims/flower.2bpp.lz"
+AnimObjMiscGFX: INCBIN "gfx/anims/misc.2bpp.lz"
+AnimObjSkyAttackGFX: INCBIN "gfx/anims/skyattack.2bpp.lz"
+AnimObjGlobeGFX: INCBIN "gfx/anims/globe.2bpp.lz"
+AnimObjShapesGFX: INCBIN "gfx/anims/shapes.2bpp.lz"
+AnimObjStatusGFX: INCBIN "gfx/anims/status.2bpp.lz"
+AnimObjObjectsGFX: INCBIN "gfx/anims/objects.2bpp.lz"
+AnimObjShineGFX: INCBIN "gfx/anims/shine.2bpp.lz"
+AnimObjAngelsGFX: INCBIN "gfx/anims/angels.2bpp.lz"
+AnimObjWaveGFX: INCBIN "gfx/anims/wave.2bpp.lz"
+AnimObjAeroblastGFX: INCBIN "gfx/anims/aeroblast.2bpp.lz"
+; 8640e
diff --git a/gfx/fx/aeroblast.2bpp.lz.2f07c4ea b/gfx/anims/aeroblast.2bpp.lz.2f07c4ea
index 5e203cb63..5e203cb63 100644
--- a/gfx/fx/aeroblast.2bpp.lz.2f07c4ea
+++ b/gfx/anims/aeroblast.2bpp.lz.2f07c4ea
Binary files differ
diff --git a/gfx/fx/aeroblast.png b/gfx/anims/aeroblast.png
index 1fdc07c2f..1fdc07c2f 100644
--- a/gfx/fx/aeroblast.png
+++ b/gfx/anims/aeroblast.png
Binary files differ
diff --git a/gfx/fx/angels.2bpp.lz.b026d81e b/gfx/anims/angels.2bpp.lz.b026d81e
index 61d89d224..61d89d224 100644
--- a/gfx/fx/angels.2bpp.lz.b026d81e
+++ b/gfx/anims/angels.2bpp.lz.b026d81e
Binary files differ
diff --git a/gfx/fx/angels.png b/gfx/anims/angels.png
index ef38c61d2..ef38c61d2 100644
--- a/gfx/fx/angels.png
+++ b/gfx/anims/angels.png
Binary files differ
diff --git a/gfx/fx/beam.2bpp.lz.80b6d613 b/gfx/anims/beam.2bpp.lz.80b6d613
index 1ce9ab82c..1ce9ab82c 100644
--- a/gfx/fx/beam.2bpp.lz.80b6d613
+++ b/gfx/anims/beam.2bpp.lz.80b6d613
Binary files differ
diff --git a/gfx/fx/beam.png b/gfx/anims/beam.png
index 32a3b1967..32a3b1967 100755
--- a/gfx/fx/beam.png
+++ b/gfx/anims/beam.png
Binary files differ
diff --git a/gfx/fx/bubble.2bpp.lz.03b8ac99 b/gfx/anims/bubble.2bpp.lz.03b8ac99
index 3d546191a..3d546191a 100644
--- a/gfx/fx/bubble.2bpp.lz.03b8ac99
+++ b/gfx/anims/bubble.2bpp.lz.03b8ac99
Binary files differ
diff --git a/gfx/fx/bubble.png b/gfx/anims/bubble.png
index b6febb0a8..b6febb0a8 100644
--- a/gfx/fx/bubble.png
+++ b/gfx/anims/bubble.png
Binary files differ
diff --git a/gfx/fx/charge.2bpp.lz.95d3ea98 b/gfx/anims/charge.2bpp.lz.95d3ea98
index 32c82243c..32c82243c 100644
--- a/gfx/fx/charge.2bpp.lz.95d3ea98
+++ b/gfx/anims/charge.2bpp.lz.95d3ea98
Binary files differ
diff --git a/gfx/fx/charge.png b/gfx/anims/charge.png
index 90cb72f9f..90cb72f9f 100644
--- a/gfx/fx/charge.png
+++ b/gfx/anims/charge.png
Binary files differ
diff --git a/gfx/fx/cut.2bpp.lz.03d343ed b/gfx/anims/cut.2bpp.lz.03d343ed
index 740a48799..740a48799 100644
--- a/gfx/fx/cut.2bpp.lz.03d343ed
+++ b/gfx/anims/cut.2bpp.lz.03d343ed
Binary files differ
diff --git a/gfx/fx/cut.png b/gfx/anims/cut.png
index e227ad413..e227ad413 100644
--- a/gfx/fx/cut.png
+++ b/gfx/anims/cut.png
Binary files differ
diff --git a/gfx/fx/egg.2bpp.lz.41dd1a53 b/gfx/anims/egg.2bpp.lz.41dd1a53
index fb55f2edc..fb55f2edc 100644
--- a/gfx/fx/egg.2bpp.lz.41dd1a53
+++ b/gfx/anims/egg.2bpp.lz.41dd1a53
Binary files differ
diff --git a/gfx/fx/egg.png b/gfx/anims/egg.png
index 38aab505d..38aab505d 100644
--- a/gfx/fx/egg.png
+++ b/gfx/anims/egg.png
Binary files differ
diff --git a/gfx/fx/explosion.2bpp.lz.55fc334f b/gfx/anims/explosion.2bpp.lz.55fc334f
index 4303302a1..4303302a1 100644
--- a/gfx/fx/explosion.2bpp.lz.55fc334f
+++ b/gfx/anims/explosion.2bpp.lz.55fc334f
Binary files differ
diff --git a/gfx/fx/explosion.png b/gfx/anims/explosion.png
index 0af9f1a0d..0af9f1a0d 100644
--- a/gfx/fx/explosion.png
+++ b/gfx/anims/explosion.png
Binary files differ
diff --git a/gfx/fx/fire.2bpp.lz.d7701cda b/gfx/anims/fire.2bpp.lz.d7701cda
index e15e9f9bb..e15e9f9bb 100644
--- a/gfx/fx/fire.2bpp.lz.d7701cda
+++ b/gfx/anims/fire.2bpp.lz.d7701cda
Binary files differ
diff --git a/gfx/fx/fire.png b/gfx/anims/fire.png
index 19f01141b..19f01141b 100644
--- a/gfx/fx/fire.png
+++ b/gfx/anims/fire.png
Binary files differ
diff --git a/gfx/fx/flower.2bpp.lz.1bc2e9d2 b/gfx/anims/flower.2bpp.lz.1bc2e9d2
index ef628afb4..ef628afb4 100644
--- a/gfx/fx/flower.2bpp.lz.1bc2e9d2
+++ b/gfx/anims/flower.2bpp.lz.1bc2e9d2
Binary files differ
diff --git a/gfx/fx/flower.png b/gfx/anims/flower.png
index 61b4f58ce..61b4f58ce 100644
--- a/gfx/fx/flower.png
+++ b/gfx/anims/flower.png
Binary files differ
diff --git a/gfx/fx/globe.2bpp.lz.710dbb8e b/gfx/anims/globe.2bpp.lz.710dbb8e
index 99fa15c6f..99fa15c6f 100644
--- a/gfx/fx/globe.2bpp.lz.710dbb8e
+++ b/gfx/anims/globe.2bpp.lz.710dbb8e
Binary files differ
diff --git a/gfx/fx/globe.png b/gfx/anims/globe.png
index 8d3a35683..8d3a35683 100644
--- a/gfx/fx/globe.png
+++ b/gfx/anims/globe.png
Binary files differ
diff --git a/gfx/fx/haze.2bpp.lz.91424607 b/gfx/anims/haze.2bpp.lz.91424607
index e0cdc644c..e0cdc644c 100644
--- a/gfx/fx/haze.2bpp.lz.91424607
+++ b/gfx/anims/haze.2bpp.lz.91424607
Binary files differ
diff --git a/gfx/fx/haze.png b/gfx/anims/haze.png
index 8a870ba98..8a870ba98 100644
--- a/gfx/fx/haze.png
+++ b/gfx/anims/haze.png
Binary files differ
diff --git a/gfx/fx/hit.2bpp.lz.2b3c83f2 b/gfx/anims/hit.2bpp.lz.2b3c83f2
index 5d9ffbe5d..5d9ffbe5d 100644
--- a/gfx/fx/hit.2bpp.lz.2b3c83f2
+++ b/gfx/anims/hit.2bpp.lz.2b3c83f2
Binary files differ
diff --git a/gfx/fx/hit.png b/gfx/anims/hit.png
index 228066331..228066331 100644
--- a/gfx/fx/hit.png
+++ b/gfx/anims/hit.png
Binary files differ
diff --git a/gfx/fx/horn.2bpp.lz.48908aae b/gfx/anims/horn.2bpp.lz.48908aae
index a92f74796..a92f74796 100644
--- a/gfx/fx/horn.2bpp.lz.48908aae
+++ b/gfx/anims/horn.2bpp.lz.48908aae
Binary files differ
diff --git a/gfx/fx/horn.png b/gfx/anims/horn.png
index 56e8ca241..56e8ca241 100644
--- a/gfx/fx/horn.png
+++ b/gfx/anims/horn.png
Binary files differ
diff --git a/gfx/fx/ice.2bpp.lz.664d900f b/gfx/anims/ice.2bpp.lz.664d900f
index 3d059700b..3d059700b 100644
--- a/gfx/fx/ice.2bpp.lz.664d900f
+++ b/gfx/anims/ice.2bpp.lz.664d900f
Binary files differ
diff --git a/gfx/fx/ice.png b/gfx/anims/ice.png
index 62a67641e..62a67641e 100644
--- a/gfx/fx/ice.png
+++ b/gfx/anims/ice.png
Binary files differ
diff --git a/gfx/fx/lightning.2bpp.lz.a88fc131 b/gfx/anims/lightning.2bpp.lz.a88fc131
index 81de5850f..81de5850f 100644
--- a/gfx/fx/lightning.2bpp.lz.a88fc131
+++ b/gfx/anims/lightning.2bpp.lz.a88fc131
Binary files differ
diff --git a/gfx/fx/lightning.png b/gfx/anims/lightning.png
index 6606fad12..6606fad12 100755
--- a/gfx/fx/lightning.png
+++ b/gfx/anims/lightning.png
Binary files differ
diff --git a/gfx/fx/misc.2bpp.lz.4b20c3d7 b/gfx/anims/misc.2bpp.lz.4b20c3d7
index d0c5f0dfc..d0c5f0dfc 100644
--- a/gfx/fx/misc.2bpp.lz.4b20c3d7
+++ b/gfx/anims/misc.2bpp.lz.4b20c3d7
Binary files differ
diff --git a/gfx/fx/misc.png b/gfx/anims/misc.png
index d7e67508e..d7e67508e 100755
--- a/gfx/fx/misc.png
+++ b/gfx/anims/misc.png
Binary files differ
diff --git a/gfx/fx/noise.2bpp.lz.acb4a76e b/gfx/anims/noise.2bpp.lz.acb4a76e
index e195da453..e195da453 100644
--- a/gfx/fx/noise.2bpp.lz.acb4a76e
+++ b/gfx/anims/noise.2bpp.lz.acb4a76e
Binary files differ
diff --git a/gfx/fx/noise.png b/gfx/anims/noise.png
index 17540a5e8..17540a5e8 100755
--- a/gfx/fx/noise.png
+++ b/gfx/anims/noise.png
Binary files differ
diff --git a/gfx/fx/objects.2bpp.lz.83f812de b/gfx/anims/objects.2bpp.lz.83f812de
index 1a52d6350..1a52d6350 100644
--- a/gfx/fx/objects.2bpp.lz.83f812de
+++ b/gfx/anims/objects.2bpp.lz.83f812de
Binary files differ
diff --git a/gfx/fx/objects.png b/gfx/anims/objects.png
index 91ea435b8..91ea435b8 100755
--- a/gfx/fx/objects.png
+++ b/gfx/anims/objects.png
Binary files differ
diff --git a/gfx/fx/plant.2bpp.lz.4a00c417 b/gfx/anims/plant.2bpp.lz.4a00c417
index 589fc48b6..589fc48b6 100644
--- a/gfx/fx/plant.2bpp.lz.4a00c417
+++ b/gfx/anims/plant.2bpp.lz.4a00c417
Binary files differ
diff --git a/gfx/fx/plant.png b/gfx/anims/plant.png
index ec1125054..ec1125054 100644
--- a/gfx/fx/plant.png
+++ b/gfx/anims/plant.png
Binary files differ
diff --git a/gfx/fx/poison.2bpp.lz.fc7dc9c1 b/gfx/anims/poison.2bpp.lz.fc7dc9c1
index df2cbe604..df2cbe604 100644
--- a/gfx/fx/poison.2bpp.lz.fc7dc9c1
+++ b/gfx/anims/poison.2bpp.lz.fc7dc9c1
Binary files differ
diff --git a/gfx/fx/poison.png b/gfx/anims/poison.png
index ebbbc52be..ebbbc52be 100755
--- a/gfx/fx/poison.png
+++ b/gfx/anims/poison.png
Binary files differ
diff --git a/gfx/fx/pokeball.2bpp.lz.c58f7e01 b/gfx/anims/pokeball.2bpp.lz.c58f7e01
index e09b082db..e09b082db 100644
--- a/gfx/fx/pokeball.2bpp.lz.c58f7e01
+++ b/gfx/anims/pokeball.2bpp.lz.c58f7e01
Binary files differ
diff --git a/gfx/fx/pokeball.png b/gfx/anims/pokeball.png
index 47edf2190..47edf2190 100755
--- a/gfx/fx/pokeball.png
+++ b/gfx/anims/pokeball.png
Binary files differ
diff --git a/gfx/fx/powder.2bpp.lz.bfd566bb b/gfx/anims/powder.2bpp.lz.bfd566bb
index 375d0bf9c..375d0bf9c 100644
--- a/gfx/fx/powder.2bpp.lz.bfd566bb
+++ b/gfx/anims/powder.2bpp.lz.bfd566bb
Binary files differ
diff --git a/gfx/fx/powder.png b/gfx/anims/powder.png
index b2cb4d459..b2cb4d459 100644
--- a/gfx/fx/powder.png
+++ b/gfx/anims/powder.png
Binary files differ
diff --git a/gfx/fx/psychic.2bpp.lz.d80f285c b/gfx/anims/psychic.2bpp.lz.d80f285c
index d6402dd3d..d6402dd3d 100644
--- a/gfx/fx/psychic.2bpp.lz.d80f285c
+++ b/gfx/anims/psychic.2bpp.lz.d80f285c
Binary files differ
diff --git a/gfx/fx/psychic.png b/gfx/anims/psychic.png
index a6d22db2f..a6d22db2f 100644
--- a/gfx/fx/psychic.png
+++ b/gfx/anims/psychic.png
Binary files differ
diff --git a/gfx/fx/reflect.2bpp.lz.9a9c822d b/gfx/anims/reflect.2bpp.lz.9a9c822d
index a563de1a8..a563de1a8 100644
--- a/gfx/fx/reflect.2bpp.lz.9a9c822d
+++ b/gfx/anims/reflect.2bpp.lz.9a9c822d
Binary files differ
diff --git a/gfx/fx/reflect.png b/gfx/anims/reflect.png
index 48fbd7d0d..48fbd7d0d 100644
--- a/gfx/fx/reflect.png
+++ b/gfx/anims/reflect.png
Binary files differ
diff --git a/gfx/fx/rocks.2bpp.lz.73d0153e b/gfx/anims/rocks.2bpp.lz.73d0153e
index d5481ea6e..d5481ea6e 100644
--- a/gfx/fx/rocks.2bpp.lz.73d0153e
+++ b/gfx/anims/rocks.2bpp.lz.73d0153e
Binary files differ
diff --git a/gfx/fx/rocks.png b/gfx/anims/rocks.png
index d7fe76b2f..d7fe76b2f 100755
--- a/gfx/fx/rocks.png
+++ b/gfx/anims/rocks.png
Binary files differ
diff --git a/gfx/fx/rope.2bpp.lz.209d63dd b/gfx/anims/rope.2bpp.lz.209d63dd
index f7d6a480f..f7d6a480f 100644
--- a/gfx/fx/rope.2bpp.lz.209d63dd
+++ b/gfx/anims/rope.2bpp.lz.209d63dd
Binary files differ
diff --git a/gfx/fx/rope.png b/gfx/anims/rope.png
index a12553c7a..a12553c7a 100644
--- a/gfx/fx/rope.png
+++ b/gfx/anims/rope.png
Binary files differ
diff --git a/gfx/fx/sand.2bpp.lz.c87c0eaa b/gfx/anims/sand.2bpp.lz.c87c0eaa
index 3508a1f58..3508a1f58 100644
--- a/gfx/fx/sand.2bpp.lz.c87c0eaa
+++ b/gfx/anims/sand.2bpp.lz.c87c0eaa
Binary files differ
diff --git a/gfx/fx/sand.png b/gfx/anims/sand.png
index a54db235d..a54db235d 100755
--- a/gfx/fx/sand.png
+++ b/gfx/anims/sand.png
Binary files differ
diff --git a/gfx/fx/shapes.2bpp.lz.262d77f0 b/gfx/anims/shapes.2bpp.lz.262d77f0
index d7d48020f..d7d48020f 100644
--- a/gfx/fx/shapes.2bpp.lz.262d77f0
+++ b/gfx/anims/shapes.2bpp.lz.262d77f0
Binary files differ
diff --git a/gfx/fx/shapes.png b/gfx/anims/shapes.png
index b99fc601a..b99fc601a 100644
--- a/gfx/fx/shapes.png
+++ b/gfx/anims/shapes.png
Binary files differ
diff --git a/gfx/fx/shine.2bpp.lz.5fb79056 b/gfx/anims/shine.2bpp.lz.5fb79056
index 3e47170b1..3e47170b1 100644
--- a/gfx/fx/shine.2bpp.lz.5fb79056
+++ b/gfx/anims/shine.2bpp.lz.5fb79056
Binary files differ
diff --git a/gfx/fx/shine.png b/gfx/anims/shine.png
index 1b7e9834b..1b7e9834b 100644
--- a/gfx/fx/shine.png
+++ b/gfx/anims/shine.png
Binary files differ
diff --git a/gfx/fx/skyattack.2bpp.lz.31738ab8 b/gfx/anims/skyattack.2bpp.lz.31738ab8
index e0412dd81..e0412dd81 100644
--- a/gfx/fx/skyattack.2bpp.lz.31738ab8
+++ b/gfx/anims/skyattack.2bpp.lz.31738ab8
Binary files differ
diff --git a/gfx/fx/skyattack.png b/gfx/anims/skyattack.png
index e731c691c..e731c691c 100644
--- a/gfx/fx/skyattack.png
+++ b/gfx/anims/skyattack.png
Binary files differ
diff --git a/gfx/fx/smoke.2bpp.lz.aa05905e b/gfx/anims/smoke.2bpp.lz.aa05905e
index bf26fed2b..bf26fed2b 100644
--- a/gfx/fx/smoke.2bpp.lz.aa05905e
+++ b/gfx/anims/smoke.2bpp.lz.aa05905e
Binary files differ
diff --git a/gfx/fx/smoke.png b/gfx/anims/smoke.png
index 1b09874ba..1b09874ba 100644
--- a/gfx/fx/smoke.png
+++ b/gfx/anims/smoke.png
Binary files differ
diff --git a/gfx/fx/speed.2bpp.lz.1732b364 b/gfx/anims/speed.2bpp.lz.1732b364
index 5d09f9a6a..5d09f9a6a 100644
--- a/gfx/fx/speed.2bpp.lz.1732b364
+++ b/gfx/anims/speed.2bpp.lz.1732b364
Binary files differ
diff --git a/gfx/fx/speed.png b/gfx/anims/speed.png
index e219b38c9..e219b38c9 100644
--- a/gfx/fx/speed.png
+++ b/gfx/anims/speed.png
Binary files differ
diff --git a/gfx/fx/status.2bpp.lz.0c0aa13e b/gfx/anims/status.2bpp.lz.0c0aa13e
index e5ce7df8a..e5ce7df8a 100644
--- a/gfx/fx/status.2bpp.lz.0c0aa13e
+++ b/gfx/anims/status.2bpp.lz.0c0aa13e
Binary files differ
diff --git a/gfx/fx/status.png b/gfx/anims/status.png
index cb8527963..cb8527963 100644
--- a/gfx/fx/status.png
+++ b/gfx/anims/status.png
Binary files differ
diff --git a/gfx/fx/water.2bpp.lz.7b52ed12 b/gfx/anims/water.2bpp.lz.7b52ed12
index 6a81bbb65..6a81bbb65 100644
--- a/gfx/fx/water.2bpp.lz.7b52ed12
+++ b/gfx/anims/water.2bpp.lz.7b52ed12
Binary files differ
diff --git a/gfx/fx/water.png b/gfx/anims/water.png
index 4e3c3b719..4e3c3b719 100644
--- a/gfx/fx/water.png
+++ b/gfx/anims/water.png
Binary files differ
diff --git a/gfx/fx/wave.2bpp.lz.bee99402 b/gfx/anims/wave.2bpp.lz.bee99402
index d94a5cb35..d94a5cb35 100644
--- a/gfx/fx/wave.2bpp.lz.bee99402
+++ b/gfx/anims/wave.2bpp.lz.bee99402
Binary files differ
diff --git a/gfx/fx/wave.png b/gfx/anims/wave.png
index 55d4faa5f..55d4faa5f 100644
--- a/gfx/fx/wave.png
+++ b/gfx/anims/wave.png
Binary files differ
diff --git a/gfx/fx/web.2bpp.lz.80e3d480 b/gfx/anims/web.2bpp.lz.80e3d480
index 84b4018e5..84b4018e5 100644
--- a/gfx/fx/web.2bpp.lz.80e3d480
+++ b/gfx/anims/web.2bpp.lz.80e3d480
Binary files differ
diff --git a/gfx/fx/web.png b/gfx/anims/web.png
index 2aeffef0e..2aeffef0e 100644
--- a/gfx/fx/web.png
+++ b/gfx/anims/web.png
Binary files differ
diff --git a/gfx/fx/whip.2bpp.lz.d80d8d6e b/gfx/anims/whip.2bpp.lz.d80d8d6e
index da62ba918..da62ba918 100644
--- a/gfx/fx/whip.2bpp.lz.d80d8d6e
+++ b/gfx/anims/whip.2bpp.lz.d80d8d6e
Binary files differ
diff --git a/gfx/fx/whip.png b/gfx/anims/whip.png
index 92d7ded6f..92d7ded6f 100644
--- a/gfx/fx/whip.png
+++ b/gfx/anims/whip.png
Binary files differ
diff --git a/gfx/fx/wind.2bpp.lz.5a785180 b/gfx/anims/wind.2bpp.lz.5a785180
index 9c2769b83..9c2769b83 100644
--- a/gfx/fx/wind.2bpp.lz.5a785180
+++ b/gfx/anims/wind.2bpp.lz.5a785180
Binary files differ
diff --git a/gfx/fx/wind.png b/gfx/anims/wind.png
index b02031392..b02031392 100644
--- a/gfx/fx/wind.png
+++ b/gfx/anims/wind.png
Binary files differ
diff --git a/macros/scripts/effect_commands.asm b/macros/scripts/effect_commands.asm
index 4fd2475b7..550deac6a 100644
--- a/macros/scripts/effect_commands.asm
+++ b/macros/scripts/effect_commands.asm
@@ -3,7 +3,7 @@ command: macro
\1 equs "db \1_command"
endm
-; BattleCommandPointers indexes (see battle/effect_commands.asm)
+; BattleCommandPointers indexes (see data/moves/effect_command_pointers.asm)
enum_start 1
command checkturn ; 01
command checkobedience ; 02
diff --git a/macros/scripts/move_anim.asm b/macros/scripts/move_anim.asm
index 7714bb09a..a058e41fa 100644
--- a/macros/scripts/move_anim.asm
+++ b/macros/scripts/move_anim.asm
@@ -5,7 +5,7 @@ endc
db \1
endm
-; BattleAnimCommands indexes (see battle/anim_commands.asm)
+; BattleAnimCommands indexes (see engine/anims/anim_commands.asm)
enum_start $d0
enum anim_obj_command ; $d0
diff --git a/main.asm b/main.asm
index 8aa861f26..b64b37da7 100644
--- a/main.asm
+++ b/main.asm
@@ -34,7 +34,7 @@ INCLUDE "engine/health.asm"
INCLUDE "event/overworld.asm"
INCLUDE "engine/items.asm"
INCLUDE "engine/player_step.asm"
-INCLUDE "engine/anim_hp_bar.asm"
+INCLUDE "engine/battle/anim_hp_bar.asm"
INCLUDE "engine/move_mon.asm"
INCLUDE "engine/billspctop.asm"
INCLUDE "engine/routines/getbreedmonlevelgrowth.asm"
@@ -111,7 +111,7 @@ INCLUDE "engine/scrolling_menu.asm"
INCLUDE "engine/switch_items.asm"
INCLUDE "engine/menu_2.asm"
INCLUDE "engine/mon_menu.asm"
-INCLUDE "battle/menu.asm"
+INCLUDE "engine/battle/menu.asm"
INCLUDE "engine/buy_sell_toss.asm"
INCLUDE "engine/trainer_card.asm"
INCLUDE "engine/prof_oaks_pc.asm"
@@ -120,8 +120,8 @@ INCLUDE "engine/routines/leveluphappinessmod.asm"
INCLUDE "data/trainers/trainer_dvs.asm"
INCLUDE "engine/routines/returntobattle_useball.asm"
INCLUDE "engine/routines/consumehelditem.asm"
-INCLUDE "battle/moves/move_effects_pointers.asm"
-INCLUDE "battle/moves/move_effects.asm"
+INCLUDE "data/moves/move_effects_pointers.asm"
+INCLUDE "data/moves/move_effects.asm"
INCLUDE "engine/routines/kurt_selectquantity_interpretjoypad.asm"
@@ -129,7 +129,7 @@ SECTION "bankA", ROMX
INCLUDE "engine/link.asm"
INCLUDE "engine/wildmons.asm"
-INCLUDE "battle/link_result.asm"
+INCLUDE "engine/battle/link_result.asm"
ChrisBackpic: ; 2ba1a
INCBIN "gfx/player/chris_back.2bpp.lz"
@@ -140,51 +140,51 @@ INCBIN "gfx/battle/dude.2bpp.lz"
SECTION "bankB", ROMX
-INCLUDE "battle/trainer_huds.asm"
+INCLUDE "engine/battle/trainer_huds.asm"
INCLUDE "data/trainers/trainer_class_names.asm"
-INCLUDE "battle/ai/redundant.asm"
+INCLUDE "engine/battle/ai/redundant.asm"
INCLUDE "event/move_deleter.asm"
INCLUDE "engine/mystery_gift_2.asm"
INCLUDE "engine/tmhm2.asm"
-INCLUDE "battle/moves/move_descriptions.asm"
+INCLUDE "data/moves/move_descriptions.asm"
INCLUDE "engine/pokerus/pokerus.asm"
-INCLUDE "engine/start_battle.asm"
+INCLUDE "engine/battle/start_battle.asm"
INCLUDE "engine/routines/placegraphic.asm"
SECTION "Effect Commands", ROMX
-INCLUDE "battle/effect_commands.asm"
+INCLUDE "engine/battle/effect_commands.asm"
SECTION "Enemy Trainers", ROMX
-INCLUDE "battle/ai/items.asm"
-INCLUDE "battle/ai/scoring.asm"
-INCLUDE "engine/read_trainer_attributes.asm"
+INCLUDE "engine/battle/ai/items.asm"
+INCLUDE "engine/battle/ai/scoring.asm"
+INCLUDE "engine/battle/read_trainer_attributes.asm"
INCLUDE "data/trainers/trainer_attributes.asm"
-INCLUDE "engine/read_trainer_party.asm"
+INCLUDE "engine/battle/read_trainer_party.asm"
INCLUDE "data/trainers/party_pointers.asm"
INCLUDE "data/trainers/parties.asm"
SECTION "Battle Core", ROMX
-INCLUDE "battle/core.asm"
-INCLUDE "battle/effect_command_pointers.asm"
+INCLUDE "engine/battle/core.asm"
+INCLUDE "data/moves/effect_command_pointers.asm"
SECTION "bank10", ROMX
INCLUDE "engine/pokedex.asm"
-INCLUDE "battle/moves/moves.asm"
+INCLUDE "data/moves/moves.asm"
INCLUDE "engine/evolve.asm"
SECTION "bank11", ROMX
INCLUDE "engine/fruit_trees.asm"
-INCLUDE "battle/ai/move.asm"
+INCLUDE "engine/battle/ai/move.asm"
INCLUDE "engine/pokedex_2.asm"
INCLUDE "data/pokemon/dex_entry_pointers.asm"
INCLUDE "engine/mail.asm"
@@ -244,7 +244,7 @@ INCLUDE "event/catch_tutorial.asm"
INCLUDE "engine/evolution_animation.asm"
INCLUDE "engine/init_hof_credits.asm"
INCLUDE "mobile/get_trainer_class.asm"
-INCLUDE "battle/sliding_intro.asm"
+INCLUDE "engine/battle/sliding_intro.asm"
INCLUDE "mobile/print_opp_message.asm"
INCLUDE "engine/routines/checkbattlescene.asm"
INCLUDE "engine/gbc_only.asm"
@@ -261,7 +261,7 @@ INCLUDE "event/card_key.asm"
INCLUDE "event/basement_key.asm"
INCLUDE "event/sacred_ash.asm"
INCLUDE "engine/tempmon.asm"
-INCLUDE "text/types.asm"
+INCLUDE "engine/types.asm"
INCLUDE "text/unused_gen_1_trainers.asm"
INCLUDE "engine/mon_stats.asm"
INCLUDE "engine/routines/initlist.asm"
@@ -308,7 +308,7 @@ INCLUDE "engine/debug.asm"
SECTION "bank21", ROMX
INCLUDE "engine/printer.asm"
-INCLUDE "battle/anim_gfx.asm"
+INCLUDE "gfx/anims.asm"
INCLUDE "event/halloffame.asm"
@@ -327,7 +327,7 @@ INCLUDE "mobile/mobile_22_2.asm"
SECTION "bank23", ROMX
INCLUDE "engine/timeofdaypals.asm"
-INCLUDE "engine/battle_transition.asm"
+INCLUDE "engine/battle/battle_transition.asm"
INCLUDE "event/field_moves.asm"
INCLUDE "event/magnet_train.asm"
INCLUDE "engine/routines/battlestart_copytilemapatonce.asm"
@@ -384,24 +384,30 @@ SECTION "bank2F", ROMX
INCLUDE "engine/std_scripts.asm"
INCLUDE "engine/phone/phone_scripts.asm"
INCLUDE "engine/phone/generic_calls.asm"
-INCLUDE "engine/trainer_scripts.asm"
+INCLUDE "engine/battle/trainer_scripts.asm"
SECTION "bank32", ROMX
-INCLUDE "battle/bg_effects.asm"
-INCLUDE "battle/anims.asm"
+INCLUDE "engine/anims/bg_effects.asm"
+INCLUDE "data/moves/move_anims.asm"
INCLUDE "event/poisonstep_pals.asm"
TheEndGFX:: ; cbd2e
INCBIN "gfx/credits/theend.2bpp"
-SECTION "bank33", ROMX
+SECTION "Move Animations", ROMX
INCLUDE "event/bug_contest/display_stats.asm"
-INCLUDE "battle/anim_commands.asm"
-INCLUDE "battle/anim_objects.asm"
+INCLUDE "engine/anims/anim_commands.asm"
+INCLUDE "engine/anims/engine.asm"
+INCLUDE "data/anims/objects.asm"
+INCLUDE "engine/anims/functions.asm"
+INCLUDE "engine/anims/helpers.asm"
+INCLUDE "data/anims/framesets.asm"
+INCLUDE "data/anims/oam.asm"
+INCLUDE "data/anims/object_gfx.asm"
SECTION "Pic Animations 1", ROMX
@@ -477,8 +483,8 @@ INCLUDE "engine/routines/newpokedexentry.asm"
INCLUDE "engine/time_capsule_2.asm"
INCLUDE "engine/unown_dex.asm"
INCLUDE "event/magikarp.asm"
-INCLUDE "battle/hidden_power.asm"
-INCLUDE "battle/misc.asm"
+INCLUDE "engine/battle/hidden_power.asm"
+INCLUDE "engine/battle/misc.asm"
SECTION "bank3F", ROMX
@@ -497,7 +503,7 @@ INCLUDE "engine/dma_transfer.asm"
INCLUDE "gfx/emotes.asm"
INCLUDE "engine/warp_connection.asm"
INCLUDE "engine/mystery_gift.asm"
-INCLUDE "battle/used_move_text.asm"
+INCLUDE "engine/battle/used_move_text.asm"
INCLUDE "mobile/mobile_41.asm"
INCLUDE "gfx/overworld_font.asm"
@@ -589,7 +595,7 @@ SECTION "bank72", ROMX
INCLUDE "data/items/item_names.asm"
INCLUDE "data/items/item_descriptions.asm"
-INCLUDE "battle/move_names.asm"
+INCLUDE "data/moves/move_names.asm"
INCLUDE "engine/landmarks.asm"
diff --git a/pokecrystal.link b/pokecrystal.link
index 6002adbf5..af14a18b3 100644
--- a/pokecrystal.link
+++ b/pokecrystal.link
@@ -135,7 +135,7 @@ ROMX $31
ROMX $32
"bank32"
ROMX $33
- "bank33"
+ "Move Animations"
"Extra Songs 2"
ROMX $34
"Pic Animations 1"
diff --git a/text/battle_tower.asm b/text/battle_tower.asm
index 8ddd69b09..53af5a9e6 100644
--- a/text/battle_tower.asm
+++ b/text/battle_tower.asm
@@ -1,4 +1,3 @@
-
BattleTowerText_0x1ec000: ; 0x1ec000
text "Hello, glad to"
line "meet you!"