shithub: pokecrystal

Download patch

ref: 065de03646831b81b041d4ba7b479f2d8ec36bee
parent: 39367a1b689c14220f4c6bdc2c4d8981bafa9c73
author: Remy Oukaour <[email protected]>
date: Mon Dec 11 20:06:23 EST 2017

Separate sprite constants and sprite-related data constants, like Pokémon and maps

--- a/constants.asm
+++ b/constants.asm
@@ -33,6 +33,7 @@
 INCLUDE "constants/radio_constants.asm"
 INCLUDE "constants/npctrade_constants.asm"
 INCLUDE "constants/sprite_constants.asm"
+INCLUDE "constants/sprite_data_constants.asm"
 INCLUDE "constants/tileset_constants.asm"
 INCLUDE "constants/cgb_constants.asm"
 INCLUDE "constants/battle_tower_constants.asm"
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -165,515 +165,3 @@
 	const SPRITE_FUCHSIA_GYM_4 ; fa
 	const SPRITE_COPYCAT ; fb
 	const SPRITE_JANINE_IMPERSONATOR ; fc
-
-; sprite_header struct members (see gfx/sprite_headers.asm)
-	const_def
-	const SPRITEHEADER_ADDR_LO
-	const SPRITEHEADER_ADDR_HI
-	const SPRITEHEADER_SIZE
-	const SPRITEHEADER_BANK
-	const SPRITEHEADER_TYPE
-	const SPRITEHEADER_PALETTE
-NUM_SPRITEHEADER_FIELDS EQU const_value
-
-; sprite types
-const_value SET 1
-	const WALKING_SPRITE
-	const STANDING_SPRITE
-	const STILL_SPRITE
-
-; sprite palettes
-	const_def
-	const PAL_OW_RED    ; 0
-	const PAL_OW_BLUE   ; 1
-	const PAL_OW_GREEN  ; 2
-	const PAL_OW_BROWN  ; 3
-	const PAL_OW_PINK   ; 4
-	const PAL_OW_SILVER ; 5
-	const PAL_OW_TREE   ; 6
-	const PAL_OW_ROCK   ; 7
-
-; person_events set bit 3 so as not to use the sprite's default palette
-const_value set (1 << 3)
-	const PAL_NPC_RED    ; 8
-	const PAL_NPC_BLUE   ; 9
-	const PAL_NPC_GREEN  ; a
-	const PAL_NPC_BROWN  ; b
-	const PAL_NPC_PINK   ; c
-	const PAL_NPC_SILVER ; d
-	const PAL_NPC_TREE   ; e
-	const PAL_NPC_ROCK   ; f
-
-; SpriteMovementData indexes (see data/map_objects.asm)
-	const_def
-	const SPRITEMOVEDATA_00                   ; 00
-	const SPRITEMOVEDATA_ITEM_TREE            ; 01
-	const SPRITEMOVEDATA_WANDER               ; 02
-	const SPRITEMOVEDATA_SPINRANDOM_SLOW      ; 03
-	const SPRITEMOVEDATA_WALK_UP_DOWN         ; 04
-	const SPRITEMOVEDATA_WALK_LEFT_RIGHT      ; 05
-	const SPRITEMOVEDATA_STANDING_DOWN        ; 06
-	const SPRITEMOVEDATA_STANDING_UP          ; 07
-	const SPRITEMOVEDATA_STANDING_LEFT        ; 08
-	const SPRITEMOVEDATA_STANDING_RIGHT       ; 09
-	const SPRITEMOVEDATA_SPINRANDOM_FAST      ; 0a
-	const SPRITEMOVEDATA_PLAYER               ; 0b
-	const SPRITEMOVEDATA_0C                   ; 0c
-	const SPRITEMOVEDATA_0D                   ; 0d
-	const SPRITEMOVEDATA_0E                   ; 0e
-	const SPRITEMOVEDATA_0F                   ; 0f
-	const SPRITEMOVEDATA_10                   ; 10
-	const SPRITEMOVEDATA_11                   ; 11
-	const SPRITEMOVEDATA_12                   ; 12
-	const SPRITEMOVEDATA_FOLLOWING            ; 13
-	const SPRITEMOVEDATA_SCRIPTED             ; 14
-	const SPRITEMOVEDATA_SNORLAX              ; 15
-	const SPRITEMOVEDATA_POKEMON              ; 16
-	const SPRITEMOVEDATA_SUDOWOODO            ; 17
-	const SPRITEMOVEDATA_SMASHABLE_ROCK       ; 18
-	const SPRITEMOVEDATA_STRENGTH_BOULDER     ; 19
-	const SPRITEMOVEDATA_FOLLOWNOTEXACT       ; 1a
-	const SPRITEMOVEDATA_SHADOW               ; 1b
-	const SPRITEMOVEDATA_EMOTE                ; 1c
-	const SPRITEMOVEDATA_SCREENSHAKE          ; 1d
-	const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e
-	const SPRITEMOVEDATA_SPINCLOCKWISE        ; 1f
-	const SPRITEMOVEDATA_20                   ; 20
-	const SPRITEMOVEDATA_BIGDOLL              ; 21
-	const SPRITEMOVEDATA_BOULDERDUST          ; 22
-	const SPRITEMOVEDATA_GRASS                ; 23
-	const SPRITEMOVEDATA_LAPRAS               ; 24
-NUM_SPRITEMOVEDATA EQU const_value
-SPRITEMOVEDATA_FIELDS EQU 6
-
-; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
-	const_def
-	const SPRITEMOVEFN_00
-	const SPRITEMOVEFN_RANDOM_WALK_Y
-	const SPRITEMOVEFN_RANDOM_WALK_X
-	const SPRITEMOVEFN_RANDOM_WALK_XY
-	const SPRITEMOVEFN_SLOW_RANDOM_SPIN
-	const SPRITEMOVEFN_FAST_RANDOM_SPIN
-	const SPRITEMOVEFN_STANDING
-	const SPRITEMOVEFN_OBEY_DPAD
-	const SPRITEMOVEFN_08
-	const SPRITEMOVEFN_09
-	const SPRITEMOVEFN_0A
-	const SPRITEMOVEFN_0B
-	const SPRITEMOVEFN_0C
-	const SPRITEMOVEFN_0D
-	const SPRITEMOVEFN_0E
-	const SPRITEMOVEFN_FOLLOW
-	const SPRITEMOVEFN_SCRIPTED
-	const SPRITEMOVEFN_STRENGTH
-	const SPRITEMOVEFN_FOLLOWNOTEXACT
-	const SPRITEMOVEFN_SHADOW
-	const SPRITEMOVEFN_EMOTE
-	const SPRITEMOVEFN_BIG_SNORLAX
-	const SPRITEMOVEFN_BOUNCE
-	const SPRITEMOVEFN_SCREENSHAKE
-	const SPRITEMOVEFN_SPIN_CLOCKWISE
-	const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
-	const SPRITEMOVEFN_BOULDERDUST
-	const SPRITEMOVEFN_GRASS
-
-; StepTypesJumptable indexes (see engine/map_objects.asm)
-	const_def
-	const STEP_TYPE_00
-	const STEP_TYPE_SLEEP
-	const STEP_TYPE_NPC_WALK
-	const STEP_TYPE_03
-	const STEP_TYPE_04
-	const STEP_TYPE_05
-	const STEP_TYPE_PLAYER_WALK
-	const STEP_TYPE_07
-	const STEP_TYPE_NPC_JUMP
-	const STEP_TYPE_PLAYER_JUMP
-	const STEP_TYPE_HALF_STEP
-	const STEP_TYPE_BUMP
-	const STEP_TYPE_TELEPORT_FROM
-	const STEP_TYPE_TELEPORT_TO
-	const STEP_TYPE_SKYFALL
-	const STEP_TYPE_0F
-	const STEP_TYPE_GOT_BITE
-	const STEP_TYPE_ROCK_SMASH
-	const STEP_TYPE_RETURN_DIG
-	const STEP_TYPE_TRACKING_OBJECT
-	const STEP_TYPE_14
-	const STEP_TYPE_15
-	const STEP_TYPE_16
-	const STEP_TYPE_17
-	const STEP_TYPE_18
-	const STEP_TYPE_SKYFALL_TOP
-
-; PersonActionPairPointers indexes (see engine/map_object_action.asm)
-	const_def
-	const PERSON_ACTION_00
-	const PERSON_ACTION_STAND
-	const PERSON_ACTION_STEP
-	const PERSON_ACTION_BUMP
-	const PERSON_ACTION_SPIN
-	const PERSON_ACTION_SPIN_FLICKER
-	const PERSON_ACTION_FISHING
-	const PERSON_ACTION_SHADOW
-	const PERSON_ACTION_EMOTE
-	const PERSON_ACTION_BIG_SNORLAX
-	const PERSON_ACTION_BOUNCE
-	const PERSON_ACTION_WEIRD_TREE
-	const PERSON_ACTION_BIG_LAPRAS
-	const PERSON_ACTION_BIG_DOLL
-	const PERSON_ACTION_BOULDER_DUST
-	const PERSON_ACTION_GRASS_SHAKE
-	const PERSON_ACTION_SKYFALL
-
-; Facings indexes (see data/facings.asm)
-	const_def
-	const FACING_STEP_DOWN_0
-	const FACING_STEP_DOWN_1
-	const FACING_STEP_DOWN_2
-	const FACING_STEP_DOWN_3
-	const FACING_STEP_UP_0
-	const FACING_STEP_UP_1
-	const FACING_STEP_UP_2
-	const FACING_STEP_UP_3
-	const FACING_STEP_LEFT_0
-	const FACING_STEP_LEFT_1
-	const FACING_STEP_LEFT_2
-	const FACING_STEP_LEFT_3
-	const FACING_STEP_RIGHT_0
-	const FACING_STEP_RIGHT_1
-	const FACING_STEP_RIGHT_2
-	const FACING_STEP_RIGHT_3
-	const FACING_FISH_DOWN
-	const FACING_FISH_UP
-	const FACING_FISH_LEFT
-	const FACING_FISH_RIGHT
-	const FACING_EMOTE
-	const FACING_SHADOW
-	const FACING_BIG_DOLL_ASYM
-	const FACING_BIG_DOLL_SYM
-	const FACING_WEIRD_TREE_0
-	const FACING_WEIRD_TREE_1
-	const FACING_WEIRD_TREE_2
-	const FACING_WEIRD_TREE_3
-	const FACING_BOULDER_DUST_1
-	const FACING_BOULDER_DUST_2
-	const FACING_GRASS_1
-	const FACING_GRASS_2
-
-; 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
-
-; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
-	const_def
-	const SPRITE_ANIM_FRAMESET_00
-	const SPRITE_ANIM_FRAMESET_PARTY_MON
-	const SPRITE_ANIM_FRAMESET_02 ; unused?
-	const SPRITE_ANIM_FRAMESET_03 ; unused?
-	const SPRITE_ANIM_FRAMESET_04 ; unused?
-	const SPRITE_ANIM_FRAMESET_05 ; unused?
-	const SPRITE_ANIM_FRAMESET_06 ; unused?
-	const SPRITE_ANIM_FRAMESET_07
-	const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR
-	const SPRITE_ANIM_FRAMESET_09 ; unused?
-	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
-	const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR
-	const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM
-	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY
-	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
-	const SPRITE_ANIM_FRAMESET_SLOTS_EGG
-	const SPRITE_ANIM_FRAMESET_RED_WALK
-	const SPRITE_ANIM_FRAMESET_STILL_CURSOR
-	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL
-	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0
-	const SPRITE_ANIM_FRAMESET_TRADE_POOF
-	const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_FRAMESET_TRADEMON_ICON
-	const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE
-	const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT
-	const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED
-	const SPRITE_ANIM_FRAMESET_1C ; unused?
-	const SPRITE_ANIM_FRAMESET_LEAF
-	const SPRITE_ANIM_FRAMESET_CUT_TREE
-	const SPRITE_ANIM_FRAMESET_EGG_CRACK
-	const SPRITE_ANIM_FRAMESET_EGG_HATCH
-	const SPRITE_ANIM_FRAMESET_21 ; unused?
-	const SPRITE_ANIM_FRAMESET_22 ; unused?
-	const SPRITE_ANIM_FRAMESET_23 ; unused?
-	const SPRITE_ANIM_FRAMESET_24
-	const SPRITE_ANIM_FRAMESET_HEADBUTT
-	const SPRITE_ANIM_FRAMESET_26
-	const SPRITE_ANIM_FRAMESET_27 ; unused?
-	const SPRITE_ANIM_FRAMESET_28 ; unused?
-	const SPRITE_ANIM_FRAMESET_29 ; unused?
-	const SPRITE_ANIM_FRAMESET_2A ; unused?
-	const SPRITE_ANIM_FRAMESET_2B ; unused?
-	const SPRITE_ANIM_FRAMESET_2C ; unused?
-	const SPRITE_ANIM_FRAMESET_BLUE_WALK
-	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE
-	const SPRITE_ANIM_FRAMESET_2F
-	const SPRITE_ANIM_FRAMESET_30
-	const SPRITE_ANIM_FRAMESET_31
-	const SPRITE_ANIM_FRAMESET_32
-	const SPRITE_ANIM_FRAMESET_33
-	const SPRITE_ANIM_FRAMESET_34
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2
-	const SPRITE_ANIM_FRAMESET_INTRO_PICHU
-	const SPRITE_ANIM_FRAMESET_INTRO_WOOPER
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F
-	const SPRITE_ANIM_FRAMESET_CELEBI_LEFT
-	const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
-
-; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
-	const_def
-	const SPRITE_ANIM_SEQ_NULL
-	const SPRITE_ANIM_SEQ_PARTY_MON
-	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
-	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
-	const SPRITE_ANIM_SEQ_04
-	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
-	const SPRITE_ANIM_SEQ_GS_INTRO_STAR
-	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_SEQ_SLOTS_GOLEM
-	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
-	const SPRITE_ANIM_SEQ_SLOTS_EGG
-	const SPRITE_ANIM_SEQ_MAIL_CURSOR
-	const SPRITE_ANIM_SEQ_0D
-	const SPRITE_ANIM_SEQ_0E
-	const SPRITE_ANIM_SEQ_0F
-	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
-	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
-	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
-	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_SEQ_CUT_LEAVES
-	const SPRITE_ANIM_SEQ_FLY_FROM
-	const SPRITE_ANIM_SEQ_FLY_LEAF
-	const SPRITE_ANIM_SEQ_FLY_TO
-	const SPRITE_ANIM_SEQ_19
-	const SPRITE_ANIM_SEQ_1A
-	const SPRITE_ANIM_SEQ_1B
-	const SPRITE_ANIM_SEQ_1C
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE
-	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
-	const SPRITE_ANIM_SEQ_CELEBI
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
-
-; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
-	const_def
-	const SPRITE_ANIM_INDEX_PARTY_MON
-	const SPRITE_ANIM_INDEX_01
-	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
-	const SPRITE_ANIM_INDEX_GS_INTRO_STAR
-	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_INDEX_SLOTS_GOLEM
-	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
-	const SPRITE_ANIM_INDEX_SLOTS_EGG
-	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
-	const SPRITE_ANIM_INDEX_RED_WALK
-	const SPRITE_ANIM_INDEX_0B
-	const SPRITE_ANIM_INDEX_DUMMY_GAME
-	const SPRITE_ANIM_INDEX_0D
-	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
-	const SPRITE_ANIM_INDEX_TRADE_POOF
-	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_INDEX_TRADEMON_ICON
-	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
-	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
-	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
-	const SPRITE_ANIM_INDEX_LEAF
-	const SPRITE_ANIM_INDEX_CUT_TREE
-	const SPRITE_ANIM_INDEX_FLY_LEAF
-	const SPRITE_ANIM_INDEX_EGG_CRACK
-	const SPRITE_ANIM_INDEX_1A
-	const SPRITE_ANIM_INDEX_HEADBUTT
-	const SPRITE_ANIM_INDEX_EGG_HATCH
-	const SPRITE_ANIM_INDEX_1D
-	const SPRITE_ANIM_INDEX_BLUE_WALK
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
-	const SPRITE_ANIM_INDEX_20
-	const SPRITE_ANIM_INDEX_21
-	const SPRITE_ANIM_INDEX_22
-	const SPRITE_ANIM_INDEX_23
-	const SPRITE_ANIM_INDEX_24
-	const SPRITE_ANIM_INDEX_25
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE
-	const SPRITE_ANIM_INDEX_INTRO_PICHU
-	const SPRITE_ANIM_INDEX_INTRO_WOOPER
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
-	const SPRITE_ANIM_INDEX_CELEBI
-
-; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
-	const_def
-	const SPRITE_ANIM_FRAME_IDX_00
-	const SPRITE_ANIM_FRAME_IDX_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_1E
-	const SPRITE_ANIM_FRAME_IDX_1F
-	const SPRITE_ANIM_FRAME_IDX_20
-	const SPRITE_ANIM_FRAME_IDX_21
-	const SPRITE_ANIM_FRAME_IDX_22
-	const SPRITE_ANIM_FRAME_IDX_23
-	const SPRITE_ANIM_FRAME_IDX_24
-	const SPRITE_ANIM_FRAME_IDX_25
-	const SPRITE_ANIM_FRAME_IDX_26
-	const SPRITE_ANIM_FRAME_IDX_27
-	const SPRITE_ANIM_FRAME_IDX_28
-	const SPRITE_ANIM_FRAME_IDX_29
-	const SPRITE_ANIM_FRAME_IDX_2A
-	const SPRITE_ANIM_FRAME_IDX_2B
-	const SPRITE_ANIM_FRAME_IDX_2C
-	const SPRITE_ANIM_FRAME_IDX_2D
-	const SPRITE_ANIM_FRAME_IDX_2E
-	const SPRITE_ANIM_FRAME_IDX_2F
-	const SPRITE_ANIM_FRAME_IDX_30
-	const SPRITE_ANIM_FRAME_IDX_31
-	const SPRITE_ANIM_FRAME_IDX_32
-	const SPRITE_ANIM_FRAME_IDX_33
-	const SPRITE_ANIM_FRAME_IDX_34
-	const SPRITE_ANIM_FRAME_IDX_35
-	const SPRITE_ANIM_FRAME_IDX_36
-	const SPRITE_ANIM_FRAME_IDX_37
-	const SPRITE_ANIM_FRAME_IDX_38
-	const SPRITE_ANIM_FRAME_IDX_39
-	const SPRITE_ANIM_FRAME_IDX_3A
-	const SPRITE_ANIM_FRAME_IDX_3B
-	const SPRITE_ANIM_FRAME_IDX_3C
-	const SPRITE_ANIM_FRAME_IDX_3D
-	const SPRITE_ANIM_FRAME_IDX_3E
-	const SPRITE_ANIM_FRAME_IDX_3F
-	const SPRITE_ANIM_FRAME_IDX_40
-	const SPRITE_ANIM_FRAME_IDX_41
-	const SPRITE_ANIM_FRAME_IDX_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_4F
-	const SPRITE_ANIM_FRAME_IDX_50
-	const SPRITE_ANIM_FRAME_IDX_51
-	const SPRITE_ANIM_FRAME_IDX_52
-	const SPRITE_ANIM_FRAME_IDX_53
-	const SPRITE_ANIM_FRAME_IDX_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_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_63
-	const SPRITE_ANIM_FRAME_IDX_64
-	const SPRITE_ANIM_FRAME_IDX_65
-	const SPRITE_ANIM_FRAME_IDX_66
-	const SPRITE_ANIM_FRAME_IDX_67
-	const SPRITE_ANIM_FRAME_IDX_68
-	const SPRITE_ANIM_FRAME_IDX_69
-	const SPRITE_ANIM_FRAME_IDX_6A
-	const SPRITE_ANIM_FRAME_IDX_6B
-	const SPRITE_ANIM_FRAME_IDX_6C
-	const SPRITE_ANIM_FRAME_IDX_6D
-	const SPRITE_ANIM_FRAME_IDX_6E
-	const SPRITE_ANIM_FRAME_IDX_6F
-	const SPRITE_ANIM_FRAME_IDX_70
-	const SPRITE_ANIM_FRAME_IDX_71
-	const SPRITE_ANIM_FRAME_IDX_72
-	const SPRITE_ANIM_FRAME_IDX_73
-	const SPRITE_ANIM_FRAME_IDX_74
-	const SPRITE_ANIM_FRAME_IDX_75
-	const SPRITE_ANIM_FRAME_IDX_76
-	const SPRITE_ANIM_FRAME_IDX_77
-	const SPRITE_ANIM_FRAME_IDX_78
-	const SPRITE_ANIM_FRAME_IDX_79
-	const SPRITE_ANIM_FRAME_IDX_7A
-	const SPRITE_ANIM_FRAME_IDX_7B
-	const SPRITE_ANIM_FRAME_IDX_7C
-	const SPRITE_ANIM_FRAME_IDX_7D
-	const SPRITE_ANIM_FRAME_IDX_7E
-	const SPRITE_ANIM_FRAME_IDX_7F
-	const SPRITE_ANIM_FRAME_IDX_80
-	const SPRITE_ANIM_FRAME_IDX_81
-	const SPRITE_ANIM_FRAME_IDX_82
-	const SPRITE_ANIM_FRAME_IDX_83
-	const SPRITE_ANIM_FRAME_IDX_84
-	const SPRITE_ANIM_FRAME_IDX_85
-	const SPRITE_ANIM_FRAME_IDX_86
-	const SPRITE_ANIM_FRAME_IDX_87
-	const SPRITE_ANIM_FRAME_IDX_88
-	const SPRITE_ANIM_FRAME_IDX_89
-	const SPRITE_ANIM_FRAME_IDX_8A
-	const SPRITE_ANIM_FRAME_IDX_8B
--- /dev/null
+++ b/constants/sprite_data_constants.asm
@@ -1,0 +1,511 @@
+; sprite_header struct members (see gfx/sprite_headers.asm)
+	const_def
+	const SPRITEHEADER_ADDR_LO
+	const SPRITEHEADER_ADDR_HI
+	const SPRITEHEADER_SIZE
+	const SPRITEHEADER_BANK
+	const SPRITEHEADER_TYPE
+	const SPRITEHEADER_PALETTE
+NUM_SPRITEHEADER_FIELDS EQU const_value
+
+; sprite types
+const_value SET 1
+	const WALKING_SPRITE
+	const STANDING_SPRITE
+	const STILL_SPRITE
+
+; sprite palettes
+	const_def
+	const PAL_OW_RED    ; 0
+	const PAL_OW_BLUE   ; 1
+	const PAL_OW_GREEN  ; 2
+	const PAL_OW_BROWN  ; 3
+	const PAL_OW_PINK   ; 4
+	const PAL_OW_SILVER ; 5
+	const PAL_OW_TREE   ; 6
+	const PAL_OW_ROCK   ; 7
+
+; person_events set bit 3 so as not to use the sprite's default palette
+const_value set (1 << 3)
+	const PAL_NPC_RED    ; 8
+	const PAL_NPC_BLUE   ; 9
+	const PAL_NPC_GREEN  ; a
+	const PAL_NPC_BROWN  ; b
+	const PAL_NPC_PINK   ; c
+	const PAL_NPC_SILVER ; d
+	const PAL_NPC_TREE   ; e
+	const PAL_NPC_ROCK   ; f
+
+; SpriteMovementData indexes (see data/map_objects.asm)
+	const_def
+	const SPRITEMOVEDATA_00                   ; 00
+	const SPRITEMOVEDATA_ITEM_TREE            ; 01
+	const SPRITEMOVEDATA_WANDER               ; 02
+	const SPRITEMOVEDATA_SPINRANDOM_SLOW      ; 03
+	const SPRITEMOVEDATA_WALK_UP_DOWN         ; 04
+	const SPRITEMOVEDATA_WALK_LEFT_RIGHT      ; 05
+	const SPRITEMOVEDATA_STANDING_DOWN        ; 06
+	const SPRITEMOVEDATA_STANDING_UP          ; 07
+	const SPRITEMOVEDATA_STANDING_LEFT        ; 08
+	const SPRITEMOVEDATA_STANDING_RIGHT       ; 09
+	const SPRITEMOVEDATA_SPINRANDOM_FAST      ; 0a
+	const SPRITEMOVEDATA_PLAYER               ; 0b
+	const SPRITEMOVEDATA_0C                   ; 0c
+	const SPRITEMOVEDATA_0D                   ; 0d
+	const SPRITEMOVEDATA_0E                   ; 0e
+	const SPRITEMOVEDATA_0F                   ; 0f
+	const SPRITEMOVEDATA_10                   ; 10
+	const SPRITEMOVEDATA_11                   ; 11
+	const SPRITEMOVEDATA_12                   ; 12
+	const SPRITEMOVEDATA_FOLLOWING            ; 13
+	const SPRITEMOVEDATA_SCRIPTED             ; 14
+	const SPRITEMOVEDATA_SNORLAX              ; 15
+	const SPRITEMOVEDATA_POKEMON              ; 16
+	const SPRITEMOVEDATA_SUDOWOODO            ; 17
+	const SPRITEMOVEDATA_SMASHABLE_ROCK       ; 18
+	const SPRITEMOVEDATA_STRENGTH_BOULDER     ; 19
+	const SPRITEMOVEDATA_FOLLOWNOTEXACT       ; 1a
+	const SPRITEMOVEDATA_SHADOW               ; 1b
+	const SPRITEMOVEDATA_EMOTE                ; 1c
+	const SPRITEMOVEDATA_SCREENSHAKE          ; 1d
+	const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e
+	const SPRITEMOVEDATA_SPINCLOCKWISE        ; 1f
+	const SPRITEMOVEDATA_20                   ; 20
+	const SPRITEMOVEDATA_BIGDOLL              ; 21
+	const SPRITEMOVEDATA_BOULDERDUST          ; 22
+	const SPRITEMOVEDATA_GRASS                ; 23
+	const SPRITEMOVEDATA_LAPRAS               ; 24
+NUM_SPRITEMOVEDATA EQU const_value
+SPRITEMOVEDATA_FIELDS EQU 6
+
+; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
+	const_def
+	const SPRITEMOVEFN_00
+	const SPRITEMOVEFN_RANDOM_WALK_Y
+	const SPRITEMOVEFN_RANDOM_WALK_X
+	const SPRITEMOVEFN_RANDOM_WALK_XY
+	const SPRITEMOVEFN_SLOW_RANDOM_SPIN
+	const SPRITEMOVEFN_FAST_RANDOM_SPIN
+	const SPRITEMOVEFN_STANDING
+	const SPRITEMOVEFN_OBEY_DPAD
+	const SPRITEMOVEFN_08
+	const SPRITEMOVEFN_09
+	const SPRITEMOVEFN_0A
+	const SPRITEMOVEFN_0B
+	const SPRITEMOVEFN_0C
+	const SPRITEMOVEFN_0D
+	const SPRITEMOVEFN_0E
+	const SPRITEMOVEFN_FOLLOW
+	const SPRITEMOVEFN_SCRIPTED
+	const SPRITEMOVEFN_STRENGTH
+	const SPRITEMOVEFN_FOLLOWNOTEXACT
+	const SPRITEMOVEFN_SHADOW
+	const SPRITEMOVEFN_EMOTE
+	const SPRITEMOVEFN_BIG_SNORLAX
+	const SPRITEMOVEFN_BOUNCE
+	const SPRITEMOVEFN_SCREENSHAKE
+	const SPRITEMOVEFN_SPIN_CLOCKWISE
+	const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
+	const SPRITEMOVEFN_BOULDERDUST
+	const SPRITEMOVEFN_GRASS
+
+; StepTypesJumptable indexes (see engine/map_objects.asm)
+	const_def
+	const STEP_TYPE_00
+	const STEP_TYPE_SLEEP
+	const STEP_TYPE_NPC_WALK
+	const STEP_TYPE_03
+	const STEP_TYPE_04
+	const STEP_TYPE_05
+	const STEP_TYPE_PLAYER_WALK
+	const STEP_TYPE_07
+	const STEP_TYPE_NPC_JUMP
+	const STEP_TYPE_PLAYER_JUMP
+	const STEP_TYPE_HALF_STEP
+	const STEP_TYPE_BUMP
+	const STEP_TYPE_TELEPORT_FROM
+	const STEP_TYPE_TELEPORT_TO
+	const STEP_TYPE_SKYFALL
+	const STEP_TYPE_0F
+	const STEP_TYPE_GOT_BITE
+	const STEP_TYPE_ROCK_SMASH
+	const STEP_TYPE_RETURN_DIG
+	const STEP_TYPE_TRACKING_OBJECT
+	const STEP_TYPE_14
+	const STEP_TYPE_15
+	const STEP_TYPE_16
+	const STEP_TYPE_17
+	const STEP_TYPE_18
+	const STEP_TYPE_SKYFALL_TOP
+
+; PersonActionPairPointers indexes (see engine/map_object_action.asm)
+	const_def
+	const PERSON_ACTION_00
+	const PERSON_ACTION_STAND
+	const PERSON_ACTION_STEP
+	const PERSON_ACTION_BUMP
+	const PERSON_ACTION_SPIN
+	const PERSON_ACTION_SPIN_FLICKER
+	const PERSON_ACTION_FISHING
+	const PERSON_ACTION_SHADOW
+	const PERSON_ACTION_EMOTE
+	const PERSON_ACTION_BIG_SNORLAX
+	const PERSON_ACTION_BOUNCE
+	const PERSON_ACTION_WEIRD_TREE
+	const PERSON_ACTION_BIG_LAPRAS
+	const PERSON_ACTION_BIG_DOLL
+	const PERSON_ACTION_BOULDER_DUST
+	const PERSON_ACTION_GRASS_SHAKE
+	const PERSON_ACTION_SKYFALL
+
+; Facings indexes (see data/facings.asm)
+	const_def
+	const FACING_STEP_DOWN_0
+	const FACING_STEP_DOWN_1
+	const FACING_STEP_DOWN_2
+	const FACING_STEP_DOWN_3
+	const FACING_STEP_UP_0
+	const FACING_STEP_UP_1
+	const FACING_STEP_UP_2
+	const FACING_STEP_UP_3
+	const FACING_STEP_LEFT_0
+	const FACING_STEP_LEFT_1
+	const FACING_STEP_LEFT_2
+	const FACING_STEP_LEFT_3
+	const FACING_STEP_RIGHT_0
+	const FACING_STEP_RIGHT_1
+	const FACING_STEP_RIGHT_2
+	const FACING_STEP_RIGHT_3
+	const FACING_FISH_DOWN
+	const FACING_FISH_UP
+	const FACING_FISH_LEFT
+	const FACING_FISH_RIGHT
+	const FACING_EMOTE
+	const FACING_SHADOW
+	const FACING_BIG_DOLL_ASYM
+	const FACING_BIG_DOLL_SYM
+	const FACING_WEIRD_TREE_0
+	const FACING_WEIRD_TREE_1
+	const FACING_WEIRD_TREE_2
+	const FACING_WEIRD_TREE_3
+	const FACING_BOULDER_DUST_1
+	const FACING_BOULDER_DUST_2
+	const FACING_GRASS_1
+	const FACING_GRASS_2
+
+; 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
+
+; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
+	const_def
+	const SPRITE_ANIM_FRAMESET_00
+	const SPRITE_ANIM_FRAMESET_PARTY_MON
+	const SPRITE_ANIM_FRAMESET_02 ; unused?
+	const SPRITE_ANIM_FRAMESET_03 ; unused?
+	const SPRITE_ANIM_FRAMESET_04 ; unused?
+	const SPRITE_ANIM_FRAMESET_05 ; unused?
+	const SPRITE_ANIM_FRAMESET_06 ; unused?
+	const SPRITE_ANIM_FRAMESET_07
+	const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR
+	const SPRITE_ANIM_FRAMESET_09 ; unused?
+	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
+	const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR
+	const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE
+	const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM
+	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY
+	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
+	const SPRITE_ANIM_FRAMESET_SLOTS_EGG
+	const SPRITE_ANIM_FRAMESET_RED_WALK
+	const SPRITE_ANIM_FRAMESET_STILL_CURSOR
+	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL
+	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0
+	const SPRITE_ANIM_FRAMESET_TRADE_POOF
+	const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE
+	const SPRITE_ANIM_FRAMESET_TRADEMON_ICON
+	const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE
+	const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT
+	const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB
+	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED
+	const SPRITE_ANIM_FRAMESET_1C ; unused?
+	const SPRITE_ANIM_FRAMESET_LEAF
+	const SPRITE_ANIM_FRAMESET_CUT_TREE
+	const SPRITE_ANIM_FRAMESET_EGG_CRACK
+	const SPRITE_ANIM_FRAMESET_EGG_HATCH
+	const SPRITE_ANIM_FRAMESET_21 ; unused?
+	const SPRITE_ANIM_FRAMESET_22 ; unused?
+	const SPRITE_ANIM_FRAMESET_23 ; unused?
+	const SPRITE_ANIM_FRAMESET_24
+	const SPRITE_ANIM_FRAMESET_HEADBUTT
+	const SPRITE_ANIM_FRAMESET_26
+	const SPRITE_ANIM_FRAMESET_27 ; unused?
+	const SPRITE_ANIM_FRAMESET_28 ; unused?
+	const SPRITE_ANIM_FRAMESET_29 ; unused?
+	const SPRITE_ANIM_FRAMESET_2A ; unused?
+	const SPRITE_ANIM_FRAMESET_2B ; unused?
+	const SPRITE_ANIM_FRAMESET_2C ; unused?
+	const SPRITE_ANIM_FRAMESET_BLUE_WALK
+	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE
+	const SPRITE_ANIM_FRAMESET_2F
+	const SPRITE_ANIM_FRAMESET_30
+	const SPRITE_ANIM_FRAMESET_31
+	const SPRITE_ANIM_FRAMESET_32
+	const SPRITE_ANIM_FRAMESET_33
+	const SPRITE_ANIM_FRAMESET_34
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2
+	const SPRITE_ANIM_FRAMESET_INTRO_PICHU
+	const SPRITE_ANIM_FRAMESET_INTRO_WOOPER
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F
+	const SPRITE_ANIM_FRAMESET_CELEBI_LEFT
+	const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
+
+; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
+	const_def
+	const SPRITE_ANIM_SEQ_NULL
+	const SPRITE_ANIM_SEQ_PARTY_MON
+	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
+	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
+	const SPRITE_ANIM_SEQ_04
+	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
+	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
+	const SPRITE_ANIM_SEQ_GS_INTRO_STAR
+	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
+	const SPRITE_ANIM_SEQ_SLOTS_GOLEM
+	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
+	const SPRITE_ANIM_SEQ_SLOTS_EGG
+	const SPRITE_ANIM_SEQ_MAIL_CURSOR
+	const SPRITE_ANIM_SEQ_0D
+	const SPRITE_ANIM_SEQ_0E
+	const SPRITE_ANIM_SEQ_0F
+	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
+	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
+	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
+	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
+	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
+	const SPRITE_ANIM_SEQ_CUT_LEAVES
+	const SPRITE_ANIM_SEQ_FLY_FROM
+	const SPRITE_ANIM_SEQ_FLY_LEAF
+	const SPRITE_ANIM_SEQ_FLY_TO
+	const SPRITE_ANIM_SEQ_19
+	const SPRITE_ANIM_SEQ_1A
+	const SPRITE_ANIM_SEQ_1B
+	const SPRITE_ANIM_SEQ_1C
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE
+	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
+	const SPRITE_ANIM_SEQ_CELEBI
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
+
+; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
+	const_def
+	const SPRITE_ANIM_INDEX_PARTY_MON
+	const SPRITE_ANIM_INDEX_01
+	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
+	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
+	const SPRITE_ANIM_INDEX_GS_INTRO_STAR
+	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
+	const SPRITE_ANIM_INDEX_SLOTS_GOLEM
+	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
+	const SPRITE_ANIM_INDEX_SLOTS_EGG
+	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+	const SPRITE_ANIM_INDEX_RED_WALK
+	const SPRITE_ANIM_INDEX_0B
+	const SPRITE_ANIM_INDEX_DUMMY_GAME
+	const SPRITE_ANIM_INDEX_0D
+	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+	const SPRITE_ANIM_INDEX_TRADE_POOF
+	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
+	const SPRITE_ANIM_INDEX_TRADEMON_ICON
+	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
+	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
+	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
+	const SPRITE_ANIM_INDEX_LEAF
+	const SPRITE_ANIM_INDEX_CUT_TREE
+	const SPRITE_ANIM_INDEX_FLY_LEAF
+	const SPRITE_ANIM_INDEX_EGG_CRACK
+	const SPRITE_ANIM_INDEX_1A
+	const SPRITE_ANIM_INDEX_HEADBUTT
+	const SPRITE_ANIM_INDEX_EGG_HATCH
+	const SPRITE_ANIM_INDEX_1D
+	const SPRITE_ANIM_INDEX_BLUE_WALK
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
+	const SPRITE_ANIM_INDEX_20
+	const SPRITE_ANIM_INDEX_21
+	const SPRITE_ANIM_INDEX_22
+	const SPRITE_ANIM_INDEX_23
+	const SPRITE_ANIM_INDEX_24
+	const SPRITE_ANIM_INDEX_25
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE
+	const SPRITE_ANIM_INDEX_INTRO_PICHU
+	const SPRITE_ANIM_INDEX_INTRO_WOOPER
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
+	const SPRITE_ANIM_INDEX_CELEBI
+
+; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
+	const_def
+	const SPRITE_ANIM_FRAME_IDX_00
+	const SPRITE_ANIM_FRAME_IDX_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_1E
+	const SPRITE_ANIM_FRAME_IDX_1F
+	const SPRITE_ANIM_FRAME_IDX_20
+	const SPRITE_ANIM_FRAME_IDX_21
+	const SPRITE_ANIM_FRAME_IDX_22
+	const SPRITE_ANIM_FRAME_IDX_23
+	const SPRITE_ANIM_FRAME_IDX_24
+	const SPRITE_ANIM_FRAME_IDX_25
+	const SPRITE_ANIM_FRAME_IDX_26
+	const SPRITE_ANIM_FRAME_IDX_27
+	const SPRITE_ANIM_FRAME_IDX_28
+	const SPRITE_ANIM_FRAME_IDX_29
+	const SPRITE_ANIM_FRAME_IDX_2A
+	const SPRITE_ANIM_FRAME_IDX_2B
+	const SPRITE_ANIM_FRAME_IDX_2C
+	const SPRITE_ANIM_FRAME_IDX_2D
+	const SPRITE_ANIM_FRAME_IDX_2E
+	const SPRITE_ANIM_FRAME_IDX_2F
+	const SPRITE_ANIM_FRAME_IDX_30
+	const SPRITE_ANIM_FRAME_IDX_31
+	const SPRITE_ANIM_FRAME_IDX_32
+	const SPRITE_ANIM_FRAME_IDX_33
+	const SPRITE_ANIM_FRAME_IDX_34
+	const SPRITE_ANIM_FRAME_IDX_35
+	const SPRITE_ANIM_FRAME_IDX_36
+	const SPRITE_ANIM_FRAME_IDX_37
+	const SPRITE_ANIM_FRAME_IDX_38
+	const SPRITE_ANIM_FRAME_IDX_39
+	const SPRITE_ANIM_FRAME_IDX_3A
+	const SPRITE_ANIM_FRAME_IDX_3B
+	const SPRITE_ANIM_FRAME_IDX_3C
+	const SPRITE_ANIM_FRAME_IDX_3D
+	const SPRITE_ANIM_FRAME_IDX_3E
+	const SPRITE_ANIM_FRAME_IDX_3F
+	const SPRITE_ANIM_FRAME_IDX_40
+	const SPRITE_ANIM_FRAME_IDX_41
+	const SPRITE_ANIM_FRAME_IDX_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_4F
+	const SPRITE_ANIM_FRAME_IDX_50
+	const SPRITE_ANIM_FRAME_IDX_51
+	const SPRITE_ANIM_FRAME_IDX_52
+	const SPRITE_ANIM_FRAME_IDX_53
+	const SPRITE_ANIM_FRAME_IDX_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_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_63
+	const SPRITE_ANIM_FRAME_IDX_64
+	const SPRITE_ANIM_FRAME_IDX_65
+	const SPRITE_ANIM_FRAME_IDX_66
+	const SPRITE_ANIM_FRAME_IDX_67
+	const SPRITE_ANIM_FRAME_IDX_68
+	const SPRITE_ANIM_FRAME_IDX_69
+	const SPRITE_ANIM_FRAME_IDX_6A
+	const SPRITE_ANIM_FRAME_IDX_6B
+	const SPRITE_ANIM_FRAME_IDX_6C
+	const SPRITE_ANIM_FRAME_IDX_6D
+	const SPRITE_ANIM_FRAME_IDX_6E
+	const SPRITE_ANIM_FRAME_IDX_6F
+	const SPRITE_ANIM_FRAME_IDX_70
+	const SPRITE_ANIM_FRAME_IDX_71
+	const SPRITE_ANIM_FRAME_IDX_72
+	const SPRITE_ANIM_FRAME_IDX_73
+	const SPRITE_ANIM_FRAME_IDX_74
+	const SPRITE_ANIM_FRAME_IDX_75
+	const SPRITE_ANIM_FRAME_IDX_76
+	const SPRITE_ANIM_FRAME_IDX_77
+	const SPRITE_ANIM_FRAME_IDX_78
+	const SPRITE_ANIM_FRAME_IDX_79
+	const SPRITE_ANIM_FRAME_IDX_7A
+	const SPRITE_ANIM_FRAME_IDX_7B
+	const SPRITE_ANIM_FRAME_IDX_7C
+	const SPRITE_ANIM_FRAME_IDX_7D
+	const SPRITE_ANIM_FRAME_IDX_7E
+	const SPRITE_ANIM_FRAME_IDX_7F
+	const SPRITE_ANIM_FRAME_IDX_80
+	const SPRITE_ANIM_FRAME_IDX_81
+	const SPRITE_ANIM_FRAME_IDX_82
+	const SPRITE_ANIM_FRAME_IDX_83
+	const SPRITE_ANIM_FRAME_IDX_84
+	const SPRITE_ANIM_FRAME_IDX_85
+	const SPRITE_ANIM_FRAME_IDX_86
+	const SPRITE_ANIM_FRAME_IDX_87
+	const SPRITE_ANIM_FRAME_IDX_88
+	const SPRITE_ANIM_FRAME_IDX_89
+	const SPRITE_ANIM_FRAME_IDX_8A
+	const SPRITE_ANIM_FRAME_IDX_8B