shithub: pokecrystal

Download patch

ref: b5a8e3b3b32b2734d8fc642c77d96a0d4ef9c6d1
parent: bad9e33530af8cdc29ce5629df682fc7915bfff0
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Mon Dec 25 18:45:54 EST 2017

Follow the X_constants/X_data_constants convention

--- a/constants.asm
+++ b/constants.asm
@@ -8,11 +8,12 @@
 INCLUDE "constants/type_constants.asm"
 INCLUDE "constants/move_constants.asm"
 INCLUDE "constants/battle_constants.asm"
-INCLUDE "constants/map_dimension_constants.asm"
 INCLUDE "constants/map_constants.asm"
+INCLUDE "constants/map_data_constants.asm"
 INCLUDE "constants/map_setup_constants.asm"
 INCLUDE "constants/landmark_constants.asm"
 INCLUDE "constants/item_constants.asm"
+INCLUDE "constants/item_data_constants.asm"
 INCLUDE "constants/trainer_constants.asm"
 INCLUDE "constants/script_constants.asm"
 INCLUDE "constants/event_flags.asm"
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -273,189 +273,3 @@
 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
--- /dev/null
+++ b/constants/item_data_constants.asm
@@ -1,0 +1,190 @@
+; item_attributes 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
+
+
+; 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
--- 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)
+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
-	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
+	newgroup                                                    ;  1
 
-; map palettes (wEnvironment)
-	const_def
-	const PALETTE_AUTO
-	const PALETTE_DAY
-	const PALETTE_NITE
-	const PALETTE_MORN
-	const PALETTE_DARK
+	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
 
-; 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
+	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
 
-; connection directions
-	const_def
-	const EAST_F
-	const WEST_F
-	const SOUTH_F
-	const NORTH_F
+	newgroup                                                    ;  3
 
-; MapConnections
-	const_def
-	shift_const EAST
-	shift_const WEST
-	shift_const SOUTH
-	shift_const NORTH
+	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
 
-; 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
+	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
 
-; 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
+	newgroup                                                    ;  5
 
-MAPOBJECT_SCREEN_HEIGHT EQU 11
-MAPOBJECT_SCREEN_WIDTH EQU 12
+	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
 
-; 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
+	newgroup                                                    ;  6
 
-; object_struct OBJECT_FLAGS1 bit flags
-INVISIBLE    EQU 0
-FIXED_FACING EQU 2
-SLIDING      EQU 3
-EMOTE_OBJECT EQU 7
+	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
 
-; 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
+	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
 
-; 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
+	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
 
-; 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                                                    ;  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
 
-; 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
+	newgroup                                                    ; 10
 
-; 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
+	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
 
-; 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
+	newgroup                                                    ; 11
 
-; 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
+	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
 
-; command queue types
-CMDQUEUE_STONETABLE EQU 2
+	newgroup                                                    ; 12
 
-; see engine/overworld.asm
-MAX_OUTDOOR_SPRITES EQU 23
-SPRITE_GFX_LIST_CAPACITY EQU $20
+	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
--- /dev/null
+++ b/constants/map_data_constants.asm
@@ -1,0 +1,287 @@
+GROUP_N_A  EQU -1
+MAP_N_A    EQU -1
+GROUP_NONE EQU 0
+MAP_NONE   EQU 0
+
+; 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
+
+; 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
+
+
+; 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
--- a/constants/map_dimension_constants.asm
+++ /dev/null
@@ -1,488 +1,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
--- a/data/maps/environment_colors.asm
+++ b/data/maps/environment_colors.asm
@@ -1,5 +1,5 @@
 EnvironmentColorsPointers:
-; entries correspond to environment constants (see constants/map_constants.asm)
+; entries correspond to environment constants (see constants/map_data_constants.asm)
 	dw .OutdoorColors ; unused
 	dw .OutdoorColors ; TOWN
 	dw .OutdoorColors ; ROUTE