summaryrefslogtreecommitdiff
path: root/constants
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-12-28 01:30:36 -0500
committerGitHub <noreply@github.com>2017-12-28 01:30:36 -0500
commitda28d1a84b0499bead314e17ae2ff0d13eb03196 (patch)
treec212adfc53d1996c06f2e4be1d6e480e687a2ad8 /constants
parentbad9e33530af8cdc29ce5629df682fc7915bfff0 (diff)
parent2c4777f3363cd64d05fb00084fd83dff8ac31674 (diff)
Merge pull request #437 from roukaour/master
Reorganize battle/; rename most "header" misnomers; gfx/pics → gfx/pokemon
Diffstat (limited to 'constants')
-rw-r--r--constants/battle_anim_constants.asm (renamed from constants/animation_constants.asm)24
-rw-r--r--constants/battle_constants.asm178
-rw-r--r--constants/deco_constants.asm21
-rw-r--r--constants/gfx_constants.asm1
-rw-r--r--constants/hardware_constants.asm17
-rw-r--r--constants/icon_constants.asm41
-rw-r--r--constants/item_constants.asm194
-rw-r--r--constants/item_data_constants.asm190
-rw-r--r--constants/map_constants.asm759
-rw-r--r--constants/map_data_constants.asm288
-rw-r--r--constants/map_dimension_constants.asm488
-rw-r--r--constants/map_setup_constants.asm44
-rw-r--r--constants/misc_constants.asm53
-rw-r--r--constants/move_constants.asm8
-rw-r--r--constants/move_effect_constants.asm159
-rw-r--r--constants/pokemon_constants.asm21
-rw-r--r--constants/pokemon_data_constants.asm55
-rw-r--r--constants/sprite_anim_constants.asm316
-rw-r--r--constants/sprite_constants.asm2
-rw-r--r--constants/sprite_data_constants.asm333
-rw-r--r--constants/std_constants.asm2
-rw-r--r--constants/text_constants.asm41
-rw-r--r--constants/tileset_constants.asm2
-rw-r--r--constants/trainer_constants.asm66
-rw-r--r--constants/trainer_data_constants.asm53
-rw-r--r--constants/type_constants.asm4
26 files changed, 1691 insertions, 1669 deletions
diff --git a/constants/animation_constants.asm b/constants/battle_anim_constants.asm
index e7c844c12..0170d5700 100644
--- a/constants/animation_constants.asm
+++ b/constants/battle_anim_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/battle_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/battle_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/battle_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/battle_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/battle_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/pics/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/gfx_headers.asm)
+; AnimObjGFX indexes (see data/battle_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 e9d393fcc..2b1fec155 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -30,16 +30,16 @@ 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
- const MOVE_EFFECT
- const MOVE_POWER
- const MOVE_TYPE
- const MOVE_ACC
- const MOVE_PP
- const MOVE_CHANCE
- const MOVE_LENGTH
+ const MOVE_ANIM ; 0
+ const MOVE_EFFECT ; 1
+ const MOVE_POWER ; 2
+ const MOVE_TYPE ; 3
+ const MOVE_ACC ; 4
+ const MOVE_PP ; 5
+ const MOVE_CHANCE ; 6
+MOVE_LENGTH EQU const_value
; stat constants
; indexes for:
@@ -213,166 +213,6 @@ SUBSTATUS_CURLED EQU 0
const WEATHER_SUN_END
const WEATHER_SANDSTORM_END
-; MoveEffectsPointers indexes (see battle/moves/move_effects_pointers.asm)
- const_def
- const EFFECT_NORMAL_HIT
- const EFFECT_SLEEP
- const EFFECT_POISON_HIT
- const EFFECT_LEECH_HIT
- const EFFECT_BURN_HIT
- const EFFECT_FREEZE_HIT
- const EFFECT_PARALYZE_HIT
- const EFFECT_SELFDESTRUCT
- const EFFECT_DREAM_EATER
- const EFFECT_MIRROR_MOVE
- const EFFECT_ATTACK_UP
- const EFFECT_DEFENSE_UP
- const EFFECT_SPEED_UP
- const EFFECT_SP_ATK_UP
- const EFFECT_SP_DEF_UP
- const EFFECT_ACCURACY_UP
- const EFFECT_EVASION_UP
- const EFFECT_ALWAYS_HIT
- const EFFECT_ATTACK_DOWN
- const EFFECT_DEFENSE_DOWN
- const EFFECT_SPEED_DOWN
- const EFFECT_SP_ATK_DOWN
- const EFFECT_SP_DEF_DOWN
- const EFFECT_ACCURACY_DOWN
- const EFFECT_EVASION_DOWN
- const EFFECT_RESET_STATS
- const EFFECT_BIDE
- const EFFECT_RAMPAGE
- const EFFECT_FORCE_SWITCH
- const EFFECT_MULTI_HIT
- const EFFECT_CONVERSION
- const EFFECT_FLINCH_HIT
- const EFFECT_HEAL
- const EFFECT_TOXIC
- const EFFECT_PAY_DAY
- const EFFECT_LIGHT_SCREEN
- const EFFECT_TRI_ATTACK
- const EFFECT_UNUSED_25
- const EFFECT_OHKO
- const EFFECT_RAZOR_WIND
- const EFFECT_SUPER_FANG
- const EFFECT_STATIC_DAMAGE
- const EFFECT_TRAP_TARGET
- const EFFECT_UNUSED_2B
- const EFFECT_DOUBLE_HIT
- const EFFECT_JUMP_KICK
- const EFFECT_MIST
- const EFFECT_FOCUS_ENERGY
- const EFFECT_RECOIL_HIT
- const EFFECT_CONFUSE
- const EFFECT_ATTACK_UP_2
- const EFFECT_DEFENSE_UP_2
- const EFFECT_SPEED_UP_2
- const EFFECT_SP_ATK_UP_2
- const EFFECT_SP_DEF_UP_2
- const EFFECT_ACCURACY_UP_2
- const EFFECT_EVASION_UP_2
- const EFFECT_TRANSFORM
- const EFFECT_ATTACK_DOWN_2
- const EFFECT_DEFENSE_DOWN_2
- const EFFECT_SPEED_DOWN_2
- const EFFECT_SP_ATK_DOWN_2
- const EFFECT_SP_DEF_DOWN_2
- const EFFECT_ACCURACY_DOWN_2
- const EFFECT_EVASION_DOWN_2
- const EFFECT_REFLECT
- const EFFECT_POISON
- const EFFECT_PARALYZE
- const EFFECT_ATTACK_DOWN_HIT
- const EFFECT_DEFENSE_DOWN_HIT
- const EFFECT_SPEED_DOWN_HIT
- const EFFECT_SP_ATK_DOWN_HIT
- const EFFECT_SP_DEF_DOWN_HIT
- const EFFECT_ACCURACY_DOWN_HIT
- const EFFECT_EVASION_DOWN_HIT
- const EFFECT_SKY_ATTACK
- const EFFECT_CONFUSE_HIT
- const EFFECT_POISON_MULTI_HIT
- const EFFECT_UNUSED_4E
- const EFFECT_SUBSTITUTE
- const EFFECT_HYPER_BEAM
- const EFFECT_RAGE
- const EFFECT_MIMIC
- const EFFECT_METRONOME
- const EFFECT_LEECH_SEED
- const EFFECT_SPLASH
- const EFFECT_DISABLE
- const EFFECT_LEVEL_DAMAGE
- const EFFECT_PSYWAVE
- const EFFECT_COUNTER
- const EFFECT_ENCORE
- const EFFECT_PAIN_SPLIT
- const EFFECT_SNORE
- const EFFECT_CONVERSION2
- const EFFECT_LOCK_ON
- const EFFECT_SKETCH
- const EFFECT_DEFROST_OPPONENT
- const EFFECT_SLEEP_TALK
- const EFFECT_DESTINY_BOND
- const EFFECT_REVERSAL
- const EFFECT_SPITE
- const EFFECT_FALSE_SWIPE
- const EFFECT_HEAL_BELL
- const EFFECT_PRIORITY_HIT
- const EFFECT_TRIPLE_KICK
- const EFFECT_THIEF
- const EFFECT_MEAN_LOOK
- const EFFECT_NIGHTMARE
- const EFFECT_FLAME_WHEEL
- const EFFECT_CURSE
- const EFFECT_UNUSED_6E
- const EFFECT_PROTECT
- const EFFECT_SPIKES
- const EFFECT_FORESIGHT
- const EFFECT_PERISH_SONG
- const EFFECT_SANDSTORM
- const EFFECT_ENDURE
- const EFFECT_ROLLOUT
- const EFFECT_SWAGGER
- const EFFECT_FURY_CUTTER
- const EFFECT_ATTRACT
- const EFFECT_RETURN
- const EFFECT_PRESENT
- const EFFECT_FRUSTRATION
- const EFFECT_SAFEGUARD
- const EFFECT_SACRED_FIRE
- const EFFECT_MAGNITUDE
- const EFFECT_BATON_PASS
- const EFFECT_PURSUIT
- const EFFECT_RAPID_SPIN
- const EFFECT_UNUSED_82
- const EFFECT_UNUSED_83
- const EFFECT_MORNING_SUN
- const EFFECT_SYNTHESIS
- const EFFECT_MOONLIGHT
- const EFFECT_HIDDEN_POWER
- const EFFECT_RAIN_DANCE
- const EFFECT_SUNNY_DAY
- const EFFECT_DEFENSE_UP_HIT
- const EFFECT_ATTACK_UP_HIT
- const EFFECT_ALL_UP_HIT
- const EFFECT_FAKE_OUT
- const EFFECT_BELLY_DRUM
- const EFFECT_PSYCH_UP
- const EFFECT_MIRROR_COAT
- const EFFECT_SKULL_BASH
- const EFFECT_TWISTER
- const EFFECT_EARTHQUAKE
- const EFFECT_FUTURE_SIGHT
- const EFFECT_GUST
- const EFFECT_STOMP
- const EFFECT_SOLARBEAM
- const EFFECT_THUNDER
- const EFFECT_TELEPORT
- const EFFECT_BEAT_UP
- const EFFECT_FLY
- const EFFECT_DEFENSE_CURL
-
; wBattleAction
const_def
const BATTLEACTION_MOVE1
diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm
index 433b11e25..7546d9e1f 100644
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -7,7 +7,7 @@ const_value = 1
const DECO_DOLL
const DECO_BIGDOLL
-; DecorationNames indexes (see engine/decorations.asm)
+; DecorationNames indexes (see data/decorations/names.asm)
const_value = 1
const PUT_IT_AWAY
const MAGNAPLANT
@@ -35,7 +35,7 @@ const_value = 1
const YELLOW_CARPET
const GREEN_CARPET
-; DoDecorationAction2 arguments (see engine/decorations.asm)
+; DoDecorationAction2.DecoActions indexes (see engine/decorations.asm)
const_value = 1
const SET_UP_BED
const PUT_AWAY_BED
@@ -59,43 +59,46 @@ deco: MACRO
enum DECOFLAG_\1
endm
-; decorations (see data/decoration_attribute.asm)
+; decorations:
+; - DecorationAttributes (see data/decorations/attributes.asm)
+; - DecorationIDs (see data/decorations/decorations.asm)
const_value = 1
__enum__ = 0
+; FindOwnedBeds.beds values (see engine/decorations.asm)
const BEDS
deco FEATHERY_BED
deco PINK_BED
deco POLKADOT_BED
deco PIKACHU_BED
-
+; FindOwnedCarpets.carpets values (see engine/decorations.asm)
const CARPETS
deco RED_CARPET
deco BLUE_CARPET
deco YELLOW_CARPET
deco GREEN_CARPET
-
+; FindOwnedPlants.plants values (see engine/decorations.asm)
const PLANTS
deco MAGNAPLANT
deco TROPICPLANT
deco JUMBOPLANT
-
+; FindOwnedPosters.posters values (see engine/decorations.asm)
const POSTERS
deco TOWN_MAP
deco PIKACHU_POSTER
deco CLEFAIRY_POSTER
deco JIGGLYPUFF_POSTER
-
+; FindOwnedConsoles.consoles values (see engine/decorations.asm)
const CONSOLES
deco FAMICOM
deco SNES
deco N64
deco VIRTUAL_BOY
-
+; FindOwnedBigDolls.big_dolls values (see engine/decorations.asm)
const BIG_DOLLS
deco BIG_SNORLAX_DOLL
deco BIG_ONIX_DOLL
deco BIG_LAPRAS_DOLL
-
+; FindOwnedOrnaments.ornaments values (see engine/decorations.asm)
const DOLLS
deco PIKACHU_DOLL
deco SURF_PIKACHU_DOLL
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 4c3b23fc9..ca468f477 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -20,5 +20,4 @@ HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH EQU 8 ; tiles
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
-
PALPACKET_LENGTH EQU $10
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index ae2e97a6b..9cb278622 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -1,4 +1,19 @@
-; Graciously aped from http://nocash.emubase.de/pandocs.htm .
+; Graciously aped from:
+; http://nocash.emubase.de/pandocs.htm
+; http://gameboy.mongenel.com/dmg/asmmemmap.html
+
+; memory map
+VRAM_Begin EQU $8000
+VRAM_End EQU $a000
+SRAM_Begin EQU $a000
+SRAM_End EQU $c000
+WRAM0_Begin EQU $c000
+WRAM0_End EQU $d000
+WRAM1_Begin EQU $d000
+WRAM1_End EQU $e000
+; hardware registers $ff00-$ff80 (see below)
+HRAM_Begin EQU $ff80
+HRAM_End EQU $ffff
; MBC3
MBC3SRamEnable EQU $0000
diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm
new file mode 100644
index 000000000..2b0456c1d
--- /dev/null
+++ b/constants/icon_constants.asm
@@ -0,0 +1,41 @@
+; IconPointers indexes (see data/icon_pointers.asm)
+ const_def
+ const ICON_NULL
+ const ICON_POLIWAG
+ const ICON_JIGGLYPUFF
+ const ICON_DIGLETT
+ const ICON_PIKACHU
+ const ICON_STARYU
+ const ICON_FISH
+ const ICON_BIRD
+ const ICON_MONSTER
+ const ICON_CLEFAIRY
+ const ICON_ODDISH
+ const ICON_BUG
+ const ICON_GHOST
+ const ICON_LAPRAS
+ const ICON_HUMANSHAPE
+ const ICON_FOX
+ const ICON_EQUINE
+ const ICON_SHELL
+ const ICON_BLOB
+ const ICON_SERPENT
+ const ICON_VOLTORB
+ const ICON_SQUIRTLE
+ const ICON_BULBASAUR
+ const ICON_CHARMANDER
+ const ICON_CATERPILLAR
+ const ICON_UNOWN
+ const ICON_GEODUDE
+ const ICON_FIGHTER
+ const ICON_EGG
+ const ICON_JELLYFISH
+ const ICON_MOTH
+ const ICON_BAT
+ const ICON_SNORLAX
+ const ICON_HO_OH
+ const ICON_LUGIA
+ const ICON_GYARADOS
+ const ICON_SLOWPOKE
+ const ICON_SUDOWOODO
+ const ICON_BIGMON
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 5dc506604..c1079e82d 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,9 +1,9 @@
; item ids
; indexes for:
-; - ItemAttributes (see data/items/item_attributes.asm)
-; - ItemDescriptions (see data/items/item_descriptions.asm)
+; - ItemNames (see data/items/names.asm)
+; - ItemDescriptions (see data/items/descriptions.asm)
+; - ItemAttributes (see data/items/attributes.asm)
; - ItemEffects (see engine/item_effects.asm)
-; - ItemNames (see data/items/item_names.asm)
const_def
const NO_ITEM ; $00
const MASTER_BALL ; $01
@@ -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
@@ -273,189 +273,3 @@ ITEM_FROM_MEM EQU $FF
SAFARI_BALL EQU $08 ; MOON_STONE
MOON_STONE_RED EQU $0A ; BURN_HEAL
FULL_HEAL_RED EQU $34 ; X_SPEED
-
-; mail
-MAIL_MSG_LENGTH EQU $20
-MAILBOX_CAPACITY EQU 10
-MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
-
-; pack pockets
-ITEM EQU 1
-KEY_ITEM EQU 2
-BALL EQU 3
-TM_HM EQU 4
-
-; pack pocket sizes
-MAX_ITEMS EQU 20
-MAX_KEY_ITEMS EQU 25
-MAX_BALLS EQU 12
-MAX_PC_ITEMS EQU 50
-
-; item actions
-CANT_SELECT EQU 1 << 6
-CANT_TOSS EQU 1 << 7
-
-
-; held item effects
- const_def
- const HELD_NONE
- const HELD_BERRY
- const HELD_2
- const HELD_LEFTOVERS
- const HELD_4
- const HELD_5
- const HELD_RESTORE_PP
- const HELD_7
- const HELD_CLEANSE_TAG
-
-const_value SET 10
- const HELD_HEAL_POISON
- const HELD_HEAL_FREEZE
- const HELD_HEAL_BURN
- const HELD_HEAL_SLEEP
- const HELD_HEAL_PARALYZE
- const HELD_HEAL_STATUS
- const HELD_HEAL_CONFUSION
-
-const_value SET 20
- const HELD_PREVENT_POISON
- const HELD_PREVENT_BURN
- const HELD_PREVENT_FREEZE
- const HELD_PREVENT_SLEEP
- const HELD_PREVENT_PARALYZE
- const HELD_PREVENT_CONFUSE
-
-const_value SET 30
- const HELD_30
- const HELD_ATTACK_UP
- const HELD_DEFENSE_UP
- const HELD_SPEED_UP
- const HELD_SP_ATTACK_UP
- const HELD_SP_DEFENSE_UP
- const HELD_ACCURACY_UP
- const HELD_EVASION_UP
- const HELD_38
-
-const_value SET 40
- const HELD_40
- const HELD_41
- const HELD_METAL_POWDER
-
-const_value SET 50
- const HELD_NORMAL_BOOST
- const HELD_FIGHTING_BOOST
- const HELD_FLYING_BOOST
- const HELD_POISON_BOOST
- const HELD_GROUND_BOOST
- const HELD_ROCK_BOOST
- const HELD_BUG_BOOST
- const HELD_GHOST_BOOST
- const HELD_FIRE_BOOST
- const HELD_WATER_BOOST
- const HELD_GRASS_BOOST
- const HELD_ELECTRIC_BOOST
- const HELD_PSYCHIC_BOOST
- const HELD_ICE_BOOST
- const HELD_DRAGON_BOOST
- const HELD_DARK_BOOST
- const HELD_STEEL_BOOST
-
-const_value SET 70
- const HELD_CATCH_CHANCE
- const HELD_71
- const HELD_ESCAPE
- const HELD_CRITICAL_UP
- const HELD_QUICK_CLAW
- const HELD_FLINCH
- const HELD_AMULET_COIN
- const HELD_BRIGHTPOWDER
- const HELD_78
- const HELD_FOCUS_BAND
-
-; item_attribute struct members (see data/items/item_attributes.asm)
- const_def
- const ITEMATTR_PRICE
- const ITEMATTR_PRICE_HI
- const ITEMATTR_EFFECT
- const ITEMATTR_PARAM
- const ITEMATTR_PERMISSIONS
- const ITEMATTR_POCKET
- const ITEMATTR_HELP
-ITEMATTR_STRUCT_LENGTH EQU const_value
-
-; item menu types
-ITEMMENU_NOUSE EQU 0
-ITEMMENU_CURRENT EQU 4
-ITEMMENU_PARTY EQU 5
-ITEMMENU_CLOSE EQU 6
-
-; mart types (see engine/mart.asm)
- const_def
- const MARTTYPE_STANDARD
- const MARTTYPE_BITTER
- const MARTTYPE_BARGAIN
- const MARTTYPE_PHARMACY
- const MARTTYPE_ROOFTOP
-
-; Marts indexes (see data/items/marts.asm)
- const_def
- const MART_CHERRYGROVE
- const MART_CHERRYGROVE_DEX
- const MART_VIOLET
- const MART_AZALEA
- const MART_CIANWOOD
- const MART_GOLDENROD_2F_1
- const MART_GOLDENROD_2F_2
- const MART_GOLDENROD_3F
- const MART_GOLDENROD_4F
- const MART_GOLDENROD_5F_1
- const MART_GOLDENROD_5F_2
- const MART_GOLDENROD_5F_3
- const MART_GOLDENROD_5F_4
- const MART_OLIVINE
- const MART_ECRUTEAK
- const MART_MAHOGANY_1
- const MART_MAHOGANY_2
- const MART_BLACKTHORN
- const MART_VIRIDIAN
- const MART_PEWTER
- const MART_CERULEAN
- const MART_LAVENDER
- const MART_VERMILION
- const MART_CELADON_2F_1
- const MART_CELADON_2F_2
- const MART_CELADON_3F
- const MART_CELADON_4F
- const MART_CELADON_5F_1
- const MART_CELADON_5F_2
- const MART_FUCHSIA
- const MART_SAFFRON
- const MART_MT_MOON
- const MART_INDIGO_PLATEAU
- const MART_UNDERGROUND
-
-; PartyMenuActionText values
-; GetPartyMenuTilemapPointers arguments (see engine/party_menu.asm)
- const_def
- const PARTYMENUACTION_CHOOSE_POKEMON
- const PARTYMENUACTION_HEALING_ITEM
- const PARTYMENUACTION_SWITCH
- const PARTYMENUACTION_TEACH_TMHM
- const PARTYMENUACTION_MOVE
- const PARTYMENUACTION_EVO_STONE
- const PARTYMENUACTION_GIVE_MON
- const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
- const PARTYMENUACTION_GIVE_ITEM
- const PARTYMENUACTION_MOBILE ; mobile
-; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
-const_value set $f0
- const PARTYMENUTEXT_HEAL_PSN
- const PARTYMENUTEXT_HEAL_BRN
- const PARTYMENUTEXT_HEAL_FRZ
- const PARTYMENUTEXT_HEAL_SLP
- const PARTYMENUTEXT_HEAL_PAR
- const PARTYMENUTEXT_HEAL_HP
- const PARTYMENUTEXT_HEAL_ALL
- const PARTYMENUTEXT_REVIVE
- const PARTYMENUTEXT_LEVEL_UP
- const PARTYMENUTEXT_HEAL_CONFUSION
diff --git a/constants/item_data_constants.asm b/constants/item_data_constants.asm
new file mode 100644
index 000000000..4ef221840
--- /dev/null
+++ b/constants/item_data_constants.asm
@@ -0,0 +1,190 @@
+; item_attributes struct members (see data/items/attributes.asm)
+ const_def
+ const ITEMATTR_PRICE
+ const ITEMATTR_PRICE_HI
+ const ITEMATTR_EFFECT
+ const ITEMATTR_PARAM
+ const ITEMATTR_PERMISSIONS
+ const ITEMATTR_POCKET
+ const ITEMATTR_HELP
+ITEMATTR_STRUCT_LENGTH EQU const_value
+
+
+; pack pockets
+ITEM EQU 1
+KEY_ITEM EQU 2
+BALL EQU 3
+TM_HM EQU 4
+
+; pack pocket sizes
+MAX_ITEMS EQU 20
+MAX_KEY_ITEMS EQU 25
+MAX_BALLS EQU 12
+MAX_PC_ITEMS EQU 50
+
+
+; item menu types
+ITEMMENU_NOUSE EQU 0
+ITEMMENU_CURRENT EQU 4
+ITEMMENU_PARTY EQU 5
+ITEMMENU_CLOSE EQU 6
+
+; item actions
+CANT_SELECT EQU 1 << 6
+CANT_TOSS EQU 1 << 7
+
+
+; mail
+MAIL_MSG_LENGTH EQU $20
+MAILBOX_CAPACITY EQU 10
+MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
+
+
+; held item effects
+ const_def
+ const HELD_NONE
+ const HELD_BERRY
+ const HELD_2
+ const HELD_LEFTOVERS
+ const HELD_4
+ const HELD_5
+ const HELD_RESTORE_PP
+ const HELD_7
+ const HELD_CLEANSE_TAG
+
+const_value SET 10
+ const HELD_HEAL_POISON
+ const HELD_HEAL_FREEZE
+ const HELD_HEAL_BURN
+ const HELD_HEAL_SLEEP
+ const HELD_HEAL_PARALYZE
+ const HELD_HEAL_STATUS
+ const HELD_HEAL_CONFUSION
+
+const_value SET 20
+ const HELD_PREVENT_POISON
+ const HELD_PREVENT_BURN
+ const HELD_PREVENT_FREEZE
+ const HELD_PREVENT_SLEEP
+ const HELD_PREVENT_PARALYZE
+ const HELD_PREVENT_CONFUSE
+
+const_value SET 30
+ const HELD_30
+ const HELD_ATTACK_UP
+ const HELD_DEFENSE_UP
+ const HELD_SPEED_UP
+ const HELD_SP_ATTACK_UP
+ const HELD_SP_DEFENSE_UP
+ const HELD_ACCURACY_UP
+ const HELD_EVASION_UP
+ const HELD_38
+
+const_value SET 40
+ const HELD_40
+ const HELD_41
+ const HELD_METAL_POWDER
+
+const_value SET 50
+ const HELD_NORMAL_BOOST
+ const HELD_FIGHTING_BOOST
+ const HELD_FLYING_BOOST
+ const HELD_POISON_BOOST
+ const HELD_GROUND_BOOST
+ const HELD_ROCK_BOOST
+ const HELD_BUG_BOOST
+ const HELD_GHOST_BOOST
+ const HELD_FIRE_BOOST
+ const HELD_WATER_BOOST
+ const HELD_GRASS_BOOST
+ const HELD_ELECTRIC_BOOST
+ const HELD_PSYCHIC_BOOST
+ const HELD_ICE_BOOST
+ const HELD_DRAGON_BOOST
+ const HELD_DARK_BOOST
+ const HELD_STEEL_BOOST
+
+const_value SET 70
+ const HELD_CATCH_CHANCE
+ const HELD_71
+ const HELD_ESCAPE
+ const HELD_CRITICAL_UP
+ const HELD_QUICK_CLAW
+ const HELD_FLINCH
+ const HELD_AMULET_COIN
+ const HELD_BRIGHTPOWDER
+ const HELD_78
+ const HELD_FOCUS_BAND
+
+
+; mart types (see engine/mart.asm)
+ const_def
+ const MARTTYPE_STANDARD
+ const MARTTYPE_BITTER
+ const MARTTYPE_BARGAIN
+ const MARTTYPE_PHARMACY
+ const MARTTYPE_ROOFTOP
+
+; Marts indexes (see data/items/marts.asm)
+ const_def
+ const MART_CHERRYGROVE
+ const MART_CHERRYGROVE_DEX
+ const MART_VIOLET
+ const MART_AZALEA
+ const MART_CIANWOOD
+ const MART_GOLDENROD_2F_1
+ const MART_GOLDENROD_2F_2
+ const MART_GOLDENROD_3F
+ const MART_GOLDENROD_4F
+ const MART_GOLDENROD_5F_1
+ const MART_GOLDENROD_5F_2
+ const MART_GOLDENROD_5F_3
+ const MART_GOLDENROD_5F_4
+ const MART_OLIVINE
+ const MART_ECRUTEAK
+ const MART_MAHOGANY_1
+ const MART_MAHOGANY_2
+ const MART_BLACKTHORN
+ const MART_VIRIDIAN
+ const MART_PEWTER
+ const MART_CERULEAN
+ const MART_LAVENDER
+ const MART_VERMILION
+ const MART_CELADON_2F_1
+ const MART_CELADON_2F_2
+ const MART_CELADON_3F
+ const MART_CELADON_4F
+ const MART_CELADON_5F_1
+ const MART_CELADON_5F_2
+ const MART_FUCHSIA
+ const MART_SAFFRON
+ const MART_MT_MOON
+ const MART_INDIGO_PLATEAU
+ const MART_UNDERGROUND
+
+
+; PartyMenuActionText values
+; GetPartyMenuTilemapPointers arguments (see engine/party_menu.asm)
+ const_def
+ const PARTYMENUACTION_CHOOSE_POKEMON
+ const PARTYMENUACTION_HEALING_ITEM
+ const PARTYMENUACTION_SWITCH
+ const PARTYMENUACTION_TEACH_TMHM
+ const PARTYMENUACTION_MOVE
+ const PARTYMENUACTION_EVO_STONE
+ const PARTYMENUACTION_GIVE_MON
+ const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
+ const PARTYMENUACTION_GIVE_ITEM
+ const PARTYMENUACTION_MOBILE ; mobile
+; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
+const_value set $f0
+ const PARTYMENUTEXT_HEAL_PSN
+ const PARTYMENUTEXT_HEAL_BRN
+ const PARTYMENUTEXT_HEAL_FRZ
+ const PARTYMENUTEXT_HEAL_SLP
+ const PARTYMENUTEXT_HEAL_PAR
+ const PARTYMENUTEXT_HEAL_HP
+ const PARTYMENUTEXT_HEAL_ALL
+ const PARTYMENUTEXT_REVIVE
+ const PARTYMENUTEXT_LEVEL_UP
+ const PARTYMENUTEXT_HEAL_CONFUSION
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 1af4215a1..7e3a628b1 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -1,287 +1,488 @@
-GROUP_N_A EQU -1
-MAP_N_A EQU -1
-GROUP_NONE EQU 0
-MAP_NONE EQU 0
+newgroup: macro
+const_value = const_value + 1
+ enum_start 1
+endm
-; map header fields (see maps/map_headers.asm)
- const_def
- const MAPHEADER_MAPHEADER2_BANK ; 0
- const MAPHEADER_TILESET ; 1
- const MAPHEADER_ENVIRONMENT ; 2
- const MAPHEADER_MAPHEADER2 ; 3
- const MAPHEADER_MAPHEADER2_HI ; 4
- const MAPHEADER_LOCATION ; 5
- const MAPHEADER_MUSIC ; 6
- const MAPHEADER_PALETTE ; 7
- const MAPHEADER_FISHGROUP ; 8
-NUM_MAPHEADER_ATTRIBUTES EQU const_value
-
-; map environments (wEnvironment)
-const_value SET 1
- const TOWN
- const ROUTE
- const INDOOR
- const CAVE
- const ENVIRONMENT_5
- const GATE
- const DUNGEON
-
-; map palettes (wEnvironment)
- const_def
- const PALETTE_AUTO
- const PALETTE_DAY
- const PALETTE_NITE
- const PALETTE_MORN
- const PALETTE_DARK
+mapgroup: macro
+;\1: map id
+;\2: height: in blocks
+;\3: width: in blocks
+GROUP_\1 EQU const_value
+ enum MAP_\1
+\1_HEIGHT EQU \2
+\1_WIDTH EQU \3
+endm
-; fish groups
+; map group ids
+; `newgroup` indexes are for:
+; - MapGroupPointers (see maps/map_headers.asm)
+; - MapGroupRoofs (see data/maps/roofs.asm)
+; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
+; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
const_def
- const FISHGROUP_NONE
- const FISHGROUP_SHORE
- const FISHGROUP_OCEAN
- const FISHGROUP_LAKE
- const FISHGROUP_POND
- const FISHGROUP_DRATINI
- const FISHGROUP_QWILFISH_SWARM
- const FISHGROUP_REMORAID_SWARM
- const FISHGROUP_GYARADOS
- const FISHGROUP_DRATINI_2
- const FISHGROUP_WHIRL_ISLANDS
- const FISHGROUP_QWILFISH
- const FISHGROUP_REMORAID
- const FISHGROUP_QWILFISH_NO_SWARM
-
-
-; connection directions
- const_def
- const EAST_F
- const WEST_F
- const SOUTH_F
- const NORTH_F
-; MapConnections
- const_def
- shift_const EAST
- shift_const WEST
- shift_const SOUTH
- shift_const NORTH
+ newgroup ; 1
+ mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1
+ mapgroup OLIVINE_GYM, 8, 5 ; 2
+ mapgroup OLIVINE_TIMS_HOUSE, 4, 4 ; 3
+ mapgroup OLIVINE_HOUSE_BETA, 4, 4 ; 4
+ mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5
+ mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6
+ mapgroup OLIVINE_CAFE, 4, 4 ; 7
+ mapgroup OLIVINE_MART, 4, 6 ; 8
+ mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9
+ mapgroup ROUTE_39_BARN, 4, 4 ; 10
+ mapgroup ROUTE_39_FARMHOUSE, 4, 4 ; 11
+ mapgroup ROUTE_38, 9, 20 ; 12
+ mapgroup ROUTE_39, 18, 10 ; 13
+ mapgroup OLIVINE_CITY, 18, 20 ; 14
-; object_struct members (see macros/wram.asm)
- const_def
- const OBJECT_SPRITE ; 00
- const OBJECT_MAP_OBJECT_INDEX ; 01
- const OBJECT_SPRITE_TILE ; 02
- const OBJECT_MOVEMENTTYPE ; 03
- const OBJECT_FLAGS1 ; 04
- const OBJECT_FLAGS2 ; 05
- const OBJECT_PALETTE ; 06
- const OBJECT_DIRECTION_WALKING ; 07
- const OBJECT_FACING ; 08
- const OBJECT_STEP_TYPE ; 09
- const OBJECT_STEP_DURATION ; 0a
- const OBJECT_ACTION ; 0b
- const OBJECT_STEP_FRAME ; 0c
- const OBJECT_FACING_STEP ; 0d
- const OBJECT_NEXT_TILE ; 0e
- const OBJECT_STANDING_TILE ; 0f
- const OBJECT_NEXT_MAP_X ; 10
- const OBJECT_NEXT_MAP_Y ; 11
- const OBJECT_MAP_X ; 12
- const OBJECT_MAP_Y ; 13
- const OBJECT_INIT_X ; 14
- const OBJECT_INIT_Y ; 15
- const OBJECT_RADIUS ; 16
- const OBJECT_SPRITE_X ; 17
- const OBJECT_SPRITE_Y ; 18
- const OBJECT_SPRITE_X_OFFSET ; 19
- const OBJECT_SPRITE_Y_OFFSET ; 1a
- const OBJECT_MOVEMENT_BYTE_INDEX ; 1b
- const OBJECT_28 ; 1c
- const OBJECT_29 ; 1d
- const OBJECT_30 ; 1e
- const OBJECT_31 ; 1f
- const OBJECT_RANGE ; 20
-; 33-39 are not used
-
-; map_object struct members (see macros/wram.asm)
- const_def
- const MAPOBJECT_OBJECT_STRUCT_ID ; 0
- const MAPOBJECT_SPRITE ; 1
- const MAPOBJECT_Y_COORD ; 2
- const MAPOBJECT_X_COORD ; 3
- const MAPOBJECT_MOVEMENT ; 4
- const MAPOBJECT_RADIUS ; 5
- const MAPOBJECT_HOUR ; 6
- const MAPOBJECT_TIMEOFDAY ; 7
- const MAPOBJECT_COLOR ; 8
- const MAPOBJECT_RANGE ; 9
- const MAPOBJECT_SCRIPT_POINTER ; a
- const MAPOBJECT_POINTER_HI ; b
- const MAPOBJECT_EVENT_FLAG ; c
- const MAPOBJECT_FLAG_HI ; d
- const MAPOBJECT_E ; unused
- const MAPOBJECT_F ; unused
-OBJECT_LENGTH EQU const_value
-
-MAPOBJECT_SCREEN_HEIGHT EQU 11
-MAPOBJECT_SCREEN_WIDTH EQU 12
-
-; object_struct OBJECT_FACING values
-OW_DOWN EQU DOWN << 2
-OW_UP EQU UP << 2
-OW_LEFT EQU LEFT << 2
-OW_RIGHT EQU RIGHT << 2
-
-; object_struct OBJECT_FLAGS1 bit flags
-INVISIBLE EQU 0
-FIXED_FACING EQU 2
-SLIDING EQU 3
-EMOTE_OBJECT EQU 7
-
-
-; SpawnPoints indexes (see data/maps/spawn_points.asm)
-const_value = -1
- const SPAWN_N_A
- const SPAWN_HOME
- const SPAWN_DEBUG
-; kanto
- const SPAWN_PALLET
- const SPAWN_VIRIDIAN
- const SPAWN_PEWTER
- const SPAWN_CERULEAN
- const SPAWN_ROCK_TUNNEL
- const SPAWN_VERMILION
- const SPAWN_LAVENDER
- const SPAWN_SAFFRON
- const SPAWN_CELADON
- const SPAWN_FUCHSIA
- const SPAWN_CINNABAR
- const SPAWN_INDIGO
-; johto
- const SPAWN_NEW_BARK
- const SPAWN_CHERRYGROVE
- const SPAWN_VIOLET
- const SPAWN_UNION_CAVE
- const SPAWN_AZALEA
- const SPAWN_CIANWOOD
- const SPAWN_GOLDENROD
- const SPAWN_OLIVINE
- const SPAWN_ECRUTEAK
- const SPAWN_MAHOGANY
- const SPAWN_LAKE
- const SPAWN_BLACKTHORN
- const SPAWN_MT_SILVER
- const SPAWN_FAST_SHIP
-NUM_SPAWNS EQU const_value
-
-
-; TryBGEvent arguments (see engine/events.asm)
- const_def
- const BGEVENT_READ
- const BGEVENT_UP
- const BGEVENT_DOWN
- const BGEVENT_RIGHT
- const BGEVENT_LEFT
- const BGEVENT_IFSET
- const BGEVENT_IFNOTSET
- const BGEVENT_ITEM
- const BGEVENT_COPY
-
-; object_event types
-; TryObjectEvent arguments (see engine/events.asm)
- const_def
- const OBJECTTYPE_SCRIPT
- const OBJECTTYPE_ITEMBALL
- const OBJECTTYPE_TRAINER
- const OBJECTTYPE_3
- const OBJECTTYPE_4
- const OBJECTTYPE_5
- const OBJECTTYPE_6
+ newgroup ; 2
+ mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1
+ mapgroup MAHOGANY_GYM, 9, 5 ; 2
+ mapgroup MAHOGANY_POKECENTER_1F, 4, 5 ; 3
+ mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4
+ mapgroup ROUTE_42, 9, 30 ; 5
+ mapgroup ROUTE_44, 9, 30 ; 6
+ mapgroup MAHOGANY_TOWN, 9, 10 ; 7
-; EmotesPointers indexes (see engine/overworld.asm)
- const_def
- const EMOTE_SHOCK ; 0
- const EMOTE_QUESTION ; 1
- const EMOTE_HAPPY ; 2
- const EMOTE_SAD ; 3
- const EMOTE_HEART ; 4
- const EMOTE_BOLT ; 5
- const EMOTE_SLEEP ; 6
- const EMOTE_FISH ; 7
- const EMOTE_SHADOW ; 8
- const EMOTE_ROD ; 9
- const EMOTE_BOULDER_DUST ; 10
- const EMOTE_GRASS_RUSTLE ; 11
-EMOTE_MEM EQU -1
-
-; FruitTreeItems indexes (see data/items/fruit_trees.asm)
-const_value SET 1
- const FRUITTREE_ROUTE_29 ; 01
- const FRUITTREE_ROUTE_30_1 ; 02
- const FRUITTREE_ROUTE_38 ; 03
- const FRUITTREE_ROUTE_46_1 ; 04
- const FRUITTREE_ROUTE_30_2 ; 05
- const FRUITTREE_ROUTE_33 ; 06
- const FRUITTREE_ROUTE_31 ; 07
- const FRUITTREE_ROUTE_43 ; 08
- const FRUITTREE_VIOLET_CITY ; 09
- const FRUITTREE_ROUTE_46_2 ; 0a
- const FRUITTREE_ROUTE_35 ; 0b
- const FRUITTREE_ROUTE_45 ; 0c
- const FRUITTREE_ROUTE_36 ; 0d
- const FRUITTREE_ROUTE_26 ; 0e
- const FRUITTREE_ROUTE_39 ; 0f
- const FRUITTREE_ROUTE_44 ; 10
- const FRUITTREE_ROUTE_37_1 ; 11
- const FRUITTREE_ROUTE_37_2 ; 12
- const FRUITTREE_ROUTE_37_3 ; 13
- const FRUITTREE_AZALEA_TOWN ; 14
- const FRUITTREE_ROUTE_42_1 ; 15
- const FRUITTREE_ROUTE_42_2 ; 16
- const FRUITTREE_ROUTE_42_3 ; 17
- const FRUITTREE_ROUTE_11 ; 18
- const FRUITTREE_ROUTE_2 ; 19
- const FRUITTREE_ROUTE_1 ; 1a
- const FRUITTREE_ROUTE_8 ; 1b
- const FRUITTREE_PEWTER_CITY_1 ; 1c
- const FRUITTREE_PEWTER_CITY_2 ; 1d
- const FRUITTREE_FUCHSIA_CITY ; 1e
-NUM_FRUIT_TREES EQU const_value +- 1
-
-; elevator floors
-; used by `elevfloor`
- const_def
- const FLOOR_B4F
- const FLOOR_B3F
- const FLOOR_B2F
- const FLOOR_B1F
- const FLOOR_1F
- const FLOOR_2F
- const FLOOR_3F
- const FLOOR_4F
- const FLOOR_5F
- const FLOOR_6F
- const FLOOR_7F
- const FLOOR_8F
- const FLOOR_9F
- const FLOOR_10F
- const FLOOR_11F
- const FLOOR_ROOF
-
-; command queue members
-CMDQUEUE_TYPE EQU 0
-CMDQUEUE_ADDR EQU 1
-CMDQUEUE_03 EQU 3
-CMDQUEUE_04 EQU 4
-CMDQUEUE_05 EQU 5
-CMDQUEUE_ENTRY_SIZE EQU 6
-CMDQUEUE_CAPACITY EQU 4
-
-; command queue types
-CMDQUEUE_STONETABLE EQU 2
-
-; see engine/overworld.asm
-MAX_OUTDOOR_SPRITES EQU 23
-SPRITE_GFX_LIST_CAPACITY EQU $20
+ newgroup ; 3
+
+ mapgroup SPROUT_TOWER_1F, 8, 10 ; 1
+ mapgroup SPROUT_TOWER_2F, 8, 10 ; 2
+ mapgroup SPROUT_TOWER_3F, 8, 10 ; 3
+ mapgroup TIN_TOWER_1F, 9, 10 ; 4
+ mapgroup TIN_TOWER_2F, 9, 10 ; 5
+ mapgroup TIN_TOWER_3F, 9, 10 ; 6
+ mapgroup TIN_TOWER_4F, 9, 10 ; 7
+ mapgroup TIN_TOWER_5F, 9, 10 ; 8
+ mapgroup TIN_TOWER_6F, 9, 10 ; 9
+ mapgroup TIN_TOWER_7F, 9, 10 ; 10
+ mapgroup TIN_TOWER_8F, 9, 10 ; 11
+ mapgroup TIN_TOWER_9F, 9, 10 ; 12
+ mapgroup BURNED_TOWER_1F, 9, 10 ; 13
+ mapgroup BURNED_TOWER_B1F, 9, 10 ; 14
+ mapgroup NATIONAL_PARK, 27, 20 ; 15
+ mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16
+ mapgroup RADIO_TOWER_1F, 4, 9 ; 17
+ mapgroup RADIO_TOWER_2F, 4, 9 ; 18
+ mapgroup RADIO_TOWER_3F, 4, 9 ; 19
+ mapgroup RADIO_TOWER_4F, 4, 9 ; 20
+ mapgroup RADIO_TOWER_5F, 4, 9 ; 21
+ mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22
+ mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23
+ mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24
+ mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25
+ mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26
+ mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27
+ mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28
+ mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29
+ mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30
+ mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31
+ mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32
+ mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33
+ mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34
+ mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35
+ mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36
+ mapgroup UNION_CAVE_1F, 18, 10 ; 37
+ mapgroup UNION_CAVE_B1F, 18, 10 ; 38
+ mapgroup UNION_CAVE_B2F, 18, 10 ; 39
+ mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40
+ mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41
+ mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42
+ mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43
+ mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44
+ mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45
+ mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46
+ mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47
+ mapgroup MAHOGANY_MART_1F, 4, 4 ; 48
+ mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49
+ mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50
+ mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51
+ mapgroup ILEX_FOREST, 27, 15 ; 52
+ mapgroup GOLDENROD_UNDERGROUND, 18, 15 ; 53
+ mapgroup GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
+ mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
+ mapgroup GOLDENROD_UNDERGROUND_WAREHOUSE, 9, 10 ; 56
+ mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57
+ mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58
+ mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59
+ mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60
+ mapgroup ICE_PATH_1F, 18, 20 ; 61
+ mapgroup ICE_PATH_B1F, 18, 10 ; 62
+ mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63
+ mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64
+ mapgroup ICE_PATH_B3F, 9, 10 ; 65
+ mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66
+ mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67
+ mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68
+ mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69
+ mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70
+ mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71
+ mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72
+ mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73
+ mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74
+ mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75
+ mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76
+ mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77
+ mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78
+ mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79
+ mapgroup DRAGONS_DEN_1F, 9, 5 ; 80
+ mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81
+ mapgroup DRAGON_SHRINE, 5, 5 ; 82
+ mapgroup TOHJO_FALLS, 9, 15 ; 83
+ mapgroup DIGLETTS_CAVE, 18, 10 ; 84
+ mapgroup MOUNT_MOON, 9, 15 ; 85
+ mapgroup UNDERGROUND_PATH, 14, 3 ; 86
+ mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87
+ mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88
+ mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89
+ mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90
+ mapgroup VICTORY_ROAD, 36, 10 ; 91
+
+ newgroup ; 4
+
+ mapgroup ECRUTEAK_HOUSE, 9, 10 ; 1
+ mapgroup WISE_TRIOS_ROOM, 4, 4 ; 2
+ mapgroup ECRUTEAK_POKECENTER_1F, 4, 5 ; 3
+ mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4
+ mapgroup DANCE_THEATRE, 7, 6 ; 5
+ mapgroup ECRUTEAK_MART, 4, 6 ; 6
+ mapgroup ECRUTEAK_GYM, 9, 5 ; 7
+ mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8
+ mapgroup ECRUTEAK_CITY, 18, 20 ; 9
+
+ newgroup ; 5
+
+ mapgroup BLACKTHORN_GYM_1F, 9, 5 ; 1
+ mapgroup BLACKTHORN_GYM_2F, 9, 5 ; 2
+ mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3
+ mapgroup BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4
+ mapgroup BLACKTHORN_MART, 4, 6 ; 5
+ mapgroup BLACKTHORN_POKECENTER_1F, 4, 5 ; 6
+ mapgroup MOVE_DELETERS_HOUSE, 4, 4 ; 7
+ mapgroup ROUTE_45, 45, 10 ; 8
+ mapgroup ROUTE_46, 18, 10 ; 9
+ mapgroup BLACKTHORN_CITY, 18, 20 ; 10
+
+ newgroup ; 6
+
+ mapgroup CINNABAR_POKECENTER_1F, 4, 5 ; 1
+ mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2
+ mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3
+ mapgroup SEAFOAM_GYM, 4, 5 ; 4
+ mapgroup ROUTE_19, 18, 10 ; 5
+ mapgroup ROUTE_20, 9, 30 ; 6
+ mapgroup ROUTE_21, 18, 10 ; 7
+ mapgroup CINNABAR_ISLAND, 9, 10 ; 8
+
+ newgroup ; 7
+
+ mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1
+ mapgroup CERULEAN_POLICE_STATION, 4, 4 ; 2
+ mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3
+ mapgroup CERULEAN_POKECENTER_1F, 4, 5 ; 4
+ mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5
+ mapgroup CERULEAN_GYM, 8, 5 ; 6
+ mapgroup CERULEAN_MART, 4, 6 ; 7
+ mapgroup ROUTE_10_POKECENTER_1F, 4, 5 ; 8
+ mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9
+ mapgroup POWER_PLANT, 9, 10 ; 10
+ mapgroup BILLS_HOUSE, 4, 4 ; 11
+ mapgroup ROUTE_4, 9, 20 ; 12
+ mapgroup ROUTE_9, 9, 30 ; 13
+ mapgroup ROUTE_10_NORTH, 9, 10 ; 14
+ mapgroup ROUTE_24, 9, 10 ; 15
+ mapgroup ROUTE_25, 9, 30 ; 16
+ mapgroup CERULEAN_CITY, 18, 20 ; 17
+
+ newgroup ; 8
+
+ mapgroup AZALEA_POKECENTER_1F, 4, 5 ; 1
+ mapgroup CHARCOAL_KILN, 4, 4 ; 2
+ mapgroup AZALEA_MART, 4, 6 ; 3
+ mapgroup KURTS_HOUSE, 4, 8 ; 4
+ mapgroup AZALEA_GYM, 8, 5 ; 5
+ mapgroup ROUTE_33, 9, 10 ; 6
+ mapgroup AZALEA_TOWN, 9, 20 ; 7
+
+ newgroup ; 9
+
+ mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1
+ mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2
+ mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3
+ mapgroup ROUTE_43_GATE, 4, 5 ; 4
+ mapgroup ROUTE_43, 27, 10 ; 5
+ mapgroup LAKE_OF_RAGE, 18, 20 ; 6
+
+ newgroup ; 10
+
+ mapgroup ROUTE_32, 45, 10 ; 1
+ mapgroup ROUTE_35, 18, 10 ; 2
+ mapgroup ROUTE_36, 9, 30 ; 3
+ mapgroup ROUTE_37, 9, 10 ; 4
+ mapgroup VIOLET_CITY, 18, 20 ; 5
+ mapgroup VIOLET_MART, 4, 6 ; 6
+ mapgroup VIOLET_GYM, 8, 5 ; 7
+ mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
+ mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
+ mapgroup VIOLET_KYLES_HOUSE, 4, 4 ; 11
+ mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
+ mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
+ mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
+ mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
+ mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16
+ mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17
+
+ newgroup ; 11
+
+ mapgroup ROUTE_34, 27, 10 ; 1
+ mapgroup GOLDENROD_CITY, 18, 20 ; 2
+ mapgroup GOLDENROD_GYM, 9, 10 ; 3
+ mapgroup GOLDENROD_BIKE_SHOP, 4, 4 ; 4
+ mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5
+ mapgroup GOLDENROD_BILLS_HOUSE, 4, 4 ; 6
+ mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7
+ mapgroup GOLDENROD_FLOWER_SHOP, 4, 4 ; 8
+ mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup GOLDENROD_NAME_RATER, 4, 4 ; 10
+ mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11
+ mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12
+ mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13
+ mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14
+ mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15
+ mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16
+ mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17
+ mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18
+ mapgroup GOLDENROD_GAME_CORNER, 7, 10 ; 19
+ mapgroup GOLDENROD_POKECENTER_1F, 4, 5 ; 20
+ mapgroup GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21
+ mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22
+ mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23
+ mapgroup DAY_CARE, 4, 5 ; 24
+
+ newgroup ; 12
+
+ mapgroup ROUTE_6, 9, 10 ; 1
+ mapgroup ROUTE_11, 9, 20 ; 2
+ mapgroup VERMILION_CITY, 18, 20 ; 3
+ mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4
+ mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5
+ mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6
+ mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7
+ mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8
+ mapgroup VERMILION_MART, 4, 6 ; 9
+ mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10
+ mapgroup VERMILION_GYM, 9, 5 ; 11
+ mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12
+ mapgroup ROUTE_6_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
+
+ newgroup ; 13
+
+ mapgroup ROUTE_1, 18, 10 ; 1
+ mapgroup PALLET_TOWN, 9, 10 ; 2
+ mapgroup REDS_HOUSE_1F, 4, 4 ; 3
+ mapgroup REDS_HOUSE_2F, 4, 4 ; 4
+ mapgroup BLUES_HOUSE, 4, 4 ; 5
+ mapgroup OAKS_LAB, 6, 5 ; 6
+
+ newgroup ; 14
+
+ mapgroup ROUTE_3, 9, 30 ; 1
+ mapgroup PEWTER_CITY, 18, 20 ; 2
+ mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3
+ mapgroup PEWTER_GYM, 7, 5 ; 4
+ mapgroup PEWTER_MART, 4, 6 ; 5
+ mapgroup PEWTER_POKECENTER_1F, 4, 5 ; 6
+ mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7
+ mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8
+
+ newgroup ; 15
+
+ mapgroup OLIVINE_PORT, 18, 10 ; 1
+ mapgroup VERMILION_PORT, 18, 10 ; 2
+ mapgroup FAST_SHIP_1F, 9, 16 ; 3
+ mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4
+ mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5
+ mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6
+ mapgroup FAST_SHIP_B1F, 8, 16 ; 7
+ mapgroup OLIVINE_PORT_PASSAGE, 9, 10 ; 8
+ mapgroup VERMILION_PORT_PASSAGE, 9, 10 ; 9
+ mapgroup MOUNT_MOON_SQUARE, 9, 15 ; 10
+ mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11
+ mapgroup TIN_TOWER_ROOF, 9, 10 ; 12
+
+ newgroup ; 16
+
+ mapgroup ROUTE_23, 9, 10 ; 1
+ mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2
+ mapgroup WILLS_ROOM, 9, 5 ; 3
+ mapgroup KOGAS_ROOM, 9, 5 ; 4
+ mapgroup BRUNOS_ROOM, 9, 5 ; 5
+ mapgroup KARENS_ROOM, 9, 5 ; 6
+ mapgroup LANCES_ROOM, 12, 5 ; 7
+ mapgroup HALL_OF_FAME, 7, 5 ; 8
+
+ newgroup ; 17
+
+ mapgroup ROUTE_13, 9, 30 ; 1
+ mapgroup ROUTE_14, 18, 10 ; 2
+ mapgroup ROUTE_15, 9, 20 ; 3
+ mapgroup ROUTE_18, 9, 10 ; 4
+ mapgroup FUCHSIA_CITY, 18, 20 ; 5
+ mapgroup FUCHSIA_MART, 4, 6 ; 6
+ mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7
+ mapgroup FUCHSIA_GYM, 9, 5 ; 8
+ mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup FUCHSIA_POKECENTER_1F, 4, 5 ; 10
+ mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11
+ mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12
+ mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13
+
+ newgroup ; 18
+
+ mapgroup ROUTE_8, 9, 20 ; 1
+ mapgroup ROUTE_12, 27, 10 ; 2
+ mapgroup ROUTE_10_SOUTH, 9, 10 ; 3
+ mapgroup LAVENDER_TOWN, 9, 10 ; 4
+ mapgroup LAVENDER_POKECENTER_1F, 4, 5 ; 5
+ mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6
+ mapgroup MR_FUJIS_HOUSE, 4, 5 ; 7
+ mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8
+ mapgroup LAVENDER_NAME_RATER, 4, 4 ; 9
+ mapgroup LAVENDER_MART, 4, 6 ; 10
+ mapgroup SOUL_HOUSE, 4, 5 ; 11
+ mapgroup LAV_RADIO_TOWER_1F, 4, 10 ; 12
+ mapgroup ROUTE_8_SAFFRON_GATE, 4, 5 ; 13
+ mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14
+
+ newgroup ; 19
+
+ mapgroup ROUTE_28, 9, 20 ; 1
+ mapgroup SILVER_CAVE_OUTSIDE, 18, 20 ; 2
+ mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3
+ mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4
+
+ newgroup ; 20
+
+ mapgroup POKECENTER_2F, 4, 8 ; 1
+ mapgroup TRADE_CENTER, 4, 5 ; 2
+ mapgroup COLOSSEUM, 4, 5 ; 3
+ mapgroup TIME_CAPSULE, 4, 5 ; 4
+ mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5
+ mapgroup MOBILE_BATTLE_ROOM, 4, 5 ; 6
+
+ newgroup ; 21
+
+ mapgroup ROUTE_7, 9, 10 ; 1
+ mapgroup ROUTE_16, 9, 10 ; 2
+ mapgroup ROUTE_17, 45, 10 ; 3
+ mapgroup CELADON_CITY, 18, 20 ; 4
+ mapgroup CELADON_DEPT_STORE_1F, 4, 8 ; 5
+ mapgroup CELADON_DEPT_STORE_2F, 4, 8 ; 6
+ mapgroup CELADON_DEPT_STORE_3F, 4, 8 ; 7
+ mapgroup CELADON_DEPT_STORE_4F, 4, 8 ; 8
+ mapgroup CELADON_DEPT_STORE_5F, 4, 8 ; 9
+ mapgroup CELADON_DEPT_STORE_6F, 4, 8 ; 10
+ mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11
+ mapgroup CELADON_MANSION_1F, 5, 4 ; 12
+ mapgroup CELADON_MANSION_2F, 5, 4 ; 13
+ mapgroup CELADON_MANSION_3F, 5, 4 ; 14
+ mapgroup CELADON_MANSION_ROOF, 5, 4 ; 15
+ mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16
+ mapgroup CELADON_POKECENTER_1F, 4, 5 ; 17
+ mapgroup CELADON_POKECENTER_2F_BETA, 4, 8 ; 18
+ mapgroup CELADON_GAME_CORNER, 7, 10 ; 19
+ mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20
+ mapgroup CELADON_GYM, 9, 5 ; 21
+ mapgroup CELADON_CAFE, 4, 6 ; 22
+ mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23
+ mapgroup ROUTE_16_GATE, 4, 5 ; 24
+ mapgroup ROUTE_7_SAFFRON_GATE, 4, 5 ; 25
+ mapgroup ROUTE_17_18_GATE, 4, 5 ; 26
+
+ newgroup ; 22
+
+ mapgroup ROUTE_40, 18, 10 ; 1
+ mapgroup ROUTE_41, 27, 25 ; 2
+ mapgroup CIANWOOD_CITY, 27, 15 ; 3
+ mapgroup MANIAS_HOUSE, 4, 4 ; 4
+ mapgroup CIANWOOD_GYM, 9, 5 ; 5
+ mapgroup CIANWOOD_POKECENTER_1F, 4, 5 ; 6
+ mapgroup CIANWOOD_PHARMACY, 4, 4 ; 7
+ mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8
+ mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup POKE_SEERS_HOUSE, 4, 4 ; 10
+ mapgroup BATTLE_TOWER_1F, 5, 8 ; 11
+ mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12
+ mapgroup BATTLE_TOWER_ELEVATOR, 2, 2 ; 13
+ mapgroup BATTLE_TOWER_HALLWAY, 2, 11 ; 14
+ mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15
+ mapgroup BATTLE_TOWER_OUTSIDE, 14, 10 ; 16
+
+ newgroup ; 23
+
+ mapgroup ROUTE_2, 27, 10 ; 1
+ mapgroup ROUTE_22, 9, 20 ; 2
+ mapgroup VIRIDIAN_CITY, 18, 20 ; 3
+ mapgroup VIRIDIAN_GYM, 9, 5 ; 4
+ mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5
+ mapgroup TRAINER_HOUSE_1F, 7, 5 ; 6
+ mapgroup TRAINER_HOUSE_B1F, 8, 5 ; 7
+ mapgroup VIRIDIAN_MART, 4, 6 ; 8
+ mapgroup VIRIDIAN_POKECENTER_1F, 4, 5 ; 9
+ mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10
+ mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11
+ mapgroup ROUTE_2_GATE, 4, 5 ; 12
+ mapgroup VICTORY_ROAD_GATE, 9, 10 ; 13
+
+ newgroup ; 24
+
+ mapgroup ROUTE_26, 54, 10 ; 1
+ mapgroup ROUTE_27, 9, 40 ; 2
+ mapgroup ROUTE_29, 9, 30 ; 3
+ mapgroup NEW_BARK_TOWN, 9, 10 ; 4
+ mapgroup ELMS_LAB, 6, 5 ; 5
+ mapgroup KRISS_HOUSE_1F, 4, 5 ; 6
+ mapgroup KRISS_HOUSE_2F, 3, 4 ; 7
+ mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8
+ mapgroup ELMS_HOUSE, 4, 4 ; 9
+ mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10
+ mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11
+ mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12
+ mapgroup ROUTE_29_46_GATE, 4, 5 ; 13
+
+ newgroup ; 25
+
+ mapgroup ROUTE_5, 9, 10 ; 1
+ mapgroup SAFFRON_CITY, 18, 20 ; 2
+ mapgroup FIGHTING_DOJO, 6, 5 ; 3
+ mapgroup SAFFRON_GYM, 9, 10 ; 4
+ mapgroup SAFFRON_MART, 4, 6 ; 5
+ mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6
+ mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7
+ mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8
+ mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9
+ mapgroup SILPH_CO_1F, 4, 8 ; 10
+ mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11
+ mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12
+ mapgroup ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
+ mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14
+ mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15
+
+ newgroup ; 26
+
+ mapgroup ROUTE_30, 27, 10 ; 1
+ mapgroup ROUTE_31, 9, 20 ; 2
+ mapgroup CHERRYGROVE_CITY, 9, 20 ; 3
+ mapgroup CHERRYGROVE_MART, 4, 6 ; 4
+ mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5
+ mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6
+ mapgroup GUIDE_GENTS_HOUSE, 4, 4 ; 7
+ mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8
+ mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9
+ mapgroup MR_POKEMONS_HOUSE, 4, 4 ; 10
+ mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
new file mode 100644
index 000000000..5d3f23c08
--- /dev/null
+++ b/constants/map_data_constants.asm
@@ -0,0 +1,288 @@
+GROUP_N_A EQU -1
+MAP_N_A EQU -1
+GROUP_NONE EQU 0
+MAP_NONE EQU 0
+
+; map header struct members (see maps/map_headers.asm)
+ const_def
+ const MAPHEADER_MAPHEADER2_BANK ; 0
+ const MAPHEADER_TILESET ; 1
+ const MAPHEADER_ENVIRONMENT ; 2
+ const MAPHEADER_MAPHEADER2 ; 3
+ const MAPHEADER_MAPHEADER2_HI ; 4
+ const MAPHEADER_LOCATION ; 5
+ const MAPHEADER_MUSIC ; 6
+ const MAPHEADER_PALETTE ; 7
+ const MAPHEADER_FISHGROUP ; 8
+NUM_MAPHEADER_ATTRIBUTES EQU const_value
+
+; map environments (wEnvironment)
+const_value SET 1
+ const TOWN
+ const ROUTE
+ const INDOOR
+ const CAVE
+ const ENVIRONMENT_5
+ const GATE
+ const DUNGEON
+
+; map palettes (wEnvironment)
+ const_def
+ const PALETTE_AUTO
+ const PALETTE_DAY
+ const PALETTE_NITE
+ const PALETTE_MORN
+ const PALETTE_DARK
+
+; fish groups
+ const_def
+ const FISHGROUP_NONE
+ const FISHGROUP_SHORE
+ const FISHGROUP_OCEAN
+ const FISHGROUP_LAKE
+ const FISHGROUP_POND
+ const FISHGROUP_DRATINI
+ const FISHGROUP_QWILFISH_SWARM
+ const FISHGROUP_REMORAID_SWARM
+ const FISHGROUP_GYARADOS
+ const FISHGROUP_DRATINI_2
+ const FISHGROUP_WHIRL_ISLANDS
+ const FISHGROUP_QWILFISH
+ const FISHGROUP_REMORAID
+ const FISHGROUP_QWILFISH_NO_SWARM
+
+
+; connection directions
+ const_def
+ const EAST_F
+ const WEST_F
+ const SOUTH_F
+ const NORTH_F
+
+; MapConnections
+ const_def
+ shift_const EAST
+ shift_const WEST
+ shift_const SOUTH
+ shift_const NORTH
+
+
+; object_struct members (see macros/wram.asm)
+ const_def
+ const OBJECT_SPRITE ; 00
+ const OBJECT_MAP_OBJECT_INDEX ; 01
+ const OBJECT_SPRITE_TILE ; 02
+ const OBJECT_MOVEMENTTYPE ; 03
+ const OBJECT_FLAGS1 ; 04
+ const OBJECT_FLAGS2 ; 05
+ const OBJECT_PALETTE ; 06
+ const OBJECT_DIRECTION_WALKING ; 07
+ const OBJECT_FACING ; 08
+ const OBJECT_STEP_TYPE ; 09
+ const OBJECT_STEP_DURATION ; 0a
+ const OBJECT_ACTION ; 0b
+ const OBJECT_STEP_FRAME ; 0c
+ const OBJECT_FACING_STEP ; 0d
+ const OBJECT_NEXT_TILE ; 0e
+ const OBJECT_STANDING_TILE ; 0f
+ const OBJECT_NEXT_MAP_X ; 10
+ const OBJECT_NEXT_MAP_Y ; 11
+ const OBJECT_MAP_X ; 12
+ const OBJECT_MAP_Y ; 13
+ const OBJECT_INIT_X ; 14
+ const OBJECT_INIT_Y ; 15
+ const OBJECT_RADIUS ; 16
+ const OBJECT_SPRITE_X ; 17
+ const OBJECT_SPRITE_Y ; 18
+ const OBJECT_SPRITE_X_OFFSET ; 19
+ const OBJECT_SPRITE_Y_OFFSET ; 1a
+ const OBJECT_MOVEMENT_BYTE_INDEX ; 1b
+ const OBJECT_28 ; 1c
+ const OBJECT_29 ; 1d
+ const OBJECT_30 ; 1e
+ const OBJECT_31 ; 1f
+ const OBJECT_RANGE ; 20
+; 33-39 are not used
+
+; map_object struct members (see macros/wram.asm)
+ const_def
+ const MAPOBJECT_OBJECT_STRUCT_ID ; 0
+ const MAPOBJECT_SPRITE ; 1
+ const MAPOBJECT_Y_COORD ; 2
+ const MAPOBJECT_X_COORD ; 3
+ const MAPOBJECT_MOVEMENT ; 4
+ const MAPOBJECT_RADIUS ; 5
+ const MAPOBJECT_HOUR ; 6
+ const MAPOBJECT_TIMEOFDAY ; 7
+ const MAPOBJECT_COLOR ; 8
+ const MAPOBJECT_RANGE ; 9
+ const MAPOBJECT_SCRIPT_POINTER ; a
+ const MAPOBJECT_POINTER_HI ; b
+ const MAPOBJECT_EVENT_FLAG ; c
+ const MAPOBJECT_FLAG_HI ; d
+ const MAPOBJECT_E ; unused
+ const MAPOBJECT_F ; unused
+OBJECT_LENGTH EQU const_value
+
+MAPOBJECT_SCREEN_HEIGHT EQU 11
+MAPOBJECT_SCREEN_WIDTH EQU 12
+
+; object_struct OBJECT_FACING values
+OW_DOWN EQU DOWN << 2
+OW_UP EQU UP << 2
+OW_LEFT EQU LEFT << 2
+OW_RIGHT EQU RIGHT << 2
+
+; object_struct OBJECT_FLAGS1 bit flags
+INVISIBLE EQU 0
+FIXED_FACING EQU 2
+SLIDING EQU 3
+EMOTE_OBJECT EQU 7
+
+
+; SpawnPoints indexes (see data/maps/spawn_points.asm)
+const_value = -1
+ const SPAWN_N_A
+ const SPAWN_HOME
+ const SPAWN_DEBUG
+; kanto
+ const SPAWN_PALLET
+ const SPAWN_VIRIDIAN
+ const SPAWN_PEWTER
+ const SPAWN_CERULEAN
+ const SPAWN_ROCK_TUNNEL
+ const SPAWN_VERMILION
+ const SPAWN_LAVENDER
+ const SPAWN_SAFFRON
+ const SPAWN_CELADON
+ const SPAWN_FUCHSIA
+ const SPAWN_CINNABAR
+ const SPAWN_INDIGO
+; johto
+ const SPAWN_NEW_BARK
+ const SPAWN_CHERRYGROVE
+ const SPAWN_VIOLET
+ const SPAWN_UNION_CAVE
+ const SPAWN_AZALEA
+ const SPAWN_CIANWOOD
+ const SPAWN_GOLDENROD
+ const SPAWN_OLIVINE
+ const SPAWN_ECRUTEAK
+ const SPAWN_MAHOGANY
+ const SPAWN_LAKE
+ const SPAWN_BLACKTHORN
+ const SPAWN_MT_SILVER
+ const SPAWN_FAST_SHIP
+NUM_SPAWNS EQU const_value
+
+
+; TryBGEvent arguments (see engine/events.asm)
+ const_def
+ const BGEVENT_READ
+ const BGEVENT_UP
+ const BGEVENT_DOWN
+ const BGEVENT_RIGHT
+ const BGEVENT_LEFT
+ const BGEVENT_IFSET
+ const BGEVENT_IFNOTSET
+ const BGEVENT_ITEM
+ const BGEVENT_COPY
+
+; object_event types
+; TryObjectEvent arguments (see engine/events.asm)
+ const_def
+ const OBJECTTYPE_SCRIPT
+ const OBJECTTYPE_ITEMBALL
+ const OBJECTTYPE_TRAINER
+ const OBJECTTYPE_3
+ const OBJECTTYPE_4
+ const OBJECTTYPE_5
+ const OBJECTTYPE_6
+
+
+; Emotes indexes (see data/emotes.asm)
+ const_def
+ const EMOTE_SHOCK ; 0
+ const EMOTE_QUESTION ; 1
+ const EMOTE_HAPPY ; 2
+ const EMOTE_SAD ; 3
+ const EMOTE_HEART ; 4
+ const EMOTE_BOLT ; 5
+ const EMOTE_SLEEP ; 6
+ const EMOTE_FISH ; 7
+ const EMOTE_SHADOW ; 8
+ const EMOTE_ROD ; 9
+ const EMOTE_BOULDER_DUST ; 10
+ const EMOTE_GRASS_RUSTLE ; 11
+EMOTE_MEM EQU -1
+
+; FruitTreeItems indexes (see data/items/fruit_trees.asm)
+const_value SET 1
+ const FRUITTREE_ROUTE_29 ; 01
+ const FRUITTREE_ROUTE_30_1 ; 02
+ const FRUITTREE_ROUTE_38 ; 03
+ const FRUITTREE_ROUTE_46_1 ; 04
+ const FRUITTREE_ROUTE_30_2 ; 05
+ const FRUITTREE_ROUTE_33 ; 06
+ const FRUITTREE_ROUTE_31 ; 07
+ const FRUITTREE_ROUTE_43 ; 08
+ const FRUITTREE_VIOLET_CITY ; 09
+ const FRUITTREE_ROUTE_46_2 ; 0a
+ const FRUITTREE_ROUTE_35 ; 0b
+ const FRUITTREE_ROUTE_45 ; 0c
+ const FRUITTREE_ROUTE_36 ; 0d
+ const FRUITTREE_ROUTE_26 ; 0e
+ const FRUITTREE_ROUTE_39 ; 0f
+ const FRUITTREE_ROUTE_44 ; 10
+ const FRUITTREE_ROUTE_37_1 ; 11
+ const FRUITTREE_ROUTE_37_2 ; 12
+ const FRUITTREE_ROUTE_37_3 ; 13
+ const FRUITTREE_AZALEA_TOWN ; 14
+ const FRUITTREE_ROUTE_42_1 ; 15
+ const FRUITTREE_ROUTE_42_2 ; 16
+ const FRUITTREE_ROUTE_42_3 ; 17
+ const FRUITTREE_ROUTE_11 ; 18
+ const FRUITTREE_ROUTE_2 ; 19
+ const FRUITTREE_ROUTE_1 ; 1a
+ const FRUITTREE_ROUTE_8 ; 1b
+ const FRUITTREE_PEWTER_CITY_1 ; 1c
+ const FRUITTREE_PEWTER_CITY_2 ; 1d
+ const FRUITTREE_FUCHSIA_CITY ; 1e
+NUM_FRUIT_TREES EQU const_value +- 1
+
+
+; elevator floors
+; used by `elevfloor`
+ const_def
+ const FLOOR_B4F
+ const FLOOR_B3F
+ const FLOOR_B2F
+ const FLOOR_B1F
+ const FLOOR_1F
+ const FLOOR_2F
+ const FLOOR_3F
+ const FLOOR_4F
+ const FLOOR_5F
+ const FLOOR_6F
+ const FLOOR_7F
+ const FLOOR_8F
+ const FLOOR_9F
+ const FLOOR_10F
+ const FLOOR_11F
+ const FLOOR_ROOF
+
+; command queue members
+CMDQUEUE_TYPE EQU 0
+CMDQUEUE_ADDR EQU 1
+CMDQUEUE_03 EQU 3
+CMDQUEUE_04 EQU 4
+CMDQUEUE_05 EQU 5
+CMDQUEUE_ENTRY_SIZE EQU 6
+CMDQUEUE_CAPACITY EQU 4
+
+; command queue types
+CMDQUEUE_STONETABLE EQU 2
+
+; see engine/overworld.asm
+MAX_OUTDOOR_SPRITES EQU 23
+SPRITE_GFX_LIST_CAPACITY EQU $20
diff --git a/constants/map_dimension_constants.asm b/constants/map_dimension_constants.asm
deleted file mode 100644
index be12cca02..000000000
--- a/constants/map_dimension_constants.asm
+++ /dev/null
@@ -1,488 +0,0 @@
-newgroup: macro
-const_value = const_value + 1
- enum_start 1
-endm
-
-mapgroup: macro
-;\1: map id
-;\2: height: in blocks
-;\3: width: in blocks
-GROUP_\1 EQU const_value
- enum MAP_\1
-\1_HEIGHT EQU \2
-\1_WIDTH EQU \3
-endm
-
-; map group ids
-; `newgroup` indexes are for:
-; - MapGroupPointers (see maps/map_headers.asm)
-; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
-; - MapGroupRoofs (see data/maps/mapgroup_roofs.asm)
-; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
- const_def
-
- newgroup ; 1
-
- mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1
- mapgroup OLIVINE_GYM, 8, 5 ; 2
- mapgroup OLIVINE_TIMS_HOUSE, 4, 4 ; 3
- mapgroup OLIVINE_HOUSE_BETA, 4, 4 ; 4
- mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5
- mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6
- mapgroup OLIVINE_CAFE, 4, 4 ; 7
- mapgroup OLIVINE_MART, 4, 6 ; 8
- mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9
- mapgroup ROUTE_39_BARN, 4, 4 ; 10
- mapgroup ROUTE_39_FARMHOUSE, 4, 4 ; 11
- mapgroup ROUTE_38, 9, 20 ; 12
- mapgroup ROUTE_39, 18, 10 ; 13
- mapgroup OLIVINE_CITY, 18, 20 ; 14
-
- newgroup ; 2
-
- mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1
- mapgroup MAHOGANY_GYM, 9, 5 ; 2
- mapgroup MAHOGANY_POKECENTER_1F, 4, 5 ; 3
- mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4
- mapgroup ROUTE_42, 9, 30 ; 5
- mapgroup ROUTE_44, 9, 30 ; 6
- mapgroup MAHOGANY_TOWN, 9, 10 ; 7
-
- newgroup ; 3
-
- mapgroup SPROUT_TOWER_1F, 8, 10 ; 1
- mapgroup SPROUT_TOWER_2F, 8, 10 ; 2
- mapgroup SPROUT_TOWER_3F, 8, 10 ; 3
- mapgroup TIN_TOWER_1F, 9, 10 ; 4
- mapgroup TIN_TOWER_2F, 9, 10 ; 5
- mapgroup TIN_TOWER_3F, 9, 10 ; 6
- mapgroup TIN_TOWER_4F, 9, 10 ; 7
- mapgroup TIN_TOWER_5F, 9, 10 ; 8
- mapgroup TIN_TOWER_6F, 9, 10 ; 9
- mapgroup TIN_TOWER_7F, 9, 10 ; 10
- mapgroup TIN_TOWER_8F, 9, 10 ; 11
- mapgroup TIN_TOWER_9F, 9, 10 ; 12
- mapgroup BURNED_TOWER_1F, 9, 10 ; 13
- mapgroup BURNED_TOWER_B1F, 9, 10 ; 14
- mapgroup NATIONAL_PARK, 27, 20 ; 15
- mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16
- mapgroup RADIO_TOWER_1F, 4, 9 ; 17
- mapgroup RADIO_TOWER_2F, 4, 9 ; 18
- mapgroup RADIO_TOWER_3F, 4, 9 ; 19
- mapgroup RADIO_TOWER_4F, 4, 9 ; 20
- mapgroup RADIO_TOWER_5F, 4, 9 ; 21
- mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22
- mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23
- mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24
- mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25
- mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26
- mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27
- mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28
- mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29
- mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30
- mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31
- mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32
- mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33
- mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34
- mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35
- mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36
- mapgroup UNION_CAVE_1F, 18, 10 ; 37
- mapgroup UNION_CAVE_B1F, 18, 10 ; 38
- mapgroup UNION_CAVE_B2F, 18, 10 ; 39
- mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40
- mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41
- mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42
- mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43
- mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44
- mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45
- mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46
- mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47
- mapgroup MAHOGANY_MART_1F, 4, 4 ; 48
- mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49
- mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50
- mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51
- mapgroup ILEX_FOREST, 27, 15 ; 52
- mapgroup GOLDENROD_UNDERGROUND, 18, 15 ; 53
- mapgroup GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54
- mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55
- mapgroup GOLDENROD_UNDERGROUND_WAREHOUSE, 9, 10 ; 56
- mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57
- mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58
- mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59
- mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60
- mapgroup ICE_PATH_1F, 18, 20 ; 61
- mapgroup ICE_PATH_B1F, 18, 10 ; 62
- mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63
- mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64
- mapgroup ICE_PATH_B3F, 9, 10 ; 65
- mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66
- mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67
- mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68
- mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69
- mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70
- mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71
- mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72
- mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73
- mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74
- mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75
- mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76
- mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77
- mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78
- mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79
- mapgroup DRAGONS_DEN_1F, 9, 5 ; 80
- mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81
- mapgroup DRAGON_SHRINE, 5, 5 ; 82
- mapgroup TOHJO_FALLS, 9, 15 ; 83
- mapgroup DIGLETTS_CAVE, 18, 10 ; 84
- mapgroup MOUNT_MOON, 9, 15 ; 85
- mapgroup UNDERGROUND_PATH, 14, 3 ; 86
- mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87
- mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88
- mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89
- mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90
- mapgroup VICTORY_ROAD, 36, 10 ; 91
-
- newgroup ; 4
-
- mapgroup ECRUTEAK_HOUSE, 9, 10 ; 1
- mapgroup WISE_TRIOS_ROOM, 4, 4 ; 2
- mapgroup ECRUTEAK_POKECENTER_1F, 4, 5 ; 3
- mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4
- mapgroup DANCE_THEATRE, 7, 6 ; 5
- mapgroup ECRUTEAK_MART, 4, 6 ; 6
- mapgroup ECRUTEAK_GYM, 9, 5 ; 7
- mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8
- mapgroup ECRUTEAK_CITY, 18, 20 ; 9
-
- newgroup ; 5
-
- mapgroup BLACKTHORN_GYM_1F, 9, 5 ; 1
- mapgroup BLACKTHORN_GYM_2F, 9, 5 ; 2
- mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3
- mapgroup BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4
- mapgroup BLACKTHORN_MART, 4, 6 ; 5
- mapgroup BLACKTHORN_POKECENTER_1F, 4, 5 ; 6
- mapgroup MOVE_DELETERS_HOUSE, 4, 4 ; 7
- mapgroup ROUTE_45, 45, 10 ; 8
- mapgroup ROUTE_46, 18, 10 ; 9
- mapgroup BLACKTHORN_CITY, 18, 20 ; 10
-
- newgroup ; 6
-
- mapgroup CINNABAR_POKECENTER_1F, 4, 5 ; 1
- mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2
- mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3
- mapgroup SEAFOAM_GYM, 4, 5 ; 4
- mapgroup ROUTE_19, 18, 10 ; 5
- mapgroup ROUTE_20, 9, 30 ; 6
- mapgroup ROUTE_21, 18, 10 ; 7
- mapgroup CINNABAR_ISLAND, 9, 10 ; 8
-
- newgroup ; 7
-
- mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1
- mapgroup CERULEAN_POLICE_STATION, 4, 4 ; 2
- mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3
- mapgroup CERULEAN_POKECENTER_1F, 4, 5 ; 4
- mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5
- mapgroup CERULEAN_GYM, 8, 5 ; 6
- mapgroup CERULEAN_MART, 4, 6 ; 7
- mapgroup ROUTE_10_POKECENTER_1F, 4, 5 ; 8
- mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9
- mapgroup POWER_PLANT, 9, 10 ; 10
- mapgroup BILLS_HOUSE, 4, 4 ; 11
- mapgroup ROUTE_4, 9, 20 ; 12
- mapgroup ROUTE_9, 9, 30 ; 13
- mapgroup ROUTE_10_NORTH, 9, 10 ; 14
- mapgroup ROUTE_24, 9, 10 ; 15
- mapgroup ROUTE_25, 9, 30 ; 16
- mapgroup CERULEAN_CITY, 18, 20 ; 17
-
- newgroup ; 8
-
- mapgroup AZALEA_POKECENTER_1F, 4, 5 ; 1
- mapgroup CHARCOAL_KILN, 4, 4 ; 2
- mapgroup AZALEA_MART, 4, 6 ; 3
- mapgroup KURTS_HOUSE, 4, 8 ; 4
- mapgroup AZALEA_GYM, 8, 5 ; 5
- mapgroup ROUTE_33, 9, 10 ; 6
- mapgroup AZALEA_TOWN, 9, 20 ; 7
-
- newgroup ; 9
-
- mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1
- mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2
- mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3
- mapgroup ROUTE_43_GATE, 4, 5 ; 4
- mapgroup ROUTE_43, 27, 10 ; 5
- mapgroup LAKE_OF_RAGE, 18, 20 ; 6
-
- newgroup ; 10
-
- mapgroup ROUTE_32, 45, 10 ; 1
- mapgroup ROUTE_35, 18, 10 ; 2
- mapgroup ROUTE_36, 9, 30 ; 3
- mapgroup ROUTE_37, 9, 10 ; 4
- mapgroup VIOLET_CITY, 18, 20 ; 5
- mapgroup VIOLET_MART, 4, 6 ; 6
- mapgroup VIOLET_GYM, 8, 5 ; 7
- mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
- mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
- mapgroup VIOLET_KYLES_HOUSE, 4, 4 ; 11
- mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
- mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
- mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
- mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15
- mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16
- mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17
-
- newgroup ; 11
-
- mapgroup ROUTE_34, 27, 10 ; 1
- mapgroup GOLDENROD_CITY, 18, 20 ; 2
- mapgroup GOLDENROD_GYM, 9, 10 ; 3
- mapgroup GOLDENROD_BIKE_SHOP, 4, 4 ; 4
- mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5
- mapgroup GOLDENROD_BILLS_HOUSE, 4, 4 ; 6
- mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7
- mapgroup GOLDENROD_FLOWER_SHOP, 4, 4 ; 8
- mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup GOLDENROD_NAME_RATER, 4, 4 ; 10
- mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11
- mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12
- mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13
- mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14
- mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15
- mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16
- mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17
- mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18
- mapgroup GOLDENROD_GAME_CORNER, 7, 10 ; 19
- mapgroup GOLDENROD_POKECENTER_1F, 4, 5 ; 20
- mapgroup GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21
- mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22
- mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23
- mapgroup DAY_CARE, 4, 5 ; 24
-
- newgroup ; 12
-
- mapgroup ROUTE_6, 9, 10 ; 1
- mapgroup ROUTE_11, 9, 20 ; 2
- mapgroup VERMILION_CITY, 18, 20 ; 3
- mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4
- mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5
- mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6
- mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7
- mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8
- mapgroup VERMILION_MART, 4, 6 ; 9
- mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10
- mapgroup VERMILION_GYM, 9, 5 ; 11
- mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12
- mapgroup ROUTE_6_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
-
- newgroup ; 13
-
- mapgroup ROUTE_1, 18, 10 ; 1
- mapgroup PALLET_TOWN, 9, 10 ; 2
- mapgroup REDS_HOUSE_1F, 4, 4 ; 3
- mapgroup REDS_HOUSE_2F, 4, 4 ; 4
- mapgroup BLUES_HOUSE, 4, 4 ; 5
- mapgroup OAKS_LAB, 6, 5 ; 6
-
- newgroup ; 14
-
- mapgroup ROUTE_3, 9, 30 ; 1
- mapgroup PEWTER_CITY, 18, 20 ; 2
- mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3
- mapgroup PEWTER_GYM, 7, 5 ; 4
- mapgroup PEWTER_MART, 4, 6 ; 5
- mapgroup PEWTER_POKECENTER_1F, 4, 5 ; 6
- mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7
- mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8
-
- newgroup ; 15
-
- mapgroup OLIVINE_PORT, 18, 10 ; 1
- mapgroup VERMILION_PORT, 18, 10 ; 2
- mapgroup FAST_SHIP_1F, 9, 16 ; 3
- mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4
- mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5
- mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6
- mapgroup FAST_SHIP_B1F, 8, 16 ; 7
- mapgroup OLIVINE_PORT_PASSAGE, 9, 10 ; 8
- mapgroup VERMILION_PORT_PASSAGE, 9, 10 ; 9
- mapgroup MOUNT_MOON_SQUARE, 9, 15 ; 10
- mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11
- mapgroup TIN_TOWER_ROOF, 9, 10 ; 12
-
- newgroup ; 16
-
- mapgroup ROUTE_23, 9, 10 ; 1
- mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2
- mapgroup WILLS_ROOM, 9, 5 ; 3
- mapgroup KOGAS_ROOM, 9, 5 ; 4
- mapgroup BRUNOS_ROOM, 9, 5 ; 5
- mapgroup KARENS_ROOM, 9, 5 ; 6
- mapgroup LANCES_ROOM, 12, 5 ; 7
- mapgroup HALL_OF_FAME, 7, 5 ; 8
-
- newgroup ; 17
-
- mapgroup ROUTE_13, 9, 30 ; 1
- mapgroup ROUTE_14, 18, 10 ; 2
- mapgroup ROUTE_15, 9, 20 ; 3
- mapgroup ROUTE_18, 9, 10 ; 4
- mapgroup FUCHSIA_CITY, 18, 20 ; 5
- mapgroup FUCHSIA_MART, 4, 6 ; 6
- mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7
- mapgroup FUCHSIA_GYM, 9, 5 ; 8
- mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup FUCHSIA_POKECENTER_1F, 4, 5 ; 10
- mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11
- mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12
- mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13
-
- newgroup ; 18
-
- mapgroup ROUTE_8, 9, 20 ; 1
- mapgroup ROUTE_12, 27, 10 ; 2
- mapgroup ROUTE_10_SOUTH, 9, 10 ; 3
- mapgroup LAVENDER_TOWN, 9, 10 ; 4
- mapgroup LAVENDER_POKECENTER_1F, 4, 5 ; 5
- mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6
- mapgroup MR_FUJIS_HOUSE, 4, 5 ; 7
- mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8
- mapgroup LAVENDER_NAME_RATER, 4, 4 ; 9
- mapgroup LAVENDER_MART, 4, 6 ; 10
- mapgroup SOUL_HOUSE, 4, 5 ; 11
- mapgroup LAV_RADIO_TOWER_1F, 4, 10 ; 12
- mapgroup ROUTE_8_SAFFRON_GATE, 4, 5 ; 13
- mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14
-
- newgroup ; 19
-
- mapgroup ROUTE_28, 9, 20 ; 1
- mapgroup SILVER_CAVE_OUTSIDE, 18, 20 ; 2
- mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3
- mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4
-
- newgroup ; 20
-
- mapgroup POKECENTER_2F, 4, 8 ; 1
- mapgroup TRADE_CENTER, 4, 5 ; 2
- mapgroup COLOSSEUM, 4, 5 ; 3
- mapgroup TIME_CAPSULE, 4, 5 ; 4
- mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5
- mapgroup MOBILE_BATTLE_ROOM, 4, 5 ; 6
-
- newgroup ; 21
-
- mapgroup ROUTE_7, 9, 10 ; 1
- mapgroup ROUTE_16, 9, 10 ; 2
- mapgroup ROUTE_17, 45, 10 ; 3
- mapgroup CELADON_CITY, 18, 20 ; 4
- mapgroup CELADON_DEPT_STORE_1F, 4, 8 ; 5
- mapgroup CELADON_DEPT_STORE_2F, 4, 8 ; 6
- mapgroup CELADON_DEPT_STORE_3F, 4, 8 ; 7
- mapgroup CELADON_DEPT_STORE_4F, 4, 8 ; 8
- mapgroup CELADON_DEPT_STORE_5F, 4, 8 ; 9
- mapgroup CELADON_DEPT_STORE_6F, 4, 8 ; 10
- mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11
- mapgroup CELADON_MANSION_1F, 5, 4 ; 12
- mapgroup CELADON_MANSION_2F, 5, 4 ; 13
- mapgroup CELADON_MANSION_3F, 5, 4 ; 14
- mapgroup CELADON_MANSION_ROOF, 5, 4 ; 15
- mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16
- mapgroup CELADON_POKECENTER_1F, 4, 5 ; 17
- mapgroup CELADON_POKECENTER_2F_BETA, 4, 8 ; 18
- mapgroup CELADON_GAME_CORNER, 7, 10 ; 19
- mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20
- mapgroup CELADON_GYM, 9, 5 ; 21
- mapgroup CELADON_CAFE, 4, 6 ; 22
- mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23
- mapgroup ROUTE_16_GATE, 4, 5 ; 24
- mapgroup ROUTE_7_SAFFRON_GATE, 4, 5 ; 25
- mapgroup ROUTE_17_18_GATE, 4, 5 ; 26
-
- newgroup ; 22
-
- mapgroup ROUTE_40, 18, 10 ; 1
- mapgroup ROUTE_41, 27, 25 ; 2
- mapgroup CIANWOOD_CITY, 27, 15 ; 3
- mapgroup MANIAS_HOUSE, 4, 4 ; 4
- mapgroup CIANWOOD_GYM, 9, 5 ; 5
- mapgroup CIANWOOD_POKECENTER_1F, 4, 5 ; 6
- mapgroup CIANWOOD_PHARMACY, 4, 4 ; 7
- mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8
- mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup POKE_SEERS_HOUSE, 4, 4 ; 10
- mapgroup BATTLE_TOWER_1F, 5, 8 ; 11
- mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12
- mapgroup BATTLE_TOWER_ELEVATOR, 2, 2 ; 13
- mapgroup BATTLE_TOWER_HALLWAY, 2, 11 ; 14
- mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15
- mapgroup BATTLE_TOWER_OUTSIDE, 14, 10 ; 16
-
- newgroup ; 23
-
- mapgroup ROUTE_2, 27, 10 ; 1
- mapgroup ROUTE_22, 9, 20 ; 2
- mapgroup VIRIDIAN_CITY, 18, 20 ; 3
- mapgroup VIRIDIAN_GYM, 9, 5 ; 4
- mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5
- mapgroup TRAINER_HOUSE_1F, 7, 5 ; 6
- mapgroup TRAINER_HOUSE_B1F, 8, 5 ; 7
- mapgroup VIRIDIAN_MART, 4, 6 ; 8
- mapgroup VIRIDIAN_POKECENTER_1F, 4, 5 ; 9
- mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10
- mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11
- mapgroup ROUTE_2_GATE, 4, 5 ; 12
- mapgroup VICTORY_ROAD_GATE, 9, 10 ; 13
-
- newgroup ; 24
-
- mapgroup ROUTE_26, 54, 10 ; 1
- mapgroup ROUTE_27, 9, 40 ; 2
- mapgroup ROUTE_29, 9, 30 ; 3
- mapgroup NEW_BARK_TOWN, 9, 10 ; 4
- mapgroup ELMS_LAB, 6, 5 ; 5
- mapgroup KRISS_HOUSE_1F, 4, 5 ; 6
- mapgroup KRISS_HOUSE_2F, 3, 4 ; 7
- mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8
- mapgroup ELMS_HOUSE, 4, 4 ; 9
- mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10
- mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11
- mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12
- mapgroup ROUTE_29_46_GATE, 4, 5 ; 13
-
- newgroup ; 25
-
- mapgroup ROUTE_5, 9, 10 ; 1
- mapgroup SAFFRON_CITY, 18, 20 ; 2
- mapgroup FIGHTING_DOJO, 6, 5 ; 3
- mapgroup SAFFRON_GYM, 9, 10 ; 4
- mapgroup SAFFRON_MART, 4, 6 ; 5
- mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6
- mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7
- mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8
- mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9
- mapgroup SILPH_CO_1F, 4, 8 ; 10
- mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11
- mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12
- mapgroup ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13
- mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14
- mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15
-
- newgroup ; 26
-
- mapgroup ROUTE_30, 27, 10 ; 1
- mapgroup ROUTE_31, 9, 20 ; 2
- mapgroup CHERRYGROVE_CITY, 9, 20 ; 3
- mapgroup CHERRYGROVE_MART, 4, 6 ; 4
- mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5
- mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6
- mapgroup GUIDE_GENTS_HOUSE, 4, 4 ; 7
- mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8
- mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9
- mapgroup MR_POKEMONS_HOUSE, 4, 4 ; 10
- mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index 0dcc2b941..20448f2fb 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/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
@@ -41,7 +33,7 @@ const_value SET 1
const map_save_screen ; 0c
const map_buffer_screen ; 0d
const map_load_graphics ; 0e
- const map_load_tileset_header ; 0f
+ const map_load_tileset ; 0f
const map_time_of_day ; 10
const map_palettes ; 11
const map_wildmons ; 12
@@ -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/misc_constants.asm b/constants/misc_constants.asm
index 88ae90c89..6289b610c 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -16,39 +16,13 @@ HP_GREEN EQU 0
HP_YELLOW EQU 1
HP_RED EQU 2
+; save file corruption check values
+SAVE_CHECK_VALUE_1 EQU 99
+SAVE_CHECK_VALUE_2 EQU 127
-; name lengths
-NAME_LENGTH EQU 11
-PLAYER_NAME_LENGTH EQU 8
-BOX_NAME_LENGTH EQU 9
-PKMN_NAME_LENGTH EQU 11
-MOVE_NAME_LENGTH EQU 13
-ITEM_NAME_LENGTH EQU 13
-TRAINER_CLASS_NAME_LENGTH EQU 13
-NAME_LENGTH_JAPANESE EQU 6
-
-; GetName types (see home/names.asm)
-PKMN_NAME EQU 1
-MOVE_NAME EQU 2
-; dummied out EQU 3
-ITEM_NAME EQU 4
-PARTY_OT_NAME EQU 5
-ENEMY_OT_NAME EQU 6
-TRAINER_NAME EQU 7
-; broken ptr EQU 8
-
-
-; printing text
-const_value set 5
- const PRINTNUM_MONEY_F ; 5
- const PRINTNUM_RIGHTALIGN_F ; 6
- const PRINTNUM_LEADINGZEROS_F ; 7
-
-; PrintNum arguments (see engine/printnum.asm)
-PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
-PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
-PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
-
+; hMenuReturn
+HMENURETURN_SCRIPT EQU %10000000
+HMENURETURN_ASM EQU %11111111
; DoPlayerMovement.DoStep arguments (see engine/player_movement.asm)
const_def
@@ -61,17 +35,6 @@ PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
const STEP_BACK_LEDGE ; 6
const STEP_WALK_IN_PLACE ; 7
-
-; hMenuReturn
-HMENURETURN_SCRIPT EQU %10000000
-HMENURETURN_ASM EQU %11111111
-
-
-; save file corruption check values
-SAVE_CHECK_VALUE_1 EQU 99
-SAVE_CHECK_VALUE_2 EQU 127
-
-
; time of day boundaries
MORN_HOUR EQU 4 ; 4 AM
DAY_HOUR EQU 10 ; 10 AM
@@ -79,7 +42,6 @@ NITE_HOUR EQU 18 ; 6 PM
NOON_HOUR EQU 12 ; 12 PM
MAX_HOUR EQU 24 ; 12 AM
-
; boxes
MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
@@ -91,14 +53,12 @@ NUM_HOF_TEAMS = 30
MAX_LINK_RECORD EQU 9999
-
; significant money values
START_MONEY EQU 3000
MOM_MONEY EQU 2300
MAX_MONEY EQU 999999
MAX_COINS EQU 9999
-
; ChangeHappiness arguments (see data/happiness_changes.asm)
const_value = 1
const HAPPINESS_GAINLEVEL ; 01
@@ -121,4 +81,5 @@ const_value = 1
const HAPPINESS_MASSAGE ; 12
const HAPPINESS_GAINLEVELATHOME ; 13
+; day-care
MAX_DAY_CARE_EXP EQU $500000
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index a4b1a0ba8..472ff2d0b 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/names.asm)
+; - MoveDescriptions (see data/moves/descriptions.asm)
+; - BattleAnimations (see data/moves/animations.asm)
const_def
const NO_MOVE ; 00
const POUND ; 01
diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm
new file mode 100644
index 000000000..0ca97f380
--- /dev/null
+++ b/constants/move_effect_constants.asm
@@ -0,0 +1,159 @@
+; MoveEffectsPointers indexes (see data/moves/effects_pointers.asm)
+ const_def
+ const EFFECT_NORMAL_HIT
+ const EFFECT_SLEEP
+ const EFFECT_POISON_HIT
+ const EFFECT_LEECH_HIT
+ const EFFECT_BURN_HIT
+ const EFFECT_FREEZE_HIT
+ const EFFECT_PARALYZE_HIT
+ const EFFECT_SELFDESTRUCT
+ const EFFECT_DREAM_EATER
+ const EFFECT_MIRROR_MOVE
+ const EFFECT_ATTACK_UP
+ const EFFECT_DEFENSE_UP
+ const EFFECT_SPEED_UP
+ const EFFECT_SP_ATK_UP
+ const EFFECT_SP_DEF_UP
+ const EFFECT_ACCURACY_UP
+ const EFFECT_EVASION_UP
+ const EFFECT_ALWAYS_HIT
+ const EFFECT_ATTACK_DOWN
+ const EFFECT_DEFENSE_DOWN
+ const EFFECT_SPEED_DOWN
+ const EFFECT_SP_ATK_DOWN
+ const EFFECT_SP_DEF_DOWN
+ const EFFECT_ACCURACY_DOWN
+ const EFFECT_EVASION_DOWN
+ const EFFECT_RESET_STATS
+ const EFFECT_BIDE
+ const EFFECT_RAMPAGE
+ const EFFECT_FORCE_SWITCH
+ const EFFECT_MULTI_HIT
+ const EFFECT_CONVERSION
+ const EFFECT_FLINCH_HIT
+ const EFFECT_HEAL
+ const EFFECT_TOXIC
+ const EFFECT_PAY_DAY
+ const EFFECT_LIGHT_SCREEN
+ const EFFECT_TRI_ATTACK
+ const EFFECT_UNUSED_25
+ const EFFECT_OHKO
+ const EFFECT_RAZOR_WIND
+ const EFFECT_SUPER_FANG
+ const EFFECT_STATIC_DAMAGE
+ const EFFECT_TRAP_TARGET
+ const EFFECT_UNUSED_2B
+ const EFFECT_DOUBLE_HIT
+ const EFFECT_JUMP_KICK
+ const EFFECT_MIST
+ const EFFECT_FOCUS_ENERGY
+ const EFFECT_RECOIL_HIT
+ const EFFECT_CONFUSE
+ const EFFECT_ATTACK_UP_2
+ const EFFECT_DEFENSE_UP_2
+ const EFFECT_SPEED_UP_2
+ const EFFECT_SP_ATK_UP_2
+ const EFFECT_SP_DEF_UP_2
+ const EFFECT_ACCURACY_UP_2
+ const EFFECT_EVASION_UP_2
+ const EFFECT_TRANSFORM
+ const EFFECT_ATTACK_DOWN_2
+ const EFFECT_DEFENSE_DOWN_2
+ const EFFECT_SPEED_DOWN_2
+ const EFFECT_SP_ATK_DOWN_2
+ const EFFECT_SP_DEF_DOWN_2
+ const EFFECT_ACCURACY_DOWN_2
+ const EFFECT_EVASION_DOWN_2
+ const EFFECT_REFLECT
+ const EFFECT_POISON
+ const EFFECT_PARALYZE
+ const EFFECT_ATTACK_DOWN_HIT
+ const EFFECT_DEFENSE_DOWN_HIT
+ const EFFECT_SPEED_DOWN_HIT
+ const EFFECT_SP_ATK_DOWN_HIT
+ const EFFECT_SP_DEF_DOWN_HIT
+ const EFFECT_ACCURACY_DOWN_HIT
+ const EFFECT_EVASION_DOWN_HIT
+ const EFFECT_SKY_ATTACK
+ const EFFECT_CONFUSE_HIT
+ const EFFECT_POISON_MULTI_HIT
+ const EFFECT_UNUSED_4E
+ const EFFECT_SUBSTITUTE
+ const EFFECT_HYPER_BEAM
+ const EFFECT_RAGE
+ const EFFECT_MIMIC
+ const EFFECT_METRONOME
+ const EFFECT_LEECH_SEED
+ const EFFECT_SPLASH
+ const EFFECT_DISABLE
+ const EFFECT_LEVEL_DAMAGE
+ const EFFECT_PSYWAVE
+ const EFFECT_COUNTER
+ const EFFECT_ENCORE
+ const EFFECT_PAIN_SPLIT
+ const EFFECT_SNORE
+ const EFFECT_CONVERSION2
+ const EFFECT_LOCK_ON
+ const EFFECT_SKETCH
+ const EFFECT_DEFROST_OPPONENT
+ const EFFECT_SLEEP_TALK
+ const EFFECT_DESTINY_BOND
+ const EFFECT_REVERSAL
+ const EFFECT_SPITE
+ const EFFECT_FALSE_SWIPE
+ const EFFECT_HEAL_BELL
+ const EFFECT_PRIORITY_HIT
+ const EFFECT_TRIPLE_KICK
+ const EFFECT_THIEF
+ const EFFECT_MEAN_LOOK
+ const EFFECT_NIGHTMARE
+ const EFFECT_FLAME_WHEEL
+ const EFFECT_CURSE
+ const EFFECT_UNUSED_6E
+ const EFFECT_PROTECT
+ const EFFECT_SPIKES
+ const EFFECT_FORESIGHT
+ const EFFECT_PERISH_SONG
+ const EFFECT_SANDSTORM
+ const EFFECT_ENDURE
+ const EFFECT_ROLLOUT
+ const EFFECT_SWAGGER
+ const EFFECT_FURY_CUTTER
+ const EFFECT_ATTRACT
+ const EFFECT_RETURN
+ const EFFECT_PRESENT
+ const EFFECT_FRUSTRATION
+ const EFFECT_SAFEGUARD
+ const EFFECT_SACRED_FIRE
+ const EFFECT_MAGNITUDE
+ const EFFECT_BATON_PASS
+ const EFFECT_PURSUIT
+ const EFFECT_RAPID_SPIN
+ const EFFECT_UNUSED_82
+ const EFFECT_UNUSED_83
+ const EFFECT_MORNING_SUN
+ const EFFECT_SYNTHESIS
+ const EFFECT_MOONLIGHT
+ const EFFECT_HIDDEN_POWER
+ const EFFECT_RAIN_DANCE
+ const EFFECT_SUNNY_DAY
+ const EFFECT_DEFENSE_UP_HIT
+ const EFFECT_ATTACK_UP_HIT
+ const EFFECT_ALL_UP_HIT
+ const EFFECT_FAKE_OUT
+ const EFFECT_BELLY_DRUM
+ const EFFECT_PSYCH_UP
+ const EFFECT_MIRROR_COAT
+ const EFFECT_SKULL_BASH
+ const EFFECT_TWISTER
+ const EFFECT_EARTHQUAKE
+ const EFFECT_FUTURE_SIGHT
+ const EFFECT_GUST
+ const EFFECT_STOMP
+ const EFFECT_SOLARBEAM
+ const EFFECT_THUNDER
+ const EFFECT_TELEPORT
+ const EFFECT_BEAT_UP
+ const EFFECT_FLY
+ const EFFECT_DEFENSE_CURL
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 13cb577bb..91ff79f2b 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,21 +1,22 @@
; pokemon ids
; indexes for:
-; - CryHeaders (see data/pokemon/cry_headers.asm)
+; - PokemonNames (see data/pokemon/names.asm)
; - BaseData (see data/pokemon/base_stats.asm)
-; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm)
-; - PokemonNames (see data/pokemon/pokemon_names.asm)
+; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
+; - PokemonCries (see data/pokemon/cries.asm)
+; - MonMenuIcons (see data/pokemon/menu_icons.asm)
+; - PokemonPicPointers (see data/pokemon/pic_pointers.asm)
+; - PokemonPalettes (see data/pokemon/palettes.asm)
; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
-; - AnimationPointers (see gfx/pics/anim_pointers.asm)
-; - BitmasksPointers (see gfx/pics/bitmask_pointers.asm)
-; - AnimationExtraPointers (see gfx/pics/extra_pointers.asm)
-; - FramesPointers (see gfx/pics/frame_pointers.asm)
-; - PokemonPalettes (see gfx/pics/palette_pointers.asm)
-; - PicPointers (see gfx/pics/pic_pointers.asm)
; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
-; - MonMenuIcons (see data/pokemon/menu_icons.asm)
; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
+; - AnimationPointers (see gfx/pokemon/anim_pointers.asm)
+; - AnimationExtraPointers (see gfx/pokemon/extra_pointers.asm)
+; - BitmasksPointers (see gfx/pokemon/bitmask_pointers.asm)
+; - FramesPointers (see gfx/pokemon/frame_pointers.asm)
+; - Footprints (see gfx/footprints.asm)
; - SortedPokemon (see mobile/fixed_words.asm)
const_value set 1
const BULBASAUR ; 01
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 4093adfa9..c9eb84041 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -102,49 +102,6 @@ REDMON_STRUCT_LENGTH EQU 44
PARTY_LENGTH EQU 6
-; IconPointers indexes (see gfx/icon_pointers.asm)
- const_def
- const ICON_NULL
- const ICON_POLIWAG
- const ICON_JIGGLYPUFF
- const ICON_DIGLETT
- const ICON_PIKACHU
- const ICON_STARYU
- const ICON_FISH
- const ICON_BIRD
- const ICON_MONSTER
- const ICON_CLEFAIRY
- const ICON_ODDISH
- const ICON_BUG
- const ICON_GHOST
- const ICON_LAPRAS
- const ICON_HUMANSHAPE
- const ICON_FOX
- const ICON_EQUINE
- const ICON_SHELL
- const ICON_BLOB
- const ICON_SERPENT
- const ICON_VOLTORB
- const ICON_SQUIRTLE
- const ICON_BULBASAUR
- const ICON_CHARMANDER
- const ICON_CATERPILLAR
- const ICON_UNOWN
- const ICON_GEODUDE
- const ICON_FIGHTER
- const ICON_EGG
- const ICON_JELLYFISH
- const ICON_MOTH
- const ICON_BAT
- const ICON_SNORLAX
- const ICON_HO_OH
- const ICON_LUGIA
- const ICON_GYARADOS
- const ICON_SLOWPOKE
- const ICON_SUDOWOODO
- const ICON_BIGMON
-
-
; evolution types (used in data/pokemon/evos_attacks.asm)
const_value SET 1
const EVOLVE_LEVEL
@@ -192,6 +149,18 @@ FISHSWARM_QWILFISH EQU 1
FISHSWARM_REMORAID EQU 2
+; PokeAnims indexes (see engine/pic_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..8bb2aed35
--- /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/sprite_anims/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/sprite_anims/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/sprite_anims/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_constants.asm b/constants/sprite_constants.asm
index b008ac6c2..9e4b57c27 100644
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,5 +1,5 @@
; sprite ids
-; SpriteHeaders indexes (see gfx/sprite_headers.asm)
+; OverworldSprites indexes (see gfx/sprite_data.asm)
const_def
const SPRITE_NONE ; 00
const SPRITE_CHRIS ; 01
diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm
index 77d9e3975..43a3843fc 100644
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -1,12 +1,12 @@
-; sprite_header struct members (see gfx/sprite_headers.asm)
+; overworld_sprite struct members (see gfx/sprite_data.asm)
const_def
- const SPRITEHEADER_ADDR_LO ; 0
- const SPRITEHEADER_ADDR_HI ; 1
- const SPRITEHEADER_SIZE ; 2
- const SPRITEHEADER_BANK ; 3
- const SPRITEHEADER_TYPE ; 4
- const SPRITEHEADER_PALETTE ; 5
-NUM_SPRITEHEADER_FIELDS EQU const_value
+ const SPRITEDATA_ADDR ; 0
+ const SPRITEDATA_ADDR_HI ; 1
+ const SPRITEDATA_SIZE ; 2
+ const SPRITEDATA_BANK ; 3
+ const SPRITEDATA_TYPE ; 4
+ const SPRITEDATA_PALETTE ; 5
+NUM_SPRITEDATA_FIELDS EQU const_value
; sprite types
const_value SET 1
@@ -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/std_constants.asm b/constants/std_constants.asm
index 21fb6791f..06b0b4f2d 100644
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -1,4 +1,4 @@
-; StdScripts indexes (see engine/std_scripts.asm)
+; StdScripts indexes (see engine/events/std_scripts.asm)
; also used in TileCollisionStdScripts (see data/collision_stdscripts.asm)
enum_start
enum pokecenternurse
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
new file mode 100644
index 000000000..d867c77f7
--- /dev/null
+++ b/constants/text_constants.asm
@@ -0,0 +1,41 @@
+; name lengths
+NAME_LENGTH EQU 11
+PLAYER_NAME_LENGTH EQU 8
+BOX_NAME_LENGTH EQU 9
+PKMN_NAME_LENGTH EQU 11
+MOVE_NAME_LENGTH EQU 13
+ITEM_NAME_LENGTH EQU 13
+TRAINER_CLASS_NAME_LENGTH EQU 13
+NAME_LENGTH_JAPANESE EQU 6
+
+; GetName types (see home/names.asm)
+PKMN_NAME EQU 1
+MOVE_NAME EQU 2
+; dummied out EQU 3
+ITEM_NAME EQU 4
+PARTY_OT_NAME EQU 5
+ENEMY_OT_NAME EQU 6
+TRAINER_NAME EQU 7
+; broken ptr EQU 8
+
+; see home/text.asm
+BORDER_WIDTH EQU 2
+TEXTBOX_WIDTH EQU SCREEN_WIDTH
+TEXTBOX_INNERW EQU TEXTBOX_WIDTH - BORDER_WIDTH
+TEXTBOX_HEIGHT EQU 6
+TEXTBOX_INNERH EQU TEXTBOX_HEIGHT - BORDER_WIDTH
+TEXTBOX_X EQU 0
+TEXTBOX_INNERX EQU TEXTBOX_X + 1
+TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
+TEXTBOX_INNERY EQU TEXTBOX_Y + 2
+
+; PrintNum bit flags
+const_value set 5
+ const PRINTNUM_MONEY_F ; 5
+ const PRINTNUM_RIGHTALIGN_F ; 6
+ const PRINTNUM_LEADINGZEROS_F ; 7
+
+; PrintNum arguments (see engine/printnum.asm)
+PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
+PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
+PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm
index 6a73f61d9..722de0c2b 100644
--- a/constants/tileset_constants.asm
+++ b/constants/tileset_constants.asm
@@ -1,4 +1,4 @@
-; Tilesets indexes (see tilesets/tileset_headers.asm)
+; Tilesets indexes (see tilesets/tilesets.asm)
const_value SET 1
const TILESET_JOHTO_1 ; 01
const TILESET_JOHTO_2 ; 02
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index c41a6ed58..2590ed34e 100644
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -5,12 +5,14 @@ ENDM
; trainer class ids
; `trainerclass` indexes are for:
-; - TrainerClassAttributes (see data/trainers/trainer_attributes.asm)
-; - TrainerClassDVs (see data/trainers/trainer_dvs.asm)
-; - TrainerClassNames (see data/trainers/trainer_class_names.asm)
-; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerClassNames (see data/trainers/class_names.asm)
+; - TrainerClassAttributes (see data/trainers/attributes.asm)
+; - TrainerClassDVs (see data/trainers/dvs.asm)
; - TrainerGroups (see data/trainers/party_pointers.asm)
-; - BTTrainerClassGenders (see data/trainers/gendered_trainers.asm)
+; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerPicPointers (see data/trainers/pic_pointers.asm)
+; - TrainerPalettes (see data/trainers/palettes.asm)
+; - BTTrainerClassGenders (see data/trainers/genders.asm)
; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
enum_start
CHRIS EQU __enum__
@@ -677,57 +679,3 @@ KRIS EQU __enum__
const EUSINE
NUM_TRAINER_CLASSES EQU __enum__
-
-; TrainerClassAttributes fields (see data/trainers/trainer_attributes.asm)
- const_def
- const TRNATTR_ITEM1 ; 0
- const TRNATTR_ITEM2 ; 1
- const TRNATTR_BASEMONEY ; 2
- const TRNATTR_AI_MOVE_WEIGHTS ; 3
- const TRNATTR_AI2 ; 4
- const TRNATTR_AI_ITEM_SWITCH ; 5
- const TRNATTR_AI4 ; 6
-NUM_TRAINER_ATTRIBUTES EQU const_value
-
-; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
- const_def
- const NO_AI
-const_value = 0
- shift_const AI_BASIC
- shift_const AI_SETUP
- shift_const AI_TYPES
- shift_const AI_OFFENSIVE
- shift_const AI_SMART
- shift_const AI_OPPORTUNIST
- shift_const AI_AGGRESSIVE
- shift_const AI_CAUTIOUS
- shift_const AI_STATUS
- shift_const AI_RISKY
- shift_const AI_10
- shift_const AI_11
- shift_const AI_12
- shift_const AI_13
- shift_const AI_14
- shift_const AI_15
-
-; TRNATTR_AI_ITEM_SWITCH bit flags
-CONTEXT_USE_F EQU 6
-UNKNOWN_USE_F EQU 5
-ALWAYS_USE_F EQU 4
-SWITCH_SOMETIMES_F EQU 2
-SWITCH_RARELY_F EQU 1
-SWITCH_OFTEN_F EQU 0
-
-CONTEXT_USE EQU 1 << CONTEXT_USE_F
-UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
-ALWAYS_USE EQU 1 << ALWAYS_USE_F
-SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
-SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
-SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
-
-; TrainerTypes indexes (see trainers/read_party.asm)
- const_def
- const TRAINERTYPE_NORMAL
- const TRAINERTYPE_MOVES
- const TRAINERTYPE_ITEM
- const TRAINERTYPE_ITEM_MOVES
diff --git a/constants/trainer_data_constants.asm b/constants/trainer_data_constants.asm
new file mode 100644
index 000000000..2d87d8764
--- /dev/null
+++ b/constants/trainer_data_constants.asm
@@ -0,0 +1,53 @@
+; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
+ const_def
+ const TRNATTR_ITEM1 ; 0
+ const TRNATTR_ITEM2 ; 1
+ const TRNATTR_BASEMONEY ; 2
+ const TRNATTR_AI_MOVE_WEIGHTS ; 3
+ const TRNATTR_AI2 ; 4
+ const TRNATTR_AI_ITEM_SWITCH ; 5
+ const TRNATTR_AI4 ; 6
+NUM_TRAINER_ATTRIBUTES EQU const_value
+
+; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
+ const_def
+ const NO_AI
+const_value = 0
+ shift_const AI_BASIC
+ shift_const AI_SETUP
+ shift_const AI_TYPES
+ shift_const AI_OFFENSIVE
+ shift_const AI_SMART
+ shift_const AI_OPPORTUNIST
+ shift_const AI_AGGRESSIVE
+ shift_const AI_CAUTIOUS
+ shift_const AI_STATUS
+ shift_const AI_RISKY
+ shift_const AI_10
+ shift_const AI_11
+ shift_const AI_12
+ shift_const AI_13
+ shift_const AI_14
+ shift_const AI_15
+
+; TRNATTR_AI_ITEM_SWITCH bit flags
+CONTEXT_USE_F EQU 6
+UNKNOWN_USE_F EQU 5
+ALWAYS_USE_F EQU 4
+SWITCH_SOMETIMES_F EQU 2
+SWITCH_RARELY_F EQU 1
+SWITCH_OFTEN_F EQU 0
+
+CONTEXT_USE EQU 1 << CONTEXT_USE_F
+UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
+ALWAYS_USE EQU 1 << ALWAYS_USE_F
+SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
+SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
+SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
+
+; TrainerTypes indexes (see engine/battle/read_trainer_party.asm)
+ const_def
+ const TRAINERTYPE_NORMAL
+ const TRAINERTYPE_MOVES
+ const TRAINERTYPE_ITEM
+ const TRAINERTYPE_ITEM_MOVES
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