summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h14
-rw-r--r--include/battle_util.h39
-rw-r--r--include/constants/flags.h2
-rwxr-xr-xinclude/constants/layouts.h337
-rwxr-xr-xinclude/constants/map_groups.h468
-rw-r--r--include/constants/maps.h464
-rw-r--r--include/constants/region_map_sections.h2
-rw-r--r--include/contest_painting_effects.h4
-rw-r--r--include/ewram.h5
-rw-r--r--include/gba/m4a_internal.h2
-rw-r--r--include/heated_rock.h2
-rw-r--r--include/party_menu.h10
-rw-r--r--include/pokenav.h296
-rw-r--r--include/region_map.h82
14 files changed, 1185 insertions, 542 deletions
diff --git a/include/battle.h b/include/battle.h
index ac95f6fff..a799f8360 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -21,7 +21,7 @@
#define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8
// The exact purposes of these are unclear
-#define B_ACTION_UNKNOWN9 9
+#define B_ACTION_WALLY_THROW 9
#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
#define B_ACTION_FINISHED 12 // when executing an action
@@ -691,6 +691,18 @@ struct scriptsStack
u8 size;
};
+#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
+#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
+
+#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type))
+#define SET_BATTLER_TYPE(battlerId, type) \
+{ \
+ gBattleMons[battlerId].type1 = type; \
+ gBattleMons[battlerId].type2 = type; \
+}
+
+#define GET_STAT_BUFF_VALUE2(n)((n & 0xF0))
+
extern u8 gBattleTextBuff1[];
//function declarations of buffer emits
diff --git a/include/battle_util.h b/include/battle_util.h
index 15fa39d1a..3d178b487 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -10,6 +10,43 @@
#define BS_GET_PLAYER2 13
#define BS_GET_OPPONENT2 14
+#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
+#define MOVE_LIMITATION_PP (1 << 1)
+#define MOVE_LIMITATION_DISABLED (1 << 2)
+#define MOVE_LIMITATION_TORMENTED (1 << 3)
+#define MOVE_LIMITATION_TAUNT (1 << 4)
+#define MOVE_LIMITATION_IMPRISON (1 << 5)
+
+#define ABILITYEFFECT_ON_SWITCHIN 0x0
+#define ABILITYEFFECT_ENDTURN 0x1
+#define ABILITYEFFECT_MOVES_BLOCK 0x2
+#define ABILITYEFFECT_ABSORBING 0x3
+#define ABILITYEFFECT_MOVE_END 0x4
+#define ABILITYEFFECT_IMMUNITY 0x5
+#define ABILITYEFFECT_FORECAST 0x6
+#define ABILITYEFFECT_SYNCHRONIZE 0x7
+#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
+#define ABILITYEFFECT_INTIMIDATE1 0x9
+#define ABILITYEFFECT_INTIMIDATE2 0xA
+#define ABILITYEFFECT_TRACE 0xB
+#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
+#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD
+#define ABILITYEFFECT_FIELD_SPORT 0xE
+#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF
+#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
+#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11
+#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
+#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
+#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
+
+#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
+#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
+#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0))
+
+#define ITEMEFFECT_ON_SWITCH_IN 0x0
+#define ITEMEFFECT_MOVE_END 0x3
+#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4
+
void TryClearRageStatuses(void);
void BattleScriptPush(const u8* BS_ptr);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
@@ -25,5 +62,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void);
void BattleScriptExecute(const u8* BS_ptr);
void BattleScriptPushCursorAndCallback(u8* BS_ptr);
u8 IsMonDisobedient(void);
+bool8 AreAllMovesUnusable(void);
+u8 TrySetCantSelectMoveBattleScript(void);
#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index a867fd77e..753024403 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -545,7 +545,7 @@
#define FLAG_HIDE_GRUNTS_HIDEOUTS 0x39C
#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE 0x39D
#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY 0x39E
-#define FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY 0x39F
+#define FLAG_HIDE_OTHER_TEAM_MT_CHIMNEY 0x39F
#define FLAG_HIDE_PROF_COSMO_FALLARBOR 0x3A0
#define FLAG_HIDE_RIVAL_LAVARIDGE_1 0x3A1
#define FLAG_HIDE_RIVAL_LAVARIDGE_2 0x3A2
diff --git a/include/constants/layouts.h b/include/constants/layouts.h
new file mode 100755
index 000000000..f0008036c
--- /dev/null
+++ b/include/constants/layouts.h
@@ -0,0 +1,337 @@
+#ifndef GUARD_CONSTANTS_LAYOUTS_H
+#define GUARD_CONSTANTS_LAYOUTS_H
+
+#define LAYOUT_PETALBURG_CITY 1
+#define LAYOUT_SLATEPORT_CITY 2
+#define LAYOUT_MAUVILLE_CITY 3
+#define LAYOUT_RUSTBORO_CITY 4
+#define LAYOUT_FORTREE_CITY 5
+#define LAYOUT_LILYCOVE_CITY 6
+#define LAYOUT_MOSSDEEP_CITY 7
+#define LAYOUT_SOOTOPOLIS_CITY 8
+#define LAYOUT_EVER_GRANDE_CITY 9
+#define LAYOUT_LITTLEROOT_TOWN 10
+#define LAYOUT_OLDALE_TOWN 11
+#define LAYOUT_DEWFORD_TOWN 12
+#define LAYOUT_LAVARIDGE_TOWN 13
+#define LAYOUT_FALLARBOR_TOWN 14
+#define LAYOUT_VERDANTURF_TOWN 15
+#define LAYOUT_PACIFIDLOG_TOWN 16
+#define LAYOUT_ROUTE101 17
+#define LAYOUT_ROUTE102 18
+#define LAYOUT_ROUTE103 19
+#define LAYOUT_ROUTE104 20
+#define LAYOUT_ROUTE105 21
+#define LAYOUT_ROUTE106 22
+#define LAYOUT_ROUTE107 23
+#define LAYOUT_ROUTE108 24
+#define LAYOUT_ROUTE109 25
+#define LAYOUT_ROUTE110 26
+#define LAYOUT_ROUTE111 27
+#define LAYOUT_ROUTE112 28
+#define LAYOUT_ROUTE113 29
+#define LAYOUT_ROUTE114 30
+#define LAYOUT_ROUTE115 31
+#define LAYOUT_ROUTE116 32
+#define LAYOUT_ROUTE117 33
+#define LAYOUT_ROUTE118 34
+#define LAYOUT_ROUTE119 35
+#define LAYOUT_ROUTE120 36
+#define LAYOUT_ROUTE121 37
+#define LAYOUT_ROUTE122 38
+#define LAYOUT_ROUTE123 39
+#define LAYOUT_ROUTE124 40
+#define LAYOUT_ROUTE125 41
+#define LAYOUT_ROUTE126 42
+#define LAYOUT_ROUTE127 43
+#define LAYOUT_ROUTE128 44
+#define LAYOUT_ROUTE129 45
+#define LAYOUT_UNREFERENCED_MAP 46
+#define LAYOUT_ROUTE131 47
+#define LAYOUT_ROUTE132 48
+#define LAYOUT_ROUTE133 49
+#define LAYOUT_ROUTE134 50
+#define LAYOUT_UNDERWATER2 51
+#define LAYOUT_UNDERWATER3 52
+#define LAYOUT_UNDERWATER4 53
+#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 54
+#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 55
+#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F 56
+#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 57
+#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 58
+#define LAYOUT_HOUSE1 59
+#define LAYOUT_HOUSE2 60
+#define LAYOUT_POKEMON_CENTER_1F 61
+#define LAYOUT_POKEMON_CENTER_2F 62
+#define LAYOUT_POKE_MART 63
+#define LAYOUT_HOUSE3 64
+#define LAYOUT_DEWFORD_TOWN_GYM 65
+#define LAYOUT_DEWFORD_TOWN_HALL 66
+#define LAYOUT_HOUSE4 67
+#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 68
+#define LAYOUT_LAVARIDGE_TOWN_GYM_1F 69
+#define LAYOUT_LAVARIDGE_TOWN_GYM_B1F 70
+#define LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F 71
+#define LAYOUT_CONTEST_LOBBY 72
+#define LAYOUT_CONTEST_HALL 73
+#define LAYOUT_LILYCOVE_CITY_HOUSE2 74
+#define LAYOUT_UNKNOWN_MAP_082CF564 75
+#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76
+#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77
+#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78
+#define LAYOUT_PETALBURG_CITY_GYM 79
+#define LAYOUT_HOUSE_WITH_BED 80
+#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81
+#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82
+#define LAYOUT_UNKNOWN_MAP_082D05D8 83
+#define LAYOUT_UNKNOWN_MAP_082D05FC 84
+#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85
+#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86
+#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87
+#define LAYOUT_HARBOR 88
+#define LAYOUT_MAUVILLE_CITY_GYM 89
+#define LAYOUT_MAUVILLE_CITY_BIKE_SHOP 90
+#define LAYOUT_MAUVILLE_CITY_GAME_CORNER 91
+#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F 92
+#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F 93
+#define LAYOUT_RUSTBORO_CITY_GYM 94
+#define LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL 95
+#define LAYOUT_RUSTBORO_CITY_HOUSE 96
+#define LAYOUT_RUSTBORO_CITY_HOUSE1 97
+#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 98
+#define LAYOUT_FORTREE_CITY_HOUSE1 99
+#define LAYOUT_FORTREE_CITY_GYM 100
+#define LAYOUT_FORTREE_CITY_HOUSE2 101
+#define LAYOUT_ROUTE104_MR_BRINEYS_HOUSE 102
+#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 103
+#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 104
+#define LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY 105
+#define LAYOUT_LILYCOVE_CITY_CONTEST_HALL 106
+#define LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 107
+#define LAYOUT_LILYCOVE_CITY_EMPTY_MAP 108
+#define LAYOUT_MOSSDEEP_CITY_GYM 109
+#define LAYOUT_SOOTOPOLIS_CITY_GYM_1F 110
+#define LAYOUT_SOOTOPOLIS_CITY_GYM_B1F 111
+#define LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM 112
+#define LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM 113
+#define LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM 114
+#define LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM 115
+#define LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM 116
+#define LAYOUT_EVER_GRANDE_CITY_SHORT_CORRIDOR 117
+#define LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 118
+#define LAYOUT_CABLE_CAR_STATION 119
+#define LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE 120
+#define LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL 121
+#define LAYOUT_ROUTE114_LANETTES_HOUSE 122
+#define LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE 123
+#define LAYOUT_ROUTE117_POKEMON_DAY_CARE 124
+#define LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE 125
+#define LAYOUT_METEOR_FALLS_1F_1R 126
+#define LAYOUT_METEOR_FALLS_1F_2R 127
+#define LAYOUT_METEOR_FALLS_B1F_1R 128
+#define LAYOUT_METEOR_FALLS_B1F_2R 129
+#define LAYOUT_RUSTURF_TUNNEL 130
+#define LAYOUT_UNDERWATER_SOOTOPOLIS_CITY 131
+#define LAYOUT_DESERT_RUINS 132
+#define LAYOUT_GRANITE_CAVE_1F 133
+#define LAYOUT_GRANITE_CAVE_B1F 134
+#define LAYOUT_GRANITE_CAVE_B2F 135
+#define LAYOUT_PETALBURG_WOODS 136
+#define LAYOUT_MT_CHIMNEY 137
+#define LAYOUT_MT_PYRE_1F 138
+#define LAYOUT_MT_PYRE_2F 139
+#define LAYOUT_MT_PYRE_3F 140
+#define LAYOUT_MT_PYRE_4F 141
+#define LAYOUT_MT_PYRE_5F 142
+#define LAYOUT_MT_PYRE_6F 143
+#define LAYOUT_AQUA_HIDEOUT_1F 144
+#define LAYOUT_AQUA_HIDEOUT_B1F 145
+#define LAYOUT_AQUA_HIDEOUT_B2F 146
+#define LAYOUT_UNDERWATER_SEAFLOOR_CAVERN 147
+#define LAYOUT_SEAFLOOR_CAVERN_ENTRANCE 148
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM1 149
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM2 150
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM3 151
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM4 152
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM5 153
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM6 154
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM7 155
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM8 156
+#define LAYOUT_SEAFLOOR_CAVERN_ROOM9 157
+#define LAYOUT_CAVE_OF_ORIGIN_ENTRANCE 158
+#define LAYOUT_CAVE_OF_ORIGIN_1F 159
+#define LAYOUT_CAVE_OF_ORIGIN_B1F 160
+#define LAYOUT_CAVE_OF_ORIGIN_B2F 161
+#define LAYOUT_CAVE_OF_ORIGIN_B3F 162
+#define LAYOUT_CAVE_OF_ORIGIN_B4F 163
+#define LAYOUT_VICTORY_ROAD_1F 164
+#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 165
+#define LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 166
+#define LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 167
+#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 168
+#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 169
+#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 170
+#define LAYOUT_UNKNOWN_MAP_082E55C8 171
+#define LAYOUT_UNKNOWN_MAP_082E55EC 172
+#define LAYOUT_UNKNOWN_MAP_082E5610 173
+#define LAYOUT_UNKNOWN_MAP_082E5634 174
+#define LAYOUT_UNKNOWN_MAP_082E5658 175
+#define LAYOUT_UNKNOWN_MAP_082E567C 176
+#define LAYOUT_UNKNOWN_MAP_082E56A0 177
+#define LAYOUT_UNKNOWN_MAP_082E56C4 178
+#define LAYOUT_UNKNOWN_MAP_082E56E8 179
+#define LAYOUT_UNKNOWN_MAP_082E570C 180
+#define LAYOUT_UNKNOWN_MAP_082E5730 181
+#define LAYOUT_UNKNOWN_MAP_082E5754 182
+#define LAYOUT_UNKNOWN_MAP_082E5778 183
+#define LAYOUT_UNKNOWN_MAP_082E579C 184
+#define LAYOUT_NEW_MAUVILLE_ENTRANCE 185
+#define LAYOUT_NEW_MAUVILLE_INSIDE 186
+#define LAYOUT_ABANDONED_SHIP_DECK 187
+#define LAYOUT_ABANDONED_SHIP_CORRIDORS_1F 188
+#define LAYOUT_ABANDONED_SHIP_ROOMS_1F 189
+#define LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F 190
+#define LAYOUT_ABANDONED_SHIP_ROOMS_B1F 191
+#define LAYOUT_ABANDONED_SHIP_ROOMS2_B1F 192
+#define LAYOUT_ABANDONED_SHIP_UNDERWATER1 193
+#define LAYOUT_ABANDONED_SHIP_ROOM_B1F 194
+#define LAYOUT_ABANDONED_SHIP_ROOMS2_1F 195
+#define LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE 196
+#define LAYOUT_ABANDONED_SHIP_UNDERWATER2 197
+#define LAYOUT_SECRET_BASE_RED_CAVE1 198
+#define LAYOUT_SECRET_BASE_BROWN_CAVE1 199
+#define LAYOUT_SECRET_BASE_BLUE_CAVE1 200
+#define LAYOUT_SECRET_BASE_YELLOW_CAVE1 201
+#define LAYOUT_SECRET_BASE_TREE1 202
+#define LAYOUT_SECRET_BASE_SHRUB1 203
+#define LAYOUT_SECRET_BASE_RED_CAVE2 204
+#define LAYOUT_SECRET_BASE_BROWN_CAVE2 205
+#define LAYOUT_SECRET_BASE_BLUE_CAVE2 206
+#define LAYOUT_SECRET_BASE_YELLOW_CAVE2 207
+#define LAYOUT_SECRET_BASE_TREE2 208
+#define LAYOUT_SECRET_BASE_SHRUB2 209
+#define LAYOUT_SECRET_BASE_RED_CAVE3 210
+#define LAYOUT_SECRET_BASE_BROWN_CAVE3 211
+#define LAYOUT_SECRET_BASE_BLUE_CAVE3 212
+#define LAYOUT_SECRET_BASE_YELLOW_CAVE3 213
+#define LAYOUT_SECRET_BASE_TREE3 214
+#define LAYOUT_SECRET_BASE_SHRUB3 215
+#define LAYOUT_SECRET_BASE_RED_CAVE4 216
+#define LAYOUT_SECRET_BASE_BROWN_CAVE4 217
+#define LAYOUT_SECRET_BASE_BLUE_CAVE4 218
+#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 219
+#define LAYOUT_SECRET_BASE_TREE4 220
+#define LAYOUT_SECRET_BASE_SHRUB4 221
+#define LAYOUT_SINGLE_BATTLE_COLOSSEUM 222
+#define LAYOUT_TRADE_CENTER 223
+#define LAYOUT_RECORD_CORNER 224
+#define LAYOUT_DOUBLE_BATTLE_COLOSSEUM 225
+#define LAYOUT_LINK_CONTEST_ROOM1 226
+#define LAYOUT_UNKNOWN_MAP_25_29 227
+#define LAYOUT_UNKNOWN_MAP_25_30 228
+#define LAYOUT_UNKNOWN_MAP_25_31 229
+#define LAYOUT_UNKNOWN_MAP_25_32 230
+#define LAYOUT_UNKNOWN_MAP_25_33 231
+#define LAYOUT_UNKNOWN_MAP_25_34 232
+#define LAYOUT_LINK_CONTEST_ROOM2 233
+#define LAYOUT_LINK_CONTEST_ROOM3 234
+#define LAYOUT_LINK_CONTEST_ROOM4 235
+#define LAYOUT_LINK_CONTEST_ROOM5 236
+#define LAYOUT_LINK_CONTEST_ROOM6 237
+#define LAYOUT_INSIDE_OF_TRUCK 238
+#define LAYOUT_SAFARI_ZONE_NORTHWEST 239
+#define LAYOUT_SAFARI_ZONE_NORTHEAST 240
+#define LAYOUT_SAFARI_ZONE_SOUTHWEST 241
+#define LAYOUT_SAFARI_ZONE_SOUTHEAST 242
+#define LAYOUT_UNKNOWN_MAP_082EDF30 243
+#define LAYOUT_ROUTE109_SEASHORE_HOUSE 244
+#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 245
+#define LAYOUT_ROUTE110_TRICK_HOUSE_END 246
+#define LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR 247
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1 248
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2 249
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3 250
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4 251
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5 252
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6 253
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7 254
+#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8 255
+#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 256
+#define LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRACE 257
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F 258
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F 259
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F 260
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F 261
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F 262
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 263
+#define LAYOUT_ROUTE130 264
+#define LAYOUT_BATTLE_TOWER_LOBBY 265
+#define LAYOUT_BATTLE_TOWER_OUTSIDE 266
+#define LAYOUT_BATTLE_TOWER_ELEVATOR 267
+#define LAYOUT_BATTLE_TOWER_CORRIDOR 268
+#define LAYOUT_BATTLE_TOWER_BATTLE_ROOM 269
+#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F 270
+#define LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE 271
+#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F 272
+#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F 273
+#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 274
+#define LAYOUT_UNDERWATER1 275
+#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F 276
+#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F 277
+#define LAYOUT_SS_TIDAL_CORRIDOR 278
+#define LAYOUT_SS_TIDAL_LOWER_DECK 279
+#define LAYOUT_SS_TIDAL_ROOMS 280
+#define LAYOUT_ISLAND_CAVE 281
+#define LAYOUT_ANCIENT_TOMB 282
+#define LAYOUT_UNDERWATER_ROUTE134 283
+#define LAYOUT_UNDERWATER_SEALED_CHAMBER 284
+#define LAYOUT_SEALED_CHAMBER_OUTER_ROOM 285
+#define LAYOUT_VICTORY_ROAD_B1F 286
+#define LAYOUT_VICTORY_ROAD_B2F 287
+#define LAYOUT_ROUTE104_PROTOTYPE 288
+#define LAYOUT_GRANITE_CAVE_STEVENS_ROOM 289
+#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 290
+#define LAYOUT_SOUTHERN_ISLAND_EXTERIOR 291
+#define LAYOUT_SOUTHERN_ISLAND_INTERIOR 292
+#define LAYOUT_JAGGED_PASS 293
+#define LAYOUT_FIERY_PATH 294
+#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 295
+#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 296
+#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 297
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE8 298
+#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 299
+#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 300
+#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 301
+#define LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 302
+#define LAYOUT_MT_PYRE_EXTERIOR 303
+#define LAYOUT_MT_PYRE_SUMMIT 304
+#define LAYOUT_SEALED_CHAMBER_INNER_ROOM 305
+#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F 306
+#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F 307
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 308
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 309
+#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 310
+#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 311
+#define LAYOUT_SCORCHED_SLAB 312
+#define LAYOUT_UNKNOWN_MAP_082FF894 313
+#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 314
+#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 315
+#define LAYOUT_EVER_GRANDE_CITY_CORRIDOR4 316
+#define LAYOUT_MAGMA_HIDEOUT_1F 317
+#define LAYOUT_MAGMA_HIDEOUT_B1F 318
+#define LAYOUT_MAGMA_HIDEOUT_B2F 319
+#define LAYOUT_UNKNOWN_MAP_08302970 320
+#define LAYOUT_SKY_PILLAR_ENTRANCE 321
+#define LAYOUT_SKY_PILLAR_OUTSIDE 322
+#define LAYOUT_SKY_PILLAR_1F 323
+#define LAYOUT_SKY_PILLAR_2F 324
+#define LAYOUT_SKY_PILLAR_3F 325
+#define LAYOUT_SKY_PILLAR_4F 326
+#define LAYOUT_UNKNOWN_MAP_083041B4 327
+#define LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE 328
+#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 329
+#define LAYOUT_SAFARI_ZONE_REST_HOUSE 330
+#define LAYOUT_SKY_PILLAR_5F 331
+#define LAYOUT_SKY_PILLAR_TOP 332
+
+#endif // GUARD_CONSTANTS_LAYOUTS_H
diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h
new file mode 100755
index 000000000..d799d785d
--- /dev/null
+++ b/include/constants/map_groups.h
@@ -0,0 +1,468 @@
+#ifndef GUARD_CONSTANTS_MAP_GROUPS_H
+#define GUARD_CONSTANTS_MAP_GROUPS_H
+
+// Map Group 0
+#define MAP_PETALBURG_CITY (0 | (0 << 8))
+#define MAP_SLATEPORT_CITY (1 | (0 << 8))
+#define MAP_MAUVILLE_CITY (2 | (0 << 8))
+#define MAP_RUSTBORO_CITY (3 | (0 << 8))
+#define MAP_FORTREE_CITY (4 | (0 << 8))
+#define MAP_LILYCOVE_CITY (5 | (0 << 8))
+#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
+#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
+#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
+#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
+#define MAP_OLDALE_TOWN (10 | (0 << 8))
+#define MAP_DEWFORD_TOWN (11 | (0 << 8))
+#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
+#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
+#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
+#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
+#define MAP_ROUTE101 (16 | (0 << 8))
+#define MAP_ROUTE102 (17 | (0 << 8))
+#define MAP_ROUTE103 (18 | (0 << 8))
+#define MAP_ROUTE104 (19 | (0 << 8))
+#define MAP_ROUTE105 (20 | (0 << 8))
+#define MAP_ROUTE106 (21 | (0 << 8))
+#define MAP_ROUTE107 (22 | (0 << 8))
+#define MAP_ROUTE108 (23 | (0 << 8))
+#define MAP_ROUTE109 (24 | (0 << 8))
+#define MAP_ROUTE110 (25 | (0 << 8))
+#define MAP_ROUTE111 (26 | (0 << 8))
+#define MAP_ROUTE112 (27 | (0 << 8))
+#define MAP_ROUTE113 (28 | (0 << 8))
+#define MAP_ROUTE114 (29 | (0 << 8))
+#define MAP_ROUTE115 (30 | (0 << 8))
+#define MAP_ROUTE116 (31 | (0 << 8))
+#define MAP_ROUTE117 (32 | (0 << 8))
+#define MAP_ROUTE118 (33 | (0 << 8))
+#define MAP_ROUTE119 (34 | (0 << 8))
+#define MAP_ROUTE120 (35 | (0 << 8))
+#define MAP_ROUTE121 (36 | (0 << 8))
+#define MAP_ROUTE122 (37 | (0 << 8))
+#define MAP_ROUTE123 (38 | (0 << 8))
+#define MAP_ROUTE124 (39 | (0 << 8))
+#define MAP_ROUTE125 (40 | (0 << 8))
+#define MAP_ROUTE126 (41 | (0 << 8))
+#define MAP_ROUTE127 (42 | (0 << 8))
+#define MAP_ROUTE128 (43 | (0 << 8))
+#define MAP_ROUTE129 (44 | (0 << 8))
+#define MAP_ROUTE130 (45 | (0 << 8))
+#define MAP_ROUTE131 (46 | (0 << 8))
+#define MAP_ROUTE132 (47 | (0 << 8))
+#define MAP_ROUTE133 (48 | (0 << 8))
+#define MAP_ROUTE134 (49 | (0 << 8))
+#define MAP_UNDERWATER1 (50 | (0 << 8))
+#define MAP_UNDERWATER2 (51 | (0 << 8))
+#define MAP_UNDERWATER3 (52 | (0 << 8))
+#define MAP_UNDERWATER4 (53 | (0 << 8))
+
+// Map Group 1
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
+#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
+
+// Map Group 2
+#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
+#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
+#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
+#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
+
+// Map Group 3
+#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
+#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
+#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
+#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
+
+// Map Group 4
+#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
+#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
+
+// Map Group 5
+#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_LOBBY (1 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_CONTEST_HALL (2 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (3 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (4 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE1 (5 | (5 << 8))
+#define MAP_FALLARBOR_TOWN_HOUSE2 (6 | (5 << 8))
+
+// Map Group 6
+#define MAP_VERDANTURF_TOWN_CONTEST_LOBBY (0 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_CONTEST_HALL (1 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_MART (2 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (3 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (4 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (5 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (6 | (6 << 8))
+#define MAP_VERDANTURF_TOWN_HOUSE (7 | (6 << 8))
+
+// Map Group 7
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
+#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
+
+// Map Group 8
+#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
+#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
+#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
+#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
+#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
+
+// Map Group 9
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
+#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_LOBBY (2 | (9 << 8))
+#define MAP_SLATEPORT_CITY_CONTEST_HALL (3 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE1 (4 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (5 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (6 | (9 << 8))
+#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (7 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HARBOR (8 | (9 << 8))
+#define MAP_SLATEPORT_CITY_HOUSE2 (9 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (10 | (9 << 8))
+#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (11 | (9 << 8))
+#define MAP_SLATEPORT_CITY_MART (12 | (9 << 8))
+
+// Map Group 10
+#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
+#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
+#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
+#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
+#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
+#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
+
+// Map Group 11
+#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
+#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
+#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
+#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
+#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
+#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
+#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
+#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
+
+// Map Group 12
+#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
+#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
+#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
+#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
+#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
+#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
+
+// Map Group 13
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
+#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
+#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
+#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
+#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
+#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
+#define MAP_LILYCOVE_CITY_EMPTY_MAP (11 | (13 << 8))
+#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (12 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE1 (13 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE2 (14 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE3 (15 | (13 << 8))
+#define MAP_LILYCOVE_CITY_HOUSE4 (16 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (17 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (18 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (19 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (20 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (21 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (22 | (13 << 8))
+#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (23 | (13 << 8))
+
+// Map Group 14
+#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
+#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
+
+// Map Group 15
+#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
+
+// Map Group 16
+#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE (10 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
+
+// Map Group 17
+#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
+#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
+
+// Map Group 18
+#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
+#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
+
+// Map Group 19
+#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
+#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
+
+// Map Group 20
+#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
+#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
+#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
+
+// Map Group 21
+#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
+
+// Map Group 22
+#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
+
+// Map Group 23
+#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
+
+// Map Group 24
+#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
+#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
+#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
+#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
+#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
+#define MAP_DESERT_RUINS (6 | (24 << 8))
+#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
+#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
+#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
+#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
+#define MAP_PETALBURG_WOODS (11 | (24 << 8))
+#define MAP_MT_CHIMNEY (12 | (24 << 8))
+#define MAP_JAGGED_PASS (13 | (24 << 8))
+#define MAP_FIERY_PATH (14 | (24 << 8))
+#define MAP_MT_PYRE_1F (15 | (24 << 8))
+#define MAP_MT_PYRE_2F (16 | (24 << 8))
+#define MAP_MT_PYRE_3F (17 | (24 << 8))
+#define MAP_MT_PYRE_4F (18 | (24 << 8))
+#define MAP_MT_PYRE_5F (19 | (24 << 8))
+#define MAP_MT_PYRE_6F (20 | (24 << 8))
+#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
+#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
+#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
+#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
+#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B1F (39 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B2F (40 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B3F (41 | (24 << 8))
+#define MAP_CAVE_OF_ORIGIN_B4F (42 | (24 << 8))
+#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
+#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
+#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
+#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
+#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
+#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
+#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
+#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
+#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
+#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
+#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
+#define MAP_ISLAND_CAVE (67 | (24 << 8))
+#define MAP_ANCIENT_TOMB (68 | (24 << 8))
+#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
+#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
+#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
+#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
+#define MAP_SCORCHED_SLAB (73 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_1F (74 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B1F (75 | (24 << 8))
+#define MAP_MAGMA_HIDEOUT_B2F (76 | (24 << 8))
+#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
+#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
+#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
+#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
+#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
+#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
+#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
+#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
+#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
+
+// Map Group 25
+#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
+#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
+#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
+#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
+#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
+#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
+#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
+#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
+#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
+#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
+#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
+#define MAP_TRADE_CENTER (25 | (25 << 8))
+#define MAP_RECORD_CORNER (26 | (25 << 8))
+#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
+#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
+#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
+#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
+#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
+#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
+#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
+
+// Map Group 26
+#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
+#define MAP_BATTLE_TOWER_OUTSIDE (4 | (26 << 8))
+#define MAP_BATTLE_TOWER_LOBBY (5 | (26 << 8))
+#define MAP_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
+#define MAP_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
+#define MAP_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
+#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
+#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
+
+// Map Group 27
+#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
+#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
+
+// Map Group 28
+#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
+
+// Map Group 29
+#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
+#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
+
+// Map Group 30
+#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
+
+// Map Group 31
+#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
+
+// Map Group 32
+#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
+#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
+#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
+
+// Map Group 33
+#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
+
+#define MAP_GROUPS_COUNT 34
+
+#endif // GUARD_CONSTANTS_MAP_GROUPS_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
index f96591f60..e1e2da992 100644
--- a/include/constants/maps.h
+++ b/include/constants/maps.h
@@ -1,473 +1,11 @@
#ifndef GUARD_CONSTANTS_MAPS_H
#define GUARD_CONSTANTS_MAPS_H
-// Map Group 0
-#define MAP_PETALBURG_CITY (0 | (0 << 8))
-#define MAP_SLATEPORT_CITY (1 | (0 << 8))
-#define MAP_MAUVILLE_CITY (2 | (0 << 8))
-#define MAP_RUSTBORO_CITY (3 | (0 << 8))
-#define MAP_FORTREE_CITY (4 | (0 << 8))
-#define MAP_LILYCOVE_CITY (5 | (0 << 8))
-#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
-#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
-#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
-#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
-#define MAP_OLDALE_TOWN (10 | (0 << 8))
-#define MAP_DEWFORD_TOWN (11 | (0 << 8))
-#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
-#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
-#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
-#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
-#define MAP_ROUTE101 (16 | (0 << 8))
-#define MAP_ROUTE102 (17 | (0 << 8))
-#define MAP_ROUTE103 (18 | (0 << 8))
-#define MAP_ROUTE104 (19 | (0 << 8))
-#define MAP_ROUTE105 (20 | (0 << 8))
-#define MAP_ROUTE106 (21 | (0 << 8))
-#define MAP_ROUTE107 (22 | (0 << 8))
-#define MAP_ROUTE108 (23 | (0 << 8))
-#define MAP_ROUTE109 (24 | (0 << 8))
-#define MAP_ROUTE110 (25 | (0 << 8))
-#define MAP_ROUTE111 (26 | (0 << 8))
-#define MAP_ROUTE112 (27 | (0 << 8))
-#define MAP_ROUTE113 (28 | (0 << 8))
-#define MAP_ROUTE114 (29 | (0 << 8))
-#define MAP_ROUTE115 (30 | (0 << 8))
-#define MAP_ROUTE116 (31 | (0 << 8))
-#define MAP_ROUTE117 (32 | (0 << 8))
-#define MAP_ROUTE118 (33 | (0 << 8))
-#define MAP_ROUTE119 (34 | (0 << 8))
-#define MAP_ROUTE120 (35 | (0 << 8))
-#define MAP_ROUTE121 (36 | (0 << 8))
-#define MAP_ROUTE122 (37 | (0 << 8))
-#define MAP_ROUTE123 (38 | (0 << 8))
-#define MAP_ROUTE124 (39 | (0 << 8))
-#define MAP_ROUTE125 (40 | (0 << 8))
-#define MAP_ROUTE126 (41 | (0 << 8))
-#define MAP_ROUTE127 (42 | (0 << 8))
-#define MAP_ROUTE128 (43 | (0 << 8))
-#define MAP_ROUTE129 (44 | (0 << 8))
-#define MAP_ROUTE130 (45 | (0 << 8))
-#define MAP_ROUTE131 (46 | (0 << 8))
-#define MAP_ROUTE132 (47 | (0 << 8))
-#define MAP_ROUTE133 (48 | (0 << 8))
-#define MAP_ROUTE134 (49 | (0 << 8))
-#define MAP_UNDERWATER1 (50 | (0 << 8))
-#define MAP_UNDERWATER2 (51 | (0 << 8))
-#define MAP_UNDERWATER3 (52 | (0 << 8))
-#define MAP_UNDERWATER4 (53 | (0 << 8))
-
-// Map Group 1
-#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
-#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
-
-// Map Group 2
-#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
-#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
-#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
-#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
-#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
-
-// Map Group 3
-#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
-#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
-#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
-#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
-#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
-#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
-
-// Map Group 4
-#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
-#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
-
-// Map Group 5
-#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_CONTEST_LOBBY (1 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_CONTEST_HALL (2 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (3 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (4 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE1 (5 | (5 << 8))
-#define MAP_FALLARBOR_TOWN_HOUSE2 (6 | (5 << 8))
-
-// Map Group 6
-#define MAP_VERDANTURF_TOWN_CONTEST_LOBBY (0 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_CONTEST_HALL (1 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_MART (2 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (3 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (4 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (5 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (6 | (6 << 8))
-#define MAP_VERDANTURF_TOWN_HOUSE (7 | (6 << 8))
-
-// Map Group 7
-#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
-#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
-
-// Map Group 8
-#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
-#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
-#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
-#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
-#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
-#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
-#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
-
-// Map Group 9
-#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
-#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
-#define MAP_SLATEPORT_CITY_CONTEST_LOBBY (2 | (9 << 8))
-#define MAP_SLATEPORT_CITY_CONTEST_HALL (3 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE1 (4 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (5 | (9 << 8))
-#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (6 | (9 << 8))
-#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (7 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HARBOR (8 | (9 << 8))
-#define MAP_SLATEPORT_CITY_HOUSE2 (9 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (10 | (9 << 8))
-#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (11 | (9 << 8))
-#define MAP_SLATEPORT_CITY_MART (12 | (9 << 8))
-
-// Map Group 10
-#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
-#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
-#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
-#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
-#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
-#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
-#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
-#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
-
-// Map Group 11
-#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
-#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
-#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
-#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
-#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
-#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
-#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
-#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
-#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
-
-// Map Group 12
-#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
-#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
-#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
-#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
-#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
-#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
-#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
-
-// Map Group 13
-#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
-#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
-#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
-#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
-#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
-#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
-#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
-#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
-#define MAP_LILYCOVE_CITY_EMPTY_MAP (11 | (13 << 8))
-#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (12 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE1 (13 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE2 (14 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE3 (15 | (13 << 8))
-#define MAP_LILYCOVE_CITY_HOUSE4 (16 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (17 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (18 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (19 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (20 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (21 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (22 | (13 << 8))
-#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (23 | (13 << 8))
-
-// Map Group 14
-#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
-#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
-
-// Map Group 15
-#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
-
-// Map Group 16
-#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE (10 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
-#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
-
-// Map Group 17
-#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
-#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
-
-// Map Group 18
-#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
-#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
-
-// Map Group 19
-#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
-#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
-
-// Map Group 20
-#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
-#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
-#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
-
-// Map Group 21
-#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
-
-// Map Group 22
-#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
-
-// Map Group 23
-#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
-
-// Map Group 24
-#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
-#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
-#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
-#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
-#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
-#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
-#define MAP_DESERT_RUINS (6 | (24 << 8))
-#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
-#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
-#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
-#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
-#define MAP_PETALBURG_WOODS (11 | (24 << 8))
-#define MAP_MT_CHIMNEY (12 | (24 << 8))
-#define MAP_JAGGED_PASS (13 | (24 << 8))
-#define MAP_FIERY_PATH (14 | (24 << 8))
-#define MAP_MT_PYRE_1F (15 | (24 << 8))
-#define MAP_MT_PYRE_2F (16 | (24 << 8))
-#define MAP_MT_PYRE_3F (17 | (24 << 8))
-#define MAP_MT_PYRE_4F (18 | (24 << 8))
-#define MAP_MT_PYRE_5F (19 | (24 << 8))
-#define MAP_MT_PYRE_6F (20 | (24 << 8))
-#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
-#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
-#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
-#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
-#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_B1F (39 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_B2F (40 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_B3F (41 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_B4F (42 | (24 << 8))
-#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
-#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
-#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
-#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
-#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
-#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
-#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
-#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
-#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
-#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
-#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
-#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
-#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
-#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
-#define MAP_ISLAND_CAVE (67 | (24 << 8))
-#define MAP_ANCIENT_TOMB (68 | (24 << 8))
-#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
-#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
-#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
-#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
-#define MAP_SCORCHED_SLAB (73 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_1F (74 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_B1F (75 | (24 << 8))
-#define MAP_MAGMA_HIDEOUT_B2F (76 | (24 << 8))
-#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
-#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
-#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
-#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
-#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
-#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
-#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
-#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
-#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
-
-// Map Group 25
-#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
-#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
-#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
-#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
-#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
-#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
-#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
-#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
-#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
-#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
-#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
-#define MAP_TRADE_CENTER (25 | (25 << 8))
-#define MAP_RECORD_CORNER (26 | (25 << 8))
-#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
-#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
-#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
-#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
-#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
-#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
-#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
-
-// Map Group 26
-#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
-#define MAP_BATTLE_TOWER_OUTSIDE (4 | (26 << 8))
-#define MAP_BATTLE_TOWER_LOBBY (5 | (26 << 8))
-#define MAP_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
-#define MAP_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
-#define MAP_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
-#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
-#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
-
-// Map Group 27
-#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
-#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
-
-// Map Group 28
-#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
-
-// Map Group 29
-#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
-#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
-#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
-#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
-
-// Map Group 30
-#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
-
-// Map Group 31
-#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
-
-// Map Group 32
-#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
-#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
-#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
-
-// Map Group 33
-#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
-
+#include "map_groups.h"
#define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))
-
#define MAP_GROUP(map) (MAP_##map >> 8)
#define MAP_NUM(map) (MAP_##map & 0xFF)
diff --git a/include/constants/region_map_sections.h b/include/constants/region_map_sections.h
index 254ae2edd..4fd9aa894 100644
--- a/include/constants/region_map_sections.h
+++ b/include/constants/region_map_sections.h
@@ -89,6 +89,6 @@
#define MAPSEC_SKY_PILLAR 0x55
#define MAPSEC_SECRET_BASE 0x56
#define MAPSEC_DYNAMIC 0x57
-#define MAPSEC_NOTHING 0x58
+#define MAPSEC_NONE 0x58
#endif // GUARD_REGIONMAPSEC_H
diff --git a/include/contest_painting_effects.h b/include/contest_painting_effects.h
index 1fa3c90fb..8b99ba692 100644
--- a/include/contest_painting_effects.h
+++ b/include/contest_painting_effects.h
@@ -6,9 +6,9 @@ struct Unk03005E20
u8 var_0;
u8 pad1[3];
u16 (*var_4)[][32];
- u16 (*var_8)[];
+ u16 *var_8;
u8 pad0C[4];
- u32 var_10;
+ u16 (*var_10)[][32];
u16 var_14;
u16 var_16;
u8 var_18;
diff --git a/include/ewram.h b/include/ewram.h
index 01c4c3492..390ad9d80 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -25,8 +25,6 @@ extern u8 gSharedMem[];
#define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram)
#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0))
#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
-#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
-#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0))
#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
@@ -133,6 +131,7 @@ extern u8 gSharedMem[];
#define ewram1608B gSharedMem[0x1608B]
#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler])
+#define ewram16094arr(battler) (gSharedMem[0x16094 + battler])
#define EWRAM_1609D (gSharedMem[0x1609D])
#define ewram160A1 (gSharedMem[0x160A1])
#define ewram160A4 (gSharedMem[0x160A4])
@@ -160,7 +159,7 @@ extern u8 gSharedMem[];
#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[0x160CC + 2 * (battler)])
#define ewram160D4(battler) (gSharedMem[0x160D4 + (battler / 2) * 2])
#define ewram160D8(battler) (gSharedMem[0x160D8 + (battler / 2)])
-#define ewram160DA(battler) (gSharedMem[0x160DA + (battler / 2)])
+#define ewram160DA(battler) (gSharedMem[0x160DA + (battler >> 1)])
#define ewram160DD (gSharedMem[0x160DD])
#define ewram160E0(i) (gSharedMem[0x160E0 + i])
#define ewram160E6 (gSharedMem[0x160E6])
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index 9df1ed940..488ccfbdc 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -100,7 +100,7 @@ struct CgbChannel
u8 le;
u8 sw;
u32 fr;
- u32 wp;
+ u32* wp;
u32 cp;
u32 tp;
u32 pp;
diff --git a/include/heated_rock.h b/include/heated_rock.h
index 26856fe7f..9ef460b35 100644
--- a/include/heated_rock.h
+++ b/include/heated_rock.h
@@ -7,4 +7,4 @@
u16 sub_80D5940(u8 spriteId);
void sub_80D5994(struct Sprite *sprite, s16 x, s16 y);
-#endif // GUARD_HEATED_ROCK_H \ No newline at end of file
+#endif // GUARD_HEATED_ROCK_H
diff --git a/include/party_menu.h b/include/party_menu.h
index e687f48c4..172435b2d 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -17,6 +17,16 @@ enum
PARTY_MENU_TYPE_MOVE_TUTOR,
};
+enum
+{
+ PARTY_CHOOSE_MON,
+ PARTY_MUST_CHOOSE_MON,
+ PARTY_CANT_SWITCH,
+ PARTY_USE_ITEM_ON,
+ PARTY_ABILITY_PREVENTS,
+ PARTY_GIVE_ITEM,
+};
+
// The party menu screen is presented differently depending on which menu layout is set.
enum
{
diff --git a/include/pokenav.h b/include/pokenav.h
index a72cea9c4..654911593 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -1,14 +1,15 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
+#include "main.h"
#include "region_map.h"
#include "mon_markings.h"
-struct UnkPokenavStruct_Sub {
- /*0x0*/ u16 unk0;
- /*0x2*/ u16 unk2;
- /*0x4*/ u8 unk4;
- /*0x5*/ u8 unk5;
+struct TrainersEyeStruct {
+ /*0x0*/ u16 opponentId;
+ /*0x2*/ u16 regionMapSectionId;
+ /*0x4*/ u8 rematchTableIdx;
+ /*0x5*/ u8 rematchNo;
};
struct UnkPokenavStruct_Sub1 {
@@ -37,9 +38,9 @@ struct UnkPokenavStruct_Sub3 {
struct UnkUsePokeblockSub {
/*0x0*/ u8 unk0;
/*0x1*/ u8 unk1;
- /*0x2*/ u8 partyIdx:5;
- /*0x2*/ u16 unk2:9;
- /*0x3*/ u8 unk4:1;
+ /*0x2*/ u16 partyIdx:5;
+ /*0x2*/ u16 unk2_5:9;
+ /*0x3*/ u16 unk3_14:1;
};
struct UnkPokenav11 {
@@ -47,9 +48,23 @@ struct UnkPokenav11 {
u16 unk2;
};
+struct UnknownStruct_Pokenav_8FF0 {
+ /*0x000*/ u8 unk0[4][5];
+ /*0x014*/ struct UnkPokenav11 unk14[4][5];
+ /*0x064*/ struct UnkPokenav11 unk64[10][5];
+ /*0x12C*/ struct UnkPokenav11 unk12C[5];
+ /*0x140*/ u16 unk140[66][2];
+ /*0x248*/ u16 unk248[66][2];
+ /*0x350*/ u16 unk350;
+ /*0x352*/ u16 unk352;
+ /*0x354*/ u8 unk354;
+ /*0x355*/ u8 unk355;
+};
+
struct UnkPokenavStruct {
/*0x0000*/ u16 unk0[6][0x40];
- /*0x0300*/ u8 filler0300[0x6];
+ /*0x0300*/ void (*unk300)(void);
+ /*0x0304*/ u16 unk304;
/*0x0306*/ u16 unk306;
/*0x0306*/ int unk308;
/*0x030C*/ s16 unk030C;
@@ -83,12 +98,23 @@ struct UnkPokenavStruct {
/*0x6DA0*/ u16 unk6DA0;
/*0x6DA2*/ u16 unk6DA2;
/*0x6DA4*/ u16 taskId6DA4;
- /*0x6DA6*/ u8 filler6DA6[0x6];
+ /*0x6DA6*/ u8 filler6DA6[0x5];
+ /*0x6DAB*/ u8 unk6DAB;
/*0x6DAC*/ u8 unk6DAC;
/*0x6DAD*/ s8 unk6DAD;
/*0x6DAE*/ s8 unk6DAE;
/*0x6DAF*/ u8 filler6DAF[0x3];
- /*0x6DB2*/ u8 unk6DB2[0x66];
+ /*0x6DB2*/ u8 unk6DB2[0x2A];
+ /*0x6DDC*/ s8 unk6DDC;
+ /*0x6DDD*/ u8 filler6DDD[0x13];
+ /*0x6DF0*/ s8 unk6DF0;
+ /*0x6DF1*/ u8 filler6DF1[0x0B];
+ /*0x6DFC*/ u8 unk6DFC;
+ /*0x6DFD*/ u8 filler6DFD[0x17];
+ /*0x6E14*/ u8 unk6E14;
+ /*0x6E15*/ u8 unk6E15;
+ /*0x6E16*/ u8 unk6E16;
+ /*0x6E17*/ u8 unk6E17;
/*0x6E18*/ struct RegionMap regionMap;
/*0x7698*/ u16 unk7698;
/*0x769A*/ u16 unk769A;
@@ -113,7 +139,7 @@ struct UnkPokenavStruct {
/*0x877C*/ s16 unk877C;
/*0x877E*/ u16 unk877E;
/*0x8780*/ u16 unk8780;
- /*0x8782*/ u8 filler8782[0x2];
+ /*0x8782*/ u16 unk8782;
/*0x8784*/ u16 unk8784;
/*0x8786*/ u16 unk8786;
/*0x8788*/ u8 unk8788[0x40];
@@ -124,11 +150,9 @@ struct UnkPokenavStruct {
/*0x87CC*/ struct Sprite *unk87CC;
/*0x87D0*/ struct Sprite *unk87D0[2];
/*0x87D8*/ u8 unk87D8;
- /*0x87D9*/ u8 filler87D9[0x1];
/*0x87DA*/ s16 unk87DA;
/*0x87DC*/ s16 unk87DC;
/*0x87DE*/ u8 unk87DE;
- /*0x87DF*/ u8 filler87DF[0x1];
/*0x87E0*/ bool8 (*unk87E0)(void);
/*0x87E4*/ struct Sprite *unk87E4[7];
/*0x8800*/ struct Sprite *unk8800[10];
@@ -142,23 +166,25 @@ struct UnkPokenavStruct {
/*0x8FE4*/ u16 unk8FE4;
/*0x8FE6*/ u8 unk8FE6;
/*0x8FE7*/ u8 unk8FE7;
- /*0x8FE8*/ u8 filler8FE8[0x1];
+ /*0x8FE8*/ s8 unk8FE8;
/*0x8fe9*/ s8 unk8fe9;
/*0x8fea*/ s8 unk8FEA;
/*0x8feb*/ s8 unk8FEB;
/*0x8fec*/ s8 unk8FEC;
- /*0x8FED*/ u8 filler8FED[0x1];
/*0x8fee*/ u16 unk8FEE;
+
+ // UnknownStruct_Pokenav_8FF0
/*0x8ff0*/ u8 unk8ff0[4][5];
- /*0x9004*/ struct UnkPokenav11 unk9004[3][5];
- /*0x9040*/ struct UnkPokenav11 unk9040[5];
- /*0x9054*/ struct UnkPokenav11 unk9054[9][5];
- /*0x9108*/ u8 unk9108[0x14];
+ /*0x9004*/ struct UnkPokenav11 unk9004[4][5];
+ /*0x9054*/ struct UnkPokenav11 unk9054[10][5];
/*0x911C*/ struct UnkPokenav11 unk911C[5];
- /*0x9130*/ u8 filler9130[0x212];
+ /*0x9130*/ u16 unk9130[66][2];
+ /*0x9238*/ u16 unk9238[66][2];
+ /*0x9340*/ u16 unk9340;
/*0x9342*/ u16 unk9342;
/*0x9344*/ u8 unk9344;
- /*0x9345*/ u8 filler9345[3];
+ /*0x9345*/ u8 unk9345;
+
/*0x9348*/ struct Sprite *unk9348;
/*0x934C*/ u16 unk934C[0x280];
/*0x984C*/ u8 unk984C[0xC][0x100];
@@ -170,7 +196,9 @@ struct UnkPokenavStruct {
/*0xBC91*/ u8 unkBC91;
/*0xBC92*/ u8 unkBC92;
/*0xBC93*/ u8 unkBC93;
- /*0xBC94*/ u8 fillerBC94[0x6];
+ /*0xBC94*/ u8 unkBC94;
+ /*0xBC95*/ u8 unkBC95;
+ /*0xBC96*/ u8 unkBC96[0x4];
/*0xBC9A*/ u8 unkBC9A;
/*0xBC9B*/ u8 unkBC9B;
/*0xBC9C*/ u8 unkBC9C[22][200];
@@ -182,14 +210,15 @@ struct UnkPokenavStruct {
/*0xCE8E*/ u16 palettesCE8E[0x21];
/*0xCED0*/ struct Sprite *unkCED0;
/*0xCED4*/ struct Sprite *unkCED4[5];
- /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[69];
+ /*0xCEE8*/ struct TrainersEyeStruct trainersEye[69];
/*0xD110*/ const u8 *trainerEyeDescriptionLines[4];
/*0xD120*/ u8 fillerD114[0x18];
/*0xD138*/ u8 unkD138[0x20];
/*0xD158*/ u16 unkD158;
- /*0xD15A*/ u16 unkD15A;
+ /*0xD15A*/ s16 unkD15A;
/*0xD15C*/ u16 unkD15C;
- /*0xD15E*/ u8 fillerD15E[2];
+ /*0xD15E*/ u8 unkD15E;
+ /*0xD15F*/ u8 unkD15F;
/*0xD160*/ u16 unkD160;
/*0xD162*/ u8 unkD162;
/*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164;
@@ -202,7 +231,7 @@ struct UnkPokenavStruct {
/*0x131E4*/ u8 unk131E4[0x1000];
};
-extern struct UnkPokenavStruct *const gUnknown_083DFEC4;
+extern struct UnkPokenavStruct *const gPokenavStructPtr;
bool8 sub_80F170C(void);
bool8 sub_80F1778(void);
@@ -217,7 +246,8 @@ void sub_80F3C94(void);
void sub_80F3D00(void);
void sub_80F4BD0(void);
void sub_80F556C(struct UnkPokenav11*);
-void sub_80F567C(void *, void *);
+void sub_80F55AC(u8 *a0, struct UnkPokenav11 a1[]);
+void sub_80F567C(u8 *, struct UnkPokenav11 *);
void sub_80F5B38(void);
bool8 sub_80F5B50(void);
void sub_80F5CDC(u8);
@@ -229,5 +259,215 @@ void sub_80F5550(struct UnkPokenav11*, struct UnkPokenav11*);
bool8 sub_80F555C(void);
void sub_80F7224(u8);
void sub_80F5BDC(void);
+void sub_80F2F7C(u8 arg0);
+
+bool8 sub_80F0D5C(void);
+void LoadTrainerEyesDescriptionLines(void);
+void sub_80F0FFC(u8);
+void sub_80F105C(void);
+void sub_80F43D4(u8 *);
+void sub_80F063C(s16 arg0);
+void sub_80F6074(s16 arg0);
+void sub_80F6208(void);
+bool8 sub_80F6250();
+
+void sub_80EBCA8();
+void sub_80EEE20();
+bool8 sub_80EEE54();
+void sub_80EEE08();
+void sub_80EED2C(u8);
+void sub_80EC268();
+void sub_80EED1C();
+void sub_80EE9C0(u8, u8, u8);
+bool8 sub_80EEA0C();
+bool8 sub_80EEC10();
+void sub_80EED9C();
+void sub_80EDB88();
+void sub_80EC4A0();
+void sub_80EC81C();
+void sub_80EE96C();
+void sub_80EE3D8();
+bool8 sub_80EEF34();
+void sub_80EED0C();
+void sub_80EC67C();
+void sub_80EC86C();
+bool8 sub_80EEC90();
+void sub_80ED620();
+void sub_80EC960();
+void sub_80ED01C();
+void sub_80ECC08();
+void sub_80ED31C();
+void sub_80ED4D8();
+void sub_80ED858();
+void sub_80EDDBC();
+void sub_80EDE70();
+void sub_80EDEE4();
+void sub_80EE06C();
+void sub_80EE294();
+void sub_80EE58C();
+void sub_80EE658();
+void sub_80EE8F4();
+void sub_80EEDC4();
+void ShowMapNamePopUpWindow(void);
+void sub_80F0954(u16, u16, u16);
+bool8 sub_80F098C(void);
+u8 *sub_80F445C(u8*, u16);
+void sub_80F081C(u8);
+bool8 sub_80F0944(void);
+u8 *sub_80F4428(u8*, u16, u8);
+void sub_80F700C(u8*, u16);
+void sub_80F0B24(void);
+bool8 sub_80F0B44(void);
+void sub_80F0C28(void);
+bool8 sub_80F0C48(void);
+void LoadTrainerEyesDescriptionLines(void);
+bool8 sub_80F0D5C(void);
+void sub_80F0EC0(void);
+bool8 sub_80F0EF4(void);
+void sub_80F0F64(void);
+void sub_80F0FA0(void);
+bool8 sub_80F0FEC(void);
+bool8 sub_80F0718(void);
+void sub_80F0FFC(u8);
+void sub_80F19DC(u8*);
+bool8 sub_80F1080(void);
+void sub_80F1614(void);
+void DrawMonRibbonIcons(void);
+void sub_80F13FC(void);
+void sub_80F1438(void);
+void sub_80F1494(void);
+bool8 sub_80F162C(u8);
+void sub_80F01E0(u16);
+void sub_80F19FC(void);
+void sub_80F1A74(void);
+void sub_80F1A80(void);
+void sub_80F1A90(void);
+bool8 sub_80F1AC4(void);
+void sub_80F1B8C(u8);
+bool8 sub_80F1BC8(u8);
+void sub_80F2458(u8);
+void sub_80F2514(u8);
+void sub_80F1DF0(void);
+void sub_80F2218(struct Sprite *sprite);
+bool8 sub_80F1E50(void);
+bool8 sub_80F22F8(void);
+void sub_80F2108(void);
+bool8 sub_80F1E6C(void);
+void sub_80F1E84(void);
+void sub_80F2148(void);
+void sub_80F2240(struct Sprite *sprite);
+bool8 sub_80F1F10(void);
+bool8 sub_80F2360(void);
+void sub_80F2170(void);
+bool8 sub_80F23C8(void);
+void sub_80F21F8(void);
+void sub_80F1FF0(void);
+void sub_80F208C(void);
+void sub_80F22B0(struct Sprite *sprite);
+void sub_80F240C(struct Sprite *sprite);
+void sub_80F2598(void);
+void sub_80F2620(void);
+bool8 sub_80F26BC(void);
+void sub_80F2C58(struct Sprite *sprite);
+void sub_80F2D04(u8);
+void sub_80F2D6C(u8);
+void sub_80F2DD8(void);
+void sub_80F2DF4(void);
+void sub_80F2FEC(struct Sprite *sprite);
+void sub_80F2FB0(void);
+void sub_80F3008(u8);
+void sub_80F3130(void);
+void sub_80F3264(void);
+void sub_80F3294(u8);
+void sub_80F35B4(void);
+void sub_80F363C(struct Sprite *sprite);
+void SetMonMarkings(u16, u16, u8);
+void sub_80F36F0(void);
+bool8 sub_80F3724(void);
+void sub_80F379C(void);
+bool8 sub_80F37D0(void);
+void sub_80F38B8(void);
+bool8 sub_80F38EC(void);
+void sub_80F3970(void);
+bool8 sub_80F39A4(void);
+void sub_80F3B00(void);
+bool8 sub_80F3B58(void);
+void sub_80F3B94(void);
+bool8 sub_80F3BD4(void);
+void sub_80F3C2C(void);
+void sub_80F3F20(u8, u8);
+void sub_80F3FAC(void);
+void sub_80F3FF0(void);
+bool8 sub_80F4024(void);
+void sub_80F42C4(u8*);
+void sub_80F4394(void);
+u8 *sub_80F6514(u8*, u16, u8);
+u8 *sub_80F443C(u8 *, u16);
+void sub_80F55AC(u8*, struct UnkPokenav11 *);
+void sub_80F4CF0(void);
+void sub_80F4D44(void);
+bool8 sub_80F4D88(void);
+void sub_80F53EC(struct UnkPokenav11*, struct UnkPokenav11*);
+bool8 sub_80F5504(void);
+bool8 sub_80F5264(void);
+bool8 sub_80F52F8(void);
+bool8 sub_80F5364(void);
+
+void sub_80F0900(void);
+void sub_80F01A4(void);
+void sub_80EFD3C(void);
+void sub_8095C8C();
+void sub_80EFDA0(void);
+void sub_80EFD74(void);
+bool8 sub_80EFC64(void);
+void sub_80EFC3C(void);
+void sub_80EF624(const u16 *, const u16 *, u8, u8, u16 *);
+void sub_80EF7D4(void);
+void sub_80EF54C(u8);
+void sub_80EF58C(u8);
+void sub_80F6FFC();
+void sub_80F6FB8(bool8);
+void sub_80F6DB8();
+bool8 sub_80F6E9C();
+bool8 sub_80F6ED4();
+bool8 sub_80F70FC();
+void sub_80F708C(s8);
+void sub_80F6F10();
+void sub_80F15A8(void);
+void sub_80F6A4C(s8);
+bool8 sub_80F6AF0();
+u8 sub_80F68E8();
+void sub_80F66E0();
+void sub_80F638C();
+bool8 sub_80F63D0();
+void sub_80EFF34();
+bool8 sub_80EFF68();
+void sub_80F6134();
+u8 sub_80F5DD4();
+void sub_80F0264(u8);
+bool8 sub_80F02A0();
+void sub_80EF9F8(void);
+bool8 sub_80EFBDC(bool8);
+void sub_80EFBB0(void);
+void sub_80EEFBC(u8);
+void sub_80EF814(void);
+void sub_80EF840(void);
+bool8 sub_80EF874(void);
+bool8 sub_80F6250();
+void sub_80F6C20();
+void sub_80EF248(u8);
+bool8 sub_80EF284(u8);
+void sub_80EF428(u8, u8);
+bool8 sub_80EEF78();
+void sub_80EBC10();
+void sub_80EBDBC(void (*func)(void));
+void sub_80EBBE8();
+void sub_80EBDD8();
+void sub_80EBD90();
+void sub_80EBD18();
+void sub_80FB260();
+void sub_80EFE7C(void);
+void sub_80F5BF0();
+void sub_80F6F64();
#endif // GUARD_POKENAV_H
diff --git a/include/region_map.h b/include/region_map.h
index 7ded72e49..24c768ea5 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -15,46 +15,46 @@ struct RegionMap
/*0x16*/ u8 unk16;
/*0x17*/ u8 everGrandeCityArea;
/*0x18*/ u8 (*inputCallback)(void);
- struct Sprite *cursorSprite;
- struct Sprite *playerIconSprite;
- s32 bg2x;
- s32 bg2y;
- u32 unk2C; //
- u32 unk30; // Map rotation parameters
- u32 unk34; // Likely a scrapped feature
- u32 unk38; //
- s32 unk3C;
- s32 unk40;
- s32 unk44;
- s32 unk48;
- s32 unk4C;
- s32 unk50;
- u16 cursorPosX;
- u16 cursorPosY;
- u16 cursorTileTag;
- u16 cursorPaletteTag;
- s16 scrollX;
- s16 scrollY;
- s16 unk60;
- s16 unk62;
- u16 unk64;
- u16 unk66;
- u16 unk68;
- u16 unk6A;
- u16 unk6C;
- u16 unk6E;
- u16 playerIconTileTag;
- u16 playerIconPaletteTag;
- u16 unk74;
- u16 unk76;
- bool8 zoomed;
- u8 initStep;
- s8 unk7A;
- s8 cursorDeltaX;
- s8 cursorDeltaY;
- bool8 needUpdateVideoRegs;
- bool8 blinkPlayerIcon;
- bool8 playerIsInCave;
+ /*0x1C*/ struct Sprite *cursorSprite;
+ /*0x20*/ struct Sprite *playerIconSprite;
+ /*0x24*/ s32 bg2x;
+ /*0x28*/ s32 bg2y;
+ /*0x2C*/ u32 unk2C; //
+ /*0x30*/ u32 unk30; // Map rotation parameters
+ /*0x34*/ u32 unk34; // Likely a scrapped feature
+ /*0x38*/ u32 unk38; //
+ /*0x3C*/ s32 unk3C;
+ /*0x40*/ s32 unk40;
+ /*0x44*/ s32 unk44;
+ /*0x48*/ s32 unk48;
+ /*0x4C*/ s32 unk4C;
+ /*0x50*/ s32 unk50;
+ /*0x54*/ u16 cursorPosX;
+ /*0x56*/ u16 cursorPosY;
+ /*0x58*/ u16 cursorTileTag;
+ /*0x5A*/ u16 cursorPaletteTag;
+ /*0x5C*/ s16 scrollX;
+ /*0x5E*/ s16 scrollY;
+ /*0x60*/ s16 unk60;
+ /*0x62*/ s16 unk62;
+ /*0x64*/ u16 unk64;
+ /*0x66*/ u16 unk66;
+ /*0x68*/ u16 unk68;
+ /*0x6A*/ u16 unk6A;
+ /*0x6C*/ u16 unk6C;
+ /*0x6E*/ u16 unk6E;
+ /*0x70*/ u16 playerIconTileTag;
+ /*0x72*/ u16 playerIconPaletteTag;
+ /*0x74*/ u16 unk74;
+ /*0x76*/ u16 unk76;
+ /*0x78*/ bool8 zoomed;
+ /*0x79*/ u8 initStep;
+ /*0x7A*/ s8 unk7A;
+ /*0x7B*/ s8 cursorDeltaX;
+ /*0x7C*/ s8 cursorDeltaY;
+ /*0x7D*/ bool8 needUpdateVideoRegs;
+ /*0x7E*/ bool8 blinkPlayerIcon;
+ /*0x7F*/ bool8 playerIsInCave;
/*0x080*/ u8 filler80[0x100];
/*0x180*/ u8 cursorSmallImage[0x100];
/*0x280*/ u8 cursorLargeImage[0x600];
@@ -80,6 +80,6 @@ void debug_sub_8110F28(void);
u16 GetRegionMapSectionAt_(u16 x, u16 y);
void sub_80FBF94(void);
-extern const struct RegionMapLocation gRegionMapLocations[];
+extern const struct RegionMapLocation gRegionMapEntries[];
#endif // GUARD_REGION_MAP_H