summaryrefslogtreecommitdiff
path: root/include/constants
diff options
context:
space:
mode:
Diffstat (limited to 'include/constants')
-rw-r--r--include/constants/battle.h2
-rw-r--r--include/constants/coins.h6
-rw-r--r--include/constants/easy_chat.h17
-rw-r--r--include/constants/field_effects.h2
-rw-r--r--include/constants/field_tasks.h13
-rw-r--r--include/constants/flags.h4
-rw-r--r--include/constants/global.h2
-rw-r--r--include/constants/layouts.h144
-rw-r--r--include/constants/map_groups.h40
-rw-r--r--include/constants/metatile_labels.h57
-rw-r--r--include/constants/party_menu.h1
-rw-r--r--include/constants/species.h1145
-rw-r--r--include/constants/trainer_tower.h46
-rw-r--r--include/constants/union_room.h45
-rw-r--r--include/constants/weather.h2
15 files changed, 831 insertions, 695 deletions
diff --git a/include/constants/battle.h b/include/constants/battle.h
index 63be37936..a80038f2c 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -71,7 +71,7 @@
#define BATTLE_TYPE_x800000 0x800000
#define BATTLE_TYPE_RECORDED 0x1000000
#define BATTLE_TYPE_x2000000 0x2000000
-#define BATTLE_TYPE_TRAINER_HILL 0x4000000
+#define BATTLE_TYPE_x4000000 0x4000000
#define BATTLE_TYPE_SECRET_BASE 0x8000000
#define BATTLE_TYPE_GROUDON 0x10000000
#define BATTLE_TYPE_KYOGRE 0x20000000
diff --git a/include/constants/coins.h b/include/constants/coins.h
new file mode 100644
index 000000000..3ae3bb23f
--- /dev/null
+++ b/include/constants/coins.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CONSTANTS_COINS_H
+#define GUARD_CONSTANTS_COINS_H
+
+#define MAX_COINS 9999
+
+#endif // GUARD_CONSTANTS_COINS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 4ef90ed60..7261365c2 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -6,22 +6,7 @@
#define EASY_CHAT_TYPE_BATTLE_WON 2
#define EASY_CHAT_TYPE_BATTLE_LOST 3
#define EASY_CHAT_TYPE_MAIL 4
-#define EASY_CHAT_TYPE_INTERVIEW 5
-#define EASY_CHAT_TYPE_BARD_SONG 6
-#define EASY_CHAT_TYPE_FAN_CLUB 7
-#define EASY_CHAT_TYPE_UNK_8 8
-#define EASY_CHAT_TYPE_TRENDY_PHRASE 9
-#define EASY_CHAT_TYPE_GABBY_AND_TY 10
-#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11
-#define EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW 12
-#define EASY_CHAT_TYPE_GOOD_SAYING 13
-#define EASY_CHAT_TYPE_FAN_QUESTION 14
-#define EASY_CHAT_TYPE_QUIZ_ANSWER 15
-#define EASY_CHAT_TYPE_QUIZ_QUESTION 16
-#define EASY_CHAT_TYPE_QUIZ_SET_QUESTION 17
-#define EASY_CHAT_TYPE_QUIZ_SET_ANSWER 18
-#define EASY_CHAT_TYPE_APPRENTICE 19
-#define EASY_CHAT_TYPE_QUESTIONNAIRE 20
+#define EASY_CHAT_TYPE_QUESTIONNAIRE 14
#define EC_GROUP_POKEMON_2 0x0
#define EC_GROUP_TRAINER 0x1
diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h
index 3ed7d8ce2..1fd6777f0 100644
--- a/include/constants/field_effects.h
+++ b/include/constants/field_effects.h
@@ -65,7 +65,7 @@
#define FLDEFF_PCTURN_ON 61
#define FLDEFF_HALL_OF_FAME_RECORD 62
#define FLDEFF_USE_TELEPORT 63
-#define FLDEFF_UNK_40 64
+#define FLDEFF_UNK_40 64 // TODO: game corner smile icon?
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
#define FLDEFF_UNK_42 66 // TODO: related to trainer see
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
diff --git a/include/constants/field_tasks.h b/include/constants/field_tasks.h
new file mode 100644
index 000000000..31edb6ffe
--- /dev/null
+++ b/include/constants/field_tasks.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CONSTANTS_FIELD_TASKS_H
+#define GUARD_CONSTANTS_FIELD_TASKS_H
+
+#define STEP_CB_DUMMY 0
+#define STEP_CB_ASH 1 // Unused
+#define STEP_CB_FORTREE_BRIDGE 2 // Unused, dummied
+#define STEP_CB_PACIFIDLOG_BRIDGE 3 // Unused, dummied
+#define STEP_CB_ICE 4
+#define STEP_CB_TRUCK 5 // Unused, dummied
+#define STEP_CB_SECRET_BASE 6 // Unused, dummied
+#define STEP_CB_CRACKED_FLOOR 7 // Unused
+
+#endif // GUARD_CONSTANTS_FIELD_TASKS_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 26ffa8a7c..7555f3c6b 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1046,7 +1046,7 @@
#define HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 23
#define HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 24
#define HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 25
-#define HIDDEN_ITEM_SAFFRON_CITY_HOUSE1_2F_NUGGET 26
+#define HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET 26
#define HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 27
#define HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 28
#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 29
@@ -1415,7 +1415,7 @@
#define FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST (SYS_FLAGS + 0xB7)
#define FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE (SYS_FLAGS + 0xB8)
#define FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE (SYS_FLAGS + 0xB9)
-#define FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY (SYS_FLAGS + 0xBA)
+#define FLAG_WORLD_MAP_TRAINER_TOWER_LOBBY (SYS_FLAGS + 0xBA)
#define FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F (SYS_FLAGS + 0xBB)
#define FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE (SYS_FLAGS + 0xBC)
#define FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH (SYS_FLAGS + 0xBD)
diff --git a/include/constants/global.h b/include/constants/global.h
index 7f3c80bb4..ae9a0da3b 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -34,6 +34,8 @@
#define QUEST_LOG_SCENE_COUNT 4
+#define NUM_TOWER_CHALLENGE_TYPES 4
+
#define MALE 0
#define FEMALE 1
#define GENDER_COUNT 2
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
index 657d531e8..431ca198a 100644
--- a/include/constants/layouts.h
+++ b/include/constants/layouts.h
@@ -4,7 +4,7 @@
#define LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_1F 1
#define LAYOUT_PALLET_TOWN_PLAYERS_HOUSE_2F 2
#define LAYOUT_PALLET_TOWN_GARYS_HOUSE 3
-#define LAYOUT_UNUSED_LAYOUT_82D54D8 4
+#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 4
#define LAYOUT_PALLET_TOWN_PROFESSOR_OAKS_LAB 5
#define LAYOUT_HOUSE1 6
#define LAYOUT_HOUSE2 7
@@ -14,53 +14,53 @@
#define LAYOUT_HOUSE3 11
#define LAYOUT_CERULEAN_CITY_GYM 12
#define LAYOUT_HOUSE4 13
-#define LAYOUT_UNUSED_LAYOUT_82D6144 14
+#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 14
#define LAYOUT_CELADON_CITY_GYM 15
-#define LAYOUT_UNUSED_LAYOUT_82D6490 16
+#define LAYOUT_RS_POKEMON_CENTER_1F 16
#define LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE 17
-#define LAYOUT_UNUSED_LAYOUT_82D6654 18
-#define LAYOUT_UNUSED_LAYOUT_82D672C 19
+#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 18
+#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 19
#define LAYOUT_FUCHSIA_CITY_GYM 20
#define LAYOUT_HOUSE5 21
-#define LAYOUT_UNUSED_LAYOUT_82D6C34 24
+#define LAYOUT_UNUSED1 24
#define LAYOUT_VERMILION_CITY_GYM 25
#define LAYOUT_CERULEAN_CITY_BIKE_SHOP 26
#define LAYOUT_CELADON_CITY_GAME_CORNER 27
#define LAYOUT_PEWTER_CITY_GYM 28
#define LAYOUT_FOUR_ISLAND_LORELEIS_HOUSE 30
#define LAYOUT_THREE_ISLAND_HOUSE1 31
-#define LAYOUT_UNUSED_LAYOUT_82D75F0 32
-#define LAYOUT_UNUSED_LAYOUT_82D7674 33
+#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 32
+#define LAYOUT_FORTREE_CITY_HOUSE1 33
#define LAYOUT_SAFFRON_CITY_GYM 34
-#define LAYOUT_UNUSED_LAYOUT_82D7CC8 35
+#define LAYOUT_FORTREE_CITY_HOUSE2 35
#define LAYOUT_CINNABAR_ISLAND_GYM 36
#define LAYOUT_VIRIDIAN_CITY_GYM 37
-#define LAYOUT_UNUSED_LAYOUT_82D88C8 46
+#define LAYOUT_RS_SAFARI_ZONE_ENTRANCE 46
#define LAYOUT_BATTLE_COLOSSEUM_2P 47
#define LAYOUT_TRADE_CENTER 48
#define LAYOUT_RECORD_CENTER 49
#define LAYOUT_BATTLE_COLOSSEUM_4P 50
#define LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 51
-#define LAYOUT_UNUSED_LAYOUT_82D9B24 52
-#define LAYOUT_UNUSED_LAYOUT_82DA7C8 53
-#define LAYOUT_UNUSED_LAYOUT_82DB46C 54
-#define LAYOUT_UNUSED_LAYOUT_82DB4F0 55
-#define LAYOUT_UNUSED_LAYOUT_82DBBE0 57
-#define LAYOUT_UNUSED_LAYOUT_82DBDD8 62
-#define LAYOUT_UNUSED_LAYOUT_82DBFB8 63
-#define LAYOUT_UNUSED_LAYOUT_82DC4EC 64
-#define LAYOUT_UNUSED_LAYOUT_82DC60C 65
-#define LAYOUT_UNUSED_LAYOUT_82DC72C 66
-#define LAYOUT_UNUSED_LAYOUT_82DC84C 67
-#define LAYOUT_UNUSED_LAYOUT_82DCA70 68
-#define LAYOUT_UNUSED_LAYOUT_82DCB44 69
-#define LAYOUT_UNUSED_LAYOUT_82DCC40 70
-#define LAYOUT_UNUSED_LAYOUT_82DCCD4 71
-#define LAYOUT_UNUSED_LAYOUT_82DCD68 72
-#define LAYOUT_UNUSED_LAYOUT_82DCDFC 73
-#define LAYOUT_UNUSED_LAYOUT_82DCF00 74
-#define LAYOUT_UNUSED_LAYOUT_82DD004 75
-#define LAYOUT_UNUSED_LAYOUT_82DD0DC 77
+#define LAYOUT_RS_SAFARI_ZONE_NORTHEAST 52
+#define LAYOUT_RS_SAFARI_ZONE_SOUTHWEST 53
+#define LAYOUT_RS_SAFARI_ZONE_SOUTHEAST 54
+#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 55
+#define LAYOUT_RS_BATTLE_TOWER 57
+#define LAYOUT_SS_TIDAL_CORRIDOR 62
+#define LAYOUT_SS_TIDAL_LOWER_DECK 63
+#define LAYOUT_SS_TIDAL_ROOMS 64
+#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 65
+#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 66
+#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 67
+#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 68
+#define LAYOUT_MOSSDEEP_CITY_EREADER_TRAINER_HOUSE_1F 69
+#define LAYOUT_MOSSDEEP_CITY_EREADER_TRAINER_HOUSE_2F 70
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 71
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 72
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 73
+#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 74
+#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 75
+#define LAYOUT_RS_SAFARI_ZONE_REST_HOUSE 77
#define LAYOUT_PALLET_TOWN 78
#define LAYOUT_VIRIDIAN_CITY 79
#define LAYOUT_PEWTER_CITY 80
@@ -71,7 +71,7 @@
#define LAYOUT_FUCHSIA_CITY 85
#define LAYOUT_CINNABAR_ISLAND 86
#define LAYOUT_INDIGO_PLATEAU_EXTERIOR 87
-#define LAYOUT_SAFFRON_CITY_CLASSIC 88
+#define LAYOUT_SAFFRON_CITY_CONNECTION 88
#define LAYOUT_ROUTE1 89
#define LAYOUT_ROUTE2 90
#define LAYOUT_ROUTE3 91
@@ -208,8 +208,8 @@
#define LAYOUT_ROUTE16_NORTH_ENTRANCE_1F 223
#define LAYOUT_ENTRANCE_1F 224
#define LAYOUT_ROCKET_HIDEOUT_ELEVATOR 225
-#define LAYOUT_SAFFRON_CITY_HOUSE1_1F 226
-#define LAYOUT_SAFFRON_CITY_HOUSE1_2F 227
+#define LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_1F 226
+#define LAYOUT_SAFFRON_CITY_COPYCATS_HOUSE_2F 227
#define LAYOUT_SAFFRON_CITY_DOJO 228
#define LAYOUT_SILPH_CO_ELEVATOR 229
#define LAYOUT_ONE_ISLAND 230
@@ -224,10 +224,10 @@
#define LAYOUT_TWO_ISLAND_CAPE_BRINK 239
#define LAYOUT_THREE_ISLAND_BOND_BRIDGE 240
#define LAYOUT_THREE_ISLAND_PORT 241
-#define LAYOUT_UNKNOWN_MAP_03_50 242
-#define LAYOUT_UNKNOWN_MAP_03_51 243
-#define LAYOUT_UNKNOWN_MAP_03_52 244
-#define LAYOUT_UNKNOWN_MAP_03_53 245
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_6 242
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_7 243
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_8 244
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_9 245
#define LAYOUT_FIVE_ISLAND_RESORT_GORGEOUS 246
#define LAYOUT_FIVE_ISLAND_WATER_LABYRINTH 247
#define LAYOUT_FIVE_ISLAND_MEADOW 248
@@ -240,17 +240,17 @@
#define LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE 255
#define LAYOUT_SEVEN_ISLAND_SEVAULT_CANYON 256
#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS 257
-#define LAYOUT_UNUSED_LAYOUT_833614C 258
-#define LAYOUT_UNUSED_LAYOUT_83377F0 259
-#define LAYOUT_UNUSED_LAYOUT_8338354 260
-#define LAYOUT_UNUSED_LAYOUT_8338738 261
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_22 258
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_23_EAST 259
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_23_WEST 260
+#define LAYOUT_PROTOTYPE_SEVII_ISLE_24 261
#define LAYOUT_UNION_ROOM 262
#define LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 263
-#define LAYOUT_UNUSED_LAYOUT_8338B4C 264
+#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1_DOOR_OPEN 264
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2 265
#define LAYOUT_VIRIDIAN_CITY_HOUSE2 266
-#define LAYOUT_UNUSED_LAYOUT_8338E90 267
-#define LAYOUT_UNUSED_LAYOUT_833902C 268
+#define LAYOUT_CELADON_CITY_RESTAURANT_DUPLICATE 267
+#define LAYOUT_CELADON_CITY_HOTEL_DUPLICATE 268
#define LAYOUT_MT_EMBER_RUBY_PATH_B4F 269
#define LAYOUT_THREE_ISLAND_BERRY_FOREST 270
#define LAYOUT_ONE_ISLAND_POKEMON_CENTER_1F 271
@@ -279,17 +279,17 @@
#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_1F 294
#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_B1F 295
#define LAYOUT_FOUR_ISLAND_ICEFALL_CAVE_BACK 296
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY 297
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F 298
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_2F 299
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_3F 300
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_4F 301
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_5F 302
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_6F 303
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_7F 304
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_8F 305
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ROOF 306
-#define LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR 307
+#define LAYOUT_TRAINER_TOWER_LOBBY 297
+#define LAYOUT_TRAINER_TOWER_1F 298
+#define LAYOUT_TRAINER_TOWER_2F 299
+#define LAYOUT_TRAINER_TOWER_3F 300
+#define LAYOUT_TRAINER_TOWER_4F 301
+#define LAYOUT_TRAINER_TOWER_5F 302
+#define LAYOUT_TRAINER_TOWER_6F 303
+#define LAYOUT_TRAINER_TOWER_7F 304
+#define LAYOUT_TRAINER_TOWER_8F 305
+#define LAYOUT_TRAINER_TOWER_ROOF 306
+#define LAYOUT_TRAINER_TOWER_ELEVATOR 307
#define LAYOUT_CERULEAN_CITY_HOUSE5 308
#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_1F 309
#define LAYOUT_SIX_ISLAND_DOTTED_HOLE_B1F 310
@@ -301,7 +301,7 @@
#define LAYOUT_ONE_ISLAND_POKEMON_CENTER_2F 316
#define LAYOUT_SIX_ISLAND_PATTERN_BUSH 317
#define LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL 318
-#define LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL_2 319
+#define LAYOUT_THREE_ISLAND_DUNSPARCE_TUNNEL_DUG_OUT 319
#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ENTRANCE 320
#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM1 321
#define LAYOUT_FIVE_ISLAND_LOST_CAVE_ROOM2 322
@@ -348,22 +348,22 @@
#define LAYOUT_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER 363
#define LAYOUT_NAVEL_ROCK_B1F 364
#define LAYOUT_NAVEL_ROCK_FORK 365
-#define LAYOUT_UNUSED_LAYOUT_834BC2C 366
-#define LAYOUT_UNUSED_LAYOUT_834BEB4 367
-#define LAYOUT_UNUSED_LAYOUT_834C13C 368
-#define LAYOUT_UNUSED_LAYOUT_834C3C4 369
-#define LAYOUT_UNUSED_LAYOUT_834C64C 370
-#define LAYOUT_UNUSED_LAYOUT_834C8D4 371
-#define LAYOUT_UNUSED_LAYOUT_834CB5C 372
-#define LAYOUT_UNUSED_LAYOUT_834CDE4 373
-#define LAYOUT_UNUSED_LAYOUT_834D06C 374
-#define LAYOUT_UNUSED_LAYOUT_834D2F4 375
-#define LAYOUT_UNUSED_LAYOUT_834D57C 376
-#define LAYOUT_UNUSED_LAYOUT_834D804 377
-#define LAYOUT_UNUSED_LAYOUT_834DA8C 378
-#define LAYOUT_UNUSED_LAYOUT_834DD14 379
-#define LAYOUT_UNUSED_LAYOUT_834DF9C 380
-#define LAYOUT_UNUSED_LAYOUT_834E224 381
+#define LAYOUT_TRAINER_TOWER_1F_DOUBLES 366
+#define LAYOUT_TRAINER_TOWER_2F_DOUBLES 367
+#define LAYOUT_TRAINER_TOWER_3F_DOUBLES 368
+#define LAYOUT_TRAINER_TOWER_4F_DOUBLES 369
+#define LAYOUT_TRAINER_TOWER_5F_DOUBLES 370
+#define LAYOUT_TRAINER_TOWER_6F_DOUBLES 371
+#define LAYOUT_TRAINER_TOWER_7F_DOUBLES 372
+#define LAYOUT_TRAINER_TOWER_8F_DOUBLES 373
+#define LAYOUT_TRAINER_TOWER_1F_KNOCKOUT 374
+#define LAYOUT_TRAINER_TOWER_2F_KNOCKOUT 375
+#define LAYOUT_TRAINER_TOWER_3F_KNOCKOUT 376
+#define LAYOUT_TRAINER_TOWER_4F_KNOCKOUT 377
+#define LAYOUT_TRAINER_TOWER_5F_KNOCKOUT 378
+#define LAYOUT_TRAINER_TOWER_6F_KNOCKOUT 379
+#define LAYOUT_TRAINER_TOWER_7F_KNOCKOUT 380
+#define LAYOUT_TRAINER_TOWER_8F_KNOCKOUT 381
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1 382
#define LAYOUT_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA 383
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
index 0cc1c27fb..27e74b337 100644
--- a/include/constants/map_groups.h
+++ b/include/constants/map_groups.h
@@ -135,17 +135,17 @@
// Map Group 2
#define MAP_NAVEL_ROCK_EXTERIOR (0 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_1F (1 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_2F (2 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_3F (3 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_4F (4 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_5F (5 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_6F (6 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_7F (7 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_8F (8 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ROOF (9 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY (10 | (2 << 8))
-#define MAP_SEVEN_ISLAND_TRAINER_TOWER_ELEVATOR (11 | (2 << 8))
+#define MAP_TRAINER_TOWER_1F (1 | (2 << 8))
+#define MAP_TRAINER_TOWER_2F (2 | (2 << 8))
+#define MAP_TRAINER_TOWER_3F (3 | (2 << 8))
+#define MAP_TRAINER_TOWER_4F (4 | (2 << 8))
+#define MAP_TRAINER_TOWER_5F (5 | (2 << 8))
+#define MAP_TRAINER_TOWER_6F (6 | (2 << 8))
+#define MAP_TRAINER_TOWER_7F (7 | (2 << 8))
+#define MAP_TRAINER_TOWER_8F (8 | (2 << 8))
+#define MAP_TRAINER_TOWER_ROOF (9 | (2 << 8))
+#define MAP_TRAINER_TOWER_LOBBY (10 | (2 << 8))
+#define MAP_TRAINER_TOWER_ELEVATOR (11 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE (12 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM1 (13 | (2 << 8))
#define MAP_FIVE_ISLAND_LOST_CAVE_ROOM2 (14 | (2 << 8))
@@ -207,7 +207,7 @@
#define MAP_CINNABAR_ISLAND (8 | (3 << 8))
#define MAP_INDIGO_PLATEAU_EXTERIOR (9 | (3 << 8))
#define MAP_SAFFRON_CITY (10 | (3 << 8))
-#define MAP_SAFFRON_CITY_CLASSIC (11 | (3 << 8))
+#define MAP_SAFFRON_CITY_CONNECTION (11 | (3 << 8))
#define MAP_ONE_ISLAND (12 | (3 << 8))
#define MAP_TWO_ISLAND (13 | (3 << 8))
#define MAP_THREE_ISLAND (14 | (3 << 8))
@@ -246,10 +246,10 @@
#define MAP_TWO_ISLAND_CAPE_BRINK (47 | (3 << 8))
#define MAP_THREE_ISLAND_BOND_BRIDGE (48 | (3 << 8))
#define MAP_THREE_ISLAND_PORT (49 | (3 << 8))
-#define MAP_UNKNOWN_MAP_03_50 (50 | (3 << 8))
-#define MAP_UNKNOWN_MAP_03_51 (51 | (3 << 8))
-#define MAP_UNKNOWN_MAP_03_52 (52 | (3 << 8))
-#define MAP_UNKNOWN_MAP_03_53 (53 | (3 << 8))
+#define MAP_PROTOTYPE_SEVII_ISLE_6 (50 | (3 << 8))
+#define MAP_PROTOTYPE_SEVII_ISLE_7 (51 | (3 << 8))
+#define MAP_PROTOTYPE_SEVII_ISLE_8 (52 | (3 << 8))
+#define MAP_PROTOTYPE_SEVII_ISLE_9 (53 | (3 << 8))
#define MAP_FIVE_ISLAND_RESORT_GORGEOUS (54 | (3 << 8))
#define MAP_FIVE_ISLAND_WATER_LABYRINTH (55 | (3 << 8))
#define MAP_FIVE_ISLAND_MEADOW (56 | (3 << 8))
@@ -366,15 +366,15 @@
#define MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F (1 | (13 << 8))
// Map Group 14
-#define MAP_SAFFRON_CITY_HOUSE1_1F (0 | (14 << 8))
-#define MAP_SAFFRON_CITY_HOUSE1_2F (1 | (14 << 8))
+#define MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F (0 | (14 << 8))
+#define MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F (1 | (14 << 8))
#define MAP_SAFFRON_CITY_DOJO (2 | (14 << 8))
#define MAP_SAFFRON_CITY_GYM (3 | (14 << 8))
-#define MAP_SAFFRON_CITY_HOUSE2 (4 | (14 << 8))
+#define MAP_SAFFRON_CITY_HOUSE (4 | (14 << 8))
#define MAP_SAFFRON_CITY_MART (5 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_1F (6 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_CENTER_2F (7 | (14 << 8))
-#define MAP_SAFFRON_CITY_HOUSE3 (8 | (14 << 8))
+#define MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE (8 | (14 << 8))
#define MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (14 << 8))
// Map Group 15
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index 8726113f4..b71e7d08f 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -1,14 +1,14 @@
#ifndef GUARD_METATILE_LABELS_H
#define GUARD_METATILE_LABELS_H
-// General
+// gTileset_General
#define METATILE_General_CalmWater 0x12B
-// PokeMart
-#define METATILE_Shop_CounterMid_Top 0x2BF
-#define METATILE_Shop_CounterMid_Bottom 0x2C0
+// gTileset_Mart
+#define METATILE_Mart_CounterMid_Top 0x2BF
+#define METATILE_Mart_CounterMid_Bottom 0x2C0
-// Vermilion Gym
+// gTileset_VermilionGym
#define METATILE_VermilionGym_Floor 0x281
#define METATILE_VermilionGym_Beam_MidTop 0x285
#define METATILE_VermilionGym_Beam_MidBottom 0x28D
@@ -39,7 +39,16 @@
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6
#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7
-// Pokemon Mansion
+// gTileset_GameCorner
+#define METATILE_GameCorner_Floor_ShadeFull 0x292
+#define METATILE_GameCorner_Floor_StairsTop 0x29D
+#define METATILE_GameCorner_StairsTop 0x29E
+#define METATILE_GameCorner_StairsBottom 0x29F
+#define METATILE_GameCorner_PurpleWall_Floor 0x2CF
+#define METATILE_GameCorner_PurpleWall_StairsTop 0x2A6
+#define METATILE_GameCorner_PurpleWall_stairsBottom 0x2A7
+
+// gTileset_PokemonMansion
#define METATILE_PokemonMansion_Floor 0x284
#define METATILE_PokemonMansion_Floor_ShadeFull 0x285
#define METATILE_PokemonMansion_BasementFloor 0x286
@@ -72,7 +81,19 @@
#define METATILE_PokemonMansion_Statue_RedEyes_Shade 0x34E
#define METATILE_PokemonMansion_Statue_RedEyes_Basement 0x34F
-// Cinnabar Gym
+// gTileset_SilphCo TODO: Bring below metatile labels in line with new tileset name
+#define METATILE_Hideout_Arrow_Up 0x2A0
+#define METATILE_Hideout_Arrow_Left 0x2A1
+#define METATILE_Hideout_Arrow_Down 0x2A8
+#define METATILE_Hideout_Arrow_RIght 0x2A9
+#define METATILE_Hideout_Barrier_TopLeft_Floor 0x2CE
+#define METATILE_Hideout_Barrier_TopRight_Floor 0x2CF
+#define METATILE_Hideout_Barrier_BottomLeft 0x2D6
+#define METATILE_Hideout_Barrier_BottomRight 0x2D7
+#define METATILE_Hideout_Floor 0x281
+#define METATILE_Hideout_Floor_ShadeFull 0x282
+
+// gTileset_CinnabarGym
#define METATILE_CinnabarGym_Floor 0x281
#define METATILE_CinnabarGym_Floor_ShadeDiagonal 0x282
#define METATILE_CinnabarGym_Floor_ShadeFull 0x289
@@ -82,8 +103,28 @@
#define METATILE_CinnabarGym_Floor_WallLeftEdge 0x2CF
#define METATILE_CinnabarGym_Wall_RetractedBarrier 0x2D1
-// gTileset_82D504C. Below metatile probably needs generic name
+// gTileset_PokemonLeague
+#define METATILE_PokemonLeague_Door_Top_Open 0x28E
+#define METATILE_PokemonLeague_Door_Mid_Open 0x296
+#define METATILE_PokemonLeague_Entry_TopLeft_Closed 0x29D
+#define METATILE_PokemonLeague_Entry_TopMid_Closed 0x29E
+#define METATILE_PokemonLeague_Entry_TopRight_Closed 0x29F
+#define METATILE_PokemonLeague_Entry_BottomLeft_Closed 0x2A5
+#define METATILE_PokemonLeague_Entry_BottomMid_Closed 0x2A6
+#define METATILE_PokemonLeague_Entry_BottomRight_Closed 0x2A7
+#define METATILE_PokemonLeague_Floor_ShadeFull_Lance 0x311
+
+// gTileset_MtEmber
#define METATILE_MtEmber_CaveEntrance 0x346
+// gTileset_Cave
+#define METATILE_Cave_Floor_Ledge_Top 0x2D1
+#define METATILE_Cave_Floor_Ledge_Bottom 0x2E1
+#define METATILE_Cave_RockBarrier_Top 0x307
+#define METATILE_Cave_RockBarrier_Bottom 0x317
+
+// gTileset_TrainerTower
+#define METATILE_TrainerTower_Floor_ShadeBottomLeft 0x287
+#define METATILE_TrainerTower_CounterBarrier 0x2B4
#endif // GUARD_METATILE_LABELS_H
diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h
index 28ce39cd3..0c958ccc5 100644
--- a/include/constants/party_menu.h
+++ b/include/constants/party_menu.h
@@ -64,7 +64,6 @@
#define PARTY_MENU_TYPE_UNION_ROOM_TRADE 9 // trading board
#define PARTY_MENU_TYPE_SPIN_TRADE 10 // Unused beta for Gen IV's Spin Trade
#define PARTY_MENU_TYPE_MINIGAME 11
-#define PARTY_MENU_TYPE_STORE_PYRAMID_HELD_ITEMS 12
#define PARTY_ACTION_CHOOSE_MON 0
#define PARTY_ACTION_SEND_OUT 1
diff --git a/include/constants/species.h b/include/constants/species.h
index bedb1282d..89da836f7 100644
--- a/include/constants/species.h
+++ b/include/constants/species.h
@@ -705,583 +705,582 @@
#define NATIONAL_DEX_HO_OH 250
#define NATIONAL_DEX_CELEBI 251
-#define NATIONAL_DEX_OLD_UNOWN_B 387
-#define NATIONAL_DEX_OLD_UNOWN_C 388
-#define NATIONAL_DEX_OLD_UNOWN_D 389
-#define NATIONAL_DEX_OLD_UNOWN_E 390
-#define NATIONAL_DEX_OLD_UNOWN_F 391
-#define NATIONAL_DEX_OLD_UNOWN_G 392
-#define NATIONAL_DEX_OLD_UNOWN_H 393
-#define NATIONAL_DEX_OLD_UNOWN_I 394
-#define NATIONAL_DEX_OLD_UNOWN_J 395
-#define NATIONAL_DEX_OLD_UNOWN_K 396
-#define NATIONAL_DEX_OLD_UNOWN_L 397
-#define NATIONAL_DEX_OLD_UNOWN_M 398
-#define NATIONAL_DEX_OLD_UNOWN_N 399
-#define NATIONAL_DEX_OLD_UNOWN_O 400
-#define NATIONAL_DEX_OLD_UNOWN_P 401
-#define NATIONAL_DEX_OLD_UNOWN_Q 402
-#define NATIONAL_DEX_OLD_UNOWN_R 403
-#define NATIONAL_DEX_OLD_UNOWN_S 404
-#define NATIONAL_DEX_OLD_UNOWN_T 405
-#define NATIONAL_DEX_OLD_UNOWN_U 406
-#define NATIONAL_DEX_OLD_UNOWN_V 407
-#define NATIONAL_DEX_OLD_UNOWN_W 408
-#define NATIONAL_DEX_OLD_UNOWN_X 409
-#define NATIONAL_DEX_OLD_UNOWN_Y 410
-#define NATIONAL_DEX_OLD_UNOWN_Z 411
-
-#define NATIONAL_DEX_TREECKO 252
-#define NATIONAL_DEX_GROVYLE 253
-#define NATIONAL_DEX_SCEPTILE 254
-#define NATIONAL_DEX_TORCHIC 255
-#define NATIONAL_DEX_COMBUSKEN 256
-#define NATIONAL_DEX_BLAZIKEN 257
-#define NATIONAL_DEX_MUDKIP 258
-#define NATIONAL_DEX_MARSHTOMP 259
-#define NATIONAL_DEX_SWAMPERT 260
-#define NATIONAL_DEX_POOCHYENA 261
-#define NATIONAL_DEX_MIGHTYENA 262
-#define NATIONAL_DEX_ZIGZAGOON 263
-#define NATIONAL_DEX_LINOONE 264
-#define NATIONAL_DEX_WURMPLE 265
-#define NATIONAL_DEX_SILCOON 266
-#define NATIONAL_DEX_BEAUTIFLY 267
-#define NATIONAL_DEX_CASCOON 268
-#define NATIONAL_DEX_DUSTOX 269
-#define NATIONAL_DEX_LOTAD 270
-#define NATIONAL_DEX_LOMBRE 271
-#define NATIONAL_DEX_LUDICOLO 272
-#define NATIONAL_DEX_SEEDOT 273
-#define NATIONAL_DEX_NUZLEAF 274
-#define NATIONAL_DEX_SHIFTRY 275
-#define NATIONAL_DEX_NINCADA 290
-#define NATIONAL_DEX_NINJASK 291
-#define NATIONAL_DEX_SHEDINJA 292
-#define NATIONAL_DEX_TAILLOW 276
-#define NATIONAL_DEX_SWELLOW 277
-#define NATIONAL_DEX_SHROOMISH 285
-#define NATIONAL_DEX_BRELOOM 286
-#define NATIONAL_DEX_SPINDA 327
-#define NATIONAL_DEX_WINGULL 278
-#define NATIONAL_DEX_PELIPPER 279
-#define NATIONAL_DEX_SURSKIT 283
+#define NATIONAL_DEX_TREECKO 252
+#define NATIONAL_DEX_GROVYLE 253
+#define NATIONAL_DEX_SCEPTILE 254
+#define NATIONAL_DEX_TORCHIC 255
+#define NATIONAL_DEX_COMBUSKEN 256
+#define NATIONAL_DEX_BLAZIKEN 257
+#define NATIONAL_DEX_MUDKIP 258
+#define NATIONAL_DEX_MARSHTOMP 259
+#define NATIONAL_DEX_SWAMPERT 260
+#define NATIONAL_DEX_POOCHYENA 261
+#define NATIONAL_DEX_MIGHTYENA 262
+#define NATIONAL_DEX_ZIGZAGOON 263
+#define NATIONAL_DEX_LINOONE 264
+#define NATIONAL_DEX_WURMPLE 265
+#define NATIONAL_DEX_SILCOON 266
+#define NATIONAL_DEX_BEAUTIFLY 267
+#define NATIONAL_DEX_CASCOON 268
+#define NATIONAL_DEX_DUSTOX 269
+#define NATIONAL_DEX_LOTAD 270
+#define NATIONAL_DEX_LOMBRE 271
+#define NATIONAL_DEX_LUDICOLO 272
+#define NATIONAL_DEX_SEEDOT 273
+#define NATIONAL_DEX_NUZLEAF 274
+#define NATIONAL_DEX_SHIFTRY 275
+#define NATIONAL_DEX_TAILLOW 276
+#define NATIONAL_DEX_SWELLOW 277
+#define NATIONAL_DEX_WINGULL 278
+#define NATIONAL_DEX_PELIPPER 279
+#define NATIONAL_DEX_RALTS 280
+#define NATIONAL_DEX_KIRLIA 281
+#define NATIONAL_DEX_GARDEVOIR 282
+#define NATIONAL_DEX_SURSKIT 283
#define NATIONAL_DEX_MASQUERAIN 284
-#define NATIONAL_DEX_WAILMER 320
-#define NATIONAL_DEX_WAILORD 321
-#define NATIONAL_DEX_SKITTY 300
-#define NATIONAL_DEX_DELCATTY 301
-#define NATIONAL_DEX_KECLEON 352
-#define NATIONAL_DEX_BALTOY 343
-#define NATIONAL_DEX_CLAYDOL 344
-#define NATIONAL_DEX_NOSEPASS 299
-#define NATIONAL_DEX_TORKOAL 324
-#define NATIONAL_DEX_SABLEYE 302
-#define NATIONAL_DEX_BARBOACH 339
-#define NATIONAL_DEX_WHISCASH 340
-#define NATIONAL_DEX_LUVDISC 370
-#define NATIONAL_DEX_CORPHISH 341
-#define NATIONAL_DEX_CRAWDAUNT 342
-#define NATIONAL_DEX_FEEBAS 349
-#define NATIONAL_DEX_MILOTIC 350
-#define NATIONAL_DEX_CARVANHA 318
-#define NATIONAL_DEX_SHARPEDO 319
-#define NATIONAL_DEX_TRAPINCH 328
-#define NATIONAL_DEX_VIBRAVA 329
-#define NATIONAL_DEX_FLYGON 330
-#define NATIONAL_DEX_MAKUHITA 296
-#define NATIONAL_DEX_HARIYAMA 297
-#define NATIONAL_DEX_ELECTRIKE 309
-#define NATIONAL_DEX_MANECTRIC 310
-#define NATIONAL_DEX_NUMEL 322
-#define NATIONAL_DEX_CAMERUPT 323
-#define NATIONAL_DEX_SPHEAL 363
-#define NATIONAL_DEX_SEALEO 364
-#define NATIONAL_DEX_WALREIN 365
-#define NATIONAL_DEX_CACNEA 331
-#define NATIONAL_DEX_CACTURNE 332
-#define NATIONAL_DEX_SNORUNT 361
-#define NATIONAL_DEX_GLALIE 362
-#define NATIONAL_DEX_LUNATONE 337
-#define NATIONAL_DEX_SOLROCK 338
-#define NATIONAL_DEX_AZURILL 298
-#define NATIONAL_DEX_SPOINK 325
-#define NATIONAL_DEX_GRUMPIG 326
-#define NATIONAL_DEX_PLUSLE 311
-#define NATIONAL_DEX_MINUN 312
-#define NATIONAL_DEX_MAWILE 303
-#define NATIONAL_DEX_MEDITITE 307
-#define NATIONAL_DEX_MEDICHAM 308
-#define NATIONAL_DEX_SWABLU 333
-#define NATIONAL_DEX_ALTARIA 334
-#define NATIONAL_DEX_WYNAUT 360
-#define NATIONAL_DEX_DUSKULL 355
-#define NATIONAL_DEX_DUSCLOPS 356
-#define NATIONAL_DEX_ROSELIA 315
-#define NATIONAL_DEX_SLAKOTH 287
-#define NATIONAL_DEX_VIGOROTH 288
-#define NATIONAL_DEX_SLAKING 289
-#define NATIONAL_DEX_GULPIN 316
-#define NATIONAL_DEX_SWALOT 317
-#define NATIONAL_DEX_TROPIUS 357
-#define NATIONAL_DEX_WHISMUR 293
-#define NATIONAL_DEX_LOUDRED 294
-#define NATIONAL_DEX_EXPLOUD 295
-#define NATIONAL_DEX_CLAMPERL 366
-#define NATIONAL_DEX_HUNTAIL 367
-#define NATIONAL_DEX_GOREBYSS 368
-#define NATIONAL_DEX_ABSOL 359
-#define NATIONAL_DEX_SHUPPET 353
-#define NATIONAL_DEX_BANETTE 354
-#define NATIONAL_DEX_SEVIPER 336
-#define NATIONAL_DEX_ZANGOOSE 335
-#define NATIONAL_DEX_RELICANTH 369
-#define NATIONAL_DEX_ARON 304
-#define NATIONAL_DEX_LAIRON 305
-#define NATIONAL_DEX_AGGRON 306
-#define NATIONAL_DEX_CASTFORM 351
-#define NATIONAL_DEX_VOLBEAT 313
-#define NATIONAL_DEX_ILLUMISE 314
-#define NATIONAL_DEX_LILEEP 345
-#define NATIONAL_DEX_CRADILY 346
-#define NATIONAL_DEX_ANORITH 347
-#define NATIONAL_DEX_ARMALDO 348
-#define NATIONAL_DEX_RALTS 280
-#define NATIONAL_DEX_KIRLIA 281
-#define NATIONAL_DEX_GARDEVOIR 282
-#define NATIONAL_DEX_BAGON 371
-#define NATIONAL_DEX_SHELGON 372
-#define NATIONAL_DEX_SALAMENCE 373
-#define NATIONAL_DEX_BELDUM 374
-#define NATIONAL_DEX_METANG 375
-#define NATIONAL_DEX_METAGROSS 376
-#define NATIONAL_DEX_REGIROCK 377
-#define NATIONAL_DEX_REGICE 378
-#define NATIONAL_DEX_REGISTEEL 379
-#define NATIONAL_DEX_KYOGRE 382
-#define NATIONAL_DEX_GROUDON 383
-#define NATIONAL_DEX_RAYQUAZA 384
-#define NATIONAL_DEX_LATIAS 380
-#define NATIONAL_DEX_LATIOS 381
-#define NATIONAL_DEX_JIRACHI 385
-#define NATIONAL_DEX_DEOXYS 386
-#define NATIONAL_DEX_CHIMECHO 358
+#define NATIONAL_DEX_SHROOMISH 285
+#define NATIONAL_DEX_BRELOOM 286
+#define NATIONAL_DEX_SLAKOTH 287
+#define NATIONAL_DEX_VIGOROTH 288
+#define NATIONAL_DEX_SLAKING 289
+#define NATIONAL_DEX_NINCADA 290
+#define NATIONAL_DEX_NINJASK 291
+#define NATIONAL_DEX_SHEDINJA 292
+#define NATIONAL_DEX_WHISMUR 293
+#define NATIONAL_DEX_LOUDRED 294
+#define NATIONAL_DEX_EXPLOUD 295
+#define NATIONAL_DEX_MAKUHITA 296
+#define NATIONAL_DEX_HARIYAMA 297
+#define NATIONAL_DEX_AZURILL 298
+#define NATIONAL_DEX_NOSEPASS 299
+#define NATIONAL_DEX_SKITTY 300
+#define NATIONAL_DEX_DELCATTY 301
+#define NATIONAL_DEX_SABLEYE 302
+#define NATIONAL_DEX_MAWILE 303
+#define NATIONAL_DEX_ARON 304
+#define NATIONAL_DEX_LAIRON 305
+#define NATIONAL_DEX_AGGRON 306
+#define NATIONAL_DEX_MEDITITE 307
+#define NATIONAL_DEX_MEDICHAM 308
+#define NATIONAL_DEX_ELECTRIKE 309
+#define NATIONAL_DEX_MANECTRIC 310
+#define NATIONAL_DEX_PLUSLE 311
+#define NATIONAL_DEX_MINUN 312
+#define NATIONAL_DEX_VOLBEAT 313
+#define NATIONAL_DEX_ILLUMISE 314
+#define NATIONAL_DEX_ROSELIA 315
+#define NATIONAL_DEX_GULPIN 316
+#define NATIONAL_DEX_SWALOT 317
+#define NATIONAL_DEX_CARVANHA 318
+#define NATIONAL_DEX_SHARPEDO 319
+#define NATIONAL_DEX_WAILMER 320
+#define NATIONAL_DEX_WAILORD 321
+#define NATIONAL_DEX_NUMEL 322
+#define NATIONAL_DEX_CAMERUPT 323
+#define NATIONAL_DEX_TORKOAL 324
+#define NATIONAL_DEX_SPOINK 325
+#define NATIONAL_DEX_GRUMPIG 326
+#define NATIONAL_DEX_SPINDA 327
+#define NATIONAL_DEX_TRAPINCH 328
+#define NATIONAL_DEX_VIBRAVA 329
+#define NATIONAL_DEX_FLYGON 330
+#define NATIONAL_DEX_CACNEA 331
+#define NATIONAL_DEX_CACTURNE 332
+#define NATIONAL_DEX_SWABLU 333
+#define NATIONAL_DEX_ALTARIA 334
+#define NATIONAL_DEX_ZANGOOSE 335
+#define NATIONAL_DEX_SEVIPER 336
+#define NATIONAL_DEX_LUNATONE 337
+#define NATIONAL_DEX_SOLROCK 338
+#define NATIONAL_DEX_BARBOACH 339
+#define NATIONAL_DEX_WHISCASH 340
+#define NATIONAL_DEX_CORPHISH 341
+#define NATIONAL_DEX_CRAWDAUNT 342
+#define NATIONAL_DEX_BALTOY 343
+#define NATIONAL_DEX_CLAYDOL 344
+#define NATIONAL_DEX_LILEEP 345
+#define NATIONAL_DEX_CRADILY 346
+#define NATIONAL_DEX_ANORITH 347
+#define NATIONAL_DEX_ARMALDO 348
+#define NATIONAL_DEX_FEEBAS 349
+#define NATIONAL_DEX_MILOTIC 350
+#define NATIONAL_DEX_CASTFORM 351
+#define NATIONAL_DEX_KECLEON 352
+#define NATIONAL_DEX_SHUPPET 353
+#define NATIONAL_DEX_BANETTE 354
+#define NATIONAL_DEX_DUSKULL 355
+#define NATIONAL_DEX_DUSCLOPS 356
+#define NATIONAL_DEX_TROPIUS 357
+#define NATIONAL_DEX_CHIMECHO 358
+#define NATIONAL_DEX_ABSOL 359
+#define NATIONAL_DEX_WYNAUT 360
+#define NATIONAL_DEX_SNORUNT 361
+#define NATIONAL_DEX_GLALIE 362
+#define NATIONAL_DEX_SPHEAL 363
+#define NATIONAL_DEX_SEALEO 364
+#define NATIONAL_DEX_WALREIN 365
+#define NATIONAL_DEX_CLAMPERL 366
+#define NATIONAL_DEX_HUNTAIL 367
+#define NATIONAL_DEX_GOREBYSS 368
+#define NATIONAL_DEX_RELICANTH 369
+#define NATIONAL_DEX_LUVDISC 370
+#define NATIONAL_DEX_BAGON 371
+#define NATIONAL_DEX_SHELGON 372
+#define NATIONAL_DEX_SALAMENCE 373
+#define NATIONAL_DEX_BELDUM 374
+#define NATIONAL_DEX_METANG 375
+#define NATIONAL_DEX_METAGROSS 376
+#define NATIONAL_DEX_REGIROCK 377
+#define NATIONAL_DEX_REGICE 378
+#define NATIONAL_DEX_REGISTEEL 379
+#define NATIONAL_DEX_LATIAS 380
+#define NATIONAL_DEX_LATIOS 381
+#define NATIONAL_DEX_KYOGRE 382
+#define NATIONAL_DEX_GROUDON 383
+#define NATIONAL_DEX_RAYQUAZA 384
+#define NATIONAL_DEX_JIRACHI 385
+#define NATIONAL_DEX_DEOXYS 386
-// Hoenn Dex Index Defines
+#define NATIONAL_DEX_OLD_UNOWN_B 387
+#define NATIONAL_DEX_OLD_UNOWN_C 388
+#define NATIONAL_DEX_OLD_UNOWN_D 389
+#define NATIONAL_DEX_OLD_UNOWN_E 390
+#define NATIONAL_DEX_OLD_UNOWN_F 391
+#define NATIONAL_DEX_OLD_UNOWN_G 392
+#define NATIONAL_DEX_OLD_UNOWN_H 393
+#define NATIONAL_DEX_OLD_UNOWN_I 394
+#define NATIONAL_DEX_OLD_UNOWN_J 395
+#define NATIONAL_DEX_OLD_UNOWN_K 396
+#define NATIONAL_DEX_OLD_UNOWN_L 397
+#define NATIONAL_DEX_OLD_UNOWN_M 398
+#define NATIONAL_DEX_OLD_UNOWN_N 399
+#define NATIONAL_DEX_OLD_UNOWN_O 400
+#define NATIONAL_DEX_OLD_UNOWN_P 401
+#define NATIONAL_DEX_OLD_UNOWN_Q 402
+#define NATIONAL_DEX_OLD_UNOWN_R 403
+#define NATIONAL_DEX_OLD_UNOWN_S 404
+#define NATIONAL_DEX_OLD_UNOWN_T 405
+#define NATIONAL_DEX_OLD_UNOWN_U 406
+#define NATIONAL_DEX_OLD_UNOWN_V 407
+#define NATIONAL_DEX_OLD_UNOWN_W 408
+#define NATIONAL_DEX_OLD_UNOWN_X 409
+#define NATIONAL_DEX_OLD_UNOWN_Y 410
+#define NATIONAL_DEX_OLD_UNOWN_Z 411
-#define HOENN_DEX_NONE 0
-#define HOENN_DEX_BULBASAUR 203
-#define HOENN_DEX_IVYSAUR 204
-#define HOENN_DEX_VENUSAUR 205
-#define HOENN_DEX_CHARMANDER 206
-#define HOENN_DEX_CHARMELEON 207
-#define HOENN_DEX_CHARIZARD 208
-#define HOENN_DEX_SQUIRTLE 209
-#define HOENN_DEX_WARTORTLE 210
-#define HOENN_DEX_BLASTOISE 211
-#define HOENN_DEX_CATERPIE 212
-#define HOENN_DEX_METAPOD 213
-#define HOENN_DEX_BUTTERFREE 214
-#define HOENN_DEX_WEEDLE 215
-#define HOENN_DEX_KAKUNA 216
-#define HOENN_DEX_BEEDRILL 217
-#define HOENN_DEX_PIDGEY 218
-#define HOENN_DEX_PIDGEOTTO 219
-#define HOENN_DEX_PIDGEOT 220
-#define HOENN_DEX_RATTATA 221
-#define HOENN_DEX_RATICATE 222
-#define HOENN_DEX_SPEAROW 223
-#define HOENN_DEX_FEAROW 224
-#define HOENN_DEX_EKANS 225
-#define HOENN_DEX_ARBOK 226
-#define HOENN_DEX_PIKACHU 156
-#define HOENN_DEX_RAICHU 157
-#define HOENN_DEX_SANDSHREW 112
-#define HOENN_DEX_SANDSLASH 113
-#define HOENN_DEX_NIDORAN_F 227
-#define HOENN_DEX_NIDORINA 228
-#define HOENN_DEX_NIDOQUEEN 229
-#define HOENN_DEX_NIDORAN_M 230
-#define HOENN_DEX_NIDORINO 231
-#define HOENN_DEX_NIDOKING 232
-#define HOENN_DEX_CLEFAIRY 233
-#define HOENN_DEX_CLEFABLE 234
-#define HOENN_DEX_VULPIX 153
-#define HOENN_DEX_NINETALES 154
-#define HOENN_DEX_JIGGLYPUFF 138
-#define HOENN_DEX_WIGGLYTUFF 139
-#define HOENN_DEX_ZUBAT 63
-#define HOENN_DEX_GOLBAT 64
-#define HOENN_DEX_ODDISH 88
-#define HOENN_DEX_GLOOM 89
-#define HOENN_DEX_VILEPLUME 90
-#define HOENN_DEX_PARAS 235
-#define HOENN_DEX_PARASECT 236
-#define HOENN_DEX_VENONAT 237
-#define HOENN_DEX_VENOMOTH 238
-#define HOENN_DEX_DIGLETT 239
-#define HOENN_DEX_DUGTRIO 240
-#define HOENN_DEX_MEOWTH 241
-#define HOENN_DEX_PERSIAN 242
-#define HOENN_DEX_PSYDUCK 158
-#define HOENN_DEX_GOLDUCK 159
-#define HOENN_DEX_MANKEY 243
-#define HOENN_DEX_PRIMEAPE 244
-#define HOENN_DEX_GROWLITHE 245
-#define HOENN_DEX_ARCANINE 246
-#define HOENN_DEX_POLIWAG 247
-#define HOENN_DEX_POLIWHIRL 248
-#define HOENN_DEX_POLIWRATH 249
-#define HOENN_DEX_ABRA 39
-#define HOENN_DEX_KADABRA 40
-#define HOENN_DEX_ALAKAZAM 41
-#define HOENN_DEX_MACHOP 73
-#define HOENN_DEX_MACHOKE 74
-#define HOENN_DEX_MACHAMP 75
-#define HOENN_DEX_BELLSPROUT 250
-#define HOENN_DEX_WEEPINBELL 251
-#define HOENN_DEX_VICTREEBEL 252
-#define HOENN_DEX_TENTACOOL 66
-#define HOENN_DEX_TENTACRUEL 67
-#define HOENN_DEX_GEODUDE 57
-#define HOENN_DEX_GRAVELER 58
-#define HOENN_DEX_GOLEM 59
-#define HOENN_DEX_PONYTA 253
-#define HOENN_DEX_RAPIDASH 254
-#define HOENN_DEX_SLOWPOKE 255
-#define HOENN_DEX_SLOWBRO 256
-#define HOENN_DEX_MAGNEMITE 82
-#define HOENN_DEX_MAGNETON 83
-#define HOENN_DEX_FARFETCHD 257
-#define HOENN_DEX_DODUO 92
-#define HOENN_DEX_DODRIO 93
-#define HOENN_DEX_SEEL 258
-#define HOENN_DEX_DEWGONG 259
-#define HOENN_DEX_GRIMER 106
-#define HOENN_DEX_MUK 107
-#define HOENN_DEX_SHELLDER 260
-#define HOENN_DEX_CLOYSTER 261
-#define HOENN_DEX_GASTLY 262
-#define HOENN_DEX_HAUNTER 263
-#define HOENN_DEX_GENGAR 264
-#define HOENN_DEX_ONIX 265
-#define HOENN_DEX_DROWZEE 266
-#define HOENN_DEX_HYPNO 267
-#define HOENN_DEX_KRABBY 268
-#define HOENN_DEX_KINGLER 269
-#define HOENN_DEX_VOLTORB 84
-#define HOENN_DEX_ELECTRODE 85
-#define HOENN_DEX_EXEGGCUTE 270
-#define HOENN_DEX_EXEGGUTOR 271
-#define HOENN_DEX_CUBONE 272
-#define HOENN_DEX_MAROWAK 273
-#define HOENN_DEX_HITMONLEE 274
-#define HOENN_DEX_HITMONCHAN 275
-#define HOENN_DEX_LICKITUNG 276
-#define HOENN_DEX_KOFFING 108
-#define HOENN_DEX_WEEZING 109
-#define HOENN_DEX_RHYHORN 169
-#define HOENN_DEX_RHYDON 170
-#define HOENN_DEX_CHANSEY 277
-#define HOENN_DEX_TANGELA 278
-#define HOENN_DEX_KANGASKHAN 279
-#define HOENN_DEX_HORSEA 184
-#define HOENN_DEX_SEADRA 185
-#define HOENN_DEX_GOLDEEN 50
-#define HOENN_DEX_SEAKING 51
-#define HOENN_DEX_STARYU 143
-#define HOENN_DEX_STARMIE 144
-#define HOENN_DEX_MR_MIME 280
-#define HOENN_DEX_SCYTHER 281
-#define HOENN_DEX_JYNX 282
-#define HOENN_DEX_ELECTABUZZ 283
-#define HOENN_DEX_MAGMAR 284
-#define HOENN_DEX_PINSIR 167
-#define HOENN_DEX_TAUROS 285
-#define HOENN_DEX_MAGIKARP 52
-#define HOENN_DEX_GYARADOS 53
-#define HOENN_DEX_LAPRAS 286
-#define HOENN_DEX_DITTO 287
-#define HOENN_DEX_EEVEE 288
-#define HOENN_DEX_VAPOREON 289
-#define HOENN_DEX_JOLTEON 290
-#define HOENN_DEX_FLAREON 291
-#define HOENN_DEX_PORYGON 292
-#define HOENN_DEX_OMANYTE 293
-#define HOENN_DEX_OMASTAR 294
-#define HOENN_DEX_KABUTO 295
-#define HOENN_DEX_KABUTOPS 296
-#define HOENN_DEX_AERODACTYL 297
-#define HOENN_DEX_SNORLAX 298
-#define HOENN_DEX_ARTICUNO 299
-#define HOENN_DEX_ZAPDOS 300
-#define HOENN_DEX_MOLTRES 301
-#define HOENN_DEX_DRATINI 302
-#define HOENN_DEX_DRAGONAIR 303
-#define HOENN_DEX_DRAGONITE 304
-#define HOENN_DEX_MEWTWO 305
-#define HOENN_DEX_MEW 306
-#define HOENN_DEX_CHIKORITA 307
-#define HOENN_DEX_BAYLEEF 308
-#define HOENN_DEX_MEGANIUM 309
-#define HOENN_DEX_CYNDAQUIL 310
-#define HOENN_DEX_QUILAVA 311
-#define HOENN_DEX_TYPHLOSION 312
-#define HOENN_DEX_TOTODILE 313
-#define HOENN_DEX_CROCONAW 314
-#define HOENN_DEX_FERALIGATR 315
-#define HOENN_DEX_SENTRET 316
-#define HOENN_DEX_FURRET 317
-#define HOENN_DEX_HOOTHOOT 318
-#define HOENN_DEX_NOCTOWL 319
-#define HOENN_DEX_LEDYBA 320
-#define HOENN_DEX_LEDIAN 321
-#define HOENN_DEX_SPINARAK 322
-#define HOENN_DEX_ARIADOS 323
-#define HOENN_DEX_CROBAT 65
-#define HOENN_DEX_CHINCHOU 181
-#define HOENN_DEX_LANTURN 182
-#define HOENN_DEX_PICHU 155
-#define HOENN_DEX_CLEFFA 324
-#define HOENN_DEX_IGGLYBUFF 137
-#define HOENN_DEX_TOGEPI 325
-#define HOENN_DEX_TOGETIC 326
-#define HOENN_DEX_NATU 162
-#define HOENN_DEX_XATU 163
-#define HOENN_DEX_MAREEP 327
-#define HOENN_DEX_FLAAFFY 328
-#define HOENN_DEX_AMPHAROS 329
-#define HOENN_DEX_BELLOSSOM 91
-#define HOENN_DEX_MARILL 55
-#define HOENN_DEX_AZUMARILL 56
-#define HOENN_DEX_SUDOWOODO 330
-#define HOENN_DEX_POLITOED 331
-#define HOENN_DEX_HOPPIP 332
-#define HOENN_DEX_SKIPLOOM 333
-#define HOENN_DEX_JUMPLUFF 334
-#define HOENN_DEX_AIPOM 335
-#define HOENN_DEX_SUNKERN 336
-#define HOENN_DEX_SUNFLORA 337
-#define HOENN_DEX_YANMA 338
-#define HOENN_DEX_WOOPER 339
-#define HOENN_DEX_QUAGSIRE 340
-#define HOENN_DEX_ESPEON 341
-#define HOENN_DEX_UMBREON 342
-#define HOENN_DEX_MURKROW 343
-#define HOENN_DEX_SLOWKING 344
-#define HOENN_DEX_MISDREAVUS 345
-#define HOENN_DEX_UNOWN 346
-#define HOENN_DEX_WOBBUFFET 161
-#define HOENN_DEX_GIRAFARIG 164
-#define HOENN_DEX_PINECO 347
-#define HOENN_DEX_FORRETRESS 348
-#define HOENN_DEX_DUNSPARCE 349
-#define HOENN_DEX_GLIGAR 350
-#define HOENN_DEX_STEELIX 351
-#define HOENN_DEX_SNUBBULL 352
-#define HOENN_DEX_GRANBULL 353
-#define HOENN_DEX_QWILFISH 354
-#define HOENN_DEX_SCIZOR 355
-#define HOENN_DEX_SHUCKLE 356
-#define HOENN_DEX_HERACROSS 168
-#define HOENN_DEX_SNEASEL 357
-#define HOENN_DEX_TEDDIURSA 358
-#define HOENN_DEX_URSARING 359
-#define HOENN_DEX_SLUGMA 103
-#define HOENN_DEX_MAGCARGO 104
-#define HOENN_DEX_SWINUB 360
-#define HOENN_DEX_PILOSWINE 361
-#define HOENN_DEX_CORSOLA 180
-#define HOENN_DEX_REMORAID 362
-#define HOENN_DEX_OCTILLERY 363
-#define HOENN_DEX_DELIBIRD 364
-#define HOENN_DEX_MANTINE 365
-#define HOENN_DEX_SKARMORY 115
-#define HOENN_DEX_HOUNDOUR 366
-#define HOENN_DEX_HOUNDOOM 367
-#define HOENN_DEX_KINGDRA 186
-#define HOENN_DEX_PHANPY 165
-#define HOENN_DEX_DONPHAN 166
-#define HOENN_DEX_PORYGON2 368
-#define HOENN_DEX_STANTLER 369
-#define HOENN_DEX_SMEARGLE 370
-#define HOENN_DEX_TYROGUE 371
-#define HOENN_DEX_HITMONTOP 372
-#define HOENN_DEX_SMOOCHUM 373
-#define HOENN_DEX_ELEKID 374
-#define HOENN_DEX_MAGBY 375
-#define HOENN_DEX_MILTANK 376
-#define HOENN_DEX_BLISSEY 377
-#define HOENN_DEX_RAIKOU 378
-#define HOENN_DEX_ENTEI 379
-#define HOENN_DEX_SUICUNE 380
-#define HOENN_DEX_LARVITAR 381
-#define HOENN_DEX_PUPITAR 382
-#define HOENN_DEX_TYRANITAR 383
-#define HOENN_DEX_LUGIA 384
-#define HOENN_DEX_HO_OH 385
-#define HOENN_DEX_CELEBI 386
+// Hoenn Dex Index Defines
+#define HOENN_DEX_NONE 0
+#define HOENN_DEX_TREECKO 1
+#define HOENN_DEX_GROVYLE 2
+#define HOENN_DEX_SCEPTILE 3
+#define HOENN_DEX_TORCHIC 4
+#define HOENN_DEX_COMBUSKEN 5
+#define HOENN_DEX_BLAZIKEN 6
+#define HOENN_DEX_MUDKIP 7
+#define HOENN_DEX_MARSHTOMP 8
+#define HOENN_DEX_SWAMPERT 9
+#define HOENN_DEX_POOCHYENA 10
+#define HOENN_DEX_MIGHTYENA 11
+#define HOENN_DEX_ZIGZAGOON 12
+#define HOENN_DEX_LINOONE 13
+#define HOENN_DEX_WURMPLE 14
+#define HOENN_DEX_SILCOON 15
+#define HOENN_DEX_BEAUTIFLY 16
+#define HOENN_DEX_CASCOON 17
+#define HOENN_DEX_DUSTOX 18
+#define HOENN_DEX_LOTAD 19
+#define HOENN_DEX_LOMBRE 20
+#define HOENN_DEX_LUDICOLO 21
+#define HOENN_DEX_SEEDOT 22
+#define HOENN_DEX_NUZLEAF 23
+#define HOENN_DEX_SHIFTRY 24
+#define HOENN_DEX_TAILLOW 25
+#define HOENN_DEX_SWELLOW 26
+#define HOENN_DEX_WINGULL 27
+#define HOENN_DEX_PELIPPER 28
+#define HOENN_DEX_RALTS 29
+#define HOENN_DEX_KIRLIA 30
+#define HOENN_DEX_GARDEVOIR 31
+#define HOENN_DEX_SURSKIT 32
+#define HOENN_DEX_MASQUERAIN 33
+#define HOENN_DEX_SHROOMISH 34
+#define HOENN_DEX_BRELOOM 35
+#define HOENN_DEX_SLAKOTH 36
+#define HOENN_DEX_VIGOROTH 37
+#define HOENN_DEX_SLAKING 38
+#define HOENN_DEX_ABRA 39
+#define HOENN_DEX_KADABRA 40
+#define HOENN_DEX_ALAKAZAM 41
+#define HOENN_DEX_NINCADA 42
+#define HOENN_DEX_NINJASK 43
+#define HOENN_DEX_SHEDINJA 44
+#define HOENN_DEX_WHISMUR 45
+#define HOENN_DEX_LOUDRED 46
+#define HOENN_DEX_EXPLOUD 47
+#define HOENN_DEX_MAKUHITA 48
+#define HOENN_DEX_HARIYAMA 49
+#define HOENN_DEX_GOLDEEN 50
+#define HOENN_DEX_SEAKING 51
+#define HOENN_DEX_MAGIKARP 52
+#define HOENN_DEX_GYARADOS 53
+#define HOENN_DEX_AZURILL 54
+#define HOENN_DEX_MARILL 55
+#define HOENN_DEX_AZUMARILL 56
+#define HOENN_DEX_GEODUDE 57
+#define HOENN_DEX_GRAVELER 58
+#define HOENN_DEX_GOLEM 59
+#define HOENN_DEX_NOSEPASS 60
+#define HOENN_DEX_SKITTY 61
+#define HOENN_DEX_DELCATTY 62
+#define HOENN_DEX_ZUBAT 63
+#define HOENN_DEX_GOLBAT 64
+#define HOENN_DEX_CROBAT 65
+#define HOENN_DEX_TENTACOOL 66
+#define HOENN_DEX_TENTACRUEL 67
+#define HOENN_DEX_SABLEYE 68
+#define HOENN_DEX_MAWILE 69
+#define HOENN_DEX_ARON 70
+#define HOENN_DEX_LAIRON 71
+#define HOENN_DEX_AGGRON 72
+#define HOENN_DEX_MACHOP 73
+#define HOENN_DEX_MACHOKE 74
+#define HOENN_DEX_MACHAMP 75
+#define HOENN_DEX_MEDITITE 76
+#define HOENN_DEX_MEDICHAM 77
+#define HOENN_DEX_ELECTRIKE 78
+#define HOENN_DEX_MANECTRIC 79
+#define HOENN_DEX_PLUSLE 80
+#define HOENN_DEX_MINUN 81
+#define HOENN_DEX_MAGNEMITE 82
+#define HOENN_DEX_MAGNETON 83
+#define HOENN_DEX_VOLTORB 84
+#define HOENN_DEX_ELECTRODE 85
+#define HOENN_DEX_VOLBEAT 86
+#define HOENN_DEX_ILLUMISE 87
+#define HOENN_DEX_ODDISH 88
+#define HOENN_DEX_GLOOM 89
+#define HOENN_DEX_VILEPLUME 90
+#define HOENN_DEX_BELLOSSOM 91
+#define HOENN_DEX_DODUO 92
+#define HOENN_DEX_DODRIO 93
+#define HOENN_DEX_ROSELIA 94
+#define HOENN_DEX_GULPIN 95
+#define HOENN_DEX_SWALOT 96
+#define HOENN_DEX_CARVANHA 97
+#define HOENN_DEX_SHARPEDO 98
+#define HOENN_DEX_WAILMER 99
+#define HOENN_DEX_WAILORD 100
+#define HOENN_DEX_NUMEL 101
+#define HOENN_DEX_CAMERUPT 102
+#define HOENN_DEX_SLUGMA 103
+#define HOENN_DEX_MAGCARGO 104
+#define HOENN_DEX_TORKOAL 105
+#define HOENN_DEX_GRIMER 106
+#define HOENN_DEX_MUK 107
+#define HOENN_DEX_KOFFING 108
+#define HOENN_DEX_WEEZING 109
+#define HOENN_DEX_SPOINK 110
+#define HOENN_DEX_GRUMPIG 111
+#define HOENN_DEX_SANDSHREW 112
+#define HOENN_DEX_SANDSLASH 113
+#define HOENN_DEX_SPINDA 114
+#define HOENN_DEX_SKARMORY 115
+#define HOENN_DEX_TRAPINCH 116
+#define HOENN_DEX_VIBRAVA 117
+#define HOENN_DEX_FLYGON 118
+#define HOENN_DEX_CACNEA 119
+#define HOENN_DEX_CACTURNE 120
+#define HOENN_DEX_SWABLU 121
+#define HOENN_DEX_ALTARIA 122
+#define HOENN_DEX_ZANGOOSE 123
+#define HOENN_DEX_SEVIPER 124
+#define HOENN_DEX_LUNATONE 125
+#define HOENN_DEX_SOLROCK 126
+#define HOENN_DEX_BARBOACH 127
+#define HOENN_DEX_WHISCASH 128
+#define HOENN_DEX_CORPHISH 129
+#define HOENN_DEX_CRAWDAUNT 130
+#define HOENN_DEX_BALTOY 131
+#define HOENN_DEX_CLAYDOL 132
+#define HOENN_DEX_LILEEP 133
+#define HOENN_DEX_CRADILY 134
+#define HOENN_DEX_ANORITH 135
+#define HOENN_DEX_ARMALDO 136
+#define HOENN_DEX_IGGLYBUFF 137
+#define HOENN_DEX_JIGGLYPUFF 138
+#define HOENN_DEX_WIGGLYTUFF 139
+#define HOENN_DEX_FEEBAS 140
+#define HOENN_DEX_MILOTIC 141
+#define HOENN_DEX_CASTFORM 142
+#define HOENN_DEX_STARYU 143
+#define HOENN_DEX_STARMIE 144
+#define HOENN_DEX_KECLEON 145
+#define HOENN_DEX_SHUPPET 146
+#define HOENN_DEX_BANETTE 147
+#define HOENN_DEX_DUSKULL 148
+#define HOENN_DEX_DUSCLOPS 149
+#define HOENN_DEX_TROPIUS 150
+#define HOENN_DEX_CHIMECHO 151
+#define HOENN_DEX_ABSOL 152
+#define HOENN_DEX_VULPIX 153
+#define HOENN_DEX_NINETALES 154
+#define HOENN_DEX_PICHU 155
+#define HOENN_DEX_PIKACHU 156
+#define HOENN_DEX_RAICHU 157
+#define HOENN_DEX_PSYDUCK 158
+#define HOENN_DEX_GOLDUCK 159
+#define HOENN_DEX_WYNAUT 160
+#define HOENN_DEX_WOBBUFFET 161
+#define HOENN_DEX_NATU 162
+#define HOENN_DEX_XATU 163
+#define HOENN_DEX_GIRAFARIG 164
+#define HOENN_DEX_PHANPY 165
+#define HOENN_DEX_DONPHAN 166
+#define HOENN_DEX_PINSIR 167
+#define HOENN_DEX_HERACROSS 168
+#define HOENN_DEX_RHYHORN 169
+#define HOENN_DEX_RHYDON 170
+#define HOENN_DEX_SNORUNT 171
+#define HOENN_DEX_GLALIE 172
+#define HOENN_DEX_SPHEAL 173
+#define HOENN_DEX_SEALEO 174
+#define HOENN_DEX_WALREIN 175
+#define HOENN_DEX_CLAMPERL 176
+#define HOENN_DEX_HUNTAIL 177
+#define HOENN_DEX_GOREBYSS 178
+#define HOENN_DEX_RELICANTH 179
+#define HOENN_DEX_CORSOLA 180
+#define HOENN_DEX_CHINCHOU 181
+#define HOENN_DEX_LANTURN 182
+#define HOENN_DEX_LUVDISC 183
+#define HOENN_DEX_HORSEA 184
+#define HOENN_DEX_SEADRA 185
+#define HOENN_DEX_KINGDRA 186
+#define HOENN_DEX_BAGON 187
+#define HOENN_DEX_SHELGON 188
+#define HOENN_DEX_SALAMENCE 189
+#define HOENN_DEX_BELDUM 190
+#define HOENN_DEX_METANG 191
+#define HOENN_DEX_METAGROSS 192
+#define HOENN_DEX_REGIROCK 193
+#define HOENN_DEX_REGICE 194
+#define HOENN_DEX_REGISTEEL 195
+#define HOENN_DEX_LATIAS 196
+#define HOENN_DEX_LATIOS 197
+#define HOENN_DEX_KYOGRE 198
+#define HOENN_DEX_GROUDON 199
+#define HOENN_DEX_RAYQUAZA 200
+#define HOENN_DEX_JIRACHI 201
+#define HOENN_DEX_DEOXYS 202
-#define HOENN_DEX_OLD_UNOWN_B 387
-#define HOENN_DEX_OLD_UNOWN_C 388
-#define HOENN_DEX_OLD_UNOWN_D 389
-#define HOENN_DEX_OLD_UNOWN_E 390
-#define HOENN_DEX_OLD_UNOWN_F 391
-#define HOENN_DEX_OLD_UNOWN_G 392
-#define HOENN_DEX_OLD_UNOWN_H 393
-#define HOENN_DEX_OLD_UNOWN_I 394
-#define HOENN_DEX_OLD_UNOWN_J 395
-#define HOENN_DEX_OLD_UNOWN_K 396
-#define HOENN_DEX_OLD_UNOWN_L 397
-#define HOENN_DEX_OLD_UNOWN_M 398
-#define HOENN_DEX_OLD_UNOWN_N 399
-#define HOENN_DEX_OLD_UNOWN_O 400
-#define HOENN_DEX_OLD_UNOWN_P 401
-#define HOENN_DEX_OLD_UNOWN_Q 402
-#define HOENN_DEX_OLD_UNOWN_R 403
-#define HOENN_DEX_OLD_UNOWN_S 404
-#define HOENN_DEX_OLD_UNOWN_T 405
-#define HOENN_DEX_OLD_UNOWN_U 406
-#define HOENN_DEX_OLD_UNOWN_V 407
-#define HOENN_DEX_OLD_UNOWN_W 408
-#define HOENN_DEX_OLD_UNOWN_X 409
-#define HOENN_DEX_OLD_UNOWN_Y 410
-#define HOENN_DEX_OLD_UNOWN_Z 411
+#define HOENN_DEX_BULBASAUR 203
+#define HOENN_DEX_IVYSAUR 204
+#define HOENN_DEX_VENUSAUR 205
+#define HOENN_DEX_CHARMANDER 206
+#define HOENN_DEX_CHARMELEON 207
+#define HOENN_DEX_CHARIZARD 208
+#define HOENN_DEX_SQUIRTLE 209
+#define HOENN_DEX_WARTORTLE 210
+#define HOENN_DEX_BLASTOISE 211
+#define HOENN_DEX_CATERPIE 212
+#define HOENN_DEX_METAPOD 213
+#define HOENN_DEX_BUTTERFREE 214
+#define HOENN_DEX_WEEDLE 215
+#define HOENN_DEX_KAKUNA 216
+#define HOENN_DEX_BEEDRILL 217
+#define HOENN_DEX_PIDGEY 218
+#define HOENN_DEX_PIDGEOTTO 219
+#define HOENN_DEX_PIDGEOT 220
+#define HOENN_DEX_RATTATA 221
+#define HOENN_DEX_RATICATE 222
+#define HOENN_DEX_SPEAROW 223
+#define HOENN_DEX_FEAROW 224
+#define HOENN_DEX_EKANS 225
+#define HOENN_DEX_ARBOK 226
+#define HOENN_DEX_NIDORAN_F 227
+#define HOENN_DEX_NIDORINA 228
+#define HOENN_DEX_NIDOQUEEN 229
+#define HOENN_DEX_NIDORAN_M 230
+#define HOENN_DEX_NIDORINO 231
+#define HOENN_DEX_NIDOKING 232
+#define HOENN_DEX_CLEFAIRY 233
+#define HOENN_DEX_CLEFABLE 234
+#define HOENN_DEX_PARAS 235
+#define HOENN_DEX_PARASECT 236
+#define HOENN_DEX_VENONAT 237
+#define HOENN_DEX_VENOMOTH 238
+#define HOENN_DEX_DIGLETT 239
+#define HOENN_DEX_DUGTRIO 240
+#define HOENN_DEX_MEOWTH 241
+#define HOENN_DEX_PERSIAN 242
+#define HOENN_DEX_MANKEY 243
+#define HOENN_DEX_PRIMEAPE 244
+#define HOENN_DEX_GROWLITHE 245
+#define HOENN_DEX_ARCANINE 246
+#define HOENN_DEX_POLIWAG 247
+#define HOENN_DEX_POLIWHIRL 248
+#define HOENN_DEX_POLIWRATH 249
+#define HOENN_DEX_BELLSPROUT 250
+#define HOENN_DEX_WEEPINBELL 251
+#define HOENN_DEX_VICTREEBEL 252
+#define HOENN_DEX_PONYTA 253
+#define HOENN_DEX_RAPIDASH 254
+#define HOENN_DEX_SLOWPOKE 255
+#define HOENN_DEX_SLOWBRO 256
+#define HOENN_DEX_FARFETCHD 257
+#define HOENN_DEX_SEEL 258
+#define HOENN_DEX_DEWGONG 259
+#define HOENN_DEX_SHELLDER 260
+#define HOENN_DEX_CLOYSTER 261
+#define HOENN_DEX_GASTLY 262
+#define HOENN_DEX_HAUNTER 263
+#define HOENN_DEX_GENGAR 264
+#define HOENN_DEX_ONIX 265
+#define HOENN_DEX_DROWZEE 266
+#define HOENN_DEX_HYPNO 267
+#define HOENN_DEX_KRABBY 268
+#define HOENN_DEX_KINGLER 269
+#define HOENN_DEX_EXEGGCUTE 270
+#define HOENN_DEX_EXEGGUTOR 271
+#define HOENN_DEX_CUBONE 272
+#define HOENN_DEX_MAROWAK 273
+#define HOENN_DEX_HITMONLEE 274
+#define HOENN_DEX_HITMONCHAN 275
+#define HOENN_DEX_LICKITUNG 276
+#define HOENN_DEX_CHANSEY 277
+#define HOENN_DEX_TANGELA 278
+#define HOENN_DEX_KANGASKHAN 279
+#define HOENN_DEX_MR_MIME 280
+#define HOENN_DEX_SCYTHER 281
+#define HOENN_DEX_JYNX 282
+#define HOENN_DEX_ELECTABUZZ 283
+#define HOENN_DEX_MAGMAR 284
+#define HOENN_DEX_TAUROS 285
+#define HOENN_DEX_LAPRAS 286
+#define HOENN_DEX_DITTO 287
+#define HOENN_DEX_EEVEE 288
+#define HOENN_DEX_VAPOREON 289
+#define HOENN_DEX_JOLTEON 290
+#define HOENN_DEX_FLAREON 291
+#define HOENN_DEX_PORYGON 292
+#define HOENN_DEX_OMANYTE 293
+#define HOENN_DEX_OMASTAR 294
+#define HOENN_DEX_KABUTO 295
+#define HOENN_DEX_KABUTOPS 296
+#define HOENN_DEX_AERODACTYL 297
+#define HOENN_DEX_SNORLAX 298
+#define HOENN_DEX_ARTICUNO 299
+#define HOENN_DEX_ZAPDOS 300
+#define HOENN_DEX_MOLTRES 301
+#define HOENN_DEX_DRATINI 302
+#define HOENN_DEX_DRAGONAIR 303
+#define HOENN_DEX_DRAGONITE 304
+#define HOENN_DEX_MEWTWO 305
+#define HOENN_DEX_MEW 306
+#define HOENN_DEX_CHIKORITA 307
+#define HOENN_DEX_BAYLEEF 308
+#define HOENN_DEX_MEGANIUM 309
+#define HOENN_DEX_CYNDAQUIL 310
+#define HOENN_DEX_QUILAVA 311
+#define HOENN_DEX_TYPHLOSION 312
+#define HOENN_DEX_TOTODILE 313
+#define HOENN_DEX_CROCONAW 314
+#define HOENN_DEX_FERALIGATR 315
+#define HOENN_DEX_SENTRET 316
+#define HOENN_DEX_FURRET 317
+#define HOENN_DEX_HOOTHOOT 318
+#define HOENN_DEX_NOCTOWL 319
+#define HOENN_DEX_LEDYBA 320
+#define HOENN_DEX_LEDIAN 321
+#define HOENN_DEX_SPINARAK 322
+#define HOENN_DEX_ARIADOS 323
+#define HOENN_DEX_CLEFFA 324
+#define HOENN_DEX_TOGEPI 325
+#define HOENN_DEX_TOGETIC 326
+#define HOENN_DEX_MAREEP 327
+#define HOENN_DEX_FLAAFFY 328
+#define HOENN_DEX_AMPHAROS 329
+#define HOENN_DEX_SUDOWOODO 330
+#define HOENN_DEX_POLITOED 331
+#define HOENN_DEX_HOPPIP 332
+#define HOENN_DEX_SKIPLOOM 333
+#define HOENN_DEX_JUMPLUFF 334
+#define HOENN_DEX_AIPOM 335
+#define HOENN_DEX_SUNKERN 336
+#define HOENN_DEX_SUNFLORA 337
+#define HOENN_DEX_YANMA 338
+#define HOENN_DEX_WOOPER 339
+#define HOENN_DEX_QUAGSIRE 340
+#define HOENN_DEX_ESPEON 341
+#define HOENN_DEX_UMBREON 342
+#define HOENN_DEX_MURKROW 343
+#define HOENN_DEX_SLOWKING 344
+#define HOENN_DEX_MISDREAVUS 345
+#define HOENN_DEX_UNOWN 346
+#define HOENN_DEX_PINECO 347
+#define HOENN_DEX_FORRETRESS 348
+#define HOENN_DEX_DUNSPARCE 349
+#define HOENN_DEX_GLIGAR 350
+#define HOENN_DEX_STEELIX 351
+#define HOENN_DEX_SNUBBULL 352
+#define HOENN_DEX_GRANBULL 353
+#define HOENN_DEX_QWILFISH 354
+#define HOENN_DEX_SCIZOR 355
+#define HOENN_DEX_SHUCKLE 356
+#define HOENN_DEX_SNEASEL 357
+#define HOENN_DEX_TEDDIURSA 358
+#define HOENN_DEX_URSARING 359
+#define HOENN_DEX_SWINUB 360
+#define HOENN_DEX_PILOSWINE 361
+#define HOENN_DEX_REMORAID 362
+#define HOENN_DEX_OCTILLERY 363
+#define HOENN_DEX_DELIBIRD 364
+#define HOENN_DEX_MANTINE 365
+#define HOENN_DEX_HOUNDOUR 366
+#define HOENN_DEX_HOUNDOOM 367
+#define HOENN_DEX_PORYGON2 368
+#define HOENN_DEX_STANTLER 369
+#define HOENN_DEX_SMEARGLE 370
+#define HOENN_DEX_TYROGUE 371
+#define HOENN_DEX_HITMONTOP 372
+#define HOENN_DEX_SMOOCHUM 373
+#define HOENN_DEX_ELEKID 374
+#define HOENN_DEX_MAGBY 375
+#define HOENN_DEX_MILTANK 376
+#define HOENN_DEX_BLISSEY 377
+#define HOENN_DEX_RAIKOU 378
+#define HOENN_DEX_ENTEI 379
+#define HOENN_DEX_SUICUNE 380
+#define HOENN_DEX_LARVITAR 381
+#define HOENN_DEX_PUPITAR 382
+#define HOENN_DEX_TYRANITAR 383
+#define HOENN_DEX_LUGIA 384
+#define HOENN_DEX_HO_OH 385
+#define HOENN_DEX_CELEBI 386
-#define HOENN_DEX_TREECKO 1
-#define HOENN_DEX_GROVYLE 2
-#define HOENN_DEX_SCEPTILE 3
-#define HOENN_DEX_TORCHIC 4
-#define HOENN_DEX_COMBUSKEN 5
-#define HOENN_DEX_BLAZIKEN 6
-#define HOENN_DEX_MUDKIP 7
-#define HOENN_DEX_MARSHTOMP 8
-#define HOENN_DEX_SWAMPERT 9
-#define HOENN_DEX_POOCHYENA 10
-#define HOENN_DEX_MIGHTYENA 11
-#define HOENN_DEX_ZIGZAGOON 12
-#define HOENN_DEX_LINOONE 13
-#define HOENN_DEX_WURMPLE 14
-#define HOENN_DEX_SILCOON 15
-#define HOENN_DEX_BEAUTIFLY 16
-#define HOENN_DEX_CASCOON 17
-#define HOENN_DEX_DUSTOX 18
-#define HOENN_DEX_LOTAD 19
-#define HOENN_DEX_LOMBRE 20
-#define HOENN_DEX_LUDICOLO 21
-#define HOENN_DEX_SEEDOT 22
-#define HOENN_DEX_NUZLEAF 23
-#define HOENN_DEX_SHIFTRY 24
-#define HOENN_DEX_NINCADA 42
-#define HOENN_DEX_NINJASK 43
-#define HOENN_DEX_SHEDINJA 44
-#define HOENN_DEX_TAILLOW 25
-#define HOENN_DEX_SWELLOW 26
-#define HOENN_DEX_SHROOMISH 34
-#define HOENN_DEX_BRELOOM 35
-#define HOENN_DEX_SPINDA 114
-#define HOENN_DEX_WINGULL 27
-#define HOENN_DEX_PELIPPER 28
-#define HOENN_DEX_SURSKIT 32
-#define HOENN_DEX_MASQUERAIN 33
-#define HOENN_DEX_WAILMER 99
-#define HOENN_DEX_WAILORD 100
-#define HOENN_DEX_SKITTY 61
-#define HOENN_DEX_DELCATTY 62
-#define HOENN_DEX_KECLEON 145
-#define HOENN_DEX_BALTOY 131
-#define HOENN_DEX_CLAYDOL 132
-#define HOENN_DEX_NOSEPASS 60
-#define HOENN_DEX_TORKOAL 105
-#define HOENN_DEX_SABLEYE 68
-#define HOENN_DEX_BARBOACH 127
-#define HOENN_DEX_WHISCASH 128
-#define HOENN_DEX_LUVDISC 183
-#define HOENN_DEX_CORPHISH 129
-#define HOENN_DEX_CRAWDAUNT 130
-#define HOENN_DEX_FEEBAS 140
-#define HOENN_DEX_MILOTIC 141
-#define HOENN_DEX_CARVANHA 97
-#define HOENN_DEX_SHARPEDO 98
-#define HOENN_DEX_TRAPINCH 116
-#define HOENN_DEX_VIBRAVA 117
-#define HOENN_DEX_FLYGON 118
-#define HOENN_DEX_MAKUHITA 48
-#define HOENN_DEX_HARIYAMA 49
-#define HOENN_DEX_ELECTRIKE 78
-#define HOENN_DEX_MANECTRIC 79
-#define HOENN_DEX_NUMEL 101
-#define HOENN_DEX_CAMERUPT 102
-#define HOENN_DEX_SPHEAL 173
-#define HOENN_DEX_SEALEO 174
-#define HOENN_DEX_WALREIN 175
-#define HOENN_DEX_CACNEA 119
-#define HOENN_DEX_CACTURNE 120
-#define HOENN_DEX_SNORUNT 171
-#define HOENN_DEX_GLALIE 172
-#define HOENN_DEX_LUNATONE 125
-#define HOENN_DEX_SOLROCK 126
-#define HOENN_DEX_AZURILL 54
-#define HOENN_DEX_SPOINK 110
-#define HOENN_DEX_GRUMPIG 111
-#define HOENN_DEX_PLUSLE 80
-#define HOENN_DEX_MINUN 81
-#define HOENN_DEX_MAWILE 69
-#define HOENN_DEX_MEDITITE 76
-#define HOENN_DEX_MEDICHAM 77
-#define HOENN_DEX_SWABLU 121
-#define HOENN_DEX_ALTARIA 122
-#define HOENN_DEX_WYNAUT 160
-#define HOENN_DEX_DUSKULL 148
-#define HOENN_DEX_DUSCLOPS 149
-#define HOENN_DEX_ROSELIA 94
-#define HOENN_DEX_SLAKOTH 36
-#define HOENN_DEX_VIGOROTH 37
-#define HOENN_DEX_SLAKING 38
-#define HOENN_DEX_GULPIN 95
-#define HOENN_DEX_SWALOT 96
-#define HOENN_DEX_TROPIUS 150
-#define HOENN_DEX_WHISMUR 45
-#define HOENN_DEX_LOUDRED 46
-#define HOENN_DEX_EXPLOUD 47
-#define HOENN_DEX_CLAMPERL 176
-#define HOENN_DEX_HUNTAIL 177
-#define HOENN_DEX_GOREBYSS 178
-#define HOENN_DEX_ABSOL 152
-#define HOENN_DEX_SHUPPET 146
-#define HOENN_DEX_BANETTE 147
-#define HOENN_DEX_SEVIPER 124
-#define HOENN_DEX_ZANGOOSE 123
-#define HOENN_DEX_RELICANTH 179
-#define HOENN_DEX_ARON 70
-#define HOENN_DEX_LAIRON 71
-#define HOENN_DEX_AGGRON 72
-#define HOENN_DEX_CASTFORM 142
-#define HOENN_DEX_VOLBEAT 86
-#define HOENN_DEX_ILLUMISE 87
-#define HOENN_DEX_LILEEP 133
-#define HOENN_DEX_CRADILY 134
-#define HOENN_DEX_ANORITH 135
-#define HOENN_DEX_ARMALDO 136
-#define HOENN_DEX_RALTS 29
-#define HOENN_DEX_KIRLIA 30
-#define HOENN_DEX_GARDEVOIR 31
-#define HOENN_DEX_BAGON 187
-#define HOENN_DEX_SHELGON 188
-#define HOENN_DEX_SALAMENCE 189
-#define HOENN_DEX_BELDUM 190
-#define HOENN_DEX_METANG 191
-#define HOENN_DEX_METAGROSS 192
-#define HOENN_DEX_REGIROCK 193
-#define HOENN_DEX_REGICE 194
-#define HOENN_DEX_REGISTEEL 195
-#define HOENN_DEX_KYOGRE 198
-#define HOENN_DEX_GROUDON 199
-#define HOENN_DEX_RAYQUAZA 200
-#define HOENN_DEX_LATIAS 196
-#define HOENN_DEX_LATIOS 197
-#define HOENN_DEX_JIRACHI 201
-#define HOENN_DEX_DEOXYS 202
-#define HOENN_DEX_CHIMECHO 151
+#define HOENN_DEX_OLD_UNOWN_B 387
+#define HOENN_DEX_OLD_UNOWN_C 388
+#define HOENN_DEX_OLD_UNOWN_D 389
+#define HOENN_DEX_OLD_UNOWN_E 390
+#define HOENN_DEX_OLD_UNOWN_F 391
+#define HOENN_DEX_OLD_UNOWN_G 392
+#define HOENN_DEX_OLD_UNOWN_H 393
+#define HOENN_DEX_OLD_UNOWN_I 394
+#define HOENN_DEX_OLD_UNOWN_J 395
+#define HOENN_DEX_OLD_UNOWN_K 396
+#define HOENN_DEX_OLD_UNOWN_L 397
+#define HOENN_DEX_OLD_UNOWN_M 398
+#define HOENN_DEX_OLD_UNOWN_N 399
+#define HOENN_DEX_OLD_UNOWN_O 400
+#define HOENN_DEX_OLD_UNOWN_P 401
+#define HOENN_DEX_OLD_UNOWN_Q 402
+#define HOENN_DEX_OLD_UNOWN_R 403
+#define HOENN_DEX_OLD_UNOWN_S 404
+#define HOENN_DEX_OLD_UNOWN_T 405
+#define HOENN_DEX_OLD_UNOWN_U 406
+#define HOENN_DEX_OLD_UNOWN_V 407
+#define HOENN_DEX_OLD_UNOWN_W 408
+#define HOENN_DEX_OLD_UNOWN_X 409
+#define HOENN_DEX_OLD_UNOWN_Y 410
+#define HOENN_DEX_OLD_UNOWN_Z 411
#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/trainer_tower.h b/include/constants/trainer_tower.h
new file mode 100644
index 000000000..6372a30e8
--- /dev/null
+++ b/include/constants/trainer_tower.h
@@ -0,0 +1,46 @@
+#ifndef GUARD_CONSTANTS_TRAINER_TOWER_H
+#define GUARD_CONSTANTS_TRAINER_TOWER_H
+
+#define CHALLENGE_TYPE_SINGLE 0
+#define CHALLENGE_TYPE_DOUBLE 1
+#define CHALLENGE_TYPE_KNOCKOUT 2
+// Mixed challenges use one of the above 3 for each floor
+
+#define CHALLENGE_STATUS_LOST 0
+#define CHALLENGE_STATUS_UNK 1 // Never set, possibly e-Card related
+#define CHALLENGE_STATUS_NORMAL 2 // Not started or ongoing
+
+#define MAX_TRAINER_TOWER_FLOORS 8
+
+#define MAX_TRAINERS_PER_FLOOR 3
+
+#define TRAINER_TOWER_FUNC_INIT_FLOOR 0
+#define TRAINER_TOWER_FUNC_GET_SPEECH 1
+#define TRAINER_TOWER_FUNC_DO_BATTLE 2
+#define TRAINER_TOWER_FUNC_GET_CHALLENGE_TYPE 3
+#define TRAINER_TOWER_FUNC_CLEARED_FLOOR 4
+#define TRAINER_TOWER_FUNC_GET_FLOOR_CLEARED 5
+#define TRAINER_TOWER_FUNC_START_CHALLENGE 6
+#define TRAINER_TOWER_FUNC_GET_OWNER_STATE 7
+#define TRAINER_TOWER_FUNC_GIVE_PRIZE 8
+#define TRAINER_TOWER_FUNC_CHECK_FINAL_TIME 9
+#define TRAINER_TOWER_FUNC_RESUME_TIMER 10
+#define TRAINER_TOWER_FUNC_SET_LOST 11
+#define TRAINER_TOWER_FUNC_GET_CHALLENGE_STATUS 12
+#define TRAINER_TOWER_FUNC_GET_TIME 13
+#define TRAINER_TOWER_FUNC_SHOW_RESULTS 14
+#define TRAINER_TOWER_FUNC_CLOSE_RESULTS 15
+#define TRAINER_TOWER_FUNC_CHECK_DOUBLES 16
+#define TRAINER_TOWER_FUNC_GET_NUM_FLOORS 17
+#define TRAINER_TOWER_FUNC_SHOULD_WARP_TO_COUNTER 18
+#define TRAINER_TOWER_FUNC_ENCOUNTER_MUSIC 19
+#define TRAINER_TOWER_FUNC_GET_BEAT_CHALLENGE 20
+
+#define TRAINER_TOWER_TEXT_INTRO 2
+#define TRAINER_TOWER_TEXT_PLAYER_LOST 3
+#define TRAINER_TOWER_TEXT_PLAYER_WON 4
+#define TRAINER_TOWER_TEXT_AFTER 5
+
+#define TRAINER_TOWER_MAX_TIME 215999 // 60 * 60 * 60 - 1
+
+#endif //GUARD_CONSTANTS_TRAINER_TOWER_H
diff --git a/include/constants/union_room.h b/include/constants/union_room.h
index 021424773..b23860645 100644
--- a/include/constants/union_room.h
+++ b/include/constants/union_room.h
@@ -1,6 +1,48 @@
#ifndef GUARD_CONSTANTS_UNION_ROOM_H
#define GUARD_CONSTANTS_UNION_ROOM_H
+#define UNION_ROOM_SPAWN_NONE 0
+#define UNION_ROOM_SPAWN_IN 1
+#define UNION_ROOM_SPAWN_OUT 2
+
+#define ACTIVITY_NONE 0
+#define ACTIVITY_BATTLE 1
+#define ACTIVITY_DBLBATTLE 2
+#define ACTIVITY_MLTBATTLE 3
+#define ACTIVITY_TRADE 4
+#define ACTIVITY_CHAT 5
+#define ACTIVITY_WCARD 6
+#define ACTIVITY_WNEWS 7
+#define ACTIVITY_CARD 8
+#define ACTIVITY_PJUMP 9
+#define ACTIVITY_BCRUSH 10
+#define ACTIVITY_BPICK 11
+#define ACTIVITY_SEARCH 12
+#define ACTIVITY_SPINTRADE 13
+#define ACTIVITY_ITEMTRADE 14
+
+// Player response
+#define ACTIVITY_ACCEPT 17
+#define ACTIVITY_DECLINE 18
+
+#define ACTIVITY_NPCTALK 19
+#define ACTIVITY_PLYRTALK 20
+
+// Duplicate IDs?
+#define ACTIVITY_WCARD2 21
+#define ACTIVITY_WNEWS2 22
+
+#define IN_UNION_ROOM 0x40
+
+// Used in UR_AddTextPrinterParameterized
+#define UR_COLOR_DKE_WHT_LTE 0
+#define UR_COLOR_RED_WHT_LTR 1
+#define UR_COLOR_GRN_WHT_LTG 2
+#define UR_COLOR_WHT_WHT_LTE 3
+#define UR_COLOR_WHT_DKE_LTE 4
+#define UR_COLOR_GRN_DN6_LTB 5
+#define UR_COLOR_DN5_DN6_LTB 6
+
#define LINK_GROUP_SINGLE_BATTLE 0
#define LINK_GROUP_DOUBLE_BATTLE 1
#define LINK_GROUP_MULTI_BATTLE 2
@@ -12,4 +54,7 @@
#define LINK_GROUP_WONDER_NEWS 8
#define NUM_LINK_GROUP_TYPES 9
+#define LINK_GROUP_UNION_ROOM_RESUME 9
+#define LINK_GROUP_UNION_ROOM_INIT 10
+
#endif //GUARD_CONSTANTS_UNION_ROOM_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
index a45d2e523..77be45c51 100644
--- a/include/constants/weather.h
+++ b/include/constants/weather.h
@@ -12,7 +12,7 @@
#define WEATHER_SANDSTORM 8 // unused
#define WEATHER_FOG_DIAGONAL 9 // unused
#define WEATHER_UNDERWATER 10 // unused
-#define WEATHER_CLOUDY 11
+#define WEATHER_SHADE 11
#define WEATHER_DROUGHT 12 // unused and broken in overworld
#define WEATHER_DOWNPOUR 13 // unused
#define WEATHER_UNDERWATER_BUBBLES 14 // unused