diff --git a/input.cpp b/input.cpp index 23d8050..53077e4 100644 --- a/input.cpp +++ b/input.cpp @@ -5,10 +5,6 @@ #include "input.hpp" #include "common/intback.hpp" -constexpr int input_arr = 10; -constexpr int input_das = 20; -constexpr int input_debounce = 2; - static inline void input_count(count_flop_t& button, const uint32_t input, const uint32_t mask) { @@ -28,24 +24,6 @@ input_count(count_flop_t& button, const uint32_t input, const uint32_t mask) } } -static inline int32_t -input_flopped(count_flop_t& button) -{ - if (button.count == input_debounce && button.flop == 0) { - button.flop = 1; - return 1; - } else if (button.flop == 1 && button.das == input_das && button.repeat == 0) { - button.repeat = 1; - button.das = 0; - return 2; - } else if (button.repeat == 1 && (button.das == input_arr)) { - button.das = 0; - return 2; - } else { - return 0; - } -} - input_t input = { 0 }; void digital_callback(uint8_t fsm_state, uint8_t data) diff --git a/input.hpp b/input.hpp index c2d7574..99d1bc8 100644 --- a/input.hpp +++ b/input.hpp @@ -28,3 +28,30 @@ struct input_t { void digital_callback(uint8_t fsm_state, uint8_t data); extern input_t input; + +constexpr int input_arr = 10; +constexpr int input_das = 20; +constexpr int input_debounce = 2; + +static constexpr inline int32_t +input_flopped(count_flop_t& button) +{ + if (button.count == input_debounce && button.flop == 0) { + button.flop = 1; + return 1; + } else if (button.flop == 1 && button.das == input_das && button.repeat == 0) { + button.repeat = 1; + button.das = 0; + return 2; + } else if (button.repeat == 1 && (button.das == input_arr)) { + button.das = 0; + return 2; + } else { + return 0; + } +} + +struct event { + static inline bool cursor_left() { return input_flopped(input.a) == 1; } + static inline bool cursor_right() { return input_flopped(input.b) == 1; } +}; diff --git a/main.cpp b/main.cpp index 782d576..6102a12 100644 --- a/main.cpp +++ b/main.cpp @@ -77,14 +77,44 @@ constexpr inline void render_block(const uint32_t base_pattern, } } -void render(const uint32_t base_pattern) -{ - const map_t& map = maps[map_t::pallet_town]; +constexpr int32_t last_map = map_t::wardens_house; - for (uint32_t map_y = 0; map_y < map.height; map_y++) { - for (uint32_t map_x = 0; map_x < map.width; map_x++) { +struct state_t { + int32_t map_ix; + enum tileset_t::tileset tileset; + uint32_t base_pattern; +}; + +static state_t state = { 0, tileset_t::cavern, 0 }; + +enum tileset_t::tileset load_tileset(enum tileset_t::tileset tileset) +{ + uint32_t top = (sizeof (union vdp2_vram)); + uint32_t base_address = top = cell_data(tilesets[tileset].tileset, top); + state.base_pattern = base_address / 32; + + /* use 1-word (16-bit) pattern names */ + /* update N0SCN in the event base_pattern moves (it usually does not) */ + vdp2.reg.PNCN0 = PNCN0__N0PNB__1WORD | PNCN0__N0CNSM | PNCN0__N0SCN((state.base_pattern >> 10) & 0x1f); + + return tileset; +} + +#include "map.hpp" + +void render() +{ + const map_t& map = maps[maps_ix[state.map_ix]]; + + if (map.tileset != state.tileset) + state.tileset = load_tileset(map.tileset); + + uint32_t height = map.height > 16 ? 16 : map.height; + uint32_t width = map.width > 16 ? 16 : map.width; + for (uint32_t map_y = 0; map_y < height; map_y++) { + for (uint32_t map_x = 0; map_x < width; map_x++) { const uint8_t block = map.blocks.start[map.width * map_y + map_x]; - render_block(base_pattern, + render_block(state.base_pattern, tilesets[map.tileset], map_x, map_y, @@ -93,13 +123,36 @@ void render(const uint32_t base_pattern) } } -static uint32_t base_pattern; +void update() +{ + if (event::cursor_right()) { + state.map_ix++; + if (state.map_ix >= map_ix_last) + state.map_ix = 0; + } + if (event::cursor_left()) { + state.map_ix--; + if (state.map_ix < 0) state.map_ix = last_map; + } +} + +static int count = 0; extern "C" void v_blank_in_int(void) __attribute__ ((interrupt_handler)); void v_blank_in_int() { - render(base_pattern); + if (++count > 60) { + count = 0; + state.map_ix++; + if (state.map_ix >= map_ix_last) + state.map_ix = 0; + } + scu.reg.IST &= ~(IST__V_BLANK_IN); + scu.reg.IMS = ~(IMS__SMPC | IMS__V_BLANK_IN); + + render(); + update(); } extern "C" @@ -150,14 +203,7 @@ void main() vdp2.reg.MPABN0 = MPABN0__N0MPB(0) | MPABN0__N0MPA(plane_a); // bits 5~0 vdp2.reg.MPCDN0 = MPABN0__N0MPD(0) | MPABN0__N0MPC(0); // bits 5~0 - uint32_t top = (sizeof (union vdp2_vram)); palette_data(); - uint32_t base_address = top = cell_data(tilesets[tileset_t::overworld].tileset, top); - base_pattern = base_address / 32; - - /* use 1-word (16-bit) pattern names */ - vdp2.reg.PNCN0 = PNCN0__N0PNB__1WORD | PNCN0__N0CNSM | PNCN0__N0SCN((base_pattern >> 10) & 0x1f); - //vdp2.reg.PNCN0 = PNCN0__N0PNB__2WORD | PNCN0__N0CNSM; vdp2.reg.CYCA0 = 0x0fff'ffff; vdp2.reg.CYCA1 = 0xffff'ffff; diff --git a/map.hpp b/map.hpp new file mode 100644 index 0000000..2b4fd7f --- /dev/null +++ b/map.hpp @@ -0,0 +1,226 @@ +enum map_t::map maps_ix[] = { + map_t::agathas_room, + map_t::bike_shop, + map_t::bills_house, + map_t::blues_house, + map_t::brunos_room, + map_t::celadon_chief_house, + map_t::celadon_city, + map_t::celadon_diner, + map_t::celadon_gym, + map_t::celadon_hotel, + map_t::celadon_mansion_1f, + map_t::celadon_mansion_2f, + map_t::celadon_mansion_3f, + map_t::celadon_mansion_roof, + map_t::celadon_mansion_roof_house, + map_t::celadon_mart_1f, + map_t::celadon_mart_2f, + map_t::celadon_mart_3f, + map_t::celadon_mart_4f, + map_t::celadon_mart_5f, + map_t::celadon_mart_elevator, + map_t::celadon_mart_roof, + map_t::celadon_pokecenter, + map_t::cerulean_badge_house, + map_t::cerulean_cave_1f, + map_t::cerulean_cave_2f, + map_t::cerulean_cave_b1f, + map_t::cerulean_city, + map_t::cerulean_gym, + map_t::cerulean_mart, + map_t::cerulean_pokecenter, + map_t::cerulean_trade_house, + map_t::cerulean_trashed_house, + map_t::champions_room, + map_t::cinnabar_gym, + map_t::cinnabar_island, + map_t::cinnabar_lab, + map_t::cinnabar_lab_fossil_room, + map_t::cinnabar_lab_metronome_room, + map_t::cinnabar_lab_trade_room, + map_t::cinnabar_mart, + map_t::cinnabar_pokecenter, + map_t::colosseum, + map_t::copycats_house_1f, + map_t::copycats_house_2f, + map_t::daycare, + map_t::digletts_cave, + map_t::digletts_cave_route_11, + map_t::digletts_cave_route_2, + map_t::fighting_dojo, + map_t::fuchsia_bills_grandpas_house, + map_t::fuchsia_city, + map_t::fuchsia_good_rod_house, + map_t::fuchsia_gym, + map_t::fuchsia_mart, + map_t::fuchsia_meeting_room, + map_t::fuchsia_pokecenter, + map_t::game_corner, + map_t::game_corner_prize_room, + map_t::hall_of_fame, + map_t::indigo_plateau, + map_t::indigo_plateau_lobby, + map_t::lances_room, + map_t::lavender_cubone_house, + map_t::lavender_mart, + map_t::lavender_pokecenter, + map_t::lavender_town, + map_t::loreleis_room, + map_t::mr_fujis_house, + map_t::mr_psychics_house, + map_t::mt_moon_1f, + map_t::mt_moon_b1f, + map_t::mt_moon_b2f, + map_t::mt_moon_pokecenter, + map_t::museum_1f, + map_t::museum_2f, + map_t::name_raters_house, + map_t::oaks_lab, + map_t::pallet_town, + map_t::pewter_city, + map_t::pewter_gym, + map_t::pewter_mart, + map_t::pewter_nidoran_house, + map_t::pewter_pokecenter, + map_t::pewter_speech_house, + map_t::pokemon_fan_club, + map_t::pokemon_mansion_1f, + map_t::pokemon_mansion_2f, + map_t::pokemon_mansion_3f, + map_t::pokemon_mansion_b1f, + map_t::pokemon_tower_1f, + map_t::pokemon_tower_2f, + map_t::pokemon_tower_3f, + map_t::pokemon_tower_4f, + map_t::pokemon_tower_5f, + map_t::pokemon_tower_6f, + map_t::pokemon_tower_7f, + map_t::power_plant, + map_t::reds_house_1f, + map_t::reds_house_2f, + map_t::rocket_hideout_b1f, + map_t::rocket_hideout_b2f, + map_t::rocket_hideout_b3f, + map_t::rocket_hideout_b4f, + map_t::rocket_hideout_elevator, + map_t::rock_tunnel_1f, + map_t::rock_tunnel_b1f, + map_t::rock_tunnel_pokecenter, + map_t::route_1, + map_t::route_10, + map_t::route_11, + map_t::route_11_gate_1f, + map_t::route_11_gate_2f, + map_t::route_12, + map_t::route_12_gate_1f, + map_t::route_12_gate_2f, + map_t::route_12_super_rod_house, + map_t::route_13, + map_t::route_14, + map_t::route_15, + map_t::route_15_gate_1f, + map_t::route_15_gate_2f, + map_t::route_16, + map_t::route_16_fly_house, + map_t::route_16_gate_1f, + map_t::route_16_gate_2f, + map_t::route_17, + map_t::route_18, + map_t::route_18_gate_1f, + map_t::route_18_gate_2f, + map_t::route_19, + map_t::route_2, + map_t::route_20, + map_t::route_21, + map_t::route_22, + map_t::route_22_gate, + map_t::route_23, + map_t::route_24, + map_t::route_25, + map_t::route_2_gate, + map_t::route_2_trade_house, + map_t::route_3, + map_t::route_4, + map_t::route_5, + map_t::route_5_gate, + map_t::route_6, + map_t::route_6_gate, + map_t::route_7, + map_t::route_7_gate, + map_t::route_8, + map_t::route_8_gate, + map_t::route_9, + map_t::safari_zone_center, + map_t::safari_zone_center_rest_house, + map_t::safari_zone_east, + map_t::safari_zone_east_rest_house, + map_t::safari_zone_gate, + map_t::safari_zone_north, + map_t::safari_zone_north_rest_house, + map_t::safari_zone_secret_house, + map_t::safari_zone_west, + map_t::safari_zone_west_rest_house, + map_t::saffron_city, + map_t::saffron_gym, + map_t::saffron_mart, + map_t::saffron_pidgey_house, + map_t::saffron_pokecenter, + map_t::seafoam_islands_1f, + map_t::seafoam_islands_b1f, + map_t::seafoam_islands_b2f, + map_t::seafoam_islands_b3f, + map_t::seafoam_islands_b4f, + map_t::silph_co_10f, + map_t::silph_co_11f, + map_t::silph_co_1f, + map_t::silph_co_2f, + map_t::silph_co_3f, + map_t::silph_co_4f, + map_t::silph_co_5f, + map_t::silph_co_6f, + map_t::silph_co_7f, + map_t::silph_co_8f, + map_t::silph_co_9f, + map_t::silph_co_elevator, + map_t::ss_anne_1f, + map_t::ss_anne_1f_rooms, + map_t::ss_anne_2f, + map_t::ss_anne_2f_rooms, + map_t::ss_anne_3f, + map_t::ss_anne_b1f, + map_t::ss_anne_b1f_rooms, + map_t::ss_anne_bow, + map_t::ss_anne_captains_room, + map_t::ss_anne_kitchen, + map_t::trade_center, + map_t::underground_path_north_south, + map_t::underground_path_route_5, + map_t::underground_path_route_6, + map_t::underground_path_route_7, + map_t::underground_path_route_8, + map_t::underground_path_west_east, + map_t::vermilion_city, + map_t::vermilion_dock, + map_t::vermilion_gym, + map_t::vermilion_mart, + map_t::vermilion_old_rod_house, + map_t::vermilion_pidgey_house, + map_t::vermilion_pokecenter, + map_t::vermilion_trade_house, + map_t::victory_road_1f, + map_t::victory_road_2f, + map_t::victory_road_3f, + map_t::viridian_city, + map_t::viridian_forest, + map_t::viridian_forest_north_gate, + map_t::viridian_forest_south_gate, + map_t::viridian_gym, + map_t::viridian_mart, + map_t::viridian_nickname_house, + map_t::viridian_pokecenter, + map_t::viridian_school_house, + map_t::wardens_house, +}; + +constexpr int map_ix_last = (sizeof (maps_ix)) / (sizeof (enum map_t::map)); diff --git a/map_object.hpp b/map_object.hpp new file mode 100644 index 0000000..f40253b --- /dev/null +++ b/map_object.hpp @@ -0,0 +1,60 @@ +struct position_t { + uint8_t x; + uint8_t y; +}; + +struct warp_event_t { + position_t position; + map_t::map destination_map; + uint8_t destination_warp_index; +}; + +struct object_event_t { + enum type { + generic, + item, + trainer, + pokemon, + }; + + enum movement { + stay, + walk, + }; + + enum range { + any_dir, + up_down, + left_right, + }; + + enum direction { + down, + up, + left, + right, + none, + }; + + position_t position; + uint8_t sprite_id; // fixme + enum movement movement; + union { + enum range range; + enum direction direction; + }; + uint8_t text_id; // fixme + union { + struct { + uint8_t id; + } item; + struct { + uint8_t type; // trainer class + uint8_t id; // trainer number + } trainer; + struct { + uint8_t id; // pokemon id + uint8_t level; + } pokemon; + }; +}; diff --git a/test.cpp b/test.cpp index 5ecaf90..ac05fae 100644 --- a/test.cpp +++ b/test.cpp @@ -1,2784 +1,791 @@ -#include "res/maps/AgathasRoom.blk.h" -#include "res/maps/BikeShop.blk.h" -#include "res/maps/BillsHouse.blk.h" -#include "res/maps/BluesHouse.blk.h" -#include "res/maps/BrunosRoom.blk.h" -#include "res/maps/CeladonChiefHouse.blk.h" -#include "res/maps/CeladonCity.blk.h" -#include "res/maps/CeladonDiner.blk.h" -#include "res/maps/CeladonGym.blk.h" -#include "res/maps/CeladonHotel.blk.h" -#include "res/maps/CeladonMansion1F.blk.h" -#include "res/maps/CeladonMansion2F.blk.h" -#include "res/maps/CeladonMansion3F.blk.h" -#include "res/maps/CeladonMansionRoof.blk.h" -#include "res/maps/ViridianSchoolHouse.blk.h" -#include "res/maps/CeladonMart1F.blk.h" -#include "res/maps/CeladonMart2F.blk.h" -#include "res/maps/CeladonMart3F.blk.h" -#include "res/maps/CeladonMart4F.blk.h" -#include "res/maps/CeladonMart5F.blk.h" -#include "res/maps/CeladonMartElevator.blk.h" -#include "res/maps/CeladonMartRoof.blk.h" -#include "res/maps/MtMoonPokecenter.blk.h" -#include "res/maps/CeruleanBadgeHouse.blk.h" -#include "res/maps/CeruleanCave1F.blk.h" -#include "res/maps/CeruleanCave2F.blk.h" -#include "res/maps/CeruleanCaveB1F.blk.h" -#include "res/maps/CeruleanCity.blk.h" -#include "res/maps/CeruleanGym.blk.h" -#include "res/maps/VermilionMart.blk.h" -#include "res/maps/CeruleanPokecenter.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/CeruleanTrashedHouse.blk.h" -#include "res/maps/ChampionsRoom.blk.h" -#include "res/maps/CinnabarGym.blk.h" -#include "res/maps/CinnabarIsland.blk.h" -#include "res/maps/CinnabarLab.blk.h" -#include "res/maps/CinnabarLabFossilRoom.blk.h" -#include "res/maps/CinnabarLabMetronomeRoom.blk.h" -#include "res/maps/CinnabarLabTradeRoom.blk.h" -#include "res/maps/PewterMart.blk.h" -#include "res/maps/FuchsiaPokecenter.blk.h" -#include "res/maps/Colosseum.blk.h" -#include "res/maps/CopycatsHouse1F.blk.h" -#include "res/maps/RedsHouse2F.blk.h" -#include "res/maps/Daycare.blk.h" -#include "res/maps/DiglettsCave.blk.h" -#include "res/maps/DiglettsCaveRoute2.blk.h" -#include "res/maps/DiglettsCaveRoute2.blk.h" -#include "res/maps/FightingDojo.blk.h" -#include "res/maps/FuchsiaBillsGrandpasHouse.blk.h" -#include "res/maps/FuchsiaCity.blk.h" -#include "res/maps/FuchsiaGoodRodHouse.blk.h" -#include "res/maps/FuchsiaGym.blk.h" -#include "res/maps/FuchsiaMart.blk.h" -#include "res/maps/FuchsiaMeetingRoom.blk.h" -#include "res/maps/FuchsiaPokecenter.blk.h" -#include "res/maps/GameCorner.blk.h" -#include "res/maps/GameCornerPrizeRoom.blk.h" -#include "res/maps/HallOfFame.blk.h" -#include "res/maps/IndigoPlateau.blk.h" -#include "res/maps/IndigoPlateauLobby.blk.h" -#include "res/maps/LancesRoom.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/VermilionMart.blk.h" -#include "res/maps/PewterPokecenter.blk.h" -#include "res/maps/LavenderTown.blk.h" -#include "res/maps/LoreleisRoom.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/MtMoon1F.blk.h" -#include "res/maps/MtMoonB1F.blk.h" -#include "res/maps/MtMoonB2F.blk.h" -#include "res/maps/MtMoonPokecenter.blk.h" -#include "res/maps/Museum1F.blk.h" -#include "res/maps/Museum2F.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/OaksLab.blk.h" -#include "res/maps/PalletTown.blk.h" -#include "res/maps/PewterCity.blk.h" -#include "res/maps/PewterGym.blk.h" -#include "res/maps/PewterMart.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/PewterPokecenter.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/PokemonFanClub.blk.h" -#include "res/maps/PokemonMansion1F.blk.h" -#include "res/maps/PokemonMansion2F.blk.h" -#include "res/maps/PokemonMansion3F.blk.h" -#include "res/maps/PokemonMansionB1F.blk.h" -#include "res/maps/PokemonTower1F.blk.h" -#include "res/maps/PokemonTower2F.blk.h" -#include "res/maps/PokemonTower3F.blk.h" -#include "res/maps/PokemonTower4F.blk.h" -#include "res/maps/PokemonTower5F.blk.h" -#include "res/maps/PokemonTower6F.blk.h" -#include "res/maps/PokemonTower7F.blk.h" -#include "res/maps/PowerPlant.blk.h" -#include "res/maps/RedsHouse1F.blk.h" -#include "res/maps/RedsHouse2F.blk.h" -#include "res/maps/RocketHideoutB1F.blk.h" -#include "res/maps/RocketHideoutB2F.blk.h" -#include "res/maps/RocketHideoutB3F.blk.h" -#include "res/maps/RocketHideoutB4F.blk.h" -#include "res/maps/RocketHideoutElevator.blk.h" -#include "res/maps/RockTunnel1F.blk.h" -#include "res/maps/RockTunnelB1F.blk.h" -#include "res/maps/MtMoonPokecenter.blk.h" -#include "res/maps/Route1.blk.h" -#include "res/maps/Route10.blk.h" -#include "res/maps/Route11.blk.h" -#include "res/maps/Route11Gate1F.blk.h" -#include "res/maps/Route11Gate2F.blk.h" -#include "res/maps/Route12.blk.h" -#include "res/maps/Route12Gate1F.blk.h" -#include "res/maps/Route11Gate2F.blk.h" -#include "res/maps/Daycare.blk.h" -#include "res/maps/Route13.blk.h" -#include "res/maps/Route14.blk.h" -#include "res/maps/Route15.blk.h" -#include "res/maps/Route11Gate1F.blk.h" -#include "res/maps/Route11Gate2F.blk.h" -#include "res/maps/Route16.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/Route16Gate1F.blk.h" -#include "res/maps/Route11Gate2F.blk.h" -#include "res/maps/Route17.blk.h" -#include "res/maps/Route18.blk.h" -#include "res/maps/Route11Gate1F.blk.h" -#include "res/maps/Route11Gate2F.blk.h" -#include "res/maps/Route19.blk.h" -#include "res/maps/Route2.blk.h" -#include "res/maps/Route20.blk.h" -#include "res/maps/Route21.blk.h" -#include "res/maps/Route22.blk.h" -#include "res/maps/Route22Gate.blk.h" -#include "res/maps/Route23.blk.h" -#include "res/maps/Route24.blk.h" -#include "res/maps/Route25.blk.h" -#include "res/maps/ViridianForestNorthGate.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/Route3.blk.h" -#include "res/maps/Route4.blk.h" -#include "res/maps/Route5.blk.h" -#include "res/maps/Route5Gate.blk.h" -#include "res/maps/Route6.blk.h" -#include "res/maps/Route6Gate.blk.h" -#include "res/maps/Route7.blk.h" -#include "res/maps/Route7Gate.blk.h" -#include "res/maps/Route8.blk.h" -#include "res/maps/Route8Gate.blk.h" -#include "res/maps/Route9.blk.h" -#include "res/maps/SafariZoneCenter.blk.h" -#include "res/maps/SafariZoneCenterRestHouse.blk.h" -#include "res/maps/SafariZoneEast.blk.h" -#include "res/maps/SafariZoneCenterRestHouse.blk.h" -#include "res/maps/SafariZoneGate.blk.h" -#include "res/maps/SafariZoneNorth.blk.h" -#include "res/maps/SafariZoneCenterRestHouse.blk.h" -#include "res/maps/SafariZoneSecretHouse.blk.h" -#include "res/maps/SafariZoneWest.blk.h" -#include "res/maps/SafariZoneCenterRestHouse.blk.h" -#include "res/maps/SaffronCity.blk.h" -#include "res/maps/SaffronGym.blk.h" -#include "res/maps/VermilionMart.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/PewterPokecenter.blk.h" -#include "res/maps/SeafoamIslands1F.blk.h" -#include "res/maps/SeafoamIslandsB1F.blk.h" -#include "res/maps/SeafoamIslandsB2F.blk.h" -#include "res/maps/SeafoamIslandsB3F.blk.h" -#include "res/maps/SeafoamIslandsB4F.blk.h" -#include "res/maps/SilphCo10F.blk.h" -#include "res/maps/SilphCo11F.blk.h" -#include "res/maps/SilphCo1F.blk.h" -#include "res/maps/SilphCo2F.blk.h" -#include "res/maps/SilphCo3F.blk.h" -#include "res/maps/SilphCo4F.blk.h" -#include "res/maps/SilphCo5F.blk.h" -#include "res/maps/SilphCo6F.blk.h" -#include "res/maps/SilphCo7F.blk.h" -#include "res/maps/SilphCo8F.blk.h" -#include "res/maps/SilphCo9F.blk.h" -#include "res/maps/SilphCoElevator.blk.h" -#include "res/maps/SSAnne1F.blk.h" -#include "res/maps/SSAnne1FRooms.blk.h" -#include "res/maps/SSAnne2F.blk.h" -#include "res/maps/SSAnne2FRooms.blk.h" -#include "res/maps/SSAnne3F.blk.h" -#include "res/maps/SSAnneB1F.blk.h" -#include "res/maps/SSAnne2FRooms.blk.h" -#include "res/maps/SSAnneBow.blk.h" -#include "res/maps/SSAnneCaptainsRoom.blk.h" -#include "res/maps/SSAnneKitchen.blk.h" -#include "res/maps/TradeCenter.blk.h" -#include "res/maps/UndergroundPathNorthSouth.blk.h" -#include "res/maps/UndergroundPathRoute5.blk.h" -#include "res/maps/UndergroundPathRoute5.blk.h" -#include "res/maps/UndergroundPathRoute5.blk.h" -#include "res/maps/UndergroundPathRoute8.blk.h" -#include "res/maps/UndergroundPathWestEast.blk.h" -#include "res/maps/VermilionCity.blk.h" -#include "res/maps/VermilionDock.blk.h" -#include "res/maps/VermilionGym.blk.h" -#include "res/maps/VermilionMart.blk.h" -#include "res/maps/Daycare.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/PewterPokecenter.blk.h" -#include "res/maps/VermilionTradeHouse.blk.h" -#include "res/maps/VictoryRoad1F.blk.h" -#include "res/maps/VictoryRoad2F.blk.h" -#include "res/maps/VictoryRoad3F.blk.h" -#include "res/maps/ViridianCity.blk.h" -#include "res/maps/ViridianForest.blk.h" -#include "res/maps/ViridianForestNorthGate.blk.h" -#include "res/maps/ViridianForestNorthGate.blk.h" -#include "res/maps/ViridianGym.blk.h" -#include "res/maps/ViridianMart.blk.h" -#include "res/maps/ViridianNicknameHouse.blk.h" -#include "res/maps/ViridianPokecenter.blk.h" -#include "res/maps/ViridianSchoolHouse.blk.h" -#include "res/maps/WardensHouse.blk.h" -#include "res/gfx/blocksets/cavern.bst.h" -#include "res/gfx/tilesets/cavern.2bpp.h" -#include "res/gfx/blocksets/cemetery.bst.h" -#include "res/gfx/tilesets/cemetery.2bpp.h" -#include "res/gfx/blocksets/club.bst.h" -#include "res/gfx/tilesets/club.2bpp.h" -#include "res/gfx/blocksets/gym.bst.h" -#include "res/gfx/tilesets/gym.2bpp.h" -#include "res/gfx/blocksets/facility.bst.h" -#include "res/gfx/tilesets/facility.2bpp.h" -#include "res/gfx/blocksets/forest.bst.h" -#include "res/gfx/tilesets/forest.2bpp.h" -#include "res/gfx/blocksets/gate.bst.h" -#include "res/gfx/tilesets/gate.2bpp.h" -#include "res/gfx/blocksets/gate.bst.h" -#include "res/gfx/tilesets/gate.2bpp.h" -#include "res/gfx/blocksets/gym.bst.h" -#include "res/gfx/tilesets/gym.2bpp.h" -#include "res/gfx/blocksets/house.bst.h" -#include "res/gfx/tilesets/house.2bpp.h" -#include "res/gfx/blocksets/interior.bst.h" -#include "res/gfx/tilesets/interior.2bpp.h" -#include "res/gfx/blocksets/lab.bst.h" -#include "res/gfx/tilesets/lab.2bpp.h" -#include "res/gfx/blocksets/lobby.bst.h" -#include "res/gfx/tilesets/lobby.2bpp.h" -#include "res/gfx/blocksets/mansion.bst.h" -#include "res/gfx/tilesets/mansion.2bpp.h" -#include "res/gfx/blocksets/pokecenter.bst.h" -#include "res/gfx/tilesets/pokecenter.2bpp.h" -#include "res/gfx/blocksets/gate.bst.h" -#include "res/gfx/tilesets/gate.2bpp.h" -#include "res/gfx/blocksets/overworld.bst.h" -#include "res/gfx/tilesets/overworld.2bpp.h" -#include "res/gfx/blocksets/plateau.bst.h" -#include "res/gfx/tilesets/plateau.2bpp.h" -#include "res/gfx/blocksets/pokecenter.bst.h" -#include "res/gfx/tilesets/pokecenter.2bpp.h" -#include "res/gfx/blocksets/reds_house.bst.h" -#include "res/gfx/tilesets/reds_house.2bpp.h" -#include "res/gfx/blocksets/reds_house.bst.h" -#include "res/gfx/tilesets/reds_house.2bpp.h" -#include "res/gfx/blocksets/ship.bst.h" -#include "res/gfx/tilesets/ship.2bpp.h" -#include "res/gfx/blocksets/ship_port.bst.h" -#include "res/gfx/tilesets/ship_port.2bpp.h" -#include "res/gfx/blocksets/underground.bst.h" -#include "res/gfx/tilesets/underground.2bpp.h" - -struct start_size_t { - uint8_t const * const start; - uint32_t size; -}; - -struct tileset_t { - start_size_t blockset; - start_size_t tileset; - - enum tileset { - cavern, - cemetery, - club, - dojo, - facility, - forest, - forest_gate, - gate, - gym, - house, - interior, - lab, - lobby, - mansion, - mart, - museum, - overworld, - plateau, - pokecenter, - reds_house_1, - reds_house_2, - ship, - ship_port, - underground, - }; -}; - -struct map_t { - start_size_t blocks; - enum tileset_t::tileset tileset; - uint32_t width; - uint32_t height; - - enum map { - agathas_room, - bike_shop, - bills_house, - blues_house, - brunos_room, - celadon_chief_house, - celadon_city, - celadon_diner, - celadon_gym, - celadon_hotel, - celadon_mansion_1f, - celadon_mansion_2f, - celadon_mansion_3f, - celadon_mansion_roof, - celadon_mansion_roof_house, - celadon_mart_1f, - celadon_mart_2f, - celadon_mart_3f, - celadon_mart_4f, - celadon_mart_5f, - celadon_mart_elevator, - celadon_mart_roof, - celadon_pokecenter, - cerulean_badge_house, - cerulean_cave_1f, - cerulean_cave_2f, - cerulean_cave_b1f, - cerulean_city, - cerulean_gym, - cerulean_mart, - cerulean_pokecenter, - cerulean_trade_house, - cerulean_trashed_house, - champions_room, - cinnabar_gym, - cinnabar_island, - cinnabar_lab, - cinnabar_lab_fossil_room, - cinnabar_lab_metronome_room, - cinnabar_lab_trade_room, - cinnabar_mart, - cinnabar_pokecenter, - colosseum, - copycats_house_1f, - copycats_house_2f, - daycare, - digletts_cave, - digletts_cave_route_11, - digletts_cave_route_2, - fighting_dojo, - fuchsia_bills_grandpas_house, - fuchsia_city, - fuchsia_good_rod_house, - fuchsia_gym, - fuchsia_mart, - fuchsia_meeting_room, - fuchsia_pokecenter, - game_corner, - game_corner_prize_room, - hall_of_fame, - indigo_plateau, - indigo_plateau_lobby, - lances_room, - lavender_cubone_house, - lavender_mart, - lavender_pokecenter, - lavender_town, - loreleis_room, - mr_fujis_house, - mr_psychics_house, - mt_moon_1f, - mt_moon_b1f, - mt_moon_b2f, - mt_moon_pokecenter, - museum_1f, - museum_2f, - name_raters_house, - oaks_lab, - pallet_town, - pewter_city, - pewter_gym, - pewter_mart, - pewter_nidoran_house, - pewter_pokecenter, - pewter_speech_house, - pokemon_fan_club, - pokemon_mansion_1f, - pokemon_mansion_2f, - pokemon_mansion_3f, - pokemon_mansion_b1f, - pokemon_tower_1f, - pokemon_tower_2f, - pokemon_tower_3f, - pokemon_tower_4f, - pokemon_tower_5f, - pokemon_tower_6f, - pokemon_tower_7f, - power_plant, - reds_house_1f, - reds_house_2f, - rocket_hideout_b1f, - rocket_hideout_b2f, - rocket_hideout_b3f, - rocket_hideout_b4f, - rocket_hideout_elevator, - rock_tunnel_1f, - rock_tunnel_b1f, - rock_tunnel_pokecenter, - route_1, - route_10, - route_11, - route_11_gate_1f, - route_11_gate_2f, - route_12, - route_12_gate_1f, - route_12_gate_2f, - route_12_super_rod_house, - route_13, - route_14, - route_15, - route_15_gate_1f, - route_15_gate_2f, - route_16, - route_16_fly_house, - route_16_gate_1f, - route_16_gate_2f, - route_17, - route_18, - route_18_gate_1f, - route_18_gate_2f, - route_19, - route_2, - route_20, - route_21, - route_22, - route_22_gate, - route_23, - route_24, - route_25, - route_2_gate, - route_2_trade_house, - route_3, - route_4, - route_5, - route_5_gate, - route_6, - route_6_gate, - route_7, - route_7_gate, - route_8, - route_8_gate, - route_9, - safari_zone_center, - safari_zone_center_rest_house, - safari_zone_east, - safari_zone_east_rest_house, - safari_zone_gate, - safari_zone_north, - safari_zone_north_rest_house, - safari_zone_secret_house, - safari_zone_west, - safari_zone_west_rest_house, - saffron_city, - saffron_gym, - saffron_mart, - saffron_pidgey_house, - saffron_pokecenter, - seafoam_islands_1f, - seafoam_islands_b1f, - seafoam_islands_b2f, - seafoam_islands_b3f, - seafoam_islands_b4f, - silph_co_10f, - silph_co_11f, - silph_co_1f, - silph_co_2f, - silph_co_3f, - silph_co_4f, - silph_co_5f, - silph_co_6f, - silph_co_7f, - silph_co_8f, - silph_co_9f, - silph_co_elevator, - ss_anne_1f, - ss_anne_1f_rooms, - ss_anne_2f, - ss_anne_2f_rooms, - ss_anne_3f, - ss_anne_b1f, - ss_anne_b1f_rooms, - ss_anne_bow, - ss_anne_captains_room, - ss_anne_kitchen, - trade_center, - underground_path_north_south, - underground_path_route_5, - underground_path_route_6, - underground_path_route_7, - underground_path_route_8, - underground_path_west_east, - vermilion_city, - vermilion_dock, - vermilion_gym, - vermilion_mart, - vermilion_old_rod_house, - vermilion_pidgey_house, - vermilion_pokecenter, - vermilion_trade_house, - victory_road_1f, - victory_road_2f, - victory_road_3f, - viridian_city, - viridian_forest, - viridian_forest_north_gate, - viridian_forest_south_gate, - viridian_gym, - viridian_mart, - viridian_nickname_house, - viridian_pokecenter, - viridian_school_house, - wardens_house, - }; -}; - -const tileset_t tilesets[] = { - [tileset_t::cavern] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_cavern_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_cavern_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_cavern_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_cavern_2bpp_size), - } - }, - [tileset_t::cemetery] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_cemetery_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_cemetery_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_cemetery_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_cemetery_2bpp_size), - } - }, - [tileset_t::club] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_club_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_club_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_club_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_club_2bpp_size), - } - }, - [tileset_t::dojo] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_gym_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_gym_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_gym_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_gym_2bpp_size), - } - }, - [tileset_t::facility] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_facility_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_facility_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_facility_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_facility_2bpp_size), - } - }, - [tileset_t::forest] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_forest_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_forest_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_forest_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_forest_2bpp_size), - } - }, - [tileset_t::forest_gate] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_size), - } - }, - [tileset_t::gate] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_size), - } - }, - [tileset_t::gym] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_gym_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_gym_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_gym_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_gym_2bpp_size), - } - }, - [tileset_t::house] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_house_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_house_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_house_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_house_2bpp_size), - } - }, - [tileset_t::interior] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_interior_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_interior_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_interior_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_interior_2bpp_size), - } - }, - [tileset_t::lab] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_lab_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_lab_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_lab_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_lab_2bpp_size), - } - }, - [tileset_t::lobby] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_lobby_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_lobby_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_lobby_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_lobby_2bpp_size), - } - }, - [tileset_t::mansion] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_mansion_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_mansion_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_mansion_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_mansion_2bpp_size), - } - }, - [tileset_t::mart] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_pokecenter_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_pokecenter_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_pokecenter_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_pokecenter_2bpp_size), - } - }, - [tileset_t::museum] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_gate_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_gate_2bpp_size), - } - }, - [tileset_t::overworld] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_overworld_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_overworld_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_overworld_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_overworld_2bpp_size), - } - }, - [tileset_t::plateau] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_plateau_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_plateau_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_plateau_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_plateau_2bpp_size), - } - }, - [tileset_t::pokecenter] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_pokecenter_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_pokecenter_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_pokecenter_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_pokecenter_2bpp_size), - } - }, - [tileset_t::reds_house_1] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_reds_house_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_reds_house_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_reds_house_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_reds_house_2bpp_size), - } - }, - [tileset_t::reds_house_2] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_reds_house_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_reds_house_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_reds_house_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_reds_house_2bpp_size), - } - }, - [tileset_t::ship] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_ship_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_ship_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_ship_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_ship_2bpp_size), - } - }, - [tileset_t::ship_port] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_ship_port_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_ship_port_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_ship_port_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_ship_port_2bpp_size), - } - }, - [tileset_t::underground] = { - .blockset = { - reinterpret_cast(&_binary_res_gfx_blocksets_underground_bst_start), - reinterpret_cast(&_binary_res_gfx_blocksets_underground_bst_size), - }, - .tileset = { - reinterpret_cast(&_binary_res_gfx_tilesets_underground_2bpp_start), - reinterpret_cast(&_binary_res_gfx_tilesets_underground_2bpp_size), - } - }, -}; - -const map_t maps[] = { - [map_t::agathas_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_AgathasRoom_blk_start), - reinterpret_cast(&_binary_res_maps_AgathasRoom_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 5, - .height = 6, - }, - [map_t::bike_shop] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_BikeShop_blk_start), - reinterpret_cast(&_binary_res_maps_BikeShop_blk_size), - }, - .tileset = tileset_t::club, - .width = 4, - .height = 4, - }, - [map_t::bills_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_BillsHouse_blk_start), - reinterpret_cast(&_binary_res_maps_BillsHouse_blk_size), - }, - .tileset = tileset_t::interior, - .width = 4, - .height = 4, - }, - [map_t::blues_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_BluesHouse_blk_start), - reinterpret_cast(&_binary_res_maps_BluesHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::brunos_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_BrunosRoom_blk_start), - reinterpret_cast(&_binary_res_maps_BrunosRoom_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 6, - }, - [map_t::celadon_chief_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonChiefHouse_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonChiefHouse_blk_size), - }, - .tileset = tileset_t::mansion, - .width = 4, - .height = 4, - }, - [map_t::celadon_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonCity_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 25, - .height = 18, - }, - [map_t::celadon_diner] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonDiner_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonDiner_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 5, - .height = 4, - }, - [map_t::celadon_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonGym_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 9, - }, - [map_t::celadon_hotel] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonHotel_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonHotel_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::celadon_mansion_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMansion1F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMansion1F_blk_size), - }, - .tileset = tileset_t::mansion, - .width = 4, - .height = 6, - }, - [map_t::celadon_mansion_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMansion2F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMansion2F_blk_size), - }, - .tileset = tileset_t::mansion, - .width = 4, - .height = 6, - }, - [map_t::celadon_mansion_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMansion3F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMansion3F_blk_size), - }, - .tileset = tileset_t::mansion, - .width = 4, - .height = 6, - }, - [map_t::celadon_mansion_roof] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMansionRoof_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMansionRoof_blk_size), - }, - .tileset = tileset_t::mansion, - .width = 4, - .height = 6, - }, - [map_t::celadon_mansion_roof_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianSchoolHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianSchoolHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::celadon_mart_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMart1F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMart1F_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_mart_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMart2F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMart2F_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_mart_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMart3F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMart3F_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_mart_4f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMart4F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMart4F_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_mart_5f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMart5F_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMart5F_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_mart_elevator] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMartElevator_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMartElevator_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 2, - .height = 2, - }, - [map_t::celadon_mart_roof] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeladonMartRoof_blk_start), - reinterpret_cast(&_binary_res_maps_CeladonMartRoof_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 4, - }, - [map_t::celadon_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::cerulean_badge_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanBadgeHouse_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanBadgeHouse_blk_size), - }, - .tileset = tileset_t::ship, - .width = 4, - .height = 4, - }, - [map_t::cerulean_cave_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanCave1F_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanCave1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::cerulean_cave_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanCave2F_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanCave2F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::cerulean_cave_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanCaveB1F_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanCaveB1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::cerulean_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanCity_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::cerulean_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanGym_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 7, - }, - [map_t::cerulean_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::cerulean_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::cerulean_trade_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::cerulean_trashed_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CeruleanTrashedHouse_blk_start), - reinterpret_cast(&_binary_res_maps_CeruleanTrashedHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::champions_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ChampionsRoom_blk_start), - reinterpret_cast(&_binary_res_maps_ChampionsRoom_blk_size), - }, - .tileset = tileset_t::gym, - .width = 4, - .height = 4, - }, - [map_t::cinnabar_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarGym_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarGym_blk_size), - }, - .tileset = tileset_t::facility, - .width = 10, - .height = 9, - }, - [map_t::cinnabar_island] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarIsland_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarIsland_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 9, - }, - [map_t::cinnabar_lab] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarLab_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarLab_blk_size), - }, - .tileset = tileset_t::lab, - .width = 9, - .height = 4, - }, - [map_t::cinnabar_lab_fossil_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarLabFossilRoom_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarLabFossilRoom_blk_size), - }, - .tileset = tileset_t::lab, - .width = 4, - .height = 4, - }, - [map_t::cinnabar_lab_metronome_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarLabMetronomeRoom_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarLabMetronomeRoom_blk_size), - }, - .tileset = tileset_t::lab, - .width = 4, - .height = 4, - }, - [map_t::cinnabar_lab_trade_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CinnabarLabTradeRoom_blk_start), - reinterpret_cast(&_binary_res_maps_CinnabarLabTradeRoom_blk_size), - }, - .tileset = tileset_t::lab, - .width = 4, - .height = 4, - }, - [map_t::cinnabar_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterMart_blk_start), - reinterpret_cast(&_binary_res_maps_PewterMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::cinnabar_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::colosseum] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Colosseum_blk_start), - reinterpret_cast(&_binary_res_maps_Colosseum_blk_size), - }, - .tileset = tileset_t::club, - .width = 5, - .height = 4, - }, - [map_t::copycats_house_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_CopycatsHouse1F_blk_start), - reinterpret_cast(&_binary_res_maps_CopycatsHouse1F_blk_size), - }, - .tileset = tileset_t::reds_house_1, - .width = 4, - .height = 4, - }, - [map_t::copycats_house_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RedsHouse2F_blk_start), - reinterpret_cast(&_binary_res_maps_RedsHouse2F_blk_size), - }, - .tileset = tileset_t::reds_house_2, - .width = 4, - .height = 4, - }, - [map_t::daycare] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Daycare_blk_start), - reinterpret_cast(&_binary_res_maps_Daycare_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::digletts_cave] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_DiglettsCave_blk_start), - reinterpret_cast(&_binary_res_maps_DiglettsCave_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 20, - .height = 18, - }, - [map_t::digletts_cave_route_11] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_DiglettsCaveRoute2_blk_start), - reinterpret_cast(&_binary_res_maps_DiglettsCaveRoute2_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 4, - .height = 4, - }, - [map_t::digletts_cave_route_2] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_DiglettsCaveRoute2_blk_start), - reinterpret_cast(&_binary_res_maps_DiglettsCaveRoute2_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 4, - .height = 4, - }, - [map_t::fighting_dojo] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FightingDojo_blk_start), - reinterpret_cast(&_binary_res_maps_FightingDojo_blk_size), - }, - .tileset = tileset_t::dojo, - .width = 5, - .height = 6, - }, - [map_t::fuchsia_bills_grandpas_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaBillsGrandpasHouse_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaBillsGrandpasHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::fuchsia_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaCity_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::fuchsia_good_rod_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaGoodRodHouse_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaGoodRodHouse_blk_size), - }, - .tileset = tileset_t::ship, - .width = 4, - .height = 4, - }, - [map_t::fuchsia_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaGym_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 9, - }, - [map_t::fuchsia_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaMart_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::fuchsia_meeting_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaMeetingRoom_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaMeetingRoom_blk_size), - }, - .tileset = tileset_t::lab, - .width = 7, - .height = 4, - }, - [map_t::fuchsia_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_FuchsiaPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_FuchsiaPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::game_corner] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_GameCorner_blk_start), - reinterpret_cast(&_binary_res_maps_GameCorner_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 10, - .height = 9, - }, - [map_t::game_corner_prize_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_GameCornerPrizeRoom_blk_start), - reinterpret_cast(&_binary_res_maps_GameCornerPrizeRoom_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 5, - .height = 4, - }, - [map_t::hall_of_fame] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_HallOfFame_blk_start), - reinterpret_cast(&_binary_res_maps_HallOfFame_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 4, - }, - [map_t::indigo_plateau] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_IndigoPlateau_blk_start), - reinterpret_cast(&_binary_res_maps_IndigoPlateau_blk_size), - }, - .tileset = tileset_t::plateau, - .width = 10, - .height = 9, - }, - [map_t::indigo_plateau_lobby] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_IndigoPlateauLobby_blk_start), - reinterpret_cast(&_binary_res_maps_IndigoPlateauLobby_blk_size), - }, - .tileset = tileset_t::mart, - .width = 8, - .height = 6, - }, - [map_t::lances_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_LancesRoom_blk_start), - reinterpret_cast(&_binary_res_maps_LancesRoom_blk_size), - }, - .tileset = tileset_t::dojo, - .width = 13, - .height = 13, - }, - [map_t::lavender_cubone_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::lavender_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::lavender_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::lavender_town] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_LavenderTown_blk_start), - reinterpret_cast(&_binary_res_maps_LavenderTown_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 9, - }, - [map_t::loreleis_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_LoreleisRoom_blk_start), - reinterpret_cast(&_binary_res_maps_LoreleisRoom_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 6, - }, - [map_t::mr_fujis_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::mr_psychics_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::mt_moon_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoon1F_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoon1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 20, - .height = 18, - }, - [map_t::mt_moon_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoonB1F_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoonB1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 14, - .height = 14, - }, - [map_t::mt_moon_b2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoonB2F_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoonB2F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 20, - .height = 18, - }, - [map_t::mt_moon_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::museum_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Museum1F_blk_start), - reinterpret_cast(&_binary_res_maps_Museum1F_blk_size), - }, - .tileset = tileset_t::museum, - .width = 10, - .height = 4, - }, - [map_t::museum_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Museum2F_blk_start), - reinterpret_cast(&_binary_res_maps_Museum2F_blk_size), - }, - .tileset = tileset_t::museum, - .width = 7, - .height = 4, - }, - [map_t::name_raters_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::oaks_lab] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_OaksLab_blk_start), - reinterpret_cast(&_binary_res_maps_OaksLab_blk_size), - }, - .tileset = tileset_t::dojo, - .width = 5, - .height = 6, - }, - [map_t::pallet_town] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PalletTown_blk_start), - reinterpret_cast(&_binary_res_maps_PalletTown_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 9, - }, - [map_t::pewter_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterCity_blk_start), - reinterpret_cast(&_binary_res_maps_PewterCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::pewter_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterGym_blk_start), - reinterpret_cast(&_binary_res_maps_PewterGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 7, - }, - [map_t::pewter_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterMart_blk_start), - reinterpret_cast(&_binary_res_maps_PewterMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::pewter_nidoran_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::pewter_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::pewter_speech_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::pokemon_fan_club] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonFanClub_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonFanClub_blk_size), - }, - .tileset = tileset_t::interior, - .width = 4, - .height = 4, - }, - [map_t::pokemon_mansion_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonMansion1F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonMansion1F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::pokemon_mansion_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonMansion2F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonMansion2F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::pokemon_mansion_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonMansion3F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonMansion3F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::pokemon_mansion_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonMansionB1F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonMansionB1F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::pokemon_tower_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower1F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower1F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower2F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower2F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower3F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower3F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_4f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower4F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower4F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_5f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower5F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower5F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_6f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower6F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower6F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::pokemon_tower_7f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PokemonTower7F_blk_start), - reinterpret_cast(&_binary_res_maps_PokemonTower7F_blk_size), - }, - .tileset = tileset_t::cemetery, - .width = 10, - .height = 9, - }, - [map_t::power_plant] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PowerPlant_blk_start), - reinterpret_cast(&_binary_res_maps_PowerPlant_blk_size), - }, - .tileset = tileset_t::facility, - .width = 20, - .height = 18, - }, - [map_t::reds_house_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RedsHouse1F_blk_start), - reinterpret_cast(&_binary_res_maps_RedsHouse1F_blk_size), - }, - .tileset = tileset_t::reds_house_1, - .width = 4, - .height = 4, - }, - [map_t::reds_house_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RedsHouse2F_blk_start), - reinterpret_cast(&_binary_res_maps_RedsHouse2F_blk_size), - }, - .tileset = tileset_t::reds_house_2, - .width = 4, - .height = 4, - }, - [map_t::rocket_hideout_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RocketHideoutB1F_blk_start), - reinterpret_cast(&_binary_res_maps_RocketHideoutB1F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::rocket_hideout_b2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RocketHideoutB2F_blk_start), - reinterpret_cast(&_binary_res_maps_RocketHideoutB2F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::rocket_hideout_b3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RocketHideoutB3F_blk_start), - reinterpret_cast(&_binary_res_maps_RocketHideoutB3F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 14, - }, - [map_t::rocket_hideout_b4f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RocketHideoutB4F_blk_start), - reinterpret_cast(&_binary_res_maps_RocketHideoutB4F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 12, - }, - [map_t::rocket_hideout_elevator] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RocketHideoutElevator_blk_start), - reinterpret_cast(&_binary_res_maps_RocketHideoutElevator_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 3, - .height = 4, - }, - [map_t::rock_tunnel_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RockTunnel1F_blk_start), - reinterpret_cast(&_binary_res_maps_RockTunnel1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 20, - .height = 18, - }, - [map_t::rock_tunnel_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_RockTunnelB1F_blk_start), - reinterpret_cast(&_binary_res_maps_RockTunnelB1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 20, - .height = 18, - }, - [map_t::rock_tunnel_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_MtMoonPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::route_1] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route1_blk_start), - reinterpret_cast(&_binary_res_maps_Route1_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 18, - }, - [map_t::route_10] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route10_blk_start), - reinterpret_cast(&_binary_res_maps_Route10_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 36, - }, - [map_t::route_11] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11_blk_start), - reinterpret_cast(&_binary_res_maps_Route11_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::route_11_gate_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 5, - }, - [map_t::route_11_gate_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::route_12] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route12_blk_start), - reinterpret_cast(&_binary_res_maps_Route12_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 54, - }, - [map_t::route_12_gate_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route12Gate1F_blk_start), - reinterpret_cast(&_binary_res_maps_Route12Gate1F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 5, - .height = 4, - }, - [map_t::route_12_gate_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::route_12_super_rod_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Daycare_blk_start), - reinterpret_cast(&_binary_res_maps_Daycare_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::route_13] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route13_blk_start), - reinterpret_cast(&_binary_res_maps_Route13_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::route_14] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route14_blk_start), - reinterpret_cast(&_binary_res_maps_Route14_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 27, - }, - [map_t::route_15] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route15_blk_start), - reinterpret_cast(&_binary_res_maps_Route15_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::route_15_gate_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 5, - }, - [map_t::route_15_gate_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::route_16] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route16_blk_start), - reinterpret_cast(&_binary_res_maps_Route16_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 9, - }, - [map_t::route_16_fly_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::route_16_gate_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route16Gate1F_blk_start), - reinterpret_cast(&_binary_res_maps_Route16Gate1F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 7, - }, - [map_t::route_16_gate_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::route_17] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route17_blk_start), - reinterpret_cast(&_binary_res_maps_Route17_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 72, - }, - [map_t::route_18] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route18_blk_start), - reinterpret_cast(&_binary_res_maps_Route18_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 25, - .height = 9, - }, - [map_t::route_18_gate_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate1F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 5, - }, - [map_t::route_18_gate_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_start), - reinterpret_cast(&_binary_res_maps_Route11Gate2F_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::route_19] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route19_blk_start), - reinterpret_cast(&_binary_res_maps_Route19_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 27, - }, - [map_t::route_2] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route2_blk_start), - reinterpret_cast(&_binary_res_maps_Route2_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 36, - }, - [map_t::route_20] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route20_blk_start), - reinterpret_cast(&_binary_res_maps_Route20_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 50, - .height = 9, - }, - [map_t::route_21] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route21_blk_start), - reinterpret_cast(&_binary_res_maps_Route21_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 45, - }, - [map_t::route_22] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route22_blk_start), - reinterpret_cast(&_binary_res_maps_Route22_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 9, - }, - [map_t::route_22_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route22Gate_blk_start), - reinterpret_cast(&_binary_res_maps_Route22Gate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 5, - .height = 4, - }, - [map_t::route_23] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route23_blk_start), - reinterpret_cast(&_binary_res_maps_Route23_blk_size), - }, - .tileset = tileset_t::plateau, - .width = 10, - .height = 72, - }, - [map_t::route_24] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route24_blk_start), - reinterpret_cast(&_binary_res_maps_Route24_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 18, - }, - [map_t::route_25] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route25_blk_start), - reinterpret_cast(&_binary_res_maps_Route25_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::route_2_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 5, - .height = 4, - }, - [map_t::route_2_trade_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::route_3] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route3_blk_start), - reinterpret_cast(&_binary_res_maps_Route3_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 35, - .height = 9, - }, - [map_t::route_4] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route4_blk_start), - reinterpret_cast(&_binary_res_maps_Route4_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 45, - .height = 9, - }, - [map_t::route_5] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route5_blk_start), - reinterpret_cast(&_binary_res_maps_Route5_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 18, - }, - [map_t::route_5_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route5Gate_blk_start), - reinterpret_cast(&_binary_res_maps_Route5Gate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 3, - }, - [map_t::route_6] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route6_blk_start), - reinterpret_cast(&_binary_res_maps_Route6_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 18, - }, - [map_t::route_6_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route6Gate_blk_start), - reinterpret_cast(&_binary_res_maps_Route6Gate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 3, - }, - [map_t::route_7] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route7_blk_start), - reinterpret_cast(&_binary_res_maps_Route7_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 10, - .height = 9, - }, - [map_t::route_7_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route7Gate_blk_start), - reinterpret_cast(&_binary_res_maps_Route7Gate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 3, - .height = 4, - }, - [map_t::route_8] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route8_blk_start), - reinterpret_cast(&_binary_res_maps_Route8_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::route_8_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route8Gate_blk_start), - reinterpret_cast(&_binary_res_maps_Route8Gate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 3, - .height = 4, - }, - [map_t::route_9] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Route9_blk_start), - reinterpret_cast(&_binary_res_maps_Route9_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 30, - .height = 9, - }, - [map_t::safari_zone_center] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneCenter_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneCenter_blk_size), - }, - .tileset = tileset_t::forest, - .width = 15, - .height = 13, - }, - [map_t::safari_zone_center_rest_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::safari_zone_east] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneEast_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneEast_blk_size), - }, - .tileset = tileset_t::forest, - .width = 15, - .height = 13, - }, - [map_t::safari_zone_east_rest_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::safari_zone_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneGate_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneGate_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 3, - }, - [map_t::safari_zone_north] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneNorth_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneNorth_blk_size), - }, - .tileset = tileset_t::forest, - .width = 20, - .height = 18, - }, - [map_t::safari_zone_north_rest_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::safari_zone_secret_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneSecretHouse_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneSecretHouse_blk_size), - }, - .tileset = tileset_t::lab, - .width = 4, - .height = 4, - }, - [map_t::safari_zone_west] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneWest_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneWest_blk_size), - }, - .tileset = tileset_t::forest, - .width = 15, - .height = 13, - }, - [map_t::safari_zone_west_rest_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_start), - reinterpret_cast(&_binary_res_maps_SafariZoneCenterRestHouse_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::saffron_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SaffronCity_blk_start), - reinterpret_cast(&_binary_res_maps_SaffronCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::saffron_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SaffronGym_blk_start), - reinterpret_cast(&_binary_res_maps_SaffronGym_blk_size), - }, - .tileset = tileset_t::facility, - .width = 10, - .height = 9, - }, - [map_t::saffron_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::saffron_pidgey_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::saffron_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::seafoam_islands_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SeafoamIslands1F_blk_start), - reinterpret_cast(&_binary_res_maps_SeafoamIslands1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::seafoam_islands_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB1F_blk_start), - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::seafoam_islands_b2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB2F_blk_start), - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB2F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::seafoam_islands_b3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB3F_blk_start), - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB3F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::seafoam_islands_b4f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB4F_blk_start), - reinterpret_cast(&_binary_res_maps_SeafoamIslandsB4F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::silph_co_10f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo10F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo10F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 8, - .height = 9, - }, - [map_t::silph_co_11f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo11F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo11F_blk_size), - }, - .tileset = tileset_t::interior, - .width = 9, - .height = 9, - }, - [map_t::silph_co_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo1F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo1F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::silph_co_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo2F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo2F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::silph_co_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo3F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo3F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::silph_co_4f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo4F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo4F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::silph_co_5f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo5F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo5F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 15, - .height = 9, - }, - [map_t::silph_co_6f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo6F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo6F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 13, - .height = 9, - }, - [map_t::silph_co_7f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo7F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo7F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 13, - .height = 9, - }, - [map_t::silph_co_8f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo8F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo8F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 13, - .height = 9, - }, - [map_t::silph_co_9f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCo9F_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCo9F_blk_size), - }, - .tileset = tileset_t::facility, - .width = 13, - .height = 9, - }, - [map_t::silph_co_elevator] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SilphCoElevator_blk_start), - reinterpret_cast(&_binary_res_maps_SilphCoElevator_blk_size), - }, - .tileset = tileset_t::lobby, - .width = 2, - .height = 2, - }, - [map_t::ss_anne_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne1F_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne1F_blk_size), - }, - .tileset = tileset_t::ship, - .width = 20, - .height = 9, - }, - [map_t::ss_anne_1f_rooms] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne1FRooms_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne1FRooms_blk_size), - }, - .tileset = tileset_t::ship, - .width = 12, - .height = 8, - }, - [map_t::ss_anne_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne2F_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne2F_blk_size), - }, - .tileset = tileset_t::ship, - .width = 20, - .height = 9, - }, - [map_t::ss_anne_2f_rooms] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne2FRooms_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne2FRooms_blk_size), - }, - .tileset = tileset_t::ship, - .width = 12, - .height = 8, - }, - [map_t::ss_anne_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne3F_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne3F_blk_size), - }, - .tileset = tileset_t::ship, - .width = 10, - .height = 3, - }, - [map_t::ss_anne_b1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnneB1F_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnneB1F_blk_size), - }, - .tileset = tileset_t::ship, - .width = 15, - .height = 4, - }, - [map_t::ss_anne_b1f_rooms] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnne2FRooms_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnne2FRooms_blk_size), - }, - .tileset = tileset_t::ship, - .width = 12, - .height = 8, - }, - [map_t::ss_anne_bow] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnneBow_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnneBow_blk_size), - }, - .tileset = tileset_t::ship, - .width = 10, - .height = 7, - }, - [map_t::ss_anne_captains_room] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnneCaptainsRoom_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnneCaptainsRoom_blk_size), - }, - .tileset = tileset_t::ship, - .width = 3, - .height = 4, - }, - [map_t::ss_anne_kitchen] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_SSAnneKitchen_blk_start), - reinterpret_cast(&_binary_res_maps_SSAnneKitchen_blk_size), - }, - .tileset = tileset_t::ship, - .width = 7, - .height = 8, - }, - [map_t::trade_center] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_TradeCenter_blk_start), - reinterpret_cast(&_binary_res_maps_TradeCenter_blk_size), - }, - .tileset = tileset_t::club, - .width = 5, - .height = 4, - }, - [map_t::underground_path_north_south] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathNorthSouth_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathNorthSouth_blk_size), - }, - .tileset = tileset_t::underground, - .width = 4, - .height = 24, - }, - [map_t::underground_path_route_5] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::underground_path_route_6] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::underground_path_route_7] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute5_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::underground_path_route_8] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute8_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathRoute8_blk_size), - }, - .tileset = tileset_t::gate, - .width = 4, - .height = 4, - }, - [map_t::underground_path_west_east] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_UndergroundPathWestEast_blk_start), - reinterpret_cast(&_binary_res_maps_UndergroundPathWestEast_blk_size), - }, - .tileset = tileset_t::underground, - .width = 25, - .height = 4, - }, - [map_t::vermilion_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionCity_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::vermilion_dock] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionDock_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionDock_blk_size), - }, - .tileset = tileset_t::ship_port, - .width = 14, - .height = 6, - }, - [map_t::vermilion_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionGym_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 5, - .height = 9, - }, - [map_t::vermilion_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::vermilion_old_rod_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_Daycare_blk_start), - reinterpret_cast(&_binary_res_maps_Daycare_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::vermilion_pidgey_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::vermilion_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_PewterPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::vermilion_trade_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VermilionTradeHouse_blk_start), - reinterpret_cast(&_binary_res_maps_VermilionTradeHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::victory_road_1f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VictoryRoad1F_blk_start), - reinterpret_cast(&_binary_res_maps_VictoryRoad1F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 10, - .height = 9, - }, - [map_t::victory_road_2f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VictoryRoad2F_blk_start), - reinterpret_cast(&_binary_res_maps_VictoryRoad2F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::victory_road_3f] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_VictoryRoad3F_blk_start), - reinterpret_cast(&_binary_res_maps_VictoryRoad3F_blk_size), - }, - .tileset = tileset_t::cavern, - .width = 15, - .height = 9, - }, - [map_t::viridian_city] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianCity_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianCity_blk_size), - }, - .tileset = tileset_t::overworld, - .width = 20, - .height = 18, - }, - [map_t::viridian_forest] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianForest_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianForest_blk_size), - }, - .tileset = tileset_t::forest, - .width = 17, - .height = 24, - }, - [map_t::viridian_forest_north_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_size), - }, - .tileset = tileset_t::forest_gate, - .width = 5, - .height = 4, - }, - [map_t::viridian_forest_south_gate] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianForestNorthGate_blk_size), - }, - .tileset = tileset_t::forest_gate, - .width = 5, - .height = 4, - }, - [map_t::viridian_gym] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianGym_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianGym_blk_size), - }, - .tileset = tileset_t::gym, - .width = 10, - .height = 9, - }, - [map_t::viridian_mart] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianMart_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianMart_blk_size), - }, - .tileset = tileset_t::mart, - .width = 4, - .height = 4, - }, - [map_t::viridian_nickname_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianNicknameHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::viridian_pokecenter] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianPokecenter_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianPokecenter_blk_size), - }, - .tileset = tileset_t::pokecenter, - .width = 7, - .height = 4, - }, - [map_t::viridian_school_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_ViridianSchoolHouse_blk_start), - reinterpret_cast(&_binary_res_maps_ViridianSchoolHouse_blk_size), - }, - .tileset = tileset_t::house, - .width = 4, - .height = 4, - }, - [map_t::wardens_house] = { - .blocks = { - reinterpret_cast(&_binary_res_maps_WardensHouse_blk_start), - reinterpret_cast(&_binary_res_maps_WardensHouse_blk_size), - }, - .tileset = tileset_t::lab, - .width = 5, - .height = 4, - }, -}; - +here +[('map_header', ['SSAnne2FRooms', 'SS_ANNE_2F_ROOMS', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['SeafoamIslands1F', 'SEAFOAM_ISLANDS_1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route24', 'ROUTE_24', 'OVERWORLD', ['SOUTH', 'EAST']]), + ('connection', ['south', 'CeruleanCity', 'CERULEAN_CITY', '-5']), + ('connection', ['east', 'Route25', 'ROUTE_25', '0']), + ('end_map_header',)] +here +[('map_header', ['Route11Gate1F', 'ROUTE_11_GATE_1F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['PowerPlant', 'POWER_PLANT', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['LavenderCuboneHouse', 'LAVENDER_CUBONE_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo9F', 'SILPH_CO_9F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['DiglettsCaveRoute11', 'DIGLETTS_CAVE_ROUTE_11', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route21', 'ROUTE_21', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'PalletTown', 'PALLET_TOWN', '0']), + ('connection', ['south', 'CinnabarIsland', 'CINNABAR_ISLAND', '0']), + ('end_map_header',)] +here +[('map_header', ['RedsHouse2F', 'REDS_HOUSE_2F', 'REDS_HOUSE_2', '$00']), + ('end_map_header',)] +here +[('map_header', ['SeafoamIslandsB4F', 'SEAFOAM_ISLANDS_B4F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['SafariZoneWest', 'SAFARI_ZONE_WEST', 'FOREST', '0']), + ('end_map_header',)] +here +[('map_header', ['Route22Gate', 'ROUTE_22_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CinnabarLab', 'CINNABAR_LAB', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonHotel', 'CELADON_HOTEL', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['Route12Gate2F', 'ROUTE_12_GATE_2F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route10', 'ROUTE_10', 'OVERWORLD', ['SOUTH', 'WEST']]), + ('connection', ['south', 'LavenderTown', 'LAVENDER_TOWN', '0']), + ('connection', ['west', 'Route9', 'ROUTE_9', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterNidoranHouse', 'PEWTER_NIDORAN_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', + ['FuchsiaBillsGrandpasHouse', 'FUCHSIA_BILLS_GRANDPAS_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCoElevator', 'SILPH_CO_ELEVATOR', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['BrunosRoom', 'BRUNOS_ROOM', 'GYM', '0']), ('end_map_header',)] +here +[('map_header', ['CeruleanTradeHouse', 'CERULEAN_TRADE_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['RocketHideoutB3F', 'ROCKET_HIDEOUT_B3F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['FuchsiaMeetingRoom', 'FUCHSIA_MEETING_ROOM', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', + ['SafariZoneCenterRestHouse', 'SAFARI_ZONE_CENTER_REST_HOUSE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['MtMoonPokecenter', 'MT_MOON_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['Route1', 'ROUTE_1', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'ViridianCity', 'VIRIDIAN_CITY', '-5']), + ('connection', ['south', 'PalletTown', 'PALLET_TOWN', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower7F', 'POKEMON_TOWER_7F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', + ['VermilionOldRodHouse', 'VERMILION_OLD_ROD_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SaffronGym', 'SAFFRON_GYM', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['CinnabarLabFossilRoom', 'CINNABAR_LAB_FOSSIL_ROOM', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['VictoryRoad2F', 'VICTORY_ROAD_2F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route19', 'ROUTE_19', 'OVERWORLD', ['NORTH', 'WEST']]), + ('connection', ['north', 'FuchsiaCity', 'FUCHSIA_CITY', '-5']), + ('connection', ['west', 'Route20', 'ROUTE_20', '18']), + ('end_map_header',)] +here +[('map_header', ['ViridianSchoolHouse', 'VIRIDIAN_SCHOOL_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnneB1F', 'SS_ANNE_B1F', 'SHIP', '0']), ('end_map_header',)] +here +[('map_header', ['PokemonTower4F', 'POKEMON_TOWER_4F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', ['FuchsiaPokecenter', 'FUCHSIA_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['Route9', 'ROUTE_9', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'CeruleanCity', 'CERULEAN_CITY', '-4']), + ('connection', ['east', 'Route10', 'ROUTE_10', '0']), + ('end_map_header',)] +here +[('map_header', + ['GameCornerPrizeRoom', 'GAME_CORNER_PRIZE_ROOM', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', + ['CinnabarPokecenter', 'CINNABAR_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['CeruleanGym', 'CERULEAN_GYM', 'GYM', '0']), + ('end_map_header',)] +here +[('map_header', ['Route18Gate1F', 'ROUTE_18_GATE_1F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', + ['SaffronCity', + 'SAFFRON_CITY', + 'OVERWORLD', + ['NORTH', 'SOUTH', 'WEST', 'EAST']]), + ('connection', ['north', 'Route5', 'ROUTE_5', '5']), + ('connection', ['south', 'Route6', 'ROUTE_6', '5']), + ('connection', ['west', 'Route7', 'ROUTE_7', '4']), + ('connection', ['east', 'Route8', 'ROUTE_8', '4']), + ('end_map_header',)] +here +[('map_header', ['Route2', 'ROUTE_2', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'PewterCity', 'PEWTER_CITY', '-5']), + ('connection', ['south', 'ViridianCity', 'VIRIDIAN_CITY', '-5']), + ('end_map_header',)] +here +[('map_header', + ['UndergroundPathRoute7Copy', 'UNDERGROUND_PATH_ROUTE_7', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', + ['UndergroundPathRoute5', 'UNDERGROUND_PATH_ROUTE_5', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['SaffronPokecenter', 'SAFFRON_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['RockTunnelB1F', 'ROCK_TUNNEL_B1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route11', 'ROUTE_11', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'VermilionCity', 'VERMILION_CITY', '-4']), + ('connection', ['east', 'Route12', 'ROUTE_12', '-27']), + ('end_map_header',)] +here +[('map_header', ['RockTunnel1F', 'ROCK_TUNNEL_1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnneBow', 'SS_ANNE_BOW', 'SHIP', '0']), ('end_map_header',)] +here +[('map_header', ['Route5', 'ROUTE_5', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'CeruleanCity', 'CERULEAN_CITY', '-5']), + ('connection', ['south', 'SaffronCity', 'SAFFRON_CITY', '-5']), + ('end_map_header',)] +here +[('map_header', + ['LavenderTown', 'LAVENDER_TOWN', 'OVERWORLD', ['NORTH', 'SOUTH', 'WEST']]), + ('connection', ['north', 'Route10', 'ROUTE_10', '0']), + ('connection', ['south', 'Route12', 'ROUTE_12', '0']), + ('connection', ['west', 'Route8', 'ROUTE_8', '0']), + ('end_map_header',)] +here +[('map_header', ['Route13', 'ROUTE_13', 'OVERWORLD', ['NORTH', 'WEST']]), + ('connection', ['north', 'Route12', 'ROUTE_12', '20']), + ('connection', ['west', 'Route14', 'ROUTE_14', '0']), + ('end_map_header',)] +here +[('map_header', + ['ViridianCity', 'VIRIDIAN_CITY', 'OVERWORLD', ['NORTH', 'SOUTH', 'WEST']]), + ('connection', ['north', 'Route2', 'ROUTE_2', '5']), + ('connection', ['south', 'Route1', 'ROUTE_1', '5']), + ('connection', ['west', 'Route22', 'ROUTE_22', '4']), + ('end_map_header',)] +here +[('map_header', ['LoreleisRoom', 'LORELEIS_ROOM', 'GYM', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower5F', 'POKEMON_TOWER_5F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', ['SeafoamIslandsB2F', 'SEAFOAM_ISLANDS_B2F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route18', 'ROUTE_18', 'OVERWORLD', ['NORTH', 'EAST']]), + ('connection', ['north', 'Route17', 'ROUTE_17', '0']), + ('connection', ['east', 'FuchsiaCity', 'FUCHSIA_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', ['SilphCo5F', 'SILPH_CO_5F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['VictoryRoad3F', 'VICTORY_ROAD_3F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['Route14', 'ROUTE_14', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'Route15', 'ROUTE_15', '18']), + ('connection', ['east', 'Route13', 'ROUTE_13', '0']), + ('end_map_header',)] +here +[('map_header', ['Route25', 'ROUTE_25', 'OVERWORLD', 'WEST']), + ('connection', ['west', 'Route24', 'ROUTE_24', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMart3F', 'CELADON_MART_3F', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', + ['ViridianPokecenter', 'VIRIDIAN_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['Route12Gate1F', 'ROUTE_12_GATE_1F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeruleanCave1F', 'CERULEAN_CAVE_1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', + ['FuchsiaCity', 'FUCHSIA_CITY', 'OVERWORLD', ['SOUTH', 'WEST', 'EAST']]), + ('connection', ['south', 'Route19', 'ROUTE_19', '5']), + ('connection', ['west', 'Route18', 'ROUTE_18', '4']), + ('connection', ['east', 'Route15', 'ROUTE_15', '4']), + ('end_map_header',)] +here +[('map_header', ['RocketHideoutB2F', 'ROCKET_HIDEOUT_B2F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['SafariZoneGate', 'SAFARI_ZONE_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMansion3F', 'CELADON_MANSION_3F', 'MANSION', '0']), + ('end_map_header',)] +here +[('map_header', ['Route5Gate', 'ROUTE_5_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route2Gate', 'ROUTE_2_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeruleanMart', 'CERULEAN_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['Daycare', 'DAYCARE', 'HOUSE', '0']), ('end_map_header',)] +here +[('map_header', ['LancesRoom', 'LANCES_ROOM', 'DOJO', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterGym', 'PEWTER_GYM', 'GYM', '0']), ('end_map_header',)] +here +[('map_header', ['PokemonMansion3F', 'POKEMON_MANSION_3F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route16Gate2F', 'ROUTE_16_GATE_2F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route11Gate2F', 'ROUTE_11_GATE_2F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', + ['ViridianNicknameHouse', 'VIRIDIAN_NICKNAME_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route8Gate', 'ROUTE_8_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['VermilionMart', 'VERMILION_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', + ['VermilionCity', 'VERMILION_CITY', 'OVERWORLD', ['NORTH', 'EAST']]), + ('connection', ['north', 'Route6', 'ROUTE_6', '5']), + ('connection', ['east', 'Route11', 'ROUTE_11', '4']), + ('end_map_header',)] +here +[('map_header', ['CeruleanCaveB1F', 'CERULEAN_CAVE_B1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['CopycatsHouse2F', 'COPYCATS_HOUSE_2F', 'REDS_HOUSE_2', '0']), + ('end_map_header',)] +here +[('map_header', ['NameRatersHouse', 'NAME_RATERS_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterPokecenter', 'PEWTER_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['BillsHouse', 'BILLS_HOUSE', 'INTERIOR', '0']), + ('end_map_header',)] +here +[('map_header', ['MtMoonB1F', 'MT_MOON_B1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', + ['LavenderPokecenter', 'LAVENDER_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMart5F', 'CELADON_MART_5F', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMartElevator', 'CELADON_MART_ELEVATOR', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['SeafoamIslandsB1F', 'SEAFOAM_ISLANDS_B1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', + ['CinnabarLabMetronomeRoom', 'CINNABAR_LAB_METRONOME_ROOM', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['SafariZoneCenter', 'SAFARI_ZONE_CENTER', 'FOREST', '0']), + ('end_map_header',)] +here +[('map_header', ['Museum2F', 'MUSEUM_2F', 'MUSEUM', '0']), ('end_map_header',)] +here +[('map_header', ['CinnabarMart', 'CINNABAR_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonFanClub', 'POKEMON_FAN_CLUB', 'INTERIOR', '0']), + ('end_map_header',)] +here +[('map_header', ['CeruleanCave2F', 'CERULEAN_CAVE_2F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonDiner', 'CELADON_DINER', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnne2F', 'SS_ANNE_2F', 'SHIP', '0']), ('end_map_header',)] +here +[('map_header', ['SSAnneKitchen', 'SS_ANNE_KITCHEN', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonMansion2F', 'POKEMON_MANSION_2F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['ViridianForestSouthGate', + 'VIRIDIAN_FOREST_SOUTH_GATE', + 'FOREST_GATE', + '0']), + ('end_map_header',)] +here +[('map_header', ['SaffronMart', 'SAFFRON_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['Route16Gate1F', 'ROUTE_16_GATE_1F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonCity', 'CELADON_CITY', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'Route16', 'ROUTE_16', '4']), + ('connection', ['east', 'Route7', 'ROUTE_7', '4']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower3F', 'POKEMON_TOWER_3F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', ['MrFujisHouse', 'MR_FUJIS_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo10F', 'SILPH_CO_10F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['VermilionPidgeyHouse', 'VERMILION_PIDGEY_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['ViridianMart', 'VIRIDIAN_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnne1F', 'SS_ANNE_1F', 'SHIP', '0']), ('end_map_header',)] +here +[('map_header', ['Route7', 'ROUTE_7', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'CeladonCity', 'CELADON_CITY', '-4']), + ('connection', ['east', 'SaffronCity', 'SAFFRON_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', + ['UndergroundPathNorthSouth', + 'UNDERGROUND_PATH_NORTH_SOUTH', + 'UNDERGROUND', + '0']), + ('end_map_header',)] +here +[('map_header', ['Route2TradeHouse', 'ROUTE_2_TRADE_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', + ['CinnabarIsland', 'CINNABAR_ISLAND', 'OVERWORLD', ['NORTH', 'EAST']]), + ('connection', ['north', 'Route21', 'ROUTE_21', '0']), + ('connection', ['east', 'Route20', 'ROUTE_20', '0']), + ('end_map_header',)] +here +[('map_header', ['HallOfFame', 'HALL_OF_FAME', 'GYM', '0']), + ('end_map_header',)] +here +[('map_header', + ['SafariZoneSecretHouse', 'SAFARI_ZONE_SECRET_HOUSE', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['MtMoonB2F', 'MT_MOON_B2F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['BikeShop', 'BIKE_SHOP', 'CLUB', '0']), ('end_map_header',)] +here +[('map_header', ['CeladonPokecenter', 'CELADON_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['VermilionGym', 'VERMILION_GYM', 'GYM', '0']), + ('end_map_header',)] +here +[('map_header', ['FuchsiaMart', 'FUCHSIA_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['ChampionsRoom', 'CHAMPIONS_ROOM', 'GYM', '$0']), + ('end_map_header',)] +here +[('map_header', + ['CeruleanCity', + 'CERULEAN_CITY', + 'OVERWORLD', + ['NORTH', 'SOUTH', 'WEST', 'EAST']]), + ('connection', ['north', 'Route24', 'ROUTE_24', '5']), + ('connection', ['south', 'Route5', 'ROUTE_5', '5']), + ('connection', ['west', 'Route4', 'ROUTE_4', '4']), + ('connection', ['east', 'Route9', 'ROUTE_9', '4']), + ('end_map_header',)] +here +[('map_header', + ['CeruleanPokecenter', 'CERULEAN_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', + ['SafariZoneNorthRestHouse', 'SAFARI_ZONE_NORTH_REST_HOUSE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['VermilionDock', 'VERMILION_DOCK', 'SHIP_PORT', '0']), + ('end_map_header',)] +here +[('map_header', ['BluesHouse', 'BLUES_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['AgathasRoom', 'AGATHAS_ROOM', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', ['IndigoPlateauLobby', 'INDIGO_PLATEAU_LOBBY', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['VictoryRoad1F', 'VICTORY_ROAD_1F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', + ['RockTunnelPokecenter', 'ROCK_TUNNEL_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['Route15Gate1F', 'ROUTE_15_GATE_1F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMart4F', 'CELADON_MART_4F', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', + ['UndergroundPathWestEast', + 'UNDERGROUND_PATH_WEST_EAST', + 'UNDERGROUND', + '0']), + ('end_map_header',)] +here +[('map_header', ['Route18Gate2F', 'ROUTE_18_GATE_2F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route16', 'ROUTE_16', 'OVERWORLD', ['SOUTH', 'EAST']]), + ('connection', ['south', 'Route17', 'ROUTE_17', '0']), + ('connection', ['east', 'CeladonCity', 'CELADON_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', ['SSAnneCaptainsRoom', 'SS_ANNE_CAPTAINS_ROOM', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower6F', 'POKEMON_TOWER_6F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', + ['Route12SuperRodHouse', 'ROUTE_12_SUPER_ROD_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['OaksLab', 'OAKS_LAB', 'DOJO', '0']), ('end_map_header',)] +here +[('map_header', + ['UndergroundPathRoute7', 'UNDERGROUND_PATH_ROUTE_7', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterSpeechHouse', 'PEWTER_SPEECH_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['DiglettsCaveRoute2', 'DIGLETTS_CAVE_ROUTE_2', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMansionRoof', 'CELADON_MANSION_ROOF', 'MANSION', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonMansion1F', 'POKEMON_MANSION_1F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower2F', 'POKEMON_TOWER_2F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route15', 'ROUTE_15', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'FuchsiaCity', 'FUCHSIA_CITY', '-4']), + ('connection', ['east', 'Route14', 'ROUTE_14', '-18']), + ('end_map_header',)] +here +[('map_header', + ['VermilionPokecenter', 'VERMILION_POKECENTER', 'POKECENTER', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonTower1F', 'POKEMON_TOWER_1F', 'CEMETERY', '0']), + ('end_map_header',)] +here +[('map_header', + ['ViridianForestNorthGate', + 'VIRIDIAN_FOREST_NORTH_GATE', + 'FOREST_GATE', + '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo3F', 'SILPH_CO_3F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route23', 'ROUTE_23', 'PLATEAU', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'IndigoPlateau', 'INDIGO_PLATEAU', '0']), + ('connection', ['south', 'Route22', 'ROUTE_22', '0']), + ('end_map_header',)] +here +[('map_header', ['Route3', 'ROUTE_3', 'OVERWORLD', ['NORTH', 'WEST']]), + ('connection', ['north', 'Route4', 'ROUTE_4', '25']), + ('connection', ['west', 'PewterCity', 'PEWTER_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', + ['CeladonMansionRoofHouse', 'CELADON_MANSION_ROOF_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['MrPsychicsHouse', 'MR_PSYCHICS_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['MtMoon1F', 'MT_MOON_1F', 'CAVERN', '0']), ('end_map_header',)] +here +[('map_header', ['CeladonGym', 'CELADON_GYM', 'GYM', '0']), ('end_map_header',)] +here +[('map_header', ['CeladonMansion2F', 'CELADON_MANSION_2F', 'MANSION', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterCity', 'PEWTER_CITY', 'OVERWORLD', ['SOUTH', 'EAST']]), + ('connection', ['south', 'Route2', 'ROUTE_2', '5']), + ('connection', ['east', 'Route3', 'ROUTE_3', '4']), + ('end_map_header',)] +here +[('map_header', + ['UndergroundPathRoute6', 'UNDERGROUND_PATH_ROUTE_6', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route7Gate', 'ROUTE_7_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', + ['Route12', 'ROUTE_12', 'OVERWORLD', ['NORTH', 'SOUTH', 'WEST']]), + ('connection', ['north', 'LavenderTown', 'LAVENDER_TOWN', '0']), + ('connection', ['south', 'Route13', 'ROUTE_13', '-20']), + ('connection', ['west', 'Route11', 'ROUTE_11', '27']), + ('end_map_header',)] +here +[('map_header', ['SaffronPidgeyHouse', 'SAFFRON_PIDGEY_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnneB1FRooms', 'SS_ANNE_B1F_ROOMS', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['Museum1F', 'MUSEUM_1F', 'MUSEUM', '0']), ('end_map_header',)] +here +[('map_header', + ['UndergroundPathRoute8', 'UNDERGROUND_PATH_ROUTE_8', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['SafariZoneNorth', 'SAFARI_ZONE_NORTH', 'FOREST', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonChiefHouse', 'CELADON_CHIEF_HOUSE', 'MANSION', '0']), + ('end_map_header',)] +here +[('map_header', + ['RocketHideoutElevator', 'ROCKET_HIDEOUT_ELEVATOR', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMart2F', 'CELADON_MART_2F', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo11F', 'SILPH_CO_11F', 'INTERIOR', '0']), + ('end_map_header',)] +here +[('map_header', ['FuchsiaGym', 'FUCHSIA_GYM', 'GYM', '0']), ('end_map_header',)] +here +[('map_header', ['SafariZoneEast', 'SAFARI_ZONE_EAST', 'FOREST', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo1F', 'SILPH_CO_1F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route15Gate2F', 'ROUTE_15_GATE_2F', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route8', 'ROUTE_8', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'SaffronCity', 'SAFFRON_CITY', '-4']), + ('connection', ['east', 'LavenderTown', 'LAVENDER_TOWN', '0']), + ('end_map_header',)] +here +[('map_header', ['FuchsiaGoodRodHouse', 'FUCHSIA_GOOD_ROD_HOUSE', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['PokemonMansionB1F', 'POKEMON_MANSION_B1F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route16FlyHouse', 'ROUTE_16_FLY_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo7F', 'SILPH_CO_7F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['FightingDojo', 'FIGHTING_DOJO', 'DOJO', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo6F', 'SILPH_CO_6F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['SafariZoneWestRestHouse', 'SAFARI_ZONE_WEST_REST_HOUSE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMart1F', 'CELADON_MART_1F', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo2F', 'SILPH_CO_2F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['RedsHouse1F', 'REDS_HOUSE_1F', 'REDS_HOUSE_1', '0']), + ('end_map_header',)] +here +[('map_header', ['Route4', 'ROUTE_4', 'OVERWORLD', ['SOUTH', 'EAST']]), + ('connection', ['south', 'Route3', 'ROUTE_3', '-25']), + ('connection', ['east', 'CeruleanCity', 'CERULEAN_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', ['SSAnne3F', 'SS_ANNE_3F', 'SHIP', '0']), ('end_map_header',)] +here +[('map_header', ['TradeCenter', 'TRADE_CENTER', 'CLUB', '0']), + ('end_map_header',)] +here +[('map_header', ['PalletTown', 'PALLET_TOWN', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'Route1', 'ROUTE_1', '0']), + ('connection', ['south', 'Route21', 'ROUTE_21', '0']), + ('end_map_header',)] +here +[('map_header', ['RocketHideoutB1F', 'ROCKET_HIDEOUT_B1F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['CinnabarGym', 'CINNABAR_GYM', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', + ['CeruleanTrashedHouse', 'CERULEAN_TRASHED_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['Route17', 'ROUTE_17', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'Route16', 'ROUTE_16', '0']), + ('connection', ['south', 'Route18', 'ROUTE_18', '0']), + ('end_map_header',)] +here +[('map_header', + ['CinnabarLabTradeRoom', 'CINNABAR_LAB_TRADE_ROOM', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['Route20', 'ROUTE_20', 'OVERWORLD', ['WEST', 'EAST']]), + ('connection', ['west', 'CinnabarIsland', 'CINNABAR_ISLAND', '0']), + ('connection', ['east', 'Route19', 'ROUTE_19', '-18']), + ('end_map_header',)] +here +[('map_header', ['Route22', 'ROUTE_22', 'OVERWORLD', ['NORTH', 'EAST']]), + ('connection', ['north', 'Route23', 'ROUTE_23', '0']), + ('connection', ['east', 'ViridianCity', 'VIRIDIAN_CITY', '-4']), + ('end_map_header',)] +here +[('map_header', ['GameCorner', 'GAME_CORNER', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['ViridianForest', 'VIRIDIAN_FOREST', 'FOREST', '0']), + ('end_map_header',)] +here +[('map_header', ['DiglettsCave', 'DIGLETTS_CAVE', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['IndigoPlateau', 'INDIGO_PLATEAU', 'PLATEAU', 'SOUTH']), + ('connection', ['south', 'Route23', 'ROUTE_23', '0']), + ('end_map_header',)] +here +[('map_header', ['Route6', 'ROUTE_6', 'OVERWORLD', ['NORTH', 'SOUTH']]), + ('connection', ['north', 'SaffronCity', 'SAFFRON_CITY', '-5']), + ('connection', ['south', 'VermilionCity', 'VERMILION_CITY', '-5']), + ('end_map_header',)] +here +[('map_header', ['CeladonMansion1F', 'CELADON_MANSION_1F', 'MANSION', '0']), + ('end_map_header',)] +here +[('map_header', ['PewterMart', 'PEWTER_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', ['LavenderMart', 'LAVENDER_MART', 'MART', '0']), + ('end_map_header',)] +here +[('map_header', + ['SafariZoneEastRestHouse', 'SAFARI_ZONE_EAST_REST_HOUSE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['ViridianGym', 'VIRIDIAN_GYM', 'GYM', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo8F', 'SILPH_CO_8F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Colosseum', 'COLOSSEUM', 'CLUB', '0']), ('end_map_header',)] +here +[('map_header', ['VermilionTradeHouse', 'VERMILION_TRADE_HOUSE', 'HOUSE', '0']), + ('end_map_header',)] +here +[('map_header', ['CopycatsHouse1F', 'COPYCATS_HOUSE_1F', 'REDS_HOUSE_1', '0']), + ('end_map_header',)] +here +[('map_header', ['SeafoamIslandsB3F', 'SEAFOAM_ISLANDS_B3F', 'CAVERN', '0']), + ('end_map_header',)] +here +[('map_header', ['WardensHouse', 'WARDENS_HOUSE', 'LAB', '0']), + ('end_map_header',)] +here +[('map_header', ['SSAnne1FRooms', 'SS_ANNE_1F_ROOMS', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['SilphCo4F', 'SILPH_CO_4F', 'FACILITY', '0']), + ('end_map_header',)] +here +[('map_header', ['Route6Gate', 'ROUTE_6_GATE', 'GATE', '0']), + ('end_map_header',)] +here +[('map_header', ['CeladonMartRoof', 'CELADON_MART_ROOF', 'LOBBY', '0']), + ('end_map_header',)] +here +[('map_header', ['CeruleanBadgeHouse', 'CERULEAN_BADGE_HOUSE', 'SHIP', '0']), + ('end_map_header',)] +here +[('map_header', ['RocketHideoutB4F', 'ROCKET_HIDEOUT_B4F', 'FACILITY', '0']), + ('end_map_header',)] +[MapHeader(name1='SSAnne2FRooms', name2='SS_ANNE_2F_ROOMS', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='SeafoamIslands1F', name2='SEAFOAM_ISLANDS_1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route24', name2='ROUTE_24', tileset='OVERWORLD', connection_names=['SOUTH', 'EAST'], connections=[('south', 'CeruleanCity', 'CERULEAN_CITY', '-5'), ('east', 'Route25', 'ROUTE_25', '0')]), MapHeader(name1='Route11Gate1F', name2='ROUTE_11_GATE_1F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='PowerPlant', name2='POWER_PLANT', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='LavenderCuboneHouse', name2='LAVENDER_CUBONE_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SilphCo9F', name2='SILPH_CO_9F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='DiglettsCaveRoute11', name2='DIGLETTS_CAVE_ROUTE_11', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route21', name2='ROUTE_21', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'PalletTown', 'PALLET_TOWN', '0'), ('south', 'CinnabarIsland', 'CINNABAR_ISLAND', '0')]), MapHeader(name1='RedsHouse2F', name2='REDS_HOUSE_2F', tileset='REDS_HOUSE_2', connection_names='$00', connections=[]), MapHeader(name1='SeafoamIslandsB4F', name2='SEAFOAM_ISLANDS_B4F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='SafariZoneWest', name2='SAFARI_ZONE_WEST', tileset='FOREST', connection_names=[], connections=[]), MapHeader(name1='Route22Gate', name2='ROUTE_22_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CinnabarLab', name2='CINNABAR_LAB', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='CeladonHotel', name2='CELADON_HOTEL', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='Route12Gate2F', name2='ROUTE_12_GATE_2F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route10', name2='ROUTE_10', tileset='OVERWORLD', connection_names=['SOUTH', 'WEST'], connections=[('south', 'LavenderTown', 'LAVENDER_TOWN', '0'), ('west', 'Route9', 'ROUTE_9', '0')]), MapHeader(name1='PewterNidoranHouse', name2='PEWTER_NIDORAN_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='FuchsiaBillsGrandpasHouse', name2='FUCHSIA_BILLS_GRANDPAS_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SilphCoElevator', name2='SILPH_CO_ELEVATOR', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='BrunosRoom', name2='BRUNOS_ROOM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='CeruleanTradeHouse', name2='CERULEAN_TRADE_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='RocketHideoutB3F', name2='ROCKET_HIDEOUT_B3F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='FuchsiaMeetingRoom', name2='FUCHSIA_MEETING_ROOM', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='SafariZoneCenterRestHouse', name2='SAFARI_ZONE_CENTER_REST_HOUSE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='MtMoonPokecenter', name2='MT_MOON_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='Route1', name2='ROUTE_1', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'ViridianCity', 'VIRIDIAN_CITY', '-5'), ('south', 'PalletTown', 'PALLET_TOWN', '0')]), MapHeader(name1='PokemonTower7F', name2='POKEMON_TOWER_7F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='VermilionOldRodHouse', name2='VERMILION_OLD_ROD_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SaffronGym', name2='SAFFRON_GYM', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='CinnabarLabFossilRoom', name2='CINNABAR_LAB_FOSSIL_ROOM', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='VictoryRoad2F', name2='VICTORY_ROAD_2F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route19', name2='ROUTE_19', tileset='OVERWORLD', connection_names=['NORTH', 'WEST'], connections=[('north', 'FuchsiaCity', 'FUCHSIA_CITY', '-5'), ('west', 'Route20', 'ROUTE_20', '18')]), MapHeader(name1='ViridianSchoolHouse', name2='VIRIDIAN_SCHOOL_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SSAnneB1F', name2='SS_ANNE_B1F', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='PokemonTower4F', name2='POKEMON_TOWER_4F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='FuchsiaPokecenter', name2='FUCHSIA_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='Route9', name2='ROUTE_9', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'CeruleanCity', 'CERULEAN_CITY', '-4'), ('east', 'Route10', 'ROUTE_10', '0')]), MapHeader(name1='GameCornerPrizeRoom', name2='GAME_CORNER_PRIZE_ROOM', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='CinnabarPokecenter', name2='CINNABAR_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='CeruleanGym', name2='CERULEAN_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='Route18Gate1F', name2='ROUTE_18_GATE_1F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='SaffronCity', name2='SAFFRON_CITY', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH', 'WEST', 'EAST'], connections=[('north', 'Route5', 'ROUTE_5', '5'), ('south', 'Route6', 'ROUTE_6', '5'), ('west', 'Route7', 'ROUTE_7', '4'), ('east', 'Route8', 'ROUTE_8', '4')]), MapHeader(name1='Route2', name2='ROUTE_2', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'PewterCity', 'PEWTER_CITY', '-5'), ('south', 'ViridianCity', 'VIRIDIAN_CITY', '-5')]), MapHeader(name1='UndergroundPathRoute7Copy', name2='UNDERGROUND_PATH_ROUTE_7', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='UndergroundPathRoute5', name2='UNDERGROUND_PATH_ROUTE_5', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='SaffronPokecenter', name2='SAFFRON_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='RockTunnelB1F', name2='ROCK_TUNNEL_B1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route11', name2='ROUTE_11', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'VermilionCity', 'VERMILION_CITY', '-4'), ('east', 'Route12', 'ROUTE_12', '-27')]), MapHeader(name1='RockTunnel1F', name2='ROCK_TUNNEL_1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='SSAnneBow', name2='SS_ANNE_BOW', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='Route5', name2='ROUTE_5', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'CeruleanCity', 'CERULEAN_CITY', '-5'), ('south', 'SaffronCity', 'SAFFRON_CITY', '-5')]), MapHeader(name1='LavenderTown', name2='LAVENDER_TOWN', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH', 'WEST'], connections=[('north', 'Route10', 'ROUTE_10', '0'), ('south', 'Route12', 'ROUTE_12', '0'), ('west', 'Route8', 'ROUTE_8', '0')]), MapHeader(name1='Route13', name2='ROUTE_13', tileset='OVERWORLD', connection_names=['NORTH', 'WEST'], connections=[('north', 'Route12', 'ROUTE_12', '20'), ('west', 'Route14', 'ROUTE_14', '0')]), MapHeader(name1='ViridianCity', name2='VIRIDIAN_CITY', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH', 'WEST'], connections=[('north', 'Route2', 'ROUTE_2', '5'), ('south', 'Route1', 'ROUTE_1', '5'), ('west', 'Route22', 'ROUTE_22', '4')]), MapHeader(name1='LoreleisRoom', name2='LORELEIS_ROOM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='PokemonTower5F', name2='POKEMON_TOWER_5F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='SeafoamIslandsB2F', name2='SEAFOAM_ISLANDS_B2F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route18', name2='ROUTE_18', tileset='OVERWORLD', connection_names=['NORTH', 'EAST'], connections=[('north', 'Route17', 'ROUTE_17', '0'), ('east', 'FuchsiaCity', 'FUCHSIA_CITY', '-4')]), MapHeader(name1='SilphCo5F', name2='SILPH_CO_5F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='VictoryRoad3F', name2='VICTORY_ROAD_3F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='Route14', name2='ROUTE_14', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'Route15', 'ROUTE_15', '18'), ('east', 'Route13', 'ROUTE_13', '0')]), MapHeader(name1='Route25', name2='ROUTE_25', tileset='OVERWORLD', connection_names='WEST', connections=[('west', 'Route24', 'ROUTE_24', '0')]), MapHeader(name1='CeladonMart3F', name2='CELADON_MART_3F', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='ViridianPokecenter', name2='VIRIDIAN_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='Route12Gate1F', name2='ROUTE_12_GATE_1F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeruleanCave1F', name2='CERULEAN_CAVE_1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='FuchsiaCity', name2='FUCHSIA_CITY', tileset='OVERWORLD', connection_names=['SOUTH', 'WEST', 'EAST'], connections=[('south', 'Route19', 'ROUTE_19', '5'), ('west', 'Route18', 'ROUTE_18', '4'), ('east', 'Route15', 'ROUTE_15', '4')]), MapHeader(name1='RocketHideoutB2F', name2='ROCKET_HIDEOUT_B2F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='SafariZoneGate', name2='SAFARI_ZONE_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeladonMansion3F', name2='CELADON_MANSION_3F', tileset='MANSION', connection_names=[], connections=[]), MapHeader(name1='Route5Gate', name2='ROUTE_5_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route2Gate', name2='ROUTE_2_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeruleanMart', name2='CERULEAN_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='Daycare', name2='DAYCARE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='LancesRoom', name2='LANCES_ROOM', tileset='DOJO', connection_names=[], connections=[]), MapHeader(name1='PewterGym', name2='PEWTER_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='PokemonMansion3F', name2='POKEMON_MANSION_3F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Route16Gate2F', name2='ROUTE_16_GATE_2F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route11Gate2F', name2='ROUTE_11_GATE_2F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='ViridianNicknameHouse', name2='VIRIDIAN_NICKNAME_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='Route8Gate', name2='ROUTE_8_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='VermilionMart', name2='VERMILION_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='VermilionCity', name2='VERMILION_CITY', tileset='OVERWORLD', connection_names=['NORTH', 'EAST'], connections=[('north', 'Route6', 'ROUTE_6', '5'), ('east', 'Route11', 'ROUTE_11', '4')]), MapHeader(name1='CeruleanCaveB1F', name2='CERULEAN_CAVE_B1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='CopycatsHouse2F', name2='COPYCATS_HOUSE_2F', tileset='REDS_HOUSE_2', connection_names=[], connections=[]), MapHeader(name1='NameRatersHouse', name2='NAME_RATERS_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='PewterPokecenter', name2='PEWTER_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='BillsHouse', name2='BILLS_HOUSE', tileset='INTERIOR', connection_names=[], connections=[]), MapHeader(name1='MtMoonB1F', name2='MT_MOON_B1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='LavenderPokecenter', name2='LAVENDER_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='CeladonMart5F', name2='CELADON_MART_5F', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='CeladonMartElevator', name2='CELADON_MART_ELEVATOR', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='SeafoamIslandsB1F', name2='SEAFOAM_ISLANDS_B1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='CinnabarLabMetronomeRoom', name2='CINNABAR_LAB_METRONOME_ROOM', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='SafariZoneCenter', name2='SAFARI_ZONE_CENTER', tileset='FOREST', connection_names=[], connections=[]), MapHeader(name1='Museum2F', name2='MUSEUM_2F', tileset='MUSEUM', connection_names=[], connections=[]), MapHeader(name1='CinnabarMart', name2='CINNABAR_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='PokemonFanClub', name2='POKEMON_FAN_CLUB', tileset='INTERIOR', connection_names=[], connections=[]), MapHeader(name1='CeruleanCave2F', name2='CERULEAN_CAVE_2F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='CeladonDiner', name2='CELADON_DINER', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='SSAnne2F', name2='SS_ANNE_2F', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='SSAnneKitchen', name2='SS_ANNE_KITCHEN', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='PokemonMansion2F', name2='POKEMON_MANSION_2F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='ViridianForestSouthGate', name2='VIRIDIAN_FOREST_SOUTH_GATE', tileset='FOREST_GATE', connection_names=[], connections=[]), MapHeader(name1='SaffronMart', name2='SAFFRON_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='Route16Gate1F', name2='ROUTE_16_GATE_1F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeladonCity', name2='CELADON_CITY', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'Route16', 'ROUTE_16', '4'), ('east', 'Route7', 'ROUTE_7', '4')]), MapHeader(name1='PokemonTower3F', name2='POKEMON_TOWER_3F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='MrFujisHouse', name2='MR_FUJIS_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SilphCo10F', name2='SILPH_CO_10F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='VermilionPidgeyHouse', name2='VERMILION_PIDGEY_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='ViridianMart', name2='VIRIDIAN_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='SSAnne1F', name2='SS_ANNE_1F', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='Route7', name2='ROUTE_7', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'CeladonCity', 'CELADON_CITY', '-4'), ('east', 'SaffronCity', 'SAFFRON_CITY', '-4')]), MapHeader(name1='UndergroundPathNorthSouth', name2='UNDERGROUND_PATH_NORTH_SOUTH', tileset='UNDERGROUND', connection_names=[], connections=[]), MapHeader(name1='Route2TradeHouse', name2='ROUTE_2_TRADE_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='CinnabarIsland', name2='CINNABAR_ISLAND', tileset='OVERWORLD', connection_names=['NORTH', 'EAST'], connections=[('north', 'Route21', 'ROUTE_21', '0'), ('east', 'Route20', 'ROUTE_20', '0')]), MapHeader(name1='HallOfFame', name2='HALL_OF_FAME', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='SafariZoneSecretHouse', name2='SAFARI_ZONE_SECRET_HOUSE', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='MtMoonB2F', name2='MT_MOON_B2F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='BikeShop', name2='BIKE_SHOP', tileset='CLUB', connection_names=[], connections=[]), MapHeader(name1='CeladonPokecenter', name2='CELADON_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='VermilionGym', name2='VERMILION_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='FuchsiaMart', name2='FUCHSIA_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='ChampionsRoom', name2='CHAMPIONS_ROOM', tileset='GYM', connection_names='$0', connections=[]), MapHeader(name1='CeruleanCity', name2='CERULEAN_CITY', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH', 'WEST', 'EAST'], connections=[('north', 'Route24', 'ROUTE_24', '5'), ('south', 'Route5', 'ROUTE_5', '5'), ('west', 'Route4', 'ROUTE_4', '4'), ('east', 'Route9', 'ROUTE_9', '4')]), MapHeader(name1='CeruleanPokecenter', name2='CERULEAN_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='SafariZoneNorthRestHouse', name2='SAFARI_ZONE_NORTH_REST_HOUSE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='VermilionDock', name2='VERMILION_DOCK', tileset='SHIP_PORT', connection_names=[], connections=[]), MapHeader(name1='BluesHouse', name2='BLUES_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='AgathasRoom', name2='AGATHAS_ROOM', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='IndigoPlateauLobby', name2='INDIGO_PLATEAU_LOBBY', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='VictoryRoad1F', name2='VICTORY_ROAD_1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='RockTunnelPokecenter', name2='ROCK_TUNNEL_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='Route15Gate1F', name2='ROUTE_15_GATE_1F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeladonMart4F', name2='CELADON_MART_4F', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='UndergroundPathWestEast', name2='UNDERGROUND_PATH_WEST_EAST', tileset='UNDERGROUND', connection_names=[], connections=[]), MapHeader(name1='Route18Gate2F', name2='ROUTE_18_GATE_2F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route16', name2='ROUTE_16', tileset='OVERWORLD', connection_names=['SOUTH', 'EAST'], connections=[('south', 'Route17', 'ROUTE_17', '0'), ('east', 'CeladonCity', 'CELADON_CITY', '-4')]), MapHeader(name1='SSAnneCaptainsRoom', name2='SS_ANNE_CAPTAINS_ROOM', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='PokemonTower6F', name2='POKEMON_TOWER_6F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='Route12SuperRodHouse', name2='ROUTE_12_SUPER_ROD_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='OaksLab', name2='OAKS_LAB', tileset='DOJO', connection_names=[], connections=[]), MapHeader(name1='UndergroundPathRoute7', name2='UNDERGROUND_PATH_ROUTE_7', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='PewterSpeechHouse', name2='PEWTER_SPEECH_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='DiglettsCaveRoute2', name2='DIGLETTS_CAVE_ROUTE_2', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='CeladonMansionRoof', name2='CELADON_MANSION_ROOF', tileset='MANSION', connection_names=[], connections=[]), MapHeader(name1='PokemonMansion1F', name2='POKEMON_MANSION_1F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='PokemonTower2F', name2='POKEMON_TOWER_2F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='Route15', name2='ROUTE_15', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'FuchsiaCity', 'FUCHSIA_CITY', '-4'), ('east', 'Route14', 'ROUTE_14', '-18')]), MapHeader(name1='VermilionPokecenter', name2='VERMILION_POKECENTER', tileset='POKECENTER', connection_names=[], connections=[]), MapHeader(name1='PokemonTower1F', name2='POKEMON_TOWER_1F', tileset='CEMETERY', connection_names=[], connections=[]), MapHeader(name1='ViridianForestNorthGate', name2='VIRIDIAN_FOREST_NORTH_GATE', tileset='FOREST_GATE', connection_names=[], connections=[]), MapHeader(name1='SilphCo3F', name2='SILPH_CO_3F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Route23', name2='ROUTE_23', tileset='PLATEAU', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'IndigoPlateau', 'INDIGO_PLATEAU', '0'), ('south', 'Route22', 'ROUTE_22', '0')]), MapHeader(name1='Route3', name2='ROUTE_3', tileset='OVERWORLD', connection_names=['NORTH', 'WEST'], connections=[('north', 'Route4', 'ROUTE_4', '25'), ('west', 'PewterCity', 'PEWTER_CITY', '-4')]), MapHeader(name1='CeladonMansionRoofHouse', name2='CELADON_MANSION_ROOF_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='MrPsychicsHouse', name2='MR_PSYCHICS_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='MtMoon1F', name2='MT_MOON_1F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='CeladonGym', name2='CELADON_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='CeladonMansion2F', name2='CELADON_MANSION_2F', tileset='MANSION', connection_names=[], connections=[]), MapHeader(name1='PewterCity', name2='PEWTER_CITY', tileset='OVERWORLD', connection_names=['SOUTH', 'EAST'], connections=[('south', 'Route2', 'ROUTE_2', '5'), ('east', 'Route3', 'ROUTE_3', '4')]), MapHeader(name1='UndergroundPathRoute6', name2='UNDERGROUND_PATH_ROUTE_6', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route7Gate', name2='ROUTE_7_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route12', name2='ROUTE_12', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH', 'WEST'], connections=[('north', 'LavenderTown', 'LAVENDER_TOWN', '0'), ('south', 'Route13', 'ROUTE_13', '-20'), ('west', 'Route11', 'ROUTE_11', '27')]), MapHeader(name1='SaffronPidgeyHouse', name2='SAFFRON_PIDGEY_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SSAnneB1FRooms', name2='SS_ANNE_B1F_ROOMS', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='Museum1F', name2='MUSEUM_1F', tileset='MUSEUM', connection_names=[], connections=[]), MapHeader(name1='UndergroundPathRoute8', name2='UNDERGROUND_PATH_ROUTE_8', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='SafariZoneNorth', name2='SAFARI_ZONE_NORTH', tileset='FOREST', connection_names=[], connections=[]), MapHeader(name1='CeladonChiefHouse', name2='CELADON_CHIEF_HOUSE', tileset='MANSION', connection_names=[], connections=[]), MapHeader(name1='RocketHideoutElevator', name2='ROCKET_HIDEOUT_ELEVATOR', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='CeladonMart2F', name2='CELADON_MART_2F', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='SilphCo11F', name2='SILPH_CO_11F', tileset='INTERIOR', connection_names=[], connections=[]), MapHeader(name1='FuchsiaGym', name2='FUCHSIA_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='SafariZoneEast', name2='SAFARI_ZONE_EAST', tileset='FOREST', connection_names=[], connections=[]), MapHeader(name1='SilphCo1F', name2='SILPH_CO_1F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Route15Gate2F', name2='ROUTE_15_GATE_2F', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='Route8', name2='ROUTE_8', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'SaffronCity', 'SAFFRON_CITY', '-4'), ('east', 'LavenderTown', 'LAVENDER_TOWN', '0')]), MapHeader(name1='FuchsiaGoodRodHouse', name2='FUCHSIA_GOOD_ROD_HOUSE', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='PokemonMansionB1F', name2='POKEMON_MANSION_B1F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Route16FlyHouse', name2='ROUTE_16_FLY_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='SilphCo7F', name2='SILPH_CO_7F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='FightingDojo', name2='FIGHTING_DOJO', tileset='DOJO', connection_names=[], connections=[]), MapHeader(name1='SilphCo6F', name2='SILPH_CO_6F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='SafariZoneWestRestHouse', name2='SAFARI_ZONE_WEST_REST_HOUSE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeladonMart1F', name2='CELADON_MART_1F', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='SilphCo2F', name2='SILPH_CO_2F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='RedsHouse1F', name2='REDS_HOUSE_1F', tileset='REDS_HOUSE_1', connection_names=[], connections=[]), MapHeader(name1='Route4', name2='ROUTE_4', tileset='OVERWORLD', connection_names=['SOUTH', 'EAST'], connections=[('south', 'Route3', 'ROUTE_3', '-25'), ('east', 'CeruleanCity', 'CERULEAN_CITY', '-4')]), MapHeader(name1='SSAnne3F', name2='SS_ANNE_3F', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='TradeCenter', name2='TRADE_CENTER', tileset='CLUB', connection_names=[], connections=[]), MapHeader(name1='PalletTown', name2='PALLET_TOWN', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'Route1', 'ROUTE_1', '0'), ('south', 'Route21', 'ROUTE_21', '0')]), MapHeader(name1='RocketHideoutB1F', name2='ROCKET_HIDEOUT_B1F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='CinnabarGym', name2='CINNABAR_GYM', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='CeruleanTrashedHouse', name2='CERULEAN_TRASHED_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='Route17', name2='ROUTE_17', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'Route16', 'ROUTE_16', '0'), ('south', 'Route18', 'ROUTE_18', '0')]), MapHeader(name1='CinnabarLabTradeRoom', name2='CINNABAR_LAB_TRADE_ROOM', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='Route20', name2='ROUTE_20', tileset='OVERWORLD', connection_names=['WEST', 'EAST'], connections=[('west', 'CinnabarIsland', 'CINNABAR_ISLAND', '0'), ('east', 'Route19', 'ROUTE_19', '-18')]), MapHeader(name1='Route22', name2='ROUTE_22', tileset='OVERWORLD', connection_names=['NORTH', 'EAST'], connections=[('north', 'Route23', 'ROUTE_23', '0'), ('east', 'ViridianCity', 'VIRIDIAN_CITY', '-4')]), MapHeader(name1='GameCorner', name2='GAME_CORNER', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='ViridianForest', name2='VIRIDIAN_FOREST', tileset='FOREST', connection_names=[], connections=[]), MapHeader(name1='DiglettsCave', name2='DIGLETTS_CAVE', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='IndigoPlateau', name2='INDIGO_PLATEAU', tileset='PLATEAU', connection_names='SOUTH', connections=[('south', 'Route23', 'ROUTE_23', '0')]), MapHeader(name1='Route6', name2='ROUTE_6', tileset='OVERWORLD', connection_names=['NORTH', 'SOUTH'], connections=[('north', 'SaffronCity', 'SAFFRON_CITY', '-5'), ('south', 'VermilionCity', 'VERMILION_CITY', '-5')]), MapHeader(name1='CeladonMansion1F', name2='CELADON_MANSION_1F', tileset='MANSION', connection_names=[], connections=[]), MapHeader(name1='PewterMart', name2='PEWTER_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='LavenderMart', name2='LAVENDER_MART', tileset='MART', connection_names=[], connections=[]), MapHeader(name1='SafariZoneEastRestHouse', name2='SAFARI_ZONE_EAST_REST_HOUSE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='ViridianGym', name2='VIRIDIAN_GYM', tileset='GYM', connection_names=[], connections=[]), MapHeader(name1='SilphCo8F', name2='SILPH_CO_8F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Colosseum', name2='COLOSSEUM', tileset='CLUB', connection_names=[], connections=[]), MapHeader(name1='VermilionTradeHouse', name2='VERMILION_TRADE_HOUSE', tileset='HOUSE', connection_names=[], connections=[]), MapHeader(name1='CopycatsHouse1F', name2='COPYCATS_HOUSE_1F', tileset='REDS_HOUSE_1', connection_names=[], connections=[]), MapHeader(name1='SeafoamIslandsB3F', name2='SEAFOAM_ISLANDS_B3F', tileset='CAVERN', connection_names=[], connections=[]), MapHeader(name1='WardensHouse', name2='WARDENS_HOUSE', tileset='LAB', connection_names=[], connections=[]), MapHeader(name1='SSAnne1FRooms', name2='SS_ANNE_1F_ROOMS', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='SilphCo4F', name2='SILPH_CO_4F', tileset='FACILITY', connection_names=[], connections=[]), MapHeader(name1='Route6Gate', name2='ROUTE_6_GATE', tileset='GATE', connection_names=[], connections=[]), MapHeader(name1='CeladonMartRoof', name2='CELADON_MART_ROOF', tileset='LOBBY', connection_names=[], connections=[]), MapHeader(name1='CeruleanBadgeHouse', name2='CERULEAN_BADGE_HOUSE', tileset='SHIP', connection_names=[], connections=[]), MapHeader(name1='RocketHideoutB4F', name2='ROCKET_HIDEOUT_B4F', tileset='FACILITY', connection_names=[], connections=[])] diff --git a/tools/parse/__main__.py b/tools/parse/__main__.py new file mode 100644 index 0000000..881f9ca --- /dev/null +++ b/tools/parse/__main__.py @@ -0,0 +1,5 @@ +from pprint import pprint +from parse import parse + +for i in parse.map_objects_list.items(): + pprint(i) diff --git a/tools/parse/map_objects.py b/tools/parse/map_objects.py index b665dc2..e16416d 100644 --- a/tools/parse/map_objects.py +++ b/tools/parse/map_objects.py @@ -5,7 +5,8 @@ from parse.map_header import tokenize_line @dataclass class ObjectEvent: - location: tuple[int, int] + type: str + position: tuple[int, int] sprite_id: str movement: str range_or_direction: str @@ -15,18 +16,18 @@ class ObjectEvent: @dataclass class WarpEvent: - location: tuple[int, int] + position: tuple[int, int] destination_map: str - destination_warp_id: str + destination_warp_index: str @dataclass class BgEvent: - location: tuple[int, int] + position: tuple[int, int] sign_id: str @dataclass class Object: - label: str + border_block: int warp_events: list object_events: list bg_events: list @@ -37,49 +38,71 @@ def tokenize_label(line): def tokenize_event(line): return list(tokenize_line(line)) +def tokenize_border_block(line): + return ('border_block', number.parse(line.strip().split()[1])) + def tokenize_lines(lines): for line in lines: if "_event " in line: yield tokenize_event(line) elif ':' in line: yield tokenize_label(line) + elif 'border block' in line: + # special case where we are parsing a comment + yield tokenize_border_block(line) + +def object_id(object_args): + types = { + 6: "trainer", + 5: "item", + 4: "generic", + } + assert len(object_args) in types, object_args + return types[len(object_args)] def flatten(tokens): label = None + border_block = None warp_events = [] object_events = [] bg_events = [] for token_name, args in tokens: - location = lambda : list(map(number.parse, args[0:2])) + position = lambda : list(map(number.parse, args[0:2])) if token_name == 'label': assert label is None - label = token_name + label = args elif token_name == 'object_event': + object_args = args[2:] event = ObjectEvent( - location(), - *(args[2:]) + object_id(object_args), + position(), + *object_args ) object_events.append(event) elif token_name == 'warp_event': - destination_map, destination_warp_id = args[2:] + destination_map, destination_warp_index = args[2:] event = WarpEvent( - location(), + position(), destination_map, - number.parse(destination_warp_id) + number.parse(destination_warp_index) ) warp_events.append(event) elif token_name == 'bg_event': event = BgEvent( - location(), + position(), *(args[2:]) ) bg_events.append(event) + elif token_name == 'border_block': + assert border_block is None + border_block = args else: assert False, (token_name, args) assert label is not None - return Object( - label=label, + assert border_block is not None + return label, Object( + border_block=border_block, warp_events = warp_events, object_events = object_events, bg_events = bg_events, @@ -93,4 +116,4 @@ def parse(path): def parse_all(prefix): base_path = prefix / 'data/maps/objects' paths = (p for p in base_path.iterdir() if p.is_file()) - return [parse(path) for path in paths] + return dict(parse(path) for path in paths) diff --git a/tools/parse/parse.py b/tools/parse/parse.py index d8e97d6..233e67f 100644 --- a/tools/parse/parse.py +++ b/tools/parse/parse.py @@ -24,3 +24,11 @@ collision_tile_ids_list = collision_tile_ids.parse(prefix) map_objects_list = map_objects.parse_all(prefix) hidden_objects_list = hidden_objects.parse(prefix) map_constants_list = map_constants.parse(prefix) + +# need: +#data/tilesets/pair_collision_tile_ids.asm +#ledge_tiles.asm +#cut_tree_blocks.asm + + +# home/vcopy: animations