summaryrefslogtreecommitdiff
path: root/data/scripts/maps
diff options
context:
space:
mode:
Diffstat (limited to 'data/scripts/maps')
-rw-r--r--data/scripts/maps/AbandonedShip_CaptainsOffice.s27
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_1F.s12
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_B1F.s59
-rw-r--r--data/scripts/maps/AbandonedShip_Deck.s8
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s149
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.s144
-rw-r--r--data/scripts/maps/AbandonedShip_Room_B1F.s3
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms2_1F.s29
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms2_B1F.s7
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms_1F.s7
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms_B1F.s12
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater1.s8
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater2.s8
-rw-r--r--data/scripts/maps/AncientTomb.s72
-rw-r--r--data/scripts/maps/AquaHideout_1F.s49
-rw-r--r--data/scripts/maps/AquaHideout_B1F.s46
-rw-r--r--data/scripts/maps/AquaHideout_B2F.s90
-rw-r--r--data/scripts/maps/BattleTower_BattleRoom.s166
-rw-r--r--data/scripts/maps/BattleTower_Corridor.s59
-rw-r--r--data/scripts/maps/BattleTower_Elevator.s58
-rw-r--r--data/scripts/maps/BattleTower_Lobby.s422
-rw-r--r--data/scripts/maps/BattleTower_Outside.s95
-rw-r--r--data/scripts/maps/CaveOfOrigin_1F.s9
-rw-r--r--data/scripts/maps/CaveOfOrigin_B1F.s9
-rw-r--r--data/scripts/maps/CaveOfOrigin_B2F.s9
-rw-r--r--data/scripts/maps/CaveOfOrigin_B3F.s9
-rw-r--r--data/scripts/maps/CaveOfOrigin_B4F.s92
-rw-r--r--data/scripts/maps/CaveOfOrigin_Entrance.s3
-rw-r--r--data/scripts/maps/DesertRuins.s72
-rw-r--r--data/scripts/maps/DewfordTown.s644
-rw-r--r--data/scripts/maps/DewfordTown_Gym.s201
-rw-r--r--data/scripts/maps/DewfordTown_Hall.s269
-rw-r--r--data/scripts/maps/DewfordTown_House1.s21
-rw-r--r--data/scripts/maps/DewfordTown_House2.s30
-rw-r--r--data/scripts/maps/DewfordTown_PokemonCenter_1F.s25
-rw-r--r--data/scripts/maps/DewfordTown_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/DoubleBattleColosseum.s3
-rw-r--r--data/scripts/maps/EverGrandeCity.s26
-rw-r--r--data/scripts/maps/EverGrandeCity_ChampionsRoom.s227
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor1.s12
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor2.s12
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor3.s12
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor4.s12
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor5.s12
-rw-r--r--data/scripts/maps/EverGrandeCity_DrakesRoom.s59
-rw-r--r--data/scripts/maps/EverGrandeCity_GlaciasRoom.s63
-rw-r--r--data/scripts/maps/EverGrandeCity_HallOfFame.s85
-rw-r--r--data/scripts/maps/EverGrandeCity_PhoebesRoom.s63
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s25
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonLeague.s126
-rw-r--r--data/scripts/maps/EverGrandeCity_SidneysRoom.s64
-rw-r--r--data/scripts/maps/FallarborTown.s57
-rw-r--r--data/scripts/maps/FallarborTown_ContestHall.s19
-rw-r--r--data/scripts/maps/FallarborTown_ContestLobby.s122
-rw-r--r--data/scripts/maps/FallarborTown_House1.s78
-rw-r--r--data/scripts/maps/FallarborTown_House2.s64
-rw-r--r--data/scripts/maps/FallarborTown_Mart.s50
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_1F.s82
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/FieryPath.s8
-rw-r--r--data/scripts/maps/FortreeCity.s92
-rw-r--r--data/scripts/maps/FortreeCity_DecorationShop.s61
-rw-r--r--data/scripts/maps/FortreeCity_Gym.s104
-rw-r--r--data/scripts/maps/FortreeCity_House1.s66
-rw-r--r--data/scripts/maps/FortreeCity_House2.s46
-rw-r--r--data/scripts/maps/FortreeCity_House3.s11
-rw-r--r--data/scripts/maps/FortreeCity_House4.s68
-rw-r--r--data/scripts/maps/FortreeCity_House5.s21
-rw-r--r--data/scripts/maps/FortreeCity_Mart.s42
-rw-r--r--data/scripts/maps/FortreeCity_PokemonCenter_1F.s28
-rw-r--r--data/scripts/maps/FortreeCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/GraniteCave_1F.s20
-rw-r--r--data/scripts/maps/GraniteCave_B1F.s11
-rw-r--r--data/scripts/maps/GraniteCave_B2F.s3
-rw-r--r--data/scripts/maps/GraniteCave_StevensRoom.s63
-rw-r--r--data/scripts/maps/InsideOfTruck.s53
-rw-r--r--data/scripts/maps/IslandCave.s84
-rw-r--r--data/scripts/maps/JaggedPass.s50
-rw-r--r--data/scripts/maps/LavaridgeTown.s321
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_1F.s172
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_B1F.s3
-rw-r--r--data/scripts/maps/LavaridgeTown_HerbShop.s44
-rw-r--r--data/scripts/maps/LavaridgeTown_House.s17
-rw-r--r--data/scripts/maps/LavaridgeTown_Mart.s37
-rw-r--r--data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s29
-rw-r--r--data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/LilycoveCity.s428
-rw-r--r--data/scripts/maps/LilycoveCity_ContestHall.s256
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.s772
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s77
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s56
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s85
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s204
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_1F.s146
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_2F.s70
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_3F.s60
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_4F.s55
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_5F.s121
-rw-r--r--data/scripts/maps/LilycoveCity_EmptyMap.s3
-rw-r--r--data/scripts/maps/LilycoveCity_Harbor.s170
-rw-r--r--data/scripts/maps/LilycoveCity_House1.s17
-rw-r--r--data/scripts/maps/LilycoveCity_House2.s22
-rw-r--r--data/scripts/maps/LilycoveCity_House3.s100
-rw-r--r--data/scripts/maps/LilycoveCity_House4.s11
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s163
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s230
-rw-r--r--data/scripts/maps/LilycoveCity_MoveDeletersHouse.s64
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_1F.s34
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s437
-rw-r--r--data/scripts/maps/LilycoveCity_UnusedMart.s3
-rw-r--r--data/scripts/maps/LinkContestRoom1.s1
-rw-r--r--data/scripts/maps/LinkContestRoom2.s1
-rw-r--r--data/scripts/maps/LinkContestRoom3.s1
-rw-r--r--data/scripts/maps/LinkContestRoom4.s1
-rw-r--r--data/scripts/maps/LinkContestRoom5.s1
-rw-r--r--data/scripts/maps/LinkContestRoom6.s1
-rw-r--r--data/scripts/maps/LittlerootTown.s881
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_1F.s125
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_2F.s71
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_1F.s157
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_2F.s221
-rw-r--r--data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s217
-rw-r--r--data/scripts/maps/MagmaHideout_1F.s3
-rw-r--r--data/scripts/maps/MagmaHideout_B1F.s13
-rw-r--r--data/scripts/maps/MagmaHideout_B2F.s3
-rw-r--r--data/scripts/maps/MauvilleCity.s319
-rw-r--r--data/scripts/maps/MauvilleCity_BikeShop.s185
-rw-r--r--data/scripts/maps/MauvilleCity_GameCorner.s652
-rw-r--r--data/scripts/maps/MauvilleCity_Gym.s228
-rw-r--r--data/scripts/maps/MauvilleCity_House1.s20
-rw-r--r--data/scripts/maps/MauvilleCity_House2.s46
-rw-r--r--data/scripts/maps/MauvilleCity_Mart.s40
-rw-r--r--data/scripts/maps/MauvilleCity_PokemonCenter_1F.s34
-rw-r--r--data/scripts/maps/MauvilleCity_PokemonCenter_2F.s22
-rw-r--r--data/scripts/maps/MeteorFalls_1F_1R.s225
-rw-r--r--data/scripts/maps/MeteorFalls_1F_2R.s42
-rw-r--r--data/scripts/maps/MeteorFalls_B1F_1R.s3
-rw-r--r--data/scripts/maps/MeteorFalls_B1F_2R.s3
-rw-r--r--data/scripts/maps/MossdeepCity.s93
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_1F.s187
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_B1F.s78
-rw-r--r--data/scripts/maps/MossdeepCity_Gym.s252
-rw-r--r--data/scripts/maps/MossdeepCity_House1.s24
-rw-r--r--data/scripts/maps/MossdeepCity_House2.s55
-rw-r--r--data/scripts/maps/MossdeepCity_House3.s28
-rw-r--r--data/scripts/maps/MossdeepCity_House4.s43
-rw-r--r--data/scripts/maps/MossdeepCity_Mart.s41
-rw-r--r--data/scripts/maps/MossdeepCity_PokemonCenter_1F.s24
-rw-r--r--data/scripts/maps/MossdeepCity_PokemonCenter_2F.s22
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_1F.s64
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_2F.s15
-rw-r--r--data/scripts/maps/MossdeepCity_StevensHouse.s131
-rw-r--r--data/scripts/maps/MtChimney.s215
-rw-r--r--data/scripts/maps/MtChimney_CableCarStation.s88
-rw-r--r--data/scripts/maps/MtPyre_1F.s29
-rw-r--r--data/scripts/maps/MtPyre_2F.s34
-rw-r--r--data/scripts/maps/MtPyre_3F.s13
-rw-r--r--data/scripts/maps/MtPyre_4F.s8
-rw-r--r--data/scripts/maps/MtPyre_5F.s8
-rw-r--r--data/scripts/maps/MtPyre_6F.s16
-rw-r--r--data/scripts/maps/MtPyre_Exterior.s28
-rw-r--r--data/scripts/maps/MtPyre_Summit.s321
-rw-r--r--data/scripts/maps/NewMauville_Entrance.s51
-rw-r--r--data/scripts/maps/NewMauville_Inside.s208
-rw-r--r--data/scripts/maps/OldaleTown.s299
-rw-r--r--data/scripts/maps/OldaleTown_House1.s7
-rw-r--r--data/scripts/maps/OldaleTown_House2.s11
-rw-r--r--data/scripts/maps/OldaleTown_Mart.s62
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_1F.s39
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/PacifidlogTown.s29
-rw-r--r--data/scripts/maps/PacifidlogTown_House1.s11
-rw-r--r--data/scripts/maps/PacifidlogTown_House2.s101
-rw-r--r--data/scripts/maps/PacifidlogTown_House3.s56
-rw-r--r--data/scripts/maps/PacifidlogTown_House4.s31
-rw-r--r--data/scripts/maps/PacifidlogTown_House5.s22
-rw-r--r--data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s22
-rw-r--r--data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s12
-rw-r--r--data/scripts/maps/PetalburgCity.s425
-rw-r--r--data/scripts/maps/PetalburgCity_Gym.s1049
-rw-r--r--data/scripts/maps/PetalburgCity_House1.s11
-rw-r--r--data/scripts/maps/PetalburgCity_House2.s11
-rw-r--r--data/scripts/maps/PetalburgCity_Mart.s69
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_1F.s57
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/PetalburgCity_WallysHouse.s69
-rw-r--r--data/scripts/maps/PetalburgWoods.s284
-rw-r--r--data/scripts/maps/RecordCorner.s3
-rw-r--r--data/scripts/maps/Route101.s236
-rw-r--r--data/scripts/maps/Route102.s47
-rw-r--r--data/scripts/maps/Route103.s217
-rw-r--r--data/scripts/maps/Route104.s462
-rw-r--r--data/scripts/maps/Route104_MrBrineysHouse.s100
-rw-r--r--data/scripts/maps/Route104_PrettyPetalFlowerShop.s111
-rw-r--r--data/scripts/maps/Route104_Prototype.s113
-rw-r--r--data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s7
-rw-r--r--data/scripts/maps/Route105.s39
-rw-r--r--data/scripts/maps/Route106.s35
-rw-r--r--data/scripts/maps/Route107.s41
-rw-r--r--data/scripts/maps/Route108.s23
-rw-r--r--data/scripts/maps/Route109.s447
-rw-r--r--data/scripts/maps/Route109_SeashoreHouse.s110
-rw-r--r--data/scripts/maps/Route110.s540
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s58
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s39
-rw-r--r--data/scripts/maps/Route110_TrickHouseCorridor.s8
-rw-r--r--data/scripts/maps/Route110_TrickHouseEnd.s252
-rw-r--r--data/scripts/maps/Route110_TrickHouseEntrance.s663
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle1.s40
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle2.s106
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle3.s397
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle4.s30
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle5.s725
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle6.s44
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle7.s260
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle8.s30
-rw-r--r--data/scripts/maps/Route111.s438
-rw-r--r--data/scripts/maps/Route111_OldLadysRestStop.s34
-rw-r--r--data/scripts/maps/Route111_WinstrateFamilysHouse.s61
-rw-r--r--data/scripts/maps/Route112.s61
-rw-r--r--data/scripts/maps/Route112_CableCarStation.s89
-rw-r--r--data/scripts/maps/Route113.s101
-rw-r--r--data/scripts/maps/Route113_GlassWorkshop.s309
-rw-r--r--data/scripts/maps/Route114.s133
-rw-r--r--data/scripts/maps/Route114_FossilManiacsHouse.s34
-rw-r--r--data/scripts/maps/Route114_FossilManiacsTunnel.s28
-rw-r--r--data/scripts/maps/Route114_LanettesHouse.s55
-rw-r--r--data/scripts/maps/Route115.s64
-rw-r--r--data/scripts/maps/Route116.s276
-rw-r--r--data/scripts/maps/Route116_TunnelersRestHouse.s30
-rw-r--r--data/scripts/maps/Route117.s123
-rw-r--r--data/scripts/maps/Route117_PokemonDayCare.s8
-rw-r--r--data/scripts/maps/Route118.s207
-rw-r--r--data/scripts/maps/Route119.s384
-rw-r--r--data/scripts/maps/Route119_House.s17
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_1F.s56
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_2F.s94
-rw-r--r--data/scripts/maps/Route120.s358
-rw-r--r--data/scripts/maps/Route121.s114
-rw-r--r--data/scripts/maps/Route121_SafariZoneEntrance.s139
-rw-r--r--data/scripts/maps/Route122.s3
-rw-r--r--data/scripts/maps/Route123.s103
-rw-r--r--data/scripts/maps/Route123_BerryMastersHouse.s153
-rw-r--r--data/scripts/maps/Route124.s72
-rw-r--r--data/scripts/maps/Route124_DivingTreasureHuntersHouse.s296
-rw-r--r--data/scripts/maps/Route125.s52
-rw-r--r--data/scripts/maps/Route126.s29
-rw-r--r--data/scripts/maps/Route127.s44
-rw-r--r--data/scripts/maps/Route128.s202
-rw-r--r--data/scripts/maps/Route129.s23
-rw-r--r--data/scripts/maps/Route130.s41
-rw-r--r--data/scripts/maps/Route131.s43
-rw-r--r--data/scripts/maps/Route132.s23
-rw-r--r--data/scripts/maps/Route133.s28
-rw-r--r--data/scripts/maps/Route134.s33
-rw-r--r--data/scripts/maps/RustboroCity.s499
-rw-r--r--data/scripts/maps/RustboroCity_CuttersHouse.s24
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_1F.s81
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_2F.s178
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_3F.s193
-rw-r--r--data/scripts/maps/RustboroCity_Flat1_1F.s11
-rw-r--r--data/scripts/maps/RustboroCity_Flat1_2F.s7
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_1F.s17
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_2F.s25
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_3F.s11
-rw-r--r--data/scripts/maps/RustboroCity_Gym.s84
-rw-r--r--data/scripts/maps/RustboroCity_House1.s55
-rw-r--r--data/scripts/maps/RustboroCity_House2.s11
-rw-r--r--data/scripts/maps/RustboroCity_House3.s21
-rw-r--r--data/scripts/maps/RustboroCity_Mart.s74
-rw-r--r--data/scripts/maps/RustboroCity_PokemonCenter_1F.s29
-rw-r--r--data/scripts/maps/RustboroCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/RustboroCity_PokemonSchool.s166
-rw-r--r--data/scripts/maps/RusturfTunnel.s405
-rw-r--r--data/scripts/maps/SSTidalCorridor.s199
-rw-r--r--data/scripts/maps/SSTidalLowerDeck.s13
-rw-r--r--data/scripts/maps/SSTidalRooms.s66
-rw-r--r--data/scripts/maps/SafariZone_Northeast.s11
-rw-r--r--data/scripts/maps/SafariZone_Northwest.s7
-rw-r--r--data/scripts/maps/SafariZone_RestHouse.s15
-rw-r--r--data/scripts/maps/SafariZone_Southeast.s119
-rw-r--r--data/scripts/maps/SafariZone_Southwest.s11
-rw-r--r--data/scripts/maps/ScorchedSlab.s8
-rw-r--r--data/scripts/maps/SeafloorCavern_Entrance.s9
-rw-r--r--data/scripts/maps/SeafloorCavern_Room1.s18
-rw-r--r--data/scripts/maps/SeafloorCavern_Room2.s3
-rw-r--r--data/scripts/maps/SeafloorCavern_Room3.s13
-rw-r--r--data/scripts/maps/SeafloorCavern_Room4.s13
-rw-r--r--data/scripts/maps/SeafloorCavern_Room5.s3
-rw-r--r--data/scripts/maps/SeafloorCavern_Room6.s3
-rw-r--r--data/scripts/maps/SeafloorCavern_Room7.s3
-rw-r--r--data/scripts/maps/SeafloorCavern_Room8.s3
-rw-r--r--data/scripts/maps/SeafloorCavern_Room9.s227
-rw-r--r--data/scripts/maps/SealedChamber_InnerRoom.s89
-rw-r--r--data/scripts/maps/SealedChamber_OuterRoom.s132
-rw-r--r--data/scripts/maps/SecretBase_BlueCave1.s1
-rw-r--r--data/scripts/maps/SecretBase_BlueCave2.s1
-rw-r--r--data/scripts/maps/SecretBase_BlueCave3.s1
-rw-r--r--data/scripts/maps/SecretBase_BlueCave4.s1
-rw-r--r--data/scripts/maps/SecretBase_BrownCave1.s1
-rw-r--r--data/scripts/maps/SecretBase_BrownCave2.s1
-rw-r--r--data/scripts/maps/SecretBase_BrownCave3.s1
-rw-r--r--data/scripts/maps/SecretBase_BrownCave4.s1
-rw-r--r--data/scripts/maps/SecretBase_RedCave1.s1
-rw-r--r--data/scripts/maps/SecretBase_RedCave2.s1
-rw-r--r--data/scripts/maps/SecretBase_RedCave3.s1
-rw-r--r--data/scripts/maps/SecretBase_RedCave4.s1
-rw-r--r--data/scripts/maps/SecretBase_Shrub1.s1
-rw-r--r--data/scripts/maps/SecretBase_Shrub2.s1
-rw-r--r--data/scripts/maps/SecretBase_Shrub3.s1
-rw-r--r--data/scripts/maps/SecretBase_Shrub4.s1
-rw-r--r--data/scripts/maps/SecretBase_Tree1.s1
-rw-r--r--data/scripts/maps/SecretBase_Tree2.s1
-rw-r--r--data/scripts/maps/SecretBase_Tree3.s1
-rw-r--r--data/scripts/maps/SecretBase_Tree4.s1
-rw-r--r--data/scripts/maps/SecretBase_YellowCave1.s1
-rw-r--r--data/scripts/maps/SecretBase_YellowCave2.s1
-rw-r--r--data/scripts/maps/SecretBase_YellowCave3.s1
-rw-r--r--data/scripts/maps/SecretBase_YellowCave4.s24
-rw-r--r--data/scripts/maps/ShoalCave_HighTideEntranceRoom.s3
-rw-r--r--data/scripts/maps/ShoalCave_HighTideInnerRoom.s3
-rw-r--r--data/scripts/maps/ShoalCave_LowTideEntranceRoom.s103
-rw-r--r--data/scripts/maps/ShoalCave_LowTideIceRoom.s3
-rw-r--r--data/scripts/maps/ShoalCave_LowTideInnerRoom.s158
-rw-r--r--data/scripts/maps/ShoalCave_LowTideLowerRoom.s53
-rw-r--r--data/scripts/maps/ShoalCave_LowTideStairsRoom.s35
-rw-r--r--data/scripts/maps/SingleBattleColosseum.s3
-rw-r--r--data/scripts/maps/SkyPillar_1F.s3
-rw-r--r--data/scripts/maps/SkyPillar_2F.s11
-rw-r--r--data/scripts/maps/SkyPillar_3F.s3
-rw-r--r--data/scripts/maps/SkyPillar_4F.s11
-rw-r--r--data/scripts/maps/SkyPillar_5F.s3
-rw-r--r--data/scripts/maps/SkyPillar_Entrance.s8
-rw-r--r--data/scripts/maps/SkyPillar_Outside.s3
-rw-r--r--data/scripts/maps/SkyPillar_Top.s29
-rw-r--r--data/scripts/maps/SlateportCity.s616
-rw-r--r--data/scripts/maps/SlateportCity_ContestHall.s114
-rw-r--r--data/scripts/maps/SlateportCity_ContestLobby.s130
-rw-r--r--data/scripts/maps/SlateportCity_Harbor.s371
-rw-r--r--data/scripts/maps/SlateportCity_House1.s73
-rw-r--r--data/scripts/maps/SlateportCity_House2.s22
-rw-r--r--data/scripts/maps/SlateportCity_Mart.s35
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_1F.s219
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_2F.s269
-rw-r--r--data/scripts/maps/SlateportCity_PokemonCenter_1F.s25
-rw-r--r--data/scripts/maps/SlateportCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/SlateportCity_PokemonFanClub.s264
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_1F.s68
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_2F.s11
-rw-r--r--data/scripts/maps/SootopolisCity.s470
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_1F.s161
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_B1F.s43
-rw-r--r--data/scripts/maps/SootopolisCity_House1.s30
-rw-r--r--data/scripts/maps/SootopolisCity_House2.s22
-rw-r--r--data/scripts/maps/SootopolisCity_House3.s22
-rw-r--r--data/scripts/maps/SootopolisCity_House4.s21
-rw-r--r--data/scripts/maps/SootopolisCity_House5.s11
-rw-r--r--data/scripts/maps/SootopolisCity_House6.s36
-rw-r--r--data/scripts/maps/SootopolisCity_House7.s11
-rw-r--r--data/scripts/maps/SootopolisCity_House8.s115
-rw-r--r--data/scripts/maps/SootopolisCity_Mart.s61
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_1F.s42
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_2F.s18
-rw-r--r--data/scripts/maps/SouthernIsland_Exterior.s54
-rw-r--r--data/scripts/maps/SouthernIsland_Interior.s114
-rw-r--r--data/scripts/maps/TradeCenter.s3
-rw-r--r--data/scripts/maps/Underwater1.s3
-rw-r--r--data/scripts/maps/Underwater2.s3
-rw-r--r--data/scripts/maps/Underwater3.s3
-rw-r--r--data/scripts/maps/Underwater4.s3
-rw-r--r--data/scripts/maps/Underwater_Route134.s8
-rw-r--r--data/scripts/maps/Underwater_SeafloorCavern.s46
-rw-r--r--data/scripts/maps/Underwater_SealedChamber.s28
-rw-r--r--data/scripts/maps/Underwater_SootopolisCity.s8
-rw-r--r--data/scripts/maps/UnknownMap_25_29.s1
-rw-r--r--data/scripts/maps/UnknownMap_25_30.s1
-rw-r--r--data/scripts/maps/UnknownMap_25_31.s1
-rw-r--r--data/scripts/maps/UnknownMap_25_32.s1
-rw-r--r--data/scripts/maps/UnknownMap_25_33.s1
-rw-r--r--data/scripts/maps/UnknownMap_25_34.s430
-rw-r--r--data/scripts/maps/VerdanturfTown.s66
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestHall.s21
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestLobby.s130
-rw-r--r--data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s64
-rw-r--r--data/scripts/maps/VerdanturfTown_House.s11
-rw-r--r--data/scripts/maps/VerdanturfTown_Mart.s43
-rw-r--r--data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s26
-rw-r--r--data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s20
-rw-r--r--data/scripts/maps/VerdanturfTown_WandasHouse.s92
-rw-r--r--data/scripts/maps/VictoryRoad_1F.s121
-rw-r--r--data/scripts/maps/VictoryRoad_B1F.s18
-rw-r--r--data/scripts/maps/VictoryRoad_B2F.s23
394 files changed, 35182 insertions, 0 deletions
diff --git a/data/scripts/maps/AbandonedShip_CaptainsOffice.s b/data/scripts/maps/AbandonedShip_CaptainsOffice.s
new file mode 100644
index 000000000..5ad17725b
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_CaptainsOffice.s
@@ -0,0 +1,27 @@
+AbandonedShip_CaptainsOffice_MapScripts:: @ 815EAF4
+ .byte 0
+
+AbandonedShip_CaptainsOffice_EventScript_15EAF5:: @ 815EAF5
+ lock
+ faceplayer
+ checkflag 294
+ jumpeq AbandonedShip_CaptainsOffice_EventScript_15EB2D
+ checkitem ITEM_SCANNER, 1
+ compare RESULT, 1
+ jumpeq AbandonedShip_CaptainsOffice_EventScript_15EB23
+ checkflag 1078
+ jumpeq AbandonedShip_CaptainsOffice_EventScript_15EB2D
+ msgbox AbandonedShip_CaptainsOffice_Text_198C85, 4
+ release
+ end
+
+AbandonedShip_CaptainsOffice_EventScript_15EB23:: @ 815EB23
+ msgbox AbandonedShip_CaptainsOffice_Text_198D00, 4
+ release
+ end
+
+AbandonedShip_CaptainsOffice_EventScript_15EB2D:: @ 815EB2D
+ msgbox AbandonedShip_CaptainsOffice_Text_198D7B, 4
+ release
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Corridors_1F.s b/data/scripts/maps/AbandonedShip_Corridors_1F.s
new file mode 100644
index 000000000..408299ac4
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Corridors_1F.s
@@ -0,0 +1,12 @@
+AbandonedShip_Corridors_1F_MapScripts:: @ 815E964
+ .byte 0
+
+AbandonedShip_Corridors_1F_EventScript_15E965:: @ 815E965
+ msgbox AbandonedShip_Corridors_1F_Text_1984D8, 2
+ end
+
+AbandonedShip_Corridors_1F_EventScript_15E96E:: @ 815E96E
+ trainerbattle 0, 66, 0, AbandonedShip_Corridors_1F_Text_19843D, AbandonedShip_Corridors_1F_Text_198479
+ msgbox AbandonedShip_Corridors_1F_Text_198493, 6
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Corridors_B1F.s b/data/scripts/maps/AbandonedShip_Corridors_B1F.s
new file mode 100644
index 000000000..71c3691fe
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Corridors_B1F.s
@@ -0,0 +1,59 @@
+AbandonedShip_Corridors_B1F_MapScripts:: @ 815E98F
+ map_script 5, AbandonedShip_Corridors_B1F_MapScript1_15E99A
+ map_script 1, AbandonedShip_Corridors_B1F_MapScript1_15E9A3
+ .byte 0
+
+AbandonedShip_Corridors_B1F_MapScript1_15E99A:: @ 815E99A
+ warp4 AbandonedShip_Underwater1, 255, 5, 4
+ end
+
+AbandonedShip_Corridors_B1F_MapScript1_15E9A3:: @ 815E9A3
+ checkflag 239
+ callif 0, AbandonedShip_Corridors_B1F_EventScript_15E9B6
+ checkflag 239
+ callif 1, AbandonedShip_Corridors_B1F_EventScript_15E9C0
+ end
+
+AbandonedShip_Corridors_B1F_EventScript_15E9B6:: @ 815E9B6
+ setmaptile 11, 4, 563, 1
+ return
+
+AbandonedShip_Corridors_B1F_EventScript_15E9C0:: @ 815E9C0
+ setmaptile 11, 4, 555, 1
+ return
+
+AbandonedShip_Corridors_B1F_EventScript_15E9CA:: @ 815E9CA
+ msgbox AbandonedShip_Corridors_B1F_Text_19864A, 2
+ end
+
+AbandonedShip_Corridors_B1F_EventScript_15E9D3:: @ 815E9D3
+ lockall
+ checkflag 239
+ jumpeq AbandonedShip_Corridors_B1F_EventScript_15EA14
+ checkitem ITEM_STORAGE_KEY, 1
+ compare RESULT, 0
+ jumpeq AbandonedShip_Corridors_B1F_EventScript_15EA0A
+ msgbox AbandonedShip_Corridors_B1F_Text_198692, 4
+ playsfx 21
+ removeitem ITEM_STORAGE_KEY, 1
+ setflag 239
+ call AbandonedShip_Corridors_B1F_EventScript_15E9C0
+ special 142
+ releaseall
+ end
+
+AbandonedShip_Corridors_B1F_EventScript_15EA0A:: @ 815EA0A
+ msgbox AbandonedShip_Corridors_B1F_Text_19865C, 4
+ releaseall
+ end
+
+AbandonedShip_Corridors_B1F_EventScript_15EA14:: @ 815EA14
+ msgbox AbandonedShip_Corridors_B1F_Text_1986EC, 4
+ releaseall
+ end
+
+AbandonedShip_Corridors_B1F_EventScript_15EA1E:: @ 815EA1E
+ trainerbattle 0, 496, 0, AbandonedShip_Corridors_B1F_Text_19856F, AbandonedShip_Corridors_B1F_Text_1985C5
+ msgbox AbandonedShip_Corridors_B1F_Text_1985D7, 6
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Deck.s b/data/scripts/maps/AbandonedShip_Deck.s
new file mode 100644
index 000000000..605dbae59
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Deck.s
@@ -0,0 +1,8 @@
+AbandonedShip_Deck_MapScripts:: @ 815E95A
+ map_script 3, AbandonedShip_Deck_MapScript1_15E960
+ .byte 0
+
+AbandonedShip_Deck_MapScript1_15E960:: @ 815E960
+ setflag 2110
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s
new file mode 100644
index 000000000..2b1254a11
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s
@@ -0,0 +1,149 @@
+AbandonedShip_HiddenFloorCorridors_MapScripts:: @ 815EB46
+ map_script 5, AbandonedShip_HiddenFloorCorridors_MapScript1_15EB51
+ map_script 1, AbandonedShip_HiddenFloorCorridors_MapScript1_15EB5A
+ .byte 0
+
+AbandonedShip_HiddenFloorCorridors_MapScript1_15EB51:: @ 815EB51
+ warp4 AbandonedShip_Underwater1, 255, 5, 4
+ end
+
+AbandonedShip_HiddenFloorCorridors_MapScript1_15EB5A:: @ 815EB5A
+ checkflag 240
+ callif 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB
+ checkflag 241
+ callif 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5
+ checkflag 242
+ callif 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF
+ checkflag 243
+ callif 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9
+ checkflag 240
+ callif 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
+ checkflag 241
+ callif 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
+ checkflag 242
+ callif 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
+ checkflag 243
+ callif 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3:: @ 815EBA3
+ setmaptile 3, 8, 555, 1
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD:: @ 815EBAD
+ setmaptile 6, 8, 555, 1
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7:: @ 815EBB7
+ setmaptile 3, 3, 538, 0
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1:: @ 815EBC1
+ setmaptile 9, 3, 538, 0
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB:: @ 815EBCB
+ setmaptile 3, 8, 563, 1
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5:: @ 815EBD5
+ setmaptile 6, 8, 563, 1
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF:: @ 815EBDF
+ setmaptile 3, 3, 564, 0
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9:: @ 815EBE9
+ setmaptile 9, 3, 564, 0
+ return
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3:: @ 815EBF3
+ lockall
+ checkflag 240
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ checkitem ITEM_ROOM_1_KEY, 1
+ compare RESULT, 0
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECCF
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
+ playsfx 21
+ removeitem ITEM_ROOM_1_KEY, 1
+ setflag 240
+ call AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
+ special 142
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EC2A:: @ 815EC2A
+ lockall
+ checkflag 241
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ checkitem ITEM_ROOM_2_KEY, 1
+ compare RESULT, 0
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECD9
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
+ playsfx 21
+ removeitem ITEM_ROOM_2_KEY, 1
+ setflag 241
+ call AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
+ special 142
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EC61:: @ 815EC61
+ lockall
+ checkflag 242
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ checkitem ITEM_ROOM_4_KEY, 1
+ compare RESULT, 0
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECE3
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
+ playsfx 21
+ removeitem ITEM_ROOM_4_KEY, 1
+ setflag 242
+ call AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
+ special 142
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15EC98:: @ 815EC98
+ lockall
+ checkflag 243
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ checkitem ITEM_ROOM_6_KEY, 1
+ compare RESULT, 0
+ jumpeq AbandonedShip_HiddenFloorCorridors_EventScript_15ECED
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
+ playsfx 21
+ removeitem ITEM_ROOM_6_KEY, 1
+ setflag 243
+ call AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
+ special 142
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15ECCF:: @ 815ECCF
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198DC0, 4
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15ECD9:: @ 815ECD9
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198DF4, 4
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15ECE3:: @ 815ECE3
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E28, 4
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15ECED:: @ 815ECED
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_198E5C, 4
+ releaseall
+ end
+
+AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7:: @ 815ECF7
+ msgbox AbandonedShip_HiddenFloorCorridors_Text_1986EC, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.s b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.s
new file mode 100644
index 000000000..8b1e250a6
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.s
@@ -0,0 +1,144 @@
+AbandonedShip_HiddenFloorRooms_MapScripts:: @ 815ED01
+ map_script 2, AbandonedShip_HiddenFloorRooms_MapScript2_15ED07
+ .byte 0
+
+AbandonedShip_HiddenFloorRooms_MapScript2_15ED07:: @ 815ED07
+ map_script_2 0x4001, 0, AbandonedShip_HiddenFloorRooms_EventScript_15ED11
+ .2byte 0
+
+AbandonedShip_HiddenFloorRooms_EventScript_15ED11:: @ 815ED11
+ setvar 0x4001, 1
+ getplayerxy 0x4002, 0x4003
+ setvar 0x4004, 1
+ compare 0x4002, 21
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED89
+ compare 0x4002, 36
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED8F
+ compare 0x4003, 2
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED95
+ switch 0x4004
+ case 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED9B
+ case 2, AbandonedShip_HiddenFloorRooms_EventScript_15EDC4
+ case 3, AbandonedShip_HiddenFloorRooms_EventScript_15EDC5
+ case 4, AbandonedShip_HiddenFloorRooms_EventScript_15EDEB
+ case 5, AbandonedShip_HiddenFloorRooms_EventScript_15EE23
+ case 6, AbandonedShip_HiddenFloorRooms_EventScript_15EE6A
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15ED89:: @ 815ED89
+ addvar 0x4004, 1
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15ED8F:: @ 815ED8F
+ addvar 0x4004, 2
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15ED95:: @ 815ED95
+ addvar 0x4004, 3
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15ED9B:: @ 815ED9B
+ pause 20
+ setanimation 0, 10
+ setanimation 1, 10
+ setanimation 2, 0
+ doanimation 54
+ specialval RESULT, 290
+ compare RESULT, 0
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE8B
+ checkanimation 54
+ pause 10
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EDC4:: @ 815EDC4
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EDC5:: @ 815EDC5
+ specialval RESULT, 288
+ compare RESULT, 1
+ jumpeq AbandonedShip_HiddenFloorRooms_EventScript_15EDEA
+ pause 20
+ compare RESULT, 0
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE6B
+ checkanimation 54
+ pause 10
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EDEA:: @ 815EDEA
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EDEB:: @ 815EDEB
+ pause 20
+ setanimation 0, 8
+ setanimation 1, 5
+ setanimation 2, 0
+ doanimation 54
+ setanimation 0, 11
+ setanimation 1, 3
+ setanimation 2, 0
+ doanimation 54
+ specialval RESULT, 291
+ compare RESULT, 0
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE9B
+ checkanimation 54
+ pause 10
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE23:: @ 815EE23
+ pause 20
+ setanimation 0, 16
+ setanimation 1, 3
+ setanimation 2, 0
+ doanimation 54
+ setanimation 0, 25
+ setanimation 1, 2
+ setanimation 2, 0
+ doanimation 54
+ setanimation 0, 24
+ setanimation 1, 6
+ setanimation 2, 0
+ doanimation 54
+ specialval RESULT, 289
+ compare RESULT, 0
+ callif 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE7B
+ checkanimation 54
+ pause 10
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE6A:: @ 815EE6A
+ end
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE6B:: @ 815EE6B
+ setanimation 0, 42
+ setanimation 1, 10
+ setanimation 2, 0
+ doanimation 54
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE7B:: @ 815EE7B
+ setanimation 0, 20
+ setanimation 1, 5
+ setanimation 2, 0
+ doanimation 54
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE8B:: @ 815EE8B
+ setanimation 0, 1
+ setanimation 1, 12
+ setanimation 2, 0
+ doanimation 54
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EE9B:: @ 815EE9B
+ setanimation 0, 1
+ setanimation 1, 2
+ setanimation 2, 0
+ doanimation 54
+ return
+
+AbandonedShip_HiddenFloorRooms_EventScript_15EEAB:: @ 815EEAB
+ lockall
+ msgbox AbandonedShip_HiddenFloorRooms_Text_198EE2, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Room_B1F.s b/data/scripts/maps/AbandonedShip_Room_B1F.s
new file mode 100644
index 000000000..92bee6319
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Room_B1F.s
@@ -0,0 +1,3 @@
+AbandonedShip_Room_B1F_MapScripts:: @ 815EA66
+ .byte 0
+
diff --git a/data/scripts/maps/AbandonedShip_Rooms2_1F.s b/data/scripts/maps/AbandonedShip_Rooms2_1F.s
new file mode 100644
index 000000000..b059ca4e5
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Rooms2_1F.s
@@ -0,0 +1,29 @@
+AbandonedShip_Rooms2_1F_MapScripts:: @ 815EA67
+ .byte 0
+
+AbandonedShip_Rooms2_1F_EventScript_15EA68:: @ 815EA68
+ trainerbattle 4, 642, 0, AbandonedShip_Rooms2_1F_Text_1987C1, AbandonedShip_Rooms2_1F_Text_1987FE, AbandonedShip_Rooms2_1F_Text_19887F
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq AbandonedShip_Rooms2_1F_EventScript_15EA93
+ msgbox AbandonedShip_Rooms2_1F_Text_198835, 6
+ end
+
+AbandonedShip_Rooms2_1F_EventScript_15EA93:: @ 815EA93
+ trainerbattle 7, 642, 0, AbandonedShip_Rooms2_1F_Text_1989DF, AbandonedShip_Rooms2_1F_Text_198A53, AbandonedShip_Rooms2_1F_Text_198AEE
+ msgbox AbandonedShip_Rooms2_1F_Text_198A70, 6
+ end
+
+AbandonedShip_Rooms2_1F_EventScript_15EAAE:: @ 815EAAE
+ trainerbattle 4, 642, 0, AbandonedShip_Rooms2_1F_Text_1988CC, AbandonedShip_Rooms2_1F_Text_198916, AbandonedShip_Rooms2_1F_Text_19899A
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq AbandonedShip_Rooms2_1F_EventScript_15EAD9
+ msgbox AbandonedShip_Rooms2_1F_Text_198934, 6
+ end
+
+AbandonedShip_Rooms2_1F_EventScript_15EAD9:: @ 815EAD9
+ trainerbattle 7, 642, 0, AbandonedShip_Rooms2_1F_Text_198B3B, AbandonedShip_Rooms2_1F_Text_198BCF, AbandonedShip_Rooms2_1F_Text_198C40
+ msgbox AbandonedShip_Rooms2_1F_Text_198BEA, 6
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Rooms2_B1F.s b/data/scripts/maps/AbandonedShip_Rooms2_B1F.s
new file mode 100644
index 000000000..18e144a44
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Rooms2_B1F.s
@@ -0,0 +1,7 @@
+AbandonedShip_Rooms2_B1F_MapScripts:: @ 815EA4D
+ .byte 0
+
+AbandonedShip_Rooms2_B1F_EventScript_15EA4E:: @ 815EA4E
+ msgbox AbandonedShip_Rooms2_B1F_Text_198759, 2
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Rooms_1F.s b/data/scripts/maps/AbandonedShip_Rooms_1F.s
new file mode 100644
index 000000000..dafa5c7bd
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Rooms_1F.s
@@ -0,0 +1,7 @@
+AbandonedShip_Rooms_1F_MapScripts:: @ 815E985
+ .byte 0
+
+AbandonedShip_Rooms_1F_EventScript_15E986:: @ 815E986
+ msgbox AbandonedShip_Rooms_1F_Text_19850A, 2
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Rooms_B1F.s b/data/scripts/maps/AbandonedShip_Rooms_B1F.s
new file mode 100644
index 000000000..cebcf1b77
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Rooms_B1F.s
@@ -0,0 +1,12 @@
+AbandonedShip_Rooms_B1F_MapScripts:: @ 815EA35
+ map_script 5, AbandonedShip_Rooms_B1F_MapScript1_15EA3B
+ .byte 0
+
+AbandonedShip_Rooms_B1F_MapScript1_15EA3B:: @ 815EA3B
+ warp4 AbandonedShip_Underwater2, 255, 17, 4
+ end
+
+AbandonedShip_Rooms_B1F_EventScript_15EA44:: @ 815EA44
+ msgbox AbandonedShip_Rooms_B1F_Text_1986FE, 2
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Underwater1.s b/data/scripts/maps/AbandonedShip_Underwater1.s
new file mode 100644
index 000000000..af7a26580
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Underwater1.s
@@ -0,0 +1,8 @@
+AbandonedShip_Underwater1_MapScripts:: @ 815EA57
+ map_script 5, AbandonedShip_Underwater1_MapScript1_15EA5D
+ .byte 0
+
+AbandonedShip_Underwater1_MapScript1_15EA5D:: @ 815EA5D
+ warp4 AbandonedShip_HiddenFloorCorridors, 255, 0, 10
+ end
+
diff --git a/data/scripts/maps/AbandonedShip_Underwater2.s b/data/scripts/maps/AbandonedShip_Underwater2.s
new file mode 100644
index 000000000..a4f9d3912
--- /dev/null
+++ b/data/scripts/maps/AbandonedShip_Underwater2.s
@@ -0,0 +1,8 @@
+AbandonedShip_Underwater2_MapScripts:: @ 815EB37
+ map_script 5, AbandonedShip_Underwater2_MapScript1_15EB3D
+ .byte 0
+
+AbandonedShip_Underwater2_MapScript1_15EB3D:: @ 815EB3D
+ warp4 AbandonedShip_Rooms_B1F, 255, 13, 7
+ end
+
diff --git a/data/scripts/maps/AncientTomb.s b/data/scripts/maps/AncientTomb.s
new file mode 100644
index 000000000..66cf88a9c
--- /dev/null
+++ b/data/scripts/maps/AncientTomb.s
@@ -0,0 +1,72 @@
+AncientTomb_MapScripts:: @ 815EFBE
+ map_script 5, AncientTomb_MapScript1_15EFCE
+ map_script 1, AncientTomb_MapScript1_15EFE0
+ map_script 3, AncientTomb_MapScript1_15EFDC
+ .byte 0
+
+AncientTomb_MapScript1_15EFCE:: @ 815EFCE
+ checkflag 2145
+ callif 1, AncientTomb_EventScript_15EFD8
+ end
+
+AncientTomb_EventScript_15EFD8:: @ 815EFD8
+ disappear LAST_TALKED
+ return
+
+AncientTomb_MapScript1_15EFDC:: @ 815EFDC
+ setflag 2137
+ end
+
+AncientTomb_MapScript1_15EFE0:: @ 815EFE0
+ checkflag 2130
+ callif 0, AncientTomb_EventScript_15EFEA
+ end
+
+AncientTomb_EventScript_15EFEA:: @ 815EFEA
+ setmaptile 7, 19, 553, 1
+ setmaptile 8, 19, 553, 1
+ setmaptile 9, 19, 553, 1
+ setmaptile 7, 20, 565, 1
+ setmaptile 8, 20, 565, 1
+ setmaptile 9, 20, 565, 1
+ return
+
+AncientTomb_EventScript_15F021:: @ 815F021
+ lockall
+ checkflag 2130
+ jumpeq AncientTomb_EventScript_15F038
+ braillemsg AncientTomb_Braille_1C552E
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+AncientTomb_EventScript_15F038:: @ 815F038
+ msgbox AncientTomb_Text_1A13BE, 4
+ releaseall
+ end
+
+AncientTomb_EventScript_15F042:: @ 815F042
+ lockall
+ braillemsg AncientTomb_Braille_1C552E
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+AncientTomb_EventScript_15F050:: @ 815F050
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_REGISTEEL, 2
+ pause 40
+ waitpokecry
+ setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE
+ setflag 937
+ setflag 2145
+ special 313
+ waitstate
+ clearflag 2145
+ release
+ end
+
diff --git a/data/scripts/maps/AquaHideout_1F.s b/data/scripts/maps/AquaHideout_1F.s
new file mode 100644
index 000000000..5a7b04fda
--- /dev/null
+++ b/data/scripts/maps/AquaHideout_1F.s
@@ -0,0 +1,49 @@
+AquaHideout_1F_MapScripts:: @ 815D7C2
+ map_script 3, AquaHideout_1F_MapScript1_15D7C8
+ .byte 0
+
+AquaHideout_1F_MapScript1_15D7C8:: @ 815D7C8
+ call AquaHideout_1F_EventScript_1A0196
+ end
+
+AquaHideout_1F_EventScript_15D7CE:: @ 815D7CE
+MagmaHideout_1F_EventScript_15D7CE:: @ 815D7CE
+ lock
+ faceplayer
+ checkflag 111
+ jumpeq AquaHideout_1F_EventScript_15D7E3
+ msgbox AquaHideout_1F_Text_196AFD, 4
+ release
+ end
+
+AquaHideout_1F_EventScript_15D7E3:: @ 815D7E3
+ msgbox AquaHideout_1F_Text_196BC5, 4
+ release
+ end
+
+AquaHideout_1F_EventScript_15D7ED:: @ 815D7ED
+MagmaHideout_1F_EventScript_15D7ED:: @ 815D7ED
+ lock
+ faceplayer
+ checkflag 111
+ jumpeq AquaHideout_1F_EventScript_15D802
+ msgbox AquaHideout_1F_Text_196C83, 4
+ release
+ end
+
+AquaHideout_1F_EventScript_15D802:: @ 815D802
+ msgbox AquaHideout_1F_Text_196D46, 4
+ release
+ end
+
+AquaHideout_1F_EventScript_15D80C:: @ 815D80C
+MagmaHideout_1F_EventScript_15D80C:: @ 815D80C
+ trainerbattle 2, TRAINER_HIDEOUT_1F_GRUNT, 0, AquaHideout_1F_Text_196E01, AquaHideout_1F_Text_196E28, AquaHideout_1F_EventScript_15D827
+ msgbox AquaHideout_1F_Text_196E3D, 6
+ end
+
+AquaHideout_1F_EventScript_15D827:: @ 815D827
+ msgbox AquaHideout_1F_Text_196E3D, 4
+ release
+ end
+
diff --git a/data/scripts/maps/AquaHideout_B1F.s b/data/scripts/maps/AquaHideout_B1F.s
new file mode 100644
index 000000000..fe37ddda3
--- /dev/null
+++ b/data/scripts/maps/AquaHideout_B1F.s
@@ -0,0 +1,46 @@
+AquaHideout_B1F_MapScripts:: @ 815D831
+ map_script 5, AquaHideout_B1F_MapScript1_15D83C
+ map_script 3, AquaHideout_B1F_MapScript1_15D84A
+ .byte 0
+
+AquaHideout_B1F_MapScript1_15D83C:: @ 815D83C
+ checkflag 2145
+ callif 1, AquaHideout_B1F_EventScript_15D846
+ end
+
+AquaHideout_B1F_EventScript_15D846:: @ 815D846
+ disappear LAST_TALKED
+ return
+
+AquaHideout_B1F_MapScript1_15D84A:: @ 815D84A
+ call AquaHideout_B1F_EventScript_1A0196
+ end
+
+AquaHideout_B1F_EventScript_15D850:: @ 815D850
+MagmaHideout_B1F_EventScript_15D850:: @ 815D850
+ trainerbattle 2, TRAINER_HIDEOUT_B1F_GRUNT_1, 0, AquaHideout_B1F_Text_196E6F, AquaHideout_B1F_Text_196EB6, AquaHideout_B1F_EventScript_15D86B
+ msgbox AquaHideout_B1F_Text_196ECC, 6
+ end
+
+AquaHideout_B1F_EventScript_15D86B:: @ 815D86B
+ msgbox AquaHideout_B1F_Text_196ECC, 4
+ release
+ end
+
+AquaHideout_B1F_EventScript_15D875:: @ 815D875
+MagmaHideout_B1F_EventScript_15D875:: @ 815D875
+ trainerbattle 2, TRAINER_HIDEOUT_B1F_GRUNT_2, 0, AquaHideout_B1F_Text_196F39, AquaHideout_B1F_Text_196F9B, AquaHideout_B1F_EventScript_15D890
+ msgbox AquaHideout_B1F_Text_196FB5, 6
+ end
+
+AquaHideout_B1F_EventScript_15D890:: @ 815D890
+ msgbox AquaHideout_B1F_Text_196FB5, 4
+ release
+ end
+
+AquaHideout_B1F_EventScript_15D89A:: @ 815D89A
+MagmaHideout_B1F_EventScript_15D89A:: @ 815D89A
+ trainerbattle 0, TRAINER_HIDEOUT_B1F_GRUNT_3, 0, AquaHideout_B1F_Text_196FFD, AquaHideout_B1F_Text_197040
+ msgbox AquaHideout_B1F_Text_197056, 6
+ end
+
diff --git a/data/scripts/maps/AquaHideout_B2F.s b/data/scripts/maps/AquaHideout_B2F.s
new file mode 100644
index 000000000..a0bf90151
--- /dev/null
+++ b/data/scripts/maps/AquaHideout_B2F.s
@@ -0,0 +1,90 @@
+AquaHideout_B2F_MapScripts:: @ 815D8B1
+ map_script 3, AquaHideout_B2F_MapScript1_15D8B7
+ .byte 0
+
+AquaHideout_B2F_MapScript1_15D8B7:: @ 815D8B7
+ call AquaHideout_B2F_EventScript_1A0196
+ end
+
+AquaHideout_B2F_EventScript_15D8BD:: @ 815D8BD
+MagmaHideout_B2F_EventScript_15D8BD:: @ 815D8BD
+ lockall
+ setvar 0x8008, 1
+ playsfx 21
+ move 0x8008, AquaHideout_B2F_Movement_1A0833
+ waitmove 0
+ move 0x8008, AquaHideout_B2F_Movement_1A0841
+ waitmove 0
+ setvar 0x4001, 1
+ releaseall
+ end
+
+AquaHideout_B2F_EventScript_15D8E1:: @ 815D8E1
+MagmaHideout_B2F_EventScript_15D8E1:: @ 815D8E1
+ trainerbattle 2, TRAINER_HIDEOUT_B2F_GRUNT_1, 0, AquaHideout_B2F_Text_197093, AquaHideout_B2F_Text_197145, AquaHideout_B2F_EventScript_15D8FD
+ msgbox AquaHideout_B2F_Text_1971AE, 4
+ release
+ end
+
+AquaHideout_B2F_EventScript_15D8FD:: @ 815D8FD
+ setvar 0x8008, 1
+ .ifdef SAPPHIRE
+ setvar 0x8009, 4
+ .else
+ setvar 0x8009, 3
+ .endif
+ move 0x8008, AquaHideout_B2F_Movement_1A0843
+ waitmove 0
+ pause 20
+ move 0x8008, AquaHideout_B2F_Movement_1A0839
+ waitmove 0
+ msgbox AquaHideout_B2F_Text_197162, 4
+ closebutton
+ move 0x8008, AquaHideout_B2F_Movement_1A0843
+ .ifdef SAPPHIRE
+ move 0x8009, AquaHideout_B2F_Movement_15D958
+ .else
+ move 0x8009, AquaHideout_B2F_Movement_15D95D
+ .endif
+ waitmove 0
+ disappear 0x8009
+ pause 20
+ move 0x8008, AquaHideout_B2F_Movement_1A0839
+ waitmove 0
+ msgbox AquaHideout_B2F_Text_1971AE, 4
+ setflag 112
+ setflag 852
+ release
+ end
+
+AquaHideout_B2F_Movement_15D958:: @ 815D958
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+AquaHideout_B2F_Movement_15D95D:: @ 815D95D
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+AquaHideout_B2F_EventScript_15D962:: @ 815D962
+MagmaHideout_B2F_EventScript_15D962:: @ 815D962
+ trainerbattle 2, TRAINER_HIDEOUT_B2F_GRUNT_2, 0, AquaHideout_B2F_Text_197270, AquaHideout_B2F_Text_1972AC, AquaHideout_B2F_EventScript_15D97D
+ msgbox AquaHideout_B2F_Text_1972D2, 6
+ end
+
+AquaHideout_B2F_EventScript_15D97D:: @ 815D97D
+ msgbox AquaHideout_B2F_Text_1972D2, 4
+ release
+ end
+
+AquaHideout_B2F_EventScript_15D987:: @ 815D987
+MagmaHideout_B2F_EventScript_15D987:: @ 815D987
+ trainerbattle 0, TRAINER_HIDEOUT_B2F_GRUNT_3, 0, AquaHideout_B2F_Text_1972EF, AquaHideout_B2F_Text_197390
+ msgbox AquaHideout_B2F_Text_1973C0, 6
+ end
+
diff --git a/data/scripts/maps/BattleTower_BattleRoom.s b/data/scripts/maps/BattleTower_BattleRoom.s
new file mode 100644
index 000000000..76a1a3194
--- /dev/null
+++ b/data/scripts/maps/BattleTower_BattleRoom.s
@@ -0,0 +1,166 @@
+BattleTower_BattleRoom_MapScripts:: @ 81608DB
+ map_script 2, BattleTower_BattleRoom_MapScript2_1608E1
+ .byte 0
+
+BattleTower_BattleRoom_MapScript2_1608E1:: @ 81608E1
+ map_script_2 0x4000, 0, BattleTower_BattleRoom_EventScript_1608EB
+ .2byte 0
+
+BattleTower_BattleRoom_EventScript_1608EB:: @ 81608EB
+ setvar 0x4000, 1
+ move 255, BattleTower_BattleRoom_Movement_160AB7
+ waitmove 0
+
+BattleTower_BattleRoom_EventScript_1608FA:: @ 81608FA
+ special 232
+ reappear 1
+ move 1, BattleTower_BattleRoom_Movement_160AC0
+ waitmove 0
+ special 234
+ msgbox 0x20234cc, 4
+ waittext
+ closebutton
+ special 0
+ setvar 0x8004, 0
+ setvar 0x8005, 0
+ special 236
+ waitstate
+ switch RESULT
+ case 1, BattleTower_BattleRoom_EventScript_160961
+ special 40
+ setvar 0x8004, 0
+ setvar 0x8005, 5
+ special 237
+ setvar 0x8004, 14
+ special 237
+ setvar 0x8004, 3
+ special 170
+ warp BattleTower_Lobby, 255, 6, 6
+ waitstate
+
+BattleTower_BattleRoom_EventScript_160961:: @ 8160961
+ setvar 0x8004, 6
+ special 237
+ switch RESULT
+ case 8, BattleTower_BattleRoom_EventScript_160A56
+ move 1, BattleTower_BattleRoom_Movement_160AC6
+ waitmove 0
+ disappear 1
+ move 2, BattleTower_BattleRoom_Movement_160ACB
+ waitmove 0
+ move 255, BattleTower_BattleRoom_Movement_160ABC
+ waitmove 0
+ msgbox BattleTower_BattleRoom_Text_19ACDC, 4
+ special 40
+ special 39
+ special 239
+ fanfare 368
+ waitfanfare
+ special 0
+
+BattleTower_BattleRoom_EventScript_1609B2:: @ 81609B2
+ msgbox BattleTower_BattleRoom_Text_19AD09, 5
+ switch RESULT
+ case 0, BattleTower_BattleRoom_EventScript_1609E0
+ case 1, BattleTower_BattleRoom_EventScript_160A3C
+ case 127, BattleTower_BattleRoom_EventScript_1609E0
+
+BattleTower_BattleRoom_EventScript_1609E0:: @ 81609E0
+ msgbox BattleTower_BattleRoom_Text_19AD3C, 5
+ switch RESULT
+ case 0, BattleTower_BattleRoom_EventScript_160A0E
+ case 1, BattleTower_BattleRoom_EventScript_160A94
+ case 127, BattleTower_BattleRoom_EventScript_160A0E
+
+BattleTower_BattleRoom_EventScript_160A0E:: @ 8160A0E
+ msgbox BattleTower_BattleRoom_Text_19AD66, 5
+ switch RESULT
+ case 0, BattleTower_BattleRoom_EventScript_1609B2
+ case 1, BattleTower_BattleRoom_EventScript_160AB1
+ case 127, BattleTower_BattleRoom_EventScript_1609B2
+
+BattleTower_BattleRoom_EventScript_160A3C:: @ 8160A3C
+ closebutton
+ move 255, BattleTower_BattleRoom_Movement_160ABE
+ waitmove 0
+ move 2, BattleTower_BattleRoom_Movement_160AD0
+ waitmove 0
+ jump BattleTower_BattleRoom_EventScript_1608FA
+
+BattleTower_BattleRoom_EventScript_160A56:: @ 8160A56
+ special 40
+ setvar 0x8004, 0
+ setvar 0x8005, 4
+ special 237
+ setvar 0x8004, 2
+ setvar 0x8005, 1
+ special 237
+ setvar 0x8004, 7
+ special 237
+ setvar 0x8004, 14
+ special 237
+ setvar 0x8004, 3
+ special 170
+ warp BattleTower_Lobby, 255, 6, 6
+ waitstate
+
+BattleTower_BattleRoom_EventScript_160A94:: @ 8160A94
+ setvar 0x8004, 2
+ special 240
+ message BattleTower_BattleRoom_Text_1C6CE1
+ pause 60
+ waittext
+ playsfx 55
+ checksound
+ msgbox BattleTower_BattleRoom_Text_1C6D05, 4
+
+BattleTower_BattleRoom_EventScript_160AB1:: @ 8160AB1
+ fadescreen 1
+ special 241
+ end
+
+BattleTower_BattleRoom_Movement_160AB7:: @ 8160AB7
+ step_up
+ step_up
+ step_up
+ step_03
+ step_end
+
+BattleTower_BattleRoom_Movement_160ABC:: @ 8160ABC
+ step_00
+ step_end
+
+BattleTower_BattleRoom_Movement_160ABE:: @ 8160ABE
+ step_03
+ step_end
+
+BattleTower_BattleRoom_Movement_160AC0:: @ 8160AC0
+ step_down
+ step_down
+ step_down
+ step_down
+ step_02
+ step_end
+
+BattleTower_BattleRoom_Movement_160AC6:: @ 8160AC6
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+BattleTower_BattleRoom_Movement_160ACB:: @ 8160ACB
+ step_right
+ step_right
+ step_right
+ step_up
+ step_end
+
+BattleTower_BattleRoom_Movement_160AD0:: @ 8160AD0
+ step_down
+ step_left
+ step_left
+ step_left
+ step_03
+ step_end
+
diff --git a/data/scripts/maps/BattleTower_Corridor.s b/data/scripts/maps/BattleTower_Corridor.s
new file mode 100644
index 000000000..6dd4adb3d
--- /dev/null
+++ b/data/scripts/maps/BattleTower_Corridor.s
@@ -0,0 +1,59 @@
+BattleTower_Corridor_MapScripts:: @ 8160845
+ map_script 1, BattleTower_Corridor_MapScript1_160850
+ map_script 2, BattleTower_Corridor_MapScript2_160881
+ .byte 0
+
+BattleTower_Corridor_MapScript1_160850:: @ 8160850
+ compare 0x8006, 1
+ jumpeq BattleTower_Corridor_EventScript_16086E
+ setmaptile 12, 0, 519, 0
+ setmaptile 12, 1, 527, 0
+ end
+
+BattleTower_Corridor_EventScript_16086E:: @ 816086E
+ setmaptile 15, 0, 519, 0
+ setmaptile 15, 1, 527, 0
+ end
+
+BattleTower_Corridor_MapScript2_160881:: @ 8160881
+ map_script_2 0x4000, 0, BattleTower_Corridor_EventScript_16088B
+ .2byte 0
+
+BattleTower_Corridor_EventScript_16088B:: @ 816088B
+ setvar 0x4000, 1
+ compare 0x8006, 1
+ jumpeq BattleTower_Corridor_EventScript_1608B1
+ move 1, BattleTower_Corridor_Movement_1608D5
+ move 255, BattleTower_Corridor_Movement_1608D4
+ waitmove 0
+ jump BattleTower_Corridor_EventScript_1608C2
+
+BattleTower_Corridor_EventScript_1608B1:: @ 81608B1
+ move 1, BattleTower_Corridor_Movement_1608D2
+ move 255, BattleTower_Corridor_Movement_1608D1
+ waitmove 0
+
+BattleTower_Corridor_EventScript_1608C2:: @ 81608C2
+ setvar 0x4000, 0
+ warp BattleTower_BattleRoom, 255, 4, 8
+ waitstate
+ end
+
+BattleTower_Corridor_Movement_1608D1:: @ 81608D1
+ step_right
+
+BattleTower_Corridor_Movement_1608D2:: @ 81608D2
+ step_right
+ step_right
+
+BattleTower_Corridor_Movement_1608D4:: @ 81608D4
+ step_right
+
+BattleTower_Corridor_Movement_1608D5:: @ 81608D5
+ step_right
+ step_right
+ step_right
+ step_up
+ step_54
+ step_end
+
diff --git a/data/scripts/maps/BattleTower_Elevator.s b/data/scripts/maps/BattleTower_Elevator.s
new file mode 100644
index 000000000..fab5d010d
--- /dev/null
+++ b/data/scripts/maps/BattleTower_Elevator.s
@@ -0,0 +1,58 @@
+BattleTower_Elevator_MapScripts:: @ 81607CF
+ map_script 2, BattleTower_Elevator_MapScript2_1607DA
+ map_script 4, BattleTower_Elevator_MapScript2_160821
+ .byte 0
+
+BattleTower_Elevator_MapScript2_1607DA:: @ 81607DA
+ map_script_2 0x4000, 0, BattleTower_Elevator_EventScript_1607E4
+ .2byte 0
+
+BattleTower_Elevator_EventScript_1607E4:: @ 81607E4
+ setvar 0x4000, 1
+ move 1, BattleTower_Elevator_Movement_160835
+ move 255, BattleTower_Elevator_Movement_160839
+ waitmove 0
+ special 273
+ waitstate
+ pause 64
+ move 1, BattleTower_Elevator_Movement_16083D
+ move 255, BattleTower_Elevator_Movement_160841
+ waitmove 0
+ setvar 0x4000, 0
+ warp BattleTower_Corridor, 255, 8, 1
+ waitstate
+ end
+
+BattleTower_Elevator_MapScript2_160821:: @ 8160821
+ map_script_2 0x4001, 0, BattleTower_Elevator_EventScript_16082B
+ .2byte 0
+
+BattleTower_Elevator_EventScript_16082B:: @ 816082B
+ setvar 0x4001, 1
+ spriteface 255, 2
+ end
+
+BattleTower_Elevator_Movement_160835:: @ 8160835
+ step_up
+ step_right
+ step_00
+ step_end
+
+BattleTower_Elevator_Movement_160839:: @ 8160839
+ step_up
+ step_up
+ step_00
+ step_end
+
+BattleTower_Elevator_Movement_16083D:: @ 816083D
+ step_down
+ step_down
+ step_54
+ step_end
+
+BattleTower_Elevator_Movement_160841:: @ 8160841
+ step_right
+ step_down
+ step_down
+ step_end
+
diff --git a/data/scripts/maps/BattleTower_Lobby.s b/data/scripts/maps/BattleTower_Lobby.s
new file mode 100644
index 000000000..a2fd22b10
--- /dev/null
+++ b/data/scripts/maps/BattleTower_Lobby.s
@@ -0,0 +1,422 @@
+BattleTower_Lobby_MapScripts:: @ 816027E
+ map_script 5, BattleTower_Lobby_MapScript1_160293
+ map_script 3, BattleTower_Lobby_MapScript1_1602E8
+ map_script 2, BattleTower_Lobby_MapScript2_160302
+ map_script 4, BattleTower_Lobby_MapScript2_1602EE
+ .byte 0
+
+BattleTower_Lobby_MapScript1_160293:: @ 8160293
+ special 338
+ call BattleTower_Lobby_EventScript_16029C
+ end
+
+BattleTower_Lobby_EventScript_16029C:: @ 816029C
+ setvar 0x8004, 10
+ special 237
+ checkflag 238
+ jumpeq BattleTower_Lobby_EventScript_1602E4
+ checkflag 237
+ jumpeq BattleTower_Lobby_EventScript_1602CD
+ specialval 0x8007, 247
+ compare 0x8007, 50
+ jumpif 0, BattleTower_Lobby_EventScript_1602E4
+ clearflag 941
+ special 329
+ return
+
+BattleTower_Lobby_EventScript_1602CD:: @ 81602CD
+ specialval 0x8007, 247
+ compare 0x8007, 100
+ jumpif 0, BattleTower_Lobby_EventScript_1602E4
+ clearflag 941
+ special 329
+ return
+
+BattleTower_Lobby_EventScript_1602E4:: @ 81602E4
+ setflag 941
+ return
+
+BattleTower_Lobby_MapScript1_1602E8:: @ 81602E8
+ call BattleTower_Lobby_EventScript_1AE2ED
+ end
+
+BattleTower_Lobby_MapScript2_1602EE:: @ 81602EE
+ map_script_2 0x4001, 0, BattleTower_Lobby_EventScript_1602F8
+ .2byte 0
+
+BattleTower_Lobby_EventScript_1602F8:: @ 81602F8
+ setvar 0x4001, 1
+ spriteface 255, 2
+ end
+
+BattleTower_Lobby_MapScript2_160302:: @ 8160302
+ map_script_2 0x4000, 0, BattleTower_Lobby_EventScript_16032C
+ map_script_2 0x4000, 1, BattleTower_Lobby_EventScript_160330
+ map_script_2 0x4000, 2, BattleTower_Lobby_EventScript_160342
+ map_script_2 0x4000, 3, BattleTower_Lobby_EventScript_160419
+ map_script_2 0x4000, 4, BattleTower_Lobby_EventScript_16044B
+ .2byte 0
+
+BattleTower_Lobby_EventScript_16032C:: @ 816032C
+ special 231
+ end
+
+BattleTower_Lobby_EventScript_160330:: @ 8160330
+ lock
+ faceplayer
+ msgbox BattleTower_Lobby_Text_19A3FD, 4
+ closebutton
+ setvar 0x4000, 5
+ release
+ end
+
+BattleTower_Lobby_EventScript_160342:: @ 8160342
+ lock
+ faceplayer
+ message BattleTower_Lobby_Text_19A487
+ waittext
+ setvar 0x8004, 0
+ special 238
+ compare RESULT, 6
+ jumpeq BattleTower_Lobby_EventScript_16037D
+ special 244
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_16037D
+ message BattleTower_Lobby_Text_19A6BE
+ waittext
+ fanfare 370
+ waitfanfare
+ msgbox BattleTower_Lobby_Text_19A719, 4
+
+BattleTower_Lobby_EventScript_16037D:: @ 816037D
+ setvar 0x8004, 8
+ special 238
+ compare RESULT, 1
+ jumpeq BattleTower_Lobby_EventScript_1603AD
+ message BattleTower_Lobby_Text_19A589
+ waittext
+ setvar 0x8004, 13
+ special 237
+ special 242
+ setvar 0x8004, 3
+ special 240
+ playsfx 55
+ checksound
+
+BattleTower_Lobby_EventScript_1603AD:: @ 81603AD
+ setvar 0x8004, 0
+ setvar 0x8005, 3
+ special 237
+ message BattleTower_Lobby_Text_19A4BB
+ waittext
+ special 243
+ switch RESULT
+ case 0, BattleTower_Lobby_EventScript_160408
+ message BattleTower_Lobby_Text_19A506
+ waittext
+ fanfare 370
+ waitfanfare
+ setvar 0x8004, 9
+ special 238
+ compare RESULT, 49
+ jumpif 5, BattleTower_Lobby_EventScript_1603F8
+ msgbox BattleTower_Lobby_Text_19A617, 4
+
+BattleTower_Lobby_EventScript_1603F8:: @ 81603F8
+ msgbox BattleTower_Lobby_Text_199FA9, 4
+ closebutton
+ setvar 0x4000, 5
+ release
+ end
+
+BattleTower_Lobby_EventScript_160408:: @ 8160408
+ msgbox BattleTower_Lobby_Text_19A520, 4
+ waittext
+ closebutton
+ setvar 0x4000, 5
+ release
+ end
+
+BattleTower_Lobby_EventScript_160419:: @ 8160419
+ lock
+ faceplayer
+ message BattleTower_Lobby_Text_19A571
+ waittext
+ message BattleTower_Lobby_Text_19A589
+ waittext
+ setvar 0x8004, 13
+ special 237
+ setvar 0x8004, 0
+ special 240
+ playsfx 55
+ checksound
+ msgbox BattleTower_Lobby_Text_199FA9, 4
+ closebutton
+ setvar 0x4000, 5
+ release
+ end
+
+BattleTower_Lobby_EventScript_16044B:: @ 816044B
+ lock
+ faceplayer
+ setvar 0x40bc, 1
+ message BattleTower_Lobby_Text_19A5B1
+ waittext
+ message BattleTower_Lobby_Text_19A5CE
+ waittext
+ setvar 0x8004, 1
+ special 240
+ playsfx 55
+ checksound
+ setvar 0x8004, 8
+ setvar 0x8005, 0
+ special 237
+ setvar 0x4000, 5
+ special 39
+ special 239
+ msgbox BattleTower_Lobby_Text_19A0A8, 4
+ closebutton
+ call BattleTower_Lobby_EventScript_160664
+ warp BattleTower_Elevator, 255, 1, 6
+ setvar 0x4000, 0
+ waitstate
+
+BattleTower_Lobby_EventScript_16049E:: @ 816049E
+ lock
+ faceplayer
+ setvar 0x8004, 0
+ special 238
+ compare RESULT, 6
+ jumpeq BattleTower_Lobby_EventScript_160342
+ special 39
+ msgbox BattleTower_Lobby_Text_199F2C, 4
+
+BattleTower_Lobby_EventScript_1604BE:: @ 81604BE
+ message BattleTower_Lobby_Text_199F79
+ waittext
+ multichoice 15, 6, 23, 0
+ switch RESULT
+ case 0, BattleTower_Lobby_EventScript_1604FA
+ case 1, BattleTower_Lobby_EventScript_160600
+ case 2, BattleTower_Lobby_EventScript_160652
+ case 127, BattleTower_Lobby_EventScript_160652
+
+BattleTower_Lobby_EventScript_1604FA:: @ 81604FA
+ message BattleTower_Lobby_Text_19A024
+ waittext
+ multichoice 18, 6, 24, 0
+ switch RESULT
+ case 2, BattleTower_Lobby_EventScript_160652
+ case 127, BattleTower_Lobby_EventScript_160652
+ special 233
+ compare 0x8004, 1
+ jumpeq BattleTower_Lobby_EventScript_16060D
+ setvar 0x8004, 1
+ copyvar 0x8005, RESULT
+ copyvar 0x8006, RESULT
+ special 237
+ msgbox BattleTower_Lobby_Text_19A07B, 4
+ fadescreen 1
+ special 245
+ waitstate
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_16064F
+ msgbox BattleTower_Lobby_Text_199FDA, 5
+ switch RESULT
+ case 0, BattleTower_Lobby_EventScript_16064F
+ case 1, BattleTower_Lobby_EventScript_160587
+ case 127, BattleTower_Lobby_EventScript_16064F
+
+BattleTower_Lobby_EventScript_160587:: @ 8160587
+ setvar 0x8004, 5
+ special 237
+ setvar 0x4000, 0
+ setvar 0x8004, 11
+ special 237
+ setvar 0x8004, 0
+ setvar 0x8005, 1
+ special 237
+ setvar 0x8004, 8
+ setvar 0x8005, 0
+ special 237
+ special 40
+ closebutton
+ pause 2
+ call BattleTower_Lobby_EventScript_19F806
+ setvar 0x4000, 5
+ hidebox 0, 0, 15, 10
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_160642
+ inccounter 30
+ special 39
+ special 239
+ setvar 0x40bc, 1
+ msgbox BattleTower_Lobby_Text_19A0A8, 4
+ closebutton
+ call BattleTower_Lobby_EventScript_160664
+ warp BattleTower_Elevator, 255, 1, 6
+ setvar 0x4000, 0
+ waitstate
+
+BattleTower_Lobby_EventScript_160600:: @ 8160600
+ msgbox BattleTower_Lobby_Text_19A0D1, 4
+ jump BattleTower_Lobby_EventScript_1604BE
+
+BattleTower_Lobby_EventScript_16060D:: @ 816060D
+ switch RESULT
+ case 0, BattleTower_Lobby_EventScript_160628
+ case 1, BattleTower_Lobby_EventScript_160635
+
+BattleTower_Lobby_EventScript_160628:: @ 8160628
+ msgbox BattleTower_Lobby_Text_19A249, 4
+ jump BattleTower_Lobby_EventScript_160662
+
+BattleTower_Lobby_EventScript_160635:: @ 8160635
+ msgbox BattleTower_Lobby_Text_19A32D, 4
+ jump BattleTower_Lobby_EventScript_160662
+
+BattleTower_Lobby_EventScript_160642:: @ 8160642
+ setvar 0x8004, 12
+ special 237
+ jump BattleTower_Lobby_EventScript_160652
+
+BattleTower_Lobby_EventScript_16064F:: @ 816064F
+ special 40
+
+BattleTower_Lobby_EventScript_160652:: @ 8160652
+ msgbox BattleTower_Lobby_Text_199FA9, 4
+ setvar 0x8004, 11
+ special 237
+
+BattleTower_Lobby_EventScript_160662:: @ 8160662
+ release
+ end
+
+BattleTower_Lobby_EventScript_160664:: @ 8160664
+ move 1, BattleTower_Lobby_Movement_160693
+ move 255, BattleTower_Lobby_Movement_160693
+ waitmove 0
+ setdooropened 6, 1
+ doorchange
+ move 1, BattleTower_Lobby_Movement_160697
+ move 255, BattleTower_Lobby_Movement_16069A
+ waitmove 0
+ setdoorclosed 6, 1
+ doorchange
+ return
+
+BattleTower_Lobby_Movement_160693:: @ 8160693
+ step_up
+ step_up
+ step_up
+ step_end
+
+BattleTower_Lobby_Movement_160697:: @ 8160697
+ step_up
+ step_54
+ step_end
+
+BattleTower_Lobby_Movement_16069A:: @ 816069A
+ step_up
+ step_up
+ step_54
+ step_end
+
+ .incbin "baserom.gba", 0x16069e, 0x7
+
+BattleTower_Lobby_EventScript_1606A5:: @ 81606A5
+ lock
+ faceplayer
+ msgbox BattleTower_Lobby_Text_19A747, 5
+ switch RESULT
+ case 1, BattleTower_Lobby_EventScript_1606CC
+ case 0, BattleTower_Lobby_EventScript_1606F7
+ release
+ end
+
+BattleTower_Lobby_EventScript_1606CC:: @ 81606CC
+ msgbox BattleTower_Lobby_Text_19A7C3, 4
+ setvar 0x8004, 1
+ call BattleTower_Lobby_EventScript_1A00F3
+ lock
+ faceplayer
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_160701
+ compare RESULT, 1
+ jumpeq BattleTower_Lobby_EventScript_16070B
+ end
+
+BattleTower_Lobby_EventScript_1606F7:: @ 81606F7
+ msgbox BattleTower_Lobby_Text_19A7FD, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_160701:: @ 8160701
+ msgbox BattleTower_Lobby_Text_19A83D, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_16070B:: @ 816070B
+ msgbox BattleTower_Lobby_Text_19A871, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_160715:: @ 8160715
+ msgbox BattleTower_Lobby_Text_19A8AE, 2
+ end
+
+BattleTower_Lobby_EventScript_16071E:: @ 816071E
+ msgbox BattleTower_Lobby_Text_19A946, 2
+ end
+
+BattleTower_Lobby_EventScript_160727:: @ 8160727
+ lockall
+ special 283
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+BattleTower_Lobby_EventScript_160733:: @ 8160733
+ lock
+ faceplayer
+ checkflag 238
+ jumpeq BattleTower_Lobby_EventScript_1607C5
+ checkflag 237
+ jumpeq BattleTower_Lobby_EventScript_160773
+ msgbox BattleTower_Lobby_Text_19A9EE, 4
+ setvar 0x8008, 42
+ givedecoration 42
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_1607AF
+ setflag 237
+ msgbox BattleTower_Lobby_Text_19ABAA, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_160773:: @ 8160773
+ specialval RESULT, 247
+ compare RESULT, 100
+ jumpif 0, BattleTower_Lobby_EventScript_1607C5
+ msgbox BattleTower_Lobby_Text_19AAC4, 4
+ setvar 0x8008, 43
+ givedecoration 43
+ compare RESULT, 0
+ jumpeq BattleTower_Lobby_EventScript_1607AF
+ setflag 238
+ msgbox BattleTower_Lobby_Text_19ABAA, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_1607AF:: @ 81607AF
+ bufferdecor 1, 0x8008
+ msgbox BattleTower_Lobby_Text_1A0CEF, 4
+ msgbox BattleTower_Lobby_Text_19ABED, 4
+ release
+ end
+
+BattleTower_Lobby_EventScript_1607C5:: @ 81607C5
+ msgbox BattleTower_Lobby_Text_19AC55, 4
+ release
+ end
+
diff --git a/data/scripts/maps/BattleTower_Outside.s b/data/scripts/maps/BattleTower_Outside.s
new file mode 100644
index 000000000..4ff10710f
--- /dev/null
+++ b/data/scripts/maps/BattleTower_Outside.s
@@ -0,0 +1,95 @@
+BattleTower_Outside_MapScripts:: @ 8160156
+ map_script 3, BattleTower_Outside_MapScript1_16015C
+ .byte 0
+
+BattleTower_Outside_MapScript1_16015C:: @ 816015C
+ setflag 2120
+ setvar 0x40bc, 0
+ setflag 918
+ end
+
+BattleTower_Outside_EventScript_160168:: @ 8160168
+ lock
+ faceplayer
+ msgbox BattleTower_Outside_Text_199D06, 4
+ checkitem ITEM_SS_TICKET, 1
+ compare RESULT, 0
+ jumpeq BattleTower_Outside_EventScript_1601C6
+ message BattleTower_Outside_Text_199D9D
+ waittext
+ jump BattleTower_Outside_EventScript_16018E
+ end
+
+BattleTower_Outside_EventScript_16018E:: @ 816018E
+ multichoicedef 21, 6, 53, 2, 0
+ switch RESULT
+ case 0, BattleTower_Outside_EventScript_1601D0
+ case 1, BattleTower_Outside_EventScript_1601FB
+ case 2, BattleTower_Outside_EventScript_160250
+ case 127, BattleTower_Outside_EventScript_160250
+ end
+
+BattleTower_Outside_EventScript_1601C6:: @ 81601C6
+ msgbox BattleTower_Outside_Text_199D40, 4
+ release
+ end
+
+BattleTower_Outside_EventScript_1601D0:: @ 81601D0
+ msgbox BattleTower_Outside_Text_199DF2, 5
+ compare RESULT, 0
+ jumpeq BattleTower_Outside_EventScript_160226
+ msgbox BattleTower_Outside_Text_199E4B, 4
+ call BattleTower_Outside_EventScript_160232
+ warp SlateportCity_Harbor, 255, 8, 11
+ waitstate
+ release
+ end
+
+BattleTower_Outside_EventScript_1601FB:: @ 81601FB
+ msgbox BattleTower_Outside_Text_199E0E, 5
+ compare RESULT, 0
+ jumpeq BattleTower_Outside_EventScript_160226
+ msgbox BattleTower_Outside_Text_199E4B, 4
+ call BattleTower_Outside_EventScript_160232
+ warp LilycoveCity_Harbor, 255, 8, 11
+ waitstate
+ release
+ end
+
+BattleTower_Outside_EventScript_160226:: @ 8160226
+ message BattleTower_Outside_Text_199E7A
+ waittext
+ jump BattleTower_Outside_EventScript_16018E
+ end
+
+BattleTower_Outside_EventScript_160232:: @ 8160232
+ closebutton
+ move LAST_TALKED, BattleTower_Outside_Movement_1A0845
+ waitmove 0
+ pause 30
+ spriteinvisible 5, 26, 4
+ setvar 0x8004, 4
+ call BattleTower_Outside_EventScript_1A047C
+ return
+
+BattleTower_Outside_EventScript_160250:: @ 8160250
+ msgbox BattleTower_Outside_Text_199E29, 4
+ release
+ end
+
+BattleTower_Outside_EventScript_16025A:: @ 816025A
+ msgbox BattleTower_Outside_Text_199C6F, 3
+ end
+
+BattleTower_Outside_EventScript_160263:: @ 8160263
+ msgbox BattleTower_Outside_Text_199CA4, 2
+ end
+
+BattleTower_Outside_EventScript_16026C:: @ 816026C
+ msgbox BattleTower_Outside_Text_199E9C, 2
+ end
+
+BattleTower_Outside_EventScript_160275:: @ 8160275
+ msgbox BattleTower_Outside_Text_199ED4, 2
+ end
+
diff --git a/data/scripts/maps/CaveOfOrigin_1F.s b/data/scripts/maps/CaveOfOrigin_1F.s
new file mode 100644
index 000000000..f55cd5081
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_1F.s
@@ -0,0 +1,9 @@
+CaveOfOrigin_1F_MapScripts:: @ 815DD6C
+ map_script 3, CaveOfOrigin_1F_MapScript1_15DD72
+ .byte 0
+
+CaveOfOrigin_1F_MapScript1_15DD72:: @ 815DD72
+ checkflag 113
+ callif 1, CaveOfOrigin_1F_EventScript_1A04E3
+ end
+
diff --git a/data/scripts/maps/CaveOfOrigin_B1F.s b/data/scripts/maps/CaveOfOrigin_B1F.s
new file mode 100644
index 000000000..751f38659
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_B1F.s
@@ -0,0 +1,9 @@
+CaveOfOrigin_B1F_MapScripts:: @ 815DD7C
+ map_script 3, CaveOfOrigin_B1F_MapScript1_15DD82
+ .byte 0
+
+CaveOfOrigin_B1F_MapScript1_15DD82:: @ 815DD82
+ checkflag 113
+ callif 1, CaveOfOrigin_B1F_EventScript_1A04E3
+ end
+
diff --git a/data/scripts/maps/CaveOfOrigin_B2F.s b/data/scripts/maps/CaveOfOrigin_B2F.s
new file mode 100644
index 000000000..8c1ba56b8
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_B2F.s
@@ -0,0 +1,9 @@
+CaveOfOrigin_B2F_MapScripts:: @ 815DD8C
+ map_script 3, CaveOfOrigin_B2F_MapScript1_15DD92
+ .byte 0
+
+CaveOfOrigin_B2F_MapScript1_15DD92:: @ 815DD92
+ checkflag 113
+ callif 1, CaveOfOrigin_B2F_EventScript_1A04E3
+ end
+
diff --git a/data/scripts/maps/CaveOfOrigin_B3F.s b/data/scripts/maps/CaveOfOrigin_B3F.s
new file mode 100644
index 000000000..2ebdb2d05
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_B3F.s
@@ -0,0 +1,9 @@
+CaveOfOrigin_B3F_MapScripts:: @ 815DD9C
+ map_script 3, CaveOfOrigin_B3F_MapScript1_15DDA2
+ .byte 0
+
+CaveOfOrigin_B3F_MapScript1_15DDA2:: @ 815DDA2
+ checkflag 113
+ callif 1, CaveOfOrigin_B3F_EventScript_1A04E3
+ end
+
diff --git a/data/scripts/maps/CaveOfOrigin_B4F.s b/data/scripts/maps/CaveOfOrigin_B4F.s
new file mode 100644
index 000000000..b0c638df0
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_B4F.s
@@ -0,0 +1,92 @@
+CaveOfOrigin_B4F_MapScripts:: @ 815DDAC
+ map_script 5, CaveOfOrigin_B4F_MapScript1_15DDB7
+ map_script 3, CaveOfOrigin_B4F_MapScript1_15DDC5
+ .byte 0
+
+CaveOfOrigin_B4F_MapScript1_15DDB7:: @ 815DDB7
+ checkflag 2145
+ callif 1, CaveOfOrigin_B4F_EventScript_15DDC1
+ end
+
+CaveOfOrigin_B4F_EventScript_15DDC1:: @ 815DDC1
+ disappear 1
+ return
+
+CaveOfOrigin_B4F_MapScript1_15DDC5:: @ 815DDC5
+ .ifdef SAPPHIRE
+ setmapfooter 163
+ .else
+ setmapfooter 313
+ .endif
+ call CaveOfOrigin_B4F_EventScript_1A01B5
+ checkflag 113
+ callif 1, CaveOfOrigin_B4F_EventScript_1A04E3
+ end
+
+CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
+ lockall
+ move 255, CaveOfOrigin_B4F_Movement_1A0841
+ waitmove 0
+ msgbox CaveOfOrigin_B4F_Text_1B4FE4, 4
+ closebutton
+ setweather 0
+ doweather
+ special 284
+ waitstate
+ playsfx 209
+ setanimation 0, 9
+ setanimation 1, 13
+ setanimation 2, 0
+ doanimation 54
+ checkanimation 54
+ .ifdef SAPPHIRE
+ setvar RESULT, 3
+ .else
+ setvar RESULT, 2
+ .endif
+ playsfx 107
+ special 281
+ waitstate
+ special 282
+ waitstate
+ move 1, CaveOfOrigin_B4F_Movement_15DE7D
+ waitmove 0
+ pause 60
+ setwildbattle SPECIES_GROUDON_OR_KYOGRE, 45, ITEM_NONE
+ checksound
+ pokecry SPECIES_GROUDON_OR_KYOGRE, 2
+ pause 40
+ waitpokecry
+ setflag 2145
+ special 311
+ waitstate
+ clearflag 2145
+ specialval RESULT, 180
+ compare RESULT, 1
+ callif 1, CaveOfOrigin_B4F_EventScript_15DE73
+ setflag 816
+ setflag 855
+ setflag 856
+ clearflag 815
+ setvar 0x409b, 1
+ setflag 113
+ clearflag 854
+ clearflag 2090
+ setvar 0x40b9, 2
+ clearflag 916
+ releaseall
+ end
+
+CaveOfOrigin_B4F_EventScript_15DE73:: @ 815DE73
+ msgbox CaveOfOrigin_B4F_Text_1B5009, 4
+ closebutton
+ return
+
+CaveOfOrigin_B4F_Movement_15DE7D:: @ 815DE7D
+ step_5e
+ step_60
+ step_14
+ step_14
+ step_61
+ step_end
+
diff --git a/data/scripts/maps/CaveOfOrigin_Entrance.s b/data/scripts/maps/CaveOfOrigin_Entrance.s
new file mode 100644
index 000000000..a39a290be
--- /dev/null
+++ b/data/scripts/maps/CaveOfOrigin_Entrance.s
@@ -0,0 +1,3 @@
+CaveOfOrigin_Entrance_MapScripts:: @ 815DD6B
+ .byte 0
+
diff --git a/data/scripts/maps/DesertRuins.s b/data/scripts/maps/DesertRuins.s
new file mode 100644
index 000000000..de5658eac
--- /dev/null
+++ b/data/scripts/maps/DesertRuins.s
@@ -0,0 +1,72 @@
+DesertRuins_MapScripts:: @ 815CAF3
+ map_script 5, DesertRuins_MapScript1_15CB03
+ map_script 1, DesertRuins_MapScript1_15CB11
+ map_script 3, DesertRuins_MapScript1_15CB52
+ .byte 0
+
+DesertRuins_MapScript1_15CB03:: @ 815CB03
+ checkflag 2145
+ callif 1, DesertRuins_EventScript_15CB0D
+ end
+
+DesertRuins_EventScript_15CB0D:: @ 815CB0D
+ disappear LAST_TALKED
+ return
+
+DesertRuins_MapScript1_15CB11:: @ 815CB11
+ checkflag 2128
+ callif 0, DesertRuins_EventScript_15CB1B
+ end
+
+DesertRuins_EventScript_15CB1B:: @ 815CB1B
+ setmaptile 7, 19, 553, 1
+ setmaptile 8, 19, 553, 1
+ setmaptile 9, 19, 553, 1
+ setmaptile 7, 20, 565, 1
+ setmaptile 8, 20, 565, 1
+ setmaptile 9, 20, 565, 1
+ return
+
+DesertRuins_MapScript1_15CB52:: @ 815CB52
+ setflag 2134
+ end
+
+DesertRuins_EventScript_15CB56:: @ 815CB56
+ lockall
+ checkflag 2128
+ jumpeq DesertRuins_EventScript_15CB6D
+ braillemsg DesertRuins_Braille_1C54C8
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+DesertRuins_EventScript_15CB6D:: @ 815CB6D
+ msgbox DesertRuins_Text_1A13BE, 4
+ releaseall
+ end
+
+DesertRuins_EventScript_15CB77:: @ 815CB77
+ lockall
+ braillemsg DesertRuins_Braille_1C54C8
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+DesertRuins_EventScript_15CB85:: @ 815CB85
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_REGIROCK, 2
+ pause 40
+ waitpokecry
+ setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE
+ setflag 935
+ setflag 2145
+ special 313
+ waitstate
+ clearflag 2145
+ release
+ end
+
diff --git a/data/scripts/maps/DewfordTown.s b/data/scripts/maps/DewfordTown.s
new file mode 100644
index 000000000..6c184198d
--- /dev/null
+++ b/data/scripts/maps/DewfordTown.s
@@ -0,0 +1,644 @@
+DewfordTown_MapScripts:: @ 814DFF8
+ map_script 3, DewfordTown_MapScript1_14DFFE
+ .byte 0
+
+DewfordTown_MapScript1_14DFFE:: @ 814DFFE
+ setflag 2065
+ end
+
+DewfordTown_EventScript_14E002:: @ 814E002
+ lock
+ faceplayer
+ checkflag 189
+ jumpif 0, DewfordTown_EventScript_14E076
+ message DewfordTown_Text_16B522
+ waittext
+ multichoicedef 21, 6, 0, 2, 0
+ switch RESULT
+ case 0, DewfordTown_EventScript_14E04B
+ case 1, DewfordTown_EventScript_14E05B
+ case 2, DewfordTown_EventScript_14E06B
+ case 127, DewfordTown_EventScript_14E06B
+ end
+
+DewfordTown_EventScript_14E04B:: @ 814E04B
+ msgbox DewfordTown_Text_16B57D, 4
+ closebutton
+ jump DewfordTown_EventScript_14E151
+
+ .incbin "baserom.gba", 0x14e059, 0x2
+
+DewfordTown_EventScript_14E05B:: @ 814E05B
+ msgbox DewfordTown_Text_16B5D2, 4
+ closebutton
+ jump DewfordTown_EventScript_14E1D8
+
+ .incbin "baserom.gba", 0x14e069, 0x2
+
+DewfordTown_EventScript_14E06B:: @ 814E06B
+ msgbox DewfordTown_Text_16B627, 4
+ closebutton
+ release
+ end
+
+DewfordTown_EventScript_14E076:: @ 814E076
+ msgbox DewfordTown_Text_16B3BC, 5
+ compare RESULT, 1
+ jumpeq DewfordTown_EventScript_14E093
+ msgbox DewfordTown_Text_16B471, 4
+ release
+ end
+
+DewfordTown_EventScript_14E093:: @ 814E093
+ msgbox DewfordTown_Text_16B417, 4
+ closebutton
+ jump DewfordTown_EventScript_14E151
+ end
+
+DewfordTown_EventScript_14E0A2:: @ 814E0A2
+ msgbox DewfordTown_Text_16B23B, 2
+ end
+
+DewfordTown_EventScript_14E0AB:: @ 814E0AB
+ msgbox DewfordTown_Text_16B2A7, 3
+ end
+
+DewfordTown_EventScript_14E0B4:: @ 814E0B4
+ msgbox DewfordTown_Text_16B2D5, 3
+ end
+
+DewfordTown_EventScript_14E0BD:: @ 814E0BD
+ msgbox DewfordTown_Text_16B317, 3
+ end
+
+DewfordTown_EventScript_14E0C6:: @ 814E0C6
+ lock
+ faceplayer
+ checkflag 257
+ jumpeq DewfordTown_EventScript_14E11B
+ msgbox DewfordTown_Text_16B665, 5
+ compare RESULT, 1
+ jumpeq DewfordTown_EventScript_14E0F0
+ compare RESULT, 0
+ jumpeq DewfordTown_EventScript_14E111
+ end
+
+DewfordTown_EventScript_14E0F0:: @ 814E0F0
+ msgbox DewfordTown_Text_16B6A8, 4
+ giveitem ITEM_OLD_ROD
+ setflag 257
+ msgbox DewfordTown_Text_16B6F9, 4
+ release
+ end
+
+DewfordTown_EventScript_14E111:: @ 814E111
+ msgbox DewfordTown_Text_16B828, 4
+ release
+ end
+
+DewfordTown_EventScript_14E11B:: @ 814E11B
+ message DewfordTown_Text_16B84E
+ waittext
+ multichoice 20, 8, 50, 1
+ compare RESULT, 0
+ jumpeq DewfordTown_EventScript_14E13D
+ compare RESULT, 1
+ jumpeq DewfordTown_EventScript_14E147
+ end
+
+DewfordTown_EventScript_14E13D:: @ 814E13D
+ msgbox DewfordTown_Text_16B866, 4
+ release
+ end
+
+DewfordTown_EventScript_14E147:: @ 814E147
+ msgbox DewfordTown_Text_16B89A, 4
+ release
+ end
+
+DewfordTown_EventScript_14E151:: @ 814E151
+ call DewfordTown_EventScript_1A010C
+ spritelevelup 2, 0, 11, 0
+ spritelevelup 255, 0, 11, 0
+ move 2, DewfordTown_Movement_14E40E
+ waitmove 0
+ disappear 2
+ move 255, DewfordTown_Movement_14E402
+ waitmove 0
+ spriteinvisible 255, 0, 11
+ call DewfordTown_EventScript_1A02E7
+ move 4, DewfordTown_Movement_14E293
+ move 255, DewfordTown_Movement_14E293
+ waitmove 0
+ spritevisible 255, 0, 19
+ call DewfordTown_EventScript_1A02EF
+ move 255, DewfordTown_Movement_14E405
+ waitmove 0
+ spritevisible 255, 0, 19
+ clearflag 739
+ clearflag 881
+ clearflag 742
+ setflag 743
+ spriteinvisible 4, 0, 11
+ setvar 0x408e, 2
+ restorespritelevel 255, 0, 11
+ warp Route104_MrBrineysHouse, 255, 5, 4
+ copyvar 0x4096, 0x8008
+ waitstate
+ release
+ end
+
+DewfordTown_EventScript_14E1D8:: @ 814E1D8
+ call DewfordTown_EventScript_1A010C
+ spritelevelup 2, 0, 11, 0
+ spritelevelup 255, 0, 11, 1
+ move 2, DewfordTown_Movement_14E40E
+ waitmove 0
+ disappear 2
+ move 255, DewfordTown_Movement_14E402
+ waitmove 0
+ spriteinvisible 255, 0, 11
+ call DewfordTown_EventScript_1A02E7
+ move 4, DewfordTown_Movement_14E356
+ move 255, DewfordTown_Movement_14E356
+ waitmove 0
+ call DewfordTown_EventScript_1A02EF
+ spritevisible 255, 0, 24
+ move 255, DewfordTown_Movement_14E409
+ waitmove 0
+ movespriteperm 2, 21, 26
+ reappear 2
+ spritelevelup 2, 0, 24, 0
+ move 2, DewfordTown_Movement_14E410
+ waitmove 0
+ clearflag 741
+ reappear 1
+ clearflag 744
+ setflag 743
+ spriteinvisible 4, 0, 11
+ checkflag 149
+ callif 0, DewfordTown_EventScript_14E281
+ checkflag 149
+ callif 1, DewfordTown_EventScript_14E28A
+ closebutton
+ copyvar 0x4096, 0x8008
+ restorespritelevel 255, 0, 11
+ restorespritelevel 2, 0, 24
+ moveoffscreen 2
+ release
+ end
+
+DewfordTown_EventScript_14E281:: @ 814E281
+ msgbox DewfordTown_Text_16E080, 4
+ return
+
+DewfordTown_EventScript_14E28A:: @ 814E28A
+ msgbox DewfordTown_Text_16E1FA, 4
+ return
+
+DewfordTown_Movement_14E293:: @ 814E293
+ step_up
+ step_up
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_up
+ step_up
+ step_left
+ step_left
+ step_17
+ step_17
+ step_17
+ step_17
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_17
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_16
+ step_16
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_16
+ step_16
+ step_16
+ step_16
+ step_17
+ step_17
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_17
+ step_17
+ step_16
+ step_16
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_16
+ step_16
+ step_16
+ step_16
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+DewfordTown_Movement_14E356:: @ 814E356
+ step_right
+ step_18
+ step_18
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_18
+ step_18
+ step_16
+ step_16
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_2e
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+DewfordTown_Movement_14E402:: @ 814E402
+ step_right
+ step_up
+ step_end
+
+DewfordTown_Movement_14E405:: @ 814E405
+ step_up
+ step_up
+ step_up
+ step_end
+
+DewfordTown_Movement_14E409:: @ 814E409
+ step_up
+ step_up
+ step_up
+ step_25
+ step_end
+
+DewfordTown_Movement_14E40E:: @ 814E40E
+ step_up
+ step_end
+
+DewfordTown_Movement_14E410:: @ 814E410
+ step_up
+ step_up
+ step_end
+
+DewfordTown_EventScript_14E413:: @ 814E413
+ lock
+ faceplayer
+ call DewfordTown_EventScript_1A0102
+ msgbox DewfordTown_Text_16B9CE, 5
+ compare RESULT, 1
+ jumpeq DewfordTown_EventScript_14E439
+ compare RESULT, 0
+ jumpeq DewfordTown_EventScript_14E443
+ end
+
+DewfordTown_EventScript_14E439:: @ 814E439
+ msgbox DewfordTown_Text_16BD37, 4
+ release
+ end
+
+DewfordTown_EventScript_14E443:: @ 814E443
+ msgbox DewfordTown_Text_16BADC, 4
+ setvar 0x8004, 9
+ call DewfordTown_EventScript_1A00F3
+ lock
+ faceplayer
+ compare RESULT, 1
+ jumpeq DewfordTown_EventScript_14E46E
+ compare RESULT, 0
+ jumpeq DewfordTown_EventScript_14E485
+ end
+
+DewfordTown_EventScript_14E46E:: @ 814E46E
+ inccounter 2
+ compare 0x8004, 0
+ jumpeq DewfordTown_EventScript_14E48F
+ msgbox DewfordTown_Text_16BB44, 4
+ release
+ end
+
+DewfordTown_EventScript_14E485:: @ 814E485
+ msgbox DewfordTown_Text_16BCE9, 4
+ release
+ end
+
+DewfordTown_EventScript_14E48F:: @ 814E48F
+ msgbox DewfordTown_Text_16BCA2, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x14e499, 0xa
+
diff --git a/data/scripts/maps/DewfordTown_Gym.s b/data/scripts/maps/DewfordTown_Gym.s
new file mode 100644
index 000000000..e51c33c69
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_Gym.s
@@ -0,0 +1,201 @@
+DewfordTown_Gym_MapScripts:: @ 8153065
+ map_script 3, DewfordTown_Gym_MapScript1_15306B
+ .byte 0
+
+DewfordTown_Gym_MapScript1_15306B:: @ 815306B
+ call DewfordTown_Gym_EventScript_153071
+ end
+
+DewfordTown_Gym_EventScript_153071:: @ 8153071
+ checktrainerflag 266
+ jumpeq DewfordTown_Gym_EventScript_1530AA
+ call DewfordTown_Gym_EventScript_153122
+ copyvar 0x8001, 0x8000
+ compare 0x8000, 0
+ jumpeq DewfordTown_Gym_EventScript_1530BA
+ compare 0x8000, 1
+ jumpeq DewfordTown_Gym_EventScript_1530B6
+ compare 0x8000, 2
+ jumpeq DewfordTown_Gym_EventScript_1530B2
+ jump DewfordTown_Gym_EventScript_1530AE
+
+DewfordTown_Gym_EventScript_1530AA:: @ 81530AA
+ darken 0
+ return
+
+DewfordTown_Gym_EventScript_1530AE:: @ 81530AE
+ darken 1
+ return
+
+DewfordTown_Gym_EventScript_1530B2:: @ 81530B2
+ darken 2
+ return
+
+DewfordTown_Gym_EventScript_1530B6:: @ 81530B6
+ darken 3
+ return
+
+DewfordTown_Gym_EventScript_1530BA:: @ 81530BA
+ darken 4
+ return
+
+DewfordTown_Gym_EventScript_1530BE:: @ 81530BE
+ call DewfordTown_Gym_EventScript_153122
+ snop1
+ comparevars 0x8000, 0x8001
+ jumpeq DewfordTown_Gym_EventScript_1530F5
+ copyvar 0x8001, 0x8000
+ compare 0x8000, 1
+ jumpeq DewfordTown_Gym_EventScript_1530F6
+ compare 0x8000, 2
+ jumpeq DewfordTown_Gym_EventScript_153101
+ compare 0x8000, 3
+ jumpeq DewfordTown_Gym_EventScript_15310C
+
+DewfordTown_Gym_EventScript_1530F5:: @ 81530F5
+ return
+
+DewfordTown_Gym_EventScript_1530F6:: @ 81530F6
+ playsfx 35
+ lighten 3
+ call DewfordTown_Gym_EventScript_153071
+ return
+
+DewfordTown_Gym_EventScript_153101:: @ 8153101
+ playsfx 35
+ lighten 2
+ call DewfordTown_Gym_EventScript_153071
+ return
+
+DewfordTown_Gym_EventScript_15310C:: @ 815310C
+ playsfx 35
+ lighten 1
+ call DewfordTown_Gym_EventScript_153071
+ return
+
+DewfordTown_Gym_EventScript_153117:: @ 8153117
+ playsfx 35
+ lighten 0
+ call DewfordTown_Gym_EventScript_153071
+ return
+
+DewfordTown_Gym_EventScript_153122:: @ 8153122
+ setvar 0x8000, 0
+ checktrainerflag 179
+ jumpif 0, DewfordTown_Gym_EventScript_153135
+ addvar 0x8000, 1
+
+DewfordTown_Gym_EventScript_153135:: @ 8153135
+ checktrainerflag 425
+ jumpif 0, DewfordTown_Gym_EventScript_153143
+ addvar 0x8000, 1
+
+DewfordTown_Gym_EventScript_153143:: @ 8153143
+ checktrainerflag 426
+ jumpif 0, DewfordTown_Gym_EventScript_153151
+ addvar 0x8000, 1
+
+DewfordTown_Gym_EventScript_153151:: @ 8153151
+ return
+
+DewfordTown_Gym_EventScript_153152:: @ 8153152
+ trainerbattle 1, 266, 0, DewfordTown_Gym_Text_175182, DewfordTown_Gym_Text_175246, DewfordTown_Gym_EventScript_153177
+ checkflag 166
+ jumpif 0, DewfordTown_Gym_EventScript_1531B5
+ msgbox DewfordTown_Gym_Text_175412, 4
+ release
+ end
+
+DewfordTown_Gym_EventScript_153177:: @ 8153177
+ call DewfordTown_Gym_EventScript_153117
+ message DewfordTown_Gym_Text_1752BB
+ waittext
+ call DewfordTown_Gym_EventScript_1A02C5
+ msgbox DewfordTown_Gym_Text_1752E6, 4
+ setflag 1204
+ setflag 2056
+ addvar 0x4085, 1
+ compare 0x4085, 6
+ callif 1, DewfordTown_Gym_EventScript_1A00FB
+ setvar 0x8008, 2
+ call DewfordTown_Gym_EventScript_1A01C0
+ jump DewfordTown_Gym_EventScript_1531B5
+ end
+
+DewfordTown_Gym_EventScript_1531B5:: @ 81531B5
+ giveitem ITEM_TM08
+ compare RESULT, 0
+ jumpeq DewfordTown_Gym_EventScript_1A029B
+ msgbox DewfordTown_Gym_Text_1753BF, 4
+ setflag 166
+ release
+ end
+
+DewfordTown_Gym_EventScript_1531D9:: @ 81531D9
+ trainerbattle 2, 179, 0, DewfordTown_Gym_Text_174F61, DewfordTown_Gym_Text_174F7A, DewfordTown_Gym_EventScript_1531F4
+ msgbox DewfordTown_Gym_Text_174F8E, 6
+ end
+
+DewfordTown_Gym_EventScript_1531F4:: @ 81531F4
+ call DewfordTown_Gym_EventScript_1530BE
+ release
+ end
+
+DewfordTown_Gym_EventScript_1531FB:: @ 81531FB
+ trainerbattle 2, 425, 0, DewfordTown_Gym_Text_174FCE, DewfordTown_Gym_Text_175009, DewfordTown_Gym_EventScript_153216
+ msgbox DewfordTown_Gym_Text_175031, 6
+ end
+
+DewfordTown_Gym_EventScript_153216:: @ 8153216
+ call DewfordTown_Gym_EventScript_1530BE
+ release
+ end
+
+DewfordTown_Gym_EventScript_15321D:: @ 815321D
+ trainerbattle 2, 426, 0, DewfordTown_Gym_Text_1750C9, DewfordTown_Gym_Text_175104, DewfordTown_Gym_EventScript_153238
+ msgbox DewfordTown_Gym_Text_175117, 6
+ end
+
+DewfordTown_Gym_EventScript_153238:: @ 8153238
+ call DewfordTown_Gym_EventScript_1530BE
+ release
+ end
+
+DewfordTown_Gym_EventScript_15323F:: @ 815323F
+ lock
+ faceplayer
+ checkflag 1204
+ jumpeq DewfordTown_Gym_EventScript_153254
+ msgbox DewfordTown_Gym_Text_174D98, 4
+ release
+ end
+
+DewfordTown_Gym_EventScript_153254:: @ 8153254
+ msgbox DewfordTown_Gym_Text_174F1E, 4
+ release
+ end
+
+DewfordTown_Gym_EventScript_15325E:: @ 815325E
+ lockall
+ checkflag 2056
+ jumpeq DewfordTown_Gym_EventScript_15327E
+ jump DewfordTown_Gym_EventScript_153288
+ end
+
+DewfordTown_Gym_EventScript_15326E:: @ 815326E
+ lockall
+ checkflag 2056
+ jumpeq DewfordTown_Gym_EventScript_15327E
+ jump DewfordTown_Gym_EventScript_153288
+ end
+
+DewfordTown_Gym_EventScript_15327E:: @ 815327E
+ msgbox DewfordTown_Gym_Text_175490, 4
+ releaseall
+ end
+
+DewfordTown_Gym_EventScript_153288:: @ 8153288
+ msgbox DewfordTown_Gym_Text_175477, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/DewfordTown_Hall.s b/data/scripts/maps/DewfordTown_Hall.s
new file mode 100644
index 000000000..a7dd01c32
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_Hall.s
@@ -0,0 +1,269 @@
+DewfordTown_Hall_MapScripts:: @ 8153292
+ .byte 0
+
+DewfordTown_Hall_EventScript_153293:: @ 8153293
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ special 127
+ compare RESULT, 1
+ jumpeq DewfordTown_Hall_EventScript_1532B2
+ msgbox DewfordTown_Hall_Text_1754C9, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_1532B2:: @ 81532B2
+ msgbox DewfordTown_Hall_Text_175528, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_1532BC:: @ 81532BC
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ msgbox DewfordTown_Hall_Text_17559E, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_1532CD:: @ 81532CD
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ special 128
+ msgbox DewfordTown_Hall_Text_1755F9, 5
+ compare RESULT, 1
+ jumpeq DewfordTown_Hall_EventScript_1532F6
+ compare RESULT, 0
+ jumpeq DewfordTown_Hall_EventScript_153300
+ end
+
+DewfordTown_Hall_EventScript_1532F6:: @ 81532F6
+ msgbox DewfordTown_Hall_Text_175664, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_153300:: @ 8153300
+ msgbox DewfordTown_Hall_Text_1756B7, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_15330A:: @ 815330A
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ msgbox DewfordTown_Hall_Text_17570D, 4
+ closebutton
+ move 4, DewfordTown_Hall_Movement_1A0841
+ waitmove 0
+ release
+ end
+
+DewfordTown_Hall_EventScript_153326:: @ 8153326
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ msgbox DewfordTown_Hall_Text_17574C, 4
+ closebutton
+ move 5, DewfordTown_Hall_Movement_1A0841
+ waitmove 0
+ release
+ end
+
+DewfordTown_Hall_EventScript_153342:: @ 8153342
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ msgbox DewfordTown_Hall_Text_175779, 4
+ release
+ end
+
+DewfordTown_Hall_EventScript_153353:: @ 8153353
+ lockall
+ call DewfordTown_Hall_EventScript_1A0102
+ msgbox DewfordTown_Hall_Text_175842, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_153363:: @ 8153363
+ lockall
+ call DewfordTown_Hall_EventScript_1A0102
+ special 129
+ switch RESULT
+ case 0, DewfordTown_Hall_EventScript_1533CA
+ case 4, DewfordTown_Hall_EventScript_1533CA
+ case 1, DewfordTown_Hall_EventScript_1533D4
+ case 5, DewfordTown_Hall_EventScript_1533CA
+ case 2, DewfordTown_Hall_EventScript_1533DE
+ case 6, DewfordTown_Hall_EventScript_1533DE
+ case 3, DewfordTown_Hall_EventScript_1533E8
+ case 7, DewfordTown_Hall_EventScript_1533DE
+ end
+
+DewfordTown_Hall_EventScript_1533CA:: @ 81533CA
+ msgbox DewfordTown_Hall_Text_1758C4, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1533D4:: @ 81533D4
+ msgbox DewfordTown_Hall_Text_1758E0, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1533DE:: @ 81533DE
+ msgbox DewfordTown_Hall_Text_1758FB, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1533E8:: @ 81533E8
+ msgbox DewfordTown_Hall_Text_175916, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1533F2:: @ 81533F2
+ lockall
+ setvar 0x8008, 0
+ jump DewfordTown_Hall_EventScript_15340A
+ end
+
+DewfordTown_Hall_EventScript_1533FE:: @ 81533FE
+ lockall
+ setvar 0x8008, 1
+ jump DewfordTown_Hall_EventScript_15340A
+ end
+
+DewfordTown_Hall_EventScript_15340A:: @ 815340A
+ call DewfordTown_Hall_EventScript_1A0102
+ special 129
+ switch RESULT
+ case 0, DewfordTown_Hall_EventScript_153470
+ case 1, DewfordTown_Hall_EventScript_153470
+ case 2, DewfordTown_Hall_EventScript_15348C
+ case 3, DewfordTown_Hall_EventScript_15348C
+ case 4, DewfordTown_Hall_EventScript_1534A8
+ case 5, DewfordTown_Hall_EventScript_1534A8
+ case 6, DewfordTown_Hall_EventScript_1534C4
+ case 7, DewfordTown_Hall_EventScript_1534E0
+ end
+
+DewfordTown_Hall_EventScript_153470:: @ 8153470
+ call DewfordTown_Hall_EventScript_1534FD
+ msgbox DewfordTown_Hall_Text_175935, 4
+ call DewfordTown_Hall_EventScript_153535
+ msgbox DewfordTown_Hall_Text_1759A1, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_15348C:: @ 815348C
+ call DewfordTown_Hall_EventScript_1534FD
+ msgbox DewfordTown_Hall_Text_175A5C, 4
+ call DewfordTown_Hall_EventScript_153535
+ msgbox DewfordTown_Hall_Text_175AD9, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1534A8:: @ 81534A8
+ call DewfordTown_Hall_EventScript_1534FD
+ msgbox DewfordTown_Hall_Text_175B46, 4
+ call DewfordTown_Hall_EventScript_153535
+ msgbox DewfordTown_Hall_Text_175BA7, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1534C4:: @ 81534C4
+ call DewfordTown_Hall_EventScript_1534FD
+ msgbox DewfordTown_Hall_Text_175C41, 4
+ call DewfordTown_Hall_EventScript_153535
+ msgbox DewfordTown_Hall_Text_175CC2, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1534E0:: @ 81534E0
+ call DewfordTown_Hall_EventScript_1534FD
+ msgbox DewfordTown_Hall_Text_175D6B, 4
+ call DewfordTown_Hall_EventScript_153535
+ msgbox DewfordTown_Hall_Text_175DC3, 4
+ releaseall
+ end
+
+DewfordTown_Hall_EventScript_1534FC:: @ 81534FC
+ return
+
+DewfordTown_Hall_EventScript_1534FD:: @ 81534FD
+ move 8, DewfordTown_Hall_Movement_153599
+ waitmove 0
+ compare 0x8008, 0
+ jumpeq DewfordTown_Hall_EventScript_15351E
+ compare 0x8008, 1
+ jumpeq DewfordTown_Hall_EventScript_153534
+ end
+
+DewfordTown_Hall_EventScript_15351E:: @ 815351E
+ compare FACING, 4
+ jumpeq DewfordTown_Hall_EventScript_1534FC
+ move 255, DewfordTown_Hall_Movement_1A0843
+ waitmove 0
+ return
+
+DewfordTown_Hall_EventScript_153534:: @ 8153534
+ return
+
+DewfordTown_Hall_EventScript_153535:: @ 8153535
+ move 7, DewfordTown_Hall_Movement_15359B
+ waitmove 0
+ compare 0x8008, 0
+ jumpeq DewfordTown_Hall_EventScript_153556
+ compare 0x8008, 1
+ jumpeq DewfordTown_Hall_EventScript_153583
+ end
+
+DewfordTown_Hall_EventScript_153556:: @ 8153556
+ compare FACING, 2
+ callif 1, DewfordTown_Hall_EventScript_15356D
+ compare FACING, 1
+ callif 1, DewfordTown_Hall_EventScript_153578
+ return
+
+DewfordTown_Hall_EventScript_15356D:: @ 815356D
+ move 255, DewfordTown_Hall_Movement_1A0841
+ waitmove 0
+ return
+
+DewfordTown_Hall_EventScript_153578:: @ 8153578
+ move 255, DewfordTown_Hall_Movement_1A0845
+ waitmove 0
+ return
+
+DewfordTown_Hall_EventScript_153583:: @ 8153583
+ compare FACING, 3
+ jumpeq DewfordTown_Hall_EventScript_1534FC
+ move 255, DewfordTown_Hall_Movement_1A083F
+ waitmove 0
+ return
+
+DewfordTown_Hall_Movement_153599:: @ 8153599
+ step_1f
+ step_end
+
+DewfordTown_Hall_Movement_15359B:: @ 815359B
+ step_20
+ step_end
+
+DewfordTown_Hall_EventScript_15359D:: @ 815359D
+ lock
+ faceplayer
+ call DewfordTown_Hall_EventScript_1A0102
+ checkflag 230
+ jumpeq DewfordTown_Hall_EventScript_1535D1
+ msgbox DewfordTown_Hall_Text_175E13, 4
+ giveitem ITEM_TM36
+ compare RESULT, 0
+ jumpeq DewfordTown_Hall_EventScript_1A029B
+ setflag 230
+ release
+ end
+
+DewfordTown_Hall_EventScript_1535D1:: @ 81535D1
+ msgbox DewfordTown_Hall_Text_175EBE, 4
+ release
+ end
+
diff --git a/data/scripts/maps/DewfordTown_House1.s b/data/scripts/maps/DewfordTown_House1.s
new file mode 100644
index 000000000..fa9e62b12
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_House1.s
@@ -0,0 +1,21 @@
+DewfordTown_House1_MapScripts:: @ 8152FEE
+ .byte 0
+
+DewfordTown_House1_EventScript_152FEF:: @ 8152FEF
+ msgbox DewfordTown_House1_Text_174BA5, 2
+ end
+
+DewfordTown_House1_EventScript_152FF8:: @ 8152FF8
+ msgbox DewfordTown_House1_Text_174C0D, 2
+ end
+
+DewfordTown_House1_EventScript_153001:: @ 8153001
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox DewfordTown_House1_Text_174CC8, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/DewfordTown_House2.s b/data/scripts/maps/DewfordTown_House2.s
new file mode 100644
index 000000000..8f1e8c784
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_House2.s
@@ -0,0 +1,30 @@
+DewfordTown_House2_MapScripts:: @ 81535DB
+ .byte 0
+
+DewfordTown_House2_EventScript_1535DC:: @ 81535DC
+ lock
+ faceplayer
+ checkflag 289
+ jumpeq DewfordTown_House2_EventScript_153615
+ msgbox DewfordTown_House2_Text_175EFE, 4
+ giveitem ITEM_SILK_SCARF
+ compare RESULT, 0
+ jumpeq DewfordTown_House2_EventScript_15360B
+ setflag 289
+ release
+ end
+
+DewfordTown_House2_EventScript_15360B:: @ 815360B
+ msgbox DewfordTown_House2_Text_175FDA, 4
+ release
+ end
+
+DewfordTown_House2_EventScript_153615:: @ 8153615
+ msgbox DewfordTown_House2_Text_176055, 4
+ release
+ end
+
+DewfordTown_House2_EventScript_15361F:: @ 815361F
+ msgbox DewfordTown_House2_Text_1760C8, 2
+ end
+
diff --git a/data/scripts/maps/DewfordTown_PokemonCenter_1F.s b/data/scripts/maps/DewfordTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..687a01ddc
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_PokemonCenter_1F.s
@@ -0,0 +1,25 @@
+DewfordTown_PokemonCenter_1F_MapScripts:: @ 8153014
+ map_script 3, DewfordTown_PokemonCenter_1F_MapScript1_15301A
+ .byte 0
+
+DewfordTown_PokemonCenter_1F_MapScript1_15301A:: @ 815301A
+ sethealplace 15
+ call DewfordTown_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+DewfordTown_PokemonCenter_1F_EventScript_153023:: @ 8153023
+ setvar 0x800b, 1
+ call DewfordTown_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+DewfordTown_PokemonCenter_1F_EventScript_153031:: @ 8153031
+ msgbox DewfordTown_PokemonCenter_1F_Text_174CDB, 2
+ end
+
+DewfordTown_PokemonCenter_1F_EventScript_15303A:: @ 815303A
+ msgbox DewfordTown_PokemonCenter_1F_Text_174D32, 2
+ end
+
diff --git a/data/scripts/maps/DewfordTown_PokemonCenter_2F.s b/data/scripts/maps/DewfordTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..5d23f1f9a
--- /dev/null
+++ b/data/scripts/maps/DewfordTown_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+DewfordTown_PokemonCenter_2F_MapScripts:: @ 8153043
+ map_script 2, DewfordTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, DewfordTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, DewfordTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+DewfordTown_PokemonCenter_2F_EventScript_153053:: @ 8153053
+ call DewfordTown_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+DewfordTown_PokemonCenter_2F_EventScript_153059:: @ 8153059
+ call DewfordTown_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+DewfordTown_PokemonCenter_2F_EventScript_15305F:: @ 815305F
+ call DewfordTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/DoubleBattleColosseum.s b/data/scripts/maps/DoubleBattleColosseum.s
new file mode 100644
index 000000000..360f5fced
--- /dev/null
+++ b/data/scripts/maps/DoubleBattleColosseum.s
@@ -0,0 +1,3 @@
+DoubleBattleColosseum_MapScripts:: @ 815F57F
+ .byte 0
+
diff --git a/data/scripts/maps/EverGrandeCity.s b/data/scripts/maps/EverGrandeCity.s
new file mode 100644
index 000000000..cdac6069e
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity.s
@@ -0,0 +1,26 @@
+EverGrandeCity_MapScripts:: @ 814D4D5
+ map_script 3, EverGrandeCity_MapScript1_14D4DB
+ .byte 0
+
+EverGrandeCity_MapScript1_14D4DB:: @ 814D4DB
+ checkflag 2090
+ callif 1, EverGrandeCity_EventScript_1A02C1
+ end
+
+EverGrandeCity_EventScript_14D4E5:: @ 814D4E5
+ msgbox EverGrandeCity_Text_16A74D, 3
+ end
+
+EverGrandeCity_EventScript_14D4EE:: @ 814D4EE
+ msgbox EverGrandeCity_Text_16A787, 3
+ end
+
+EverGrandeCity_EventScript_14D4F7:: @ 814D4F7
+ msgbox EverGrandeCity_Text_16A763, 3
+ end
+
+EverGrandeCity_EventScript_14D500:: @ 814D500
+ setflag 2078
+ setvar 0x4001, 1
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_ChampionsRoom.s b/data/scripts/maps/EverGrandeCity_ChampionsRoom.s
new file mode 100644
index 000000000..de6c091a5
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_ChampionsRoom.s
@@ -0,0 +1,227 @@
+EverGrandeCity_ChampionsRoom_MapScripts:: @ 815B7AF
+ map_script 3, EverGrandeCity_ChampionsRoom_MapScript1_15B7BF
+ map_script 4, EverGrandeCity_ChampionsRoom_MapScript2_15B7C5
+ map_script 2, EverGrandeCity_ChampionsRoom_MapScript2_15B7D4
+ .byte 0
+
+EverGrandeCity_ChampionsRoom_MapScript1_15B7BF:: @ 815B7BF
+ call EverGrandeCity_ChampionsRoom_EventScript_1A014E
+ end
+
+EverGrandeCity_ChampionsRoom_MapScript2_15B7C5:: @ 815B7C5
+ map_script_2 0x4001, 0, EverGrandeCity_ChampionsRoom_EventScript_15B7CF
+ .2byte 0
+
+EverGrandeCity_ChampionsRoom_EventScript_15B7CF:: @ 815B7CF
+ spriteface 255, 2
+ end
+
+EverGrandeCity_ChampionsRoom_MapScript2_15B7D4:: @ 815B7D4
+ map_script_2 0x4001, 0, EverGrandeCity_ChampionsRoom_EventScript_15B7DE
+ .2byte 0
+
+EverGrandeCity_ChampionsRoom_EventScript_15B7DE:: @ 815B7DE
+ lockall
+ move 255, EverGrandeCity_ChampionsRoom_Movement_1A084E
+ waitmove 0
+ pause 40
+ move 255, EverGrandeCity_ChampionsRoom_Movement_15B802
+ waitmove 0
+ setvar 0x4001, 1
+ jump EverGrandeCity_ChampionsRoom_EventScript_15B805
+
+ .incbin "baserom.gba", 0x15b800, 0x2
+
+EverGrandeCity_ChampionsRoom_Movement_15B802:: @ 815B802
+ step_up
+ step_up
+ step_end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B805:: @ 815B805
+ playmusic 454, 0
+ msgbox EverGrandeCity_ChampionsRoom_Text_190F9C, 4
+ trainerbattle 3, 335, 0, EverGrandeCity_ChampionsRoom_Text_1910A0
+ jump EverGrandeCity_ChampionsRoom_EventScript_15B821
+ end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B821:: @ 815B821
+ playsfx 8
+ setmaptile 6, 1, 838, 0
+ setmaptile 6, 2, 839, 0
+ special 142
+ msgbox EverGrandeCity_ChampionsRoom_Text_1910FE, 4
+ closebutton
+ playsfx 8
+ checkgender
+ compare RESULT, 0
+ callif 1, EverGrandeCity_ChampionsRoom_EventScript_15B87C
+ compare RESULT, 1
+ callif 1, EverGrandeCity_ChampionsRoom_EventScript_15B881
+ reappear 2
+ call EverGrandeCity_ChampionsRoom_EventScript_15B9BD
+ checkgender
+ compare RESULT, 0
+ jumpeq EverGrandeCity_ChampionsRoom_EventScript_15B886
+ compare RESULT, 1
+ jumpeq EverGrandeCity_ChampionsRoom_EventScript_15B8BB
+ end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B87C:: @ 815B87C
+ playmusic 415, 0
+ return
+
+EverGrandeCity_ChampionsRoom_EventScript_15B881:: @ 815B881
+ playmusic 421, 0
+ return
+
+EverGrandeCity_ChampionsRoom_EventScript_15B886:: @ 815B886
+ msgbox EverGrandeCity_ChampionsRoom_Text_191225, 4
+ pause 40
+ playsfx 21
+ move 2, EverGrandeCity_ChampionsRoom_Movement_1A0833
+ waitmove 0
+ move 2, EverGrandeCity_ChampionsRoom_Movement_1A0835
+ waitmove 0
+ call EverGrandeCity_ChampionsRoom_EventScript_15B9D2
+ msgbox EverGrandeCity_ChampionsRoom_Text_191268, 4
+ jump EverGrandeCity_ChampionsRoom_EventScript_15B8F0
+ end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B8BB:: @ 815B8BB
+ msgbox EverGrandeCity_ChampionsRoom_Text_1912B3, 4
+ pause 40
+ playsfx 21
+ move 2, EverGrandeCity_ChampionsRoom_Movement_1A0833
+ waitmove 0
+ move 2, EverGrandeCity_ChampionsRoom_Movement_1A0835
+ waitmove 0
+ call EverGrandeCity_ChampionsRoom_EventScript_15B9D2
+ msgbox EverGrandeCity_ChampionsRoom_Text_191305, 4
+ jump EverGrandeCity_ChampionsRoom_EventScript_15B8F0
+ end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B8F0:: @ 815B8F0
+ closebutton
+ reappear 3
+ move 3, EverGrandeCity_ChampionsRoom_Movement_15BA03
+ waitmove 0
+ move 255, EverGrandeCity_ChampionsRoom_Movement_1A0843
+ waitmove 0
+ msgbox EverGrandeCity_ChampionsRoom_Text_19134D, 4
+ call EverGrandeCity_ChampionsRoom_EventScript_1A03B0
+ msgbox EverGrandeCity_ChampionsRoom_Text_1914C6, 4
+ move 1, EverGrandeCity_ChampionsRoom_Movement_1A0841
+ waitmove 0
+ pause 20
+ move 1, EverGrandeCity_ChampionsRoom_Movement_1A0845
+ waitmove 0
+ msgbox EverGrandeCity_ChampionsRoom_Text_191512, 4
+ closebutton
+ pause 30
+ move 1, EverGrandeCity_ChampionsRoom_Movement_15B9FB
+ move 255, EverGrandeCity_ChampionsRoom_Movement_15B9DD
+ move 3, EverGrandeCity_ChampionsRoom_Movement_1A0841
+ move 2, EverGrandeCity_ChampionsRoom_Movement_15B9F8
+ waitmove 0
+ pause 20
+ move 255, EverGrandeCity_ChampionsRoom_Movement_1A0845
+ waitmove 0
+ msgbox EverGrandeCity_ChampionsRoom_Text_191546, 4
+ checkgender
+ compare RESULT, 0
+ callif 1, EverGrandeCity_ChampionsRoom_EventScript_15B9AB
+ compare RESULT, 1
+ callif 1, EverGrandeCity_ChampionsRoom_EventScript_15B9B4
+ closebutton
+ move 1, EverGrandeCity_ChampionsRoom_Movement_15B9FF
+ move 255, EverGrandeCity_ChampionsRoom_Movement_15B9E0
+ waitmove 0
+ setflag 781
+ warp EverGrandeCity_HallOfFame, 255, 7, 16
+ waitstate
+ releaseall
+ end
+
+EverGrandeCity_ChampionsRoom_EventScript_15B9AB:: @ 815B9AB
+ msgbox EverGrandeCity_ChampionsRoom_Text_1915D7, 4
+ return
+
+EverGrandeCity_ChampionsRoom_EventScript_15B9B4:: @ 815B9B4
+ msgbox EverGrandeCity_ChampionsRoom_Text_191675, 4
+ return
+
+EverGrandeCity_ChampionsRoom_EventScript_15B9BD:: @ 815B9BD
+ move 2, EverGrandeCity_ChampionsRoom_Movement_15B9E6
+ waitmove 0
+ move 255, EverGrandeCity_ChampionsRoom_Movement_1A083F
+ waitmove 0
+ return
+
+EverGrandeCity_ChampionsRoom_EventScript_15B9D2:: @ 815B9D2
+ move 2, EverGrandeCity_ChampionsRoom_Movement_15B9EF
+ waitmove 0
+ return
+
+EverGrandeCity_ChampionsRoom_Movement_15B9DD:: @ 815B9DD
+ step_up
+ step_up
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9E0:: @ 815B9E0
+ step_up
+ step_14
+ step_up
+ step_13
+ step_54
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9E6:: @ 815B9E6
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_left
+ step_up
+ step_28
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9EF:: @ 815B9EF
+ step_26
+ step_14
+ step_28
+ step_14
+ step_26
+ step_13
+ step_28
+ step_14
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9F8:: @ 815B9F8
+ step_right
+ step_up
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9FB:: @ 815B9FB
+ step_up
+ step_up
+ step_25
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15B9FF:: @ 815B9FF
+ step_up
+ step_13
+ step_54
+ step_end
+
+EverGrandeCity_ChampionsRoom_Movement_15BA03:: @ 815BA03
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_up
+ step_27
+ step_end
+
diff --git a/data/scripts/maps/EverGrandeCity_Corridor1.s b/data/scripts/maps/EverGrandeCity_Corridor1.s
new file mode 100644
index 000000000..a3798d99b
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_Corridor1.s
@@ -0,0 +1,12 @@
+EverGrandeCity_Corridor1_MapScripts:: @ 815BA0C
+ map_script 4, EverGrandeCity_Corridor1_MapScript2_15BA12
+ .byte 0
+
+EverGrandeCity_Corridor1_MapScript2_15BA12:: @ 815BA12
+ map_script_2 0x4001, 0, EverGrandeCity_Corridor1_EventScript_15BA1C
+ .2byte 0
+
+EverGrandeCity_Corridor1_EventScript_15BA1C:: @ 815BA1C
+ spriteface 255, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_Corridor2.s b/data/scripts/maps/EverGrandeCity_Corridor2.s
new file mode 100644
index 000000000..699338f21
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_Corridor2.s
@@ -0,0 +1,12 @@
+EverGrandeCity_Corridor2_MapScripts:: @ 815BA21
+ map_script 4, EverGrandeCity_Corridor2_MapScript2_15BA27
+ .byte 0
+
+EverGrandeCity_Corridor2_MapScript2_15BA27:: @ 815BA27
+ map_script_2 0x4001, 0, EverGrandeCity_Corridor2_EventScript_15BA31
+ .2byte 0
+
+EverGrandeCity_Corridor2_EventScript_15BA31:: @ 815BA31
+ spriteface 255, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_Corridor3.s b/data/scripts/maps/EverGrandeCity_Corridor3.s
new file mode 100644
index 000000000..d70b390a5
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_Corridor3.s
@@ -0,0 +1,12 @@
+EverGrandeCity_Corridor3_MapScripts:: @ 815BA36
+ map_script 4, EverGrandeCity_Corridor3_MapScript2_15BA3C
+ .byte 0
+
+EverGrandeCity_Corridor3_MapScript2_15BA3C:: @ 815BA3C
+ map_script_2 0x4001, 0, EverGrandeCity_Corridor3_EventScript_15BA46
+ .2byte 0
+
+EverGrandeCity_Corridor3_EventScript_15BA46:: @ 815BA46
+ spriteface 255, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_Corridor4.s b/data/scripts/maps/EverGrandeCity_Corridor4.s
new file mode 100644
index 000000000..131f5d342
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_Corridor4.s
@@ -0,0 +1,12 @@
+EverGrandeCity_Corridor4_MapScripts:: @ 815BA4B
+ map_script 4, EverGrandeCity_Corridor4_MapScript2_15BA51
+ .byte 0
+
+EverGrandeCity_Corridor4_MapScript2_15BA51:: @ 815BA51
+ map_script_2 0x4001, 0, EverGrandeCity_Corridor4_EventScript_15BA5B
+ .2byte 0
+
+EverGrandeCity_Corridor4_EventScript_15BA5B:: @ 815BA5B
+ spriteface 255, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_Corridor5.s b/data/scripts/maps/EverGrandeCity_Corridor5.s
new file mode 100644
index 000000000..d27df4ec8
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_Corridor5.s
@@ -0,0 +1,12 @@
+EverGrandeCity_Corridor5_MapScripts:: @ 815BA60
+ map_script 4, EverGrandeCity_Corridor5_MapScript2_15BA66
+ .byte 0
+
+EverGrandeCity_Corridor5_MapScript2_15BA66:: @ 815BA66
+ map_script_2 0x4001, 0, EverGrandeCity_Corridor5_EventScript_15BA70
+ .2byte 0
+
+EverGrandeCity_Corridor5_EventScript_15BA70:: @ 815BA70
+ spriteface 255, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_DrakesRoom.s b/data/scripts/maps/EverGrandeCity_DrakesRoom.s
new file mode 100644
index 000000000..035566c4e
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_DrakesRoom.s
@@ -0,0 +1,59 @@
+EverGrandeCity_DrakesRoom_MapScripts:: @ 815B70D
+ map_script 2, EverGrandeCity_DrakesRoom_MapScript2_15B72C
+ map_script 1, EverGrandeCity_DrakesRoom_MapScript1_15B743
+ map_script 4, EverGrandeCity_DrakesRoom_MapScript2_15B570
+ .byte 0
+
+ .incbin "baserom.gba", 0x15b71d, 0xf
+
+EverGrandeCity_DrakesRoom_MapScript2_15B72C:: @ 815B72C
+ map_script_2 0x409c, 3, EverGrandeCity_DrakesRoom_EventScript_15B736
+ .2byte 0
+
+EverGrandeCity_DrakesRoom_EventScript_15B736:: @ 815B736
+ lockall
+ call EverGrandeCity_DrakesRoom_EventScript_1A0710
+ setvar 0x409c, 4
+ releaseall
+ end
+
+EverGrandeCity_DrakesRoom_MapScript1_15B743:: @ 815B743
+ checkflag 1248
+ callif 1, EverGrandeCity_DrakesRoom_EventScript_15B758
+ compare 0x409c, 4
+ callif 1, EverGrandeCity_DrakesRoom_EventScript_15B75E
+ end
+
+EverGrandeCity_DrakesRoom_EventScript_15B758:: @ 815B758
+ call EverGrandeCity_DrakesRoom_EventScript_1A0757
+ return
+
+EverGrandeCity_DrakesRoom_EventScript_15B75E:: @ 815B75E
+ call EverGrandeCity_DrakesRoom_EventScript_1A07FA
+ return
+
+EverGrandeCity_DrakesRoom_EventScript_15B764:: @ 815B764
+ lock
+ faceplayer
+ checkflag 1248
+ jumpeq EverGrandeCity_DrakesRoom_EventScript_15B78B
+ playmusic 450, 0
+ msgbox EverGrandeCity_DrakesRoom_Text_190CEB, 4
+ trainerbattle 3, 264, 0, EverGrandeCity_DrakesRoom_Text_190E42
+ jump EverGrandeCity_DrakesRoom_EventScript_15B795
+ end
+
+EverGrandeCity_DrakesRoom_EventScript_15B78B:: @ 815B78B
+ msgbox EverGrandeCity_DrakesRoom_Text_190E5D, 4
+ release
+ end
+
+EverGrandeCity_DrakesRoom_EventScript_15B795:: @ 815B795
+ setvar 0x8004, 0
+ special 170
+ setflag 1248
+ call EverGrandeCity_DrakesRoom_EventScript_1A0693
+ msgbox EverGrandeCity_DrakesRoom_Text_190E5D, 4
+ release
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_GlaciasRoom.s b/data/scripts/maps/EverGrandeCity_GlaciasRoom.s
new file mode 100644
index 000000000..830a810e6
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_GlaciasRoom.s
@@ -0,0 +1,63 @@
+EverGrandeCity_GlaciasRoom_MapScripts:: @ 815B673
+ map_script 2, EverGrandeCity_GlaciasRoom_MapScript2_15B692
+ map_script 1, EverGrandeCity_GlaciasRoom_MapScript1_15B6A9
+ map_script 4, EverGrandeCity_GlaciasRoom_MapScript2_15B683
+ .byte 0
+
+EverGrandeCity_GlaciasRoom_MapScript2_15B683:: @ 815B683
+ map_script_2 0x4001, 0, EverGrandeCity_GlaciasRoom_EventScript_15B68D
+ .2byte 0
+
+EverGrandeCity_GlaciasRoom_EventScript_15B68D:: @ 815B68D
+ spriteface 255, 2
+ end
+
+EverGrandeCity_GlaciasRoom_MapScript2_15B692:: @ 815B692
+ map_script_2 0x409c, 2, EverGrandeCity_GlaciasRoom_EventScript_15B69C
+ .2byte 0
+
+EverGrandeCity_GlaciasRoom_EventScript_15B69C:: @ 815B69C
+ lockall
+ call EverGrandeCity_GlaciasRoom_EventScript_1A0710
+ setvar 0x409c, 3
+ releaseall
+ end
+
+EverGrandeCity_GlaciasRoom_MapScript1_15B6A9:: @ 815B6A9
+ checkflag 1247
+ callif 1, EverGrandeCity_GlaciasRoom_EventScript_15B6BE
+ compare 0x409c, 3
+ callif 1, EverGrandeCity_GlaciasRoom_EventScript_15B6C4
+ end
+
+EverGrandeCity_GlaciasRoom_EventScript_15B6BE:: @ 815B6BE
+ call EverGrandeCity_GlaciasRoom_EventScript_1A0757
+ return
+
+EverGrandeCity_GlaciasRoom_EventScript_15B6C4:: @ 815B6C4
+ call EverGrandeCity_GlaciasRoom_EventScript_1A07FA
+ return
+
+EverGrandeCity_GlaciasRoom_EventScript_15B6CA:: @ 815B6CA
+ lock
+ faceplayer
+ checkflag 1247
+ jumpeq EverGrandeCity_GlaciasRoom_EventScript_15B6F1
+ playmusic 450, 0
+ msgbox EverGrandeCity_GlaciasRoom_Text_190AF9, 4
+ trainerbattle 3, 263, 0, EverGrandeCity_GlaciasRoom_Text_190C01
+ jump EverGrandeCity_GlaciasRoom_EventScript_15B6FB
+ end
+
+EverGrandeCity_GlaciasRoom_EventScript_15B6F1:: @ 815B6F1
+ msgbox EverGrandeCity_GlaciasRoom_Text_190C8F, 4
+ release
+ end
+
+EverGrandeCity_GlaciasRoom_EventScript_15B6FB:: @ 815B6FB
+ setflag 1247
+ call EverGrandeCity_GlaciasRoom_EventScript_1A0693
+ msgbox EverGrandeCity_GlaciasRoom_Text_190C8F, 4
+ release
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_HallOfFame.s b/data/scripts/maps/EverGrandeCity_HallOfFame.s
new file mode 100644
index 000000000..e3d3b74e4
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_HallOfFame.s
@@ -0,0 +1,85 @@
+EverGrandeCity_HallOfFame_MapScripts:: @ 815BB84
+ map_script 2, EverGrandeCity_HallOfFame_MapScript2_15BB9E
+ map_script 4, EverGrandeCity_HallOfFame_MapScript2_15BB8F
+ .byte 0
+
+EverGrandeCity_HallOfFame_MapScript2_15BB8F:: @ 815BB8F
+ map_script_2 0x4001, 0, EverGrandeCity_HallOfFame_EventScript_15BB99
+ .2byte 0
+
+EverGrandeCity_HallOfFame_EventScript_15BB99:: @ 815BB99
+ spriteface 255, 2
+ end
+
+EverGrandeCity_HallOfFame_MapScript2_15BB9E:: @ 815BB9E
+ map_script_2 0x4001, 0, EverGrandeCity_HallOfFame_EventScript_15BBA8
+ .2byte 0
+
+EverGrandeCity_HallOfFame_EventScript_15BBA8:: @ 815BBA8
+ lockall
+ move 1, EverGrandeCity_HallOfFame_Movement_15BC59
+ move 255, EverGrandeCity_HallOfFame_Movement_15BC59
+ waitmove 0
+ move 1, EverGrandeCity_HallOfFame_Movement_1A0843
+ move 255, EverGrandeCity_HallOfFame_Movement_1A083F
+ waitmove 0
+ msgbox EverGrandeCity_HallOfFame_Text_191841, 4
+ closebutton
+ move 1, EverGrandeCity_HallOfFame_Movement_15BC60
+ move 255, EverGrandeCity_HallOfFame_Movement_15BC60
+ waitmove 0
+ pause 20
+ move 1, EverGrandeCity_HallOfFame_Movement_1A0843
+ move 255, EverGrandeCity_HallOfFame_Movement_1A083F
+ waitmove 0
+ msgbox EverGrandeCity_HallOfFame_Text_1918D7, 4
+ closebutton
+ move 1, EverGrandeCity_HallOfFame_Movement_1A0841
+ move 255, EverGrandeCity_HallOfFame_Movement_1A0841
+ waitmove 0
+ pause 20
+ doanimation 62
+ checkanimation 62
+ pause 40
+ setvar 0x4001, 1
+ call EverGrandeCity_HallOfFame_EventScript_19FC13
+ checkgender
+ compare RESULT, 0
+ jumpeq EverGrandeCity_HallOfFame_EventScript_15BC41
+ compare RESULT, 1
+ jumpeq EverGrandeCity_HallOfFame_EventScript_15BC4D
+ end
+
+EverGrandeCity_HallOfFame_EventScript_15BC41:: @ 815BC41
+ sethealplace 1
+ fadescreendelay 1, 24
+ special 272
+ waitstate
+ releaseall
+ end
+
+EverGrandeCity_HallOfFame_EventScript_15BC4D:: @ 815BC4D
+ sethealplace 2
+ fadescreendelay 1, 24
+ special 272
+ waitstate
+ releaseall
+ end
+
+EverGrandeCity_HallOfFame_Movement_15BC59:: @ 815BC59
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+EverGrandeCity_HallOfFame_Movement_15BC60:: @ 815BC60
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
diff --git a/data/scripts/maps/EverGrandeCity_PhoebesRoom.s b/data/scripts/maps/EverGrandeCity_PhoebesRoom.s
new file mode 100644
index 000000000..f97a892ce
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_PhoebesRoom.s
@@ -0,0 +1,63 @@
+EverGrandeCity_PhoebesRoom_MapScripts:: @ 815B5D9
+ map_script 1, EverGrandeCity_PhoebesRoom_MapScript1_15B60F
+ map_script 4, EverGrandeCity_PhoebesRoom_MapScript2_15B5E9
+ map_script 2, EverGrandeCity_PhoebesRoom_MapScript2_15B5F8
+ .byte 0
+
+EverGrandeCity_PhoebesRoom_MapScript2_15B5E9:: @ 815B5E9
+ map_script_2 0x4001, 0, EverGrandeCity_PhoebesRoom_EventScript_15B5F3
+ .2byte 0
+
+EverGrandeCity_PhoebesRoom_EventScript_15B5F3:: @ 815B5F3
+ spriteface 255, 2
+ end
+
+EverGrandeCity_PhoebesRoom_MapScript2_15B5F8:: @ 815B5F8
+ map_script_2 0x409c, 1, EverGrandeCity_PhoebesRoom_EventScript_15B602
+ .2byte 0
+
+EverGrandeCity_PhoebesRoom_EventScript_15B602:: @ 815B602
+ lockall
+ call EverGrandeCity_PhoebesRoom_EventScript_1A0710
+ setvar 0x409c, 2
+ releaseall
+ end
+
+EverGrandeCity_PhoebesRoom_MapScript1_15B60F:: @ 815B60F
+ checkflag 1246
+ callif 1, EverGrandeCity_PhoebesRoom_EventScript_15B624
+ compare 0x409c, 2
+ callif 1, EverGrandeCity_PhoebesRoom_EventScript_15B62A
+ end
+
+EverGrandeCity_PhoebesRoom_EventScript_15B624:: @ 815B624
+ call EverGrandeCity_PhoebesRoom_EventScript_1A0757
+ return
+
+EverGrandeCity_PhoebesRoom_EventScript_15B62A:: @ 815B62A
+ call EverGrandeCity_PhoebesRoom_EventScript_1A07FA
+ return
+
+EverGrandeCity_PhoebesRoom_EventScript_15B630:: @ 815B630
+ lock
+ faceplayer
+ checkflag 1246
+ jumpeq EverGrandeCity_PhoebesRoom_EventScript_15B657
+ playmusic 450, 0
+ msgbox EverGrandeCity_PhoebesRoom_Text_1908F5, 4
+ trainerbattle 3, 262, 0, EverGrandeCity_PhoebesRoom_Text_190A0C
+ jump EverGrandeCity_PhoebesRoom_EventScript_15B661
+ end
+
+EverGrandeCity_PhoebesRoom_EventScript_15B657:: @ 815B657
+ msgbox EverGrandeCity_PhoebesRoom_Text_190A2A, 4
+ release
+ end
+
+EverGrandeCity_PhoebesRoom_EventScript_15B661:: @ 815B661
+ setflag 1246
+ call EverGrandeCity_PhoebesRoom_EventScript_1A0693
+ msgbox EverGrandeCity_PhoebesRoom_Text_190A2A, 4
+ release
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..85d9e2241
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s
@@ -0,0 +1,25 @@
+EverGrandeCity_PokemonCenter_1F_MapScripts:: @ 815BC66
+ map_script 3, EverGrandeCity_PokemonCenter_1F_MapScript1_15BC6C
+ .byte 0
+
+EverGrandeCity_PokemonCenter_1F_MapScript1_15BC6C:: @ 815BC6C
+ sethealplace 11
+ end
+
+EverGrandeCity_PokemonCenter_1F_EventScript_15BC70:: @ 815BC70
+SootopolisCity_PokemonCenter_1F_EventScript_15BC70:: @ 815BC70
+ setvar 0x800b, 1
+ call SootopolisCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+EverGrandeCity_PokemonCenter_1F_EventScript_15BC7E:: @ 815BC7E
+ msgbox EverGrandeCity_PokemonCenter_1F_Text_191967, 2
+ end
+
+EverGrandeCity_PokemonCenter_1F_EventScript_15BC87:: @ 815BC87
+ msgbox EverGrandeCity_PokemonCenter_1F_Text_1919EF, 2
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s b/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..27da0d547
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+EverGrandeCity_PokemonCenter_2F_MapScripts:: @ 815BC90
+ map_script 2, EverGrandeCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, EverGrandeCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, EverGrandeCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+EverGrandeCity_PokemonCenter_2F_EventScript_15BCA0:: @ 815BCA0
+ call EverGrandeCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+EverGrandeCity_PokemonCenter_2F_EventScript_15BCA6:: @ 815BCA6
+ call EverGrandeCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+EverGrandeCity_PokemonCenter_2F_EventScript_15BCAC:: @ 815BCAC
+ call EverGrandeCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/EverGrandeCity_PokemonLeague.s b/data/scripts/maps/EverGrandeCity_PokemonLeague.s
new file mode 100644
index 000000000..e5179022f
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_PokemonLeague.s
@@ -0,0 +1,126 @@
+EverGrandeCity_PokemonLeague_MapScripts:: @ 815BA75
+ map_script 3, EverGrandeCity_PokemonLeague_MapScript1_15BA7B
+ .byte 0
+
+EverGrandeCity_PokemonLeague_MapScript1_15BA7B:: @ 815BA7B
+ sethealplace 20
+ setflag 2132
+ checkflag 263
+ callif 0, EverGrandeCity_PokemonLeague_EventScript_15BA8B
+ end
+
+EverGrandeCity_PokemonLeague_EventScript_15BA8B:: @ 815BA8B
+ movespriteperm 3, 9, 2
+ movespriteperm 4, 10, 2
+ return
+
+EverGrandeCity_PokemonLeague_EventScript_15BA9A:: @ 815BA9A
+ setvar 0x800b, 1
+ call EverGrandeCity_PokemonLeague_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+EverGrandeCity_PokemonLeague_EventScript_15BAA8:: @ 815BAA8
+ lock
+ faceplayer
+ message EverGrandeCity_PokemonLeague_Text_1A0BE4
+ waittext
+ pokemart EverGrandeCity_PokemonLeague_Pokemart_15BAC0
+ msgbox EverGrandeCity_PokemonLeague_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15babf, 0x1
+
+EverGrandeCity_PokemonLeague_Pokemart_15BAC0:: @ 815BAC0
+ .2byte ITEM_ULTRA_BALL
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_MAX_POTION
+ .2byte ITEM_FULL_RESTORE
+ .2byte ITEM_FULL_HEAL
+ .2byte ITEM_REVIVE
+ .2byte ITEM_MAX_REPEL
+ .2byte ITEM_NONE
+ release
+ end
+
+EverGrandeCity_PokemonLeague_EventScript_15BAD2:: @ 815BAD2
+ lockall
+ checkflag 263
+ jumpeq EverGrandeCity_PokemonLeague_EventScript_15BB57
+ getplayerxy 0x4000, 0x4001
+ compare 0x4000, 11
+ callif 4, EverGrandeCity_PokemonLeague_EventScript_15BB34
+ compare 0x4000, 8
+ callif 3, EverGrandeCity_PokemonLeague_EventScript_15BB3F
+ message EverGrandeCity_PokemonLeague_Text_1916FD
+ waittext
+ pause 75
+ checkflag 2060
+ jumpif 0, EverGrandeCity_PokemonLeague_EventScript_15BB4A
+ closebutton
+ move 3, EverGrandeCity_PokemonLeague_Movement_15BB7E
+ move 4, EverGrandeCity_PokemonLeague_Movement_15BB81
+ waitmove 0
+ pause 10
+ fanfare 369
+ message EverGrandeCity_PokemonLeague_Text_191804
+ waittext
+ waitfanfare
+ closebutton
+ moveoffscreen 3
+ moveoffscreen 4
+ setflag 263
+ releaseall
+ end
+
+EverGrandeCity_PokemonLeague_EventScript_15BB34:: @ 815BB34
+ move 255, EverGrandeCity_PokemonLeague_Movement_15BB76
+ waitmove 0
+ return
+
+EverGrandeCity_PokemonLeague_EventScript_15BB3F:: @ 815BB3F
+ move 255, EverGrandeCity_PokemonLeague_Movement_15BB7A
+ waitmove 0
+ return
+
+EverGrandeCity_PokemonLeague_EventScript_15BB4A:: @ 815BB4A
+ playsfx 32
+ msgbox EverGrandeCity_PokemonLeague_Text_19179C, 4
+ releaseall
+ end
+
+EverGrandeCity_PokemonLeague_EventScript_15BB57:: @ 815BB57
+ move LAST_TALKED, EverGrandeCity_PokemonLeague_Movement_1A0839
+ waitmove 0
+ msgbox EverGrandeCity_PokemonLeague_Text_191804, 4
+ closebutton
+ move LAST_TALKED, EverGrandeCity_PokemonLeague_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+EverGrandeCity_PokemonLeague_Movement_15BB76:: @ 815BB76
+ step_down
+ step_left
+ step_26
+ step_end
+
+EverGrandeCity_PokemonLeague_Movement_15BB7A:: @ 815BB7A
+ step_down
+ step_right
+ step_26
+ step_end
+
+EverGrandeCity_PokemonLeague_Movement_15BB7E:: @ 815BB7E
+ step_left
+ step_25
+ step_end
+
+EverGrandeCity_PokemonLeague_Movement_15BB81:: @ 815BB81
+ step_right
+ step_25
+ step_end
+
diff --git a/data/scripts/maps/EverGrandeCity_SidneysRoom.s b/data/scripts/maps/EverGrandeCity_SidneysRoom.s
new file mode 100644
index 000000000..02d8107d7
--- /dev/null
+++ b/data/scripts/maps/EverGrandeCity_SidneysRoom.s
@@ -0,0 +1,64 @@
+EverGrandeCity_SidneysRoom_MapScripts:: @ 815B53F
+ map_script 1, EverGrandeCity_SidneysRoom_MapScript1_15B54F
+ map_script 4, EverGrandeCity_SidneysRoom_MapScript2_15B570
+ map_script 2, EverGrandeCity_SidneysRoom_MapScript2_15B57F
+ .byte 0
+
+EverGrandeCity_SidneysRoom_MapScript1_15B54F:: @ 815B54F
+ checkflag 1245
+ callif 1, EverGrandeCity_SidneysRoom_EventScript_15B564
+ compare 0x409c, 1
+ callif 1, EverGrandeCity_SidneysRoom_EventScript_15B56A
+ end
+
+EverGrandeCity_SidneysRoom_EventScript_15B564:: @ 815B564
+ call EverGrandeCity_SidneysRoom_EventScript_1A0757
+ return
+
+EverGrandeCity_SidneysRoom_EventScript_15B56A:: @ 815B56A
+ call EverGrandeCity_SidneysRoom_EventScript_1A07FA
+ return
+
+EverGrandeCity_DrakesRoom_MapScript2_15B570:: @ 815B570
+EverGrandeCity_SidneysRoom_MapScript2_15B570:: @ 815B570
+ map_script_2 0x4001, 0, EverGrandeCity_SidneysRoom_EventScript_15B57A
+ .2byte 0
+
+EverGrandeCity_SidneysRoom_EventScript_15B57A:: @ 815B57A
+ spriteface 255, 2
+ end
+
+EverGrandeCity_SidneysRoom_MapScript2_15B57F:: @ 815B57F
+ map_script_2 0x409c, 0, EverGrandeCity_SidneysRoom_EventScript_15B589
+ .2byte 0
+
+EverGrandeCity_SidneysRoom_EventScript_15B589:: @ 815B589
+ lockall
+ call EverGrandeCity_SidneysRoom_EventScript_1A0710
+ setvar 0x409c, 1
+ releaseall
+ end
+
+EverGrandeCity_SidneysRoom_EventScript_15B596:: @ 815B596
+ lock
+ faceplayer
+ checkflag 1245
+ jumpeq EverGrandeCity_SidneysRoom_EventScript_15B5BD
+ playmusic 450, 0
+ msgbox EverGrandeCity_SidneysRoom_Text_190728, 4
+ trainerbattle 3, 261, 0, EverGrandeCity_SidneysRoom_Text_190823
+ jump EverGrandeCity_SidneysRoom_EventScript_15B5C7
+ end
+
+EverGrandeCity_SidneysRoom_EventScript_15B5BD:: @ 815B5BD
+ msgbox EverGrandeCity_SidneysRoom_Text_19086D, 4
+ release
+ end
+
+EverGrandeCity_SidneysRoom_EventScript_15B5C7:: @ 815B5C7
+ setflag 1245
+ call EverGrandeCity_SidneysRoom_EventScript_1A0693
+ msgbox EverGrandeCity_SidneysRoom_Text_19086D, 4
+ release
+ end
+
diff --git a/data/scripts/maps/FallarborTown.s b/data/scripts/maps/FallarborTown.s
new file mode 100644
index 000000000..a2e3865c3
--- /dev/null
+++ b/data/scripts/maps/FallarborTown.s
@@ -0,0 +1,57 @@
+FallarborTown_MapScripts:: @ 814E7E0
+ map_script 3, FallarborTown_MapScript1_14E7E6
+ .byte 0
+
+FallarborTown_MapScript1_14E7E6:: @ 814E7E6
+ setflag 2067
+ setvar 0x4086, 0
+ setflag 800
+ clearflag 270
+ end
+
+FallarborTown_EventScript_14E7F5:: @ 814E7F5
+ lock
+ faceplayer
+ checkflag 139
+ jumpeq FallarborTown_EventScript_14E80A
+ msgbox FallarborTown_Text_16C7FF, 4
+ release
+ end
+
+FallarborTown_EventScript_14E80A:: @ 814E80A
+ msgbox FallarborTown_Text_16C855, 4
+ release
+ end
+
+FallarborTown_EventScript_14E814:: @ 814E814
+ msgbox FallarborTown_Text_16C8D6, 2
+ end
+
+FallarborTown_EventScript_14E81D:: @ 814E81D
+ msgbox FallarborTown_Text_16C941, 2
+ end
+
+FallarborTown_EventScript_14E826:: @ 814E826
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZURILL, 0
+ msgbox FallarborTown_Text_16C92C, 4
+ waitpokecry
+ release
+ end
+
+FallarborTown_EventScript_14E839:: @ 814E839
+ msgbox FallarborTown_Text_16CA39, 3
+ end
+
+FallarborTown_EventScript_14E842:: @ 814E842
+MeteorFalls_1F_1R_EventScript_14E842:: @ 814E842
+MeteorFalls_1F_2R_EventScript_14E842:: @ 814E842
+ msgbox FallarborTown_Text_16CA83, 3
+ end
+
+FallarborTown_EventScript_14E84B:: @ 814E84B
+ msgbox FallarborTown_Text_16CAB9, 3
+ end
+
diff --git a/data/scripts/maps/FallarborTown_ContestHall.s b/data/scripts/maps/FallarborTown_ContestHall.s
new file mode 100644
index 000000000..74deba311
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_ContestHall.s
@@ -0,0 +1,19 @@
+FallarborTown_ContestHall_MapScripts:: @ 8153ACE
+ .byte 0
+
+FallarborTown_ContestHall_EventScript_153ACF:: @ 8153ACF
+ msgbox FallarborTown_ContestHall_Text_177335, 2
+ end
+
+FallarborTown_ContestHall_EventScript_153AD8:: @ 8153AD8
+ msgbox FallarborTown_ContestHall_Text_1773C6, 2
+ end
+
+FallarborTown_ContestHall_EventScript_153AE1:: @ 8153AE1
+ msgbox FallarborTown_ContestHall_Text_177437, 2
+ end
+
+FallarborTown_ContestHall_EventScript_153AEA:: @ 8153AEA
+ msgbox FallarborTown_ContestHall_Text_1774B1, 3
+ end
+
diff --git a/data/scripts/maps/FallarborTown_ContestLobby.s b/data/scripts/maps/FallarborTown_ContestLobby.s
new file mode 100644
index 000000000..bad7e79d2
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_ContestLobby.s
@@ -0,0 +1,122 @@
+FallarborTown_ContestLobby_MapScripts:: @ 81539C1
+ map_script 3, FallarborTown_ContestLobby_MapScript1_1539C7
+ .byte 0
+
+FallarborTown_ContestLobby_MapScript1_1539C7:: @ 81539C7
+ call FallarborTown_ContestLobby_EventScript_1AE188
+ end
+
+FallarborTown_ContestLobby_EventScript_1539CD:: @ 81539CD
+ setvar 0x800b, 6
+ setvar 0x8010, 1
+ call FallarborTown_ContestLobby_EventScript_1A4E92
+ call FallarborTown_ContestLobby_EventScript_1539F8
+ special 83
+ call FallarborTown_ContestLobby_EventScript_15FBDB
+ setvar 0x4088, 2
+ warp LinkContestRoom1, 255, 7, 5
+ waitstate
+ end
+
+FallarborTown_ContestLobby_EventScript_1539F8:: @ 81539F8
+ lockall
+ move 1, FallarborTown_ContestLobby_Movement_153A7C
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 545, 1
+ setmaptile 4, 3, 609, 1
+ special 142
+ move 1, FallarborTown_ContestLobby_Movement_153A7F
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 721, 1
+ setmaptile 4, 3, 729, 1
+ special 142
+ pause 20
+ move 1, FallarborTown_ContestLobby_Movement_153A8C
+ waitmove 0
+ move 255, FallarborTown_ContestLobby_Movement_153A7A
+ waitmove 0
+ msgbox FallarborTown_ContestLobby_Text_1A6832, 4
+ closebutton
+ move 1, FallarborTown_ContestLobby_Movement_153A83
+ move 255, FallarborTown_ContestLobby_Movement_153A70
+ waitmove 0
+ releaseall
+ return
+
+FallarborTown_ContestLobby_Movement_153A70:: @ 8153A70
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+FallarborTown_ContestLobby_Movement_153A7A:: @ 8153A7A
+ step_27
+ step_end
+
+FallarborTown_ContestLobby_Movement_153A7C:: @ 8153A7C
+ step_left
+ step_25
+ step_end
+
+FallarborTown_ContestLobby_Movement_153A7F:: @ 8153A7F
+ step_down
+ step_down
+ step_26
+ step_end
+
+FallarborTown_ContestLobby_Movement_153A83:: @ 8153A83
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+FallarborTown_ContestLobby_Movement_153A8C:: @ 8153A8C
+ step_28
+ step_end
+
+FallarborTown_ContestLobby_EventScript_153A8E:: @ 8153A8E
+ msgbox FallarborTown_ContestLobby_Text_177141, 2
+ end
+
+FallarborTown_ContestLobby_EventScript_153A97:: @ 8153A97
+ checkflag 270
+ jumpeq FallarborTown_ContestLobby_EventScript_153AA9
+ msgbox FallarborTown_ContestLobby_Text_177246, 2
+ end
+
+FallarborTown_ContestLobby_EventScript_153AA9:: @ 8153AA9
+ msgbox FallarborTown_ContestLobby_Text_1772D8, 2
+ end
+
+FallarborTown_ContestLobby_EventScript_153AB2:: @ 8153AB2
+ msgbox FallarborTown_ContestLobby_Text_1771F2, 2
+ end
+
+FallarborTown_ContestLobby_EventScript_153ABB:: @ 8153ABB
+ lockall
+ fadescreen 1
+ showcontestwinner 2
+ releaseall
+ end
+
+FallarborTown_ContestLobby_EventScript_153AC2:: @ 8153AC2
+ lockall
+ special 259
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/FallarborTown_House1.s b/data/scripts/maps/FallarborTown_House1.s
new file mode 100644
index 000000000..379c17ef9
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_House1.s
@@ -0,0 +1,78 @@
+FallarborTown_House1_MapScripts:: @ 8153BAE
+ map_script 3, FallarborTown_House1_MapScript1_153BB4
+ .byte 0
+
+FallarborTown_House1_MapScript1_153BB4:: @ 8153BB4
+ end
+
+FallarborTown_House1_EventScript_153BB5:: @ 8153BB5
+ lock
+ faceplayer
+ checkflag 229
+ jumpeq FallarborTown_House1_EventScript_153C54
+ checkitem ITEM_METEORITE, 1
+ compare RESULT, 1
+ jumpeq FallarborTown_House1_EventScript_153BDA
+ msgbox FallarborTown_House1_Text_177755, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153BDA:: @ 8153BDA
+ checkflag 2
+ callif 0, FallarborTown_House1_EventScript_153C2D
+ checkflag 2
+ callif 1, FallarborTown_House1_EventScript_153C3E
+ compare RESULT, 0
+ jumpeq FallarborTown_House1_EventScript_153C47
+ msgbox FallarborTown_House1_Text_1778C4, 4
+ giveitem ITEM_TM27
+ compare RESULT, 0
+ jumpeq FallarborTown_House1_EventScript_1A029B
+ setvar 0x8004, 280
+ call FallarborTown_House1_EventScript_1A067F
+ setflag 229
+ msgbox FallarborTown_House1_Text_177910, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153C2D:: @ 8153C2D
+ msgbox FallarborTown_House1_Text_177755, 4
+ msgbox FallarborTown_House1_Text_17780E, 5
+ return
+
+FallarborTown_House1_EventScript_153C3E:: @ 8153C3E
+ msgbox FallarborTown_House1_Text_1779B8, 5
+ return
+
+FallarborTown_House1_EventScript_153C47:: @ 8153C47
+ setflag 2
+ msgbox FallarborTown_House1_Text_17797D, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153C54:: @ 8153C54
+ msgbox FallarborTown_House1_Text_177910, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153C5E:: @ 8153C5E
+ lock
+ faceplayer
+ checkflag 229
+ jumpeq FallarborTown_House1_EventScript_153C86
+ checkflag 139
+ jumpeq FallarborTown_House1_EventScript_153C7C
+ msgbox FallarborTown_House1_Text_177A2B, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153C7C:: @ 8153C7C
+ msgbox FallarborTown_House1_Text_177A7C, 4
+ release
+ end
+
+FallarborTown_House1_EventScript_153C86:: @ 8153C86
+ msgbox FallarborTown_House1_Text_177ABB, 4
+ release
+ end
+
diff --git a/data/scripts/maps/FallarborTown_House2.s b/data/scripts/maps/FallarborTown_House2.s
new file mode 100644
index 000000000..e63074905
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_House2.s
@@ -0,0 +1,64 @@
+FallarborTown_House2_MapScripts:: @ 8153C90
+ .byte 0
+
+FallarborTown_House2_EventScript_153C91:: @ 8153C91
+ lockall
+ move 1, FallarborTown_House2_Movement_1A0839
+ waitmove 0
+ checkflag 1
+ jumpeq FallarborTown_House2_EventScript_153CB6
+ msgbox FallarborTown_House2_Text_177AF4, 4
+ setflag 1
+ jump FallarborTown_House2_EventScript_153CB6
+ end
+
+FallarborTown_House2_EventScript_153CB6:: @ 8153CB6
+ checkitem ITEM_HEART_SCALE, 1
+ compare RESULT, 0
+ jumpeq FallarborTown_House2_EventScript_153D60
+ msgbox FallarborTown_House2_Text_177BDB, 5
+ switch RESULT
+ case 0, FallarborTown_House2_EventScript_153D60
+ jump FallarborTown_House2_EventScript_153CE4
+ end
+
+FallarborTown_House2_EventScript_153CE4:: @ 8153CE4
+ msgbox FallarborTown_House2_Text_177C3F, 4
+ special 219
+ waitstate
+ compare 0x8004, 255
+ jumpeq FallarborTown_House2_EventScript_153D60
+ special 328
+ compare RESULT, 1
+ jumpeq FallarborTown_House2_EventScript_153D52
+ compare 0x8005, 0
+ jumpeq FallarborTown_House2_EventScript_153D44
+ jump FallarborTown_House2_EventScript_153D1A
+ end
+
+FallarborTown_House2_EventScript_153D1A:: @ 8153D1A
+ msgbox FallarborTown_House2_Text_177C5D, 4
+ special 224
+ waitstate
+ compare 0x8004, 0
+ jumpeq FallarborTown_House2_EventScript_153CE4
+ msgbox FallarborTown_House2_Text_177CC3, 4
+ removeitem ITEM_HEART_SCALE, 1
+ jump FallarborTown_House2_EventScript_153D60
+ end
+
+FallarborTown_House2_EventScript_153D44:: @ 8153D44
+ msgbox FallarborTown_House2_Text_177C78, 4
+ jump FallarborTown_House2_EventScript_153CE4
+ end
+
+FallarborTown_House2_EventScript_153D52:: @ 8153D52
+ msgbox FallarborTown_House2_Text_177D33, 4
+ jump FallarborTown_House2_EventScript_153CE4
+ end
+
+FallarborTown_House2_EventScript_153D60:: @ 8153D60
+ msgbox FallarborTown_House2_Text_177CEF, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/FallarborTown_Mart.s b/data/scripts/maps/FallarborTown_Mart.s
new file mode 100644
index 000000000..123128d22
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_Mart.s
@@ -0,0 +1,50 @@
+FallarborTown_Mart_MapScripts:: @ 8153966
+ .byte 0
+
+FallarborTown_Mart_EventScript_153967:: @ 8153967
+ lock
+ faceplayer
+ message FallarborTown_Mart_Text_1A0BE4
+ waittext
+ pokemart FallarborTown_Mart_Pokemart_153980
+ msgbox FallarborTown_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15397e, 0x2
+
+FallarborTown_Mart_Pokemart_153980:: @ 8153980
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_SUPER_REPEL
+ .2byte ITEM_X_SPECIAL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_DIRE_HIT
+ .2byte ITEM_GUARD_SPEC
+ .2byte ITEM_NONE
+ release
+ end
+
+FallarborTown_Mart_EventScript_15399C:: @ 815399C
+ msgbox FallarborTown_Mart_Text_176FF0, 2
+ end
+
+FallarborTown_Mart_EventScript_1539A5:: @ 81539A5
+ msgbox FallarborTown_Mart_Text_1770E2, 2
+ end
+
+FallarborTown_Mart_EventScript_1539AE:: @ 81539AE
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_SKITTY, 0
+ msgbox FallarborTown_Mart_Text_1770D3, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_1F.s b/data/scripts/maps/FallarborTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..04a08eeb3
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_1F.s
@@ -0,0 +1,82 @@
+FallarborTown_PokemonCenter_1F_MapScripts:: @ 8153AF3
+ map_script 3, FallarborTown_PokemonCenter_1F_MapScript1_153AF9
+ .byte 0
+
+FallarborTown_PokemonCenter_1F_MapScript1_153AF9:: @ 8153AF9
+ sethealplace 17
+ call FallarborTown_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B02:: @ 8153B02
+ setvar 0x800b, 1
+ call FallarborTown_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B10:: @ 8153B10
+ msgbox FallarborTown_PokemonCenter_1F_Text_17768C, 2
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B19:: @ 8153B19
+ msgbox FallarborTown_PokemonCenter_1F_Text_1776F5, 2
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B22:: @ 8153B22
+ lock
+ faceplayer
+ msgbox FallarborTown_PokemonCenter_1F_Text_1774D4, 4
+ closebutton
+ switch FACING
+ case 2, FallarborTown_PokemonCenter_1F_EventScript_153B49
+ case 3, FallarborTown_PokemonCenter_1F_EventScript_153B59
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B49:: @ 8153B49
+ move 4, FallarborTown_PokemonCenter_1F_Movement_153B74
+ waitmove 0
+ jump FallarborTown_PokemonCenter_1F_EventScript_153B69
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B59:: @ 8153B59
+ move 4, FallarborTown_PokemonCenter_1F_Movement_153B81
+ waitmove 0
+ jump FallarborTown_PokemonCenter_1F_EventScript_153B69
+ end
+
+FallarborTown_PokemonCenter_1F_EventScript_153B69:: @ 8153B69
+ playsfx 18
+ disappear 4
+ clearflag 870
+ release
+ end
+
+FallarborTown_PokemonCenter_1F_Movement_153B74:: @ 8153B74
+ step_right
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_13
+ step_end
+
+FallarborTown_PokemonCenter_1F_Movement_153B81:: @ 8153B81
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_13
+ step_end
+
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_2F.s b/data/scripts/maps/FallarborTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..bc3fb9acb
--- /dev/null
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+FallarborTown_PokemonCenter_2F_MapScripts:: @ 8153B8C
+ map_script 2, FallarborTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, FallarborTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, FallarborTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+FallarborTown_PokemonCenter_2F_EventScript_153B9C:: @ 8153B9C
+ call FallarborTown_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+FallarborTown_PokemonCenter_2F_EventScript_153BA2:: @ 8153BA2
+ call FallarborTown_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+FallarborTown_PokemonCenter_2F_EventScript_153BA8:: @ 8153BA8
+ call FallarborTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/FieryPath.s b/data/scripts/maps/FieryPath.s
new file mode 100644
index 000000000..d89bd3476
--- /dev/null
+++ b/data/scripts/maps/FieryPath.s
@@ -0,0 +1,8 @@
+FieryPath_MapScripts:: @ 815D318
+ map_script 3, FieryPath_MapScript1_15D31E
+ .byte 0
+
+FieryPath_MapScript1_15D31E:: @ 815D31E
+ setflag 2122
+ end
+
diff --git a/data/scripts/maps/FortreeCity.s b/data/scripts/maps/FortreeCity.s
new file mode 100644
index 000000000..96248b265
--- /dev/null
+++ b/data/scripts/maps/FortreeCity.s
@@ -0,0 +1,92 @@
+FortreeCity_MapScripts:: @ 814C943
+ map_script 3, FortreeCity_MapScript1_14C94E
+ map_script 5, FortreeCity_MapScript1_14C952
+ .byte 0
+
+FortreeCity_MapScript1_14C94E:: @ 814C94E
+ setflag 2074
+ end
+
+FortreeCity_MapScript1_14C952:: @ 814C952
+ tileeffect 2
+ end
+
+FortreeCity_EventScript_14C955:: @ 814C955
+ msgbox FortreeCity_Text_167577, 2
+ end
+
+FortreeCity_EventScript_14C95E:: @ 814C95E
+ lock
+ faceplayer
+ checkflag 295
+ jumpeq FortreeCity_EventScript_14C973
+ msgbox FortreeCity_Text_1675C2, 4
+ release
+ end
+
+FortreeCity_EventScript_14C973:: @ 814C973
+ msgbox FortreeCity_Text_167642, 4
+ release
+ end
+
+FortreeCity_EventScript_14C97D:: @ 814C97D
+ msgbox FortreeCity_Text_16768A, 2
+ end
+
+FortreeCity_EventScript_14C986:: @ 814C986
+ msgbox FortreeCity_Text_16770E, 2
+ end
+
+FortreeCity_EventScript_14C98F:: @ 814C98F
+ msgbox FortreeCity_Text_1677BD, 2
+ end
+
+FortreeCity_EventScript_14C998:: @ 814C998
+ msgbox FortreeCity_Text_16782C, 2
+ end
+
+FortreeCity_EventScript_14C9A1:: @ 814C9A1
+ msgbox FortreeCity_Text_16792F, 3
+ end
+
+FortreeCity_EventScript_14C9AA:: @ 814C9AA
+ msgbox FortreeCity_Text_167969, 3
+ end
+
+FortreeCity_EventScript_14C9B3:: @ 814C9B3
+ lock
+ faceplayer
+ checkitem ITEM_DEVON_SCOPE, 1
+ compare RESULT, 1
+ jumpeq FortreeCity_EventScript_14C9CF
+ msgbox FortreeCity_Text_167868, 4
+ release
+ end
+
+FortreeCity_EventScript_14C9CF:: @ 814C9CF
+ msgbox FortreeCity_Text_16788B, 5
+ compare RESULT, 1
+ jumpeq FortreeCity_EventScript_14C9E4
+ release
+ end
+
+FortreeCity_EventScript_14C9E4:: @ 814C9E4
+ msgbox FortreeCity_Text_1678CB, 4
+ closebutton
+ move LAST_TALKED, FortreeCity_Movement_1A0662
+ waitmove 0
+ checksound
+ pokecry SPECIES_KECLEON, 2
+ pause 40
+ waitpokecry
+ move LAST_TALKED, FortreeCity_Movement_14CA13
+ waitmove 0
+ disappear LAST_TALKED
+ setflag 295
+ release
+ end
+
+FortreeCity_Movement_14CA13:: @ 814CA13
+ step_right
+ step_end
+
diff --git a/data/scripts/maps/FortreeCity_DecorationShop.s b/data/scripts/maps/FortreeCity_DecorationShop.s
new file mode 100644
index 000000000..f006755d4
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_DecorationShop.s
@@ -0,0 +1,61 @@
+FortreeCity_DecorationShop_MapScripts:: @ 8158257
+ .byte 0
+
+FortreeCity_DecorationShop_EventScript_158258:: @ 8158258
+ msgbox FortreeCity_DecorationShop_Text_186A61, 2
+ end
+
+FortreeCity_DecorationShop_EventScript_158261:: @ 8158261
+ msgbox FortreeCity_DecorationShop_Text_186AD6, 2
+ end
+
+FortreeCity_DecorationShop_EventScript_15826A:: @ 815826A
+ lock
+ faceplayer
+ message FortreeCity_DecorationShop_Text_1A0BE4
+ waittext
+ pokemartdecor FortreeCity_DecorationShop_PokemartDecor_158284
+ msgbox FortreeCity_DecorationShop_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x158281, 0x3
+
+FortreeCity_DecorationShop_PokemartDecor_158284:: @ 8158284
+ .2byte 1
+ .2byte 2
+ .2byte 3
+ .2byte 4
+ .2byte 5
+ .2byte 7
+ .2byte 8
+ .2byte 9
+ .2byte 0
+ release
+ end
+
+FortreeCity_DecorationShop_EventScript_158298:: @ 8158298
+ lock
+ faceplayer
+ message FortreeCity_DecorationShop_Text_1A0BE4
+ waittext
+ pokemartdecor FortreeCity_DecorationShop_PokemartDecor_1582B0
+ msgbox FortreeCity_DecorationShop_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x1582af, 0x1
+
+FortreeCity_DecorationShop_PokemartDecor_1582B0:: @ 81582B0
+ .2byte 10
+ .2byte 11
+ .2byte 12
+ .2byte 15
+ .2byte 14
+ .2byte 16
+ .2byte 17
+ .2byte 18
+ .2byte 0
+ release
+ end
+
diff --git a/data/scripts/maps/FortreeCity_Gym.s b/data/scripts/maps/FortreeCity_Gym.s
new file mode 100644
index 000000000..a9d641f57
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_Gym.s
@@ -0,0 +1,104 @@
+FortreeCity_Gym_MapScripts:: @ 8157ED3
+ map_script 3, FortreeCity_Gym_MapScript1_157EDE
+ map_script 4, FortreeCity_Gym_MapScript2_157EE2
+ .byte 0
+
+FortreeCity_Gym_MapScript1_157EDE:: @ 8157EDE
+ special 201
+ end
+
+FortreeCity_Gym_MapScript2_157EE2:: @ 8157EE2
+ map_script_2 0x4000, 16384, FortreeCity_Gym_EventScript_157EEC
+ .2byte 0
+
+FortreeCity_Gym_EventScript_157EEC:: @ 8157EEC
+ special 202
+ end
+
+FortreeCity_Gym_EventScript_157EF0:: @ 8157EF0
+ trainerbattle 1, 270, 0, FortreeCity_Gym_Text_185CCB, FortreeCity_Gym_Text_185DBA, FortreeCity_Gym_EventScript_157F15
+ checkflag 170
+ jumpif 0, FortreeCity_Gym_EventScript_157F3E
+ msgbox FortreeCity_Gym_Text_185F98, 4
+ release
+ end
+
+FortreeCity_Gym_EventScript_157F15:: @ 8157F15
+ message FortreeCity_Gym_Text_185E48
+ waittext
+ call FortreeCity_Gym_EventScript_1A02C5
+ msgbox FortreeCity_Gym_Text_185E73, 4
+ setflag 1225
+ setflag 2060
+ setvar 0x8008, 6
+ call FortreeCity_Gym_EventScript_1A01C0
+ jump FortreeCity_Gym_EventScript_157F3E
+ end
+
+FortreeCity_Gym_EventScript_157F3E:: @ 8157F3E
+ giveitem ITEM_TM40
+ compare RESULT, 0
+ jumpeq FortreeCity_Gym_EventScript_1A029B
+ msgbox FortreeCity_Gym_Text_185F4A, 4
+ setflag 170
+ release
+ end
+
+FortreeCity_Gym_EventScript_157F62:: @ 8157F62
+ trainerbattle 0, 401, 0, FortreeCity_Gym_Text_1859B9, FortreeCity_Gym_Text_1859EA
+ msgbox FortreeCity_Gym_Text_185A02, 6
+ end
+
+FortreeCity_Gym_EventScript_157F79:: @ 8157F79
+ trainerbattle 0, 404, 0, FortreeCity_Gym_Text_185A7F, FortreeCity_Gym_Text_185AEC
+ msgbox FortreeCity_Gym_Text_185B18, 6
+ end
+
+FortreeCity_Gym_EventScript_157F90:: @ 8157F90
+ trainerbattle 0, 654, 0, FortreeCity_Gym_Text_185B8D, FortreeCity_Gym_Text_185BEB
+ msgbox FortreeCity_Gym_Text_185C00, 6
+ end
+
+FortreeCity_Gym_EventScript_157FA7:: @ 8157FA7
+ trainerbattle 0, 655, 0, FortreeCity_Gym_Text_185C45, FortreeCity_Gym_Text_185C7C
+ msgbox FortreeCity_Gym_Text_185C8C, 6
+ end
+
+FortreeCity_Gym_EventScript_157FBE:: @ 8157FBE
+ lock
+ faceplayer
+ checkflag 1225
+ jumpeq FortreeCity_Gym_EventScript_157FD3
+ msgbox FortreeCity_Gym_Text_18589C, 4
+ release
+ end
+
+FortreeCity_Gym_EventScript_157FD3:: @ 8157FD3
+ msgbox FortreeCity_Gym_Text_185994, 4
+ release
+ end
+
+FortreeCity_Gym_EventScript_157FDD:: @ 8157FDD
+ lockall
+ checkflag 2060
+ jumpeq FortreeCity_Gym_EventScript_157FFD
+ jump FortreeCity_Gym_EventScript_158007
+ end
+
+FortreeCity_Gym_EventScript_157FED:: @ 8157FED
+ lockall
+ checkflag 2060
+ jumpeq FortreeCity_Gym_EventScript_157FFD
+ jump FortreeCity_Gym_EventScript_158007
+ end
+
+FortreeCity_Gym_EventScript_157FFD:: @ 8157FFD
+ msgbox FortreeCity_Gym_Text_185FEE, 4
+ releaseall
+ end
+
+FortreeCity_Gym_EventScript_158007:: @ 8158007
+ msgbox FortreeCity_Gym_Text_185FD5, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/FortreeCity_House1.s b/data/scripts/maps/FortreeCity_House1.s
new file mode 100644
index 000000000..827e6cc34
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_House1.s
@@ -0,0 +1,66 @@
+FortreeCity_House1_MapScripts:: @ 8157E12
+ .byte 0
+
+FortreeCity_House1_EventScript_157E13:: @ 8157E13
+ lock
+ faceplayer
+ checkflag 155
+ jumpeq FortreeCity_House1_EventScript_157EAD
+ setvar 0x8008, 1
+ copyvar 0x8004, 0x8008
+ specialval RESULT, 252
+ copyvar 0x8009, RESULT
+ msgbox FortreeCity_House1_Text_18568C, 5
+ compare RESULT, 0
+ jumpeq FortreeCity_House1_EventScript_157E95
+ special 159
+ waitstate
+ copyvar 0x800a, 0x8004
+ compare 0x8004, 255
+ jumpeq FortreeCity_House1_EventScript_157E95
+ copyvar 0x8005, 0x800a
+ specialval RESULT, 255
+ copyvar 0x800b, RESULT
+ comparevars RESULT, 0x8009
+ jumpif 5, FortreeCity_House1_EventScript_157E9F
+ copyvar 0x8004, 0x8008
+ copyvar 0x8005, 0x800a
+ special 253
+ special 254
+ waitstate
+ bufferpoke 0, 0x8009
+ msgbox FortreeCity_House1_Text_1856F7, 4
+ setflag 155
+ release
+ end
+
+FortreeCity_House1_EventScript_157E95:: @ 8157E95
+ msgbox FortreeCity_House1_Text_18577F, 4
+ release
+ end
+
+FortreeCity_House1_EventScript_157E9F:: @ 8157E9F
+ bufferpoke 0, 0x8009
+ msgbox FortreeCity_House1_Text_185737, 4
+ release
+ end
+
+FortreeCity_House1_EventScript_157EAD:: @ 8157EAD
+ msgbox FortreeCity_House1_Text_1857C7, 4
+ release
+ end
+
+FortreeCity_House1_EventScript_157EB7:: @ 8157EB7
+ msgbox FortreeCity_House1_Text_18582A, 2
+ end
+
+FortreeCity_House1_EventScript_157EC0:: @ 8157EC0
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox FortreeCity_House1_Text_185888, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/FortreeCity_House2.s b/data/scripts/maps/FortreeCity_House2.s
new file mode 100644
index 000000000..adf190f5c
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_House2.s
@@ -0,0 +1,46 @@
+FortreeCity_House2_MapScripts:: @ 81580B3
+ .byte 0
+
+FortreeCity_House2_EventScript_1580B4:: @ 81580B4
+ lock
+ faceplayer
+ checkflag 264
+ jumpeq FortreeCity_House2_EventScript_158157
+ checkflag 118
+ callif 0, FortreeCity_House2_EventScript_15814B
+ msgbox FortreeCity_House2_Text_186360, 4
+ multichoice 21, 8, 54, 1
+ switch RESULT
+ case 1, FortreeCity_House2_EventScript_158161
+ msgbox FortreeCity_House2_Text_1863F6, 4
+ multichoice 21, 8, 54, 1
+ switch RESULT
+ case 1, FortreeCity_House2_EventScript_158161
+ msgbox FortreeCity_House2_Text_186455, 4
+ multichoice 21, 8, 54, 1
+ switch RESULT
+ case 0, FortreeCity_House2_EventScript_158161
+ msgbox FortreeCity_House2_Text_1864C6, 4
+ giveitem ITEM_TM10
+ compare RESULT, 0
+ jumpeq FortreeCity_House2_EventScript_1A029B
+ setflag 264
+ msgbox FortreeCity_House2_Text_18652F, 4
+ release
+ end
+
+FortreeCity_House2_EventScript_15814B:: @ 815814B
+ msgbox FortreeCity_House2_Text_186306, 4
+ setflag 118
+ return
+
+FortreeCity_House2_EventScript_158157:: @ 8158157
+ msgbox FortreeCity_House2_Text_18652F, 4
+ release
+ end
+
+FortreeCity_House2_EventScript_158161:: @ 8158161
+ msgbox FortreeCity_House2_Text_186565, 4
+ release
+ end
+
diff --git a/data/scripts/maps/FortreeCity_House3.s b/data/scripts/maps/FortreeCity_House3.s
new file mode 100644
index 000000000..99ff44637
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_House3.s
@@ -0,0 +1,11 @@
+FortreeCity_House3_MapScripts:: @ 815816B
+ .byte 0
+
+FortreeCity_House3_EventScript_15816C:: @ 815816C
+ msgbox FortreeCity_House3_Text_186624, 2
+ end
+
+FortreeCity_House3_EventScript_158175:: @ 8158175
+ msgbox FortreeCity_House3_Text_186745, 2
+ end
+
diff --git a/data/scripts/maps/FortreeCity_House4.s b/data/scripts/maps/FortreeCity_House4.s
new file mode 100644
index 000000000..f48ef1a6d
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_House4.s
@@ -0,0 +1,68 @@
+FortreeCity_House4_MapScripts:: @ 815817E
+ .byte 0
+
+FortreeCity_House4_EventScript_15817F:: @ 815817F
+ msgbox FortreeCity_House4_Text_1867AF, 2
+ end
+
+FortreeCity_House4_EventScript_158188:: @ 8158188
+ lockall
+ checkflag 223
+ jumpeq FortreeCity_House4_EventScript_158204
+ checkflag 224
+ jumpeq FortreeCity_House4_EventScript_1581D6
+ checkflag 222
+ jumpeq FortreeCity_House4_EventScript_1581C2
+ msgbox FortreeCity_House4_Text_186835, 4
+ closebutton
+ setflag 222
+ clearflag 934
+ move 3, FortreeCity_House4_Movement_158218
+ waitmove 0
+ disappear 3
+ releaseall
+ end
+
+FortreeCity_House4_EventScript_1581C2:: @ 81581C2
+ move LAST_TALKED, FortreeCity_House4_Movement_1A0839
+ waitmove 0
+ msgbox FortreeCity_House4_Text_18684E, 4
+ releaseall
+ end
+
+FortreeCity_House4_EventScript_1581D6:: @ 81581D6
+ move LAST_TALKED, FortreeCity_House4_Movement_1A0839
+ waitmove 0
+ msgbox FortreeCity_House4_Text_186881, 4
+ giveitem ITEM_MENTAL_HERB
+ compare RESULT, 0
+ jumpeq FortreeCity_House4_EventScript_1A029B
+ setflag 223
+ releaseall
+ end
+
+FortreeCity_House4_EventScript_158204:: @ 8158204
+ move LAST_TALKED, FortreeCity_House4_Movement_1A0839
+ waitmove 0
+ msgbox FortreeCity_House4_Text_186924, 4
+ releaseall
+ end
+
+FortreeCity_House4_Movement_158218:: @ 8158218
+ step_15
+ step_15
+ step_18
+ step_25
+ step_13
+ step_end
+
+FortreeCity_House4_EventScript_15821E:: @ 815821E
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox FortreeCity_House4_Text_18695C, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/FortreeCity_House5.s b/data/scripts/maps/FortreeCity_House5.s
new file mode 100644
index 000000000..3c92a619c
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_House5.s
@@ -0,0 +1,21 @@
+FortreeCity_House5_MapScripts:: @ 8158231
+ .byte 0
+
+FortreeCity_House5_EventScript_158232:: @ 8158232
+ msgbox FortreeCity_House5_Text_18696D, 2
+ end
+
+FortreeCity_House5_EventScript_15823B:: @ 815823B
+ msgbox FortreeCity_House5_Text_1869D6, 2
+ end
+
+FortreeCity_House5_EventScript_158244:: @ 8158244
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox FortreeCity_House5_Text_186A4F, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/FortreeCity_Mart.s b/data/scripts/maps/FortreeCity_Mart.s
new file mode 100644
index 000000000..6c9cf6298
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_Mart.s
@@ -0,0 +1,42 @@
+FortreeCity_Mart_MapScripts:: @ 8158066
+ .byte 0
+
+FortreeCity_Mart_EventScript_158067:: @ 8158067
+ lock
+ faceplayer
+ message FortreeCity_Mart_Text_1A0BE4
+ waittext
+ pokemart FortreeCity_Mart_Pokemart_158080
+ msgbox FortreeCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15807e, 0x2
+
+FortreeCity_Mart_Pokemart_158080:: @ 8158080
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_ULTRA_BALL
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_REVIVE
+ .2byte ITEM_SUPER_REPEL
+ .2byte ITEM_WOOD_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+FortreeCity_Mart_EventScript_158098:: @ 8158098
+ msgbox FortreeCity_Mart_Text_1861EF, 2
+ end
+
+FortreeCity_Mart_EventScript_1580A1:: @ 81580A1
+ msgbox FortreeCity_Mart_Text_186251, 2
+ end
+
+FortreeCity_Mart_EventScript_1580AA:: @ 81580AA
+ msgbox FortreeCity_Mart_Text_1862CA, 2
+ end
+
diff --git a/data/scripts/maps/FortreeCity_PokemonCenter_1F.s b/data/scripts/maps/FortreeCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..d8a8945c9
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_PokemonCenter_1F.s
@@ -0,0 +1,28 @@
+FortreeCity_PokemonCenter_1F_MapScripts:: @ 8158011
+ map_script 3, FortreeCity_PokemonCenter_1F_MapScript1_158017
+ .byte 0
+
+FortreeCity_PokemonCenter_1F_MapScript1_158017:: @ 8158017
+ sethealplace 7
+ end
+
+FortreeCity_PokemonCenter_1F_EventScript_15801B:: @ 815801B
+ setvar 0x800b, 1
+ call FortreeCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+FortreeCity_PokemonCenter_1F_EventScript_158029:: @ 8158029
+ msgbox FortreeCity_PokemonCenter_1F_Text_186027, 2
+ end
+
+FortreeCity_PokemonCenter_1F_EventScript_158032:: @ 8158032
+ msgbox FortreeCity_PokemonCenter_1F_Text_186086, 2
+ end
+
+FortreeCity_PokemonCenter_1F_EventScript_15803B:: @ 815803B
+ msgbox FortreeCity_PokemonCenter_1F_Text_186138, 2
+ end
+
diff --git a/data/scripts/maps/FortreeCity_PokemonCenter_2F.s b/data/scripts/maps/FortreeCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..0b63f5670
--- /dev/null
+++ b/data/scripts/maps/FortreeCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+FortreeCity_PokemonCenter_2F_MapScripts:: @ 8158044
+ map_script 2, FortreeCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, FortreeCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, FortreeCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+FortreeCity_PokemonCenter_2F_EventScript_158054:: @ 8158054
+ call FortreeCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+FortreeCity_PokemonCenter_2F_EventScript_15805A:: @ 815805A
+ call FortreeCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+FortreeCity_PokemonCenter_2F_EventScript_158060:: @ 8158060
+ call FortreeCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/GraniteCave_1F.s b/data/scripts/maps/GraniteCave_1F.s
new file mode 100644
index 000000000..5e05f8602
--- /dev/null
+++ b/data/scripts/maps/GraniteCave_1F.s
@@ -0,0 +1,20 @@
+GraniteCave_1F_MapScripts:: @ 815CBA6
+ .byte 0
+
+GraniteCave_1F_EventScript_15CBA7:: @ 815CBA7
+ lock
+ faceplayer
+ checkflag 109
+ jumpeq GraniteCave_1F_EventScript_15CBD3
+ msgbox GraniteCave_1F_Text_194917, 4
+ giveitem ITEM_HM05
+ setflag 109
+ msgbox GraniteCave_1F_Text_194A3E, 4
+ release
+ end
+
+GraniteCave_1F_EventScript_15CBD3:: @ 815CBD3
+ msgbox GraniteCave_1F_Text_194A3E, 4
+ release
+ end
+
diff --git a/data/scripts/maps/GraniteCave_B1F.s b/data/scripts/maps/GraniteCave_B1F.s
new file mode 100644
index 000000000..538c58118
--- /dev/null
+++ b/data/scripts/maps/GraniteCave_B1F.s
@@ -0,0 +1,11 @@
+GraniteCave_B1F_MapScripts:: @ 815CBDD
+ map_script 2, GraniteCave_B1F_MapScript2_1C6BB5
+ map_script 3, GraniteCave_B1F_MapScript1_1C6BBF
+ map_script 5, GraniteCave_B1F_MapScript1_15CBED
+ .byte 0
+
+GraniteCave_B1F_MapScript1_15CBED:: @ 815CBED
+ tileeffect 7
+ warp5 GraniteCave_B2F, 255, 0, 0
+ end
+
diff --git a/data/scripts/maps/GraniteCave_B2F.s b/data/scripts/maps/GraniteCave_B2F.s
new file mode 100644
index 000000000..d28614032
--- /dev/null
+++ b/data/scripts/maps/GraniteCave_B2F.s
@@ -0,0 +1,3 @@
+GraniteCave_B2F_MapScripts:: @ 815CBF8
+ .byte 0
+
diff --git a/data/scripts/maps/GraniteCave_StevensRoom.s b/data/scripts/maps/GraniteCave_StevensRoom.s
new file mode 100644
index 000000000..55dccda5f
--- /dev/null
+++ b/data/scripts/maps/GraniteCave_StevensRoom.s
@@ -0,0 +1,63 @@
+GraniteCave_StevensRoom_MapScripts:: @ 815CBF9
+ .byte 0
+
+GraniteCave_StevensRoom_EventScript_15CBFA:: @ 815CBFA
+ lock
+ faceplayer
+ msgbox GraniteCave_StevensRoom_Text_194AE5, 4
+ setvar 0x8004, 274
+ call GraniteCave_StevensRoom_EventScript_1A067F
+ setflag 189
+ msgbox GraniteCave_StevensRoom_Text_194BDD, 4
+ giveitem ITEM_TM47
+ compare RESULT, 0
+ callif 1, GraniteCave_StevensRoom_EventScript_15CC83
+ msgbox GraniteCave_StevensRoom_Text_194C8D, 4
+ closebutton
+ compare FACING, 2
+ callif 1, GraniteCave_StevensRoom_EventScript_15CC6D
+ compare FACING, 1
+ callif 1, GraniteCave_StevensRoom_EventScript_15CC78
+ compare FACING, 3
+ callif 1, GraniteCave_StevensRoom_EventScript_15CC6D
+ compare FACING, 4
+ callif 1, GraniteCave_StevensRoom_EventScript_15CC6D
+ playsfx 9
+ disappear 1
+ release
+ end
+
+GraniteCave_StevensRoom_EventScript_15CC6D:: @ 815CC6D
+ move 1, GraniteCave_StevensRoom_Movement_15CC8C
+ waitmove 0
+ return
+
+GraniteCave_StevensRoom_EventScript_15CC78:: @ 815CC78
+ move 1, GraniteCave_StevensRoom_Movement_15CC93
+ waitmove 0
+ return
+
+GraniteCave_StevensRoom_EventScript_15CC83:: @ 815CC83
+ msgbox GraniteCave_StevensRoom_Text_194D43, 4
+ return
+
+GraniteCave_StevensRoom_Movement_15CC8C:: @ 815CC8C
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_13
+ step_end
+
+GraniteCave_StevensRoom_Movement_15CC93:: @ 815CC93
+ step_left
+ step_up
+ step_up
+ step_up
+ step_right
+ step_up
+ step_up
+ step_13
+ step_end
+
diff --git a/data/scripts/maps/InsideOfTruck.s b/data/scripts/maps/InsideOfTruck.s
new file mode 100644
index 000000000..e411adde2
--- /dev/null
+++ b/data/scripts/maps/InsideOfTruck.s
@@ -0,0 +1,53 @@
+InsideOfTruck_MapScripts:: @ 815FBFF
+ map_script 1, InsideOfTruck_MapScript1_15FC0A
+ map_script 5, InsideOfTruck_MapScript1_15FC26
+ .byte 0
+
+InsideOfTruck_MapScript1_15FC0A:: @ 815FC0A
+ setmaptile 4, 1, 520, 0
+ setmaptile 4, 2, 528, 0
+ setmaptile 4, 3, 536, 0
+ end
+
+InsideOfTruck_MapScript1_15FC26:: @ 815FC26
+ tileeffect 5
+ end
+
+InsideOfTruck_EventScript_15FC29:: @ 815FC29
+ lockall
+ setflag 0x4000
+ checkgender
+ compare RESULT, 0
+ jumpeq InsideOfTruck_EventScript_15FC45
+ compare RESULT, 1
+ jumpeq InsideOfTruck_EventScript_15FC68
+ end
+
+InsideOfTruck_EventScript_15FC45:: @ 815FC45
+ sethealplace 1
+ setvar 0x4092, 1
+ setflag 759
+ setflag 762
+ setflag 784
+ setflag 760
+ setvar 0x408c, 1
+ warpplace LittlerootTown, 255, 3, 10
+ releaseall
+ end
+
+InsideOfTruck_EventScript_15FC68:: @ 815FC68
+ sethealplace 2
+ setvar 0x4092, 2
+ setflag 758
+ setflag 761
+ setflag 785
+ setflag 722
+ setvar 0x4082, 1
+ warpplace LittlerootTown, 255, 12, 10
+ releaseall
+ end
+
+InsideOfTruck_EventScript_15FC8B:: @ 815FC8B
+ msgbox InsideOfTruck_Text_198FAD, 3
+ end
+
diff --git a/data/scripts/maps/IslandCave.s b/data/scripts/maps/IslandCave.s
new file mode 100644
index 000000000..4cad35aab
--- /dev/null
+++ b/data/scripts/maps/IslandCave.s
@@ -0,0 +1,84 @@
+IslandCave_MapScripts:: @ 815EEB6
+ map_script 5, IslandCave_MapScript1_15EEC6
+ map_script 1, IslandCave_MapScript1_15EED4
+ map_script 3, IslandCave_MapScript1_15EF15
+ .byte 0
+
+IslandCave_MapScript1_15EEC6:: @ 815EEC6
+ checkflag 2145
+ callif 1, IslandCave_EventScript_15EED0
+ end
+
+IslandCave_EventScript_15EED0:: @ 815EED0
+ disappear LAST_TALKED
+ return
+
+IslandCave_MapScript1_15EED4:: @ 815EED4
+ checkflag 2129
+ callif 0, IslandCave_EventScript_15EEDE
+ end
+
+IslandCave_EventScript_15EEDE:: @ 815EEDE
+ setmaptile 7, 19, 553, 1
+ setmaptile 8, 19, 553, 1
+ setmaptile 9, 19, 553, 1
+ setmaptile 7, 20, 565, 1
+ setmaptile 8, 20, 565, 1
+ setmaptile 9, 20, 565, 1
+ return
+
+IslandCave_MapScript1_15EF15:: @ 815EF15
+ setflag 2133
+ end
+
+ .global gUnknown_0815EF19
+gUnknown_0815EF19: @ 815EF19
+
+ .incbin "baserom.gba", 0x15ef19, 0x40
+
+IslandCave_EventScript_15EF59:: @ 815EF59
+ lockall
+ checkflag 2129
+ jumpeq IslandCave_EventScript_15EF72
+ braillemsg IslandCave_Braille_1C54FC
+ special 280
+ waitstate
+ jump IslandCave_EventScript_15EF95
+ end
+
+IslandCave_EventScript_15EF72:: @ 815EF72
+ msgbox IslandCave_Text_1A13BE, 4
+ releaseall
+ end
+
+IslandCave_EventScript_15EF7C:: @ 815EF7C
+ lockall
+ braillemsg IslandCave_Braille_1C54FC
+ checkflag 2129
+ jumpeq IslandCave_EventScript_15EF95
+ special 280
+ waitstate
+ jump IslandCave_EventScript_15EF95
+ end
+
+IslandCave_EventScript_15EF95:: @ 815EF95
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+IslandCave_EventScript_15EF9D:: @ 815EF9D
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_REGICE, 2
+ pause 40
+ waitpokecry
+ setwildbattle SPECIES_REGICE, 40, ITEM_NONE
+ setflag 936
+ setflag 2145
+ special 313
+ waitstate
+ clearflag 2145
+ release
+ end
diff --git a/data/scripts/maps/JaggedPass.s b/data/scripts/maps/JaggedPass.s
new file mode 100644
index 000000000..a4aa0964b
--- /dev/null
+++ b/data/scripts/maps/JaggedPass.s
@@ -0,0 +1,50 @@
+JaggedPass_MapScripts:: @ 815D266
+ map_script 5, JaggedPass_MapScript1_15D271
+ map_script 3, JaggedPass_MapScript1_15D274
+ .byte 0
+
+JaggedPass_MapScript1_15D271:: @ 815D271
+ tileeffect 1
+ end
+
+JaggedPass_MapScript1_15D274:: @ 815D274
+ compare 0x40bd, 1
+ callif 1, JaggedPass_EventScript_15D280
+ end
+
+JaggedPass_EventScript_15D280:: @ 815D280
+ setweather 7
+ doweather
+ return
+
+JaggedPass_EventScript_15D285:: @ 815D285
+ trainerbattle 0, 632, 0, JaggedPass_Text_195DAC, JaggedPass_Text_195E27
+ msgbox JaggedPass_Text_195E3E, 6
+ end
+
+JaggedPass_EventScript_15D29C:: @ 815D29C
+ trainerbattle 0, 474, 0, JaggedPass_Text_195E9E, JaggedPass_Text_195EDF
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq JaggedPass_EventScript_15D2C3
+ msgbox JaggedPass_Text_195F04, 6
+ end
+
+JaggedPass_EventScript_15D2C3:: @ 815D2C3
+ trainerbattle 5, 474, 0, JaggedPass_Text_195F58, JaggedPass_Text_195F8C
+ msgbox JaggedPass_Text_195FB9, 6
+ end
+
+JaggedPass_EventScript_15D2DA:: @ 815D2DA
+ trainerbattle 0, 216, 0, JaggedPass_Text_195FF2, JaggedPass_Text_196032
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq JaggedPass_EventScript_15D301
+ msgbox JaggedPass_Text_196077, 6
+ end
+
+JaggedPass_EventScript_15D301:: @ 815D301
+ trainerbattle 5, 216, 0, JaggedPass_Text_1960AA, JaggedPass_Text_1960E2
+ msgbox JaggedPass_Text_196118, 6
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown.s b/data/scripts/maps/LavaridgeTown.s
new file mode 100644
index 000000000..0f668c584
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown.s
@@ -0,0 +1,321 @@
+LavaridgeTown_MapScripts:: @ 814E4A3
+ map_script 3, LavaridgeTown_MapScript1_14E4AE
+ map_script 2, LavaridgeTown_MapScript2_14E4E3
+ .byte 0
+
+LavaridgeTown_MapScript1_14E4AE:: @ 814E4AE
+ setflag 2066
+ checkflag 139
+ callif 1, LavaridgeTown_EventScript_14E4DF
+ call LavaridgeTown_EventScript_1A014E
+ call LavaridgeTown_EventScript_1A0172
+ compare 0x4053, 2
+ callif 1, LavaridgeTown_EventScript_14E4D0
+ end
+
+LavaridgeTown_EventScript_14E4D0:: @ 814E4D0
+ movespriteperm 8, 11, 9
+ movespriteperm 7, 11, 9
+ return
+
+LavaridgeTown_EventScript_14E4DF:: @ 814E4DF
+ clearflag 877
+ return
+
+LavaridgeTown_MapScript2_14E4E3:: @ 814E4E3
+ map_script_2 0x4053, 1, LavaridgeTown_EventScript_14E4ED
+ .2byte 0
+
+LavaridgeTown_EventScript_14E4ED:: @ 814E4ED
+ lockall
+ setvar 0x8008, 1
+ setdooropened 12, 15
+ doorchange
+ reappear 8
+ move 8, LavaridgeTown_Movement_14E70E
+ waitmove 0
+ setdoorclosed 12, 15
+ doorchange
+ move 8, LavaridgeTown_Movement_1A083F
+ waitmove 0
+ move 255, LavaridgeTown_Movement_1A0843
+ move 8, LavaridgeTown_Movement_1A0833
+ waitmove 0
+ move 8, LavaridgeTown_Movement_1A0835
+ waitmove 0
+ checkgender
+ compare RESULT, 0
+ callif 1, LavaridgeTown_EventScript_14E56B
+ compare RESULT, 1
+ callif 1, LavaridgeTown_EventScript_14E570
+ compare 0x8008, 1
+ callif 1, LavaridgeTown_EventScript_14E68F
+ checkgender
+ compare RESULT, 0
+ jumpeq LavaridgeTown_EventScript_14E5AB
+ compare RESULT, 1
+ jumpeq LavaridgeTown_EventScript_14E5D0
+ end
+
+LavaridgeTown_EventScript_14E56B:: @ 814E56B
+ playmusic 415, 1
+ return
+
+LavaridgeTown_EventScript_14E570:: @ 814E570
+ playmusic 421, 1
+ return
+
+LavaridgeTown_EventScript_14E575:: @ 814E575
+ lock
+ faceplayer
+ setvar 0x8008, 0
+ checkgender
+ compare RESULT, 0
+ callif 1, LavaridgeTown_EventScript_14E56B
+ compare RESULT, 1
+ callif 1, LavaridgeTown_EventScript_14E570
+ checkgender
+ compare RESULT, 0
+ jumpeq LavaridgeTown_EventScript_14E5AB
+ compare RESULT, 1
+ jumpeq LavaridgeTown_EventScript_14E5D0
+ end
+
+LavaridgeTown_EventScript_14E5AB:: @ 814E5AB
+ msgbox LavaridgeTown_Text_16BDA4, 4
+ giveitem ITEM_GO_GOGGLES
+ setflag 221
+ msgbox LavaridgeTown_Text_16BE7D, 4
+ jump LavaridgeTown_EventScript_14E5F5
+ end
+
+LavaridgeTown_EventScript_14E5D0:: @ 814E5D0
+ msgbox LavaridgeTown_Text_16BF92, 4
+ giveitem ITEM_GO_GOGGLES
+ setflag 221
+ msgbox LavaridgeTown_Text_16C020, 4
+ jump LavaridgeTown_EventScript_14E5F5
+ end
+
+LavaridgeTown_EventScript_14E5F5:: @ 814E5F5
+ closebutton
+ compare 0x8008, 1
+ callif 1, LavaridgeTown_EventScript_14E646
+ compare 0x8008, 0
+ callif 1, LavaridgeTown_EventScript_14E64E
+ disappear 8
+ reappear 7
+ pause 30
+ compare 0x8008, 1
+ callif 1, LavaridgeTown_EventScript_14E69A
+ compare 0x8008, 0
+ callif 1, LavaridgeTown_EventScript_14E6A5
+ disappear 7
+ setvar 0x4053, 2
+ playmusicbattle 0
+ fadedefault
+ compare 0x8008, 0
+ jumpeq LavaridgeTown_EventScript_14E644
+ releaseall
+ end
+
+LavaridgeTown_EventScript_14E644:: @ 814E644
+ release
+ end
+
+LavaridgeTown_EventScript_14E646:: @ 814E646
+ movespriteperm 7, 6, 16
+ return
+
+LavaridgeTown_EventScript_14E64E:: @ 814E64E
+ compare FACING, 2
+ callif 1, LavaridgeTown_EventScript_14E67B
+ compare FACING, 1
+ callif 1, LavaridgeTown_EventScript_14E680
+ compare FACING, 3
+ callif 1, LavaridgeTown_EventScript_14E685
+ compare FACING, 4
+ callif 1, LavaridgeTown_EventScript_14E68A
+ return
+
+LavaridgeTown_EventScript_14E67B:: @ 814E67B
+ spritebehave 7, 8
+ return
+
+LavaridgeTown_EventScript_14E680:: @ 814E680
+ spritebehave 7, 7
+ return
+
+LavaridgeTown_EventScript_14E685:: @ 814E685
+ spritebehave 7, 10
+ return
+
+LavaridgeTown_EventScript_14E68A:: @ 814E68A
+ spritebehave 7, 9
+ return
+
+LavaridgeTown_EventScript_14E68F:: @ 814E68F
+ move 8, LavaridgeTown_Movement_14E6E8
+ waitmove 0
+ return
+
+LavaridgeTown_EventScript_14E69A:: @ 814E69A
+ move 7, LavaridgeTown_Movement_14E6EF
+ waitmove 0
+ return
+
+LavaridgeTown_EventScript_14E6A5:: @ 814E6A5
+ compare FACING, 2
+ callif 1, LavaridgeTown_EventScript_14E6D2
+ compare FACING, 1
+ callif 1, LavaridgeTown_EventScript_14E6D2
+ compare FACING, 3
+ callif 1, LavaridgeTown_EventScript_14E6DD
+ compare FACING, 4
+ callif 1, LavaridgeTown_EventScript_14E6D2
+ return
+
+LavaridgeTown_EventScript_14E6D2:: @ 814E6D2
+ move 7, LavaridgeTown_Movement_14E6FA
+ waitmove 0
+ return
+
+LavaridgeTown_EventScript_14E6DD:: @ 814E6DD
+ move 7, LavaridgeTown_Movement_14E703
+ waitmove 0
+ return
+
+LavaridgeTown_Movement_14E6E8:: @ 814E6E8
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+LavaridgeTown_Movement_14E6EF:: @ 814E6EF
+ step_18
+ step_18
+ step_18
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+LavaridgeTown_Movement_14E6FA:: @ 814E6FA
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+LavaridgeTown_Movement_14E703:: @ 814E703
+ step_15
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+LavaridgeTown_Movement_14E70E:: @ 814E70E
+ step_down
+ step_end
+
+LavaridgeTown_EventScript_14E710:: @ 814E710
+ specialval RESULT, 287
+ compare RESULT, 1
+ jumpeq LavaridgeTown_EventScript_14E721
+ end
+
+LavaridgeTown_EventScript_14E721:: @ 814E721
+ inccounter 49
+ end
+
+LavaridgeTown_EventScript_14E724:: @ 814E724
+ msgbox LavaridgeTown_Text_16C3FD, 2
+ end
+
+LavaridgeTown_EventScript_14E72D:: @ 814E72D
+ msgbox LavaridgeTown_Text_16C4DB, 3
+ end
+
+LavaridgeTown_EventScript_14E736:: @ 814E736
+ msgbox LavaridgeTown_Text_16C59B, 2
+ end
+
+LavaridgeTown_EventScript_14E73F:: @ 814E73F
+ msgbox LavaridgeTown_Text_16C603, 2
+ end
+
+LavaridgeTown_EventScript_14E748:: @ 814E748
+ msgbox LavaridgeTown_Text_16C694, 2
+ end
+
+LavaridgeTown_EventScript_14E751:: @ 814E751
+ msgbox LavaridgeTown_Text_16C54E, 2
+ end
+
+LavaridgeTown_EventScript_14E75A:: @ 814E75A
+ lock
+ faceplayer
+ checkflag 266
+ jumpeq LavaridgeTown_EventScript_14E79E
+ msgbox LavaridgeTown_Text_16C174, 5
+ compare RESULT, 0
+ jumpeq LavaridgeTown_EventScript_14E7B2
+ countpokemon
+ compare RESULT, 6
+ jumpeq LavaridgeTown_EventScript_14E7A8
+ msgbox LavaridgeTown_Text_16C2B6, 4
+ setflag 266
+ fanfare 370
+ message LavaridgeTown_Text_16C2EA
+ waitfanfare
+ waittext
+ giveegg 360
+ release
+ end
+
+LavaridgeTown_EventScript_14E79E:: @ 814E79E
+ msgbox LavaridgeTown_Text_16C398, 4
+ release
+ end
+
+LavaridgeTown_EventScript_14E7A8:: @ 814E7A8
+ msgbox LavaridgeTown_Text_16C2FF, 4
+ release
+ end
+
+LavaridgeTown_EventScript_14E7B2:: @ 814E7B2
+ msgbox LavaridgeTown_Text_16C33C, 4
+ release
+ end
+
+LavaridgeTown_EventScript_14E7BC:: @ 814E7BC
+ msgbox LavaridgeTown_Text_16C72F, 3
+ end
+
+LavaridgeTown_EventScript_14E7C5:: @ 814E7C5
+ msgbox LavaridgeTown_Text_16C77C, 3
+ end
+
+ .incbin "baserom.gba", 0x14e7ce, 0x9
+
+LavaridgeTown_EventScript_14E7D7:: @ 814E7D7
+ msgbox LavaridgeTown_Text_16C7CF, 3
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.s b/data/scripts/maps/LavaridgeTown_Gym_1F.s
new file mode 100644
index 000000000..a44b3cf16
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_Gym_1F.s
@@ -0,0 +1,172 @@
+LavaridgeTown_Gym_1F_MapScripts:: @ 815368E
+ map_script 3, LavaridgeTown_Gym_1F_MapScript1_153694
+ .byte 0
+
+LavaridgeTown_Gym_1F_MapScript1_153694:: @ 8153694
+ call LavaridgeTown_Gym_1F_EventScript_15369F
+ call LavaridgeTown_Gym_1F_EventScript_1536FF
+ end
+
+LavaridgeTown_Gym_1F_EventScript_15369F:: @ 815369F
+ setvar 0x400b, 0
+ setvar 0x400c, 0
+ setvar 0x400d, 0
+ setvar 0x400e, 0
+ setvar 0x400f, 0
+ checktrainerflag 201
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1536C6
+ setvar 0x400b, 1
+
+LavaridgeTown_Gym_1F_EventScript_1536C6:: @ 81536C6
+ checktrainerflag 648
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1536D4
+ setvar 0x400c, 1
+
+LavaridgeTown_Gym_1F_EventScript_1536D4:: @ 81536D4
+ checktrainerflag 203
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1536E2
+ setvar 0x400d, 1
+
+LavaridgeTown_Gym_1F_EventScript_1536E2:: @ 81536E2
+ checktrainerflag 650
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1536F0
+ setvar 0x400e, 1
+
+LavaridgeTown_Gym_1F_EventScript_1536F0:: @ 81536F0
+ checktrainerflag 205
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1536FE
+ setvar 0x400f, 1
+
+LavaridgeTown_Gym_1F_EventScript_1536FE:: @ 81536FE
+ return
+
+LavaridgeTown_Gym_1F_EventScript_1536FF:: @ 81536FF
+ checktrainerflag 201
+ jumpeq LavaridgeTown_Gym_1F_EventScript_15370C
+ spritebehave 2, 63
+
+LavaridgeTown_Gym_1F_EventScript_15370C:: @ 815370C
+ checktrainerflag 648
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153719
+ spritebehave 3, 63
+
+LavaridgeTown_Gym_1F_EventScript_153719:: @ 8153719
+ checktrainerflag 203
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153726
+ spritebehave 4, 63
+
+LavaridgeTown_Gym_1F_EventScript_153726:: @ 8153726
+ checktrainerflag 650
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153733
+ spritebehave 5, 63
+
+LavaridgeTown_Gym_1F_EventScript_153733:: @ 8153733
+ checktrainerflag 205
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153740
+ spritebehave 7, 63
+
+LavaridgeTown_Gym_1F_EventScript_153740:: @ 8153740
+ return
+
+LavaridgeTown_Gym_1F_EventScript_153741:: @ 8153741
+ trainerbattle 1, 268, 0, LavaridgeTown_Gym_1F_Text_176801, LavaridgeTown_Gym_1F_Text_176960, LavaridgeTown_Gym_1F_EventScript_153766
+ checkflag 168
+ jumpif 0, LavaridgeTown_Gym_1F_EventScript_1537A7
+ msgbox LavaridgeTown_Gym_1F_Text_176C4A, 4
+ release
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153766:: @ 8153766
+ message LavaridgeTown_Gym_1F_Text_176A62
+ waittext
+ call LavaridgeTown_Gym_1F_EventScript_1A02C5
+ msgbox LavaridgeTown_Gym_1F_Text_176A8C, 4
+ setflag 1213
+ setflag 2058
+ addvar 0x4085, 1
+ compare 0x4085, 6
+ callif 1, LavaridgeTown_Gym_1F_EventScript_1A00FB
+ setvar 0x8008, 4
+ call LavaridgeTown_Gym_1F_EventScript_1A01C0
+ setflag 806
+ setvar 0x4053, 1
+ jump LavaridgeTown_Gym_1F_EventScript_1537A7
+ end
+
+LavaridgeTown_Gym_1F_EventScript_1537A7:: @ 81537A7
+ giveitem ITEM_TM50
+ compare RESULT, 0
+ jumpeq LavaridgeTown_Gym_1F_EventScript_1A029B
+ msgbox LavaridgeTown_Gym_1F_Text_176B8F, 4
+ setflag 168
+ release
+ end
+
+LavaridgeTown_Gym_1F_EventScript_1537CB:: @ 81537CB
+ trainerbattle 2, 201, 2, LavaridgeTown_Gym_1F_Text_176432, LavaridgeTown_Gym_1F_Text_17644F, LavaridgeTown_Gym_1F_EventScript_1537E6
+ msgbox LavaridgeTown_Gym_1F_Text_176472, 6
+ end
+
+LavaridgeTown_Gym_1F_EventScript_1537E6:: @ 81537E6
+ call LavaridgeTown_Gym_1F_EventScript_15369F
+ release
+ end
+
+LavaridgeTown_Gym_1F_EventScript_1537ED:: @ 81537ED
+ trainerbattle 2, 203, 4, LavaridgeTown_Gym_1F_Text_1764D1, LavaridgeTown_Gym_1F_Text_176516, LavaridgeTown_Gym_1F_EventScript_1537E6
+ msgbox LavaridgeTown_Gym_1F_Text_176537, 6
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153808:: @ 8153808
+ trainerbattle 2, 205, 7, LavaridgeTown_Gym_1F_Text_17658D, LavaridgeTown_Gym_1F_Text_17663F, LavaridgeTown_Gym_1F_EventScript_1537E6
+ msgbox LavaridgeTown_Gym_1F_Text_176660, 6
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153823:: @ 8153823
+ trainerbattle 2, 650, 5, LavaridgeTown_Gym_1F_Text_176784, LavaridgeTown_Gym_1F_Text_1767A6, LavaridgeTown_Gym_1F_EventScript_1537E6
+ msgbox LavaridgeTown_Gym_1F_Text_1767C1, 6
+ end
+
+LavaridgeTown_Gym_1F_EventScript_15383E:: @ 815383E
+ trainerbattle 2, 648, 3, LavaridgeTown_Gym_1F_Text_1766D2, LavaridgeTown_Gym_1F_Text_1766FE, LavaridgeTown_Gym_1F_EventScript_1537E6
+ msgbox LavaridgeTown_Gym_1F_Text_17671D, 6
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153859:: @ 8153859
+ lock
+ faceplayer
+ checkflag 1213
+ jumpeq LavaridgeTown_Gym_1F_EventScript_15386E
+ msgbox LavaridgeTown_Gym_1F_Text_176312, 4
+ release
+ end
+
+LavaridgeTown_Gym_1F_EventScript_15386E:: @ 815386E
+ msgbox LavaridgeTown_Gym_1F_Text_17640C, 4
+ release
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153878:: @ 8153878
+ lockall
+ checkflag 2058
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153898
+ jump LavaridgeTown_Gym_1F_EventScript_1538A2
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153888:: @ 8153888
+ lockall
+ checkflag 2058
+ jumpeq LavaridgeTown_Gym_1F_EventScript_153898
+ jump LavaridgeTown_Gym_1F_EventScript_1538A2
+ end
+
+LavaridgeTown_Gym_1F_EventScript_153898:: @ 8153898
+ msgbox LavaridgeTown_Gym_1F_Text_176CCA, 4
+ releaseall
+ end
+
+LavaridgeTown_Gym_1F_EventScript_1538A2:: @ 81538A2
+ msgbox LavaridgeTown_Gym_1F_Text_176CAF, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_Gym_B1F.s b/data/scripts/maps/LavaridgeTown_Gym_B1F.s
new file mode 100644
index 000000000..428c76c49
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_Gym_B1F.s
@@ -0,0 +1,3 @@
+LavaridgeTown_Gym_B1F_MapScripts:: @ 81538AC
+ .byte 0
+
diff --git a/data/scripts/maps/LavaridgeTown_HerbShop.s b/data/scripts/maps/LavaridgeTown_HerbShop.s
new file mode 100644
index 000000000..96d95a75c
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_HerbShop.s
@@ -0,0 +1,44 @@
+LavaridgeTown_HerbShop_MapScripts:: @ 8153628
+ .byte 0
+
+LavaridgeTown_HerbShop_EventScript_153629:: @ 8153629
+ lock
+ faceplayer
+ message LavaridgeTown_HerbShop_Text_17615C
+ waittext
+ pokemart LavaridgeTown_HerbShop_Pokemart_153640
+ msgbox LavaridgeTown_HerbShop_Text_1A0C02, 4
+ release
+ end
+
+LavaridgeTown_HerbShop_Pokemart_153640:: @ 8153640
+ .2byte ITEM_ENERGY_POWDER
+ .2byte ITEM_ENERGY_ROOT
+ .2byte ITEM_HEAL_POWDER
+ .2byte ITEM_REVIVAL_HERB
+ .2byte ITEM_NONE
+ release
+ end
+
+LavaridgeTown_HerbShop_EventScript_15364C:: @ 815364C
+ msgbox LavaridgeTown_HerbShop_Text_1762A3, 2
+ end
+
+LavaridgeTown_HerbShop_EventScript_153655:: @ 8153655
+ lock
+ faceplayer
+ checkflag 254
+ jumpeq LavaridgeTown_HerbShop_EventScript_153684
+ msgbox LavaridgeTown_HerbShop_Text_1761A2, 4
+ giveitem ITEM_CHARCOAL
+ compare RESULT, 0
+ jumpeq LavaridgeTown_HerbShop_EventScript_1A029B
+ setflag 254
+ release
+ end
+
+LavaridgeTown_HerbShop_EventScript_153684:: @ 8153684
+ msgbox LavaridgeTown_HerbShop_Text_176209, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_House.s b/data/scripts/maps/LavaridgeTown_House.s
new file mode 100644
index 000000000..7d5e9bf8b
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_House.s
@@ -0,0 +1,17 @@
+LavaridgeTown_House_MapScripts:: @ 81538AD
+ .byte 0
+
+LavaridgeTown_House_EventScript_1538AE:: @ 81538AE
+ msgbox LavaridgeTown_House_Text_176D07, 2
+ end
+
+LavaridgeTown_House_EventScript_1538B7:: @ 81538B7
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox LavaridgeTown_House_Text_176D94, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_Mart.s b/data/scripts/maps/LavaridgeTown_Mart.s
new file mode 100644
index 000000000..13e119eeb
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_Mart.s
@@ -0,0 +1,37 @@
+LavaridgeTown_Mart_MapScripts:: @ 81538CA
+ .byte 0
+
+LavaridgeTown_Mart_EventScript_1538CB:: @ 81538CB
+ lock
+ faceplayer
+ message LavaridgeTown_Mart_Text_1A0BE4
+ waittext
+ pokemart LavaridgeTown_Mart_Pokemart_1538E4
+ msgbox LavaridgeTown_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x1538e2, 0x2
+
+LavaridgeTown_Mart_Pokemart_1538E4:: @ 81538E4
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_BURN_HEAL
+ .2byte ITEM_REVIVE
+ .2byte ITEM_SUPER_REPEL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_NONE
+ release
+ end
+
+LavaridgeTown_Mart_EventScript_1538FA:: @ 81538FA
+ msgbox LavaridgeTown_Mart_Text_176DA6, 2
+ end
+
+LavaridgeTown_Mart_EventScript_153903:: @ 8153903
+ msgbox LavaridgeTown_Mart_Text_176E1A, 2
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..8c17e6d4c
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s
@@ -0,0 +1,29 @@
+LavaridgeTown_PokemonCenter_1F_MapScripts:: @ 815390C
+ map_script 3, LavaridgeTown_PokemonCenter_1F_MapScript1_153912
+ .byte 0
+
+LavaridgeTown_PokemonCenter_1F_MapScript1_153912:: @ 8153912
+ sethealplace 16
+ call LavaridgeTown_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+LavaridgeTown_PokemonCenter_1F_EventScript_15391B:: @ 815391B
+ setvar 0x800b, 1
+ call LavaridgeTown_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+LavaridgeTown_PokemonCenter_1F_EventScript_153929:: @ 8153929
+ msgbox LavaridgeTown_PokemonCenter_1F_Text_176F08, 2
+ end
+
+LavaridgeTown_PokemonCenter_1F_EventScript_153932:: @ 8153932
+ msgbox LavaridgeTown_PokemonCenter_1F_Text_176E92, 2
+ end
+
+LavaridgeTown_PokemonCenter_1F_EventScript_15393B:: @ 815393B
+ msgbox LavaridgeTown_PokemonCenter_1F_Text_176F7A, 2
+ end
+
diff --git a/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s b/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..9b7949ecc
--- /dev/null
+++ b/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+LavaridgeTown_PokemonCenter_2F_MapScripts:: @ 8153944
+ map_script 2, LavaridgeTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, LavaridgeTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, LavaridgeTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+LavaridgeTown_PokemonCenter_2F_EventScript_153954:: @ 8153954
+ call LavaridgeTown_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+LavaridgeTown_PokemonCenter_2F_EventScript_15395A:: @ 815395A
+ call LavaridgeTown_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+LavaridgeTown_PokemonCenter_2F_EventScript_153960:: @ 8153960
+ call LavaridgeTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/LilycoveCity.s b/data/scripts/maps/LilycoveCity.s
new file mode 100644
index 000000000..55e1f2a79
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity.s
@@ -0,0 +1,428 @@
+LilycoveCity_MapScripts:: @ 814CA15
+ map_script 3, LilycoveCity_MapScript1_14CA20
+ map_script 1, LilycoveCity_MapScript1_14CA3F
+ .byte 0
+
+LilycoveCity_MapScript1_14CA20:: @ 814CA20
+ setflag 2075
+ setvar 0x4086, 0
+ setflag 802
+ checkflag 2090
+ callif 1, LilycoveCity_EventScript_1A02C1
+ call LilycoveCity_EventScript_1A0196
+ call LilycoveCity_EventScript_1A014E
+ end
+
+LilycoveCity_MapScript1_14CA3F:: @ 814CA3F
+ .ifndef SAPPHIRE
+ setmaptile 69, 4, 169, 1
+ setmaptile 70, 4, 680, 1
+ setmaptile 71, 4, 681, 1
+ setmaptile 72, 4, 682, 1
+ setmaptile 69, 5, 145, 1
+ setmaptile 70, 5, 688, 1
+ setmaptile 71, 5, 689, 0
+ setmaptile 72, 5, 690, 1
+ setmaptile 69, 6, 446, 0
+ setmaptile 70, 6, 447, 0
+ setmaptile 71, 6, 368, 0
+ setmaptile 72, 6, 445, 0
+ .endif
+ checkflag 112
+ callif 0, LilycoveCity_EventScript_14CABE
+ checkflag 2061
+ callif 1, LilycoveCity_EventScript_14CB2B
+ end
+
+LilycoveCity_EventScript_14CABE:: @ 814CABE
+ setmaptile 76, 12, 656, 1
+ setmaptile 77, 12, 657, 1
+ setmaptile 76, 13, 672, 1
+ setmaptile 77, 13, 673, 1
+ setmaptile 76, 14, 664, 1
+ setmaptile 77, 14, 665, 1
+ setmaptile 76, 15, 672, 1
+ setmaptile 77, 15, 673, 1
+ setmaptile 77, 16, 664, 1
+ setmaptile 78, 16, 665, 1
+ setmaptile 77, 17, 672, 1
+ setmaptile 78, 17, 673, 1
+ return
+
+LilycoveCity_EventScript_14CB2B:: @ 814CB2B
+ setmaptile 69, 4, 169, 1
+ setmaptile 70, 4, 169, 1
+ setmaptile 71, 4, 169, 1
+ setmaptile 72, 4, 169, 1
+ setmaptile 69, 5, 145, 1
+ setmaptile 70, 5, 145, 1
+ setmaptile 71, 5, 145, 1
+ setmaptile 72, 5, 145, 1
+ return
+
+LilycoveCity_EventScript_14CB74:: @ 814CB74
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2255
+ jumpeq LilycoveCity_EventScript_14CBB4
+ msgbox LilycoveCity_Text_1C5A7A, 4
+ random 10
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq LilycoveCity_EventScript_1A029B
+ setflag 2255
+ msgbox LilycoveCity_Text_1C5B1D, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CBB4:: @ 814CBB4
+ msgbox LilycoveCity_Text_1C5B5D, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CBBE:: @ 814CBBE
+ msgbox LilycoveCity_Text_1686C9, 2
+ end
+
+LilycoveCity_EventScript_14CBC7:: @ 814CBC7
+ lock
+ faceplayer
+ checkflag 2061
+ jumpeq LilycoveCity_EventScript_14CBDC
+ msgbox LilycoveCity_Text_168750, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CBDC:: @ 814CBDC
+ msgbox LilycoveCity_Text_168791, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CBE6:: @ 814CBE6
+ msgbox LilycoveCity_Text_168819, 2
+ end
+
+LilycoveCity_EventScript_14CBEF:: @ 814CBEF
+ lock
+ faceplayer
+ checkflag 112
+ jumpeq LilycoveCity_EventScript_14CC04
+ msgbox LilycoveCity_Text_1688C1, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC04:: @ 814CC04
+ msgbox LilycoveCity_Text_168934, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC0E:: @ 814CC0E
+ lock
+ faceplayer
+ checkflag 112
+ jumpeq LilycoveCity_EventScript_14CC23
+ msgbox LilycoveCity_Text_1689BF, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC23:: @ 814CC23
+ msgbox LilycoveCity_Text_168A55, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC2D:: @ 814CC2D
+ msgbox LilycoveCity_Text_168A8D, 2
+ end
+
+LilycoveCity_EventScript_14CC36:: @ 814CC36
+ msgbox LilycoveCity_Text_168B1F, 3
+ end
+
+LilycoveCity_EventScript_14CC3F:: @ 814CC3F
+ msgbox LilycoveCity_Text_168B9B, 3
+ end
+
+LilycoveCity_EventScript_14CC48:: @ 814CC48
+ lock
+ faceplayer
+ checkflag 2061
+ jumpeq LilycoveCity_EventScript_14CC5D
+ msgbox LilycoveCity_Text_168C16, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC5D:: @ 814CC5D
+ msgbox LilycoveCity_Text_168D15, 4
+ release
+ end
+
+LilycoveCity_EventScript_14CC67:: @ 814CC67
+ msgbox LilycoveCity_Text_168DA9, 3
+ end
+
+LilycoveCity_EventScript_14CC70:: @ 814CC70
+ msgbox LilycoveCity_Text_168DE1, 3
+ end
+
+LilycoveCity_EventScript_14CC79:: @ 814CC79
+ msgbox LilycoveCity_Text_168E2F, 3
+ end
+
+LilycoveCity_EventScript_14CC82:: @ 814CC82
+ lockall
+ specialval 0x8004, 137
+ switch 0x8004
+ case 0, LilycoveCity_EventScript_14CCA2
+ msgbox LilycoveCity_Text_168EA4, 4
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CCA2:: @ 814CCA2
+ msgbox LilycoveCity_Text_168E67, 4
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CCAC:: @ 814CCAC
+ lockall
+ checkflag 2052
+ jumpeq LilycoveCity_EventScript_14CCC0
+ msgbox LilycoveCity_Text_168EDA, 4
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CCC0:: @ 814CCC0
+ msgbox LilycoveCity_Text_168F57, 4
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CCCA:: @ 814CCCA
+ msgbox LilycoveCity_Text_168FA1, 3
+ end
+
+LilycoveCity_EventScript_14CCD3:: @ 814CCD3
+ msgbox LilycoveCity_Text_168FF3, 3
+ end
+
+LilycoveCity_EventScript_14CCDC:: @ 814CCDC
+ msgbox LilycoveCity_Text_169072, 3
+ end
+
+LilycoveCity_EventScript_14CCE5:: @ 814CCE5
+ lockall
+ checkflag 218
+ jumpeq LilycoveCity_EventScript_14CD18
+ msgbox LilycoveCity_Text_16864A, 4
+ move LAST_TALKED, LilycoveCity_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_Text_168675, 4
+ move LAST_TALKED, LilycoveCity_Movement_1A083D
+ waitmove 0
+ setflag 218
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CD18:: @ 814CD18
+ msgbox LilycoveCity_Text_16864A, 4
+ releaseall
+ end
+
+LilycoveCity_EventScript_14CD22:: @ 814CD22
+ msgbox LilycoveCity_Text_168455, 2
+ end
+
+LilycoveCity_EventScript_14CD2B:: @ 814CD2B
+ msgbox LilycoveCity_Text_1684C2, 2
+ end
+
+LilycoveCity_EventScript_14CD34:: @ 814CD34
+ msgbox LilycoveCity_Text_168573, 2
+ end
+
+LilycoveCity_EventScript_14CD3D:: @ 814CD3D
+ msgbox LilycoveCity_Text_1685EB, 2
+ end
+
+LilycoveCity_EventScript_14CD46:: @ 814CD46
+ lock
+ faceplayer
+ checkgender
+ compare RESULT, 0
+ jumpeq LilycoveCity_EventScript_14CD60
+ compare RESULT, 1
+ jumpeq LilycoveCity_EventScript_14CDD3
+ end
+
+LilycoveCity_EventScript_14CD60:: @ 814CD60
+ playmusic 415, 1
+ checkflag 286
+ callif 1, LilycoveCity_EventScript_14CDB0
+ checkflag 286
+ callif 0, LilycoveCity_EventScript_14CDB9
+ compare RESULT, 0
+ jumpeq LilycoveCity_EventScript_14CDC2
+ msgbox LilycoveCity_Text_167B94, 4
+ switch 0x4023
+ case 0, LilycoveCity_EventScript_14CE46
+ case 1, LilycoveCity_EventScript_14CE56
+ case 2, LilycoveCity_EventScript_14CE66
+ end
+
+LilycoveCity_EventScript_14CDB0:: @ 814CDB0
+ msgbox LilycoveCity_Text_167B55, 5
+ return
+
+LilycoveCity_EventScript_14CDB9:: @ 814CDB9
+ msgbox LilycoveCity_Text_1679BF, 5
+ return
+
+LilycoveCity_EventScript_14CDC2:: @ 814CDC2
+ setflag 286
+ msgbox LilycoveCity_Text_167AEB, 4
+ playmusicbattle 0
+ fadedefault
+ release
+ end
+
+LilycoveCity_EventScript_14CDD3:: @ 814CDD3
+ playmusic 421, 1
+ checkflag 286
+ callif 1, LilycoveCity_EventScript_14CE23
+ checkflag 286
+ callif 0, LilycoveCity_EventScript_14CE2C
+ compare RESULT, 0
+ jumpeq LilycoveCity_EventScript_14CE35
+ msgbox LilycoveCity_Text_1680A9, 4
+ switch 0x4023
+ case 0, LilycoveCity_EventScript_14CE76
+ case 1, LilycoveCity_EventScript_14CE86
+ case 2, LilycoveCity_EventScript_14CE96
+ end
+
+LilycoveCity_EventScript_14CE23:: @ 814CE23
+ msgbox LilycoveCity_Text_168067, 5
+ return
+
+LilycoveCity_EventScript_14CE2C:: @ 814CE2C
+ msgbox LilycoveCity_Text_167F75, 5
+ return
+
+LilycoveCity_EventScript_14CE35:: @ 814CE35
+ setflag 286
+ msgbox LilycoveCity_Text_16802C, 4
+ playmusicbattle 0
+ fadedefault
+ release
+ end
+
+LilycoveCity_EventScript_14CE46:: @ 814CE46
+ trainerbattle 3, 665, 0, LilycoveCity_Text_167BD5
+ jump LilycoveCity_EventScript_14CEA6
+ end
+
+LilycoveCity_EventScript_14CE56:: @ 814CE56
+ trainerbattle 3, 666, 0, LilycoveCity_Text_167BD5
+ jump LilycoveCity_EventScript_14CEA6
+ end
+
+LilycoveCity_EventScript_14CE66:: @ 814CE66
+ trainerbattle 3, 664, 0, LilycoveCity_Text_167BD5
+ jump LilycoveCity_EventScript_14CEA6
+ end
+
+LilycoveCity_EventScript_14CE76:: @ 814CE76
+ trainerbattle 3, 662, 0, LilycoveCity_Text_1680E4
+ jump LilycoveCity_EventScript_14CF12
+ end
+
+LilycoveCity_EventScript_14CE86:: @ 814CE86
+ trainerbattle 3, 663, 0, LilycoveCity_Text_1680E4
+ jump LilycoveCity_EventScript_14CF12
+ end
+
+LilycoveCity_EventScript_14CE96:: @ 814CE96
+ trainerbattle 3, 661, 0, LilycoveCity_Text_1680E4
+ jump LilycoveCity_EventScript_14CF12
+ end
+
+LilycoveCity_EventScript_14CEA6:: @ 814CEA6
+ msgbox LilycoveCity_Text_167C6B, 4
+ setvar RESULT, 0
+ checkflag 2060
+ callif 1, LilycoveCity_EventScript_14CEDE
+ compare RESULT, 0
+ callif 1, LilycoveCity_EventScript_14CEEE
+ compare RESULT, 1
+ callif 1, LilycoveCity_EventScript_14CEF7
+ clearflag 722
+ clearflag 849
+ jump LilycoveCity_EventScript_14CF6B
+ end
+
+LilycoveCity_EventScript_14CEDE:: @ 814CEDE
+ checkflag 2062
+ jumpeq LilycoveCity_EventScript_14CEE8
+ return
+
+LilycoveCity_EventScript_14CEE8:: @ 814CEE8
+ setvar RESULT, 1
+ return
+
+LilycoveCity_EventScript_14CEEE:: @ 814CEEE
+ msgbox LilycoveCity_Text_167D08, 4
+ return
+
+LilycoveCity_EventScript_14CEF7:: @ 814CEF7
+ checkflag 2052
+ jumpeq LilycoveCity_EventScript_14CF09
+ msgbox LilycoveCity_Text_167DDD, 4
+ return
+
+LilycoveCity_EventScript_14CF09:: @ 814CF09
+ msgbox LilycoveCity_Text_167EAA, 4
+ return
+
+LilycoveCity_EventScript_14CF12:: @ 814CF12
+ msgbox LilycoveCity_Text_168149, 4
+ setvar RESULT, 0
+ checkflag 2060
+ callif 1, LilycoveCity_EventScript_14CEDE
+ compare RESULT, 0
+ callif 1, LilycoveCity_EventScript_14CF47
+ compare RESULT, 1
+ callif 1, LilycoveCity_EventScript_14CF50
+ clearflag 760
+ jump LilycoveCity_EventScript_14CF6B
+ end
+
+LilycoveCity_EventScript_14CF47:: @ 814CF47
+ msgbox LilycoveCity_Text_1681EA, 4
+ return
+
+LilycoveCity_EventScript_14CF50:: @ 814CF50
+ checkflag 2052
+ jumpeq LilycoveCity_EventScript_14CF62
+ msgbox LilycoveCity_Text_168282, 4
+ return
+
+LilycoveCity_EventScript_14CF62:: @ 814CF62
+ msgbox LilycoveCity_Text_16835A, 4
+ return
+
+LilycoveCity_EventScript_14CF6B:: @ 814CF6B
+ closebutton
+ move LAST_TALKED, LilycoveCity_Movement_1A0845
+ waitmove 0
+ pause 50
+ setanimation 0, 1
+ doanimation 30
+ pause 15
+ disappear LAST_TALKED
+ checkanimation 30
+ playmusicbattle 0
+ fadedefault
+ setflag 292
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_ContestHall.s b/data/scripts/maps/LilycoveCity_ContestHall.s
new file mode 100644
index 000000000..a06ccf14d
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_ContestHall.s
@@ -0,0 +1,256 @@
+LilycoveCity_ContestHall_MapScripts:: @ 8159099
+ .byte 0
+
+ .incbin "baserom.gba", 0x15909a, 0x1
+
+LilycoveCity_ContestHall_EventScript_15909B:: @ 815909B
+ msgbox LilycoveCity_ContestHall_Text_1890D4, 2
+ end
+
+LilycoveCity_ContestHall_EventScript_1590A4:: @ 81590A4
+ msgbox LilycoveCity_ContestHall_Text_18915F, 2
+ end
+
+LilycoveCity_ContestHall_EventScript_1590AD:: @ 81590AD
+ msgbox LilycoveCity_ContestHall_Text_189221, 2
+ end
+
+LilycoveCity_ContestHall_EventScript_1590B6:: @ 81590B6
+ msgbox LilycoveCity_ContestHall_Text_189299, 2
+ end
+
+LilycoveCity_ContestHall_EventScript_1590BF:: @ 81590BF
+ msgbox LilycoveCity_ContestHall_Text_189301, 2
+ lockall
+ move 4, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1590D4:: @ 81590D4
+ msgbox LilycoveCity_ContestHall_Text_189366, 2
+ lockall
+ move 5, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1590E9:: @ 81590E9
+ msgbox LilycoveCity_ContestHall_Text_1893CE, 2
+ lockall
+ move 6, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1590FE:: @ 81590FE
+ msgbox LilycoveCity_ContestHall_Text_189463, 2
+ lockall
+ move 7, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159113:: @ 8159113
+ msgbox LilycoveCity_ContestHall_Text_189512, 2
+ lockall
+ move 8, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159128:: @ 8159128
+ msgbox LilycoveCity_ContestHall_Text_18956B, 2
+ lockall
+ move 9, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15913D:: @ 815913D
+ msgbox LilycoveCity_ContestHall_Text_1895F3, 3
+ end
+
+LilycoveCity_ContestHall_EventScript_159146:: @ 8159146
+ msgbox LilycoveCity_ContestHall_Text_189617, 2
+ lockall
+ move 12, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15915B:: @ 815915B
+ msgbox LilycoveCity_ContestHall_Text_1896BE, 2
+ lockall
+ move 22, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159170:: @ 8159170
+ msgbox LilycoveCity_ContestHall_Text_1896FE, 2
+ lockall
+ move 11, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159185:: @ 8159185
+ msgbox LilycoveCity_ContestHall_Text_189771, 2
+ lockall
+ move 13, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15919A:: @ 815919A
+ msgbox LilycoveCity_ContestHall_Text_1897AA, 2
+ lockall
+ move 14, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1591AF:: @ 81591AF
+ msgbox LilycoveCity_ContestHall_Text_18980B, 2
+ lockall
+ move 15, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1591C4:: @ 81591C4
+ msgbox LilycoveCity_ContestHall_Text_189874, 2
+ lockall
+ move 16, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1591D9:: @ 81591D9
+ msgbox LilycoveCity_ContestHall_Text_18990A, 2
+ lockall
+ move 17, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1591EE:: @ 81591EE
+ msgbox LilycoveCity_ContestHall_Text_189981, 2
+ lockall
+ move 18, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159203:: @ 8159203
+ msgbox LilycoveCity_ContestHall_Text_189A1D, 2
+ lockall
+ move 19, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159218:: @ 8159218
+ msgbox LilycoveCity_ContestHall_Text_189A82, 2
+ lockall
+ move 21, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15922D:: @ 815922D
+ msgbox LilycoveCity_ContestHall_Text_189AE1, 2
+ lockall
+ move 20, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159242:: @ 8159242
+ msgbox LilycoveCity_ContestHall_Text_189B4E, 2
+ lockall
+ move 23, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159257:: @ 8159257
+ msgbox LilycoveCity_ContestHall_Text_189BBF, 2
+ lockall
+ move 24, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15926C:: @ 815926C
+ msgbox LilycoveCity_ContestHall_Text_189C29, 2
+ lockall
+ move 25, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159281:: @ 8159281
+ msgbox LilycoveCity_ContestHall_Text_189C67, 2
+ lockall
+ move 26, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_159296:: @ 8159296
+ msgbox LilycoveCity_ContestHall_Text_189CB3, 2
+ lockall
+ move 27, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1592AB:: @ 81592AB
+ msgbox LilycoveCity_ContestHall_Text_189D11, 2
+ lockall
+ move 28, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1592C0:: @ 81592C0
+ lockall
+ move 29, LilycoveCity_ContestHall_Movement_1A0839
+ waitmove 0
+ pause 25
+ move 29, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ msgbox LilycoveCity_ContestHall_Text_189DA2, 3
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1592E2:: @ 81592E2
+ msgbox LilycoveCity_ContestHall_Text_189E5F, 2
+ lockall
+ move 31, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_1592F7:: @ 81592F7
+ msgbox LilycoveCity_ContestHall_Text_189DF3, 2
+ lockall
+ move 30, LilycoveCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_ContestHall_EventScript_15930C:: @ 815930C
+ msgbox LilycoveCity_ContestHall_Text_189EF3, 3
+ end
+
+LilycoveCity_ContestHall_EventScript_159315:: @ 8159315
+ msgbox LilycoveCity_ContestHall_Text_189F29, 3
+ end
+
+LilycoveCity_ContestHall_EventScript_15931E:: @ 815931E
+ msgbox LilycoveCity_ContestHall_Text_189F5C, 3
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.s b/data/scripts/maps/LilycoveCity_ContestLobby.s
new file mode 100644
index 000000000..f1f1e7925
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.s
@@ -0,0 +1,772 @@
+LilycoveCity_ContestLobby_MapScripts:: @ 8158866
+ map_script 3, LilycoveCity_ContestLobby_MapScript1_158871
+ map_script 2, LilycoveCity_ContestLobby_MapScript2_158877
+ .byte 0
+
+LilycoveCity_ContestLobby_MapScript1_158871:: @ 8158871
+ call LilycoveCity_ContestLobby_EventScript_1AE188
+ end
+
+LilycoveCity_ContestLobby_MapScript2_158877:: @ 8158877
+ map_script_2 0x4099, 1, LilycoveCity_ContestLobby_EventScript_158889
+ map_script_2 0x4099, 2, LilycoveCity_ContestLobby_EventScript_158A5B
+ .2byte 0
+
+LilycoveCity_ContestLobby_EventScript_158889:: @ 8158889
+ checkflag 775
+ jumpeq LilycoveCity_ContestLobby_EventScript_158898
+ setvar 0x4099, 0
+ end
+
+LilycoveCity_ContestLobby_EventScript_158898:: @ 8158898
+ lockall
+ reappear 4
+ move 4, LilycoveCity_ContestLobby_Movement_158A3B
+ waitmove 4
+ move 255, LilycoveCity_ContestLobby_Movement_158A4C
+ waitmove 0
+ msgbox LilycoveCity_ContestLobby_Text_18890F, 4
+ lockall
+ fadescreen 1
+ showcontestwinner 0
+ lockall
+ msgbox LilycoveCity_ContestLobby_Text_1889FD, 5
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_1588DE
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158918
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_1588DE:: @ 81588DE
+ msgbox LilycoveCity_ContestLobby_Text_188AE8, 4
+ closebutton
+ special 135
+ setvar 0x4099, 0
+ specialval RESULT, 91
+ compare RESULT, 1
+ callif 1, LilycoveCity_ContestLobby_EventScript_158948
+ move 4, LilycoveCity_ContestLobby_Movement_158A43
+ waitmove 0
+ disappear 4
+ call LilycoveCity_ContestLobby_EventScript_158994
+ call LilycoveCity_ContestLobby_EventScript_1589EA
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_158918:: @ 8158918
+ msgbox LilycoveCity_ContestLobby_Text_188C41, 5
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_1588DE
+ msgbox LilycoveCity_ContestLobby_Text_188CBD, 4
+ closebutton
+ move 4, LilycoveCity_ContestLobby_Movement_158A43
+ waitmove 0
+ setvar 0x4099, 0
+ disappear 4
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_158948:: @ 8158948
+ inccounter 42
+ special 80
+ move 4, LilycoveCity_ContestLobby_Movement_158A4E
+ waitmove 0
+ playsfx 21
+ move 4, LilycoveCity_ContestLobby_Movement_1A0833
+ waitmove 0
+ move 4, LilycoveCity_ContestLobby_Movement_158A52
+ waitmove 0
+ msgbox LilycoveCity_ContestLobby_Text_188BB5, 4
+ fanfare 370
+ msgbox LilycoveCity_ContestLobby_Text_188C03, 4
+ waitfanfare
+ msgbox LilycoveCity_ContestLobby_Text_188C19, 4
+ msgbox LilycoveCity_ContestLobby_Text_188C32, 4
+ closebutton
+ return
+
+LilycoveCity_ContestLobby_EventScript_158994:: @ 8158994
+ specialval 0x8004, 137
+ switch 0x8004
+ case 1, LilycoveCity_ContestLobby_EventScript_1589D6
+ case 2, LilycoveCity_ContestLobby_EventScript_1589DA
+ case 3, LilycoveCity_ContestLobby_EventScript_1589DE
+ case 4, LilycoveCity_ContestLobby_EventScript_1589E2
+ case 5, LilycoveCity_ContestLobby_EventScript_1589E6
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589D6:: @ 81589D6
+ clearflag 776
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589DA:: @ 81589DA
+ clearflag 777
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589DE:: @ 81589DE
+ clearflag 778
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589E2:: @ 81589E2
+ clearflag 779
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589E6:: @ 81589E6
+ clearflag 780
+ return
+
+LilycoveCity_ContestLobby_EventScript_1589EA:: @ 81589EA
+ switch 0x8011
+ case 0, LilycoveCity_ContestLobby_EventScript_158A27
+ case 1, LilycoveCity_ContestLobby_EventScript_158A2B
+ case 2, LilycoveCity_ContestLobby_EventScript_158A2F
+ case 3, LilycoveCity_ContestLobby_EventScript_158A33
+ case 4, LilycoveCity_ContestLobby_EventScript_158A37
+ return
+
+LilycoveCity_ContestLobby_EventScript_158A27:: @ 8158A27
+ setflag 160
+ return
+
+LilycoveCity_ContestLobby_EventScript_158A2B:: @ 8158A2B
+ setflag 161
+ return
+
+LilycoveCity_ContestLobby_EventScript_158A2F:: @ 8158A2F
+ setflag 162
+ return
+
+LilycoveCity_ContestLobby_EventScript_158A33:: @ 8158A33
+ setflag 163
+ return
+
+LilycoveCity_ContestLobby_EventScript_158A37:: @ 8158A37
+ setflag 164
+ return
+
+LilycoveCity_ContestLobby_Movement_158A3B:: @ 8158A3B
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158A43:: @ 8158A43
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158A4C:: @ 8158A4C
+ step_27
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158A4E:: @ 8158A4E
+ step_down
+ step_down
+ step_down
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158A52:: @ 8158A52
+ step_14
+ step_14
+ step_14
+ step_14
+ step_16
+ step_16
+ step_16
+ step_28
+ step_end
+
+LilycoveCity_ContestLobby_EventScript_158A5B:: @ 8158A5B
+ checkflag 775
+ jumpeq LilycoveCity_ContestLobby_EventScript_158A6A
+ setvar 0x4099, 0
+ end
+
+LilycoveCity_ContestLobby_EventScript_158A6A:: @ 8158A6A
+ lockall
+ reappear 11
+ move 11, LilycoveCity_ContestLobby_Movement_158B64
+ waitmove 11
+ move 255, LilycoveCity_ContestLobby_Movement_158B76
+ waitmove 0
+ msgbox LilycoveCity_ContestLobby_Text_18890F, 4
+ lockall
+ fadescreen 1
+ showcontestwinner 0
+ msgbox LilycoveCity_ContestLobby_Text_1889FD, 5
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_158AAE
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158AE8
+ end
+
+LilycoveCity_ContestLobby_EventScript_158AAE:: @ 8158AAE
+ msgbox LilycoveCity_ContestLobby_Text_188AE8, 4
+ closebutton
+ special 135
+ setvar 0x4099, 0
+ specialval RESULT, 91
+ compare RESULT, 1
+ callif 1, LilycoveCity_ContestLobby_EventScript_158B18
+ move 11, LilycoveCity_ContestLobby_Movement_158B6D
+ waitmove 0
+ disappear 11
+ call LilycoveCity_ContestLobby_EventScript_158994
+ call LilycoveCity_ContestLobby_EventScript_1589EA
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_158AE8:: @ 8158AE8
+ msgbox LilycoveCity_ContestLobby_Text_188C41, 5
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_158AAE
+ msgbox LilycoveCity_ContestLobby_Text_188CBD, 4
+ closebutton
+ move 11, LilycoveCity_ContestLobby_Movement_158B6D
+ waitmove 0
+ setvar 0x4099, 0
+ disappear 11
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_158B18:: @ 8158B18
+ inccounter 42
+ special 80
+ move 11, LilycoveCity_ContestLobby_Movement_158B78
+ waitmove 0
+ playsfx 21
+ move 11, LilycoveCity_ContestLobby_Movement_1A0833
+ waitmove 0
+ move 11, LilycoveCity_ContestLobby_Movement_158B7C
+ waitmove 0
+ msgbox LilycoveCity_ContestLobby_Text_188BB5, 4
+ fanfare 370
+ msgbox LilycoveCity_ContestLobby_Text_188C03, 4
+ waitfanfare
+ msgbox LilycoveCity_ContestLobby_Text_188C19, 4
+ msgbox LilycoveCity_ContestLobby_Text_188C32, 4
+ closebutton
+ return
+
+LilycoveCity_ContestLobby_Movement_158B64:: @ 8158B64
+ step_down
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158B6D:: @ 8158B6D
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158B76:: @ 8158B76
+ step_28
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158B78:: @ 8158B78
+ step_down
+ step_down
+ step_down
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158B7C:: @ 8158B7C
+ step_14
+ step_14
+ step_14
+ step_14
+ step_16
+ step_16
+ step_16
+ step_27
+ step_end
+
+LilycoveCity_ContestLobby_EventScript_158B85:: @ 8158B85
+ lockall
+ checkitem ITEM_CONTEST_PASS, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158BBA
+ checkflag 2
+ jumpeq LilycoveCity_ContestLobby_EventScript_158BAE
+ message LilycoveCity_ContestLobby_Text_18848C
+ waittext
+ setflag 2
+ jump LilycoveCity_ContestLobby_EventScript_158BF0
+ end
+
+LilycoveCity_ContestLobby_EventScript_158BAE:: @ 8158BAE
+ message LilycoveCity_ContestLobby_Text_188584
+ waittext
+ jump LilycoveCity_ContestLobby_EventScript_158BF0
+ end
+
+LilycoveCity_ContestLobby_EventScript_158BBA:: @ 8158BBA
+ msgbox LilycoveCity_ContestLobby_Text_1A63F4, 4
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_158BC4:: @ 8158BC4
+ msgbox LilycoveCity_ContestLobby_Text_188521, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158C35
+ call LilycoveCity_ContestLobby_EventScript_19F806
+ hidebox 0, 0, 15, 9
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158C35
+ setflag 3
+ return
+
+LilycoveCity_ContestLobby_EventScript_158BF0:: @ 8158BF0
+ multichoice 0, 0, 2, 0
+ switch RESULT
+ case 0, LilycoveCity_ContestLobby_EventScript_158CEA
+ case 1, LilycoveCity_ContestLobby_EventScript_158C27
+ case 2, LilycoveCity_ContestLobby_EventScript_158C35
+ case 127, LilycoveCity_ContestLobby_EventScript_158C35
+ end
+
+LilycoveCity_ContestLobby_EventScript_158C27:: @ 8158C27
+ msgbox LilycoveCity_ContestLobby_Text_1885A7, 4
+ jump LilycoveCity_ContestLobby_EventScript_158B85
+ end
+
+LilycoveCity_ContestLobby_EventScript_158C35:: @ 8158C35
+ msgbox LilycoveCity_ContestLobby_Text_188559, 4
+ releaseall
+ clearflag 3
+ end
+
+LilycoveCity_ContestLobby_EventScript_158C42:: @ 8158C42
+ msgbox LilycoveCity_ContestLobby_Text_188703, 4
+ setvar 0x8010, 0
+ choosecontestpkmn
+ compare 0x8004, 255
+ jumpeq LilycoveCity_ContestLobby_EventScript_158CEA
+ special 84
+ compare RESULT, 0
+ jumpeq LilycoveCity_ContestLobby_EventScript_158C96
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_158CC0
+ compare RESULT, 2
+ jumpeq LilycoveCity_ContestLobby_EventScript_158CC0
+ compare RESULT, 3
+ jumpeq LilycoveCity_ContestLobby_EventScript_158CA4
+ compare RESULT, 4
+ jumpeq LilycoveCity_ContestLobby_EventScript_158CB2
+ end
+
+LilycoveCity_ContestLobby_EventScript_158C96:: @ 8158C96
+ msgbox LilycoveCity_ContestLobby_Text_1A664A, 4
+ jump LilycoveCity_ContestLobby_EventScript_158C42
+ end
+
+LilycoveCity_ContestLobby_EventScript_158CA4:: @ 8158CA4
+ msgbox LilycoveCity_ContestLobby_Text_1A669F, 4
+ jump LilycoveCity_ContestLobby_EventScript_158C42
+ end
+
+LilycoveCity_ContestLobby_EventScript_158CB2:: @ 8158CB2
+ msgbox LilycoveCity_ContestLobby_Text_1A66DC, 4
+ jump LilycoveCity_ContestLobby_EventScript_158C42
+ end
+
+LilycoveCity_ContestLobby_EventScript_158CC0:: @ 8158CC0
+ copyvar 0x8008, 0x8004
+ message LilycoveCity_ContestLobby_Text_1A67A3
+ waittext
+ yesnobox 20, 8
+ switch RESULT
+ case 0, LilycoveCity_ContestLobby_EventScript_158C42
+ case 1, LilycoveCity_ContestLobby_EventScript_158D24
+ end
+
+LilycoveCity_ContestLobby_EventScript_158CEA:: @ 8158CEA
+ checkflag 3
+ callif 0, LilycoveCity_ContestLobby_EventScript_158BC4
+ message LilycoveCity_ContestLobby_Text_1886DC
+ waittext
+ multichoice 0, 0, 4, 0
+ switch RESULT
+ case 5, LilycoveCity_ContestLobby_EventScript_158C35
+ case 127, LilycoveCity_ContestLobby_EventScript_158C35
+ copyvar 0x8011, RESULT
+ jump LilycoveCity_ContestLobby_EventScript_158C42
+ end
+
+LilycoveCity_ContestLobby_EventScript_158D24:: @ 8158D24
+ message LilycoveCity_ContestLobby_Text_1887C7
+ waittext
+ copyvar 0x8004, RESULT
+ special 92
+ waitstate
+ compare RESULT, 3
+ jumpeq LilycoveCity_ContestLobby_EventScript_158D90
+ compare RESULT, 5
+ jumpeq LilycoveCity_ContestLobby_EventScript_158DA1
+ compare RESULT, 6
+ jumpeq LilycoveCity_ContestLobby_EventScript_158DB2
+ message2 LilycoveCity_ContestLobby_Text_18872A
+ waittext
+ contestlinktransfer
+ switch 0x8004
+ case 0, LilycoveCity_ContestLobby_EventScript_158DD1
+ case 1, LilycoveCity_ContestLobby_EventScript_158D82
+ case 2, LilycoveCity_ContestLobby_EventScript_158DC3
+ end
+
+LilycoveCity_ContestLobby_EventScript_158D82:: @ 8158D82
+ msgbox LilycoveCity_ContestLobby_Text_188750, 4
+ jump LilycoveCity_ContestLobby_EventScript_158CEA
+ end
+
+LilycoveCity_ContestLobby_EventScript_158D90:: @ 8158D90
+ special 31
+ msgbox LilycoveCity_ContestLobby_Text_18878D, 4
+ closebutton
+ releaseall
+ clearflag 3
+ end
+
+LilycoveCity_ContestLobby_EventScript_158DA1:: @ 8158DA1
+ special 31
+ msgbox LilycoveCity_ContestLobby_Text_1887F4, 4
+ closebutton
+ releaseall
+ clearflag 3
+ end
+
+LilycoveCity_ContestLobby_EventScript_158DB2:: @ 8158DB2
+ special 31
+ msgbox LilycoveCity_ContestLobby_Text_18881F, 4
+ closebutton
+ releaseall
+ clearflag 3
+ end
+
+LilycoveCity_ContestLobby_EventScript_158DC3:: @ 8158DC3
+ msgbox LilycoveCity_ContestLobby_Text_18873A, 4
+ jump LilycoveCity_ContestLobby_EventScript_158CEA
+ end
+
+LilycoveCity_ContestLobby_EventScript_158DD1:: @ 8158DD1
+ special 77
+ addvar 0x8004, 1
+ buffernum 1, 32772
+ message2 LilycoveCity_ContestLobby_Text_188845
+ waittext
+ addvar 0x8004, 65535
+ jump LilycoveCity_ContestLobby_EventScript_158DEE
+ end
+
+LilycoveCity_ContestLobby_EventScript_158DEE:: @ 8158DEE
+ call LilycoveCity_ContestLobby_EventScript_158E0B
+ setvar 0x4086, 1
+ special 86
+ setvar 0x4088, 5
+ setvar 0x8010, 3
+ call LilycoveCity_ContestLobby_EventScript_158F08
+ end
+
+LilycoveCity_ContestLobby_EventScript_158E0B:: @ 8158E0B
+ lockall
+ message2 LilycoveCity_ContestLobby_Text_1888C6
+ waittext
+ pause 20
+ closebutton
+ move 2, LilycoveCity_ContestLobby_Movement_158E9C
+ waitmove 0
+ playsfx 71
+ setmaptile 9, 2, 545, 1
+ setmaptile 9, 3, 609, 1
+ special 142
+ move 2, LilycoveCity_ContestLobby_Movement_158EA0
+ waitmove 0
+ playsfx 71
+ setmaptile 9, 2, 721, 1
+ setmaptile 9, 3, 729, 1
+ special 142
+ pause 20
+ move 2, LilycoveCity_ContestLobby_Movement_158EAE
+ waitmove 0
+ move 255, LilycoveCity_ContestLobby_Movement_158E99
+ waitmove 0
+ message2 LilycoveCity_ContestLobby_Text_1A6832
+ waittext
+ pause 20
+ closebutton
+ move 2, LilycoveCity_ContestLobby_Movement_158EA4
+ move 255, LilycoveCity_ContestLobby_Movement_158E8E
+ waitmove 0
+ releaseall
+ return
+
+LilycoveCity_ContestLobby_Movement_158E8E:: @ 8158E8E
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158E99:: @ 8158E99
+ step_28
+ step_right
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158E9C:: @ 8158E9C
+ step_right
+ step_right
+ step_25
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158EA0:: @ 8158EA0
+ step_down
+ step_down
+ step_26
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158EA4:: @ 8158EA4
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+LilycoveCity_ContestLobby_Movement_158EAE:: @ 8158EAE
+ step_27
+ step_end
+
+LilycoveCity_ContestLobby_EventScript_158EB0:: @ 8158EB0
+ specialval RESULT, 90
+ compare RESULT, 1
+ jumpeq LilycoveCity_ContestLobby_EventScript_158EE8
+ setvar 0x800b, 8
+ setvar 0x8010, 3
+ call LilycoveCity_ContestLobby_EventScript_1A4E92
+ call LilycoveCity_ContestLobby_EventScript_158F86
+ special 83
+ call LilycoveCity_ContestLobby_EventScript_15FBDB
+ setvar 0x4088, 4
+ call LilycoveCity_ContestLobby_EventScript_158F08
+ waitstate
+ end
+
+LilycoveCity_ContestLobby_EventScript_158EE8:: @ 8158EE8
+ setflag 775
+ copyvar 0x4094, 0x1
+ additem ITEM_CONTEST_PASS, 1
+ setvar 0x800b, 8
+ setvar 0x8010, 3
+ setvar 0x4099, 1
+ setflag 2107
+ end
+
+LilycoveCity_ContestLobby_EventScript_158F08:: @ 8158F08
+ switch 0x8011
+ case 0, LilycoveCity_ContestLobby_EventScript_158F45
+ case 1, LilycoveCity_ContestLobby_EventScript_158F52
+ case 2, LilycoveCity_ContestLobby_EventScript_158F5F
+ case 3, LilycoveCity_ContestLobby_EventScript_158F6C
+ case 4, LilycoveCity_ContestLobby_EventScript_158F79
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F45:: @ 8158F45
+ warp3 LinkContestRoom4, 255, 7, 5
+ special 300
+ waitstate
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F52:: @ 8158F52
+ warp3 LinkContestRoom2, 255, 7, 5
+ special 300
+ waitstate
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F5F:: @ 8158F5F
+ warp3 LinkContestRoom6, 255, 7, 5
+ special 300
+ waitstate
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F6C:: @ 8158F6C
+ warp3 LinkContestRoom5, 255, 7, 5
+ special 300
+ waitstate
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F79:: @ 8158F79
+ warp3 LinkContestRoom3, 255, 7, 5
+ special 300
+ waitstate
+ return
+
+LilycoveCity_ContestLobby_EventScript_158F86:: @ 8158F86
+ lockall
+ move 1, LilycoveCity_ContestLobby_Movement_15900B
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 545, 1
+ setmaptile 4, 3, 609, 1
+ special 142
+ move 1, LilycoveCity_ContestLobby_Movement_15900F
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 721, 1
+ setmaptile 4, 3, 729, 1
+ special 142
+ pause 20
+ move 1, LilycoveCity_ContestLobby_Movement_15901C
+ waitmove 0
+ move 255, LilycoveCity_ContestLobby_Movement_159008
+ waitmove 0
+ msgbox LilycoveCity_ContestLobby_Text_1A6832, 4
+ closebutton
+ move 1, LilycoveCity_ContestLobby_Movement_159013
+ move 255, LilycoveCity_ContestLobby_Movement_158FFE
+ waitmove 0
+ releaseall
+ return
+
+LilycoveCity_ContestLobby_Movement_158FFE:: @ 8158FFE
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+LilycoveCity_ContestLobby_Movement_159008:: @ 8159008
+ step_27
+ step_left
+ step_end
+
+LilycoveCity_ContestLobby_Movement_15900B:: @ 815900B
+ step_left
+ step_left
+ step_25
+ step_end
+
+LilycoveCity_ContestLobby_Movement_15900F:: @ 815900F
+ step_down
+ step_down
+ step_26
+ step_end
+
+LilycoveCity_ContestLobby_Movement_159013:: @ 8159013
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+LilycoveCity_ContestLobby_Movement_15901C:: @ 815901C
+ step_28
+ step_end
+
+LilycoveCity_ContestLobby_EventScript_15901E:: @ 815901E
+ msgbox LilycoveCity_ContestLobby_Text_188D3C, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159027:: @ 8159027
+ checkflag 150
+ jumpif 0, LilycoveCity_ContestLobby_EventScript_159039
+ msgbox LilycoveCity_ContestLobby_Text_188DDA, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159039:: @ 8159039
+ msgbox LilycoveCity_ContestLobby_Text_188E47, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159042:: @ 8159042
+ msgbox LilycoveCity_ContestLobby_Text_188F07, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_15904B:: @ 815904B
+ msgbox LilycoveCity_ContestLobby_Text_188F81, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159054:: @ 8159054
+ msgbox LilycoveCity_ContestLobby_Text_188FE3, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_15905D:: @ 815905D
+ msgbox LilycoveCity_ContestLobby_Text_18904D, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159066:: @ 8159066
+ lockall
+ fadescreen 1
+ showcontestwinner 6
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_15906D:: @ 815906D
+ lockall
+ fadescreen 1
+ showcontestwinner 7
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_159074:: @ 8159074
+ lockall
+ fadescreen 1
+ showcontestwinner 8
+ releaseall
+ end
+
+LilycoveCity_ContestLobby_EventScript_15907B:: @ 815907B
+ msgbox LilycoveCity_ContestLobby_Text_1B7225, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_159084:: @ 8159084
+ msgbox LilycoveCity_ContestLobby_Text_1B7241, 2
+ end
+
+LilycoveCity_ContestLobby_EventScript_15908D:: @ 815908D
+SlateportCity_ContestLobby_EventScript_15908D:: @ 815908D
+ lockall
+ special 259
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s
new file mode 100644
index 000000000..95047f532
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s
@@ -0,0 +1,77 @@
+LilycoveCity_CoveLilyMotel_1F_MapScripts:: @ 81582C4
+ .byte 0
+
+LilycoveCity_CoveLilyMotel_1F_EventScript_1582C5:: @ 81582C5
+ lockall
+ checkflag 2052
+ jumpeq LilycoveCity_CoveLilyMotel_1F_EventScript_158326
+ checkflag 2061
+ jumpeq LilycoveCity_CoveLilyMotel_1F_EventScript_1582FF
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186B71, 4
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186C2B, 4
+ closebutton
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_CoveLilyMotel_1F_EventScript_1582FF:: @ 81582FF
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186CCE, 4
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186D7F, 4
+ closebutton
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_CoveLilyMotel_1F_EventScript_158326:: @ 8158326
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186E57, 4
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186F09, 4
+ closebutton
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_CoveLilyMotel_1F_EventScript_15834D:: @ 815834D
+ lockall
+ playsfx 21
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0833
+ waitmove 0
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0835
+ waitmove 0
+ move 255, LilycoveCity_CoveLilyMotel_1F_Movement_1A0845
+ waitmove 0
+ msgbox LilycoveCity_CoveLilyMotel_1F_Text_186CA6, 4
+ closebutton
+ move 255, LilycoveCity_CoveLilyMotel_1F_Movement_158395
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_15839A
+ waitmove 0
+ move 1, LilycoveCity_CoveLilyMotel_1F_Movement_15839C
+ waitmove 0
+ release
+ end
+
+LilycoveCity_CoveLilyMotel_1F_Movement_158395:: @ 8158395
+ step_03
+ step_40
+ step_left
+ step_41
+ step_end
+
+LilycoveCity_CoveLilyMotel_1F_Movement_15839A:: @ 815839A
+ step_up
+ step_end
+
+LilycoveCity_CoveLilyMotel_1F_Movement_15839C:: @ 815839C
+ step_00
+ step_down
+ step_01
+ step_end
+
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s
new file mode 100644
index 000000000..5f9c6cd08
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s
@@ -0,0 +1,56 @@
+LilycoveCity_CoveLilyMotel_2F_MapScripts:: @ 81583A0
+ .byte 0
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583A1:: @ 81583A1
+ lock
+ faceplayer
+ checkflag 2
+ callif 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7
+ checkflag 2
+ callif 1, LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
+ specialval RESULT, 335
+ compare RESULT, 1
+ jumpeq LilycoveCity_CoveLilyMotel_2F_EventScript_1583D0
+ release
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7:: @ 81583C7
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_186FE7, 4
+ return
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583D0:: @ 81583D0
+ setflag 2
+ fanfare 370
+ waitfanfare
+ jump LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD:: @ 81583DD
+ message LilycoveCity_CoveLilyMotel_2F_Text_18708F
+ waittext
+ call LilycoveCity_CoveLilyMotel_2F_EventScript_1A02C5
+ special 264
+ waitstate
+ release
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583EE:: @ 81583EE
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_187149, 2
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_1583F7:: @ 81583F7
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_18719E, 2
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_158400:: @ 8158400
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_1871DF, 2
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_158409:: @ 8158409
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_18729A, 2
+ end
+
+LilycoveCity_CoveLilyMotel_2F_EventScript_158412:: @ 8158412
+ msgbox LilycoveCity_CoveLilyMotel_2F_Text_1872D4, 2
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s
new file mode 100644
index 000000000..1dfacdfbf
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s
@@ -0,0 +1,85 @@
+LilycoveCity_DepartmentStoreElevator_MapScripts:: @ 815A39B
+ .byte 0
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A39C:: @ 815A39C
+ lock
+ faceplayer
+ checkflag 2
+ callif 0, LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF
+ copyvar 0x8005, 0x4043
+ special 306
+ message LilycoveCity_DepartmentStoreElevator_Text_1A0EF6
+ waittext
+ multichoice 0, 0, 57, 0
+ switch RESULT
+ case 0, LilycoveCity_DepartmentStoreElevator_EventScript_15A402
+ case 1, LilycoveCity_DepartmentStoreElevator_EventScript_15A425
+ case 2, LilycoveCity_DepartmentStoreElevator_EventScript_15A448
+ case 3, LilycoveCity_DepartmentStoreElevator_EventScript_15A46B
+ case 4, LilycoveCity_DepartmentStoreElevator_EventScript_15A48E
+ case 127, LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A402:: @ 815A402
+ warpplace LilycoveCity_DepartmentStore_1F, 255, 2, 1
+ compare 0x4043, 0
+ jumpeq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
+ setvar 0x4043, 0
+ jump LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A425:: @ 815A425
+ warpplace LilycoveCity_DepartmentStore_2F, 255, 2, 1
+ compare 0x4043, 1
+ jumpeq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
+ setvar 0x4043, 1
+ jump LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A448:: @ 815A448
+ warpplace LilycoveCity_DepartmentStore_3F, 255, 2, 1
+ compare 0x4043, 2
+ jumpeq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
+ setvar 0x4043, 2
+ jump LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A46B:: @ 815A46B
+ warpplace LilycoveCity_DepartmentStore_4F, 255, 2, 1
+ compare 0x4043, 3
+ jumpeq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
+ setvar 0x4043, 3
+ jump LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A48E:: @ 815A48E
+ warpplace LilycoveCity_DepartmentStore_5F, 255, 2, 1
+ compare 0x4043, 4
+ jumpeq LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ call LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8
+ setvar 0x4043, 4
+ jump LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A4B1:: @ 815A4B1
+ hidebox 0, 0, 29, 19
+ release
+ end
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A4B8:: @ 815A4B8
+ hidebox 0, 0, 29, 19
+ move LAST_TALKED, LilycoveCity_DepartmentStoreElevator_Movement_1A0845
+ waitmove 0
+ special 273
+ waitstate
+ setflag 2
+ return
+
+LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF:: @ 815A4CF
+ special 216
+ return
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s
new file mode 100644
index 000000000..b98cc38b5
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s
@@ -0,0 +1,204 @@
+LilycoveCity_DepartmentStoreRooftop_MapScripts:: @ 815A13F
+ map_script 3, LilycoveCity_DepartmentStoreRooftop_MapScript1_15A145
+ .byte 0
+
+LilycoveCity_DepartmentStoreRooftop_MapScript1_15A145:: @ 815A145
+ event_96 3
+ compare RESULT, 1
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F
+ compare RESULT, 0
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A163
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F:: @ 815A15F
+ clearflag 962
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A163:: @ 815A163
+ setflag 962
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A167:: @ 815A167
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStoreRooftop_Text_1A0BE4
+ waittext
+ pokemartdecor LilycoveCity_DepartmentStoreRooftop_PokemartDecor_15A180
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a17e, 0x2
+
+LilycoveCity_DepartmentStoreRooftop_PokemartDecor_15A180:: @ 815A180
+ .2byte 39
+ .2byte 35
+ .2byte 36
+ .2byte 37
+ .2byte 40
+ .2byte 33
+ .2byte 41
+ .2byte 38
+ .2byte 34
+ .2byte 45
+ .2byte 46
+ .2byte 47
+ .2byte 117
+ .2byte 112
+ .2byte 0
+ release
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A1A0:: @ 815A1A0
+ lock
+ faceplayer
+ event_96 3
+ compare RESULT, 1
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A1BA
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C61F, 4
+ release
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A1BA:: @ 815A1BA
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C685, 4
+ release
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A1C4:: @ 815A1C4
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C70E, 2
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A1CD:: @ 815A1CD
+ lockall
+ message LilycoveCity_DepartmentStoreRooftop_Text_18C72B
+ waittext
+ showmoney 0, 0
+ snop
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A1DE
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A1DE:: @ 815A1DE
+ multichoice 16, 0, 42, 0
+ copyvar 0x4001, RESULT
+ switch 0x4001
+ case 0, LilycoveCity_DepartmentStoreRooftop_EventScript_15A21C
+ case 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A227
+ case 2, LilycoveCity_DepartmentStoreRooftop_EventScript_15A232
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C7C3, 4
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A396
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A21C:: @ 815A21C
+ setvar 0x4000, 26
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A227:: @ 815A227
+ setvar 0x4000, 27
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A232:: @ 815A232
+ setvar 0x4000, 28
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A23D:: @ 815A23D
+ checkmoney 0xc8, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A244:: @ 815A244
+ checkmoney 0x12c, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A24B:: @ 815A24B
+ checkmoney 0x15e, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A252:: @ 815A252
+ paymoney 0xc8, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A259:: @ 815A259
+ paymoney 0x12c, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A260:: @ 815A260
+ paymoney 0x15e, 0
+ return
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
+ compare 0x4001, 0
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A23D
+ compare 0x4001, 1
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A244
+ compare 0x4001, 2
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A24B
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStoreRooftop_EventScript_15A37A
+ checkitemspace 0x4000, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
+ compare 0x4001, 0
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A252
+ compare 0x4001, 1
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A259
+ compare 0x4001, 2
+ callif 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A260
+ updatemoney 0, 0
+ snop
+ bufferitem 0, 0x4000
+ playsfx 106
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C75F, 4
+ additem 0x4000, 1
+ bufferitem 1, 0x4000
+ bufferstd 2, 14
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
+ random 64
+ compare RESULT, 0
+ jumpif 5, LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
+ checkitemspace 0x4000, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
+ playsfx 106
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
+ additem 0x4000, 1
+ bufferitem 1, 0x4000
+ bufferstd 2, 14
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
+ random 64
+ compare RESULT, 0
+ jumpif 5, LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
+ checkitemspace 0x4000, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
+ playsfx 106
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
+ additem 0x4000, 1
+ bufferitem 1, 0x4000
+ bufferstd 2, 14
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E:: @ 815A36E
+ message LilycoveCity_DepartmentStoreRooftop_Text_18C72B
+ waittext
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A1DE
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A37A:: @ 815A37A
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C7AF, 4
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A396
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A388:: @ 815A388
+ msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C79, 4
+ jump LilycoveCity_DepartmentStoreRooftop_EventScript_15A396
+ end
+
+LilycoveCity_DepartmentStoreRooftop_EventScript_15A396:: @ 815A396
+ hidemoney 0, 0
+ releaseall
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.s
new file mode 100644
index 000000000..8a84101aa
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.s
@@ -0,0 +1,146 @@
+LilycoveCity_DepartmentStore_1F_MapScripts:: @ 8159D54
+ .byte 0
+
+LilycoveCity_DepartmentStore_1F_EventScript_159D55:: @ 8159D55
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18BFB5, 2
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
+ lock
+ faceplayer
+ checkdailyflags
+ compare 0x4045, 0
+ jumpif 5, LilycoveCity_DepartmentStore_1F_EventScript_159EB1
+ checkflag 2250
+ jumpeq LilycoveCity_DepartmentStore_1F_EventScript_159E4C
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4B5E, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStore_1F_EventScript_159E56
+ setflag 2250
+ message LilycoveCity_DepartmentStore_1F_Text_1C4CC6
+ waittext
+ special 257
+ copyvar 0x8008, RESULT
+ special 337
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4CF6, 4
+ move 2, LilycoveCity_DepartmentStore_1F_Movement_1A0843
+ waitmove 0
+ playsfx 4
+ special 217
+ special 258
+ pause 220
+ special 218
+ pause 10
+ move 2, LilycoveCity_DepartmentStore_1F_Movement_1A0839
+ waitmove 0
+ compare 0x8004, 0
+ jumpeq LilycoveCity_DepartmentStore_1F_EventScript_159E60
+ inccounter 46
+ compare 0x8006, 0
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E3A
+ compare 0x8006, 1
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E43
+ bufferitem 0, 0x8005
+ compare 0x8004, 1
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E78
+ compare 0x8004, 2
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E81
+ compare 0x8004, 3
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E8A
+ compare 0x8004, 4
+ callif 1, LilycoveCity_DepartmentStore_1F_EventScript_159E93
+ giveitem 0x8005
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStore_1F_EventScript_159E9C
+ jump LilycoveCity_DepartmentStore_1F_EventScript_159E6E
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E3A:: @ 8159E3A
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4D7D, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E43:: @ 8159E43
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4DD1, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E4C:: @ 8159E4C
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4C6A, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E56:: @ 8159E56
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4C85, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E60:: @ 8159E60
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4E27, 4
+ jump LilycoveCity_DepartmentStore_1F_EventScript_159E6E
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E6E:: @ 8159E6E
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C501C, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E78:: @ 8159E78
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4E4F, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E81:: @ 8159E81
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4E92, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E8A:: @ 8159E8A
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4ED8, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E93:: @ 8159E93
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4F1C, 4
+ return
+
+LilycoveCity_DepartmentStore_1F_EventScript_159E9C:: @ 8159E9C
+ copyvar 0x4045, 0x8005
+ jump LilycoveCity_DepartmentStore_1F_EventScript_159EA7
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159EA7:: @ 8159EA7
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4F77, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159EB1:: @ 8159EB1
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4FCC, 4
+ giveitem 0x4045
+ compare RESULT, 0
+ jumpeq LilycoveCity_DepartmentStore_1F_EventScript_159EA7
+ setvar 0x4045, 0
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159ED7:: @ 8159ED7
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18BFDB, 2
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159EE0:: @ 8159EE0
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18C044, 2
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159EE9:: @ 8159EE9
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18C07A, 2
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159EF2:: @ 8159EF2
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZUMARILL, 0
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18C0C3, 4
+ waitpokecry
+ release
+ end
+
+LilycoveCity_DepartmentStore_1F_EventScript_159F05:: @ 8159F05
+ msgbox LilycoveCity_DepartmentStore_1F_Text_18C0D9, 3
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_2F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_2F.s
new file mode 100644
index 000000000..f331dc758
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_2F.s
@@ -0,0 +1,70 @@
+LilycoveCity_DepartmentStore_2F_MapScripts:: @ 8159F0E
+ .byte 0
+
+LilycoveCity_DepartmentStore_2F_EventScript_159F0F:: @ 8159F0F
+ msgbox LilycoveCity_DepartmentStore_2F_Text_18C162, 2
+ end
+
+LilycoveCity_DepartmentStore_2F_EventScript_159F18:: @ 8159F18
+ msgbox LilycoveCity_DepartmentStore_2F_Text_18C195, 2
+ end
+
+LilycoveCity_DepartmentStore_2F_EventScript_159F21:: @ 8159F21
+ msgbox LilycoveCity_DepartmentStore_2F_Text_18C1D9, 2
+ end
+
+LilycoveCity_DepartmentStore_2F_EventScript_159F2A:: @ 8159F2A
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_2F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_2F_Pokemart_159F44
+ msgbox LilycoveCity_DepartmentStore_2F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x159f41, 0x3
+
+LilycoveCity_DepartmentStore_2F_Pokemart_159F44:: @ 8159F44
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_ULTRA_BALL
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_FULL_HEAL
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_BURN_HEAL
+ .2byte ITEM_ICE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_FLUFFY_TAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_2F_EventScript_159F5E:: @ 8159F5E
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_2F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_2F_Pokemart_159F78
+ msgbox LilycoveCity_DepartmentStore_2F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x159f75, 0x3
+
+LilycoveCity_DepartmentStore_2F_Pokemart_159F78:: @ 8159F78
+ .2byte ITEM_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_MAX_POTION
+ .2byte ITEM_REVIVE
+ .2byte ITEM_REPEL
+ .2byte ITEM_SUPER_REPEL
+ .2byte ITEM_MAX_REPEL
+ .2byte ITEM_WAVE_MAIL
+ .2byte ITEM_MECH_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_3F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_3F.s
new file mode 100644
index 000000000..eddabf55f
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_3F.s
@@ -0,0 +1,60 @@
+LilycoveCity_DepartmentStore_3F_MapScripts:: @ 8159F90
+ .byte 0
+
+LilycoveCity_DepartmentStore_3F_EventScript_159F91:: @ 8159F91
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_3F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_3F_Pokemart_159FA8
+ msgbox LilycoveCity_DepartmentStore_3F_Text_1A0C02, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_3F_Pokemart_159FA8:: @ 8159FA8
+ .2byte ITEM_PROTEIN
+ .2byte ITEM_CALCIUM
+ .2byte ITEM_IRON
+ .2byte ITEM_ZINC
+ .2byte ITEM_CARBOS
+ .2byte ITEM_HP_UP
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_3F_EventScript_159FB8:: @ 8159FB8
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_3F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_3F_Pokemart_159FD0
+ msgbox LilycoveCity_DepartmentStore_3F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x159fcf, 0x1
+
+LilycoveCity_DepartmentStore_3F_Pokemart_159FD0:: @ 8159FD0
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_SPECIAL
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_DIRE_HIT
+ .2byte ITEM_GUARD_SPEC
+ .2byte ITEM_X_ACCURACY
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_3F_EventScript_159FE2:: @ 8159FE2
+ msgbox LilycoveCity_DepartmentStore_3F_Text_18C24B, 2
+ end
+
+LilycoveCity_DepartmentStore_3F_EventScript_159FEB:: @ 8159FEB
+ msgbox LilycoveCity_DepartmentStore_3F_Text_18C2B5, 2
+ end
+
+LilycoveCity_DepartmentStore_3F_EventScript_159FF4:: @ 8159FF4
+ msgbox LilycoveCity_DepartmentStore_3F_Text_18C32E, 2
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_4F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.s
new file mode 100644
index 000000000..7466deb99
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.s
@@ -0,0 +1,55 @@
+LilycoveCity_DepartmentStore_4F_MapScripts:: @ 8159FFD
+ .byte 0
+
+LilycoveCity_DepartmentStore_4F_EventScript_159FFE:: @ 8159FFE
+ msgbox LilycoveCity_DepartmentStore_4F_Text_18C39C, 2
+ end
+
+LilycoveCity_DepartmentStore_4F_EventScript_15A007:: @ 815A007
+ msgbox LilycoveCity_DepartmentStore_4F_Text_18C41B, 2
+ end
+
+LilycoveCity_DepartmentStore_4F_EventScript_15A010:: @ 815A010
+ msgbox LilycoveCity_DepartmentStore_4F_Text_18C481, 2
+ end
+
+LilycoveCity_DepartmentStore_4F_EventScript_15A019:: @ 815A019
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_4F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_4F_Pokemart_15A030
+ msgbox LilycoveCity_DepartmentStore_4F_Text_1A0C02, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_4F_Pokemart_15A030:: @ 815A030
+ .2byte ITEM_TM38
+ .2byte ITEM_TM25
+ .2byte ITEM_TM14
+ .2byte ITEM_TM15
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_4F_EventScript_15A03C:: @ 815A03C
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_4F_Text_1A0BE4
+ waittext
+ pokemart LilycoveCity_DepartmentStore_4F_Pokemart_15A054
+ msgbox LilycoveCity_DepartmentStore_4F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a053, 0x1
+
+LilycoveCity_DepartmentStore_4F_Pokemart_15A054:: @ 815A054
+ .2byte ITEM_TM17
+ .2byte ITEM_TM20
+ .2byte ITEM_TM33
+ .2byte ITEM_TM16
+ .2byte ITEM_NONE
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_5F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.s
new file mode 100644
index 000000000..bfe83d6ec
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.s
@@ -0,0 +1,121 @@
+LilycoveCity_DepartmentStore_5F_MapScripts:: @ 815A060
+ .byte 0
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A061:: @ 815A061
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
+ waittext
+ pokemartbp LilycoveCity_DepartmentStore_5F_Pokemart_15A078
+ msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
+ release
+ end
+
+LilycoveCity_DepartmentStore_5F_Pokemart_15A078:: @ 815A078
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ACCURACY
+ .2byte ITEM_SUPER_REPEL
+ .2byte 91
+ .2byte 92
+ .2byte ITEM_SUN_STONE
+ .2byte ITEM_MOON_STONE
+ .2byte ITEM_FIRE_STONE
+ .2byte ITEM_THUNDER_STONE
+ .2byte ITEM_WATER_STONE
+ .2byte ITEM_LEAF_STONE
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A094:: @ 815A094
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
+ waittext
+ pokemartbp LilycoveCity_DepartmentStore_5F_Pokemart_15A0AC
+ msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a0ab, 0x1
+
+LilycoveCity_DepartmentStore_5F_Pokemart_15A0AC:: @ 815A0AC
+ .2byte 101
+ .2byte 102
+ .2byte ITEM_BIG_MUSHROOM
+ .2byte 105
+ .2byte ITEM_PEARL
+ .2byte ITEM_BIG_PEARL
+ .2byte ITEM_STARDUST
+ .2byte ITEM_STAR_PIECE
+ .2byte ITEM_NUGGET
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A0C2:: @ 815A0C2
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
+ waittext
+ pokemartbp LilycoveCity_DepartmentStore_5F_Pokemart_15A0DC
+ msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a0d9, 0x3
+
+LilycoveCity_DepartmentStore_5F_Pokemart_15A0DC:: @ 815A0DC
+ .2byte ITEM_CARBOS
+ .2byte ITEM_CALCIUM
+ .2byte ITEM_RARE_CANDY
+ .2byte ITEM_PP_UP
+ .2byte ITEM_ZINC
+ .2byte ITEM_PP_MAX
+ .2byte 72
+ .2byte ITEM_GUARD_SPEC
+ .2byte ITEM_DIRE_HIT
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A0F2:: @ 815A0F2
+ lock
+ faceplayer
+ message LilycoveCity_DepartmentStore_5F_Text_1A0BE4
+ waittext
+ pokemartbp LilycoveCity_DepartmentStore_5F_Pokemart_15A10C
+ msgbox LilycoveCity_DepartmentStore_5F_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a109, 0x3
+
+LilycoveCity_DepartmentStore_5F_Pokemart_15A10C:: @ 815A10C
+ .2byte 59
+ .2byte 60
+ .2byte 61
+ .2byte 62
+ .2byte ITEM_HP_UP
+ .2byte ITEM_PROTEIN
+ .2byte ITEM_IRON
+ .2byte ITEM_RED_SHARD
+ .2byte ITEM_BLUE_SHARD
+ .2byte ITEM_YELLOW_SHARD
+ .2byte ITEM_NONE
+ release
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A124:: @ 815A124
+ msgbox LilycoveCity_DepartmentStore_5F_Text_18C4F9, 2
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A12D:: @ 815A12D
+ msgbox LilycoveCity_DepartmentStore_5F_Text_18C59F, 2
+ end
+
+LilycoveCity_DepartmentStore_5F_EventScript_15A136:: @ 815A136
+ msgbox LilycoveCity_DepartmentStore_5F_Text_18C556, 2
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_EmptyMap.s b/data/scripts/maps/LilycoveCity_EmptyMap.s
new file mode 100644
index 000000000..25ecb3866
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_EmptyMap.s
@@ -0,0 +1,3 @@
+LilycoveCity_EmptyMap_MapScripts:: @ 8159AAC
+ .byte 0
+
diff --git a/data/scripts/maps/LilycoveCity_Harbor.s b/data/scripts/maps/LilycoveCity_Harbor.s
new file mode 100644
index 000000000..6195332a1
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_Harbor.s
@@ -0,0 +1,170 @@
+LilycoveCity_Harbor_MapScripts:: @ 8159893
+ map_script 3, LilycoveCity_Harbor_MapScript1_159899
+ .byte 0
+
+LilycoveCity_Harbor_MapScript1_159899:: @ 8159899
+ warp6 LilycoveCity, 255, 12, 33
+ end
+
+LilycoveCity_Harbor_EventScript_1598A2:: @ 81598A2
+ lock
+ faceplayer
+ checkitem ITEM_EON_TICKET, 1
+ compare RESULT, 1
+ jumpeq LilycoveCity_Harbor_EventScript_1599EE
+ jump LilycoveCity_Harbor_EventScript_1598BA
+ end
+
+LilycoveCity_Harbor_EventScript_1598BA:: @ 81598BA
+ checkflag 2052
+ jumpeq LilycoveCity_Harbor_EventScript_1598CD
+ msgbox LilycoveCity_Harbor_Text_18B306, 4
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_1598CD:: @ 81598CD
+ msgbox LilycoveCity_Harbor_Text_18B36F, 4
+ checkitem ITEM_SS_TICKET, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_Harbor_EventScript_159929
+ message LilycoveCity_Harbor_Text_18B406
+ waittext
+ jump LilycoveCity_Harbor_EventScript_1598F1
+ end
+
+LilycoveCity_Harbor_EventScript_1598F1:: @ 81598F1
+ multichoicedef 18, 6, 56, 2, 0
+ switch RESULT
+ case 0, LilycoveCity_Harbor_EventScript_159933
+ case 1, LilycoveCity_Harbor_EventScript_15995B
+ case 2, LilycoveCity_Harbor_EventScript_1599E4
+ case 127, LilycoveCity_Harbor_EventScript_1599E4
+ end
+
+LilycoveCity_Harbor_EventScript_159929:: @ 8159929
+ msgbox LilycoveCity_Harbor_Text_18B3A9, 4
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_159933:: @ 8159933
+ msgbox LilycoveCity_Harbor_Text_18B47D, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_Harbor_EventScript_15997E
+ setvar 0x40b4, 5
+ call LilycoveCity_Harbor_EventScript_15998A
+ warp SSTidalCorridor, 255, 1, 10
+ waitstate
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_15995B:: @ 815995B
+ msgbox LilycoveCity_Harbor_Text_18B499, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_Harbor_EventScript_15997E
+ call LilycoveCity_Harbor_EventScript_15998A
+ warp BattleTower_Outside, 255, 19, 23
+ waitstate
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_15997E:: @ 815997E
+ message LilycoveCity_Harbor_Text_18B4E2
+ waittext
+ jump LilycoveCity_Harbor_EventScript_1598F1
+ end
+
+LilycoveCity_Harbor_EventScript_15998A:: @ 815998A
+ msgbox LilycoveCity_Harbor_Text_18B4B3, 4
+ closebutton
+ move LAST_TALKED, LilycoveCity_Harbor_Movement_1A0841
+ waitmove 0
+ pause 30
+ spriteinvisible LAST_TALKED, 13, 10
+ compare FACING, 2
+ callif 1, LilycoveCity_Harbor_EventScript_1599D9
+ compare FACING, 4
+ callif 1, LilycoveCity_Harbor_EventScript_1599CE
+ pause 30
+ spriteinvisible 255, 0, 0
+ setvar 0x8004, 2
+ call LilycoveCity_Harbor_EventScript_1A040E
+ return
+
+LilycoveCity_Harbor_EventScript_1599CE:: @ 81599CE
+ move 255, LilycoveCity_Harbor_Movement_159A86
+ waitmove 0
+ return
+
+LilycoveCity_Harbor_EventScript_1599D9:: @ 81599D9
+ move 255, LilycoveCity_Harbor_Movement_159A89
+ waitmove 0
+ return
+
+LilycoveCity_Harbor_EventScript_1599E4:: @ 81599E4
+ msgbox LilycoveCity_Harbor_Text_18B45B, 4
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_1599EE:: @ 81599EE
+ checkflag 2052
+ jumpif 0, LilycoveCity_Harbor_EventScript_1598BA
+ checkflag 206
+ jumpeq LilycoveCity_Harbor_EventScript_1598BA
+ checkflag 2131
+ jumpif 0, LilycoveCity_Harbor_EventScript_1598BA
+ msgbox LilycoveCity_Harbor_Text_1C50F2, 4
+ closebutton
+ move LAST_TALKED, LilycoveCity_Harbor_Movement_1A0841
+ waitmove 0
+ pause 30
+ spriteinvisible LAST_TALKED, 13, 10
+ pause 60
+ reappear 4
+ pause 30
+ move 4, LilycoveCity_Harbor_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_Harbor_Text_1C5120, 4
+ closebutton
+ move 4, LilycoveCity_Harbor_Movement_1A0841
+ waitmove 0
+ pause 30
+ disappear 4
+ compare FACING, 2
+ callif 1, LilycoveCity_Harbor_EventScript_1599D9
+ compare FACING, 4
+ callif 1, LilycoveCity_Harbor_EventScript_1599CE
+ pause 30
+ spriteinvisible 255, 0, 0
+ special 0
+ setvar 0x8004, 2
+ call LilycoveCity_Harbor_EventScript_1A040E
+ warp SouthernIsland_Exterior, 255, 13, 22
+ waitstate
+ release
+ end
+
+LilycoveCity_Harbor_Movement_159A86:: @ 8159A86
+ step_right
+ step_26
+ step_end
+
+LilycoveCity_Harbor_Movement_159A89:: @ 8159A89
+ step_up
+ step_end
+
+ .incbin "baserom.gba", 0x159a8b, 0x2
+
+LilycoveCity_Harbor_EventScript_159A8D:: @ 8159A8D
+ lock
+ faceplayer
+ checkflag 2052
+ jumpeq LilycoveCity_Harbor_EventScript_159AA2
+ msgbox LilycoveCity_Harbor_Text_18B504, 4
+ release
+ end
+
+LilycoveCity_Harbor_EventScript_159AA2:: @ 8159AA2
+ msgbox LilycoveCity_Harbor_Text_18B58E, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_House1.s b/data/scripts/maps/LilycoveCity_House1.s
new file mode 100644
index 000000000..28a4532b1
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_House1.s
@@ -0,0 +1,17 @@
+LilycoveCity_House1_MapScripts:: @ 8159B85
+ .byte 0
+
+LilycoveCity_House1_EventScript_159B86:: @ 8159B86
+ msgbox LilycoveCity_House1_Text_18B7B0, 2
+ end
+
+LilycoveCity_House1_EventScript_159B8F:: @ 8159B8F
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_KECLEON, 0
+ msgbox LilycoveCity_House1_Text_18B82B, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_House2.s b/data/scripts/maps/LilycoveCity_House2.s
new file mode 100644
index 000000000..c1fe01b46
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_House2.s
@@ -0,0 +1,22 @@
+LilycoveCity_House2_MapScripts:: @ 8159BA2
+ .byte 0
+
+LilycoveCity_House2_EventScript_159BA3:: @ 8159BA3
+ lock
+ faceplayer
+ checkflag 234
+ jumpeq LilycoveCity_House2_EventScript_159BDA
+ msgbox LilycoveCity_House2_Text_18B83C, 4
+ giveitem ITEM_TM44
+ compare RESULT, 0
+ jumpeq LilycoveCity_House2_EventScript_1A029B
+ setflag 234
+ msgbox LilycoveCity_House2_Text_18B883, 4
+ release
+ end
+
+LilycoveCity_House2_EventScript_159BDA:: @ 8159BDA
+ msgbox LilycoveCity_House2_Text_18B883, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_House3.s b/data/scripts/maps/LilycoveCity_House3.s
new file mode 100644
index 000000000..5c4eaac9d
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_House3.s
@@ -0,0 +1,100 @@
+LilycoveCity_House3_MapScripts:: @ 8159BE4
+ map_script 3, LilycoveCity_House3_MapScript1_159BEA
+ .byte 0
+
+LilycoveCity_House3_MapScript1_159BEA:: @ 8159BEA
+ random 4
+ copyvar 0x4001, RESULT
+ end
+
+LilycoveCity_House3_EventScript_159BF3:: @ 8159BF3
+ lock
+ faceplayer
+ msgbox LilycoveCity_House3_Text_18B8CC, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_House3_EventScript_159C1D
+ msgbox LilycoveCity_House3_Text_18BA2B, 4
+ closebutton
+ move LAST_TALKED, LilycoveCity_House3_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+LilycoveCity_House3_EventScript_159C1D:: @ 8159C1D
+ msgbox LilycoveCity_House3_Text_18B9DC, 4
+ closebutton
+ move LAST_TALKED, LilycoveCity_House3_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+LilycoveCity_House3_EventScript_159C32:: @ 8159C32
+ lock
+ faceplayer
+ msgbox LilycoveCity_House3_Text_18BD64, 4
+ closebutton
+ move LAST_TALKED, LilycoveCity_House3_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+LilycoveCity_House3_EventScript_159C49:: @ 8159C49
+ lock
+ faceplayer
+ switch 0x4001
+ case 0, LilycoveCity_House3_EventScript_159D19
+ case 1, LilycoveCity_House3_EventScript_159D23
+ case 2, LilycoveCity_House3_EventScript_159D2D
+ case 3, LilycoveCity_House3_EventScript_159D37
+ end
+
+LilycoveCity_House3_EventScript_159C7D:: @ 8159C7D
+ lock
+ faceplayer
+ switch 0x4001
+ case 0, LilycoveCity_House3_EventScript_159D19
+ case 1, LilycoveCity_House3_EventScript_159D23
+ case 2, LilycoveCity_House3_EventScript_159D2D
+ case 3, LilycoveCity_House3_EventScript_159D37
+ end
+
+LilycoveCity_House3_EventScript_159CB1:: @ 8159CB1
+ lock
+ faceplayer
+ switch 0x4001
+ case 0, LilycoveCity_House3_EventScript_159D19
+ case 1, LilycoveCity_House3_EventScript_159D23
+ case 2, LilycoveCity_House3_EventScript_159D2D
+ case 3, LilycoveCity_House3_EventScript_159D37
+ end
+
+LilycoveCity_House3_EventScript_159CE5:: @ 8159CE5
+ lock
+ faceplayer
+ switch 0x4001
+ case 0, LilycoveCity_House3_EventScript_159D19
+ case 1, LilycoveCity_House3_EventScript_159D23
+ case 2, LilycoveCity_House3_EventScript_159D2D
+ case 3, LilycoveCity_House3_EventScript_159D37
+ end
+
+LilycoveCity_House3_EventScript_159D19:: @ 8159D19
+ msgbox LilycoveCity_House3_Text_18BDDB, 4
+ release
+ end
+
+LilycoveCity_House3_EventScript_159D23:: @ 8159D23
+ msgbox LilycoveCity_House3_Text_18BE14, 4
+ release
+ end
+
+LilycoveCity_House3_EventScript_159D2D:: @ 8159D2D
+ msgbox LilycoveCity_House3_Text_18BE57, 4
+ release
+ end
+
+LilycoveCity_House3_EventScript_159D37:: @ 8159D37
+ msgbox LilycoveCity_House3_Text_18BE8E, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_House4.s b/data/scripts/maps/LilycoveCity_House4.s
new file mode 100644
index 000000000..98d8ca9a4
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_House4.s
@@ -0,0 +1,11 @@
+LilycoveCity_House4_MapScripts:: @ 8159D41
+ .byte 0
+
+LilycoveCity_House4_EventScript_159D42:: @ 8159D42
+ msgbox LilycoveCity_House4_Text_18BEE8, 2
+ end
+
+LilycoveCity_House4_EventScript_159D4B:: @ 8159D4B
+ msgbox LilycoveCity_House4_Text_18BF4E, 2
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s
new file mode 100644
index 000000000..9975419d0
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s
@@ -0,0 +1,163 @@
+LilycoveCity_LilycoveMuseum_1F_MapScripts:: @ 815841B
+ .byte 0
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15841C:: @ 815841C
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187348, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158425:: @ 8158425
+ lockall
+ move 2, LilycoveCity_LilycoveMuseum_1F_Movement_1A0839
+ message LilycoveCity_LilycoveMuseum_1F_Text_1873B9
+ waittext
+ multichoice 20, 8, 16, 1
+ compare RESULT, 0
+ jumpeq LilycoveCity_LilycoveMuseum_1F_EventScript_158458
+ compare RESULT, 1
+ jumpeq LilycoveCity_LilycoveMuseum_1F_EventScript_15844F
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15844F:: @ 815844F
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187459, 2
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158458:: @ 8158458
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187495, 5
+ compare RESULT, 0
+ jumpeq LilycoveCity_LilycoveMuseum_1F_EventScript_158477
+ compare RESULT, 1
+ jumpeq LilycoveCity_LilycoveMuseum_1F_EventScript_158481
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158477:: @ 8158477
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1874F5, 3
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158481:: @ 8158481
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187534, 3
+ move 2, LilycoveCity_LilycoveMuseum_1F_Movement_1584FC
+ waitmove 0
+ disappear 2
+ switch FACING
+ case 2, LilycoveCity_LilycoveMuseum_1F_EventScript_1584BD
+ case 3, LilycoveCity_LilycoveMuseum_1F_EventScript_1584D2
+ case 4, LilycoveCity_LilycoveMuseum_1F_EventScript_1584E7
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_1584BD:: @ 81584BD
+ lockall
+ move 255, LilycoveCity_LilycoveMuseum_1F_Movement_158504
+ waitmove 0
+ warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ waitstate
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_1584D2:: @ 81584D2
+ lockall
+ move 255, LilycoveCity_LilycoveMuseum_1F_Movement_1584FE
+ waitmove 0
+ warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ waitstate
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_1584E7:: @ 81584E7
+ lockall
+ move 255, LilycoveCity_LilycoveMuseum_1F_Movement_158501
+ waitmove 0
+ warp LilycoveCity_LilycoveMuseum_2F, 255, 11, 8
+ waitstate
+ end
+
+LilycoveCity_LilycoveMuseum_1F_Movement_1584FC:: @ 81584FC
+ step_up
+ step_end
+
+LilycoveCity_LilycoveMuseum_1F_Movement_1584FE:: @ 81584FE
+ step_left
+ step_up
+ step_end
+
+LilycoveCity_LilycoveMuseum_1F_Movement_158501:: @ 8158501
+ step_right
+ step_up
+ step_end
+
+LilycoveCity_LilycoveMuseum_1F_Movement_158504:: @ 8158504
+ step_up
+ step_up
+ step_end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158507:: @ 8158507
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_18757F, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158510:: @ 8158510
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1875BE, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158519:: @ 8158519
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1875F8, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158522:: @ 8158522
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187641, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15852B:: @ 815852B
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1876A1, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158534:: @ 8158534
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_18770C, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15853D:: @ 815853D
+LilycoveCity_LilycoveMuseum_2F_EventScript_15853D:: @ 815853D
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_18775F, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158546:: @ 8158546
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1877A9, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15854F:: @ 815854F
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187810, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158558:: @ 8158558
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1878B7, 2
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158561:: @ 8158561
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_18791D, 2
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15856A:: @ 815856A
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1879BF, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158573:: @ 8158573
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_1879E6, 3
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15857C:: @ 815857C
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187A1A, 2
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_158585:: @ 8158585
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187AA0, 2
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_15858E:: @ 815858E
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187B04, 2
+ lockall
+ move 8, LilycoveCity_LilycoveMuseum_1F_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_1F_EventScript_1585A3:: @ 81585A3
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187B7F, 2
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s
new file mode 100644
index 000000000..44015d256
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s
@@ -0,0 +1,230 @@
+LilycoveCity_LilycoveMuseum_2F_MapScripts:: @ 81585AC
+ map_script 1, LilycoveCity_LilycoveMuseum_2F_MapScript1_1585B7
+ map_script 2, LilycoveCity_LilycoveMuseum_2F_MapScript2_158670
+ .byte 0
+
+LilycoveCity_LilycoveMuseum_2F_MapScript1_1585B7:: @ 81585B7
+ checkflag 160
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6:: @ 81585C6
+ checkflag 161
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158615
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5:: @ 81585D5
+ checkflag 162
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_15862D
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4:: @ 81585E4
+ checkflag 163
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158645
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3:: @ 81585F3
+ checkflag 164
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_15865D
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD:: @ 81585FD
+ setmaptile 10, 6, 606, 1
+ setmaptile 11, 6, 607, 1
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158615:: @ 8158615
+ setmaptile 18, 6, 604, 1
+ setmaptile 19, 6, 605, 1
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15862D:: @ 815862D
+ setmaptile 14, 10, 608, 1
+ setmaptile 15, 10, 609, 1
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158645:: @ 8158645
+ setmaptile 6, 10, 602, 1
+ setmaptile 7, 10, 603, 1
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15865D:: @ 815865D
+ setmaptile 2, 6, 610, 1
+ setmaptile 3, 6, 611, 1
+ end
+
+LilycoveCity_LilycoveMuseum_2F_MapScript2_158670:: @ 8158670
+ map_script_2 0x4094, 0, LilycoveCity_LilycoveMuseum_2F_EventScript_15867A
+ .2byte 0
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15867A:: @ 815867A
+ lockall
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1A0839
+ move 255, LilycoveCity_LilycoveMuseum_2F_Movement_1586D3
+ waitmove 0
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_187C42, 3
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1586D5
+ waitmove 0
+ move 255, LilycoveCity_LilycoveMuseum_2F_Movement_1586D5
+ waitmove 0
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_187C64, 3
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1A0839
+ waitmove 0
+ move 255, LilycoveCity_LilycoveMuseum_2F_Movement_1586D3
+ waitmove 0
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_187E1D, 3
+ copyvar 0x4094, 0x1
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_Movement_1586D3:: @ 81586D3
+ step_27
+ step_end
+
+LilycoveCity_LilycoveMuseum_2F_Movement_1586D5:: @ 81586D5
+ step_01
+ step_14
+ step_end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1586D8:: @ 81586D8
+ lockall
+ checkflag 236
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158793
+ specialval 0x8004, 137
+ switch 0x8004
+ case 1, LilycoveCity_LilycoveMuseum_2F_EventScript_15872C
+ case 2, LilycoveCity_LilycoveMuseum_2F_EventScript_15872C
+ case 3, LilycoveCity_LilycoveMuseum_2F_EventScript_15872C
+ case 4, LilycoveCity_LilycoveMuseum_2F_EventScript_15872C
+ case 5, LilycoveCity_LilycoveMuseum_2F_EventScript_158735
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_187F4E, 2
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15872C:: @ 815872C
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_187F9D, 2
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158735:: @ 8158735
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18802F, 4
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1586D5
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188041, 4
+ jump LilycoveCity_LilycoveMuseum_2F_EventScript_15875C
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15875C:: @ 815875C
+ move 1, LilycoveCity_LilycoveMuseum_2F_Movement_1A0839
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188120, 4
+ givedecoration 44
+ compare RESULT, 0
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158783
+ setflag 236
+ closebutton
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158783:: @ 8158783
+ call LilycoveCity_LilycoveMuseum_2F_EventScript_1A02B8
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188166, 4
+ closebutton
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158793:: @ 8158793
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188194, 2
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15879D:: @ 815879D
+ lockall
+ checkflag 162
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_15883C
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188219, 3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1587B0:: @ 81587B0
+ lockall
+ checkflag 164
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158858
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18824C, 3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1587C3:: @ 81587C3
+ lockall
+ checkflag 160
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_158820
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882B4, 3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1587D6:: @ 81587D6
+ lockall
+ checkflag 161
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_15882E
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188281, 3
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_1587E9:: @ 81587E9
+ lockall
+ checkflag 163
+ jumpeq LilycoveCity_LilycoveMuseum_2F_EventScript_15884A
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882E6, 3
+ end
+
+ .incbin "baserom.gba", 0x1587fc, 0x9
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158805:: @ 8158805
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188336, 2
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15880E:: @ 815880E
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_1883AB, 2
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158817:: @ 8158817
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_188423, 2
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158820:: @ 8158820
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18831A, 3
+ fadescreen 1
+ showcontestwinner 9
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15882E:: @ 815882E
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18831A, 3
+ fadescreen 1
+ showcontestwinner 10
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15883C:: @ 815883C
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18831A, 3
+ fadescreen 1
+ showcontestwinner 11
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_15884A:: @ 815884A
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18831A, 3
+ fadescreen 1
+ showcontestwinner 12
+ releaseall
+ end
+
+LilycoveCity_LilycoveMuseum_2F_EventScript_158858:: @ 8158858
+ msgbox LilycoveCity_LilycoveMuseum_2F_Text_18831A, 3
+ fadescreen 1
+ showcontestwinner 13
+ releaseall
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_MoveDeletersHouse.s b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.s
new file mode 100644
index 000000000..cd6f648a4
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.s
@@ -0,0 +1,64 @@
+LilycoveCity_MoveDeletersHouse_MapScripts:: @ 8159AAD
+ .byte 0
+
+LilycoveCity_MoveDeletersHouse_EventScript_159AAE:: @ 8159AAE
+ lockall
+ move 1, LilycoveCity_MoveDeletersHouse_Movement_1A0839
+ waitmove 0
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B622, 5
+ switch RESULT
+ case 1, LilycoveCity_MoveDeletersHouse_EventScript_159ADE
+ case 0, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
+ releaseall
+ end
+
+LilycoveCity_MoveDeletersHouse_EventScript_159ADE:: @ 8159ADE
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B68C, 4
+ special 159
+ waitstate
+ compare 0x8004, 255
+ jumpeq LilycoveCity_MoveDeletersHouse_EventScript_159B7B
+ special 328
+ compare RESULT, 1
+ jumpeq LilycoveCity_MoveDeletersHouse_EventScript_159B71
+ special 223
+ compare RESULT, 1
+ jumpeq LilycoveCity_MoveDeletersHouse_EventScript_159B64
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B6B0, 4
+ fadescreen 1
+ special 220
+ fadescreen 0
+ compare 0x8005, 4
+ jumpeq LilycoveCity_MoveDeletersHouse_EventScript_159ADE
+ special 222
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B6F2, 5
+ switch RESULT
+ case 1, LilycoveCity_MoveDeletersHouse_EventScript_159B53
+ case 0, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
+ releaseall
+ end
+
+LilycoveCity_MoveDeletersHouse_EventScript_159B53:: @ 8159B53
+ special 221
+ fanfare 378
+ waitfanfare
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B71E, 4
+ releaseall
+ end
+
+LilycoveCity_MoveDeletersHouse_EventScript_159B64:: @ 8159B64
+ special 222
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B6D0, 4
+ releaseall
+ end
+
+LilycoveCity_MoveDeletersHouse_EventScript_159B71:: @ 8159B71
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B78C, 4
+ releaseall
+ end
+
+LilycoveCity_MoveDeletersHouse_EventScript_159B7B:: @ 8159B7B
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B757, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.s b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..d34bd0b84
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.s
@@ -0,0 +1,34 @@
+LilycoveCity_PokemonCenter_1F_MapScripts:: @ 8159327
+ map_script 3, LilycoveCity_PokemonCenter_1F_MapScript1_15932D
+ .byte 0
+
+LilycoveCity_PokemonCenter_1F_MapScript1_15932D:: @ 815932D
+ sethealplace 8
+ end
+
+LilycoveCity_PokemonCenter_1F_EventScript_159331:: @ 8159331
+ setvar 0x800b, 1
+ call LilycoveCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+LilycoveCity_PokemonCenter_1F_EventScript_15933F:: @ 815933F
+ msgbox LilycoveCity_PokemonCenter_1F_Text_189FC9, 2
+ end
+
+LilycoveCity_PokemonCenter_1F_EventScript_159348:: @ 8159348
+ lock
+ faceplayer
+ checkflag 2061
+ jumpeq LilycoveCity_PokemonCenter_1F_EventScript_15935D
+ msgbox LilycoveCity_PokemonCenter_1F_Text_18A048, 4
+ release
+ end
+
+LilycoveCity_PokemonCenter_1F_EventScript_15935D:: @ 815935D
+ msgbox LilycoveCity_PokemonCenter_1F_Text_18A0A1, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_2F.s b/data/scripts/maps/LilycoveCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..ee60cf2ca
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+LilycoveCity_PokemonCenter_2F_MapScripts:: @ 8159367
+ map_script 2, LilycoveCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, LilycoveCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, LilycoveCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+LilycoveCity_PokemonCenter_2F_EventScript_159377:: @ 8159377
+ call LilycoveCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+LilycoveCity_PokemonCenter_2F_EventScript_15937D:: @ 815937D
+ call LilycoveCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+LilycoveCity_PokemonCenter_2F_EventScript_159383:: @ 8159383
+ call LilycoveCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s
new file mode 100644
index 000000000..c76acaff4
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s
@@ -0,0 +1,437 @@
+LilycoveCity_PokemonTrainerFanClub_MapScripts:: @ 815938A
+ map_script 2, LilycoveCity_PokemonTrainerFanClub_MapScript2_159395
+ map_script 3, LilycoveCity_PokemonTrainerFanClub_MapScript1_159412
+ .byte 0
+
+LilycoveCity_PokemonTrainerFanClub_MapScript2_159395:: @ 8159395
+ map_script_2 0x4095, 1, LilycoveCity_PokemonTrainerFanClub_EventScript_15939F
+ .2byte 0
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15939F:: @ 815939F
+ lockall
+ move 1, LilycoveCity_PokemonTrainerFanClub_Movement_1A0845
+ waitmove 0
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A1D6, 4
+ move 4, LilycoveCity_PokemonTrainerFanClub_Movement_159402
+ move 2, LilycoveCity_PokemonTrainerFanClub_Movement_1593FA
+ waitmove 0
+ move 255, LilycoveCity_PokemonTrainerFanClub_Movement_1A0843
+ waitmove 0
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A1E8, 4
+ move 4, LilycoveCity_PokemonTrainerFanClub_Movement_159409
+ waitmove 0
+ move 255, LilycoveCity_PokemonTrainerFanClub_Movement_1A083F
+ waitmove 0
+ move 4, LilycoveCity_PokemonTrainerFanClub_Movement_15940C
+ waitmove 0
+ setvar 0x4095, 2
+ releaseall
+ end
+
+LilycoveCity_PokemonTrainerFanClub_Movement_1593FA:: @ 81593FA
+ step_13
+ step_25
+ step_down
+ step_down
+ step_down
+ step_left
+ step_left
+ step_end
+
+LilycoveCity_PokemonTrainerFanClub_Movement_159402:: @ 8159402
+ step_17
+ step_17
+ step_15
+ step_15
+ step_17
+ step_15
+ step_end
+
+LilycoveCity_PokemonTrainerFanClub_Movement_159409:: @ 8159409
+ step_down
+ step_28
+ step_end
+
+LilycoveCity_PokemonTrainerFanClub_Movement_15940C:: @ 815940C
+ step_49
+ step_16
+ step_16
+ step_18
+ step_25
+ step_end
+
+LilycoveCity_PokemonTrainerFanClub_MapScript1_159412:: @ 8159412
+ compare 0x4095, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159515
+ compare 0x4095, 2
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159429
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159429:: @ 8159429
+ special 167
+ setvar 0x8004, 8
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594D5
+ setvar 0x8004, 9
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594DD
+ setvar 0x8004, 10
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594E5
+ setvar 0x8004, 11
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594ED
+ setvar 0x8004, 12
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594F5
+ setvar 0x8004, 13
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594FD
+ setvar 0x8004, 14
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_159505
+ setvar 0x8004, 15
+ specialval RESULT, 163
+ compare RESULT, 0
+ callif 1, LilycoveCity_PokemonTrainerFanClub_EventScript_15950D
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594D5:: @ 81594D5
+ movespriteperm 1, 7, 5
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594DD:: @ 81594DD
+ movespriteperm 3, 3, 4
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594E5:: @ 81594E5
+ movespriteperm 4, 7, 2
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594ED:: @ 81594ED
+ movespriteperm 5, 5, 5
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594F5:: @ 81594F5
+ movespriteperm 6, 5, 2
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1594FD:: @ 81594FD
+ movespriteperm 2, 8, 4
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159505:: @ 8159505
+ movespriteperm 7, 3, 3
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15950D:: @ 815950D
+ movespriteperm 8, 8, 3
+ return
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159515:: @ 8159515
+ call LilycoveCity_PokemonTrainerFanClub_EventScript_1594DD
+ call LilycoveCity_PokemonTrainerFanClub_EventScript_1594ED
+ call LilycoveCity_PokemonTrainerFanClub_EventScript_1594F5
+ call LilycoveCity_PokemonTrainerFanClub_EventScript_159505
+ call LilycoveCity_PokemonTrainerFanClub_EventScript_15950D
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15952F:: @ 815952F
+ lock
+ faceplayer
+ setvar 0x8004, 13
+ special 165
+ compare 0x4095, 0
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15959C
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15956E
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159592
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A400, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15956E:: @ 815956E
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159588
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A36A, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159588:: @ 8159588
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A391, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159592:: @ 8159592
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A48D, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15959C:: @ 815959C
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A4EA, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1595A6:: @ 81595A6
+ lock
+ faceplayer
+ setvar 0x8004, 8
+ special 165
+ compare 0x4095, 0
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159613
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1595E5
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159609
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A629, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1595E5:: @ 81595E5
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1595FF
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A584, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1595FF:: @ 81595FF
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A5AC, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159609:: @ 8159609
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A65B, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159613:: @ 8159613
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A6D4, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15961D:: @ 815961D
+ lock
+ faceplayer
+ setvar 0x8004, 9
+ special 165
+ compare 0x4095, 0
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15968A
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15965C
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159680
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A814, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15965C:: @ 815965C
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159676
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A71E, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159676:: @ 8159676
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A789, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159680:: @ 8159680
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A8C4, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15968A:: @ 815968A
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18A984, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159694:: @ 8159694
+ lock
+ faceplayer
+ setvar 0x8004, 10
+ special 165
+ compare 0x4095, 0
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159701
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1596D3
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1596F7
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AB0A, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1596D3:: @ 81596D3
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1596ED
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AA39, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1596ED:: @ 81596ED
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AA83, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1596F7:: @ 81596F7
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AB41, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159701:: @ 8159701
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18ABAE, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15970B:: @ 815970B
+ lock
+ faceplayer
+ setvar 0x8004, 11
+ special 165
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15973F
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159763
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18ACC7, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15973F:: @ 815973F
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159759
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AC15, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159759:: @ 8159759
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AC5E, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159763:: @ 8159763
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AD05, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15976D:: @ 815976D
+ lock
+ faceplayer
+ setvar 0x8004, 12
+ special 165
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1597A1
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1597C5
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AE63, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1597A1:: @ 81597A1
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_1597BB
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AD6D, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1597BB:: @ 81597BB
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18ADEF, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1597C5:: @ 81597C5
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AEF5, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_1597CF:: @ 81597CF
+ lock
+ faceplayer
+ setvar 0x8004, 14
+ special 165
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159803
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159827
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B030, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159803:: @ 8159803
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15981D
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AF62, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15981D:: @ 815981D
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18AFD0, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159827:: @ 8159827
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B0C8, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159831:: @ 8159831
+ lock
+ faceplayer
+ setvar 0x8004, 15
+ special 165
+ specialval RESULT, 163
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159865
+ specialval RESULT, 164
+ compare RESULT, 7
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_159889
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B1FD, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159865:: @ 8159865
+ specialval RESULT, 164
+ compare RESULT, 1
+ jumpeq LilycoveCity_PokemonTrainerFanClub_EventScript_15987F
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B16E, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_15987F:: @ 815987F
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B181, 4
+ release
+ end
+
+LilycoveCity_PokemonTrainerFanClub_EventScript_159889:: @ 8159889
+ msgbox LilycoveCity_PokemonTrainerFanClub_Text_18B24F, 4
+ release
+ end
+
diff --git a/data/scripts/maps/LilycoveCity_UnusedMart.s b/data/scripts/maps/LilycoveCity_UnusedMart.s
new file mode 100644
index 000000000..edfd32b4a
--- /dev/null
+++ b/data/scripts/maps/LilycoveCity_UnusedMart.s
@@ -0,0 +1,3 @@
+LilycoveCity_UnusedMart_MapScripts:: @ 8159389
+ .byte 0
+
diff --git a/data/scripts/maps/LinkContestRoom1.s b/data/scripts/maps/LinkContestRoom1.s
new file mode 100644
index 000000000..2709f558c
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom1.s
@@ -0,0 +1 @@
+LinkContestRoom1_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LinkContestRoom2.s b/data/scripts/maps/LinkContestRoom2.s
new file mode 100644
index 000000000..f61e3fae6
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom2.s
@@ -0,0 +1 @@
+LinkContestRoom2_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LinkContestRoom3.s b/data/scripts/maps/LinkContestRoom3.s
new file mode 100644
index 000000000..5a34f848a
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom3.s
@@ -0,0 +1 @@
+LinkContestRoom3_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LinkContestRoom4.s b/data/scripts/maps/LinkContestRoom4.s
new file mode 100644
index 000000000..bf6539bdd
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom4.s
@@ -0,0 +1 @@
+LinkContestRoom4_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LinkContestRoom5.s b/data/scripts/maps/LinkContestRoom5.s
new file mode 100644
index 000000000..d3cd5d64b
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom5.s
@@ -0,0 +1 @@
+LinkContestRoom5_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LinkContestRoom6.s b/data/scripts/maps/LinkContestRoom6.s
new file mode 100644
index 000000000..26296ece6
--- /dev/null
+++ b/data/scripts/maps/LinkContestRoom6.s
@@ -0,0 +1 @@
+LinkContestRoom6_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/LittlerootTown.s b/data/scripts/maps/LittlerootTown.s
new file mode 100644
index 000000000..600218ebf
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown.s
@@ -0,0 +1,881 @@
+LittlerootTown_MapScripts:: @ 814D509
+ map_script 3, LittlerootTown_MapScript1_14D514
+ map_script 2, LittlerootTown_MapScript2_14D5D5
+ .byte 0
+
+LittlerootTown_MapScript1_14D514:: @ 814D514
+ setflag 2063
+ compare 0x4092, 2
+ callif 1, LittlerootTown_EventScript_14D57B
+ checkflag 82
+ callif 0, LittlerootTown_EventScript_14D583
+ compare 0x4050, 3
+ callif 1, LittlerootTown_EventScript_14D5A6
+ compare 0x4082, 4
+ callif 1, LittlerootTown_EventScript_14D570
+ compare 0x408c, 4
+ callif 1, LittlerootTown_EventScript_14D570
+ compare 0x40c7, 1
+ callif 1, LittlerootTown_EventScript_14D567
+ compare 0x408d, 3
+ callif 1, LittlerootTown_EventScript_14D563
+ end
+
+LittlerootTown_EventScript_14D563:: @ 814D563
+ setflag 301
+ return
+
+LittlerootTown_EventScript_14D567:: @ 814D567
+ setvar 0x40c7, 2
+ setflag 979
+ return
+
+LittlerootTown_EventScript_14D570:: @ 814D570
+ setvar 0x4082, 5
+ setvar 0x408c, 5
+ return
+
+LittlerootTown_EventScript_14D57B:: @ 814D57B
+ movespriteperm 4, 14, 8
+ return
+
+LittlerootTown_EventScript_14D583:: @ 814D583
+ compare 0x4050, 0
+ jumpeq LittlerootTown_EventScript_14D59A
+ movespriteperm 1, 10, 1
+ spritebehave 1, 7
+ return
+
+LittlerootTown_EventScript_14D59A:: @ 814D59A
+ movespriteperm 1, 7, 2
+ spritebehave 1, 8
+ return
+
+LittlerootTown_EventScript_14D5A6:: @ 814D5A6
+ clearflag 752
+ spritebehave 4, 8
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D5C5
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D5CD
+ return
+
+LittlerootTown_EventScript_14D5C5:: @ 814D5C5
+ movespriteperm 4, 5, 9
+ return
+
+LittlerootTown_EventScript_14D5CD:: @ 814D5CD
+ movespriteperm 4, 14, 9
+ return
+
+LittlerootTown_MapScript2_14D5D5:: @ 814D5D5
+ map_script_2 0x4092, 1, LittlerootTown_EventScript_14D5EF
+ map_script_2 0x4092, 2, LittlerootTown_EventScript_14D60D
+ map_script_2 0x4092, 7, LittlerootTown_EventScript_14D6C5
+ .2byte 0
+
+LittlerootTown_EventScript_14D5EF:: @ 814D5EF
+ lockall
+ setvar 0x8004, 5
+ setvar 0x8005, 8
+ call LittlerootTown_EventScript_14D62B
+ setflag 761
+ warpmuted LittlerootTown_BrendansHouse_1F, 255, 8, 8
+ waitstate
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D60D:: @ 814D60D
+ lockall
+ setvar 0x8004, 14
+ setvar 0x8005, 8
+ call LittlerootTown_EventScript_14D62B
+ setflag 762
+ warpmuted LittlerootTown_MaysHouse_1F, 255, 2, 8
+ waitstate
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D62B:: @ 814D62B
+ pause 15
+ playsfx 10
+ move 255, LittlerootTown_Movement_14D6C0
+ waitmove 0
+ setdooropened 0x8004, 0x8005
+ doorchange
+ reappear 4
+ move 4, LittlerootTown_Movement_14D6AC
+ waitmove 0
+ setdoorclosed 0x8004, 0x8005
+ doorchange
+ pause 10
+ move 4, LittlerootTown_Movement_14D6AE
+ waitmove 0
+ msgbox LittlerootTown_Text_16A7C9, 4
+ closebutton
+ move 4, LittlerootTown_Movement_14D6B1
+ move 255, LittlerootTown_Movement_14D6B8
+ waitmove 0
+ setdooropened 0x8004, 0x8005
+ doorchange
+ move 4, LittlerootTown_Movement_14D6B5
+ move 255, LittlerootTown_Movement_14D6BD
+ waitmove 0
+ setflag 752
+ setvar 0x4092, 3
+ spriteinvisible 255, 0, 0
+ setdoorclosed 0x8004, 0x8005
+ doorchange
+ clearflag 868
+ clearflag 0x4000
+ return
+
+LittlerootTown_Movement_14D6AC:: @ 814D6AC
+ step_down
+ step_end
+
+LittlerootTown_Movement_14D6AE:: @ 814D6AE
+ step_down
+ step_27
+ step_end
+
+LittlerootTown_Movement_14D6B1:: @ 814D6B1
+ step_14
+ step_13
+ step_up
+ step_end
+
+LittlerootTown_Movement_14D6B5:: @ 814D6B5
+ step_up
+ step_54
+ step_end
+
+LittlerootTown_Movement_14D6B8:: @ 814D6B8
+ step_14
+ step_13
+ step_right
+ step_26
+ step_end
+
+LittlerootTown_Movement_14D6BD:: @ 814D6BD
+ step_up
+ step_up
+ step_end
+
+LittlerootTown_Movement_14D6C0:: @ 814D6C0
+ step_45
+ step_14
+ step_14
+ step_14
+ step_end
+
+LittlerootTown_EventScript_14D6C5:: @ 814D6C5
+ lockall
+ setvar 0x4092, 8
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D6CD:: @ 814D6CD
+ msgbox LittlerootTown_Text_16AC00, 2
+ end
+
+LittlerootTown_EventScript_14D6D6:: @ 814D6D6
+ msgbox LittlerootTown_Text_16AC56, 2
+ end
+
+LittlerootTown_EventScript_14D6DF:: @ 814D6DF
+ lock
+ faceplayer
+ checkflag 116
+ jumpeq LittlerootTown_EventScript_14D72F
+ checkflag 82
+ jumpeq LittlerootTown_EventScript_14D722
+ compare 0x4050, 0
+ jumpif 5, LittlerootTown_EventScript_14D708
+ msgbox LittlerootTown_Text_16ACEB, 4
+ release
+ end
+
+LittlerootTown_EventScript_14D708:: @ 814D708
+ msgbox LittlerootTown_Text_16AD82, 4
+ closebutton
+ move 1, LittlerootTown_Movement_1A083D
+ waitmove 0
+ setvar 0x4050, 2
+ release
+ end
+
+LittlerootTown_EventScript_14D722:: @ 814D722
+ special 148
+ msgbox LittlerootTown_Text_16ADF2, 4
+ release
+ end
+
+LittlerootTown_EventScript_14D72F:: @ 814D72F
+ msgbox LittlerootTown_Text_16AE25, 4
+ release
+ end
+
+LittlerootTown_EventScript_14D739:: @ 814D739
+ lockall
+ move 1, LittlerootTown_Movement_14D779
+ waitmove 0
+ call LittlerootTown_EventScript_14D755
+ move 1, LittlerootTown_Movement_14D789
+ waitmove 0
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D755:: @ 814D755
+ msgbox LittlerootTown_Text_16ACEB, 4
+ closebutton
+ move 1, LittlerootTown_Movement_14D787
+ move 255, LittlerootTown_Movement_14D793
+ waitmove 0
+ msgbox LittlerootTown_Text_16AD3C, 4
+ closebutton
+ return
+
+LittlerootTown_Movement_14D779:: @ 814D779
+ step_03
+ step_13
+ step_51
+ step_49
+ step_13
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_16
+ step_17
+ step_00
+ step_end
+
+LittlerootTown_Movement_14D787:: @ 814D787
+ step_down
+ step_end
+
+LittlerootTown_Movement_14D789:: @ 814D789
+ step_right
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_25
+ step_end
+
+LittlerootTown_Movement_14D793:: @ 814D793
+ step_40
+ step_down
+ step_41
+ step_end
+
+LittlerootTown_EventScript_14D797:: @ 814D797
+ lockall
+ move 1, LittlerootTown_Movement_14D7B3
+ waitmove 0
+ call LittlerootTown_EventScript_14D755
+ move 1, LittlerootTown_Movement_14D7C0
+ waitmove 0
+ releaseall
+ end
+
+LittlerootTown_Movement_14D7B3:: @ 814D7B3
+ step_03
+ step_13
+ step_51
+ step_49
+ step_13
+ step_18
+ step_18
+ step_18
+ step_16
+ step_16
+ step_18
+ step_00
+ step_end
+
+LittlerootTown_Movement_14D7C0:: @ 814D7C0
+ step_left
+ step_down
+ step_left
+ step_left
+ step_left
+ step_25
+ step_end
+
+LittlerootTown_EventScript_14D7C7:: @ 814D7C7
+ lockall
+ move 1, LittlerootTown_Movement_1A0843
+ waitmove 0
+ move 255, LittlerootTown_Movement_1A083F
+ waitmove 0
+ msgbox LittlerootTown_Text_16AD82, 4
+ closebutton
+ move 1, LittlerootTown_Movement_1A083D
+ waitmove 0
+ setvar 0x4050, 2
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D7F6:: @ 814D7F6
+ msgbox LittlerootTown_Text_16AE50, 3
+ end
+
+LittlerootTown_EventScript_14D7FF:: @ 814D7FF
+ msgbox LittlerootTown_Text_16AE87, 3
+ end
+
+LittlerootTown_EventScript_14D808:: @ 814D808
+ lockall
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D822
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D82B
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D822:: @ 814D822
+ msgbox LittlerootTown_Text_16AEA1, 4
+ return
+
+LittlerootTown_EventScript_14D82B:: @ 814D82B
+ msgbox LittlerootTown_Text_16AEAC, 4
+ return
+
+LittlerootTown_EventScript_14D834:: @ 814D834
+ lockall
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D84E
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D857
+ releaseall
+ end
+
+LittlerootTown_EventScript_14D84E:: @ 814D84E
+ msgbox LittlerootTown_Text_16AEAC, 4
+ return
+
+LittlerootTown_EventScript_14D857:: @ 814D857
+ msgbox LittlerootTown_Text_16AEA1, 4
+ return
+
+LittlerootTown_EventScript_14D860:: @ 814D860
+ lockall
+ setvar 0x8008, 0
+ movesprite 4, 10, 9
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D873:: @ 814D873
+ lockall
+ setvar 0x8008, 1
+ movesprite 4, 11, 9
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D886:: @ 814D886
+ lockall
+ setvar 0x8008, 2
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D892:: @ 814D892
+ lockall
+ setvar 0x8008, 3
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D89E:: @ 814D89E
+ lockall
+ setvar 0x8008, 4
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D8AA:: @ 814D8AA
+ lockall
+ setvar 0x8008, 5
+ jump LittlerootTown_EventScript_14D8B6
+ end
+
+LittlerootTown_EventScript_14D8B6:: @ 814D8B6
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D93C
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D947
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D926
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D931
+ msgbox LittlerootTown_Text_16A8EE, 4
+ closebutton
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D952
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D995
+ call LittlerootTown_EventScript_14DD38
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14DAAA
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14DAED
+ jump LittlerootTown_EventScript_14DD2B
+ end
+
+LittlerootTown_EventScript_14D926:: @ 814D926
+ setvar 0x8009, 5
+ setvar 0x800a, 8
+ return
+
+LittlerootTown_EventScript_14D931:: @ 814D931
+ setvar 0x8009, 14
+ setvar 0x800a, 8
+ return
+
+LittlerootTown_EventScript_14D93C:: @ 814D93C
+ move 4, LittlerootTown_Movement_1A0843
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14D947:: @ 814D947
+ move 4, LittlerootTown_Movement_1A083F
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14D952:: @ 814D952
+ compare 0x8008, 0
+ callif 1, LittlerootTown_EventScript_14D9D8
+ compare 0x8008, 1
+ callif 1, LittlerootTown_EventScript_14D9ED
+ compare 0x8008, 2
+ callif 1, LittlerootTown_EventScript_14DA02
+ compare 0x8008, 3
+ callif 1, LittlerootTown_EventScript_14DA17
+ compare 0x8008, 4
+ callif 1, LittlerootTown_EventScript_14DA2C
+ compare 0x8008, 5
+ callif 1, LittlerootTown_EventScript_14DA41
+ return
+
+LittlerootTown_EventScript_14D995:: @ 814D995
+ compare 0x8008, 0
+ callif 1, LittlerootTown_EventScript_14D9D8
+ compare 0x8008, 1
+ callif 1, LittlerootTown_EventScript_14D9ED
+ compare 0x8008, 2
+ callif 1, LittlerootTown_EventScript_14DA56
+ compare 0x8008, 3
+ callif 1, LittlerootTown_EventScript_14DA6B
+ compare 0x8008, 4
+ callif 1, LittlerootTown_EventScript_14DA80
+ compare 0x8008, 5
+ callif 1, LittlerootTown_EventScript_14DA95
+ return
+
+LittlerootTown_EventScript_14D9D8:: @ 814D9D8
+ move 255, LittlerootTown_Movement_1A0845
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC76
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14D9ED:: @ 814D9ED
+ move 255, LittlerootTown_Movement_1A0845
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC7D
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA02:: @ 814DA02
+ move 255, LittlerootTown_Movement_1A083F
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC84
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA17:: @ 814DA17
+ move 255, LittlerootTown_Movement_1A083F
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC89
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA2C:: @ 814DA2C
+ move 255, LittlerootTown_Movement_1A083F
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC8F
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA41:: @ 814DA41
+ move 255, LittlerootTown_Movement_1A083F
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC92
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA56:: @ 814DA56
+ move 255, LittlerootTown_Movement_1A0843
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC96
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA6B:: @ 814DA6B
+ move 255, LittlerootTown_Movement_1A0843
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC9A
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA80:: @ 814DA80
+ move 255, LittlerootTown_Movement_1A0843
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DC9D
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DA95:: @ 814DA95
+ move 255, LittlerootTown_Movement_1A0843
+ waitmove 0
+ move 4, LittlerootTown_Movement_14DCA3
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DAAA:: @ 814DAAA
+ compare 0x8008, 0
+ callif 1, LittlerootTown_EventScript_14DB30
+ compare 0x8008, 1
+ callif 1, LittlerootTown_EventScript_14DB3B
+ compare 0x8008, 2
+ callif 1, LittlerootTown_EventScript_14DB46
+ compare 0x8008, 3
+ callif 1, LittlerootTown_EventScript_14DB6C
+ compare 0x8008, 4
+ callif 1, LittlerootTown_EventScript_14DB92
+ compare 0x8008, 5
+ callif 1, LittlerootTown_EventScript_14DBB8
+ return
+
+LittlerootTown_EventScript_14DAED:: @ 814DAED
+ compare 0x8008, 0
+ callif 1, LittlerootTown_EventScript_14DB30
+ compare 0x8008, 1
+ callif 1, LittlerootTown_EventScript_14DB3B
+ compare 0x8008, 2
+ callif 1, LittlerootTown_EventScript_14DBDE
+ compare 0x8008, 3
+ callif 1, LittlerootTown_EventScript_14DC04
+ compare 0x8008, 4
+ callif 1, LittlerootTown_EventScript_14DC2A
+ compare 0x8008, 5
+ callif 1, LittlerootTown_EventScript_14DC50
+ return
+
+LittlerootTown_EventScript_14DB30:: @ 814DB30
+ move 4, LittlerootTown_Movement_14DCA8
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DB3B:: @ 814DB3B
+ move 4, LittlerootTown_Movement_14DCAE
+ waitmove 0
+ return
+
+LittlerootTown_EventScript_14DB46:: @ 814DB46
+ move 4, LittlerootTown_Movement_14DCB4
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DB6C:: @ 814DB6C
+ move 4, LittlerootTown_Movement_14DCBA
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DB92:: @ 814DB92
+ move 4, LittlerootTown_Movement_14DCC1
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DBB8:: @ 814DBB8
+ move 4, LittlerootTown_Movement_14DCC5
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DBDE:: @ 814DBDE
+ move 4, LittlerootTown_Movement_14DCCA
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DC04:: @ 814DC04
+ move 4, LittlerootTown_Movement_14DCCF
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DC2A:: @ 814DC2A
+ move 4, LittlerootTown_Movement_14DCD3
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_EventScript_14DC50:: @ 814DC50
+ move 4, LittlerootTown_Movement_14DCDA
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ return
+
+LittlerootTown_Movement_14DC76:: @ 814DC76
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+LittlerootTown_Movement_14DC7D:: @ 814DC7D
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+LittlerootTown_Movement_14DC84:: @ 814DC84
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+LittlerootTown_Movement_14DC89:: @ 814DC89
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+LittlerootTown_Movement_14DC8F:: @ 814DC8F
+ step_right
+ step_right
+ step_end
+
+LittlerootTown_Movement_14DC92:: @ 814DC92
+ step_right
+ step_right
+ step_right
+ step_end
+
+LittlerootTown_Movement_14DC96:: @ 814DC96
+ step_left
+ step_left
+ step_left
+ step_end
+
+LittlerootTown_Movement_14DC9A:: @ 814DC9A
+ step_left
+ step_left
+ step_end
+
+LittlerootTown_Movement_14DC9D:: @ 814DC9D
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+LittlerootTown_Movement_14DCA3:: @ 814DCA3
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+LittlerootTown_Movement_14DCA8:: @ 814DCA8
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+LittlerootTown_Movement_14DCAE:: @ 814DCAE
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+LittlerootTown_Movement_14DCB4:: @ 814DCB4
+ step_left
+ step_left
+ step_left
+ step_left
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCBA:: @ 814DCBA
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCC1:: @ 814DCC1
+ step_left
+ step_left
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCC5:: @ 814DCC5
+ step_left
+ step_left
+ step_left
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCCA:: @ 814DCCA
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCCF:: @ 814DCCF
+ step_right
+ step_right
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCD3:: @ 814DCD3
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCDA:: @ 814DCDA
+ step_right
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+LittlerootTown_Movement_14DCE0:: @ 814DCE0
+ step_up
+ step_end
+
+LittlerootTown_EventScript_14DCE2:: @ 814DCE2
+ lock
+ faceplayer
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_EventScript_14D926
+ compare RESULT, 1
+ callif 1, LittlerootTown_EventScript_14D931
+ call LittlerootTown_EventScript_14DD38
+ move 4, LittlerootTown_Movement_1A0841
+ waitmove 0
+ setdooropened 0x8009, 0x800a
+ doorchange
+ move 4, LittlerootTown_Movement_14DCE0
+ waitmove 0
+ spriteinvisible 4, 0, 9
+ setdoorclosed 0x8009, 0x800a
+ doorchange
+ jump LittlerootTown_EventScript_14DD2B
+ end
+
+LittlerootTown_EventScript_14DD2B:: @ 814DD2B
+ disappear 4
+ setflag 2144
+ setvar 0x4050, 4
+ release
+ end
+
+LittlerootTown_EventScript_14DD38:: @ 814DD38
+ msgbox LittlerootTown_Text_16A8FD, 4
+ fanfare 370
+ message LittlerootTown_Text_16AA32
+ waitfanfare
+ waittext
+ setflag 274
+ msgbox LittlerootTown_Text_16AA5C, 4
+ msgbox LittlerootTown_Text_16AB10, 4
+ closebutton
+ pause 30
+ return
+
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.s b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.s
new file mode 100644
index 000000000..78a10f6e6
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.s
@@ -0,0 +1,125 @@
+LittlerootTown_BrendansHouse_1F_MapScripts:: @ 815263B
+ map_script 1, LittlerootTown_BrendansHouse_1F_MapScript1_15264B
+ map_script 3, LittlerootTown_BrendansHouse_1F_MapScript1_15268A
+ map_script 2, LittlerootTown_BrendansHouse_1F_MapScript2_1526D0
+ .byte 0
+
+LittlerootTown_BrendansHouse_1F_MapScript1_15264B:: @ 815264B
+ compare 0x4092, 6
+ callif 0, LittlerootTown_BrendansHouse_1F_EventScript_152660
+ checkflag 274
+ callif 1, LittlerootTown_BrendansHouse_1F_EventScript_152673
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152660:: @ 8152660
+ setmaptile 5, 4, 624, 1
+ setmaptile 5, 2, 616, 1
+ return
+
+LittlerootTown_BrendansHouse_1F_EventScript_152673:: @ 8152673
+ checkgender
+ compare RESULT, 0
+ jumpeq LittlerootTown_BrendansHouse_1F_EventScript_152680
+ return
+
+LittlerootTown_BrendansHouse_1F_EventScript_152680:: @ 8152680
+ setmaptile 3, 7, 659, 1
+ return
+
+LittlerootTown_BrendansHouse_1F_MapScript1_15268A:: @ 815268A
+ compare 0x4092, 3
+ callif 1, LittlerootTown_BrendansHouse_1F_EventScript_1526C4
+ compare 0x4092, 5
+ callif 1, LittlerootTown_BrendansHouse_1F_EventScript_1526AC
+ compare 0x4092, 6
+ callif 1, LittlerootTown_BrendansHouse_1F_EventScript_1526B8
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_1526AC:: @ 81526AC
+ movespriteperm 1, 8, 4
+ spritebehave 1, 7
+ return
+
+LittlerootTown_BrendansHouse_1F_EventScript_1526B8:: @ 81526B8
+ movespriteperm 1, 4, 5
+ spritebehave 1, 7
+ return
+
+LittlerootTown_BrendansHouse_1F_EventScript_1526C4:: @ 81526C4
+ movespriteperm 1, 9, 8
+ spritebehave 1, 7
+ return
+
+LittlerootTown_BrendansHouse_1F_MapScript2_1526D0:: @ 81526D0
+ map_script_2 0x4092, 3, LittlerootTown_BrendansHouse_1F_EventScript_152722
+ map_script_2 0x4092, 5, LittlerootTown_BrendansHouse_1F_EventScript_1526FA
+ map_script_2 0x4092, 6, LittlerootTown_BrendansHouse_1F_EventScript_152733
+ map_script_2 0x4082, 1, LittlerootTown_BrendansHouse_1F_EventScript_152744
+ map_script_2 0x4082, 3, LittlerootTown_BrendansHouse_1F_EventScript_1B6CDE
+ .2byte 0
+
+LittlerootTown_BrendansHouse_1F_EventScript_1526FA:: @ 81526FA
+ lockall
+ msgbox LittlerootTown_BrendansHouse_1F_Text_172574, 4
+ closebutton
+ move 255, LittlerootTown_BrendansHouse_1F_Movement_152720
+ move 1, LittlerootTown_BrendansHouse_1F_Movement_152720
+ waitmove 0
+ warp LittlerootTown_BrendansHouse_2F, 255, 7, 1
+ waitstate
+ releaseall
+ end
+
+LittlerootTown_BrendansHouse_1F_Movement_152720:: @ 8152720
+ step_up
+ step_end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152722:: @ 8152722
+ lockall
+ setvar 0x8004, 1
+ setvar 0x8005, 0
+ jump LittlerootTown_BrendansHouse_1F_EventScript_1B6956
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152733:: @ 8152733
+ lockall
+ setvar 0x8004, 0
+ setvar 0x8005, 1
+ jump LittlerootTown_BrendansHouse_1F_EventScript_1B6ABF
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152744:: @ 8152744
+ lockall
+ playsfx 21
+ move 4, LittlerootTown_BrendansHouse_1F_Movement_1A0833
+ waitmove 0
+ move 4, LittlerootTown_BrendansHouse_1F_Movement_1A0835
+ waitmove 0
+ move 255, LittlerootTown_BrendansHouse_1F_Movement_1A083F
+ move 4, LittlerootTown_BrendansHouse_1F_Movement_152782
+ waitmove 0
+ special 149
+ msgbox LittlerootTown_BrendansHouse_1F_Text_1730C2, 4
+ setflag 87
+ setvar 0x4082, 2
+ releaseall
+ end
+
+LittlerootTown_BrendansHouse_1F_Movement_152782:: @ 8152782
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152789:: @ 8152789
+ lockall
+ setvar 0x8004, 1
+ setvar 0x8005, 0
+ move 0x8004, LittlerootTown_BrendansHouse_1F_Movement_1A083F
+ waitmove 0
+ jump LittlerootTown_BrendansHouse_1F_EventScript_1B69B7
+ end
+
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.s b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.s
new file mode 100644
index 000000000..39f4d3bae
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.s
@@ -0,0 +1,71 @@
+LittlerootTown_BrendansHouse_2F_MapScripts:: @ 81527A4
+ map_script 3, LittlerootTown_BrendansHouse_2F_MapScript1_1527AF
+ map_script 4, LittlerootTown_BrendansHouse_2F_MapScript2_1527DA
+ .byte 0
+
+LittlerootTown_BrendansHouse_2F_MapScript1_1527AF:: @ 81527AF
+ checkflag 130
+ callif 0, LittlerootTown_BrendansHouse_2F_EventScript_1527CE
+ compare 0x4092, 4
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6950
+ call LittlerootTown_BrendansHouse_2F_EventScript_1A2F3D
+ setvar 0x4089, 0
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_1527CE:: @ 81527CE
+ movespriteperm 1, 1, 2
+ spritebehave 1, 7
+ return
+
+LittlerootTown_BrendansHouse_2F_MapScript2_1527DA:: @ 81527DA
+ map_script_2 0x4089, 0, LittlerootTown_BrendansHouse_2F_EventScript_1527E4
+ .2byte 0
+
+LittlerootTown_BrendansHouse_2F_EventScript_1527E4:: @ 81527E4
+ checkgender
+ compare RESULT, 0
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_1A2F68
+ end
+
+ .incbin "baserom.gba", 0x1527f1, 0x2d
+
+ .global gUnknown_0815281E
+gUnknown_0815281E: @ 815281E
+
+LittlerootTown_BrendansHouse_2F_EventScript_15281E:: @ 815281E
+ lockall
+ checkgender
+ compare RESULT, 0
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_152837
+ compare RESULT, 1
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_15285D
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152837:: @ 8152837
+ setvar 0x8004, 1
+ special 214
+ playsfx 4
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1A10D6, 4
+ special 249
+ waitstate
+ releaseall
+ end
+
+ .global gUnknown_08152850
+gUnknown_08152850: @ 8152850
+ .incbin "baserom.gba", 0x152850, 0xd
+
+LittlerootTown_BrendansHouse_2F_EventScript_15285D:: @ 815285D
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1A100C, 4
+ releaseall
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152867:: @ 8152867
+LittlerootTown_MaysHouse_2F_EventScript_152867:: @ 8152867
+ msgbox LittlerootTown_BrendansHouse_2F_Text_172F9A, 3
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152870:: @ 8152870
+LittlerootTown_MaysHouse_2F_EventScript_152870:: @ 8152870
+ msgbox LittlerootTown_BrendansHouse_2F_Text_17306C, 3
+ end
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_1F.s b/data/scripts/maps/LittlerootTown_MaysHouse_1F.s
new file mode 100644
index 000000000..baf6df5af
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_1F.s
@@ -0,0 +1,157 @@
+LittlerootTown_MaysHouse_1F_MapScripts:: @ 8152879
+ map_script 1, LittlerootTown_MaysHouse_1F_MapScript1_152889
+ map_script 3, LittlerootTown_MaysHouse_1F_MapScript1_1528C8
+ map_script 2, LittlerootTown_MaysHouse_1F_MapScript2_15290E
+ .byte 0
+
+LittlerootTown_MaysHouse_1F_MapScript1_152889:: @ 8152889
+ compare 0x4092, 6
+ callif 0, LittlerootTown_MaysHouse_1F_EventScript_15289E
+ checkflag 274
+ callif 1, LittlerootTown_MaysHouse_1F_EventScript_1528B1
+ end
+
+LittlerootTown_MaysHouse_1F_EventScript_15289E:: @ 815289E
+ setmaptile 5, 4, 624, 1
+ setmaptile 5, 2, 616, 1
+ return
+
+LittlerootTown_MaysHouse_1F_EventScript_1528B1:: @ 81528B1
+ checkgender
+ compare RESULT, 1
+ jumpeq LittlerootTown_MaysHouse_1F_EventScript_1528BE
+ return
+
+LittlerootTown_MaysHouse_1F_EventScript_1528BE:: @ 81528BE
+ setmaptile 6, 7, 659, 1
+ return
+
+LittlerootTown_MaysHouse_1F_MapScript1_1528C8:: @ 81528C8
+ compare 0x4092, 3
+ callif 1, LittlerootTown_MaysHouse_1F_EventScript_152902
+ compare 0x4092, 5
+ callif 1, LittlerootTown_MaysHouse_1F_EventScript_1528EA
+ compare 0x4092, 6
+ callif 1, LittlerootTown_MaysHouse_1F_EventScript_1528F6
+ end
+
+LittlerootTown_MaysHouse_1F_EventScript_1528EA:: @ 81528EA
+ movespriteperm 1, 2, 4
+ spritebehave 1, 7
+ return
+
+LittlerootTown_MaysHouse_1F_EventScript_1528F6:: @ 81528F6
+ movespriteperm 1, 6, 5
+ spritebehave 1, 7
+ return
+
+LittlerootTown_MaysHouse_1F_EventScript_152902:: @ 8152902
+ movespriteperm 1, 1, 8
+ spritebehave 1, 7
+ return
+
+LittlerootTown_MaysHouse_1F_MapScript2_15290E:: @ 815290E
+ map_script_2 0x4092, 3, LittlerootTown_MaysHouse_1F_EventScript_152960
+ map_script_2 0x4092, 5, LittlerootTown_MaysHouse_1F_EventScript_152938
+ map_script_2 0x4092, 6, LittlerootTown_MaysHouse_1F_EventScript_152971
+ map_script_2 0x408c, 1, LittlerootTown_MaysHouse_1F_EventScript_152982
+ map_script_2 0x4082, 3, LittlerootTown_MaysHouse_1F_EventScript_1B6CDE
+ .2byte 0
+
+LittlerootTown_MaysHouse_1F_EventScript_152938:: @ 8152938
+ lockall
+ msgbox LittlerootTown_MaysHouse_1F_Text_172574, 4
+ closebutton
+ move 255, LittlerootTown_MaysHouse_1F_Movement_15295E
+ move 1, LittlerootTown_MaysHouse_1F_Movement_15295E
+ waitmove 0
+ warp LittlerootTown_MaysHouse_2F, 255, 1, 1
+ waitstate
+ releaseall
+ end
+
+LittlerootTown_MaysHouse_1F_Movement_15295E:: @ 815295E
+ step_up
+ step_end
+
+LittlerootTown_MaysHouse_1F_EventScript_152960:: @ 8152960
+ lockall
+ setvar 0x8004, 1
+ setvar 0x8005, 1
+ jump LittlerootTown_MaysHouse_1F_EventScript_1B6956
+ end
+
+LittlerootTown_MaysHouse_1F_EventScript_152971:: @ 8152971
+ lockall
+ setvar 0x8004, 1
+ setvar 0x8005, 1
+ jump LittlerootTown_MaysHouse_1F_EventScript_1B6B2E
+ end
+
+LittlerootTown_MaysHouse_1F_EventScript_152982:: @ 8152982
+ lockall
+ playsfx 21
+ move 4, LittlerootTown_MaysHouse_1F_Movement_1A0833
+ waitmove 0
+ move 4, LittlerootTown_MaysHouse_1F_Movement_1A0835
+ waitmove 0
+ move 255, LittlerootTown_MaysHouse_1F_Movement_1A0843
+ move 4, LittlerootTown_MaysHouse_1F_Movement_1529C0
+ waitmove 0
+ special 149
+ msgbox LittlerootTown_MaysHouse_1F_Text_1730C2, 4
+ setflag 87
+ setvar 0x408c, 2
+ releaseall
+ end
+
+LittlerootTown_MaysHouse_1F_Movement_1529C0:: @ 81529C0
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+ .incbin "baserom.gba", 0x1529c7, 0x24
+
+LittlerootTown_BrendansHouse_1F_EventScript_1529EB:: @ 81529EB
+LittlerootTown_MaysHouse_1F_EventScript_1529EB:: @ 81529EB
+ lock
+ faceplayer
+ checkflag 130
+ jumpeq LittlerootTown_BrendansHouse_1F_EventScript_152A21
+ checkflag 301
+ jumpeq LittlerootTown_BrendansHouse_1F_EventScript_152A17
+ compare 0x408d, 3
+ jumpeq LittlerootTown_BrendansHouse_1F_EventScript_152A2B
+ special 149
+ msgbox LittlerootTown_BrendansHouse_1F_Text_1731C6, 4
+ release
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152A17:: @ 8152A17
+ msgbox LittlerootTown_BrendansHouse_1F_Text_173262, 4
+ release
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152A21:: @ 8152A21
+ msgbox LittlerootTown_BrendansHouse_1F_Text_1732B9, 4
+ release
+ end
+
+LittlerootTown_BrendansHouse_1F_EventScript_152A2B:: @ 8152A2B
+ msgbox LittlerootTown_BrendansHouse_1F_Text_1731E3, 4
+ release
+ end
+
+LittlerootTown_MaysHouse_1F_EventScript_152A35:: @ 8152A35
+ lockall
+ setvar 0x8004, 1
+ setvar 0x8005, 1
+ move 0x8004, LittlerootTown_MaysHouse_1F_Movement_1A0843
+ waitmove 0
+ jump LittlerootTown_MaysHouse_1F_EventScript_1B69B7
+ end
+
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.s b/data/scripts/maps/LittlerootTown_MaysHouse_2F.s
new file mode 100644
index 000000000..b09cd4011
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.s
@@ -0,0 +1,221 @@
+LittlerootTown_MaysHouse_2F_MapScripts:: @ 8152A50
+ map_script 3, LittlerootTown_MaysHouse_2F_MapScript1_152A5B
+ map_script 4, LittlerootTown_MaysHouse_2F_MapScript2_152A86
+ .byte 0
+
+LittlerootTown_MaysHouse_2F_MapScript1_152A5B:: @ 8152A5B
+ checkflag 130
+ callif 0, LittlerootTown_MaysHouse_2F_EventScript_152A7A
+ compare 0x4092, 4
+ callif 1, LittlerootTown_MaysHouse_2F_EventScript_1B6950
+ call LittlerootTown_MaysHouse_2F_EventScript_1A2F3D
+ setvar 0x4089, 0
+ end
+
+LittlerootTown_MaysHouse_2F_EventScript_152A7A:: @ 8152A7A
+ movespriteperm 1, 7, 2
+ spritebehave 1, 7
+ return
+
+LittlerootTown_MaysHouse_2F_MapScript2_152A86:: @ 8152A86
+ map_script_2 0x4089, 0, LittlerootTown_MaysHouse_2F_EventScript_152A90
+ .2byte 0
+
+LittlerootTown_MaysHouse_2F_EventScript_152A90:: @ 8152A90
+ checkgender
+ compare RESULT, 1
+ jumpeq LittlerootTown_MaysHouse_2F_EventScript_1A2F68
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152A9D:: @ 8152A9D
+LittlerootTown_MaysHouse_2F_EventScript_152A9D:: @ 8152A9D
+ lockall
+ checkflag 292
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_152BB5
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152AD4
+ compare RESULT, 1
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B4A
+ playsfx 9
+ disappear LAST_TALKED
+ setvar 0x408d, 3
+ setvar 0x4050, 1
+ playmusicbattle 0
+ fadedefault
+ releaseall
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152AD4:: @ 8152AD4
+ msgbox LittlerootTown_BrendansHouse_2F_Text_17337E, 4
+ playmusic 415, 1
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0839
+ waitmove 0
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0833
+ waitmove 0
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0835
+ waitmove 0
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1733AF, 4
+ closebutton
+ compare FACING, 4
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B29
+ compare FACING, 2
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B34
+ compare FACING, 3
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B3F
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152B29:: @ 8152B29
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_152C11
+ waitmove 0
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152B34:: @ 8152B34
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_152C1C
+ waitmove 0
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152B3F:: @ 8152B3F
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_152C1C
+ waitmove 0
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152B4A:: @ 8152B4A
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1735C9, 4
+ playmusic 421, 1
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0839
+ waitmove 0
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0833
+ waitmove 0
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0835
+ waitmove 0
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1735FC, 4
+ closebutton
+ compare FACING, 4
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B9F
+ compare FACING, 2
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152B9F
+ compare FACING, 3
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152BAA
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152B9F:: @ 8152B9F
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_152C30
+ waitmove 0
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152BAA:: @ 8152BAA
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_152C25
+ waitmove 0
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152BB5:: @ 8152BB5
+ move LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0839
+ waitmove 0
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152BDB
+ compare RESULT, 1
+ callif 1, LittlerootTown_BrendansHouse_2F_EventScript_152BED
+ setflag 293
+ releaseall
+ end
+
+LittlerootTown_BrendansHouse_2F_EventScript_152BDB:: @ 8152BDB
+ checkflag 293
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_152BFF
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1737AE, 4
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152BED:: @ 8152BED
+ checkflag 293
+ jumpeq LittlerootTown_BrendansHouse_2F_EventScript_152C08
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1738F2, 4
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152BFF:: @ 8152BFF
+ msgbox LittlerootTown_BrendansHouse_2F_Text_173883, 4
+ return
+
+LittlerootTown_BrendansHouse_2F_EventScript_152C08:: @ 8152C08
+ msgbox LittlerootTown_BrendansHouse_2F_Text_1739CC, 4
+ return
+
+LittlerootTown_BrendansHouse_2F_Movement_152C11:: @ 8152C11
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_13
+ step_end
+
+LittlerootTown_BrendansHouse_2F_Movement_152C1C:: @ 8152C1C
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_13
+ step_end
+
+LittlerootTown_BrendansHouse_2F_Movement_152C25:: @ 8152C25
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_13
+ step_end
+
+LittlerootTown_BrendansHouse_2F_Movement_152C30:: @ 8152C30
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_13
+ step_end
+
+ .global gUnknown_08152C39
+gUnknown_08152C39: @ 8152C39
+
+LittlerootTown_MaysHouse_2F_EventScript_152C39:: @ 8152C39
+ lockall
+ checkgender
+ compare RESULT, 0
+ jumpeq LittlerootTown_MaysHouse_2F_EventScript_152C52
+ compare RESULT, 1
+ jumpeq LittlerootTown_MaysHouse_2F_EventScript_152C5C
+ end
+
+LittlerootTown_MaysHouse_2F_EventScript_152C52:: @ 8152C52
+ msgbox LittlerootTown_MaysHouse_2F_Text_1A100C, 4
+ releaseall
+ end
+
+LittlerootTown_MaysHouse_2F_EventScript_152C5C:: @ 8152C5C
+ setvar 0x8004, 2
+ special 214
+ playsfx 4
+ msgbox LittlerootTown_MaysHouse_2F_Text_1A10D6, 4
+ special 249
+ waitstate
+ releaseall
+ end
+
+ .global gUnknown_08152C75
+gUnknown_08152C75: @ 8152C75
+ .incbin "baserom.gba", 0x152c75, 0xd
diff --git a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s
new file mode 100644
index 000000000..81bb270fc
--- /dev/null
+++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s
@@ -0,0 +1,217 @@
+LittlerootTown_ProfessorBirchsLab_MapScripts:: @ 8152C82
+ map_script 3, LittlerootTown_ProfessorBirchsLab_MapScript1_152C92
+ map_script 4, LittlerootTown_ProfessorBirchsLab_MapScript2_152C9D
+ map_script 2, LittlerootTown_ProfessorBirchsLab_MapScript2_152CAC
+ .byte 0
+
+LittlerootTown_ProfessorBirchsLab_MapScript1_152C92:: @ 8152C92
+ call LittlerootTown_ProfessorBirchsLab_EventScript_1A014E
+ call LittlerootTown_ProfessorBirchsLab_EventScript_1A02F4
+ end
+
+LittlerootTown_ProfessorBirchsLab_MapScript2_152C9D:: @ 8152C9D
+ map_script_2 0x4084, 2, LittlerootTown_ProfessorBirchsLab_EventScript_152CA7
+ .2byte 0
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152CA7:: @ 8152CA7
+ spriteface 255, 2
+ end
+
+LittlerootTown_ProfessorBirchsLab_MapScript2_152CAC:: @ 8152CAC
+ map_script_2 0x4084, 2, LittlerootTown_ProfessorBirchsLab_EventScript_152CBE
+ map_script_2 0x4084, 4, LittlerootTown_ProfessorBirchsLab_EventScript_152D4A
+ .2byte 0
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152CBE:: @ 8152CBE
+ lockall
+ bufferfirstpoke 0
+ message LittlerootTown_ProfessorBirchsLab_Text_173D94
+ waittext
+ fanfare 370
+ waitfanfare
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173EF8, 5
+ compare RESULT, 1
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152CEA
+ compare RESULT, 0
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152CFA
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152CEA:: @ 8152CEA
+ setvar 0x8004, 0
+ call LittlerootTown_ProfessorBirchsLab_EventScript_1A0678
+ jump LittlerootTown_ProfessorBirchsLab_EventScript_152CFA
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152CFA:: @ 8152CFA
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173F3D, 5
+ compare RESULT, 1
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152D19
+ compare RESULT, 0
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152D2B
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D19:: @ 8152D19
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174015, 4
+ clearflag 991
+ setvar 0x4084, 3
+ releaseall
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D2B:: @ 8152D2B
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174075, 5
+ compare RESULT, 1
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152D19
+ compare RESULT, 0
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152D2B
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D4A:: @ 8152D4A
+ lockall
+ move 255, LittlerootTown_ProfessorBirchsLab_Movement_152D5B
+ waitmove 0
+ jump LittlerootTown_ProfessorBirchsLab_EventScript_152DBA
+ end
+
+LittlerootTown_ProfessorBirchsLab_Movement_152D5B:: @ 8152D5B
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D63:: @ 8152D63
+ lock
+ faceplayer
+ compare 0x4084, 3
+ jumpif 4, LittlerootTown_ProfessorBirchsLab_EventScript_152D90
+ checkflag 88
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152D86
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173B29, 4
+ setflag 88
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D86:: @ 8152D86
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173C88, 4
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D90:: @ 8152D90
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173D15, 4
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152D9A:: @ 8152D9A
+ lock
+ faceplayer
+ checkflag 896
+ jumpif 0, LittlerootTown_ProfessorBirchsLab_EventScript_1A037F
+ compare 0x4084, 5
+ jumpeq LittlerootTown_ProfessorBirchsLab_EventScript_152E7B
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_1740B4, 4
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152DBA:: @ 8152DBA
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17411F, 4
+ call LittlerootTown_ProfessorBirchsLab_EventScript_152E6D
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174248, 4
+ move 3, LittlerootTown_ProfessorBirchsLab_Movement_152E97
+ waitmove 0
+ move 255, LittlerootTown_ProfessorBirchsLab_Movement_1A0843
+ waitmove 0
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E13
+ compare RESULT, 1
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E40
+ setvar 0x4084, 5
+ setflag 116
+ setvar 0x4051, 1
+ setvar 0x408d, 4
+ setvar 0x4050, 3
+ releaseall
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E13:: @ 8152E13
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_1743D4, 4
+ giveitem ITEM_POKE_BALL, 5
+ compare RESULT, 0
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E85
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17443D, 4
+ setvar RESULT, 0
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E40:: @ 8152E40
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17453C, 4
+ giveitem ITEM_POKE_BALL, 5
+ compare RESULT, 0
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E8E
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17458C, 4
+ setvar RESULT, 1
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E6D:: @ 8152E6D
+ fanfare 370
+ message LittlerootTown_ProfessorBirchsLab_Text_17422F
+ waitfanfare
+ waittext
+ setflag 2049
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E7B:: @ 8152E7B
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17436C, 4
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E85:: @ 8152E85
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_1744F0, 4
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E8E:: @ 8152E8E
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_17465B, 4
+ return
+
+LittlerootTown_ProfessorBirchsLab_Movement_152E97:: @ 8152E97
+ step_down
+ step_27
+ step_end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152E9A:: @ 8152E9A
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_1746A2, 3
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152EA3:: @ 8152EA3
+ lock
+ faceplayer
+ checkgender
+ compare RESULT, 0
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152EBE
+ compare RESULT, 1
+ callif 1, LittlerootTown_ProfessorBirchsLab_EventScript_152EC7
+ release
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152EBE:: @ 8152EBE
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174505, 4
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152EC7:: @ 8152EC7
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174671, 4
+ return
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152ED0:: @ 8152ED0
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_1746E7, 3
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152ED9:: @ 8152ED9
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174724, 3
+ end
+
+LittlerootTown_ProfessorBirchsLab_EventScript_152EE2:: @ 8152EE2
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174748, 3
+ end
+
diff --git a/data/scripts/maps/MagmaHideout_1F.s b/data/scripts/maps/MagmaHideout_1F.s
new file mode 100644
index 000000000..c58248c10
--- /dev/null
+++ b/data/scripts/maps/MagmaHideout_1F.s
@@ -0,0 +1,3 @@
+MagmaHideout_1F_MapScripts:: @ 815F2A7
+ .byte 0
+
diff --git a/data/scripts/maps/MagmaHideout_B1F.s b/data/scripts/maps/MagmaHideout_B1F.s
new file mode 100644
index 000000000..ca2d6f773
--- /dev/null
+++ b/data/scripts/maps/MagmaHideout_B1F.s
@@ -0,0 +1,13 @@
+MagmaHideout_B1F_MapScripts:: @ 815F2A8
+ map_script 5, MagmaHideout_B1F_MapScript1_15F2AE
+ .byte 0
+
+MagmaHideout_B1F_MapScript1_15F2AE:: @ 815F2AE
+ checkflag 2145
+ callif 1, MagmaHideout_B1F_EventScript_15F2B8
+ end
+
+MagmaHideout_B1F_EventScript_15F2B8:: @ 815F2B8
+ disappear LAST_TALKED
+ return
+
diff --git a/data/scripts/maps/MagmaHideout_B2F.s b/data/scripts/maps/MagmaHideout_B2F.s
new file mode 100644
index 000000000..09b6659c3
--- /dev/null
+++ b/data/scripts/maps/MagmaHideout_B2F.s
@@ -0,0 +1,3 @@
+MagmaHideout_B2F_MapScripts:: @ 815F2BC
+ .byte 0
+
diff --git a/data/scripts/maps/MauvilleCity.s b/data/scripts/maps/MauvilleCity.s
new file mode 100644
index 000000000..229b6143c
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity.s
@@ -0,0 +1,319 @@
+MauvilleCity_MapScripts:: @ 814C032
+ map_script 3, MauvilleCity_MapScript1_14C038
+ .byte 0
+
+MauvilleCity_MapScript1_14C038:: @ 814C038
+ setflag 2072
+ clearflag 961
+ setflag 2098
+ clearflag 99
+ setvar 0x4093, 0
+ checkflag 209
+ callif 1, MauvilleCity_EventScript_14C053
+ end
+
+MauvilleCity_EventScript_14C053:: @ 814C053
+ clearflag 913
+ setflag 912
+ return
+
+MauvilleCity_EventScript_14C05A:: @ 814C05A
+ msgbox MauvilleCity_Text_1664DF, 2
+ end
+
+MauvilleCity_EventScript_14C063:: @ 814C063
+ msgbox MauvilleCity_Text_16655C, 2
+ end
+
+MauvilleCity_EventScript_14C06C:: @ 814C06C
+ msgbox MauvilleCity_Text_1665DB, 2
+ end
+
+MauvilleCity_EventScript_14C075:: @ 814C075
+ msgbox MauvilleCity_Text_16662A, 2
+ end
+
+MauvilleCity_EventScript_14C07E:: @ 814C07E
+ msgbox MauvilleCity_Text_166665, 3
+ end
+
+MauvilleCity_EventScript_14C087:: @ 814C087
+ msgbox MauvilleCity_Text_166697, 3
+ end
+
+MauvilleCity_EventScript_14C090:: @ 814C090
+ msgbox MauvilleCity_Text_1666E4, 3
+ end
+
+MauvilleCity_EventScript_14C099:: @ 814C099
+ msgbox MauvilleCity_Text_16671C, 3
+ end
+
+MauvilleCity_EventScript_14C0A2:: @ 814C0A2
+ lock
+ faceplayer
+ checkflag 98
+ jumpeq MauvilleCity_EventScript_14C0BA
+ msgbox MauvilleCity_Text_16674A, 4
+ setflag 98
+ release
+ end
+
+MauvilleCity_EventScript_14C0BA:: @ 814C0BA
+ msgbox MauvilleCity_Text_166879, 4
+ release
+ end
+
+MauvilleCity_EventScript_14C0C4:: @ 814C0C4
+ lock
+ faceplayer
+ checkflag 284
+ jumpeq MauvilleCity_EventScript_14C0E4
+ msgbox MauvilleCity_Text_165B76, 4
+ closebutton
+ move 7, MauvilleCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+MauvilleCity_EventScript_14C0E4:: @ 814C0E4
+ msgbox MauvilleCity_Text_165E45, 4
+ closebutton
+ move 7, MauvilleCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+MauvilleCity_EventScript_14C0F9:: @ 814C0F9
+ lockall
+ checkflag 284
+ jumpeq MauvilleCity_EventScript_14C292
+ move 6, MauvilleCity_Movement_1A0843
+ waitmove 0
+ msgbox MauvilleCity_Text_165BE3, 4
+ msgbox MauvilleCity_Text_165C57, 4
+ msgbox MauvilleCity_Text_165D01, 4
+ move 6, MauvilleCity_Movement_1A0839
+ waitmove 0
+ playsfx 21
+ move 6, MauvilleCity_Movement_1A0833
+ waitmove 0
+ move 6, MauvilleCity_Movement_1A0835
+ waitmove 0
+ msgbox MauvilleCity_Text_165D50, 5
+ jump MauvilleCity_EventScript_14C154
+ end
+
+MauvilleCity_EventScript_14C154:: @ 814C154
+ compare RESULT, 1
+ callif 1, MauvilleCity_EventScript_14C23C
+ compare RESULT, 0
+ jumpeq MauvilleCity_EventScript_14C285
+ closebutton
+ switch FACING
+ case 2, MauvilleCity_EventScript_14C187
+ case 4, MauvilleCity_EventScript_14C1D9
+ end
+
+MauvilleCity_EventScript_14C187:: @ 814C187
+ move 6, MauvilleCity_Movement_14C2AA
+ move 7, MauvilleCity_Movement_14C2CC
+ waitmove 0
+ move 6, MauvilleCity_Movement_1A0843
+ waitmove 0
+ pause 30
+ move 7, MauvilleCity_Movement_14C2D8
+ waitmove 0
+ move 255, MauvilleCity_Movement_1A0845
+ waitmove 0
+ msgbox MauvilleCity_Text_1660FA, 4
+ closebutton
+ move 6, MauvilleCity_Movement_14C2B6
+ move 7, MauvilleCity_Movement_14C2DF
+ waitmove 0
+ jump MauvilleCity_EventScript_14C22B
+ end
+
+MauvilleCity_EventScript_14C1D9:: @ 814C1D9
+ move 6, MauvilleCity_Movement_14C2B0
+ move 7, MauvilleCity_Movement_14C2D2
+ waitmove 0
+ move 6, MauvilleCity_Movement_1A0843
+ waitmove 0
+ pause 30
+ move 7, MauvilleCity_Movement_14C2DC
+ waitmove 0
+ move 255, MauvilleCity_Movement_1A0845
+ waitmove 0
+ msgbox MauvilleCity_Text_1660FA, 4
+ closebutton
+ move 6, MauvilleCity_Movement_14C2C1
+ move 7, MauvilleCity_Movement_14C2E8
+ waitmove 0
+ jump MauvilleCity_EventScript_14C22B
+ end
+
+MauvilleCity_EventScript_14C22B:: @ 814C22B
+ disappear 6
+ disappear 7
+ clearflag 806
+ clearflag 809
+ setflag 190
+ releaseall
+ end
+
+MauvilleCity_EventScript_14C23C:: @ 814C23C
+ msgbox MauvilleCity_Text_165F0D, 4
+ trainerbattle 3, 656, 0, MauvilleCity_Text_165F38
+ move 6, MauvilleCity_Movement_1A0843
+ waitmove 0
+ msgbox MauvilleCity_Text_165F85, 4
+ move 6, MauvilleCity_Movement_1A0839
+ waitmove 0
+ msgbox MauvilleCity_Text_165FB3, 4
+ move 6, MauvilleCity_Movement_1A0843
+ waitmove 0
+ msgbox MauvilleCity_Text_166050, 4
+ return
+
+MauvilleCity_EventScript_14C285:: @ 814C285
+ setflag 284
+ msgbox MauvilleCity_Text_165DE8, 4
+ release
+ end
+
+MauvilleCity_EventScript_14C292:: @ 814C292
+ move 6, MauvilleCity_Movement_1A0839
+ waitmove 0
+ msgbox MauvilleCity_Text_165EE2, 5
+ jump MauvilleCity_EventScript_14C154
+ end
+
+MauvilleCity_Movement_14C2AA:: @ 814C2AA
+ step_left
+ step_left
+ step_down
+ step_down
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2B0:: @ 814C2B0
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2B6:: @ 814C2B6
+ step_14
+ step_14
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2C1:: @ 814C2C1
+ step_14
+ step_14
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2CC:: @ 814C2CC
+ step_left
+ step_left
+ step_left
+ step_down
+ step_down
+ step_end
+
+MauvilleCity_Movement_14C2D2:: @ 814C2D2
+ step_left
+ step_down
+ step_down
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2D8:: @ 814C2D8
+ step_right
+ step_right
+ step_26
+ step_end
+
+MauvilleCity_Movement_14C2DC:: @ 814C2DC
+ step_right
+ step_up
+ step_end
+
+MauvilleCity_Movement_14C2DF:: @ 814C2DF
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_Movement_14C2E8:: @ 814C2E8
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+MauvilleCity_EventScript_14C2F2:: @ 814C2F2
+ lock
+ faceplayer
+ checkflag 209
+ jumpeq MauvilleCity_EventScript_14C368
+ compare 0x40ba, 2
+ jumpeq MauvilleCity_EventScript_14C33C
+ checkflag 208
+ jumpeq MauvilleCity_EventScript_14C332
+ msgbox MauvilleCity_Text_1661C1, 4
+ giveitem ITEM_BASEMENT_KEY
+ setflag 208
+ msgbox MauvilleCity_Text_166331, 4
+ release
+ end
+
+MauvilleCity_EventScript_14C332:: @ 814C332
+ msgbox MauvilleCity_Text_166331, 4
+ release
+ end
+
+MauvilleCity_EventScript_14C33C:: @ 814C33C
+ msgbox MauvilleCity_Text_1663EB, 4
+ giveitem ITEM_TM24
+ compare RESULT, 0
+ jumpeq MauvilleCity_EventScript_1A029B
+ setflag 209
+ msgbox MauvilleCity_Text_166488, 4
+ release
+ end
+
+MauvilleCity_EventScript_14C368:: @ 814C368
+ msgbox MauvilleCity_Text_166488, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_BikeShop.s b/data/scripts/maps/MauvilleCity_BikeShop.s
new file mode 100644
index 000000000..9d9293365
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_BikeShop.s
@@ -0,0 +1,185 @@
+MauvilleCity_BikeShop_MapScripts:: @ 8156795
+ .byte 0
+
+MauvilleCity_BikeShop_EventScript_156796:: @ 8156796
+ lock
+ faceplayer
+ checkflag 90
+ jumpeq MauvilleCity_BikeShop_EventScript_15686E
+ checkflag 89
+ jumpeq MauvilleCity_BikeShop_EventScript_1567D1
+ msgbox MauvilleCity_BikeShop_Text_180F9F, 4
+ msgbox MauvilleCity_BikeShop_Text_181016, 5
+ compare RESULT, 1
+ jumpeq MauvilleCity_BikeShop_EventScript_156824
+ compare RESULT, 0
+ jumpeq MauvilleCity_BikeShop_EventScript_156817
+ end
+
+MauvilleCity_BikeShop_EventScript_1567D1:: @ 81567D1
+ msgbox MauvilleCity_BikeShop_Text_181016, 5
+ compare RESULT, 1
+ jumpeq MauvilleCity_BikeShop_EventScript_156824
+ compare RESULT, 0
+ jumpeq MauvilleCity_BikeShop_EventScript_156817
+ end
+
+MauvilleCity_BikeShop_EventScript_1567F0:: @ 81567F0
+ message MauvilleCity_BikeShop_Text_1810B1
+ waittext
+ multichoice 21, 8, 12, 1
+ switch RESULT
+ case 0, MauvilleCity_BikeShop_EventScript_15682D
+ case 1, MauvilleCity_BikeShop_EventScript_156847
+ end
+
+MauvilleCity_BikeShop_EventScript_156817:: @ 8156817
+ setflag 89
+ msgbox MauvilleCity_BikeShop_Text_181067, 4
+ release
+ end
+
+MauvilleCity_BikeShop_EventScript_156824:: @ 8156824
+ setflag 90
+ jump MauvilleCity_BikeShop_EventScript_1567F0
+ end
+
+MauvilleCity_BikeShop_EventScript_15682D:: @ 815682D
+ msgbox MauvilleCity_BikeShop_Text_181332, 4
+ giveitem ITEM_MACH_BIKE
+ jump MauvilleCity_BikeShop_EventScript_156861
+ end
+
+MauvilleCity_BikeShop_EventScript_156847:: @ 8156847
+ msgbox MauvilleCity_BikeShop_Text_18134A, 4
+ giveitem ITEM_ACRO_BIKE
+ jump MauvilleCity_BikeShop_EventScript_156861
+ end
+
+MauvilleCity_BikeShop_EventScript_156861:: @ 8156861
+ msgbox MauvilleCity_BikeShop_Text_181362, 4
+ special 130
+ release
+ end
+
+MauvilleCity_BikeShop_EventScript_15686E:: @ 815686E
+ msgbox MauvilleCity_BikeShop_Text_1813A0, 5
+ compare RESULT, 1
+ jumpeq MauvilleCity_BikeShop_EventScript_15688D
+ compare RESULT, 0
+ jumpeq MauvilleCity_BikeShop_EventScript_1568BF
+ end
+
+MauvilleCity_BikeShop_EventScript_15688D:: @ 815688D
+ msgbox MauvilleCity_BikeShop_Text_1813D4, 4
+ checkitem ITEM_ACRO_BIKE, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_BikeShop_EventScript_1568C9
+ checkitem ITEM_MACH_BIKE, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_BikeShop_EventScript_1568EA
+ msgbox MauvilleCity_BikeShop_Text_181498, 4
+ release
+ end
+
+MauvilleCity_BikeShop_EventScript_1568BF:: @ 81568BF
+ msgbox MauvilleCity_BikeShop_Text_181469, 4
+ release
+ end
+
+MauvilleCity_BikeShop_EventScript_1568C9:: @ 81568C9
+ inccounter 4
+ msgbox MauvilleCity_BikeShop_Text_181439, 4
+ removeitem ITEM_ACRO_BIKE, 1
+ giveitem ITEM_MACH_BIKE
+ jump MauvilleCity_BikeShop_EventScript_156861
+ end
+
+MauvilleCity_BikeShop_EventScript_1568EA:: @ 81568EA
+ inccounter 4
+ msgbox MauvilleCity_BikeShop_Text_181408, 4
+ removeitem ITEM_MACH_BIKE, 1
+ giveitem ITEM_ACRO_BIKE
+ jump MauvilleCity_BikeShop_EventScript_156861
+ end
+
+MauvilleCity_BikeShop_EventScript_15690B:: @ 815690B
+ msgbox MauvilleCity_BikeShop_Text_181568, 2
+ end
+
+MauvilleCity_BikeShop_EventScript_156914:: @ 8156914
+ message MauvilleCity_BikeShop_Text_1815EA
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156920
+ end
+
+MauvilleCity_BikeShop_EventScript_156920:: @ 8156920
+ multichoice 0, 0, 43, 0
+ switch RESULT
+ case 0, MauvilleCity_BikeShop_EventScript_156962
+ case 1, MauvilleCity_BikeShop_EventScript_15696E
+ case 2, MauvilleCity_BikeShop_EventScript_15697A
+ case 3, MauvilleCity_BikeShop_EventScript_156986
+ case 127, MauvilleCity_BikeShop_EventScript_156986
+ end
+
+MauvilleCity_BikeShop_EventScript_156962:: @ 8156962
+ message MauvilleCity_BikeShop_Text_18162C
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156920
+ end
+
+MauvilleCity_BikeShop_EventScript_15696E:: @ 815696E
+ message MauvilleCity_BikeShop_Text_1816F5
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156920
+ end
+
+MauvilleCity_BikeShop_EventScript_15697A:: @ 815697A
+ message MauvilleCity_BikeShop_Text_1817BF
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156920
+ end
+
+MauvilleCity_BikeShop_EventScript_156986:: @ 8156986
+ release
+ end
+
+MauvilleCity_BikeShop_EventScript_156988:: @ 8156988
+ message MauvilleCity_BikeShop_Text_181892
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156994
+ end
+
+MauvilleCity_BikeShop_EventScript_156994:: @ 8156994
+ multichoice 0, 0, 44, 0
+ switch RESULT
+ case 0, MauvilleCity_BikeShop_EventScript_1569D6
+ case 1, MauvilleCity_BikeShop_EventScript_1569E2
+ case 2, MauvilleCity_BikeShop_EventScript_1569EE
+ case 3, MauvilleCity_BikeShop_EventScript_1569FA
+ case 127, MauvilleCity_BikeShop_EventScript_1569FA
+ end
+
+MauvilleCity_BikeShop_EventScript_1569D6:: @ 81569D6
+ message MauvilleCity_BikeShop_Text_1818D4
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156994
+ end
+
+MauvilleCity_BikeShop_EventScript_1569E2:: @ 81569E2
+ message MauvilleCity_BikeShop_Text_18199A
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156994
+ end
+
+MauvilleCity_BikeShop_EventScript_1569EE:: @ 81569EE
+ message MauvilleCity_BikeShop_Text_181A3D
+ waittext
+ jump MauvilleCity_BikeShop_EventScript_156994
+ end
+
+MauvilleCity_BikeShop_EventScript_1569FA:: @ 81569FA
+ release
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_GameCorner.s b/data/scripts/maps/MauvilleCity_GameCorner.s
new file mode 100644
index 000000000..a77e099c5
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_GameCorner.s
@@ -0,0 +1,652 @@
+MauvilleCity_GameCorner_MapScripts:: @ 8156A33
+ .byte 0
+
+MauvilleCity_GameCorner_EventScript_156A34:: @ 8156A34
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_181C35, 4
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156B32
+ message MauvilleCity_GameCorner_Text_181CB4
+ waittext
+ showmoney 0, 0
+ snop
+ showcoins 0, 5
+ jump MauvilleCity_GameCorner_EventScript_156A60
+
+MauvilleCity_GameCorner_EventScript_156A60:: @ 8156A60
+ multichoicedef 15, 0, 49, 0, 0
+ switch RESULT
+ case 0, MauvilleCity_GameCorner_EventScript_156AAE
+ case 1, MauvilleCity_GameCorner_EventScript_156AF0
+ jump MauvilleCity_GameCorner_EventScript_156B4C
+ end
+
+ .incbin "baserom.gba", 0x156a87, 0x27
+
+MauvilleCity_GameCorner_EventScript_156AAE:: @ 8156AAE
+ checkcoins 16385
+ compare 0x4001, 9950
+ jumpif 4, MauvilleCity_GameCorner_EventScript_156B5C
+ checkmoney 0x3e8, 0
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156B3C
+ givecoins 50
+ paymoney 0x3e8, 0
+ updatemoney 0, 0
+ snop
+ updatecoins 0, 5
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181CFE, 4
+ hidemoney 0, 0
+ hidecoins 0, 5
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156AF0:: @ 8156AF0
+ checkcoins 16385
+ compare 0x4001, 9500
+ jumpif 4, MauvilleCity_GameCorner_EventScript_156B5C
+ checkmoney 0x2710, 0
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156B3C
+ givecoins 500
+ paymoney 0x2710, 0
+ updatemoney 0, 0
+ snop
+ updatecoins 0, 5
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181CFE, 4
+ hidemoney 0, 0
+ hidecoins 0, 5
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B32:: @ 8156B32
+ msgbox MauvilleCity_GameCorner_Text_181C53, 4
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B3C:: @ 8156B3C
+ msgbox MauvilleCity_GameCorner_Text_181D28, 4
+ hidemoney 0, 0
+ hidecoins 0, 5
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B4C:: @ 8156B4C
+ msgbox MauvilleCity_GameCorner_Text_181D73, 4
+ hidemoney 0, 0
+ hidecoins 0, 5
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B5C:: @ 8156B5C
+ msgbox MauvilleCity_GameCorner_Text_181D57, 4
+ hidemoney 0, 0
+ hidecoins 0, 5
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B6C:: @ 8156B6C
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_181DE1, 4
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_GameCorner_EventScript_156B88
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156B88:: @ 8156B88
+ message MauvilleCity_GameCorner_Text_181E17
+ waittext
+ showcoins 0, 0
+ setvar 0x4001, 0
+ jump MauvilleCity_GameCorner_EventScript_156BA6
+
+MauvilleCity_GameCorner_EventScript_156B9B:: @ 8156B9B
+ message MauvilleCity_GameCorner_Text_181E17
+ waittext
+ jump MauvilleCity_GameCorner_EventScript_156BA6
+
+MauvilleCity_GameCorner_EventScript_156BA6:: @ 8156BA6
+ multichoice 12, 0, 48, 0
+ switch RESULT
+ case 0, MauvilleCity_GameCorner_EventScript_156BE2
+ case 1, MauvilleCity_GameCorner_EventScript_156BF0
+ case 2, MauvilleCity_GameCorner_EventScript_156BFE
+ case 3, MauvilleCity_GameCorner_EventScript_156D0D
+ jump MauvilleCity_GameCorner_EventScript_156D0D
+ end
+
+MauvilleCity_GameCorner_EventScript_156BE2:: @ 8156BE2
+ setvar 0x4001, 1
+ bufferdecor 0, 88
+ jump MauvilleCity_GameCorner_EventScript_156C0C
+
+MauvilleCity_GameCorner_EventScript_156BF0:: @ 8156BF0
+ setvar 0x4001, 2
+ bufferdecor 0, 89
+ jump MauvilleCity_GameCorner_EventScript_156C0C
+
+MauvilleCity_GameCorner_EventScript_156BFE:: @ 8156BFE
+ setvar 0x4001, 3
+ bufferdecor 0, 90
+ jump MauvilleCity_GameCorner_EventScript_156C0C
+
+MauvilleCity_GameCorner_EventScript_156C0C:: @ 8156C0C
+ msgbox MauvilleCity_GameCorner_Text_181E33, 5
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156D0D
+ switch 0x4001
+ case 1, MauvilleCity_GameCorner_EventScript_156C46
+ case 2, MauvilleCity_GameCorner_EventScript_156C80
+ case 3, MauvilleCity_GameCorner_EventScript_156CBA
+ end
+
+MauvilleCity_GameCorner_EventScript_156C46:: @ 8156C46
+ checkcoins 16386
+ compare 0x4002, 1000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecor 1, 88
+ checkdecor 88
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156D02
+ removecoins 1000
+ adddecor 88
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181E49, 4
+ jump MauvilleCity_GameCorner_EventScript_156B9B
+ end
+
+MauvilleCity_GameCorner_EventScript_156C80:: @ 8156C80
+ checkcoins 16386
+ compare 0x4002, 1000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecor 1, 89
+ checkdecor 89
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156D02
+ removecoins 1000
+ adddecor 89
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181E49, 4
+ jump MauvilleCity_GameCorner_EventScript_156B9B
+ end
+
+MauvilleCity_GameCorner_EventScript_156CBA:: @ 8156CBA
+ checkcoins 16386
+ compare 0x4002, 1000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecor 1, 90
+ checkdecor 90
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156D02
+ removecoins 1000
+ adddecor 90
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181E49, 4
+ jump MauvilleCity_GameCorner_EventScript_156B9B
+ end
+
+MauvilleCity_GameCorner_EventScript_156CF4:: @ 8156CF4
+ msgbox MauvilleCity_GameCorner_Text_181E76, 4
+ jump MauvilleCity_GameCorner_EventScript_156B9B
+ end
+
+MauvilleCity_GameCorner_EventScript_156D02:: @ 8156D02
+ call MauvilleCity_GameCorner_EventScript_1A02B8
+ jump MauvilleCity_GameCorner_EventScript_156B9B
+ end
+
+MauvilleCity_GameCorner_EventScript_156D0D:: @ 8156D0D
+ msgbox MauvilleCity_GameCorner_Text_181EC2, 4
+ hidecoins 0, 0
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156D1A:: @ 8156D1A
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_181DE1, 4
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_GameCorner_EventScript_156D36
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156D36:: @ 8156D36
+ message MauvilleCity_GameCorner_Text_181E17
+ waittext
+ showcoins 0, 0
+ setvar 0x4001, 0
+ jump MauvilleCity_GameCorner_EventScript_156D54
+
+MauvilleCity_GameCorner_EventScript_156D49:: @ 8156D49
+ message MauvilleCity_GameCorner_Text_181E17
+ waittext
+ jump MauvilleCity_GameCorner_EventScript_156D54
+
+MauvilleCity_GameCorner_EventScript_156D54:: @ 8156D54
+ multichoice 12, 0, 55, 0
+ switch RESULT
+ case 0, MauvilleCity_GameCorner_EventScript_156DA6
+ case 1, MauvilleCity_GameCorner_EventScript_156DB4
+ case 2, MauvilleCity_GameCorner_EventScript_156DC2
+ case 3, MauvilleCity_GameCorner_EventScript_156DD0
+ case 4, MauvilleCity_GameCorner_EventScript_156DDE
+ case 5, MauvilleCity_GameCorner_EventScript_156F77
+ jump MauvilleCity_GameCorner_EventScript_156F77
+ end
+
+MauvilleCity_GameCorner_EventScript_156DA6:: @ 8156DA6
+ setvar 0x4001, 1
+ bufferitem 0, ITEM_TM32
+ jump MauvilleCity_GameCorner_EventScript_156DEC
+
+MauvilleCity_GameCorner_EventScript_156DB4:: @ 8156DB4
+ setvar 0x4001, 2
+ bufferitem 0, ITEM_TM29
+ jump MauvilleCity_GameCorner_EventScript_156DEC
+
+MauvilleCity_GameCorner_EventScript_156DC2:: @ 8156DC2
+ setvar 0x4001, 3
+ bufferitem 0, ITEM_TM35
+ jump MauvilleCity_GameCorner_EventScript_156DEC
+
+MauvilleCity_GameCorner_EventScript_156DD0:: @ 8156DD0
+ setvar 0x4001, 4
+ bufferitem 0, ITEM_TM24
+ jump MauvilleCity_GameCorner_EventScript_156DEC
+
+MauvilleCity_GameCorner_EventScript_156DDE:: @ 8156DDE
+ setvar 0x4001, 5
+ bufferitem 0, ITEM_TM13
+ jump MauvilleCity_GameCorner_EventScript_156DEC
+
+MauvilleCity_GameCorner_EventScript_156DEC:: @ 8156DEC
+ msgbox MauvilleCity_GameCorner_Text_181E33, 5
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F77
+ switch 0x4001
+ case 1, MauvilleCity_GameCorner_EventScript_156E3C
+ case 2, MauvilleCity_GameCorner_EventScript_156E76
+ case 3, MauvilleCity_GameCorner_EventScript_156EB0
+ case 4, MauvilleCity_GameCorner_EventScript_156EEA
+ case 5, MauvilleCity_GameCorner_EventScript_156F24
+ end
+
+MauvilleCity_GameCorner_EventScript_156E3C:: @ 8156E3C
+ checkcoins 16386
+ compare 0x4002, 1500
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM32, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F6C
+ removecoins 1500
+ additem ITEM_TM32, 1
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181F08, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156E76:: @ 8156E76
+ checkcoins 16386
+ compare 0x4002, 3500
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM29, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F6C
+ removecoins 3500
+ additem ITEM_TM29, 1
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181F08, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156EB0:: @ 8156EB0
+ checkcoins 16386
+ compare 0x4002, 4000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM35, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F6C
+ removecoins 4000
+ additem ITEM_TM35, 1
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181F08, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156EEA:: @ 8156EEA
+ checkcoins 16386
+ compare 0x4002, 4000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM24, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F6C
+ removecoins 4000
+ additem ITEM_TM24, 1
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181F08, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156F24:: @ 8156F24
+ checkcoins 16386
+ compare 0x4002, 4000
+ jumpif 0, MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM13, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_156F6C
+ removecoins 4000
+ additem ITEM_TM13, 1
+ updatecoins 0, 0
+ playsfx 95
+ msgbox MauvilleCity_GameCorner_Text_181F08, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156F5E:: @ 8156F5E
+ msgbox MauvilleCity_GameCorner_Text_181E76, 4
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156F6C:: @ 8156F6C
+ call MauvilleCity_GameCorner_EventScript_1A02A5
+ jump MauvilleCity_GameCorner_EventScript_156D49
+ end
+
+MauvilleCity_GameCorner_EventScript_156F77:: @ 8156F77
+ msgbox MauvilleCity_GameCorner_Text_181EC2, 4
+ hidecoins 0, 0
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_156F84:: @ 8156F84
+ msgbox MauvilleCity_GameCorner_Text_1821C1, 2
+ end
+
+MauvilleCity_GameCorner_EventScript_156F8D:: @ 8156F8D
+ msgbox MauvilleCity_GameCorner_Text_1821F3, 2
+ end
+
+MauvilleCity_GameCorner_EventScript_156F96:: @ 8156F96
+ lock
+ faceplayer
+ checkflag 226
+ jumpeq MauvilleCity_GameCorner_EventScript_157072
+ msgbox MauvilleCity_GameCorner_Text_181F3D, 5
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_157068
+ switch 0x4023
+ case 0, MauvilleCity_GameCorner_EventScript_156FDB
+ case 1, MauvilleCity_GameCorner_EventScript_157005
+ case 2, MauvilleCity_GameCorner_EventScript_15702F
+ end
+
+MauvilleCity_GameCorner_EventScript_156FDB:: @ 8156FDB
+ bufferdecor 1, 88
+ checkdecor 88
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_157059
+ msgbox MauvilleCity_GameCorner_Text_181F89, 4
+ givedecoration 88
+ setflag 226
+ jump MauvilleCity_GameCorner_EventScript_157072
+ end
+
+MauvilleCity_GameCorner_EventScript_157005:: @ 8157005
+ bufferdecor 1, 89
+ checkdecor 89
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_157059
+ msgbox MauvilleCity_GameCorner_Text_181F89, 4
+ givedecoration 89
+ setflag 226
+ jump MauvilleCity_GameCorner_EventScript_157072
+ end
+
+MauvilleCity_GameCorner_EventScript_15702F:: @ 815702F
+ bufferdecor 1, 90
+ checkdecor 90
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_157059
+ msgbox MauvilleCity_GameCorner_Text_181F89, 4
+ givedecoration 90
+ setflag 226
+ jump MauvilleCity_GameCorner_EventScript_157072
+ end
+
+MauvilleCity_GameCorner_EventScript_157059:: @ 8157059
+ call MauvilleCity_GameCorner_EventScript_1A02B8
+ msgbox MauvilleCity_GameCorner_Text_181F97, 4
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_157068:: @ 8157068
+ msgbox MauvilleCity_GameCorner_Text_181FBC, 4
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_157072:: @ 8157072
+ msgbox MauvilleCity_GameCorner_Text_181FE9, 4
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_15707C:: @ 815707C
+ lock
+ faceplayer
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_GameCorner_EventScript_15709C
+ msgbox MauvilleCity_GameCorner_Text_18201E, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_15709C:: @ 815709C
+ checkflag 225
+ jumpeq MauvilleCity_GameCorner_EventScript_1570CA
+ checkcoins 16385
+ compare 0x4001, 1
+ jumpif 4, MauvilleCity_GameCorner_EventScript_1570CA
+ setflag 225
+ givecoins 20
+ msgbox MauvilleCity_GameCorner_Text_18208E, 4
+ playsfx 95
+ jump MauvilleCity_GameCorner_EventScript_1570CA
+ end
+
+MauvilleCity_GameCorner_EventScript_1570CA:: @ 81570CA
+ msgbox MauvilleCity_GameCorner_Text_1820DD, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_1570D8:: @ 81570D8
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_182120, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_1570E8:: @ 81570E8
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_18217C, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_1570F8:: @ 81570F8
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_182241, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_157108:: @ 8157108
+ closebutton
+ move LAST_TALKED, MauvilleCity_GameCorner_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+MauvilleCity_GameCorner_EventScript_157115:: @ 8157115
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_182272, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_157125:: @ 8157125
+ lock
+ faceplayer
+ msgbox MauvilleCity_GameCorner_Text_1822F4, 4
+ jump MauvilleCity_GameCorner_EventScript_157108
+ end
+
+MauvilleCity_GameCorner_EventScript_157135:: @ 8157135
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 0
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157155:: @ 8157155
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 1
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157175:: @ 8157175
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 2
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157195:: @ 8157195
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 3
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_1571B5:: @ 81571B5
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 4
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_1571D5:: @ 81571D5
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 5
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_1571F5:: @ 81571F5
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 6
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157215:: @ 8157215
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 7
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157235:: @ 8157235
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 8
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157255:: @ 8157255
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 9
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157275:: @ 8157275
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 10
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_157295:: @ 8157295
+ lockall
+ checkitem ITEM_COIN_CASE, 1
+ compare RESULT, 0
+ jumpeq MauvilleCity_GameCorner_EventScript_1572B5
+ setvar 0x8004, 11
+ specialval RESULT, 286
+ pokecasino RESULT
+ releaseall
+ end
+
+MauvilleCity_GameCorner_EventScript_1572B5:: @ 81572B5
+ msgbox MauvilleCity_GameCorner_Text_182420, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_Gym.s b/data/scripts/maps/MauvilleCity_Gym.s
new file mode 100644
index 000000000..bbae24bf3
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_Gym.s
@@ -0,0 +1,228 @@
+MauvilleCity_Gym_MapScripts:: @ 8156450
+ map_script 1, MauvilleCity_Gym_MapScript1_156456
+ .byte 0
+
+MauvilleCity_Gym_MapScript1_156456:: @ 8156456
+ checkflag 1208
+ jumpeq MauvilleCity_Gym_EventScript_1565A7
+ switch 0x4093
+ case 0, MauvilleCity_Gym_EventScript_156491
+ case 1, MauvilleCity_Gym_EventScript_15657D
+ case 2, MauvilleCity_Gym_EventScript_15658B
+ case 3, MauvilleCity_Gym_EventScript_156599
+ end
+
+MauvilleCity_Gym_EventScript_156491:: @ 8156491
+ checkflag 99
+ jumpeq MauvilleCity_Gym_EventScript_15649B
+ end
+
+MauvilleCity_Gym_EventScript_15649B:: @ 815649B
+ setmaptile 4, 7, 560, 0
+ setmaptile 4, 8, 568, 0
+ setmaptile 5, 7, 561, 0
+ setmaptile 5, 8, 569, 0
+ setmaptile 3, 8, 578, 1
+ setmaptile 3, 9, 538, 0
+ setmaptile 3, 10, 593, 0
+ setmaptile 1, 10, 546, 0
+ setmaptile 1, 11, 554, 1
+ setmaptile 2, 10, 547, 0
+ setmaptile 2, 11, 555, 1
+ setmaptile 4, 10, 546, 0
+ setmaptile 4, 11, 554, 1
+ setmaptile 5, 10, 547, 0
+ setmaptile 5, 11, 555, 1
+ setmaptile 6, 11, 578, 1
+ setmaptile 6, 12, 538, 0
+ setmaptile 6, 13, 593, 0
+ setmaptile 3, 11, 577, 1
+ setmaptile 3, 12, 585, 1
+ setmaptile 3, 13, 592, 1
+ setmaptile 4, 13, 560, 0
+ setmaptile 4, 14, 568, 0
+ setmaptile 5, 13, 561, 0
+ setmaptile 5, 14, 569, 0
+ end
+
+MauvilleCity_Gym_EventScript_15657D:: @ 815657D
+ setvar 0x8004, 0
+ special 140
+ jump MauvilleCity_Gym_EventScript_156491
+ end
+
+MauvilleCity_Gym_EventScript_15658B:: @ 815658B
+ setvar 0x8004, 1
+ special 140
+ jump MauvilleCity_Gym_EventScript_156491
+ end
+
+MauvilleCity_Gym_EventScript_156599:: @ 8156599
+ setvar 0x8004, 2
+ special 140
+ jump MauvilleCity_Gym_EventScript_156491
+ end
+
+MauvilleCity_Gym_EventScript_1565A7:: @ 81565A7
+ special 144
+ end
+
+MauvilleCity_Gym_EventScript_1565AB:: @ 81565AB
+ trainerbattle 1, 267, 0, MauvilleCity_Gym_Text_180C32, MauvilleCity_Gym_Text_180D64, MauvilleCity_Gym_EventScript_1565DB
+ checkflag 167
+ jumpif 0, MauvilleCity_Gym_EventScript_15661D
+ compare 0x40ba, 2
+ jumpeq MauvilleCity_Gym_EventScript_156641
+ msgbox MauvilleCity_Gym_Text_180EDB, 4
+ release
+ end
+
+MauvilleCity_Gym_EventScript_1565DB:: @ 81565DB
+ message MauvilleCity_Gym_Text_180DAF
+ waittext
+ call MauvilleCity_Gym_EventScript_1A02C5
+ msgbox MauvilleCity_Gym_Text_180DDA, 4
+ setflag 1208
+ setflag 2057
+ addvar 0x4085, 1
+ compare 0x4085, 6
+ callif 1, MauvilleCity_Gym_EventScript_1A00FB
+ setvar 0x8008, 3
+ call MauvilleCity_Gym_EventScript_1A01C0
+ special 144
+ special 142
+ playsfx 44
+ jump MauvilleCity_Gym_EventScript_15661D
+ end
+
+MauvilleCity_Gym_EventScript_15661D:: @ 815661D
+ giveitem ITEM_TM34
+ compare RESULT, 0
+ jumpeq MauvilleCity_Gym_EventScript_1A029B
+ msgbox MauvilleCity_Gym_Text_180E76, 4
+ setflag 167
+ release
+ end
+
+MauvilleCity_Gym_EventScript_156641:: @ 8156641
+ msgbox MauvilleCity_Gym_Text_180F1D, 4
+ release
+ end
+
+MauvilleCity_Gym_EventScript_15664B:: @ 815664B
+ lockall
+ checkflag 1208
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ compare 0x4093, 1
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ setvar 0x4093, 1
+ setvar 0x8004, 0
+ jump MauvilleCity_Gym_EventScript_1566BA
+ end
+
+MauvilleCity_Gym_EventScript_156670:: @ 8156670
+ lockall
+ checkflag 1208
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ compare 0x4093, 2
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ setvar 0x4093, 2
+ setvar 0x8004, 1
+ jump MauvilleCity_Gym_EventScript_1566BA
+ end
+
+MauvilleCity_Gym_EventScript_156695:: @ 8156695
+ lockall
+ checkflag 1208
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ compare 0x4093, 3
+ jumpeq MauvilleCity_Gym_EventScript_1566DA
+ setvar 0x4093, 3
+ setvar 0x8004, 2
+ jump MauvilleCity_Gym_EventScript_1566BA
+ end
+
+MauvilleCity_Gym_EventScript_1566BA:: @ 81566BA
+ special 139
+ special 140
+ special 142
+ playsfx 44
+ checkflag 99
+ jumpeq MauvilleCity_Gym_EventScript_1566E1
+ checkflag 99
+ jumpif 0, MauvilleCity_Gym_EventScript_1566DC
+ releaseall
+ end
+
+MauvilleCity_Gym_EventScript_1566DA:: @ 81566DA
+ releaseall
+ end
+
+MauvilleCity_Gym_EventScript_1566DC:: @ 81566DC
+ setflag 99
+ releaseall
+ end
+
+MauvilleCity_Gym_EventScript_1566E1:: @ 81566E1
+ clearflag 99
+ releaseall
+ end
+
+MauvilleCity_Gym_EventScript_1566E6:: @ 81566E6
+ trainerbattle 0, 191, 0, MauvilleCity_Gym_Text_180956, MauvilleCity_Gym_Text_180997
+ msgbox MauvilleCity_Gym_Text_1809D1, 6
+ end
+
+MauvilleCity_Gym_EventScript_1566FD:: @ 81566FD
+ trainerbattle 0, 194, 0, MauvilleCity_Gym_Text_180A05, MauvilleCity_Gym_Text_180A42
+ msgbox MauvilleCity_Gym_Text_180A5E, 6
+ end
+
+MauvilleCity_Gym_EventScript_156714:: @ 8156714
+ trainerbattle 0, 323, 0, MauvilleCity_Gym_Text_180AE0, MauvilleCity_Gym_Text_180B06
+ msgbox MauvilleCity_Gym_Text_180B1D, 6
+ end
+
+MauvilleCity_Gym_EventScript_15672B:: @ 815672B
+ trainerbattle 0, 649, 0, MauvilleCity_Gym_Text_180B5A, MauvilleCity_Gym_Text_180B93
+ msgbox MauvilleCity_Gym_Text_180BAE, 6
+ end
+
+MauvilleCity_Gym_EventScript_156742:: @ 8156742
+ lock
+ faceplayer
+ checkflag 1208
+ jumpeq MauvilleCity_Gym_EventScript_156757
+ msgbox MauvilleCity_Gym_Text_180815, 4
+ release
+ end
+
+MauvilleCity_Gym_EventScript_156757:: @ 8156757
+ msgbox MauvilleCity_Gym_Text_18091D, 4
+ release
+ end
+
+MauvilleCity_Gym_EventScript_156761:: @ 8156761
+ lockall
+ checkflag 2057
+ jumpeq MauvilleCity_Gym_EventScript_156781
+ jump MauvilleCity_Gym_EventScript_15678B
+ end
+
+MauvilleCity_Gym_EventScript_156771:: @ 8156771
+ lockall
+ checkflag 2057
+ jumpeq MauvilleCity_Gym_EventScript_156781
+ jump MauvilleCity_Gym_EventScript_15678B
+ end
+
+MauvilleCity_Gym_EventScript_156781:: @ 8156781
+ msgbox MauvilleCity_Gym_Text_180F64, 4
+ releaseall
+ end
+
+MauvilleCity_Gym_EventScript_15678B:: @ 815678B
+ msgbox MauvilleCity_Gym_Text_180F4A, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_House1.s b/data/scripts/maps/MauvilleCity_House1.s
new file mode 100644
index 000000000..e1ae389bb
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_House1.s
@@ -0,0 +1,20 @@
+MauvilleCity_House1_MapScripts:: @ 81569FC
+ .byte 0
+
+MauvilleCity_House1_EventScript_1569FD:: @ 81569FD
+ lock
+ faceplayer
+ checkflag 107
+ jumpeq MauvilleCity_House1_EventScript_156A29
+ msgbox MauvilleCity_House1_Text_181B1A, 4
+ giveitem ITEM_HM06
+ setflag 107
+ msgbox MauvilleCity_House1_Text_181B64, 4
+ release
+ end
+
+MauvilleCity_House1_EventScript_156A29:: @ 8156A29
+ msgbox MauvilleCity_House1_Text_181BF6, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_House2.s b/data/scripts/maps/MauvilleCity_House2.s
new file mode 100644
index 000000000..65e7c0e3e
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_House2.s
@@ -0,0 +1,46 @@
+MauvilleCity_House2_MapScripts:: @ 81572BF
+ .byte 0
+
+MauvilleCity_House2_EventScript_1572C0:: @ 81572C0
+ lock
+ faceplayer
+ checkflag 258
+ jumpeq MauvilleCity_House2_EventScript_15733D
+ msgbox MauvilleCity_House2_Text_18244E, 4
+ checkitem ITEM_HARBOR_MAIL, 1
+ compare RESULT, 1
+ jumpeq MauvilleCity_House2_EventScript_1572E5
+ release
+ end
+
+MauvilleCity_House2_EventScript_1572E5:: @ 81572E5
+ playsfx 21
+ move LAST_TALKED, MauvilleCity_House2_Movement_1A0833
+ waitmove 0
+ move LAST_TALKED, MauvilleCity_House2_Movement_1A0835
+ waitmove 0
+ msgbox MauvilleCity_House2_Text_1824D8, 5
+ compare RESULT, 1
+ jumpeq MauvilleCity_House2_EventScript_15731B
+ compare RESULT, 0
+ jumpeq MauvilleCity_House2_EventScript_157347
+ end
+
+MauvilleCity_House2_EventScript_15731B:: @ 815731B
+ msgbox MauvilleCity_House2_Text_182515, 4
+ removeitem ITEM_HARBOR_MAIL, 1
+ giveitem ITEM_COIN_CASE
+ setflag 258
+ jump MauvilleCity_House2_EventScript_15733D
+ end
+
+MauvilleCity_House2_EventScript_15733D:: @ 815733D
+ msgbox MauvilleCity_House2_Text_182549, 4
+ release
+ end
+
+MauvilleCity_House2_EventScript_157347:: @ 8157347
+ msgbox MauvilleCity_House2_Text_182578, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_Mart.s b/data/scripts/maps/MauvilleCity_Mart.s
new file mode 100644
index 000000000..312b64226
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_Mart.s
@@ -0,0 +1,40 @@
+MauvilleCity_Mart_MapScripts:: @ 81573BD
+ .byte 0
+
+MauvilleCity_Mart_EventScript_1573BE:: @ 81573BE
+ lock
+ faceplayer
+ message MauvilleCity_Mart_Text_1A0BE4
+ waittext
+ pokemart MauvilleCity_Mart_Pokemart_1573D8
+ msgbox MauvilleCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x1573d5, 0x3
+
+MauvilleCity_Mart_Pokemart_1573D8:: @ 81573D8
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_GUARD_SPEC
+ .2byte ITEM_DIRE_HIT
+ .2byte ITEM_X_ACCURACY
+ .2byte ITEM_NONE
+ release
+ end
+
+MauvilleCity_Mart_EventScript_1573F4:: @ 81573F4
+ msgbox MauvilleCity_Mart_Text_1827D3, 2
+ end
+
+MauvilleCity_Mart_EventScript_1573FD:: @ 81573FD
+ msgbox MauvilleCity_Mart_Text_18287F, 2
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_PokemonCenter_1F.s b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..6a1582145
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.s
@@ -0,0 +1,34 @@
+MauvilleCity_PokemonCenter_1F_MapScripts:: @ 8157351
+ map_script 3, MauvilleCity_PokemonCenter_1F_MapScript1_157357
+ .byte 0
+
+MauvilleCity_PokemonCenter_1F_MapScript1_157357:: @ 8157357
+ sethealplace 5
+ call MauvilleCity_PokemonCenter_1F_EventScript_19FD1B
+ jump MauvilleCity_PokemonCenter_1F_EventScript_157365
+ end
+
+MauvilleCity_PokemonCenter_1F_EventScript_157365:: @ 8157365
+ special 104
+ end
+
+MauvilleCity_PokemonCenter_1F_EventScript_157369:: @ 8157369
+ setvar 0x800b, 1
+ call MauvilleCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+MauvilleCity_PokemonCenter_1F_EventScript_157377:: @ 8157377
+ msgbox MauvilleCity_PokemonCenter_1F_Text_1825BD, 2
+ end
+
+MauvilleCity_PokemonCenter_1F_EventScript_157380:: @ 8157380
+ msgbox MauvilleCity_PokemonCenter_1F_Text_182622, 2
+ end
+
+MauvilleCity_PokemonCenter_1F_EventScript_157389:: @ 8157389
+ msgbox MauvilleCity_PokemonCenter_1F_Text_1826A6, 2
+ end
+
diff --git a/data/scripts/maps/MauvilleCity_PokemonCenter_2F.s b/data/scripts/maps/MauvilleCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..e888ecc6e
--- /dev/null
+++ b/data/scripts/maps/MauvilleCity_PokemonCenter_2F.s
@@ -0,0 +1,22 @@
+MauvilleCity_PokemonCenter_2F_MapScripts:: @ 8157392
+ map_script 2, MauvilleCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, MauvilleCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, MauvilleCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+MauvilleCity_PokemonCenter_2F_EventScript_1573A2:: @ 81573A2
+ call MauvilleCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+MauvilleCity_PokemonCenter_2F_EventScript_1573A8:: @ 81573A8
+ call MauvilleCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+MauvilleCity_PokemonCenter_2F_EventScript_1573AE:: @ 81573AE
+ call MauvilleCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
+MauvilleCity_PokemonCenter_2F_EventScript_1573B4:: @ 81573B4
+ msgbox MauvilleCity_PokemonCenter_2F_Text_182724, 2
+ end
+
diff --git a/data/scripts/maps/MeteorFalls_1F_1R.s b/data/scripts/maps/MeteorFalls_1F_1R.s
new file mode 100644
index 000000000..7574a9b4b
--- /dev/null
+++ b/data/scripts/maps/MeteorFalls_1F_1R.s
@@ -0,0 +1,225 @@
+MeteorFalls_1F_1R_MapScripts:: @ 815C490
+ map_script 3, MeteorFalls_1F_1R_MapScript1_15C496
+ .byte 0
+
+MeteorFalls_1F_1R_MapScript1_15C496:: @ 815C496
+ call MeteorFalls_1F_1R_EventScript_1A0196
+ end
+
+MeteorFalls_1F_1R_EventScript_15C49C:: @ 815C49C
+ lockall
+ move 255, MeteorFalls_1F_1R_Movement_1A0845
+ waitmove 0
+ pause 30
+ move 5, MeteorFalls_1F_1R_Movement_1A0845
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193237, 4
+ closebutton
+ move 5, MeteorFalls_1F_1R_Movement_1A0841
+ move 6, MeteorFalls_1F_1R_Movement_1A0841
+ waitmove 0
+ playsfx 21
+ move 5, MeteorFalls_1F_1R_Movement_1A0833
+ waitmove 0
+ move 5, MeteorFalls_1F_1R_Movement_1A0835
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193268, 4
+ closebutton
+ move 5, MeteorFalls_1F_1R_Movement_15C5EE
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_1932C5, 4
+ closebutton
+ move 255, MeteorFalls_1F_1R_Movement_1A083F
+ move 5, MeteorFalls_1F_1R_Movement_1A083F
+ move 6, MeteorFalls_1F_1R_Movement_1A083F
+ waitmove 0
+ reappear 7
+ reappear 8
+ reappear 9
+ move 7, MeteorFalls_1F_1R_Movement_15C608
+ move 8, MeteorFalls_1F_1R_Movement_15C60F
+ move 9, MeteorFalls_1F_1R_Movement_15C617
+ waitmove 0
+ move 5, MeteorFalls_1F_1R_Movement_1A083F
+ move 6, MeteorFalls_1F_1R_Movement_1A083F
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193320, 4
+ closebutton
+ move 255, MeteorFalls_1F_1R_Movement_15C64F
+ move 5, MeteorFalls_1F_1R_Movement_15C5F1
+ move 6, MeteorFalls_1F_1R_Movement_15C5FC
+ waitmove 0
+ disappear 5
+ disappear 6
+ move 7, MeteorFalls_1F_1R_Movement_15C628
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193584, 4
+ closebutton
+ move 8, MeteorFalls_1F_1R_Movement_15C639
+ move 9, MeteorFalls_1F_1R_Movement_15C64A
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193720, 4
+ move 7, MeteorFalls_1F_1R_Movement_1A0845
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_193747, 4
+ move 7, MeteorFalls_1F_1R_Movement_1A083F
+ waitmove 0
+ msgbox MeteorFalls_1F_1R_Text_1937AA, 4
+ closebutton
+ move 7, MeteorFalls_1F_1R_Movement_15C61F
+ move 8, MeteorFalls_1F_1R_Movement_15C62E
+ move 9, MeteorFalls_1F_1R_Movement_15C63E
+ waitmove 0
+ disappear 7
+ disappear 8
+ disappear 9
+ setflag 819
+ setvar 0x40bf, 1
+ releaseall
+ end
+
+MeteorFalls_1F_1R_Movement_15C5EE:: @ 815C5EE
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C5F1:: @ 815C5F1
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C5FC:: @ 815C5FC
+ step_16
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C608:: @ 815C608
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C60F:: @ 815C60F
+ step_14
+ step_14
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C617:: @ 815C617
+ step_14
+ step_14
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C61F:: @ 815C61F
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C628:: @ 815C628
+ step_right
+ step_right
+ step_up
+ step_up
+ step_27
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C62E:: @ 815C62E
+ step_up
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C639:: @ 815C639
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C63E:: @ 815C63E
+ step_up
+ step_up
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C64A:: @ 815C64A
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+MeteorFalls_1F_1R_Movement_15C64F:: @ 815C64F
+ step_25
+ step_12
+ step_28
+ step_40
+ step_left
+ step_41
+ step_end
+
+MeteorFalls_1F_1R_EventScript_15C656:: @ 815C656
+ lock
+ faceplayer
+ checkflag 244
+ jumpeq MeteorFalls_1F_1R_EventScript_15C66E
+ setflag 244
+ msgbox MeteorFalls_1F_1R_Text_1937EB, 4
+ release
+ end
+
+MeteorFalls_1F_1R_EventScript_15C66E:: @ 815C66E
+ msgbox MeteorFalls_1F_1R_Text_19396A, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MeteorFalls_1F_2R.s b/data/scripts/maps/MeteorFalls_1F_2R.s
new file mode 100644
index 000000000..ffd6f619c
--- /dev/null
+++ b/data/scripts/maps/MeteorFalls_1F_2R.s
@@ -0,0 +1,42 @@
+MeteorFalls_1F_2R_MapScripts:: @ 815C678
+ .byte 0
+
+MeteorFalls_1F_2R_EventScript_15C679:: @ 815C679
+ trainerbattle 0, 392, 0, MeteorFalls_1F_2R_Text_1939C5, MeteorFalls_1F_2R_Text_193A35
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq MeteorFalls_1F_2R_EventScript_15C6A0
+ msgbox MeteorFalls_1F_2R_Text_193A60, 6
+ end
+
+MeteorFalls_1F_2R_EventScript_15C6A0:: @ 815C6A0
+ trainerbattle 5, 392, 0, MeteorFalls_1F_2R_Text_193AB3, MeteorFalls_1F_2R_Text_193B21
+ msgbox MeteorFalls_1F_2R_Text_193B4C, 6
+ end
+
+MeteorFalls_1F_2R_EventScript_15C6B7:: @ 815C6B7
+ trainerbattle 4, 681, 0, MeteorFalls_1F_2R_Text_193BB7, MeteorFalls_1F_2R_Text_193C10, MeteorFalls_1F_2R_Text_193C9F
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq MeteorFalls_1F_2R_EventScript_15C6E2
+ msgbox MeteorFalls_1F_2R_Text_193C35, 6
+ end
+
+MeteorFalls_1F_2R_EventScript_15C6E2:: @ 815C6E2
+ trainerbattle 7, 681, 0, MeteorFalls_1F_2R_Text_193E75, MeteorFalls_1F_2R_Text_193ECE, MeteorFalls_1F_2R_Text_193F59
+ msgbox MeteorFalls_1F_2R_Text_193EF3, 6
+ end
+
+MeteorFalls_1F_2R_EventScript_15C6FD:: @ 815C6FD
+ trainerbattle 4, 681, 0, MeteorFalls_1F_2R_Text_193D10, MeteorFalls_1F_2R_Text_193D6E, MeteorFalls_1F_2R_Text_193DFB
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq MeteorFalls_1F_2R_EventScript_15C728
+ msgbox MeteorFalls_1F_2R_Text_193D9A, 6
+ end
+
+MeteorFalls_1F_2R_EventScript_15C728:: @ 815C728
+ trainerbattle 7, 681, 0, MeteorFalls_1F_2R_Text_193FCA, MeteorFalls_1F_2R_Text_19403A, MeteorFalls_1F_2R_Text_1940DF
+ msgbox MeteorFalls_1F_2R_Text_194066, 6
+ end
+
diff --git a/data/scripts/maps/MeteorFalls_B1F_1R.s b/data/scripts/maps/MeteorFalls_B1F_1R.s
new file mode 100644
index 000000000..024cf305e
--- /dev/null
+++ b/data/scripts/maps/MeteorFalls_B1F_1R.s
@@ -0,0 +1,3 @@
+MeteorFalls_B1F_1R_MapScripts:: @ 815C743
+ .byte 0
+
diff --git a/data/scripts/maps/MeteorFalls_B1F_2R.s b/data/scripts/maps/MeteorFalls_B1F_2R.s
new file mode 100644
index 000000000..1f1f6ee99
--- /dev/null
+++ b/data/scripts/maps/MeteorFalls_B1F_2R.s
@@ -0,0 +1,3 @@
+MeteorFalls_B1F_2R_MapScripts:: @ 815C744
+ .byte 0
+
diff --git a/data/scripts/maps/MossdeepCity.s b/data/scripts/maps/MossdeepCity.s
new file mode 100644
index 000000000..70adb2f9d
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity.s
@@ -0,0 +1,93 @@
+MossdeepCity_MapScripts:: @ 814CF92
+ map_script 3, MossdeepCity_MapScript1_14CF98
+ .byte 0
+
+MossdeepCity_MapScript1_14CF98:: @ 814CF98
+ clearflag 100
+ clearflag 101
+ clearflag 102
+ clearflag 103
+ checkflag 2090
+ callif 1, MossdeepCity_EventScript_1A02C1
+ end
+
+MossdeepCity_EventScript_14CFAE:: @ 814CFAE
+ msgbox MossdeepCity_Text_169266, 2
+ end
+
+MossdeepCity_EventScript_14CFB7:: @ 814CFB7
+ msgbox MossdeepCity_Text_1692A1, 2
+ end
+
+MossdeepCity_EventScript_14CFC0:: @ 814CFC0
+ msgbox MossdeepCity_Text_1691F2, 2
+ end
+
+MossdeepCity_EventScript_14CFC9:: @ 814CFC9
+ msgbox MossdeepCity_Text_169370, 2
+ end
+
+MossdeepCity_EventScript_14CFD2:: @ 814CFD2
+ msgbox MossdeepCity_Text_169314, 2
+ end
+
+MossdeepCity_EventScript_14CFDB:: @ 814CFDB
+ msgbox MossdeepCity_Text_1694DA, 2
+ end
+
+MossdeepCity_EventScript_14CFE4:: @ 814CFE4
+ msgbox MossdeepCity_Text_1695D3, 3
+ end
+
+MossdeepCity_EventScript_14CFED:: @ 814CFED
+ msgbox MossdeepCity_Text_1695E6, 3
+ end
+
+MossdeepCity_EventScript_14CFF6:: @ 814CFF6
+ msgbox MossdeepCity_Text_16962F, 3
+ end
+
+MossdeepCity_EventScript_14CFFF:: @ 814CFFF
+ msgbox MossdeepCity_Text_16965C, 3
+ end
+
+MossdeepCity_EventScript_14D008:: @ 814D008
+ setflag 2076
+ setvar 0x4001, 1
+ end
+
+MossdeepCity_EventScript_14D011:: @ 814D011
+ lock
+ faceplayer
+ msgbox MossdeepCity_Text_16944E, 4
+ move LAST_TALKED, MossdeepCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+MossdeepCity_EventScript_14D027:: @ 814D027
+ lock
+ faceplayer
+ checkflag 276
+ jumpeq MossdeepCity_EventScript_14D069
+ msgbox MossdeepCity_Text_1690A9, 5
+ compare RESULT, 0
+ jumpeq MossdeepCity_EventScript_14D073
+ msgbox MossdeepCity_Text_169117, 4
+ giveitem ITEM_KINGS_ROCK
+ compare RESULT, 0
+ jumpeq MossdeepCity_EventScript_1A029B
+ setflag 276
+ release
+ end
+
+MossdeepCity_EventScript_14D069:: @ 814D069
+ msgbox MossdeepCity_Text_16916F, 4
+ release
+ end
+
+MossdeepCity_EventScript_14D073:: @ 814D073
+ msgbox MossdeepCity_Text_1691A7, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_1F.s b/data/scripts/maps/MossdeepCity_GameCorner_1F.s
new file mode 100644
index 000000000..573e69d8e
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_GameCorner_1F.s
@@ -0,0 +1,187 @@
+MossdeepCity_GameCorner_1F_MapScripts:: @ 815AC52
+ map_script 1, MossdeepCity_GameCorner_1F_MapScript1_15AC62
+ map_script 3, MossdeepCity_GameCorner_1F_MapScript1_15AC84
+ map_script 2, MossdeepCity_GameCorner_1F_MapScript2_15ACBB
+ .byte 0
+
+MossdeepCity_GameCorner_1F_MapScript1_15AC62:: @ 815AC62
+ special 246
+ compare RESULT, 1
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AC71
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15AC71:: @ 815AC71
+ setmaptile 3, 0, 653, 1
+ setmaptile 3, 1, 661, 1
+ return
+
+MossdeepCity_GameCorner_1F_MapScript1_15AC84:: @ 815AC84
+ special 246
+ compare RESULT, 0
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AC9E
+ compare 0x40c0, 0
+ callif 5, MossdeepCity_GameCorner_1F_EventScript_15ACAF
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15AC9E:: @ 815AC9E
+ setvar 0x4001, 1
+ movespriteperm 1, 3, 2
+ spritebehave 1, 8
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15ACAF:: @ 815ACAF
+ movespriteperm 1, 2, 2
+ spritebehave 1, 10
+ return
+
+MossdeepCity_GameCorner_1F_MapScript2_15ACBB:: @ 815ACBB
+ map_script_2 0x40c0, 1, MossdeepCity_GameCorner_1F_EventScript_15ACD5
+ map_script_2 0x40c0, 2, MossdeepCity_GameCorner_1F_EventScript_15ACD5
+ map_script_2 0x40c0, 3, MossdeepCity_GameCorner_1F_EventScript_15ACD5
+ .2byte 0
+
+MossdeepCity_GameCorner_1F_EventScript_15ACD5:: @ 815ACD5
+ lockall
+ move 255, MossdeepCity_GameCorner_1F_Movement_15AD3D
+ waitmove 0
+ move 1, MossdeepCity_GameCorner_1F_Movement_15AD3F
+ waitmove 0
+ moveoffscreen 1
+ move 255, MossdeepCity_GameCorner_1F_Movement_1A0841
+ waitmove 0
+ compare 0x40c0, 1
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AD22
+ compare 0x40c0, 2
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AD2B
+ compare 0x40c0, 3
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AD34
+ special 40
+ setvar 0x40c0, 0
+ releaseall
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15AD22:: @ 815AD22
+ msgbox MossdeepCity_GameCorner_1F_Text_18E80E, 4
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15AD2B:: @ 815AD2B
+ msgbox MossdeepCity_GameCorner_1F_Text_18E859, 4
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15AD34:: @ 815AD34
+ msgbox MossdeepCity_GameCorner_1F_Text_18E7B1, 4
+ return
+
+MossdeepCity_GameCorner_1F_Movement_15AD3D:: @ 815AD3D
+ step_down
+ step_end
+
+MossdeepCity_GameCorner_1F_Movement_15AD3F:: @ 815AD3F
+ step_right
+ step_25
+ step_end
+
+MossdeepCity_GameCorner_1F_EventScript_15AD42:: @ 815AD42
+ lock
+ faceplayer
+ compare 0x4001, 1
+ jumpeq MossdeepCity_GameCorner_1F_EventScript_15AD59
+ msgbox MossdeepCity_GameCorner_1F_Text_18E59A, 4
+ release
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15AD59:: @ 815AD59
+ special 39
+ special 285
+ msgbox MossdeepCity_GameCorner_1F_Text_18E650, 5
+ compare RESULT, 0
+ jumpeq MossdeepCity_GameCorner_1F_EventScript_15ADE8
+ call MossdeepCity_GameCorner_1F_EventScript_15ADF5
+ compare RESULT, 0
+ jumpeq MossdeepCity_GameCorner_1F_EventScript_15ADE8
+ msgbox MossdeepCity_GameCorner_1F_Text_18E741, 5
+ compare RESULT, 0
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15ADE8
+ special 40
+ call MossdeepCity_GameCorner_1F_EventScript_19F806
+ compare RESULT, 0
+ jumpeq MossdeepCity_GameCorner_1F_EventScript_15ADE8
+ hidebox 0, 0, 15, 10
+ special 39
+ special 248
+ msgbox MossdeepCity_GameCorner_1F_Text_18E777, 4
+ closebutton
+ compare FACING, 2
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AE04
+ compare FACING, 4
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AE16
+ compare FACING, 3
+ callif 1, MossdeepCity_GameCorner_1F_EventScript_15AE28
+ warp MossdeepCity_GameCorner_B1F, 255, 3, 1
+ waitstate
+ release
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15ADE8:: @ 815ADE8
+ special 40
+ msgbox MossdeepCity_GameCorner_1F_Text_18E698, 4
+ release
+ end
+
+MossdeepCity_GameCorner_1F_EventScript_15ADF5:: @ 815ADF5
+ msgbox MossdeepCity_GameCorner_1F_Text_18E6DA, 4
+ fadescreen 1
+ special 41
+ waitstate
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15AE04:: @ 815AE04
+ move LAST_TALKED, MossdeepCity_GameCorner_1F_Movement_15AE46
+ move 255, MossdeepCity_GameCorner_1F_Movement_15AE3A
+ waitmove 0
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15AE16:: @ 815AE16
+ move LAST_TALKED, MossdeepCity_GameCorner_1F_Movement_15AE49
+ move 255, MossdeepCity_GameCorner_1F_Movement_15AE3E
+ waitmove 0
+ return
+
+MossdeepCity_GameCorner_1F_EventScript_15AE28:: @ 815AE28
+ move LAST_TALKED, MossdeepCity_GameCorner_1F_Movement_15AE46
+ move 255, MossdeepCity_GameCorner_1F_Movement_15AE42
+ waitmove 0
+ return
+
+MossdeepCity_GameCorner_1F_Movement_15AE3A:: @ 815AE3A
+ step_14
+ step_up
+ step_up
+ step_end
+
+MossdeepCity_GameCorner_1F_Movement_15AE3E:: @ 815AE3E
+ step_14
+ step_right
+ step_up
+ step_end
+
+MossdeepCity_GameCorner_1F_Movement_15AE42:: @ 815AE42
+ step_14
+ step_left
+ step_up
+ step_end
+
+MossdeepCity_GameCorner_1F_Movement_15AE46:: @ 815AE46
+ step_left
+ step_28
+ step_end
+
+MossdeepCity_GameCorner_1F_Movement_15AE49:: @ 815AE49
+ step_right
+ step_27
+ step_end
+
+MossdeepCity_GameCorner_1F_EventScript_15AE4C:: @ 815AE4C
+ msgbox MossdeepCity_GameCorner_1F_Text_18E631, 3
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_B1F.s b/data/scripts/maps/MossdeepCity_GameCorner_B1F.s
new file mode 100644
index 000000000..3fa9fe707
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_GameCorner_B1F.s
@@ -0,0 +1,78 @@
+MossdeepCity_GameCorner_B1F_MapScripts:: @ 815AE55
+ map_script 3, MossdeepCity_GameCorner_B1F_MapScript1_15AE60
+ map_script 2, MossdeepCity_GameCorner_B1F_MapScript2_15AE64
+ .byte 0
+
+MossdeepCity_GameCorner_B1F_MapScript1_15AE60:: @ 815AE60
+ special 322
+ end
+
+MossdeepCity_GameCorner_B1F_MapScript2_15AE64:: @ 815AE64
+ map_script_2 0x4001, 0, MossdeepCity_GameCorner_B1F_EventScript_15AE6E
+ .2byte 0
+
+MossdeepCity_GameCorner_B1F_EventScript_15AE6E:: @ 815AE6E
+ lockall
+ move 255, MossdeepCity_GameCorner_B1F_Movement_15AEF9
+ waitmove 0
+ special 235
+ msgbox 0x20234cc, 4
+ closebutton
+ setvar 0x8004, 2
+ setvar 0x8005, 0
+ special 236
+ waitstate
+ compare RESULT, 3
+ callif 1, MossdeepCity_GameCorner_B1F_EventScript_15AED5
+ compare RESULT, 1
+ callif 1, MossdeepCity_GameCorner_B1F_EventScript_15AEE3
+ compare RESULT, 2
+ callif 1, MossdeepCity_GameCorner_B1F_EventScript_15AEEE
+ closebutton
+ special 0
+ move 255, MossdeepCity_GameCorner_B1F_Movement_15AEFF
+ waitmove 0
+ special 40
+ setvar 0x4001, 1
+ warp MossdeepCity_GameCorner_1F, 255, 3, 1
+ waitstate
+ releaseall
+ end
+
+MossdeepCity_GameCorner_B1F_EventScript_15AED5:: @ 815AED5
+ setvar 0x40c0, 3
+ msgbox MossdeepCity_GameCorner_B1F_Text_18E796, 4
+ return
+
+MossdeepCity_GameCorner_B1F_EventScript_15AEE3:: @ 815AEE3
+ setvar 0x40c0, 1
+ special 141
+ waittext
+ waitbutton
+ return
+
+MossdeepCity_GameCorner_B1F_EventScript_15AEEE:: @ 815AEEE
+ setvar 0x40c0, 2
+ special 141
+ waittext
+ waitbutton
+ return
+
+MossdeepCity_GameCorner_B1F_Movement_15AEF9:: @ 815AEF9
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_end
+
+MossdeepCity_GameCorner_B1F_Movement_15AEFF:: @ 815AEFF
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_up
+ step_13
+ step_end
+
diff --git a/data/scripts/maps/MossdeepCity_Gym.s b/data/scripts/maps/MossdeepCity_Gym.s
new file mode 100644
index 000000000..a28f6043a
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_Gym.s
@@ -0,0 +1,252 @@
+MossdeepCity_Gym_MapScripts:: @ 815A4D3
+ map_script 1, MossdeepCity_Gym_MapScript1_15A4D9
+ .byte 0
+
+MossdeepCity_Gym_MapScript1_15A4D9:: @ 815A4D9
+ checkflag 100
+ jumpeq MossdeepCity_Gym_EventScript_15A510
+ jump MossdeepCity_Gym_EventScript_15A4E8
+ end
+
+MossdeepCity_Gym_EventScript_15A4E8:: @ 815A4E8
+ checkflag 101
+ jumpeq MossdeepCity_Gym_EventScript_15A528
+ jump MossdeepCity_Gym_EventScript_15A4F7
+ end
+
+MossdeepCity_Gym_EventScript_15A4F7:: @ 815A4F7
+ checkflag 102
+ jumpeq MossdeepCity_Gym_EventScript_15A540
+ jump MossdeepCity_Gym_EventScript_15A506
+ end
+
+MossdeepCity_Gym_EventScript_15A506:: @ 815A506
+ checkflag 103
+ jumpeq MossdeepCity_Gym_EventScript_15A558
+ end
+
+MossdeepCity_Gym_EventScript_15A510:: @ 815A510
+ setmaptile 5, 5, 516, 0
+ setmaptile 2, 7, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A4E8
+ end
+
+MossdeepCity_Gym_EventScript_15A528:: @ 815A528
+ setmaptile 8, 14, 516, 0
+ setmaptile 8, 10, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A4F7
+ end
+
+MossdeepCity_Gym_EventScript_15A540:: @ 815A540
+ setmaptile 15, 17, 524, 0
+ setmaptile 17, 15, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A506
+ end
+
+MossdeepCity_Gym_EventScript_15A558:: @ 815A558
+ setmaptile 1, 23, 525, 0
+ setmaptile 5, 24, 569, 1
+ end
+
+MossdeepCity_Gym_EventScript_15A56B:: @ 815A56B
+ trainerbattle 8, 271, 0, MossdeepCity_Gym_Text_18CF02, MossdeepCity_Gym_Text_18D077, MossdeepCity_Gym_Text_18D324, MossdeepCity_Gym_EventScript_15A594
+ checkflag 171
+ jumpif 0, MossdeepCity_Gym_EventScript_15A5C6
+ msgbox MossdeepCity_Gym_Text_18D273, 4
+ release
+ end
+
+MossdeepCity_Gym_EventScript_15A594:: @ 815A594
+ message MossdeepCity_Gym_Text_18D0F9
+ waittext
+ call MossdeepCity_Gym_EventScript_1A02C5
+ msgbox MossdeepCity_Gym_Text_18D128, 4
+ setflag 1229
+ setflag 2061
+ clearflag 869
+ clearflag 915
+ setvar 0x8008, 7
+ call MossdeepCity_Gym_EventScript_1A01C0
+ clearflag 905
+ jump MossdeepCity_Gym_EventScript_15A5C6
+ end
+
+MossdeepCity_Gym_EventScript_15A5C6:: @ 815A5C6
+ giveitem ITEM_TM04
+ compare RESULT, 0
+ jumpeq MossdeepCity_Gym_EventScript_1A029B
+ msgbox MossdeepCity_Gym_Text_18D1CF, 4
+ setflag 171
+ release
+ end
+
+MossdeepCity_Gym_EventScript_15A5EA:: @ 815A5EA
+ lockall
+ checkflag 100
+ jumpeq MossdeepCity_Gym_EventScript_15A621
+ setflag 100
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 5, 5, 516, 0
+ setmaptile 2, 7, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A619:: @ 815A619
+ special 142
+ playsfx 36
+ releaseall
+ end
+
+MossdeepCity_Gym_EventScript_15A621:: @ 815A621
+ clearflag 100
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 5, 5, 524, 0
+ setmaptile 2, 7, 568, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A646:: @ 815A646
+ lockall
+ checkflag 101
+ jumpeq MossdeepCity_Gym_EventScript_15A675
+ setflag 101
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 8, 14, 516, 0
+ setmaptile 8, 10, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A675:: @ 815A675
+ clearflag 101
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 8, 14, 517, 0
+ setmaptile 8, 10, 568, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A69A:: @ 815A69A
+ lockall
+ checkflag 102
+ jumpeq MossdeepCity_Gym_EventScript_15A6C9
+ setflag 102
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 15, 17, 524, 0
+ setmaptile 17, 15, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A6C9:: @ 815A6C9
+ clearflag 102
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 15, 17, 516, 0
+ setmaptile 17, 15, 568, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A6EE:: @ 815A6EE
+ lockall
+ checkflag 103
+ jumpeq MossdeepCity_Gym_EventScript_15A71D
+ setflag 103
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 1, 23, 525, 0
+ setmaptile 5, 24, 569, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A71D:: @ 815A71D
+ clearflag 103
+ move 255, MossdeepCity_Gym_Movement_15A7F7
+ waitmove 0
+ setmaptile 1, 23, 516, 0
+ setmaptile 5, 24, 568, 1
+ jump MossdeepCity_Gym_EventScript_15A619
+ end
+
+MossdeepCity_Gym_EventScript_15A742:: @ 815A742
+ lockall
+ warpteleport MossdeepCity_Gym, 255, 14, 29
+ waitstate
+ releaseall
+ end
+
+MossdeepCity_Gym_EventScript_15A74E:: @ 815A74E
+ trainerbattle 0, 233, 0, MossdeepCity_Gym_Text_18C96A, MossdeepCity_Gym_Text_18C9BA
+ msgbox MossdeepCity_Gym_Text_18C9E1, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A765:: @ 815A765
+ trainerbattle 0, 234, 0, MossdeepCity_Gym_Text_18CA10, MossdeepCity_Gym_Text_18CA28
+ msgbox MossdeepCity_Gym_Text_18CA48, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A77C:: @ 815A77C
+ trainerbattle 0, 235, 0, MossdeepCity_Gym_Text_18CAC0, MossdeepCity_Gym_Text_18CB46
+ msgbox MossdeepCity_Gym_Text_18CB77, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A793:: @ 815A793
+ trainerbattle 0, 244, 0, MossdeepCity_Gym_Text_18CC1E, MossdeepCity_Gym_Text_18CC83
+ msgbox MossdeepCity_Gym_Text_18CC9B, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A7AA:: @ 815A7AA
+ trainerbattle 0, 245, 0, MossdeepCity_Gym_Text_18CD14, MossdeepCity_Gym_Text_18CD66
+ msgbox MossdeepCity_Gym_Text_18CD73, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A7C1:: @ 815A7C1
+ trainerbattle 0, 246, 0, MossdeepCity_Gym_Text_18CDE0, MossdeepCity_Gym_Text_18CE47
+ msgbox MossdeepCity_Gym_Text_18CE6C, 6
+ end
+
+MossdeepCity_Gym_EventScript_15A7D8:: @ 815A7D8
+ lock
+ faceplayer
+ checkflag 1229
+ jumpeq MossdeepCity_Gym_EventScript_15A7ED
+ msgbox MossdeepCity_Gym_Text_18C7E3, 4
+ release
+ end
+
+MossdeepCity_Gym_EventScript_15A7ED:: @ 815A7ED
+ msgbox MossdeepCity_Gym_Text_18C938, 4
+ release
+ end
+
+MossdeepCity_Gym_Movement_15A7F7:: @ 815A7F7
+ step_14
+ step_14
+ step_end
+
+MossdeepCity_Gym_EventScript_15A7FA:: @ 815A7FA
+ lockall
+ checkflag 2061
+ jumpeq MossdeepCity_Gym_EventScript_15A81A
+ jump MossdeepCity_Gym_EventScript_15A824
+ end
+
+MossdeepCity_Gym_EventScript_15A80A:: @ 815A80A
+ lockall
+ checkflag 2061
+ jumpeq MossdeepCity_Gym_EventScript_15A81A
+ jump MossdeepCity_Gym_EventScript_15A824
+ end
+
+MossdeepCity_Gym_EventScript_15A81A:: @ 815A81A
+ msgbox MossdeepCity_Gym_Text_18D424, 4
+ releaseall
+ end
+
+MossdeepCity_Gym_EventScript_15A824:: @ 815A824
+ msgbox MossdeepCity_Gym_Text_18D40A, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_House1.s b/data/scripts/maps/MossdeepCity_House1.s
new file mode 100644
index 000000000..607ca1baa
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_House1.s
@@ -0,0 +1,24 @@
+MossdeepCity_House1_MapScripts:: @ 815A82E
+ .byte 0
+
+MossdeepCity_House1_EventScript_15A82F:: @ 815A82F
+ lock
+ faceplayer
+ bufferfirstpoke 0
+ msgbox MossdeepCity_House1_Text_18D465, 4
+ specialval RESULT, 277
+ compare RESULT, 0
+ jumpeq MossdeepCity_House1_EventScript_15A855
+ msgbox MossdeepCity_House1_Text_18D475, 4
+ release
+ end
+
+MossdeepCity_House1_EventScript_15A855:: @ 815A855
+ msgbox MossdeepCity_House1_Text_18D4C0, 4
+ release
+ end
+
+MossdeepCity_House1_EventScript_15A85F:: @ 815A85F
+ msgbox MossdeepCity_House1_Text_18D4F1, 2
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_House2.s b/data/scripts/maps/MossdeepCity_House2.s
new file mode 100644
index 000000000..99aa63f91
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_House2.s
@@ -0,0 +1,55 @@
+MossdeepCity_House2_MapScripts:: @ 815A868
+ .byte 0
+
+MossdeepCity_House2_EventScript_15A869:: @ 815A869
+ msgbox MossdeepCity_House2_Text_18D536, 2
+ end
+
+MossdeepCity_House2_EventScript_15A872:: @ 815A872
+ msgbox MossdeepCity_House2_Text_18D596, 2
+ end
+
+MossdeepCity_House2_EventScript_15A87B:: @ 815A87B
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox MossdeepCity_House2_Text_18D61E, 4
+ waitpokecry
+ closebutton
+ setflag 224
+ clearflag 933
+ compare FACING, 2
+ callif 1, MossdeepCity_House2_EventScript_15A8AE
+ compare FACING, 3
+ callif 1, MossdeepCity_House2_EventScript_15A8B9
+ disappear 3
+ release
+ end
+
+MossdeepCity_House2_EventScript_15A8AE:: @ 815A8AE
+ move 3, MossdeepCity_House2_Movement_15A8C4
+ waitmove 0
+ return
+
+MossdeepCity_House2_EventScript_15A8B9:: @ 815A8B9
+ move 3, MossdeepCity_House2_Movement_15A8CB
+ waitmove 0
+ return
+
+MossdeepCity_House2_Movement_15A8C4:: @ 815A8C4
+ step_18
+ step_15
+ step_15
+ step_17
+ step_15
+ step_13
+ step_end
+
+MossdeepCity_House2_Movement_15A8CB:: @ 815A8CB
+ step_15
+ step_15
+ step_15
+ step_13
+ step_end
+
diff --git a/data/scripts/maps/MossdeepCity_House3.s b/data/scripts/maps/MossdeepCity_House3.s
new file mode 100644
index 000000000..9401bf58e
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_House3.s
@@ -0,0 +1,28 @@
+MossdeepCity_House3_MapScripts:: @ 815A971
+ .byte 0
+
+MossdeepCity_House3_EventScript_15A972:: @ 815A972
+ lock
+ faceplayer
+ checkflag 152
+ jumpeq MossdeepCity_House3_EventScript_15A9B1
+ msgbox MossdeepCity_House3_Text_18D909, 5
+ compare RESULT, 0
+ jumpeq MossdeepCity_House3_EventScript_15A9BB
+ msgbox MossdeepCity_House3_Text_18D9A9, 4
+ giveitem ITEM_SUPER_ROD
+ setflag 152
+ msgbox MossdeepCity_House3_Text_18D9E3, 4
+ release
+ end
+
+MossdeepCity_House3_EventScript_15A9B1:: @ 815A9B1
+ msgbox MossdeepCity_House3_Text_18DA44, 4
+ release
+ end
+
+MossdeepCity_House3_EventScript_15A9BB:: @ 815A9BB
+ msgbox MossdeepCity_House3_Text_18DA26, 4
+ release
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_House4.s b/data/scripts/maps/MossdeepCity_House4.s
new file mode 100644
index 000000000..3fde63469
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_House4.s
@@ -0,0 +1,43 @@
+MossdeepCity_House4_MapScripts:: @ 815AB30
+ .byte 0
+
+MossdeepCity_House4_EventScript_15AB31:: @ 815AB31
+ lock
+ faceplayer
+ checkflag 2052
+ jumpeq MossdeepCity_House4_EventScript_15AB46
+ msgbox MossdeepCity_House4_Text_18E0E3, 4
+ release
+ end
+
+MossdeepCity_House4_EventScript_15AB46:: @ 815AB46
+ msgbox MossdeepCity_House4_Text_18E125, 4
+ release
+ end
+
+MossdeepCity_House4_EventScript_15AB50:: @ 815AB50
+ lock
+ faceplayer
+ special 7
+ compare RESULT, 0
+ jumpeq MossdeepCity_House4_EventScript_15AB6D
+ special 278
+ msgbox MossdeepCity_House4_Text_18E17E, 4
+ release
+ end
+
+MossdeepCity_House4_EventScript_15AB6D:: @ 815AB6D
+ msgbox MossdeepCity_House4_Text_18E1A7, 4
+ release
+ end
+
+MossdeepCity_House4_EventScript_15AB77:: @ 815AB77
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_SKITTY, 0
+ msgbox MossdeepCity_House4_Text_18E1E1, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_Mart.s b/data/scripts/maps/MossdeepCity_Mart.s
new file mode 100644
index 000000000..ef20523a8
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_Mart.s
@@ -0,0 +1,41 @@
+MossdeepCity_Mart_MapScripts:: @ 815A925
+ .byte 0
+
+MossdeepCity_Mart_EventScript_15A926:: @ 815A926
+ lock
+ faceplayer
+ message MossdeepCity_Mart_Text_1A0BE4
+ waittext
+ pokemart MossdeepCity_Mart_Pokemart_15A940
+ msgbox MossdeepCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15a93d, 0x3
+
+MossdeepCity_Mart_Pokemart_15A940:: @ 815A940
+ .2byte ITEM_ULTRA_BALL
+ .2byte ITEM_NET_BALL
+ .2byte ITEM_DIVE_BALL
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_FULL_HEAL
+ .2byte ITEM_REVIVE
+ .2byte ITEM_MAX_REPEL
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_NONE
+ release
+ end
+
+MossdeepCity_Mart_EventScript_15A956:: @ 815A956
+ msgbox MossdeepCity_Mart_Text_18D758, 2
+ end
+
+MossdeepCity_Mart_EventScript_15A95F:: @ 815A95F
+ msgbox MossdeepCity_Mart_Text_18D7E7, 2
+ end
+
+MossdeepCity_Mart_EventScript_15A968:: @ 815A968
+ msgbox MossdeepCity_Mart_Text_18D841, 2
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_PokemonCenter_1F.s b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..4ac89863a
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.s
@@ -0,0 +1,24 @@
+MossdeepCity_PokemonCenter_1F_MapScripts:: @ 815A8D0
+ map_script 3, MossdeepCity_PokemonCenter_1F_MapScript1_15A8D6
+ .byte 0
+
+MossdeepCity_PokemonCenter_1F_MapScript1_15A8D6:: @ 815A8D6
+ sethealplace 9
+ end
+
+MossdeepCity_PokemonCenter_1F_EventScript_15A8DA:: @ 815A8DA
+ setvar 0x800b, 1
+ call MossdeepCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+MossdeepCity_PokemonCenter_1F_EventScript_15A8E8:: @ 815A8E8
+ msgbox MossdeepCity_PokemonCenter_1F_Text_18D62F, 2
+ end
+
+MossdeepCity_PokemonCenter_1F_EventScript_15A8F1:: @ 815A8F1
+ msgbox MossdeepCity_PokemonCenter_1F_Text_18D69A, 2
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_PokemonCenter_2F.s b/data/scripts/maps/MossdeepCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..09aca3dae
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_PokemonCenter_2F.s
@@ -0,0 +1,22 @@
+MossdeepCity_PokemonCenter_2F_MapScripts:: @ 815A8FA
+ map_script 2, MossdeepCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, MossdeepCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, MossdeepCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+MossdeepCity_PokemonCenter_2F_EventScript_15A90A:: @ 815A90A
+ msgbox MossdeepCity_PokemonCenter_2F_Text_18D6F5, 2
+ end
+
+MossdeepCity_PokemonCenter_2F_EventScript_15A913:: @ 815A913
+ call MossdeepCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+MossdeepCity_PokemonCenter_2F_EventScript_15A919:: @ 815A919
+ call MossdeepCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+MossdeepCity_PokemonCenter_2F_EventScript_15A91F:: @ 815A91F
+ call MossdeepCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.s b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.s
new file mode 100644
index 000000000..460281ebb
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.s
@@ -0,0 +1,64 @@
+MossdeepCity_SpaceCenter_1F_MapScripts:: @ 815AB8A
+ .byte 0
+
+MossdeepCity_SpaceCenter_1F_EventScript_15AB8B:: @ 815AB8B
+ lock
+ faceplayer
+ checkdailyflags
+ specialval RESULT, 256
+ buffernum 0, RESULT
+ compare RESULT, 0
+ callif 1, MossdeepCity_SpaceCenter_1F_EventScript_15ABBA
+ compare RESULT, 1
+ callif 4, MossdeepCity_SpaceCenter_1F_EventScript_15ABC3
+ closebutton
+ move LAST_TALKED, MossdeepCity_SpaceCenter_1F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+MossdeepCity_SpaceCenter_1F_EventScript_15ABBA:: @ 815ABBA
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E1F3, 4
+ return
+
+MossdeepCity_SpaceCenter_1F_EventScript_15ABC3:: @ 815ABC3
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E214, 4
+ return
+
+MossdeepCity_SpaceCenter_1F_EventScript_15ABCC:: @ 815ABCC
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E251, 2
+ end
+
+MossdeepCity_SpaceCenter_1F_EventScript_15ABD5:: @ 815ABD5
+ lock
+ faceplayer
+ checkflag 192
+ jumpeq MossdeepCity_SpaceCenter_1F_EventScript_15AC0C
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E335, 4
+ giveitem ITEM_SUN_STONE
+ compare RESULT, 0
+ jumpeq MossdeepCity_SpaceCenter_1F_EventScript_1A029B
+ setflag 192
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E39B, 4
+ release
+ end
+
+MossdeepCity_SpaceCenter_1F_EventScript_15AC0C:: @ 815AC0C
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E39B, 4
+ release
+ end
+
+MossdeepCity_SpaceCenter_1F_EventScript_15AC16:: @ 815AC16
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E3E5, 2
+ end
+
+MossdeepCity_SpaceCenter_1F_EventScript_15AC1F:: @ 815AC1F
+ lock
+ faceplayer
+ msgbox MossdeepCity_SpaceCenter_1F_Text_18E427, 4
+ closebutton
+ move LAST_TALKED, MossdeepCity_SpaceCenter_1F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_2F.s b/data/scripts/maps/MossdeepCity_SpaceCenter_2F.s
new file mode 100644
index 000000000..145cae073
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_2F.s
@@ -0,0 +1,15 @@
+MossdeepCity_SpaceCenter_2F_MapScripts:: @ 815AC36
+ .byte 0
+
+MossdeepCity_SpaceCenter_2F_EventScript_15AC37:: @ 815AC37
+ msgbox MossdeepCity_SpaceCenter_2F_Text_18E483, 2
+ end
+
+MossdeepCity_SpaceCenter_2F_EventScript_15AC40:: @ 815AC40
+ msgbox MossdeepCity_SpaceCenter_2F_Text_18E4EE, 2
+ end
+
+MossdeepCity_SpaceCenter_2F_EventScript_15AC49:: @ 815AC49
+ msgbox MossdeepCity_SpaceCenter_2F_Text_18E564, 2
+ end
+
diff --git a/data/scripts/maps/MossdeepCity_StevensHouse.s b/data/scripts/maps/MossdeepCity_StevensHouse.s
new file mode 100644
index 000000000..69e0fbffd
--- /dev/null
+++ b/data/scripts/maps/MossdeepCity_StevensHouse.s
@@ -0,0 +1,131 @@
+MossdeepCity_StevensHouse_MapScripts:: @ 815A9C5
+ map_script 1, MossdeepCity_StevensHouse_MapScript1_15A9D5
+ map_script 3, MossdeepCity_StevensHouse_MapScript1_15A9E9
+ map_script 2, MossdeepCity_StevensHouse_MapScript2_15AA01
+ .byte 0
+
+MossdeepCity_StevensHouse_MapScript1_15A9D5:: @ 815A9D5
+ checkflag 2052
+ callif 0, MossdeepCity_StevensHouse_EventScript_15A9DF
+ end
+
+MossdeepCity_StevensHouse_EventScript_15A9DF:: @ 815A9DF
+ setmaptile 6, 4, 753, 1
+ return
+
+MossdeepCity_StevensHouse_MapScript1_15A9E9:: @ 815A9E9
+ compare 0x40c6, 1
+ callif 1, MossdeepCity_StevensHouse_EventScript_15A9F5
+ end
+
+MossdeepCity_StevensHouse_EventScript_15A9F5:: @ 815A9F5
+ movespriteperm 1, 6, 5
+ spritebehave 1, 7
+ return
+
+MossdeepCity_StevensHouse_MapScript2_15AA01:: @ 815AA01
+ map_script_2 0x40c6, 0, MossdeepCity_StevensHouse_EventScript_15AA0B
+ .2byte 0
+
+MossdeepCity_StevensHouse_EventScript_15AA0B:: @ 815AA0B
+ lockall
+ move 1, MossdeepCity_StevensHouse_Movement_1A083F
+ waitmove 0
+ playsfx 21
+ move 1, MossdeepCity_StevensHouse_Movement_1A0833
+ waitmove 0
+ move 1, MossdeepCity_StevensHouse_Movement_1A0835
+ waitmove 0
+ move 1, MossdeepCity_StevensHouse_Movement_15AA6E
+ waitmove 0
+ msgbox MossdeepCity_StevensHouse_Text_18DA77, 4
+ giveitem ITEM_HM08
+ setflag 123
+ setflag 302
+ msgbox MossdeepCity_StevensHouse_Text_18DB22, 4
+ closebutton
+ pause 20
+ move 1, MossdeepCity_StevensHouse_Movement_15AA76
+ waitmove 0
+ setvar 0x40c6, 1
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_Movement_15AA6E:: @ 815AA6E
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_25
+ step_end
+
+MossdeepCity_StevensHouse_Movement_15AA76:: @ 815AA76
+ step_up
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+MossdeepCity_StevensHouse_EventScript_15AA7C:: @ 815AA7C
+ lockall
+ msgbox MossdeepCity_StevensHouse_Text_18DD12, 5
+ compare RESULT, 0
+ jumpeq MossdeepCity_StevensHouse_EventScript_15AAE6
+ countpokemon
+ compare RESULT, 6
+ jumpeq MossdeepCity_StevensHouse_EventScript_15AADC
+ copyvar 0x8004, RESULT
+ disappear 2
+ fanfare 370
+ message MossdeepCity_StevensHouse_Text_18DD61
+ waitfanfare
+ waittext
+ givepokemon SPECIES_BELDUM, 5, ITEM_NONE, 0x0, 0x0, 0
+ bufferpoke 1, SPECIES_BELDUM
+ msgbox MossdeepCity_StevensHouse_Text_1A1102, 5
+ compare RESULT, 1
+ callif 1, MossdeepCity_StevensHouse_EventScript_1A0678
+ setflag 968
+ setflag 298
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AADC:: @ 815AADC
+ msgbox MossdeepCity_StevensHouse_Text_18DD77, 4
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AAE6:: @ 815AAE6
+ msgbox MossdeepCity_StevensHouse_Text_18DD9E, 4
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AAF0:: @ 815AAF0
+ msgbox MossdeepCity_StevensHouse_Text_18E0A3, 3
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AAF9:: @ 815AAF9
+ msgbox MossdeepCity_StevensHouse_Text_18DC25, 2
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AB02:: @ 815AB02
+ lockall
+ checkflag 302
+ jumpeq MossdeepCity_StevensHouse_EventScript_15AB16
+ msgbox MossdeepCity_StevensHouse_Text_18DF1A, 4
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AB16:: @ 815AB16
+ msgbox MossdeepCity_StevensHouse_Text_18DDC2, 4
+ releaseall
+ end
+
+MossdeepCity_StevensHouse_EventScript_15AB20:: @ 815AB20
+ giveitem ITEM_HM08, 1, 1
+ setflag 123
+ end
+
diff --git a/data/scripts/maps/MtChimney.s b/data/scripts/maps/MtChimney.s
new file mode 100644
index 000000000..8c7db64be
--- /dev/null
+++ b/data/scripts/maps/MtChimney.s
@@ -0,0 +1,215 @@
+MtChimney_MapScripts:: @ 815CF7C
+ map_script 5, MtChimney_MapScript1_15CF92
+ map_script 3, MtChimney_MapScript1_15CF87
+ .byte 0
+
+MtChimney_MapScript1_15CF87:: @ 815CF87
+ setvar 0x40bd, 1
+ call MtChimney_EventScript_1A0196
+ end
+
+MtChimney_MapScript1_15CF92:: @ 815CF92
+ tileeffect 1
+ end
+
+MtChimney_EventScript_15CF95:: @ 815CF95
+ lock
+ faceplayer
+ showmoney 0, 0
+ snop
+ msgbox MtChimney_Text_195760, 5
+ compare RESULT, 0
+ jumpeq MtChimney_EventScript_15D00B
+ checkmoney 0xc8, 0
+ compare RESULT, 0
+ jumpeq MtChimney_EventScript_15D018
+ msgbox MtChimney_Text_1957A9, 4
+ checkitemspace ITEM_LAVA_COOKIE, 1
+ compare RESULT, 1
+ callif 1, MtChimney_EventScript_15D000
+ giveitem ITEM_LAVA_COOKIE
+ compare RESULT, 0
+ jumpeq MtChimney_EventScript_15CFF3
+ hidemoney 0, 0
+ release
+ end
+
+MtChimney_EventScript_15CFF3:: @ 815CFF3
+ msgbox MtChimney_Text_1A0CC2, 4
+ hidemoney 0, 0
+ release
+ end
+
+MtChimney_EventScript_15D000:: @ 815D000
+ paymoney 0xc8, 0
+ updatemoney 0, 0
+ snop
+ return
+
+MtChimney_EventScript_15D00B:: @ 815D00B
+ msgbox MtChimney_Text_1957F7, 4
+ hidemoney 0, 0
+ release
+ end
+
+MtChimney_EventScript_15D018:: @ 815D018
+ msgbox MtChimney_Text_1957BA, 4
+ hidemoney 0, 0
+ release
+ end
+
+MtChimney_Movement_15D025:: @ 815D025
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_end
+
+MtChimney_Movement_15D02D:: @ 815D02D
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+MtChimney_Movement_15D036:: @ 815D036
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_right
+ step_end
+
+MtChimney_Movement_15D03E:: @ 815D03E
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+ .incbin "baserom.gba", 0x15d048, 0xad
+
+MtChimney_EventScript_15D0F5:: @ 815D0F5
+ msgbox MtChimney_Text_1B40EA, 3
+ end
+
+MtChimney_EventScript_15D0FE:: @ 815D0FE
+ msgbox MtChimney_Text_1B4128, 3
+ end
+
+MtChimney_EventScript_15D107:: @ 815D107
+ msgbox MtChimney_Text_1B416E, 3
+ end
+
+MtChimney_EventScript_15D110:: @ 815D110
+ trainerbattle 0, TRAINER_MT_CHIMNEY_GRUNT_1, 0, MtChimney_Text_1B3B36, MtChimney_Text_1B3BB8
+ msgbox MtChimney_Text_1B3C07, 6
+ end
+
+MtChimney_EventScript_15D127:: @ 815D127
+ trainerbattle 0, TRAINER_MT_CHIMNEY_GRUNT_2, 0, MtChimney_Text_1B3C96, MtChimney_Text_1B3D1E
+ msgbox MtChimney_Text_1B3D3D, 6
+ end
+
+MtChimney_EventScript_15D13E:: @ 815D13E
+ msgbox MtChimney_Text_1B3D9A, 3
+ end
+
+ .incbin "baserom.gba", 0x15d147, 0x9
+
+MtChimney_EventScript_15D150:: @ 815D150
+ msgbox MtChimney_Text_1B3DF5, 3
+ end
+
+MtChimney_EventScript_15D159:: @ 815D159
+ msgbox MtChimney_Text_1B3E1F, 3
+ end
+
+MtChimney_EventScript_15D162:: @ 815D162
+ msgbox MtChimney_Text_1B3E7A, 3
+ end
+
+MtChimney_EventScript_15D16B:: @ 815D16B
+ msgbox MtChimney_Text_1B3EBA, 3
+ end
+
+MtChimney_EventScript_15D174:: @ 815D174
+ msgbox MtChimney_Text_1B41B0, 3
+ end
+
+MtChimney_EventScript_15D17D:: @ 815D17D
+ lockall
+ checkflag 139
+ jumpif 0, MtChimney_EventScript_15D1D0
+ checkflag 115
+ jumpeq MtChimney_EventScript_15D1C6
+ msgbox MtChimney_Text_195870, 5
+ compare RESULT, 0
+ jumpeq MtChimney_EventScript_15D1BC
+ msgbox MtChimney_Text_1958C6, 4
+ giveitem ITEM_METEORITE
+ setflag 115
+ releaseall
+ end
+
+MtChimney_EventScript_15D1BC:: @ 815D1BC
+ msgbox MtChimney_Text_1958FC, 4
+ releaseall
+ end
+
+MtChimney_EventScript_15D1C6:: @ 815D1C6
+ msgbox MtChimney_Text_195920, 4
+ releaseall
+ end
+
+MtChimney_EventScript_15D1D0:: @ 815D1D0
+ msgbox MtChimney_Text_195806, 4
+ releaseall
+ end
+
+MtChimney_EventScript_15D1DA:: @ 815D1DA
+ msgbox MtChimney_Text_19595C, 3
+ end
+
+MtChimney_EventScript_15D1E3:: @ 815D1E3
+ trainerbattle 0, 313, 0, MtChimney_Text_19597F, MtChimney_Text_1959D8
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq MtChimney_EventScript_15D20A
+ msgbox MtChimney_Text_195A04, 6
+ end
+
+MtChimney_EventScript_15D20A:: @ 815D20A
+ trainerbattle 5, 313, 0, MtChimney_Text_195A45, MtChimney_Text_195AAD
+ msgbox MtChimney_Text_195AD9, 6
+ end
+
+MtChimney_EventScript_15D221:: @ 815D221
+ trainerbattle 0, 124, 0, MtChimney_Text_195B1C, MtChimney_Text_195B5F
+ msgbox MtChimney_Text_195B84, 6
+ end
+
+MtChimney_EventScript_15D238:: @ 815D238
+ trainerbattle 0, 125, 0, MtChimney_Text_195BB2, MtChimney_Text_195BF9
+ msgbox MtChimney_Text_195C31, 6
+ end
+
+MtChimney_EventScript_15D24F:: @ 815D24F
+ trainerbattle 0, 126, 0, MtChimney_Text_195CD8, MtChimney_Text_195D2F
+ msgbox MtChimney_Text_195D5C, 6
+ end
+
diff --git a/data/scripts/maps/MtChimney_CableCarStation.s b/data/scripts/maps/MtChimney_CableCarStation.s
new file mode 100644
index 000000000..2f916a554
--- /dev/null
+++ b/data/scripts/maps/MtChimney_CableCarStation.s
@@ -0,0 +1,88 @@
+MtChimney_CableCarStation_MapScripts:: @ 815C0FA
+ map_script 3, MtChimney_CableCarStation_MapScript1_15C105
+ map_script 2, MtChimney_CableCarStation_MapScript2_15C11D
+ .byte 0
+
+MtChimney_CableCarStation_MapScript1_15C105:: @ 815C105
+ compare 0x40a3, 1
+ callif 1, MtChimney_CableCarStation_EventScript_15C111
+ end
+
+MtChimney_CableCarStation_EventScript_15C111:: @ 815C111
+ movespriteperm 1, 5, 4
+ spritebehave 1, 10
+ return
+
+MtChimney_CableCarStation_MapScript2_15C11D:: @ 815C11D
+ map_script_2 0x40a3, 1, MtChimney_CableCarStation_EventScript_15C127
+ .2byte 0
+
+MtChimney_CableCarStation_EventScript_15C127:: @ 815C127
+ lockall
+ move 255, MtChimney_CableCarStation_Movement_15C1B4
+ move 1, MtChimney_CableCarStation_Movement_15C1AA
+ waitmove 0
+ setvar 0x40a3, 0
+ movespriteperm 1, 6, 7
+ spritebehave 1, 8
+ releaseall
+ end
+
+MtChimney_CableCarStation_EventScript_15C14B:: @ 815C14B
+ lock
+ faceplayer
+ msgbox MtChimney_CableCarStation_Text_19256A, 5
+ compare RESULT, 1
+ jumpeq MtChimney_CableCarStation_EventScript_15C16C
+ compare RESULT, 0
+ jumpeq MtChimney_CableCarStation_EventScript_15C19B
+ end
+
+MtChimney_CableCarStation_EventScript_15C16C:: @ 815C16C
+ msgbox MtChimney_CableCarStation_Text_1925A9, 4
+ closebutton
+ move 1, MtChimney_CableCarStation_Movement_15C1A5
+ move 255, MtChimney_CableCarStation_Movement_15C1AF
+ waitmove 0
+ setvar 0x8004, 1
+ setvar 0x40a3, 2
+ inccounter 48
+ special 151
+ special 152
+ waitstate
+ release
+ end
+
+MtChimney_CableCarStation_EventScript_15C19B:: @ 815C19B
+ msgbox MtChimney_CableCarStation_Text_1925BF, 4
+ release
+ end
+
+MtChimney_CableCarStation_Movement_15C1A5:: @ 815C1A5
+ step_up
+ step_up
+ step_left
+ step_28
+ step_end
+
+MtChimney_CableCarStation_Movement_15C1AA:: @ 815C1AA
+ step_14
+ step_right
+ step_down
+ step_down
+ step_end
+
+MtChimney_CableCarStation_Movement_15C1AF:: @ 815C1AF
+ step_up
+ step_up
+ step_up
+ step_14
+ step_end
+
+MtChimney_CableCarStation_Movement_15C1B4:: @ 815C1B4
+ step_down
+ step_down
+ step_down
+ step_14
+ step_end
+
diff --git a/data/scripts/maps/MtPyre_1F.s b/data/scripts/maps/MtPyre_1F.s
new file mode 100644
index 000000000..cc9ff3cba
--- /dev/null
+++ b/data/scripts/maps/MtPyre_1F.s
@@ -0,0 +1,29 @@
+MtPyre_1F_MapScripts:: @ 815D322
+ .byte 0
+
+MtPyre_1F_EventScript_15D323:: @ 815D323
+ lock
+ faceplayer
+ checkflag 282
+ jumpeq MtPyre_1F_EventScript_15D352
+ msgbox MtPyre_1F_Text_196151, 4
+ giveitem ITEM_CLEANSE_TAG
+ compare RESULT, 0
+ jumpeq MtPyre_1F_EventScript_1A029B
+ setflag 282
+ release
+ end
+
+MtPyre_1F_EventScript_15D352:: @ 815D352
+ msgbox MtPyre_1F_Text_1961CE, 4
+ release
+ end
+
+MtPyre_1F_EventScript_15D35C:: @ 815D35C
+ msgbox MtPyre_1F_Text_196218, 2
+ end
+
+MtPyre_1F_EventScript_15D365:: @ 815D365
+ msgbox MtPyre_1F_Text_196283, 2
+ end
+
diff --git a/data/scripts/maps/MtPyre_2F.s b/data/scripts/maps/MtPyre_2F.s
new file mode 100644
index 000000000..f01d63528
--- /dev/null
+++ b/data/scripts/maps/MtPyre_2F.s
@@ -0,0 +1,34 @@
+MtPyre_2F_MapScripts:: @ 815D36E
+ map_script 2, MtPyre_2F_MapScript2_1C6BB5
+ map_script 3, MtPyre_2F_MapScript1_1C6BBF
+ map_script 5, MtPyre_2F_MapScript1_15D37E
+ .byte 0
+
+MtPyre_2F_MapScript1_15D37E:: @ 815D37E
+ tileeffect 7
+ warp5 MtPyre_1F, 255, 0, 0
+ end
+
+MtPyre_2F_EventScript_15D389:: @ 815D389
+ msgbox MtPyre_2F_Text_1965BB, 2
+ end
+
+MtPyre_2F_EventScript_15D392:: @ 815D392
+ msgbox MtPyre_2F_Text_196600, 2
+ end
+
+MtPyre_2F_EventScript_15D39B:: @ 815D39B
+ trainerbattle 0, 145, 0, MtPyre_2F_Text_196674, MtPyre_2F_Text_1966BE
+ msgbox MtPyre_2F_Text_1966E7, 6
+ end
+
+MtPyre_2F_EventScript_15D3B2:: @ 815D3B2
+ trainerbattle 4, 640, 0, MtPyre_2F_Text_1962C6, MtPyre_2F_Text_196358, MtPyre_2F_Text_1963CB
+ msgbox MtPyre_2F_Text_196368, 6
+ end
+
+MtPyre_2F_EventScript_15D3CD:: @ 815D3CD
+ trainerbattle 4, 640, 0, MtPyre_2F_Text_196449, MtPyre_2F_Text_1964EB, MtPyre_2F_Text_196539
+ msgbox MtPyre_2F_Text_196504, 6
+ end
+
diff --git a/data/scripts/maps/MtPyre_3F.s b/data/scripts/maps/MtPyre_3F.s
new file mode 100644
index 000000000..2d571a99a
--- /dev/null
+++ b/data/scripts/maps/MtPyre_3F.s
@@ -0,0 +1,13 @@
+MtPyre_3F_MapScripts:: @ 815D3E8
+ .byte 0
+
+MtPyre_3F_EventScript_15D3E9:: @ 815D3E9
+ trainerbattle 0, 236, 0, MtPyre_3F_Text_19672B, MtPyre_3F_Text_19679D
+ msgbox MtPyre_3F_Text_1967B5, 6
+ end
+
+MtPyre_3F_EventScript_15D400:: @ 815D400
+ trainerbattle 0, 247, 0, MtPyre_3F_Text_1967EF, MtPyre_3F_Text_19682B
+ msgbox MtPyre_3F_Text_196842, 6
+ end
+
diff --git a/data/scripts/maps/MtPyre_4F.s b/data/scripts/maps/MtPyre_4F.s
new file mode 100644
index 000000000..34fd8db92
--- /dev/null
+++ b/data/scripts/maps/MtPyre_4F.s
@@ -0,0 +1,8 @@
+MtPyre_4F_MapScripts:: @ 815D417
+ .byte 0
+
+MtPyre_4F_EventScript_15D418:: @ 815D418
+ trainerbattle 0, 190, 0, MtPyre_4F_Text_1968A6, MtPyre_4F_Text_1968D0
+ msgbox MtPyre_4F_Text_1968EE, 6
+ end
+
diff --git a/data/scripts/maps/MtPyre_5F.s b/data/scripts/maps/MtPyre_5F.s
new file mode 100644
index 000000000..2495a4c9a
--- /dev/null
+++ b/data/scripts/maps/MtPyre_5F.s
@@ -0,0 +1,8 @@
+MtPyre_5F_MapScripts:: @ 815D42F
+ .byte 0
+
+MtPyre_5F_EventScript_15D430:: @ 815D430
+ trainerbattle 0, 109, 0, MtPyre_5F_Text_196939, MtPyre_5F_Text_196997
+ msgbox MtPyre_5F_Text_1969AC, 6
+ end
+
diff --git a/data/scripts/maps/MtPyre_6F.s b/data/scripts/maps/MtPyre_6F.s
new file mode 100644
index 000000000..90b9ac2be
--- /dev/null
+++ b/data/scripts/maps/MtPyre_6F.s
@@ -0,0 +1,16 @@
+MtPyre_6F_MapScripts:: @ 815D447
+ .byte 0
+
+MtPyre_6F_EventScript_15D448:: @ 815D448
+ trainerbattle 0, 108, 0, MtPyre_6F_Text_1969FE, MtPyre_6F_Text_196A30
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq MtPyre_6F_EventScript_15D46F
+ msgbox MtPyre_6F_Text_196A4C, 6
+ end
+
+MtPyre_6F_EventScript_15D46F:: @ 815D46F
+ trainerbattle 5, 108, 0, MtPyre_6F_Text_196A95, MtPyre_6F_Text_196AB1
+ msgbox MtPyre_6F_Text_196AC9, 6
+ end
+
diff --git a/data/scripts/maps/MtPyre_Exterior.s b/data/scripts/maps/MtPyre_Exterior.s
new file mode 100644
index 000000000..0cd44ed2b
--- /dev/null
+++ b/data/scripts/maps/MtPyre_Exterior.s
@@ -0,0 +1,28 @@
+MtPyre_Exterior_MapScripts:: @ 815D486
+ map_script 3, MtPyre_Exterior_MapScript1_15D48C
+ .byte 0
+
+MtPyre_Exterior_MapScript1_15D48C:: @ 815D48C
+ call MtPyre_Exterior_EventScript_15D492
+ end
+
+MtPyre_Exterior_EventScript_15D492:: @ 815D492
+ getplayerxy 0x4000, 0x4001
+ compare 0x4001, 12
+ jumpif 0, MtPyre_Exterior_EventScript_15D4A3
+ return
+
+MtPyre_Exterior_EventScript_15D4A3:: @ 815D4A3
+ setweather 6
+ return
+
+MtPyre_Exterior_EventScript_15D4A7:: @ 815D4A7
+ setweather 6
+ doweather
+ end
+
+MtPyre_Exterior_EventScript_15D4AC:: @ 815D4AC
+ setweather 2
+ doweather
+ end
+
diff --git a/data/scripts/maps/MtPyre_Summit.s b/data/scripts/maps/MtPyre_Summit.s
new file mode 100644
index 000000000..41ffa235a
--- /dev/null
+++ b/data/scripts/maps/MtPyre_Summit.s
@@ -0,0 +1,321 @@
+MtPyre_Summit_MapScripts:: @ 815D4B1
+ map_script 3, MtPyre_Summit_MapScript1_15D4B7
+ .byte 0
+
+MtPyre_Summit_MapScript1_15D4B7:: @ 815D4B7
+ call MtPyre_Summit_EventScript_1A0196
+ end
+
+MtPyre_Summit_EventScript_15D4BD:: @ 815D4BD
+ lockall
+ setvar 0x8008, 0
+ jump MtPyre_Summit_EventScript_15D4E1
+ end
+
+MtPyre_Summit_EventScript_15D4C9:: @ 815D4C9
+ lockall
+ setvar 0x8008, 1
+ jump MtPyre_Summit_EventScript_15D4E1
+ end
+
+MtPyre_Summit_EventScript_15D4D5:: @ 815D4D5
+ lockall
+ setvar 0x8008, 2
+ jump MtPyre_Summit_EventScript_15D4E1
+ end
+
+MtPyre_Summit_EventScript_15D4E1:: @ 815D4E1
+ move 255, MtPyre_Summit_Movement_1A0841
+ waitmove 0
+ move 2, MtPyre_Summit_Movement_1A0845
+ waitmove 0
+ pause 50
+ compare 0x8008, 0
+ callif 1, MtPyre_Summit_EventScript_15D593
+ compare 0x8008, 1
+ callif 1, MtPyre_Summit_EventScript_15D59E
+ compare 0x8008, 2
+ callif 1, MtPyre_Summit_EventScript_15D59F
+ msgbox MtPyre_Summit_Text_1B5EEC, 4
+ closebutton
+ fadescreen 1
+ disappear 2
+ disappear 4
+ disappear 5
+ disappear 6
+ setflag 916
+ setflag 917
+ fadescreen 0
+ pause 20
+ call MtPyre_Summit_EventScript_15D57A
+ compare 0x8008, 0
+ callif 1, MtPyre_Summit_EventScript_15D5AA
+ compare 0x8008, 1
+ callif 1, MtPyre_Summit_EventScript_15D5BF
+ compare 0x8008, 2
+ callif 1, MtPyre_Summit_EventScript_15D5CA
+ msgbox MtPyre_Summit_Text_1B5FE6, 4
+ giveitem ITEM_RED_OR_BLUE_ORB
+ setflag 212
+ releaseall
+ end
+
+MtPyre_Summit_EventScript_15D57A:: @ 815D57A
+ setflag 111
+ setvar 0x4058, 1
+ clearflag 840
+ clearflag 835
+ setvar 0x40a0, 1
+ setvar 0x40b9, 1
+ return
+
+MtPyre_Summit_EventScript_15D593:: @ 815D593
+ move 2, MtPyre_Summit_Movement_15D5E9
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D59E:: @ 815D59E
+ return
+
+MtPyre_Summit_EventScript_15D59F:: @ 815D59F
+ move 2, MtPyre_Summit_Movement_15D5EC
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D5AA:: @ 815D5AA
+ move 3, MtPyre_Summit_Movement_15D5DF
+ waitmove 0
+ move 255, MtPyre_Summit_Movement_1A0843
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D5BF:: @ 815D5BF
+ move 3, MtPyre_Summit_Movement_15D5E3
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D5CA:: @ 815D5CA
+ move 3, MtPyre_Summit_Movement_15D5E5
+ waitmove 0
+ move 255, MtPyre_Summit_Movement_1A083F
+ waitmove 0
+ return
+
+MtPyre_Summit_Movement_15D5DF:: @ 815D5DF
+ step_down
+ step_down
+ step_27
+ step_end
+
+MtPyre_Summit_Movement_15D5E3:: @ 815D5E3
+ step_down
+ step_end
+
+MtPyre_Summit_Movement_15D5E5:: @ 815D5E5
+ step_down
+ step_down
+ step_28
+ step_end
+
+MtPyre_Summit_Movement_15D5E9:: @ 815D5E9
+ step_left
+ step_25
+ step_end
+
+MtPyre_Summit_Movement_15D5EC:: @ 815D5EC
+ step_right
+ step_25
+ step_end
+
+MtPyre_Summit_EventScript_15D5EF:: @ 815D5EF
+ lock
+ faceplayer
+ msgbox MtPyre_Summit_Text_1B64B3, 5
+ compare RESULT, 1
+ callif 1, MtPyre_Summit_EventScript_15D611
+ compare RESULT, 0
+ callif 1, MtPyre_Summit_EventScript_15D61A
+ release
+ end
+
+MtPyre_Summit_EventScript_15D611:: @ 815D611
+ msgbox MtPyre_Summit_Text_1B65D6, 4
+ return
+
+MtPyre_Summit_EventScript_15D61A:: @ 815D61A
+ msgbox MtPyre_Summit_Text_1B6823, 4
+ return
+
+MtPyre_Summit_EventScript_15D623:: @ 815D623
+ lock
+ faceplayer
+ checkflag 259
+ jumpeq MtPyre_Summit_EventScript_15D6C4
+ checkflag 113
+ jumpeq MtPyre_Summit_EventScript_15D64A
+ checkflag 129
+ jumpeq MtPyre_Summit_EventScript_15D6BA
+ msgbox MtPyre_Summit_Text_1B60F9, 4
+ release
+ end
+
+MtPyre_Summit_EventScript_15D64A:: @ 815D64A
+ msgbox MtPyre_Summit_Text_1B6283, 5
+ compare RESULT, 1
+ jumpeq MtPyre_Summit_EventScript_15D669
+ compare RESULT, 0
+ jumpeq MtPyre_Summit_EventScript_15D69B
+ end
+
+MtPyre_Summit_EventScript_15D669:: @ 815D669
+ setvar 0x8004, ITEM_RED_OR_BLUE_ORB
+ call MtPyre_Summit_EventScript_1A067F
+ closebutton
+ move LAST_TALKED, MtPyre_Summit_Movement_1A0841
+ waitmove 0
+ pause 40
+ move LAST_TALKED, MtPyre_Summit_Movement_1A0839
+ waitmove 0
+ pause 10
+ msgbox MtPyre_Summit_Text_1B639C, 4
+ setflag 259
+ release
+ end
+
+MtPyre_Summit_EventScript_15D69B:: @ 815D69B
+ msgbox MtPyre_Summit_Text_1B62E7, 5
+ compare RESULT, 1
+ jumpeq MtPyre_Summit_EventScript_15D669
+ compare RESULT, 0
+ jumpeq MtPyre_Summit_EventScript_15D69B
+ end
+
+MtPyre_Summit_EventScript_15D6BA:: @ 815D6BA
+ msgbox MtPyre_Summit_Text_1B617B, 4
+ release
+ end
+
+MtPyre_Summit_EventScript_15D6C4:: @ 815D6C4
+ msgbox MtPyre_Summit_Text_1B63F8, 4
+ release
+ end
+
+MtPyre_Summit_EventScript_15D6CE:: @ 815D6CE
+ lockall
+ setvar 0x8008, 0
+ jump MtPyre_Summit_EventScript_15D6F2
+ end
+
+MtPyre_Summit_EventScript_15D6DA:: @ 815D6DA
+ lockall
+ setvar 0x8008, 1
+ jump MtPyre_Summit_EventScript_15D6F2
+ end
+
+MtPyre_Summit_EventScript_15D6E6:: @ 815D6E6
+ lockall
+ setvar 0x8008, 2
+ jump MtPyre_Summit_EventScript_15D6F2
+ end
+
+MtPyre_Summit_EventScript_15D6F2:: @ 815D6F2
+ move 255, MtPyre_Summit_Movement_1A0841
+ waitmove 0
+ move 2, MtPyre_Summit_Movement_1A0845
+ waitmove 0
+ pause 50
+ compare 0x8008, 0
+ callif 1, MtPyre_Summit_EventScript_15D75E
+ compare 0x8008, 1
+ callif 1, MtPyre_Summit_EventScript_15D769
+ compare 0x8008, 2
+ callif 1, MtPyre_Summit_EventScript_15D774
+ msgbox MtPyre_Summit_Text_1B6848, 4
+ closebutton
+ compare 0x8008, 0
+ callif 1, MtPyre_Summit_EventScript_15D77F
+ compare 0x8008, 1
+ callif 1, MtPyre_Summit_EventScript_15D78A
+ compare 0x8008, 2
+ callif 1, MtPyre_Summit_EventScript_15D795
+ disappear 2
+ setvar 0x40b9, 3
+ releaseall
+ end
+
+MtPyre_Summit_EventScript_15D75E:: @ 815D75E
+ move 2, MtPyre_Summit_Movement_15D7A0
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D769:: @ 815D769
+ move 2, MtPyre_Summit_Movement_15D7A3
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D774:: @ 815D774
+ move 2, MtPyre_Summit_Movement_15D7A4
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D77F:: @ 815D77F
+ move 2, MtPyre_Summit_Movement_15D7A7
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D78A:: @ 815D78A
+ move 2, MtPyre_Summit_Movement_15D7B0
+ waitmove 0
+ return
+
+MtPyre_Summit_EventScript_15D795:: @ 815D795
+ move 2, MtPyre_Summit_Movement_15D7B9
+ waitmove 0
+ return
+
+MtPyre_Summit_Movement_15D7A0:: @ 815D7A0
+ step_left
+ step_25
+ step_end
+
+MtPyre_Summit_Movement_15D7A3:: @ 815D7A3
+ step_end
+
+MtPyre_Summit_Movement_15D7A4:: @ 815D7A4
+ step_right
+ step_25
+ step_end
+
+MtPyre_Summit_Movement_15D7A7:: @ 815D7A7
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+MtPyre_Summit_Movement_15D7B0:: @ 815D7B0
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+MtPyre_Summit_Movement_15D7B9:: @ 815D7B9
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
diff --git a/data/scripts/maps/NewMauville_Entrance.s b/data/scripts/maps/NewMauville_Entrance.s
new file mode 100644
index 000000000..3683aea5b
--- /dev/null
+++ b/data/scripts/maps/NewMauville_Entrance.s
@@ -0,0 +1,51 @@
+NewMauville_Entrance_MapScripts:: @ 815E48A
+ map_script 1, NewMauville_Entrance_MapScript1_15E495
+ map_script 3, NewMauville_Entrance_MapScript1_15E4D8
+ .byte 0
+
+NewMauville_Entrance_MapScript1_15E495:: @ 815E495
+ compare 0x40ba, 0
+ callif 1, NewMauville_Entrance_EventScript_15E4A1
+ end
+
+NewMauville_Entrance_EventScript_15E4A1:: @ 815E4A1
+ setmaptile 3, 0, 788, 1
+ setmaptile 4, 0, 789, 1
+ setmaptile 5, 0, 790, 1
+ setmaptile 3, 1, 796, 1
+ setmaptile 4, 1, 797, 1
+ setmaptile 5, 1, 798, 1
+ return
+
+NewMauville_Entrance_MapScript1_15E4D8:: @ 815E4D8
+ setflag 2112
+ end
+
+NewMauville_Entrance_EventScript_15E4DC:: @ 815E4DC
+ lockall
+ move 255, NewMauville_Entrance_Movement_1A0841
+ waitmove 0
+ msgbox NewMauville_Entrance_Text_1982C0, 4
+ checkitem ITEM_BASEMENT_KEY, 1
+ compare RESULT, 0
+ jumpeq NewMauville_Entrance_EventScript_15E55D
+ msgbox NewMauville_Entrance_Text_1982D4, 5
+ compare RESULT, 0
+ jumpeq NewMauville_Entrance_EventScript_15E55D
+ msgbox NewMauville_Entrance_Text_1982EA, 4
+ setmaptile 3, 0, 707, 0
+ setmaptile 4, 0, 708, 0
+ setmaptile 5, 0, 709, 0
+ setmaptile 3, 1, 715, 1
+ setmaptile 4, 1, 716, 0
+ setmaptile 5, 1, 717, 1
+ special 142
+ playsfx 20
+ setvar 0x40ba, 1
+ releaseall
+ end
+
+NewMauville_Entrance_EventScript_15E55D:: @ 815E55D
+ releaseall
+ end
+
diff --git a/data/scripts/maps/NewMauville_Inside.s b/data/scripts/maps/NewMauville_Inside.s
new file mode 100644
index 000000000..7111ab770
--- /dev/null
+++ b/data/scripts/maps/NewMauville_Inside.s
@@ -0,0 +1,208 @@
+NewMauville_Inside_MapScripts:: @ 815E55F
+ map_script 5, NewMauville_Inside_MapScript1_15E56F
+ map_script 3, NewMauville_Inside_MapScript1_15E593
+ map_script 1, NewMauville_Inside_MapScript1_15E59E
+ .byte 0
+
+NewMauville_Inside_MapScript1_15E56F:: @ 815E56F
+ compare 0x4001, 1
+ callif 1, NewMauville_Inside_EventScript_15E5DA
+ compare 0x4002, 1
+ callif 1, NewMauville_Inside_EventScript_15E728
+ checkflag 2145
+ callif 1, NewMauville_Inside_EventScript_15E58F
+ end
+
+NewMauville_Inside_EventScript_15E58F:: @ 815E58F
+ disappear LAST_TALKED
+ return
+
+NewMauville_Inside_MapScript1_15E593:: @ 815E593
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ end
+
+NewMauville_Inside_MapScript1_15E59E:: @ 815E59E
+ compare 0x40ba, 2
+ callif 1, NewMauville_Inside_EventScript_15E88B
+ end
+
+NewMauville_Inside_EventScript_15E5AA:: @ 815E5AA
+ lockall
+ setvar 0x4001, 1
+ setvar 0x4002, 0
+ playsfx 21
+ call NewMauville_Inside_EventScript_15E5DA
+ special 142
+ releaseall
+ end
+
+NewMauville_Inside_EventScript_15E5C2:: @ 815E5C2
+ lockall
+ setvar 0x4001, 0
+ setvar 0x4002, 1
+ playsfx 21
+ call NewMauville_Inside_EventScript_15E728
+ special 142
+ releaseall
+ end
+
+NewMauville_Inside_EventScript_15E5DA:: @ 815E5DA
+ setmaptile 23, 34, 617, 1
+ setmaptile 23, 35, 625, 1
+ setmaptile 23, 36, 621, 0
+ setmaptile 23, 37, 641, 0
+ setmaptile 10, 16, 617, 1
+ setmaptile 10, 17, 625, 1
+ setmaptile 10, 18, 621, 0
+ setmaptile 10, 19, 641, 0
+ setmaptile 10, 0, 617, 1
+ setmaptile 10, 1, 625, 1
+ setmaptile 10, 2, 621, 0
+ setmaptile 10, 3, 641, 0
+ setmaptile 37, 33, 694, 1
+ setmaptile 37, 34, 702, 1
+ setmaptile 37, 35, 710, 1
+ setmaptile 37, 36, 718, 1
+ setmaptile 28, 22, 694, 1
+ setmaptile 28, 23, 702, 1
+ setmaptile 28, 24, 710, 1
+ setmaptile 28, 25, 718, 1
+ setmaptile 10, 24, 694, 1
+ setmaptile 10, 25, 702, 1
+ setmaptile 10, 26, 710, 1
+ setmaptile 10, 27, 718, 1
+ setmaptile 21, 2, 694, 1
+ setmaptile 21, 3, 702, 1
+ setmaptile 21, 4, 710, 1
+ setmaptile 21, 5, 718, 1
+ setmaptile 6, 11, 591, 0
+ setmaptile 13, 10, 591, 0
+ setmaptile 16, 22, 591, 0
+ setmaptile 4, 26, 591, 0
+ setmaptile 30, 38, 591, 0
+ setmaptile 2, 11, 558, 0
+ setmaptile 17, 10, 558, 0
+ setmaptile 25, 18, 558, 0
+ setmaptile 18, 36, 558, 0
+ return
+
+NewMauville_Inside_EventScript_15E728:: @ 815E728
+ setmaptile 23, 34, 695, 1
+ setmaptile 23, 35, 703, 1
+ setmaptile 23, 36, 711, 1
+ setmaptile 23, 37, 719, 1
+ setmaptile 10, 16, 695, 1
+ setmaptile 10, 17, 703, 1
+ setmaptile 10, 18, 711, 1
+ setmaptile 10, 19, 719, 1
+ setmaptile 10, 0, 695, 1
+ setmaptile 10, 1, 703, 1
+ setmaptile 10, 2, 711, 1
+ setmaptile 10, 3, 719, 1
+ setmaptile 37, 33, 617, 1
+ setmaptile 37, 34, 625, 1
+ setmaptile 37, 35, 621, 0
+ setmaptile 37, 36, 641, 0
+ setmaptile 28, 22, 617, 1
+ setmaptile 28, 23, 625, 1
+ setmaptile 28, 24, 621, 0
+ setmaptile 28, 25, 641, 0
+ setmaptile 10, 24, 617, 1
+ setmaptile 10, 25, 625, 1
+ setmaptile 10, 26, 621, 0
+ setmaptile 10, 27, 641, 0
+ setmaptile 21, 2, 617, 1
+ setmaptile 21, 3, 625, 1
+ setmaptile 21, 4, 621, 0
+ setmaptile 21, 5, 641, 0
+ setmaptile 2, 11, 591, 0
+ setmaptile 17, 10, 591, 0
+ setmaptile 25, 18, 591, 0
+ setmaptile 18, 36, 591, 0
+ setmaptile 6, 11, 566, 0
+ setmaptile 13, 10, 566, 0
+ setmaptile 16, 22, 566, 0
+ setmaptile 4, 26, 566, 0
+ setmaptile 30, 38, 566, 0
+ return
+
+NewMauville_Inside_EventScript_15E876:: @ 815E876
+ lockall
+ msgbox NewMauville_Inside_Text_1983B1, 4
+ call NewMauville_Inside_EventScript_15E88B
+ setvar 0x40ba, 2
+ releaseall
+ end
+
+NewMauville_Inside_EventScript_15E88B:: @ 815E88B
+ setmaptile 33, 6, 591, 0
+ setmaptile 32, 2, 752, 1
+ setmaptile 33, 2, 753, 1
+ setmaptile 34, 2, 754, 1
+ setmaptile 35, 2, 755, 1
+ setmaptile 32, 3, 756, 1
+ setmaptile 33, 3, 757, 1
+ setmaptile 34, 3, 758, 1
+ setmaptile 35, 3, 759, 1
+ special 142
+ return
+
+NewMauville_Inside_EventScript_15E8E0:: @ 815E8E0
+ lockall
+ compare 0x40ba, 2
+ jumpeq NewMauville_Inside_EventScript_15E8F6
+ msgbox NewMauville_Inside_Text_198315, 4
+ releaseall
+ end
+
+NewMauville_Inside_EventScript_15E8F6:: @ 815E8F6
+ msgbox NewMauville_Inside_Text_198395, 4
+ releaseall
+ end
+
+NewMauville_Inside_EventScript_15E900:: @ 815E900
+ lock
+ faceplayer
+ setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ checksound
+ pokecry SPECIES_VOLTORB, 2
+ pause 40
+ waitpokecry
+ setflag 974
+ setflag 2145
+ dowildbattle
+ clearflag 2145
+ release
+ end
+
+NewMauville_Inside_EventScript_15E91E:: @ 815E91E
+ lock
+ faceplayer
+ setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ checksound
+ pokecry SPECIES_VOLTORB, 2
+ pause 40
+ waitpokecry
+ setflag 975
+ setflag 2145
+ dowildbattle
+ clearflag 2145
+ release
+ end
+
+NewMauville_Inside_EventScript_15E93C:: @ 815E93C
+ lock
+ faceplayer
+ setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
+ checksound
+ pokecry SPECIES_VOLTORB, 2
+ pause 40
+ waitpokecry
+ setflag 976
+ setflag 2145
+ dowildbattle
+ clearflag 2145
+ release
+ end
+
diff --git a/data/scripts/maps/OldaleTown.s b/data/scripts/maps/OldaleTown.s
new file mode 100644
index 000000000..4595cd5c0
--- /dev/null
+++ b/data/scripts/maps/OldaleTown.s
@@ -0,0 +1,299 @@
+OldaleTown_MapScripts:: @ 814DD62
+ map_script 3, OldaleTown_MapScript1_14DD68
+ .byte 0
+
+OldaleTown_MapScript1_14DD68:: @ 814DD68
+ call OldaleTown_EventScript_1A014E
+ setflag 2064
+ checkflag 116
+ callif 0, OldaleTown_EventScript_14DD92
+ checkflag 132
+ callif 0, OldaleTown_EventScript_14DD9E
+ checkflag 116
+ callif 1, OldaleTown_EventScript_14DD8C
+ end
+
+OldaleTown_EventScript_14DD8C:: @ 814DD8C
+ setvar 0x4051, 1
+ return
+
+OldaleTown_EventScript_14DD92:: @ 814DD92
+ movespriteperm 3, 1, 11
+ spritebehave 3, 9
+ return
+
+OldaleTown_EventScript_14DD9E:: @ 814DD9E
+ movespriteperm 2, 13, 14
+ spritebehave 2, 8
+ return
+
+OldaleTown_EventScript_14DDAA:: @ 814DDAA
+ msgbox OldaleTown_Text_16B20E, 3
+ end
+
+OldaleTown_EventScript_14DDB3:: @ 814DDB3
+ msgbox OldaleTown_Text_16AEC0, 2
+ end
+
+OldaleTown_EventScript_14DDBC:: @ 814DDBC
+ lock
+ faceplayer
+ checkflag 132
+ jumpeq OldaleTown_EventScript_14DE79
+ checkflag 1
+ jumpeq OldaleTown_EventScript_14DE79
+ setflag 1
+ playmusic 420, 0
+ msgbox OldaleTown_Text_16AEF2, 4
+ closebutton
+ switch FACING
+ case 1, OldaleTown_EventScript_14DE07
+ case 2, OldaleTown_EventScript_14DE1E
+ case 4, OldaleTown_EventScript_14DE35
+ end
+
+OldaleTown_EventScript_14DE07:: @ 814DE07
+ move 2, OldaleTown_Movement_14DE97
+ move 255, OldaleTown_Movement_14DEC1
+ waitmove 0
+ jump OldaleTown_EventScript_14DE4C
+ end
+
+OldaleTown_EventScript_14DE1E:: @ 814DE1E
+ move 2, OldaleTown_Movement_14DEA2
+ move 255, OldaleTown_Movement_14DECB
+ waitmove 0
+ jump OldaleTown_EventScript_14DE4C
+ end
+
+OldaleTown_EventScript_14DE35:: @ 814DE35
+ move 255, OldaleTown_Movement_14DEB9
+ move 2, OldaleTown_Movement_14DE8E
+ waitmove 0
+ jump OldaleTown_EventScript_14DE4C
+ end
+
+OldaleTown_EventScript_14DE4C:: @ 814DE4C
+ msgbox OldaleTown_Text_16AF2F, 4
+ giveitem ITEM_POTION
+ compare RESULT, 0
+ jumpeq OldaleTown_EventScript_14DE83
+ msgbox OldaleTown_Text_16AFE1, 4
+ setflag 132
+ fadedefault
+ release
+ end
+
+OldaleTown_EventScript_14DE79:: @ 814DE79
+ msgbox OldaleTown_Text_16AFE1, 4
+ release
+ end
+
+OldaleTown_EventScript_14DE83:: @ 814DE83
+ msgbox OldaleTown_Text_1A0CC2, 4
+ fadedefault
+ release
+ end
+
+OldaleTown_Movement_14DE8E:: @ 814DE8E
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_25
+ step_end
+
+OldaleTown_Movement_14DE97:: @ 814DE97
+ step_left
+ step_up
+ step_up
+ step_right
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_25
+ step_end
+
+OldaleTown_Movement_14DEA2:: @ 814DEA2
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_25
+ step_end
+
+ .incbin "baserom.gba", 0x14deab, 0xe
+
+OldaleTown_Movement_14DEB9:: @ 814DEB9
+ step_right
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+OldaleTown_Movement_14DEC1:: @ 814DEC1
+ step_14
+ step_14
+ step_14
+ step_14
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+OldaleTown_Movement_14DECB:: @ 814DECB
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+ .incbin "baserom.gba", 0x14ded3, 0xc
+
+OldaleTown_EventScript_14DEDF:: @ 814DEDF
+ lock
+ faceplayer
+ checkflag 116
+ jumpeq OldaleTown_EventScript_14DF26
+ msgbox OldaleTown_Text_16B0CC, 4
+ closebutton
+ move 3, OldaleTown_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+OldaleTown_EventScript_14DEFF:: @ 814DEFF
+ lockall
+ move 255, OldaleTown_Movement_14DFEC
+ move 3, OldaleTown_Movement_14DFEF
+ waitmove 0
+ msgbox OldaleTown_Text_16B045, 4
+ closebutton
+ move 3, OldaleTown_Movement_14DFF5
+ waitmove 0
+ releaseall
+ end
+
+OldaleTown_EventScript_14DF26:: @ 814DF26
+ msgbox OldaleTown_Text_16B12A, 4
+ release
+ end
+
+OldaleTown_EventScript_14DF30:: @ 814DF30
+ lockall
+ move 4, OldaleTown_Movement_1A0839
+ waitmove 0
+ jump OldaleTown_EventScript_14DF92
+ end
+
+OldaleTown_EventScript_14DF41:: @ 814DF41
+ lockall
+ move 4, OldaleTown_Movement_14DFDE
+ waitmove 0
+ move 255, OldaleTown_Movement_1A0843
+ waitmove 0
+ jump OldaleTown_EventScript_14DF92
+ end
+
+OldaleTown_EventScript_14DF5C:: @ 814DF5C
+ lockall
+ move 4, OldaleTown_Movement_14DFE1
+ waitmove 0
+ move 255, OldaleTown_Movement_1A0843
+ waitmove 0
+ jump OldaleTown_EventScript_14DF92
+ end
+
+OldaleTown_EventScript_14DF77:: @ 814DF77
+ lockall
+ move 4, OldaleTown_Movement_14DFE3
+ waitmove 0
+ move 255, OldaleTown_Movement_1A0843
+ waitmove 0
+ jump OldaleTown_EventScript_14DF92
+ end
+
+OldaleTown_EventScript_14DF92:: @ 814DF92
+ checkgender
+ compare RESULT, 0
+ jumpeq OldaleTown_EventScript_14DFAA
+ compare RESULT, 1
+ jumpeq OldaleTown_EventScript_14DFB8
+ end
+
+OldaleTown_EventScript_14DFAA:: @ 814DFAA
+ msgbox OldaleTown_Text_16B196, 4
+ jump OldaleTown_EventScript_14DFC6
+ end
+
+OldaleTown_EventScript_14DFB8:: @ 814DFB8
+ msgbox OldaleTown_Text_16B1BE, 4
+ jump OldaleTown_EventScript_14DFC6
+ end
+
+OldaleTown_EventScript_14DFC6:: @ 814DFC6
+ closebutton
+ move 4, OldaleTown_Movement_14DFE5
+ waitmove 0
+ disappear 4
+ setvar 0x40c7, 2
+ setflag 979
+ releaseall
+ end
+
+OldaleTown_Movement_14DFDE:: @ 814DFDE
+ step_left
+ step_left
+ step_end
+
+OldaleTown_Movement_14DFE1:: @ 814DFE1
+ step_left
+ step_end
+
+OldaleTown_Movement_14DFE3:: @ 814DFE3
+ step_02
+ step_end
+
+OldaleTown_Movement_14DFE5:: @ 814DFE5
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+OldaleTown_Movement_14DFEC:: @ 814DFEC
+ step_13
+ step_right
+ step_end
+
+OldaleTown_Movement_14DFEF:: @ 814DFEF
+ step_16
+ step_27
+ step_40
+ step_right
+ step_41
+ step_end
+
+OldaleTown_Movement_14DFF5:: @ 814DFF5
+ step_down
+ step_left
+ step_end
+
diff --git a/data/scripts/maps/OldaleTown_House1.s b/data/scripts/maps/OldaleTown_House1.s
new file mode 100644
index 000000000..033980c01
--- /dev/null
+++ b/data/scripts/maps/OldaleTown_House1.s
@@ -0,0 +1,7 @@
+OldaleTown_House1_MapScripts:: @ 8152EEB
+ .byte 0
+
+OldaleTown_House1_EventScript_152EEC:: @ 8152EEC
+ msgbox OldaleTown_House1_Text_17476D, 2
+ end
+
diff --git a/data/scripts/maps/OldaleTown_House2.s b/data/scripts/maps/OldaleTown_House2.s
new file mode 100644
index 000000000..3cdcc49db
--- /dev/null
+++ b/data/scripts/maps/OldaleTown_House2.s
@@ -0,0 +1,11 @@
+OldaleTown_House2_MapScripts:: @ 8152EF5
+ .byte 0
+
+OldaleTown_House2_EventScript_152EF6:: @ 8152EF6
+ msgbox OldaleTown_House2_Text_174838, 2
+ end
+
+OldaleTown_House2_EventScript_152EFF:: @ 8152EFF
+ msgbox OldaleTown_House2_Text_17487B, 2
+ end
+
diff --git a/data/scripts/maps/OldaleTown_Mart.s b/data/scripts/maps/OldaleTown_Mart.s
new file mode 100644
index 000000000..d4c76f516
--- /dev/null
+++ b/data/scripts/maps/OldaleTown_Mart.s
@@ -0,0 +1,62 @@
+OldaleTown_Mart_MapScripts:: @ 8152F78
+ .byte 0
+
+OldaleTown_Mart_EventScript_152F79:: @ 8152F79
+ lock
+ faceplayer
+ message OldaleTown_Mart_Text_1A0BE4
+ waittext
+ checkflag 116
+ jumpeq OldaleTown_Mart_EventScript_152FA8
+ pokemart OldaleTown_Mart_Pokemart_152F9C
+ msgbox OldaleTown_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x152f99, 0x3
+
+OldaleTown_Mart_Pokemart_152F9C:: @ 8152F9C
+ .2byte ITEM_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_NONE
+ release
+ end
+
+OldaleTown_Mart_EventScript_152FA8:: @ 8152FA8
+ pokemart OldaleTown_Mart_Pokemart_152FB8
+ msgbox OldaleTown_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x152fb7, 0x1
+
+OldaleTown_Mart_Pokemart_152FB8:: @ 8152FB8
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_NONE
+ release
+ end
+
+OldaleTown_Mart_EventScript_152FC6:: @ 8152FC6
+ lock
+ faceplayer
+ checkflag 116
+ jumpeq OldaleTown_Mart_EventScript_152FDB
+ msgbox OldaleTown_Mart_Text_174A8A, 4
+ release
+ end
+
+OldaleTown_Mart_EventScript_152FDB:: @ 8152FDB
+ msgbox OldaleTown_Mart_Text_174ACB, 4
+ release
+ end
+
+OldaleTown_Mart_EventScript_152FE5:: @ 8152FE5
+ msgbox OldaleTown_Mart_Text_174B10, 2
+ end
+
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_1F.s b/data/scripts/maps/OldaleTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..c9abc12a7
--- /dev/null
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_1F.s
@@ -0,0 +1,39 @@
+OldaleTown_PokemonCenter_1F_MapScripts:: @ 8152F08
+ map_script 3, OldaleTown_PokemonCenter_1F_MapScript1_152F0E
+ .byte 0
+
+OldaleTown_PokemonCenter_1F_MapScript1_152F0E:: @ 8152F0E
+ sethealplace 14
+ call OldaleTown_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+OldaleTown_PokemonCenter_1F_EventScript_152F17:: @ 8152F17
+ setvar 0x800b, 1
+ call OldaleTown_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+OldaleTown_PokemonCenter_1F_EventScript_152F25:: @ 8152F25
+ msgbox OldaleTown_PokemonCenter_1F_Text_1748D1, 2
+ end
+
+OldaleTown_PokemonCenter_1F_EventScript_152F2E:: @ 8152F2E
+ msgbox OldaleTown_PokemonCenter_1F_Text_174945, 2
+ end
+
+OldaleTown_PokemonCenter_1F_EventScript_152F37:: @ 8152F37
+ lock
+ faceplayer
+ checkflag 2049
+ jumpeq OldaleTown_PokemonCenter_1F_EventScript_152F4C
+ msgbox OldaleTown_PokemonCenter_1F_Text_1749C0, 4
+ release
+ end
+
+OldaleTown_PokemonCenter_1F_EventScript_152F4C:: @ 8152F4C
+ msgbox OldaleTown_PokemonCenter_1F_Text_174A2E, 4
+ release
+ end
+
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_2F.s b/data/scripts/maps/OldaleTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..bab0f21af
--- /dev/null
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+OldaleTown_PokemonCenter_2F_MapScripts:: @ 8152F56
+ map_script 2, OldaleTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, OldaleTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, OldaleTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+OldaleTown_PokemonCenter_2F_EventScript_152F66:: @ 8152F66
+ call OldaleTown_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+OldaleTown_PokemonCenter_2F_EventScript_152F6C:: @ 8152F6C
+ call OldaleTown_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+OldaleTown_PokemonCenter_2F_EventScript_152F72:: @ 8152F72
+ call OldaleTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown.s b/data/scripts/maps/PacifidlogTown.s
new file mode 100644
index 000000000..f1c6ed462
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown.s
@@ -0,0 +1,29 @@
+PacifidlogTown_MapScripts:: @ 814E8EE
+ map_script 3, PacifidlogTown_MapScript1_14E8F9
+ map_script 5, PacifidlogTown_MapScript1_14E8FD
+ .byte 0
+
+PacifidlogTown_MapScript1_14E8F9:: @ 814E8F9
+ setflag 2069
+ end
+
+PacifidlogTown_MapScript1_14E8FD:: @ 814E8FD
+ tileeffect 3
+ end
+
+PacifidlogTown_EventScript_14E900:: @ 814E900
+ msgbox PacifidlogTown_Text_16D04A, 2
+ end
+
+PacifidlogTown_EventScript_14E909:: @ 814E909
+ msgbox PacifidlogTown_Text_16CFC5, 2
+ end
+
+PacifidlogTown_EventScript_14E912:: @ 814E912
+ msgbox PacifidlogTown_Text_16D08A, 2
+ end
+
+PacifidlogTown_EventScript_14E91B:: @ 814E91B
+ msgbox PacifidlogTown_Text_16D0CE, 3
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_House1.s b/data/scripts/maps/PacifidlogTown_House1.s
new file mode 100644
index 000000000..e7ad13f31
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_House1.s
@@ -0,0 +1,11 @@
+PacifidlogTown_House1_MapScripts:: @ 8154154
+ .byte 0
+
+PacifidlogTown_House1_EventScript_154155:: @ 8154155
+ msgbox PacifidlogTown_House1_Text_178F9F, 2
+ end
+
+PacifidlogTown_House1_EventScript_15415E:: @ 815415E
+ msgbox PacifidlogTown_House1_Text_17906A, 2
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_House2.s b/data/scripts/maps/PacifidlogTown_House2.s
new file mode 100644
index 000000000..5348a273d
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_House2.s
@@ -0,0 +1,101 @@
+PacifidlogTown_House2_MapScripts:: @ 8154167
+ .byte 0
+
+PacifidlogTown_House2_EventScript_154168:: @ 8154168
+ lock
+ faceplayer
+ checkdailyflags
+ call PacifidlogTown_House2_EventScript_1541B4
+ checkflag 299
+ jumpeq PacifidlogTown_House2_EventScript_154254
+ checkflag 300
+ callif 1, PacifidlogTown_House2_EventScript_1541CE
+ checkflag 300
+ callif 0, PacifidlogTown_House2_EventScript_1541D7
+ setflag 300
+ specialval RESULT, 230
+ compare RESULT, 4
+ jumpif 4, PacifidlogTown_House2_EventScript_1541EC
+ specialval RESULT, 230
+ compare RESULT, 2
+ jumpif 4, PacifidlogTown_House2_EventScript_15421B
+ jump PacifidlogTown_House2_EventScript_154225
+ end
+
+PacifidlogTown_House2_EventScript_1541B4:: @ 81541B4
+ checkflag 299
+ jumpif 0, PacifidlogTown_House2_EventScript_1A14DC
+ specialval RESULT, 334
+ compare RESULT, 0
+ callif 1, PacifidlogTown_House2_EventScript_1541E8
+ return
+
+PacifidlogTown_House2_EventScript_1541CE:: @ 81541CE
+ msgbox PacifidlogTown_House2_Text_179155, 4
+ return
+
+PacifidlogTown_House2_EventScript_1541D7:: @ 81541D7
+ msgbox PacifidlogTown_House2_Text_1790C1, 4
+ msgbox PacifidlogTown_House2_Text_179155, 4
+ return
+
+PacifidlogTown_House2_EventScript_1541E8:: @ 81541E8
+ clearflag 299
+ return
+
+PacifidlogTown_House2_EventScript_1541EC:: @ 81541EC
+ msgbox PacifidlogTown_House2_Text_179169, 4
+ giveitem ITEM_TM27
+ compare RESULT, 0
+ jumpeq PacifidlogTown_House2_EventScript_1A029B
+ setflag 299
+ special 333
+ msgbox PacifidlogTown_House2_Text_179283, 4
+ release
+ end
+
+PacifidlogTown_House2_EventScript_15421B:: @ 815421B
+ msgbox PacifidlogTown_House2_Text_1791CA, 4
+ release
+ end
+
+PacifidlogTown_House2_EventScript_154225:: @ 8154225
+ msgbox PacifidlogTown_House2_Text_17922D, 4
+ giveitem ITEM_TM21
+ compare RESULT, 0
+ jumpeq PacifidlogTown_House2_EventScript_1A029B
+ setflag 299
+ special 333
+ msgbox PacifidlogTown_House2_Text_179283, 4
+ release
+ end
+
+PacifidlogTown_House2_EventScript_154254:: @ 8154254
+ specialval RESULT, 334
+ buffernum 0, RESULT
+ msgbox PacifidlogTown_House2_Text_1792F2, 4
+ release
+ end
+
+PacifidlogTown_House2_EventScript_154267:: @ 8154267
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZURILL, 0
+ msgbox PacifidlogTown_House2_Text_17938B, 4
+ waitpokecry
+ msgbox PacifidlogTown_House2_Text_17939B, 4
+ release
+ end
+
+PacifidlogTown_House2_EventScript_154282:: @ 8154282
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZURILL, 2
+ msgbox PacifidlogTown_House2_Text_1793CC, 4
+ waitpokecry
+ msgbox PacifidlogTown_House2_Text_1793DD, 4
+ release
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_House3.s b/data/scripts/maps/PacifidlogTown_House3.s
new file mode 100644
index 000000000..4dfc1fa92
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_House3.s
@@ -0,0 +1,56 @@
+PacifidlogTown_House3_MapScripts:: @ 815429D
+ .byte 0
+
+PacifidlogTown_House3_EventScript_15429E:: @ 815429E
+ lock
+ faceplayer
+ checkflag 154
+ jumpeq PacifidlogTown_House3_EventScript_154338
+ setvar 0x8008, 2
+ copyvar 0x8004, 0x8008
+ specialval RESULT, 252
+ copyvar 0x8009, RESULT
+ msgbox PacifidlogTown_House3_Text_17940E, 5
+ compare RESULT, 0
+ jumpeq PacifidlogTown_House3_EventScript_154320
+ special 159
+ waitstate
+ copyvar 0x800a, 0x8004
+ compare 0x8004, 255
+ jumpeq PacifidlogTown_House3_EventScript_154320
+ copyvar 0x8005, 0x800a
+ specialval RESULT, 255
+ copyvar 0x800b, RESULT
+ comparevars RESULT, 0x8009
+ jumpif 5, PacifidlogTown_House3_EventScript_15432A
+ copyvar 0x8004, 0x8008
+ copyvar 0x8005, 0x800a
+ special 253
+ special 254
+ waitstate
+ bufferpoke 0, 0x8009
+ msgbox PacifidlogTown_House3_Text_1794C4, 4
+ setflag 154
+ release
+ end
+
+PacifidlogTown_House3_EventScript_154320:: @ 8154320
+ msgbox PacifidlogTown_House3_Text_1794ED, 4
+ release
+ end
+
+PacifidlogTown_House3_EventScript_15432A:: @ 815432A
+ bufferpoke 0, 0x8009
+ msgbox PacifidlogTown_House3_Text_1794DF, 4
+ release
+ end
+
+PacifidlogTown_House3_EventScript_154338:: @ 8154338
+ msgbox PacifidlogTown_House3_Text_17950A, 4
+ release
+ end
+
+PacifidlogTown_House3_EventScript_154342:: @ 8154342
+ msgbox PacifidlogTown_House3_Text_179541, 2
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_House4.s b/data/scripts/maps/PacifidlogTown_House4.s
new file mode 100644
index 000000000..1df583033
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_House4.s
@@ -0,0 +1,31 @@
+PacifidlogTown_House4_MapScripts:: @ 815434B
+ .byte 0
+
+PacifidlogTown_House4_EventScript_15434C:: @ 815434C
+ msgbox PacifidlogTown_House4_Text_17961F, 2
+ end
+
+PacifidlogTown_House4_EventScript_154355:: @ 8154355
+ msgbox PacifidlogTown_House4_Text_17959B, 2
+ end
+
+PacifidlogTown_House4_EventScript_15435E:: @ 815435E
+ lock
+ faceplayer
+ msgbox PacifidlogTown_House4_Text_17963D, 5
+ compare RESULT, 1
+ jumpeq PacifidlogTown_House4_EventScript_15437F
+ compare RESULT, 0
+ jumpeq PacifidlogTown_House4_EventScript_154389
+ end
+
+PacifidlogTown_House4_EventScript_15437F:: @ 815437F
+ msgbox PacifidlogTown_House4_Text_179656, 4
+ release
+ end
+
+PacifidlogTown_House4_EventScript_154389:: @ 8154389
+ msgbox PacifidlogTown_House4_Text_17968C, 4
+ release
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_House5.s b/data/scripts/maps/PacifidlogTown_House5.s
new file mode 100644
index 000000000..0aace4265
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_House5.s
@@ -0,0 +1,22 @@
+PacifidlogTown_House5_MapScripts:: @ 8154393
+ .byte 0
+
+PacifidlogTown_House5_EventScript_154394:: @ 8154394
+ lock
+ faceplayer
+ specialval RESULT, 209
+ compare RESULT, 1
+ jumpeq PacifidlogTown_House5_EventScript_1543B0
+ msgbox PacifidlogTown_House5_Text_179718, 4
+ release
+ end
+
+PacifidlogTown_House5_EventScript_1543B0:: @ 81543B0
+ msgbox PacifidlogTown_House5_Text_17973B, 4
+ release
+ end
+
+PacifidlogTown_House5_EventScript_1543BA:: @ 81543BA
+ msgbox PacifidlogTown_House5_Text_179765, 2
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..6fa955c34
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s
@@ -0,0 +1,22 @@
+PacifidlogTown_PokemonCenter_1F_MapScripts:: @ 81540FF
+ map_script 3, PacifidlogTown_PokemonCenter_1F_MapScript1_154105
+ .byte 0
+
+PacifidlogTown_PokemonCenter_1F_MapScript1_154105:: @ 8154105
+ sethealplace 19
+ end
+
+ .incbin "baserom.gba", 0x154109, 0xe
+
+PacifidlogTown_PokemonCenter_1F_EventScript_154117:: @ 8154117
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_178E47, 2
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_154120:: @ 8154120
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_178E79, 2
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_154129:: @ 8154129
+ msgbox PacifidlogTown_PokemonCenter_1F_Text_178ED9, 2
+ end
+
diff --git a/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s b/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..026119917
--- /dev/null
+++ b/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s
@@ -0,0 +1,12 @@
+PacifidlogTown_PokemonCenter_2F_MapScripts:: @ 8154132
+ map_script 2, PacifidlogTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, PacifidlogTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, PacifidlogTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+ .incbin "baserom.gba", 0x154142, 0xc
+
+PacifidlogTown_PokemonCenter_2F_EventScript_15414E:: @ 815414E
+ call PacifidlogTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/PetalburgCity.s b/data/scripts/maps/PetalburgCity.s
new file mode 100644
index 000000000..d82359af1
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity.s
@@ -0,0 +1,425 @@
+PetalburgCity_MapScripts:: @ 814B70C
+ map_script 3, PetalburgCity_MapScript1_14B717
+ map_script 2, PetalburgCity_MapScript2_14B73D
+ .byte 0
+
+PetalburgCity_MapScript1_14B717:: @ 814B717
+ setflag 2070
+ compare 0x4057, 0
+ callif 1, PetalburgCity_EventScript_14B731
+ compare 0x4057, 2
+ callif 1, PetalburgCity_EventScript_14B739
+ end
+
+PetalburgCity_EventScript_14B731:: @ 814B731
+ movespriteperm 9, 5, 11
+ return
+
+PetalburgCity_EventScript_14B739:: @ 814B739
+ playmusicbattle 420
+ return
+
+PetalburgCity_MapScript2_14B73D:: @ 814B73D
+ map_script_2 0x4057, 2, PetalburgCity_EventScript_14B747
+ .2byte 0
+
+PetalburgCity_EventScript_14B747:: @ 814B747
+ lockall
+ setflag 0x4000
+ special 39
+ special 301
+ move 2, PetalburgCity_Movement_14B7ED
+ move 255, PetalburgCity_Movement_14B7CC
+ waitmove 0
+ msgbox PetalburgCity_Text_16D361, 4
+ special 157
+ waitstate
+ msgbox PetalburgCity_Text_16D3DE, 4
+ movecoords 2, PetalburgCity_Movement_1A083F, 0, 0
+ waitmovexy 0, 0, 2
+ msgbox PetalburgCity_Text_16D408, 4
+ closebutton
+ clearflag 0x4000
+ setvar 0x4057, 3
+ fadedefault
+ clearflag 0x4001
+ special 40
+ setvar 0x4085, 1
+ warp PetalburgCity_Gym, 255, 4, 108
+ waitstate
+ releaseall
+ end
+
+PetalburgCity_EventScript_14B7AC:: @ 814B7AC
+ lock
+ faceplayer
+ msgbox PetalburgCity_Text_164490, 4
+ closebutton
+ move 3, PetalburgCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+PetalburgCity_EventScript_14B7C3:: @ 814B7C3
+ msgbox PetalburgCity_Text_16433E, 2
+ end
+
+PetalburgCity_Movement_14B7CC:: @ 814B7CC
+ step_13
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_28
+ step_end
+
+PetalburgCity_Movement_14B7ED:: @ 814B7ED
+ step_13
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_right
+ step_14
+ step_26
+ step_14
+ step_14
+ step_28
+ step_end
+
+PetalburgCity_EventScript_14B812:: @ 814B812
+ msgbox PetalburgCity_Text_1645BB, 3
+ end
+
+PetalburgCity_EventScript_14B81B:: @ 814B81B
+ msgbox PetalburgCity_Text_164602, 3
+ end
+
+PetalburgCity_EventScript_14B824:: @ 814B824
+ msgbox PetalburgCity_Text_16453F, 2
+ end
+
+PetalburgCity_EventScript_14B82D:: @ 814B82D
+ msgbox PetalburgCity_Text_164634, 3
+ end
+
+PetalburgCity_EventScript_14B836:: @ 814B836
+ lockall
+ setvar 0x8008, 0
+ jump PetalburgCity_EventScript_14B866
+ end
+
+PetalburgCity_EventScript_14B842:: @ 814B842
+ lockall
+ setvar 0x8008, 1
+ jump PetalburgCity_EventScript_14B866
+ end
+
+PetalburgCity_EventScript_14B84E:: @ 814B84E
+ lockall
+ setvar 0x8008, 2
+ jump PetalburgCity_EventScript_14B866
+ end
+
+PetalburgCity_EventScript_14B85A:: @ 814B85A
+ lockall
+ setvar 0x8008, 3
+ jump PetalburgCity_EventScript_14B866
+ end
+
+PetalburgCity_EventScript_14B866:: @ 814B866
+ move 9, PetalburgCity_Movement_1A0839
+ waitmove 0
+ playmusic 420, 0
+ playsfx 21
+ move 9, PetalburgCity_Movement_1A0833
+ waitmove 0
+ move 9, PetalburgCity_Movement_1A0835
+ waitmove 0
+ compare 0x8008, 0
+ callif 1, PetalburgCity_EventScript_14B91B
+ compare 0x8008, 1
+ callif 1, PetalburgCity_EventScript_14B930
+ compare 0x8008, 2
+ callif 1, PetalburgCity_EventScript_14B93B
+ compare 0x8008, 3
+ callif 1, PetalburgCity_EventScript_14B950
+ msgbox PetalburgCity_Text_16438A, 4
+ closebutton
+ compare 0x8008, 0
+ callif 1, PetalburgCity_EventScript_14B965
+ compare 0x8008, 1
+ callif 1, PetalburgCity_EventScript_14B977
+ compare 0x8008, 2
+ callif 1, PetalburgCity_EventScript_14B989
+ compare 0x8008, 3
+ callif 1, PetalburgCity_EventScript_14B99B
+ msgbox PetalburgCity_Text_164426, 4
+ move 9, PetalburgCity_Movement_1A0843
+ move 255, PetalburgCity_Movement_1A0843
+ waitmove 0
+ msgbox PetalburgCity_Text_164449, 4
+ closebutton
+ move 9, PetalburgCity_Movement_14B9F4
+ waitmove 0
+ fadedefault
+ releaseall
+ end
+
+PetalburgCity_EventScript_14B91B:: @ 814B91B
+ move 9, PetalburgCity_Movement_14B9B1
+ waitmove 0
+ move 255, PetalburgCity_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B930:: @ 814B930
+ move 9, PetalburgCity_Movement_14B9B6
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B93B:: @ 814B93B
+ move 9, PetalburgCity_Movement_14B9B9
+ waitmove 0
+ move 255, PetalburgCity_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B950:: @ 814B950
+ move 9, PetalburgCity_Movement_14B9BE
+ waitmove 0
+ move 255, PetalburgCity_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B965:: @ 814B965
+ move 9, PetalburgCity_Movement_14B9C4
+ move 255, PetalburgCity_Movement_14BA01
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B977:: @ 814B977
+ move 9, PetalburgCity_Movement_14B9CF
+ move 255, PetalburgCity_Movement_14BA0B
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B989:: @ 814B989
+ move 9, PetalburgCity_Movement_14B9DD
+ move 255, PetalburgCity_Movement_14BA18
+ waitmove 0
+ return
+
+PetalburgCity_EventScript_14B99B:: @ 814B99B
+ move 9, PetalburgCity_Movement_14B9E8
+ move 255, PetalburgCity_Movement_14BA22
+ waitmove 0
+ return
+
+ .incbin "baserom.gba", 0x14b9ad, 0x4
+
+PetalburgCity_Movement_14B9B1:: @ 814B9B1
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+PetalburgCity_Movement_14B9B6:: @ 814B9B6
+ step_right
+ step_right
+ step_end
+
+PetalburgCity_Movement_14B9B9:: @ 814B9B9
+ step_right
+ step_right
+ step_right
+ step_25
+ step_end
+
+PetalburgCity_Movement_14B9BE:: @ 814B9BE
+ step_down
+ step_right
+ step_right
+ step_right
+ step_25
+ step_end
+
+PetalburgCity_Movement_14B9C4:: @ 814B9C4
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_right
+ step_26
+ step_end
+
+PetalburgCity_Movement_14B9CF:: @ 814B9CF
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_right
+ step_26
+ step_end
+
+PetalburgCity_Movement_14B9DD:: @ 814B9DD
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_right
+ step_26
+ step_end
+
+PetalburgCity_Movement_14B9E8:: @ 814B9E8
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_right
+ step_26
+ step_end
+
+PetalburgCity_Movement_14B9F4:: @ 814B9F4
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+PetalburgCity_Movement_14BA01:: @ 814BA01
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_end
+
+PetalburgCity_Movement_14BA0B:: @ 814BA0B
+ step_14
+ step_14
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_end
+
+PetalburgCity_Movement_14BA18:: @ 814BA18
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_end
+
+PetalburgCity_Movement_14BA22:: @ 814BA22
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_up
+ step_up
+ step_end
+
+PetalburgCity_EventScript_14BA2D:: @ 814BA2D
+ msgbox PetalburgCity_Text_16438A, 2
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_Gym.s b/data/scripts/maps/PetalburgCity_Gym.s
new file mode 100644
index 000000000..c9e54f6cf
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_Gym.s
@@ -0,0 +1,1049 @@
+PetalburgCity_Gym_MapScripts:: @ 8154477
+ map_script 1, PetalburgCity_Gym_MapScript1_15448C
+ map_script 3, PetalburgCity_Gym_MapScript1_15451B
+ map_script 4, PetalburgCity_Gym_MapScript2_154553
+ map_script 2, PetalburgCity_Gym_MapScript2_154562
+ .byte 0
+
+PetalburgCity_Gym_MapScript1_15448C:: @ 815448C
+ compare 0x4085, 6
+ jumpeq PetalburgCity_Gym_EventScript_1544A3
+ compare 0x4085, 7
+ callif 4, PetalburgCity_Gym_EventScript_1544ED
+ end
+
+PetalburgCity_Gym_EventScript_1544A3:: @ 81544A3
+ setvar 0x8005, 1
+ call PetalburgCity_Gym_EventScript_154F9A
+ checktrainerflag 71
+ callif 1, PetalburgCity_Gym_EventScript_154FBB
+ checktrainerflag 89
+ callif 1, PetalburgCity_Gym_EventScript_154FDC
+ checktrainerflag 72
+ callif 1, PetalburgCity_Gym_EventScript_154FFD
+ checktrainerflag 90
+ callif 1, PetalburgCity_Gym_EventScript_15501E
+ checktrainerflag 73
+ callif 1, PetalburgCity_Gym_EventScript_15503F
+ checktrainerflag 91
+ callif 1, PetalburgCity_Gym_EventScript_155060
+ checktrainerflag 74
+ callif 1, PetalburgCity_Gym_EventScript_155081
+ end
+
+PetalburgCity_Gym_EventScript_1544ED:: @ 81544ED
+ setvar 0x8005, 1
+ call PetalburgCity_Gym_EventScript_154F9A
+ call PetalburgCity_Gym_EventScript_154FBB
+ call PetalburgCity_Gym_EventScript_154FDC
+ call PetalburgCity_Gym_EventScript_154FFD
+ call PetalburgCity_Gym_EventScript_15501E
+ call PetalburgCity_Gym_EventScript_15503F
+ call PetalburgCity_Gym_EventScript_155060
+ call PetalburgCity_Gym_EventScript_155081
+ return
+
+PetalburgCity_Gym_MapScript1_15451B:: @ 815451B
+ compare 0x4085, 1
+ callif 1, PetalburgCity_Gym_EventScript_15453B
+ compare 0x4085, 6
+ callif 0, PetalburgCity_Gym_EventScript_154543
+ checkflag 2052
+ callif 1, PetalburgCity_Gym_EventScript_15454B
+ end
+
+PetalburgCity_Gym_EventScript_15453B:: @ 815453B
+ movespriteperm 10, 5, 108
+ return
+
+PetalburgCity_Gym_EventScript_154543:: @ 8154543
+ movespriteperm 1, 4, 107
+ return
+
+PetalburgCity_Gym_EventScript_15454B:: @ 815454B
+ movespriteperm 1, 4, 107
+ return
+
+PetalburgCity_Gym_MapScript2_154553:: @ 8154553
+ map_script_2 0x4085, 1, PetalburgCity_Gym_EventScript_15455D
+ .2byte 0
+
+PetalburgCity_Gym_EventScript_15455D:: @ 815455D
+ spriteface 255, 2
+ end
+
+PetalburgCity_Gym_MapScript2_154562:: @ 8154562
+ map_script_2 0x4085, 1, PetalburgCity_Gym_EventScript_15456C
+ .2byte 0
+
+PetalburgCity_Gym_EventScript_15456C:: @ 815456C
+ lockall
+ msgbox PetalburgCity_Gym_Text_17A196, 4
+ msgbox PetalburgCity_Gym_Text_17A1B0, 4
+ closebutton
+ move 255, PetalburgCity_Gym_Movement_1A0845
+ move 10, PetalburgCity_Gym_Movement_1545B4
+ waitmove 0
+ playsfx 9
+ disappear 10
+ setflag 726
+ pause 30
+ move 255, PetalburgCity_Gym_Movement_1A0841
+ waitmove 0
+ msgbox PetalburgCity_Gym_Text_17A2A4, 4
+ setvar 0x4085, 2
+ releaseall
+ end
+
+PetalburgCity_Gym_Movement_1545B4:: @ 81545B4
+ step_down
+ step_down
+ step_down
+ step_14
+ step_end
+
+PetalburgCity_Gym_EventScript_1545B9:: @ 81545B9
+ lock
+ faceplayer
+ switch 0x4085
+ case 2, PetalburgCity_Gym_EventScript_154907
+ case 3, PetalburgCity_Gym_EventScript_154911
+ case 4, PetalburgCity_Gym_EventScript_15491B
+ case 5, PetalburgCity_Gym_EventScript_154925
+ case 6, PetalburgCity_Gym_EventScript_1549D6
+ case 7, PetalburgCity_Gym_EventScript_15493D
+ msgbox PetalburgCity_Gym_Text_179DF6, 4
+ closebutton
+ switch FACING
+ case 1, PetalburgCity_Gym_EventScript_15463D
+ case 2, PetalburgCity_Gym_EventScript_154648
+ case 3, PetalburgCity_Gym_EventScript_154653
+ case 4, PetalburgCity_Gym_EventScript_15465E
+ end
+
+PetalburgCity_Gym_EventScript_15463D:: @ 815463D
+ setvar 0x8008, 0
+ jump PetalburgCity_Gym_EventScript_154669
+ end
+
+PetalburgCity_Gym_EventScript_154648:: @ 8154648
+ setvar 0x8008, 1
+ jump PetalburgCity_Gym_EventScript_154669
+ end
+
+PetalburgCity_Gym_EventScript_154653:: @ 8154653
+ setvar 0x8008, 2
+ jump PetalburgCity_Gym_EventScript_154669
+ end
+
+PetalburgCity_Gym_EventScript_15465E:: @ 815465E
+ setvar 0x8008, 3
+ jump PetalburgCity_Gym_EventScript_154669
+ end
+
+PetalburgCity_Gym_EventScript_154669:: @ 8154669
+ reappear 10
+ playsfx 8
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_1547EE
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_154800
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_15481C
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_15481C
+ msgbox PetalburgCity_Gym_Text_179F07, 4
+ msgbox PetalburgCity_Gym_Text_179F37, 4
+ msgbox PetalburgCity_Gym_Text_179F70, 4
+ msgbox PetalburgCity_Gym_Text_17A03A, 4
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_154884
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_15488F
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_1548A1
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_1548B3
+ msgbox PetalburgCity_Gym_Text_17A04A, 4
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_1548C5
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_1548D0
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_1548DB
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_1548E6
+ msgbox PetalburgCity_Gym_Text_17A0A8, 4
+ msgbox PetalburgCity_Gym_Text_17A0EB, 4
+ msgbox PetalburgCity_Gym_Text_17A156, 4
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_15492F
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_154930
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_15493B
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_15493C
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_1548F1
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_1548FC
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_1548F1
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_1548F1
+ msgbox PetalburgCity_Gym_Text_17A171, 4
+ closebutton
+ setflag 0x4001
+ playmusic 420, 0
+ compare 0x8008, 0
+ callif 1, PetalburgCity_Gym_EventScript_154835
+ compare 0x8008, 1
+ callif 1, PetalburgCity_Gym_EventScript_15484E
+ compare 0x8008, 2
+ callif 1, PetalburgCity_Gym_EventScript_154860
+ compare 0x8008, 3
+ callif 1, PetalburgCity_Gym_EventScript_154872
+ disappear 10
+ setflag 728
+ setvar 0x4085, 1
+ setvar 0x4057, 2
+ clearflag 726
+ clearflag 866
+ setflag 889
+ special 211
+ warp PetalburgCity, 255, 15, 8
+ waitstate
+ release
+ end
+
+PetalburgCity_Gym_EventScript_1547EE:: @ 81547EE
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ move 10, PetalburgCity_Gym_Movement_154B27
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154800:: @ 8154800
+ move 10, PetalburgCity_Gym_Movement_154B1D
+ waitmove 0
+ move 1, PetalburgCity_Gym_Movement_1A0843
+ move 255, PetalburgCity_Gym_Movement_1A0843
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_15481C:: @ 815481C
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ move 255, PetalburgCity_Gym_Movement_1A0845
+ move 10, PetalburgCity_Gym_Movement_154B27
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154835:: @ 8154835
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ move 10, PetalburgCity_Gym_Movement_154B3E
+ move 255, PetalburgCity_Gym_Movement_154B4D
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_15484E:: @ 815484E
+ move 10, PetalburgCity_Gym_Movement_154B2E
+ move 255, PetalburgCity_Gym_Movement_154B45
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154860:: @ 8154860
+ move 10, PetalburgCity_Gym_Movement_154B3E
+ move 255, PetalburgCity_Gym_Movement_154B57
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154872:: @ 8154872
+ move 10, PetalburgCity_Gym_Movement_154B36
+ move 255, PetalburgCity_Gym_Movement_154B5F
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154884:: @ 8154884
+ move 1, PetalburgCity_Gym_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_15488F:: @ 815488F
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ move 255, PetalburgCity_Gym_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548A1:: @ 81548A1
+ move 1, PetalburgCity_Gym_Movement_1A0843
+ move 255, PetalburgCity_Gym_Movement_1A083F
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548B3:: @ 81548B3
+ move 1, PetalburgCity_Gym_Movement_1A083F
+ move 255, PetalburgCity_Gym_Movement_1A0843
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548C5:: @ 81548C5
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548D0:: @ 81548D0
+ move 1, PetalburgCity_Gym_Movement_1A0843
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548DB:: @ 81548DB
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548E6:: @ 81548E6
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548F1:: @ 81548F1
+ move 10, PetalburgCity_Gym_Movement_1A0839
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_1548FC:: @ 81548FC
+ move 10, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154907:: @ 8154907
+ msgbox PetalburgCity_Gym_Text_17A41E, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154911:: @ 8154911
+ msgbox PetalburgCity_Gym_Text_17A518, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_15491B:: @ 815491B
+ msgbox PetalburgCity_Gym_Text_17A5F3, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154925:: @ 8154925
+ msgbox PetalburgCity_Gym_Text_17A5F3, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_15492F:: @ 815492F
+ return
+
+PetalburgCity_Gym_EventScript_154930:: @ 8154930
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_15493B:: @ 815493B
+ return
+
+PetalburgCity_Gym_EventScript_15493C:: @ 815493C
+ return
+
+PetalburgCity_Gym_EventScript_15493D:: @ 815493D
+ call PetalburgCity_Gym_EventScript_154969
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_1549B8
+ checkflag 169
+ jumpif 0, PetalburgCity_Gym_EventScript_154A2C
+ checkflag 2052
+ jumpeq PetalburgCity_Gym_EventScript_154B69
+ msgbox PetalburgCity_Gym_Text_17AA6B, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154969:: @ 8154969
+ specialval RESULT, 50
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_1549B2
+ checkitem ITEM_ENIGMA_BERRY, 1
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_1549B2
+ checkpcitem ITEM_ENIGMA_BERRY, 1
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_1549B2
+ compare 0x402d, 0
+ jumpeq PetalburgCity_Gym_EventScript_1549B2
+ msgbox PetalburgCity_Gym_Text_1C5570, 4
+ setvar RESULT, 1
+ return
+
+PetalburgCity_Gym_EventScript_1549B2:: @ 81549B2
+ setvar RESULT, 0
+ return
+
+PetalburgCity_Gym_EventScript_1549B8:: @ 81549B8
+ giveitem ITEM_ENIGMA_BERRY
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_1A029B
+ setvar 0x402d, 0
+ release
+ end
+
+PetalburgCity_Gym_EventScript_1549D6:: @ 81549D6
+ msgbox PetalburgCity_Gym_Text_17A653, 4
+ trainerbattle 3, 269, 0, PetalburgCity_Gym_Text_17A77A
+ message PetalburgCity_Gym_Text_17A7DD
+ waittext
+ call PetalburgCity_Gym_EventScript_1A02C5
+ msgbox PetalburgCity_Gym_Text_17A805, 4
+ setflag 1217
+ setvar 0x4085, 7
+ setflag 2059
+ call PetalburgCity_Gym_EventScript_1A0424
+ setflag 913
+ clearflag 912
+ setvar 0x8008, 5
+ call PetalburgCity_Gym_EventScript_1A01C0
+ clearflag 940
+ call PetalburgCity_Gym_EventScript_1544ED
+ special 142
+ jump PetalburgCity_Gym_EventScript_154A2C
+ end
+
+PetalburgCity_Gym_EventScript_154A2C:: @ 8154A2C
+ giveitem ITEM_TM42
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_1A029B
+ setflag 169
+ msgbox PetalburgCity_Gym_Text_17A8CF, 4
+ msgbox PetalburgCity_Gym_Text_17A976, 4
+ closebutton
+ compare FACING, 2
+ callif 1, PetalburgCity_Gym_EventScript_154ABC
+ compare FACING, 1
+ callif 1, PetalburgCity_Gym_EventScript_154AC7
+ compare FACING, 3
+ callif 1, PetalburgCity_Gym_EventScript_154AD2
+ compare FACING, 4
+ callif 1, PetalburgCity_Gym_EventScript_154ADD
+ pause 70
+ compare FACING, 2
+ callif 1, PetalburgCity_Gym_EventScript_154AE8
+ compare FACING, 1
+ callif 1, PetalburgCity_Gym_EventScript_154AF3
+ compare FACING, 3
+ callif 1, PetalburgCity_Gym_EventScript_154AFE
+ compare FACING, 4
+ callif 1, PetalburgCity_Gym_EventScript_154B09
+ msgbox PetalburgCity_Gym_Text_17A9F6, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154ABC:: @ 8154ABC
+ move 1, PetalburgCity_Gym_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154AC7:: @ 8154AC7
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154AD2:: @ 8154AD2
+ move 1, PetalburgCity_Gym_Movement_1A083F
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154ADD:: @ 8154ADD
+ move 1, PetalburgCity_Gym_Movement_1A0843
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154AE8:: @ 8154AE8
+ move 1, PetalburgCity_Gym_Movement_1A0845
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154AF3:: @ 8154AF3
+ move 1, PetalburgCity_Gym_Movement_1A0841
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154AFE:: @ 8154AFE
+ move 1, PetalburgCity_Gym_Movement_1A0843
+ waitmove 0
+ return
+
+PetalburgCity_Gym_EventScript_154B09:: @ 8154B09
+ move 1, PetalburgCity_Gym_Movement_1A083F
+ waitmove 0
+ return
+
+ .incbin "baserom.gba", 0x154b14, 0x9
+
+PetalburgCity_Gym_Movement_154B1D:: @ 8154B1D
+ step_14
+ step_up
+ step_14
+ step_13
+ step_up
+ step_right
+ step_up
+ step_up
+ step_27
+ step_end
+
+PetalburgCity_Gym_Movement_154B27:: @ 8154B27
+ step_14
+ step_up
+ step_14
+ step_13
+ step_up
+ step_up
+ step_end
+
+PetalburgCity_Gym_Movement_154B2E:: @ 8154B2E
+ step_down
+ step_down
+ step_down
+ step_down
+ step_26
+ step_14
+ step_1d
+ step_end
+
+PetalburgCity_Gym_Movement_154B36:: @ 8154B36
+ step_down
+ step_down
+ step_right
+ step_down
+ step_26
+ step_14
+ step_1d
+ step_end
+
+PetalburgCity_Gym_Movement_154B3E:: @ 8154B3E
+ step_down
+ step_down
+ step_down
+ step_26
+ step_14
+ step_1d
+ step_end
+
+PetalburgCity_Gym_Movement_154B45:: @ 8154B45
+ step_14
+ step_14
+ step_14
+ step_down
+ step_down
+ step_down
+ step_13
+ step_end
+
+PetalburgCity_Gym_Movement_154B4D:: @ 8154B4D
+ step_14
+ step_14
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_13
+ step_end
+
+PetalburgCity_Gym_Movement_154B57:: @ 8154B57
+ step_14
+ step_14
+ step_down
+ step_down
+ step_down
+ step_down
+ step_13
+ step_end
+
+PetalburgCity_Gym_Movement_154B5F:: @ 8154B5F
+ step_25
+ step_14
+ step_14
+ step_down
+ step_down
+ step_down
+ step_right
+ step_down
+ step_13
+ step_end
+
+PetalburgCity_Gym_EventScript_154B69:: @ 8154B69
+ msgbox PetalburgCity_Gym_Text_17AB17, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154B73:: @ 8154B73
+ lockall
+ compare 0x4085, 6
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 85
+ msgbox PetalburgCity_Gym_Text_17B870, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154BA8:: @ 8154BA8
+ closebutton
+ pause 30
+ warpwalk PetalburgCity_Gym, 255, 32776, 32777
+ waitstate
+ releaseall
+ end
+
+PetalburgCity_Gym_EventScript_154BB7:: @ 8154BB7
+ releaseall
+ end
+
+PetalburgCity_Gym_EventScript_154BB9:: @ 8154BB9
+ msgbox PetalburgCity_Gym_Text_17B844, 4
+ releaseall
+ end
+
+PetalburgCity_Gym_EventScript_154BC3:: @ 8154BC3
+ lockall
+ compare 0x4085, 6
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 98
+ msgbox PetalburgCity_Gym_Text_17B8D4, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154BF8:: @ 8154BF8
+ lockall
+ checktrainerflag 71
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 46
+ msgbox PetalburgCity_Gym_Text_17B90F, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154C2B:: @ 8154C2B
+ lockall
+ checktrainerflag 71
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 59
+ msgbox PetalburgCity_Gym_Text_17B950, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154C5E:: @ 8154C5E
+ lockall
+ checktrainerflag 89
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 59
+ msgbox PetalburgCity_Gym_Text_17B950, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154C91:: @ 8154C91
+ lockall
+ checktrainerflag 89
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 72
+ msgbox PetalburgCity_Gym_Text_17B98A, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154CC4:: @ 8154CC4
+ lockall
+ checktrainerflag 72
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 20
+ msgbox PetalburgCity_Gym_Text_17B9C5, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154CF7:: @ 8154CF7
+ lockall
+ checktrainerflag 90
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 20
+ msgbox PetalburgCity_Gym_Text_17B9C5, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154D2A:: @ 8154D2A
+ lockall
+ checktrainerflag 90
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 33
+ msgbox PetalburgCity_Gym_Text_17BA00, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154D5D:: @ 8154D5D
+ lockall
+ checktrainerflag 73
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 33
+ msgbox PetalburgCity_Gym_Text_17BA00, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154D90:: @ 8154D90
+ lockall
+ checktrainerflag 91
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 1
+ setvar 0x8009, 7
+ msgbox PetalburgCity_Gym_Text_17BA3D, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154DC3:: @ 8154DC3
+ lockall
+ checktrainerflag 74
+ jumpif 0, PetalburgCity_Gym_EventScript_154BB9
+ setvar 0x8008, 7
+ setvar 0x8009, 7
+ msgbox PetalburgCity_Gym_Text_17BA3D, 5
+ compare RESULT, 1
+ jumpeq PetalburgCity_Gym_EventScript_154BA8
+ compare RESULT, 0
+ jumpeq PetalburgCity_Gym_EventScript_154BB7
+ end
+
+PetalburgCity_Gym_EventScript_154DF6:: @ 8154DF6
+ trainerbattle 2, 71, 0, PetalburgCity_Gym_Text_17ADA5, PetalburgCity_Gym_Text_17AE11, PetalburgCity_Gym_EventScript_154E1A
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154E29
+ msgbox PetalburgCity_Gym_Text_17AE30, 6
+ end
+
+PetalburgCity_Gym_EventScript_154E1A:: @ 8154E1A
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_154FBB
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154E29:: @ 8154E29
+ msgbox PetalburgCity_Gym_Text_17AEBB, 2
+ end
+
+PetalburgCity_Gym_EventScript_154E32:: @ 8154E32
+ trainerbattle 2, 72, 0, PetalburgCity_Gym_Text_17AF5A, PetalburgCity_Gym_Text_17AF98, PetalburgCity_Gym_EventScript_154E56
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154E65
+ msgbox PetalburgCity_Gym_Text_17AFD3, 6
+ end
+
+PetalburgCity_Gym_EventScript_154E56:: @ 8154E56
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_154FFD
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154E65:: @ 8154E65
+ msgbox PetalburgCity_Gym_Text_17B016, 2
+ end
+
+PetalburgCity_Gym_EventScript_154E6E:: @ 8154E6E
+ trainerbattle 2, 73, 0, PetalburgCity_Gym_Text_17B058, PetalburgCity_Gym_Text_17B0F7, PetalburgCity_Gym_EventScript_154E92
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154EA1
+ msgbox PetalburgCity_Gym_Text_17B12C, 6
+ end
+
+PetalburgCity_Gym_EventScript_154E92:: @ 8154E92
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_15503F
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154EA1:: @ 8154EA1
+ msgbox PetalburgCity_Gym_Text_17B1F4, 2
+ end
+
+PetalburgCity_Gym_EventScript_154EAA:: @ 8154EAA
+ trainerbattle 2, 74, 0, PetalburgCity_Gym_Text_17B237, PetalburgCity_Gym_Text_17B2C0, PetalburgCity_Gym_EventScript_154ECE
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154EDD
+ msgbox PetalburgCity_Gym_Text_17B2E4, 6
+ end
+
+PetalburgCity_Gym_EventScript_154ECE:: @ 8154ECE
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_155081
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154EDD:: @ 8154EDD
+ msgbox PetalburgCity_Gym_Text_17B39B, 2
+ end
+
+PetalburgCity_Gym_EventScript_154EE6:: @ 8154EE6
+ trainerbattle 2, 89, 0, PetalburgCity_Gym_Text_17B3F7, PetalburgCity_Gym_Text_17B454, PetalburgCity_Gym_EventScript_154F0A
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154F19
+ msgbox PetalburgCity_Gym_Text_17B46F, 6
+ end
+
+PetalburgCity_Gym_EventScript_154F0A:: @ 8154F0A
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_154FDC
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154F19:: @ 8154F19
+ msgbox PetalburgCity_Gym_Text_17B521, 2
+ end
+
+PetalburgCity_Gym_EventScript_154F22:: @ 8154F22
+ trainerbattle 2, 90, 0, PetalburgCity_Gym_Text_17B58D, PetalburgCity_Gym_Text_17B5CB, PetalburgCity_Gym_EventScript_154F46
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154F55
+ msgbox PetalburgCity_Gym_Text_17B5EA, 6
+ end
+
+PetalburgCity_Gym_EventScript_154F46:: @ 8154F46
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_15501E
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154F55:: @ 8154F55
+ msgbox PetalburgCity_Gym_Text_17B6B5, 2
+ end
+
+PetalburgCity_Gym_EventScript_154F5E:: @ 8154F5E
+ trainerbattle 2, 91, 0, PetalburgCity_Gym_Text_17B6D4, PetalburgCity_Gym_Text_17B732, PetalburgCity_Gym_EventScript_154F82
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_154F91
+ msgbox PetalburgCity_Gym_Text_17B749, 6
+ end
+
+PetalburgCity_Gym_EventScript_154F82:: @ 8154F82
+ setvar 0x8005, 0
+ call PetalburgCity_Gym_EventScript_155060
+ special 142
+ release
+ end
+
+PetalburgCity_Gym_EventScript_154F91:: @ 8154F91
+ msgbox PetalburgCity_Gym_Text_17B7C0, 2
+ end
+
+PetalburgCity_Gym_EventScript_154F9A:: @ 8154F9A
+ setvar 0x8004, 1
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_1550A2
+ return
+
+PetalburgCity_Gym_EventScript_154FBB:: @ 8154FBB
+ setvar 0x8004, 2
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_1550C7
+ return
+
+PetalburgCity_Gym_EventScript_154FDC:: @ 8154FDC
+ setvar 0x8004, 3
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_1550EC
+ return
+
+PetalburgCity_Gym_EventScript_154FFD:: @ 8154FFD
+ setvar 0x8004, 4
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_155111
+ return
+
+PetalburgCity_Gym_EventScript_15501E:: @ 815501E
+ setvar 0x8004, 5
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_155124
+ return
+
+PetalburgCity_Gym_EventScript_15503F:: @ 815503F
+ setvar 0x8004, 6
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_155149
+ return
+
+PetalburgCity_Gym_EventScript_155060:: @ 8155060
+ setvar 0x8004, 7
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_15515C
+ return
+
+PetalburgCity_Gym_EventScript_155081:: @ 8155081
+ setvar 0x8004, 8
+ compare 0x8005, 0
+ callif 1, PetalburgCity_Gym_EventScript_155182
+ compare 0x8005, 1
+ callif 1, PetalburgCity_Gym_EventScript_155187
+ call PetalburgCity_Gym_EventScript_15516F
+ return
+
+PetalburgCity_Gym_EventScript_1550A2:: @ 81550A2
+ setmaptile 6, 85, 528, 0
+ setmaptile 7, 85, 529, 0
+ setmaptile 1, 98, 528, 0
+ setmaptile 2, 98, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_1550C7:: @ 81550C7
+ setmaptile 6, 46, 528, 0
+ setmaptile 7, 46, 529, 0
+ setmaptile 1, 59, 528, 0
+ setmaptile 2, 59, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_1550EC:: @ 81550EC
+ setmaptile 6, 59, 528, 0
+ setmaptile 7, 59, 529, 0
+ setmaptile 1, 72, 528, 0
+ setmaptile 2, 72, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_155111:: @ 8155111
+ setmaptile 1, 20, 528, 0
+ setmaptile 2, 20, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_155124:: @ 8155124
+ setmaptile 6, 20, 528, 0
+ setmaptile 7, 20, 529, 0
+ setmaptile 1, 33, 528, 0
+ setmaptile 2, 33, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_155149:: @ 8155149
+ setmaptile 6, 33, 528, 0
+ setmaptile 7, 33, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_15515C:: @ 815515C
+ setmaptile 1, 7, 528, 0
+ setmaptile 2, 7, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_15516F:: @ 815516F
+ setmaptile 6, 7, 528, 0
+ setmaptile 7, 7, 529, 0
+ return
+
+PetalburgCity_Gym_EventScript_155182:: @ 8155182
+ special 145
+ waitstate
+ return
+
+PetalburgCity_Gym_EventScript_155187:: @ 8155187
+ special 146
+ return
+
+PetalburgCity_Gym_EventScript_15518B:: @ 815518B
+ lock
+ faceplayer
+ checkflag 1217
+ jumpeq PetalburgCity_Gym_EventScript_1551A0
+ msgbox PetalburgCity_Gym_Text_17AB96, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_1551A0:: @ 81551A0
+ msgbox PetalburgCity_Gym_Text_17AD49, 4
+ release
+ end
+
+PetalburgCity_Gym_EventScript_1551AA:: @ 81551AA
+ lockall
+ checkflag 2059
+ jumpeq PetalburgCity_Gym_EventScript_1551CA
+ jump PetalburgCity_Gym_EventScript_1551D4
+ end
+
+PetalburgCity_Gym_EventScript_1551BA:: @ 81551BA
+ lockall
+ checkflag 2059
+ jumpeq PetalburgCity_Gym_EventScript_1551CA
+ jump PetalburgCity_Gym_EventScript_1551D4
+ end
+
+PetalburgCity_Gym_EventScript_1551CA:: @ 81551CA
+ msgbox PetalburgCity_Gym_Text_17BAC0, 4
+ releaseall
+ end
+
+PetalburgCity_Gym_EventScript_1551D4:: @ 81551D4
+ msgbox PetalburgCity_Gym_Text_17BAA5, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_House1.s b/data/scripts/maps/PetalburgCity_House1.s
new file mode 100644
index 000000000..3950e1259
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_House1.s
@@ -0,0 +1,11 @@
+PetalburgCity_House1_MapScripts:: @ 81551DE
+ .byte 0
+
+PetalburgCity_House1_EventScript_1551DF:: @ 81551DF
+ msgbox PetalburgCity_House1_Text_17BAFB, 2
+ end
+
+PetalburgCity_House1_EventScript_1551E8:: @ 81551E8
+ msgbox PetalburgCity_House1_Text_17BB4A, 2
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_House2.s b/data/scripts/maps/PetalburgCity_House2.s
new file mode 100644
index 000000000..fbd3f9b0d
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_House2.s
@@ -0,0 +1,11 @@
+PetalburgCity_House2_MapScripts:: @ 81551F1
+ .byte 0
+
+PetalburgCity_House2_EventScript_1551F2:: @ 81551F2
+ msgbox PetalburgCity_House2_Text_17BC4F, 2
+ end
+
+PetalburgCity_House2_EventScript_1551FB:: @ 81551FB
+ msgbox PetalburgCity_House2_Text_17BCB1, 2
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_Mart.s b/data/scripts/maps/PetalburgCity_Mart.s
new file mode 100644
index 000000000..85fc92110
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_Mart.s
@@ -0,0 +1,69 @@
+PetalburgCity_Mart_MapScripts:: @ 81552AF
+ .byte 0
+
+PetalburgCity_Mart_EventScript_1552B0:: @ 81552B0
+ lock
+ faceplayer
+ message PetalburgCity_Mart_Text_1A0BE4
+ waittext
+ checkflag 296
+ jumpeq PetalburgCity_Mart_EventScript_1552EA
+ pokemart PetalburgCity_Mart_Pokemart_1552D0
+ msgbox PetalburgCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+PetalburgCity_Mart_Pokemart_1552D0:: @ 81552D0
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_REPEL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_ORANGE_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+PetalburgCity_Mart_EventScript_1552EA:: @ 81552EA
+ pokemart PetalburgCity_Mart_Pokemart_1552FC
+ msgbox PetalburgCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x1552f9, 0x3
+
+PetalburgCity_Mart_Pokemart_1552FC:: @ 81552FC
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_REPEL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_ORANGE_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+PetalburgCity_Mart_EventScript_15531A:: @ 815531A
+ msgbox PetalburgCity_Mart_Text_17BFFD, 2
+ end
+
+PetalburgCity_Mart_EventScript_155323:: @ 8155323
+ msgbox PetalburgCity_Mart_Text_17C06C, 2
+ end
+
+PetalburgCity_Mart_EventScript_15532C:: @ 815532C
+ msgbox PetalburgCity_Mart_Text_17C0BC, 2
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.s b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..faf7b8792
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.s
@@ -0,0 +1,57 @@
+PetalburgCity_PokemonCenter_1F_MapScripts:: @ 8155204
+ map_script 3, PetalburgCity_PokemonCenter_1F_MapScript1_15520A
+ .byte 0
+
+PetalburgCity_PokemonCenter_1F_MapScript1_15520A:: @ 815520A
+ sethealplace 3
+ call PetalburgCity_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_155213:: @ 8155213
+ setvar 0x800b, 1
+ call PetalburgCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_155221:: @ 8155221
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BD30, 2
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_15522A:: @ 815522A
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BD92, 2
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_155233:: @ 8155233
+ lock
+ faceplayer
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BDC5, 4
+ specialval RESULT, 302
+ compare RESULT, 1
+ jumpeq PetalburgCity_PokemonCenter_1F_EventScript_15524F
+ release
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_15524F:: @ 815524F
+ compare 0x4023, 0
+ callif 1, PetalburgCity_PokemonCenter_1F_EventScript_155272
+ compare 0x4023, 1
+ callif 1, PetalburgCity_PokemonCenter_1F_EventScript_15527B
+ compare 0x4023, 2
+ callif 1, PetalburgCity_PokemonCenter_1F_EventScript_155284
+ release
+ end
+
+PetalburgCity_PokemonCenter_1F_EventScript_155272:: @ 8155272
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BE6C, 4
+ return
+
+PetalburgCity_PokemonCenter_1F_EventScript_15527B:: @ 815527B
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BEF1, 4
+ return
+
+PetalburgCity_PokemonCenter_1F_EventScript_155284:: @ 8155284
+ msgbox PetalburgCity_PokemonCenter_1F_Text_17BF73, 4
+ return
+
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_2F.s b/data/scripts/maps/PetalburgCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..e26624dd6
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+PetalburgCity_PokemonCenter_2F_MapScripts:: @ 815528D
+ map_script 2, PetalburgCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, PetalburgCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, PetalburgCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+PetalburgCity_PokemonCenter_2F_EventScript_15529D:: @ 815529D
+ call PetalburgCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+PetalburgCity_PokemonCenter_2F_EventScript_1552A3:: @ 81552A3
+ call PetalburgCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+PetalburgCity_PokemonCenter_2F_EventScript_1552A9:: @ 81552A9
+ call PetalburgCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/PetalburgCity_WallysHouse.s b/data/scripts/maps/PetalburgCity_WallysHouse.s
new file mode 100644
index 000000000..724e0da6f
--- /dev/null
+++ b/data/scripts/maps/PetalburgCity_WallysHouse.s
@@ -0,0 +1,69 @@
+PetalburgCity_WallysHouse_MapScripts:: @ 81543C3
+ .byte 0
+
+PetalburgCity_WallysHouse_EventScript_1543C4:: @ 81543C4
+ lock
+ faceplayer
+ checkflag 126
+ jumpeq PetalburgCity_WallysHouse_EventScript_1543F7
+ checkflag 122
+ jumpeq PetalburgCity_WallysHouse_EventScript_154427
+ checkflag 1217
+ jumpeq PetalburgCity_WallysHouse_EventScript_154406
+ checkflag 135
+ jumpeq PetalburgCity_WallysHouse_EventScript_15443B
+ msgbox PetalburgCity_WallysHouse_Text_179805, 4
+ setflag 135
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_1543F7:: @ 81543F7
+ checkflag 122
+ jumpeq PetalburgCity_WallysHouse_EventScript_154431
+ jump PetalburgCity_WallysHouse_EventScript_154406
+ end
+
+PetalburgCity_WallysHouse_EventScript_154406:: @ 8154406
+ msgbox PetalburgCity_WallysHouse_Text_179996, 4
+ giveitem ITEM_HM03
+ setflag 122
+ msgbox PetalburgCity_WallysHouse_Text_179B14, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_154427:: @ 8154427
+ msgbox PetalburgCity_WallysHouse_Text_179B5B, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_154431:: @ 8154431
+ msgbox PetalburgCity_WallysHouse_Text_179B92, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_15443B:: @ 815443B
+ msgbox PetalburgCity_WallysHouse_Text_179975, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_154445:: @ 8154445
+ lock
+ faceplayer
+ checkflag 122
+ jumpeq PetalburgCity_WallysHouse_EventScript_15446D
+ checkflag 1217
+ jumpeq PetalburgCity_WallysHouse_EventScript_154463
+ msgbox PetalburgCity_WallysHouse_Text_179C2C, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_154463:: @ 8154463
+ msgbox PetalburgCity_WallysHouse_Text_179CA1, 4
+ release
+ end
+
+PetalburgCity_WallysHouse_EventScript_15446D:: @ 815446D
+ msgbox PetalburgCity_WallysHouse_Text_179D12, 4
+ release
+ end
+
diff --git a/data/scripts/maps/PetalburgWoods.s b/data/scripts/maps/PetalburgWoods.s
new file mode 100644
index 000000000..4642642a4
--- /dev/null
+++ b/data/scripts/maps/PetalburgWoods.s
@@ -0,0 +1,284 @@
+PetalburgWoods_MapScripts:: @ 815CC9C
+ map_script 3, PetalburgWoods_MapScript1_15CCA2
+ .byte 0
+
+PetalburgWoods_MapScript1_15CCA2:: @ 815CCA2
+ call PetalburgWoods_EventScript_1A0196
+ end
+
+PetalburgWoods_EventScript_15CCA8:: @ 815CCA8
+ lockall
+ call PetalburgWoods_EventScript_15CDE6
+ move 4, PetalburgWoods_Movement_15CE89
+ waitmove 0
+ msgbox PetalburgWoods_Text_194D92, 4
+ closebutton
+ playmusic BGM_EVIL_TEAM, 0
+ move 3, PetalburgWoods_Movement_15CEC3
+ waitmove 0
+ msgbox PetalburgWoods_Text_194DED, 4
+ closebutton
+ move 3, PetalburgWoods_Movement_15CEB0
+ waitmove 0
+ move 4, PetalburgWoods_Movement_1A0841
+ waitmove 0
+ msgbox PetalburgWoods_Text_194E6B, 4
+ closebutton
+ move 4, PetalburgWoods_Movement_15CE9E
+ waitmove 0
+ msgbox PetalburgWoods_Text_194E9A, 4
+ move 3, PetalburgWoods_Movement_15CEC8
+ waitmove 0
+ msgbox PetalburgWoods_Text_194EE8, 4
+ trainerbattle 3, TRAINER_PETALBURG_WOODS_GRUNT, 0, PetalburgWoods_Text_194F83
+ move 3, PetalburgWoods_Movement_15CEB3
+ waitmove 0
+ call PetalburgWoods_EventScript_15CDFA
+ move 4, PetalburgWoods_Movement_15CE80
+ waitmove 0
+ jump PetalburgWoods_EventScript_15CE69
+ end
+
+PetalburgWoods_EventScript_15CD42:: @ 815CD42
+ lockall
+ call PetalburgWoods_EventScript_15CDE6
+ move 4, PetalburgWoods_Movement_15CE8E
+ waitmove 0
+ move 255, PetalburgWoods_Movement_1A083F
+ waitmove 0
+ msgbox PetalburgWoods_Text_194D92, 4
+ closebutton
+ playmusic BGM_EVIL_TEAM, 0
+ move 3, PetalburgWoods_Movement_15CEC3
+ waitmove 0
+ msgbox PetalburgWoods_Text_194DED, 4
+ closebutton
+ move 3, PetalburgWoods_Movement_15CEBF
+ waitmove 0
+ move 4, PetalburgWoods_Movement_1A0841
+ waitmove 0
+ msgbox PetalburgWoods_Text_194E6B, 4
+ closebutton
+ move 4, PetalburgWoods_Movement_15CEA4
+ waitmove 0
+ msgbox PetalburgWoods_Text_194E9A, 4
+ move 255, PetalburgWoods_Movement_1A0841
+ waitmove 0
+ msgbox PetalburgWoods_Text_194EE8, 4
+ trainerbattle 3, TRAINER_PETALBURG_WOODS_GRUNT, 0, PetalburgWoods_Text_194F83
+ move 3, PetalburgWoods_Movement_15CEB3
+ waitmove 0
+ call PetalburgWoods_EventScript_15CDFA
+ move 4, PetalburgWoods_Movement_15CE95
+ waitmove 0
+ jump PetalburgWoods_EventScript_15CE69
+ end
+
+PetalburgWoods_EventScript_15CDE6:: @ 815CDE6
+ move 4, PetalburgWoods_Movement_15CE73
+ waitmove 0
+ msgbox PetalburgWoods_Text_194D71, 4
+ closebutton
+ return
+
+PetalburgWoods_EventScript_15CDFA:: @ 815CDFA
+ msgbox PetalburgWoods_Text_194FA4, 4
+ closebutton
+ move 3, PetalburgWoods_Movement_15CEB7
+ waitmove 0
+ disappear 3
+ move 255, PetalburgWoods_Movement_1A0845
+ waitmove 0
+ msgbox PetalburgWoods_Text_19507E, 4
+ giveitem ITEM_GREAT_BALL
+ compare RESULT, 0
+ jumpeq PetalburgWoods_EventScript_15CE3F
+ jump PetalburgWoods_EventScript_15CE4D
+ end
+
+PetalburgWoods_EventScript_15CE3F:: @ 815CE3F
+ msgbox PetalburgWoods_Text_195182, 4
+ jump PetalburgWoods_EventScript_15CE4D
+ end
+
+PetalburgWoods_EventScript_15CE4D:: @ 815CE4D
+ msgbox PetalburgWoods_Text_19510A, 4
+ move 4, PetalburgWoods_Movement_15CEA8
+ waitmove 0
+ msgbox PetalburgWoods_Text_195153, 4
+ closebutton
+ return
+
+PetalburgWoods_EventScript_15CE69:: @ 815CE69
+ disappear 4
+ setvar 0x4098, 1
+ releaseall
+ end
+
+PetalburgWoods_Movement_15CE73:: @ 815CE73
+ step_01
+ step_14
+ step_03
+ step_14
+ step_02
+ step_14
+ step_00
+ step_14
+ step_03
+ step_14
+ step_01
+ step_14
+ step_end
+
+PetalburgWoods_Movement_15CE80:: @ 815CE80
+ step_18
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+PetalburgWoods_Movement_15CE89:: @ 815CE89
+ step_14
+ step_3e
+ step_down
+ step_down
+ step_end
+
+PetalburgWoods_Movement_15CE8E:: @ 815CE8E
+ step_14
+ step_3e
+ step_down
+ step_down
+ step_down
+ step_28
+ step_end
+
+PetalburgWoods_Movement_15CE95:: @ 815CE95
+ step_17
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+PetalburgWoods_Movement_15CE9E:: @ 815CE9E
+ step_18
+ step_15
+ step_15
+ step_17
+ step_26
+ step_end
+
+PetalburgWoods_Movement_15CEA4:: @ 815CEA4
+ step_15
+ step_18
+ step_26
+ step_end
+
+PetalburgWoods_Movement_15CEA8:: @ 815CEA8
+ step_25
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_01
+ step_end
+
+PetalburgWoods_Movement_15CEB0:: @ 815CEB0
+ step_15
+ step_15
+ step_end
+
+PetalburgWoods_Movement_15CEB3:: @ 815CEB3
+ step_40
+ step_up
+ step_41
+ step_end
+
+PetalburgWoods_Movement_15CEB7:: @ 815CEB7
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_14
+ step_14
+ step_end
+
+PetalburgWoods_Movement_15CEBF:: @ 815CEBF
+ step_15
+ step_15
+ step_15
+ step_end
+
+PetalburgWoods_Movement_15CEC3:: @ 815CEC3
+ step_down
+ step_down
+ step_14
+ step_14
+ step_end
+
+PetalburgWoods_Movement_15CEC8:: @ 815CEC8
+ step_down
+ step_end
+
+PetalburgWoods_EventScript_15CECA:: @ 815CECA
+ msgbox PetalburgWoods_Text_1953AC, 2
+ end
+
+PetalburgWoods_EventScript_15CED3:: @ 815CED3
+ msgbox PetalburgWoods_Text_19542B, 2
+ end
+
+PetalburgWoods_EventScript_15CEDC:: @ 815CEDC
+ lock
+ faceplayer
+ checkflag 297
+ jumpeq PetalburgWoods_EventScript_15CF0B
+ msgbox PetalburgWoods_Text_19549E, 4
+ giveitem ITEM_MIRACLE_SEED
+ compare RESULT, 0
+ jumpeq PetalburgWoods_EventScript_1A029B
+ setflag 297
+ release
+ end
+
+PetalburgWoods_EventScript_15CF0B:: @ 815CF0B
+ msgbox PetalburgWoods_Text_195503, 4
+ release
+ end
+
+PetalburgWoods_EventScript_15CF15:: @ 815CF15
+ msgbox PetalburgWoods_Text_1955B0, 3
+ end
+
+PetalburgWoods_EventScript_15CF1E:: @ 815CF1E
+ msgbox PetalburgWoods_Text_1956A6, 3
+ end
+
+PetalburgWoods_EventScript_15CF27:: @ 815CF27
+ trainerbattle 0, 616, 0, PetalburgWoods_Text_1951BE, PetalburgWoods_Text_195202
+ msgbox PetalburgWoods_Text_195232, 6
+ end
+
+PetalburgWoods_EventScript_15CF3E:: @ 815CF3E
+ trainerbattle 0, 621, 0, PetalburgWoods_Text_19526A, PetalburgWoods_Text_1952AE
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq PetalburgWoods_EventScript_15CF65
+ msgbox PetalburgWoods_Text_1952CC, 6
+ end
+
+PetalburgWoods_EventScript_15CF65:: @ 815CF65
+ trainerbattle 5, 621, 0, PetalburgWoods_Text_195306, PetalburgWoods_Text_195338
+ msgbox PetalburgWoods_Text_195356, 6
+ end
+
diff --git a/data/scripts/maps/RecordCorner.s b/data/scripts/maps/RecordCorner.s
new file mode 100644
index 000000000..60ea39284
--- /dev/null
+++ b/data/scripts/maps/RecordCorner.s
@@ -0,0 +1,3 @@
+RecordCorner_MapScripts:: @ 815F57E
+ .byte 0
+
diff --git a/data/scripts/maps/Route101.s b/data/scripts/maps/Route101.s
new file mode 100644
index 000000000..a44d0ffd3
--- /dev/null
+++ b/data/scripts/maps/Route101.s
@@ -0,0 +1,236 @@
+Route101_MapScripts:: @ 814E924
+ map_script 3, Route101_MapScript1_14E92F
+ map_script 2, Route101_MapScript2_14E935
+ .byte 0
+
+Route101_MapScript1_14E92F:: @ 814E92F
+ call Route101_EventScript_1A02F4
+ end
+
+Route101_MapScript2_14E935:: @ 814E935
+ map_script_2 0x4060, 0, Route101_EventScript_14E93F
+ .2byte 0
+
+Route101_EventScript_14E93F:: @ 814E93F
+ setflag 0x4000
+ setvar 0x4060, 1
+ end
+
+Route101_EventScript_14E948:: @ 814E948
+ lockall
+ playmusic 410, 1
+ msgbox Route101_Text_16D10E, 4
+ closebutton
+ movesprite 2, 0, 15
+ movesprite 4, 0, 16
+ move 255, Route101_Movement_14EA2C
+ move 2, Route101_Movement_14EA50
+ move 4, Route101_Movement_14EA1F
+ waitmove 0
+ move 4, Route101_Movement_14EA00
+ move 2, Route101_Movement_14EA31
+ waitmove 0
+ move 2, Route101_Movement_1A0843
+ waitmove 0
+ move 4, Route101_Movement_14EA27
+ move 2, Route101_Movement_14EA58
+ waitmove 0
+ msgbox Route101_Text_16D119, 4
+ closebutton
+ setvar 0x4060, 2
+ releaseall
+ end
+
+Route101_EventScript_14E9B8:: @ 814E9B8
+ lockall
+ msgbox Route101_Text_16D15E, 4
+ closebutton
+ move 255, Route101_Movement_14E9FA
+ waitmove 0
+ releaseall
+ end
+
+Route101_EventScript_14E9CE:: @ 814E9CE
+ lockall
+ msgbox Route101_Text_16D15E, 4
+ closebutton
+ move 255, Route101_Movement_14E9FC
+ waitmove 0
+ releaseall
+ end
+
+Route101_EventScript_14E9E4:: @ 814E9E4
+ lockall
+ msgbox Route101_Text_16D15E, 4
+ closebutton
+ move 255, Route101_Movement_14E9FE
+ waitmove 0
+ releaseall
+ end
+
+Route101_Movement_14E9FA:: @ 814E9FA
+ step_up
+ step_end
+
+Route101_Movement_14E9FC:: @ 814E9FC
+ step_right
+ step_end
+
+Route101_Movement_14E9FE:: @ 814E9FE
+ step_down
+ step_end
+
+Route101_Movement_14EA00:: @ 814EA00
+ step_16
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_end
+
+Route101_Movement_14EA1F:: @ 814EA1F
+ step_16
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_end
+
+ .incbin "baserom.gba", 0x14ea26, 0x1
+
+Route101_Movement_14EA27:: @ 814EA27
+ step_23
+ step_23
+ step_23
+ step_23
+ step_end
+
+Route101_Movement_14EA2C:: @ 814EA2C
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route101_Movement_14EA31:: @ 814EA31
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_18
+ step_18
+ step_18
+ step_15
+ step_15
+ step_17
+ step_17
+ step_17
+ step_end
+
+Route101_Movement_14EA50:: @ 814EA50
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_16
+ step_end
+
+ .incbin "baserom.gba", 0x14ea57, 0x1
+
+Route101_Movement_14EA58:: @ 814EA58
+ step_24
+ step_24
+ step_24
+ step_24
+ step_end
+
+ .incbin "baserom.gba", 0x14ea5d, 0x7
+
+Route101_EventScript_14EA64:: @ 814EA64
+ msgbox Route101_Text_16D25E, 2
+ end
+
+Route101_EventScript_14EA6D:: @ 814EA6D
+ msgbox Route101_Text_16D2CB, 2
+ end
+
+Route101_EventScript_14EA76:: @ 814EA76
+ msgbox Route101_Text_16D349, 3
+ end
+
+Route101_EventScript_14EA7F:: @ 814EA7F
+ lock
+ faceplayer
+ setflag 2048
+ setflag 82
+ fadescreen 1
+ disappear 4
+ movesprite 255, 6, 13
+ move 255, Route101_Movement_1A083F
+ waitmove 0
+ special 156
+ waitstate
+ move 2, Route101_Movement_14EAD7
+ waitmove 0
+ msgbox Route101_Text_16D191, 4
+ special 0
+ setflag 720
+ clearflag 721
+ setflag 700
+ setvar 0x4084, 2
+ setvar 0x4060, 3
+ clearflag 0x4000
+ warp LittlerootTown_ProfessorBirchsLab, 255, 6, 5
+ waitstate
+ release
+ end
+
+Route101_Movement_14EAD7:: @ 814EAD7
+ step_right
+ step_end
+
diff --git a/data/scripts/maps/Route102.s b/data/scripts/maps/Route102.s
new file mode 100644
index 000000000..09ce6f806
--- /dev/null
+++ b/data/scripts/maps/Route102.s
@@ -0,0 +1,47 @@
+Route102_MapScripts:: @ 814EAD9
+ .byte 0
+
+Route102_EventScript_14EADA:: @ 814EADA
+ msgbox Route102_Text_16D431, 2
+ end
+
+Route102_EventScript_14EAE3:: @ 814EAE3
+ msgbox Route102_Text_16D547, 3
+ end
+
+Route102_EventScript_14EAEC:: @ 814EAEC
+ msgbox Route102_Text_16D55F, 3
+ end
+
+Route102_EventScript_14EAF5:: @ 814EAF5
+ msgbox Route102_Text_16D51A, 2
+ end
+
+Route102_EventScript_14EAFE:: @ 814EAFE
+ trainerbattle 0, 318, 0, Route102_Text_1B79C3, Route102_Text_1B7A2C
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route102_EventScript_14EB25
+ msgbox Route102_Text_1B7A60, 6
+ end
+
+Route102_EventScript_14EB25:: @ 814EB25
+ trainerbattle 5, 318, 0, Route102_Text_1B7A9F, Route102_Text_1B7AFD
+ msgbox Route102_Text_1B7B2F, 6
+ end
+
+Route102_EventScript_14EB3C:: @ 814EB3C
+ trainerbattle 0, 615, 0, Route102_Text_1B7C05, Route102_Text_1B7C40
+ msgbox Route102_Text_1B7C52, 6
+ end
+
+Route102_EventScript_14EB53:: @ 814EB53
+ trainerbattle 0, 603, 0, Route102_Text_1B7C97, Route102_Text_1B7CEC
+ msgbox Route102_Text_1B7D11, 6
+ end
+
+Route102_EventScript_14EB6A:: @ 814EB6A
+ trainerbattle 0, 333, 0, Route102_Text_1B7B68, Route102_Text_1B7B9D
+ msgbox Route102_Text_1B7BD0, 6
+ end
+
diff --git a/data/scripts/maps/Route103.s b/data/scripts/maps/Route103.s
new file mode 100644
index 000000000..ad745ea37
--- /dev/null
+++ b/data/scripts/maps/Route103.s
@@ -0,0 +1,217 @@
+Route103_MapScripts:: @ 814EB81
+ map_script 3, Route103_MapScript1_14EB87
+ .byte 0
+
+Route103_MapScript1_14EB87:: @ 814EB87
+ call Route103_EventScript_1A014E
+ call Route103_EventScript_1A02F4
+ end
+
+Route103_EventScript_14EB92:: @ 814EB92
+ lockall
+ checkgender
+ compare RESULT, 0
+ jumpeq Route103_EventScript_14EBAB
+ compare RESULT, 1
+ jumpeq Route103_EventScript_14EC04
+ end
+
+Route103_EventScript_14EBAB:: @ 814EBAB
+ msgbox Route103_Text_16D57A, 4
+ playmusic 415, 1
+ move 2, Route103_Movement_1A0839
+ waitmove 0
+ move 2, Route103_Movement_1A0833
+ waitmove 0
+ move 2, Route103_Movement_1A0835
+ waitmove 0
+ msgbox Route103_Text_16D5B6, 4
+ switch 0x4023
+ case 0, Route103_EventScript_14EC5D
+ case 1, Route103_EventScript_14EC6D
+ case 2, Route103_EventScript_14EC7D
+ end
+
+Route103_EventScript_14EC04:: @ 814EC04
+ msgbox Route103_Text_16D762, 4
+ playmusic 421, 1
+ move 2, Route103_Movement_1A0839
+ waitmove 0
+ move 2, Route103_Movement_1A0833
+ waitmove 0
+ move 2, Route103_Movement_1A0835
+ waitmove 0
+ msgbox Route103_Text_16D7A9, 4
+ switch 0x4023
+ case 0, Route103_EventScript_14EC8D
+ case 1, Route103_EventScript_14EC9D
+ case 2, Route103_EventScript_14ECAD
+ end
+
+Route103_EventScript_14EC5D:: @ 814EC5D
+ trainerbattle 3, 532, 0, Route103_Text_16D65B
+ jump Route103_EventScript_14ECBD
+ end
+
+Route103_EventScript_14EC6D:: @ 814EC6D
+ trainerbattle 3, 535, 0, Route103_Text_16D65B
+ jump Route103_EventScript_14ECBD
+ end
+
+Route103_EventScript_14EC7D:: @ 814EC7D
+ trainerbattle 3, 529, 0, Route103_Text_16D65B
+ jump Route103_EventScript_14ECBD
+ end
+
+Route103_EventScript_14EC8D:: @ 814EC8D
+ trainerbattle 3, 523, 0, Route103_Text_16D836
+ jump Route103_EventScript_14ECCB
+ end
+
+Route103_EventScript_14EC9D:: @ 814EC9D
+ trainerbattle 3, 526, 0, Route103_Text_16D836
+ jump Route103_EventScript_14ECCB
+ end
+
+Route103_EventScript_14ECAD:: @ 814ECAD
+ trainerbattle 3, 520, 0, Route103_Text_16D836
+ jump Route103_EventScript_14ECCB
+ end
+
+Route103_EventScript_14ECBD:: @ 814ECBD
+ msgbox Route103_Text_16D688, 4
+ jump Route103_EventScript_14ECD9
+ end
+
+Route103_EventScript_14ECCB:: @ 814ECCB
+ msgbox Route103_Text_16D856, 4
+ jump Route103_EventScript_14ECD9
+ end
+
+Route103_EventScript_14ECD9:: @ 814ECD9
+ closebutton
+ switch FACING
+ case 1, Route103_EventScript_14ED29
+ case 2, Route103_EventScript_14ED0C
+ case 3, Route103_EventScript_14ED29
+ case 4, Route103_EventScript_14ED29
+ end
+
+Route103_EventScript_14ED0C:: @ 814ED0C
+ move 2, Route103_Movement_14ED67
+ waitmove 0
+ playsfx 10
+ move 2, Route103_Movement_14ED6B
+ waitmove 0
+ jump Route103_EventScript_14ED46
+ end
+
+Route103_EventScript_14ED29:: @ 814ED29
+ move 2, Route103_Movement_14ED71
+ waitmove 0
+ playsfx 10
+ move 2, Route103_Movement_14ED74
+ waitmove 0
+ jump Route103_EventScript_14ED46
+ end
+
+Route103_EventScript_14ED46:: @ 814ED46
+ disappear 2
+ setvar 0x4062, 1
+ setvar 0x4084, 4
+ clearflag 889
+ setflag 130
+ setvar 0x40c7, 1
+ clearflag 979
+ playmusicbattle 0
+ fadedefault
+ releaseall
+ end
+
+Route103_Movement_14ED67:: @ 814ED67
+ step_left
+ step_down
+ step_down
+ step_end
+
+Route103_Movement_14ED6B:: @ 814ED6B
+ fast_step_down
+ step_14
+ step_down
+ step_down
+ step_down
+ step_end
+
+Route103_Movement_14ED71:: @ 814ED71
+ step_down
+ step_down
+ step_end
+
+Route103_Movement_14ED74:: @ 814ED74
+ fast_step_down
+ step_14
+ step_down
+ step_down
+ step_end
+
+Route103_EventScript_14ED79:: @ 814ED79
+ msgbox Route103_Text_16D950, 2
+ end
+
+Route103_EventScript_14ED82:: @ 814ED82
+ msgbox Route103_Text_16D996, 2
+ end
+
+Route103_EventScript_14ED8B:: @ 814ED8B
+ msgbox Route103_Text_16D9FB, 3
+ end
+
+Route103_EventScript_14ED94:: @ 814ED94
+ trainerbattle 0, 36, 0, Route103_Text_1B7D55, Route103_Text_1B7D8B
+ msgbox Route103_Text_1B7DB2, 6
+ end
+
+Route103_EventScript_14EDAB:: @ 814EDAB
+ trainerbattle 4, 481, 0, Route103_Text_1B7DF7, Route103_Text_1B7E3B, Route103_Text_1B7EAC
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route103_EventScript_14EDD6
+ msgbox Route103_Text_1B7E50, 6
+ end
+
+Route103_EventScript_14EDD6:: @ 814EDD6
+ trainerbattle 7, 481, 0, Route103_Text_1B7FE7, Route103_Text_1B802B, Route103_Text_1B80AF
+ msgbox Route103_Text_1B8053, 6
+ end
+
+Route103_EventScript_14EDF1:: @ 814EDF1
+ trainerbattle 4, 481, 0, Route103_Text_1B7EFB, Route103_Text_1B7F20, Route103_Text_1B7F8E
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route103_EventScript_14EE1C
+ msgbox Route103_Text_1B7F40, 6
+ end
+
+Route103_EventScript_14EE1C:: @ 814EE1C
+ trainerbattle 7, 481, 0, Route103_Text_1B80FE, Route103_Text_1B8123, Route103_Text_1B81A1
+ msgbox Route103_Text_1B814D, 6
+ end
+
+Route103_EventScript_14EE37:: @ 814EE37
+ trainerbattle 0, 336, 0, Route103_Text_1B81FA, Route103_Text_1B8258
+ msgbox Route103_Text_1B8281, 6
+ end
+
+Route103_EventScript_14EE4E:: @ 814EE4E
+ trainerbattle 0, 293, 0, Route103_Text_1B82A9, Route103_Text_1B82EC
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route103_EventScript_14EE75
+ msgbox Route103_Text_1B830D, 6
+ end
+
+Route103_EventScript_14EE75:: @ 814EE75
+ trainerbattle 5, 293, 0, Route103_Text_1B8349, Route103_Text_1B838C
+ msgbox Route103_Text_1B83A4, 6
+ end
+
diff --git a/data/scripts/maps/Route104.s b/data/scripts/maps/Route104.s
new file mode 100644
index 000000000..624646d34
--- /dev/null
+++ b/data/scripts/maps/Route104.s
@@ -0,0 +1,462 @@
+Route104_MapScripts:: @ 814EE8C
+ map_script 2, Route104_MapScript2_14EE97
+ map_script 3, Route104_MapScript1_14EEA8
+ .byte 0
+
+Route104_MapScript2_14EE97:: @ 814EE97
+ map_script_2 0x408e, 1, Route104_EventScript_14EEA1
+ .2byte 0
+
+Route104_EventScript_14EEA1:: @ 814EEA1
+ lockall
+ jump Route104_EventScript_14EFD5
+ end
+
+Route104_MapScript1_14EEA8:: @ 814EEA8
+ call Route104_EventScript_14EEAE
+ end
+
+Route104_EventScript_14EEAE:: @ 814EEAE
+ checkflag 127
+ jumpif 0, Route104_EventScript_14EEC4
+ checkflag 2057
+ jumpif 0, Route104_EventScript_14EEC4
+ clearflag 906
+ return
+
+Route104_EventScript_14EEC4:: @ 814EEC4
+ setflag 906
+ return
+
+Route104_EventScript_14EEC8:: @ 814EEC8
+ lock
+ faceplayer
+ checkflag 246
+ jumpeq Route104_EventScript_14EEFF
+ msgbox Route104_Text_1C55B9, 4
+ giveitem ITEM_CHESTO_BERRY
+ compare RESULT, 0
+ jumpeq Route104_EventScript_1A029B
+ setflag 246
+ msgbox Route104_Text_1C5665, 4
+ release
+ end
+
+Route104_EventScript_14EEFF:: @ 814EEFF
+ msgbox Route104_Text_1C5665, 4
+ release
+ end
+
+Route104_EventScript_14EF09:: @ 814EF09
+ lock
+ faceplayer
+ checkflag 279
+ jumpeq Route104_EventScript_14EF38
+ msgbox Route104_Text_16DD91, 4
+ giveitem ITEM_WHITE_HERB
+ compare RESULT, 0
+ jumpeq Route104_EventScript_1A029B
+ setflag 279
+ release
+ end
+
+Route104_EventScript_14EF38:: @ 814EF38
+ msgbox Route104_Text_16DE36, 4
+ release
+ end
+
+Route104_EventScript_14EF42:: @ 814EF42
+ msgbox Route104_Text_16DA13, 2
+ end
+
+Route104_EventScript_14EF4B:: @ 814EF4B
+ msgbox Route104_Text_16DA89, 3
+ end
+
+Route104_EventScript_14EF54:: @ 814EF54
+ msgbox Route104_Text_16DEB3, 3
+ end
+
+Route104_EventScript_14EF5D:: @ 814EF5D
+ msgbox Route104_Text_16DEC8, 3
+ end
+
+Route104_EventScript_14EF66:: @ 814EF66
+ msgbox Route104_Text_16DEE3, 3
+ end
+
+Route104_EventScript_14EF6F:: @ 814EF6F
+ msgbox Route104_Text_16DEFD, 3
+ end
+
+Route104_EventScript_14EF78:: @ 814EF78
+ msgbox Route104_Text_16DF16, 3
+ end
+
+Route104_EventScript_14EF81:: @ 814EF81
+ msgbox Route104_Text_16DAC9, 2
+ end
+
+Route104_EventScript_14EF8A:: @ 814EF8A
+ msgbox Route104_Text_16DB5C, 2
+ end
+
+Route104_EventScript_14EF93:: @ 814EF93
+ lock
+ faceplayer
+ checkflag 262
+ jumpeq Route104_EventScript_14EFC2
+ msgbox Route104_Text_16DC5F, 4
+ giveitem ITEM_TM09
+ compare RESULT, 0
+ jumpeq Route104_EventScript_1A029B
+ setflag 262
+ release
+ end
+
+Route104_EventScript_14EFC2:: @ 814EFC2
+ msgbox Route104_Text_16DD0E, 4
+ release
+ end
+
+Route104_EventScript_14EFCC:: @ 814EFCC
+ msgbox Route104_Text_16DBC9, 2
+ end
+
+Route104_EventScript_14EFD5:: @ 814EFD5
+ spritelevelup 8, 0, 19, 0
+ spritelevelup 255, 0, 19, 0
+ move 8, Route104_Movement_14F16C
+ waitmove 0
+ disappear 8
+ move 255, Route104_Movement_14F162
+ waitmove 0
+ spriteinvisible 255, 0, 19
+ call Route104_EventScript_1A02E7
+ move 7, Route104_Movement_14F09F
+ move 255, Route104_Movement_14F09F
+ waitmove 0
+ move 255, Route104_Movement_14F166
+ waitmove 0
+ call Route104_EventScript_1A02EF
+ spritevisible 255, 0, 11
+ move 255, Route104_Movement_14F168
+ waitmove 0
+ movespriteperm 2, 12, 8
+ reappear 2
+ spritelevelup 2, 0, 11, 0
+ clearflag 740
+ move 2, Route104_Movement_14F16F
+ waitmove 0
+ reappear 4
+ clearflag 743
+ call Route104_EventScript_1A02EF
+ setflag 742
+ spriteinvisible 7, 0, 19
+ copyvar 0x4096, 0x8008
+ restorespritelevel 255, 0, 19
+ restorespritelevel 2, 0, 11
+ moveoffscreen 2
+ setvar 0x408e, 0
+ checkflag 189
+ jumpif 0, Route104_EventScript_14F08B
+ checkflag 189
+ jumpeq Route104_EventScript_14F095
+ end
+
+Route104_EventScript_14F08B:: @ 814F08B
+ msgbox Route104_Text_16B347, 4
+ releaseall
+ end
+
+Route104_EventScript_14F095:: @ 814F095
+ msgbox Route104_Text_16B4B5, 4
+ releaseall
+ end
+
+Route104_Movement_14F09F:: @ 814F09F
+ step_down
+ step_down
+ step_down
+ step_down
+ step_15
+ step_15
+ step_15
+ step_15
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_15
+ step_15
+ step_15
+ step_15
+ step_18
+ step_18
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_18
+ step_18
+ step_15
+ step_15
+ step_15
+ step_15
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_15
+ step_15
+ step_15
+ step_15
+ step_18
+ step_18
+ step_18
+ step_18
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_30
+ step_18
+ step_18
+ step_18
+ step_18
+ step_right
+ step_right
+ step_down
+ step_down
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_15
+ step_down
+ step_down
+ step_end
+
+Route104_Movement_14F162:: @ 814F162
+ step_left
+ step_down
+ step_down
+ step_end
+
+Route104_Movement_14F166:: @ 814F166
+ step_down
+ step_end
+
+Route104_Movement_14F168:: @ 814F168
+ step_down
+ step_left
+ step_28
+ step_end
+
+Route104_Movement_14F16C:: @ 814F16C
+ step_down
+ step_down
+ step_end
+
+Route104_Movement_14F16F:: @ 814F16F
+ step_down
+ step_27
+ step_end
+
+Route104_EventScript_14F172:: @ 814F172
+ trainerbattle 0, 337, 0, Route104_Text_1B85EB, Route104_Text_1B8637
+ msgbox Route104_Text_1B8680, 6
+ end
+
+Route104_EventScript_14F189:: @ 814F189
+ trainerbattle 0, 319, 0, Route104_Text_1B86BE, Route104_Text_1B86E8
+ msgbox Route104_Text_1B871C, 6
+ end
+
+Route104_EventScript_14F1A0:: @ 814F1A0
+ trainerbattle 0, 604, 0, Route104_Text_1B8770, Route104_Text_1B87A7
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route104_EventScript_14F1C7
+ msgbox Route104_Text_1B87C3, 6
+ end
+
+Route104_EventScript_14F1C7:: @ 814F1C7
+ trainerbattle 5, 604, 0, Route104_Text_1B8839, Route104_Text_1B8852
+ msgbox Route104_Text_1B8872, 6
+ end
+
+Route104_EventScript_14F1DE:: @ 814F1DE
+ trainerbattle 0, 136, 0, Route104_Text_1B88D4, Route104_Text_1B8911
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route104_EventScript_14F205
+ msgbox Route104_Text_1B8925, 6
+ end
+
+Route104_EventScript_14F205:: @ 814F205
+ trainerbattle 5, 136, 0, Route104_Text_1B895E, Route104_Text_1B899E
+ msgbox Route104_Text_1B89C0, 6
+ end
+
+Route104_EventScript_14F21C:: @ 814F21C
+ trainerbattle 0, 114, 0, Route104_Text_1B8A24, Route104_Text_1B8A61
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route104_EventScript_14F243
+ msgbox Route104_Text_1B8A69, 6
+ end
+
+Route104_EventScript_14F243:: @ 814F243
+ trainerbattle 5, 114, 0, Route104_Text_1B8AA7, Route104_Text_1B8AD9
+ msgbox Route104_Text_1B8B02, 6
+ end
+
+Route104_EventScript_14F25A:: @ 814F25A
+ trainerbattle 4, 483, 0, Route104_Text_1B83E9, Route104_Text_1B8414, Route104_Text_1B845C
+ special 148
+ msgbox Route104_Text_1B842C, 4
+ release
+ end
+
+Route104_EventScript_14F279:: @ 814F279
+ trainerbattle 4, 483, 0, Route104_Text_1B84DB, Route104_Text_1B850D, Route104_Text_1B8577
+ special 148
+ msgbox Route104_Text_1B853B, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route104_MrBrineysHouse.s b/data/scripts/maps/Route104_MrBrineysHouse.s
new file mode 100644
index 000000000..592e58ce8
--- /dev/null
+++ b/data/scripts/maps/Route104_MrBrineysHouse.s
@@ -0,0 +1,100 @@
+Route104_MrBrineysHouse_MapScripts:: @ 815BCB2
+ map_script 3, Route104_MrBrineysHouse_MapScript1_15BCB8
+ .byte 0
+
+Route104_MrBrineysHouse_MapScript1_15BCB8:: @ 815BCB8
+ setflag 2109
+ compare 0x4090, 1
+ callif 1, Route104_MrBrineysHouse_EventScript_15BCD4
+ checkflag 188
+ callif 1, Route104_MrBrineysHouse_EventScript_15BCD0
+ end
+
+Route104_MrBrineysHouse_EventScript_15BCD0:: @ 815BCD0
+ setflag 814
+ return
+
+Route104_MrBrineysHouse_EventScript_15BCD4:: @ 815BCD4
+ movespriteperm 1, 9, 3
+ spritebehave 1, 50
+ movespriteperm 2, 9, 6
+ spritebehave 2, 51
+ return
+
+Route104_MrBrineysHouse_EventScript_15BCEB:: @ 815BCEB
+ lock
+ faceplayer
+ checkflag 147
+ callif 0, Route104_MrBrineysHouse_EventScript_15BD0E
+ checkflag 189
+ jumpif 0, Route104_MrBrineysHouse_EventScript_15BD65
+ checkflag 149
+ jumpif 0, Route104_MrBrineysHouse_EventScript_15BD7E
+ jump Route104_MrBrineysHouse_EventScript_15BD32
+ end
+
+Route104_MrBrineysHouse_EventScript_15BD0E:: @ 815BD0E
+ setflag 147
+ msgbox Route104_MrBrineysHouse_Text_191A82, 4
+ msgbox Route104_MrBrineysHouse_Text_191AAD, 5
+ compare RESULT, 0
+ jumpeq Route104_MrBrineysHouse_EventScript_15BD97
+ jump Route104_MrBrineysHouse_EventScript_15BDAB
+ end
+
+Route104_MrBrineysHouse_EventScript_15BD32:: @ 815BD32
+ message Route104_MrBrineysHouse_Text_191E80
+ waittext
+ multichoicedef 21, 8, 14, 1, 0
+ switch RESULT
+ case 0, Route104_MrBrineysHouse_EventScript_15BDAB
+ case 1, Route104_MrBrineysHouse_EventScript_15BDA1
+ case 127, Route104_MrBrineysHouse_EventScript_15BDA1
+ end
+
+Route104_MrBrineysHouse_EventScript_15BD65:: @ 815BD65
+ msgbox Route104_MrBrineysHouse_Text_191CC3, 5
+ compare RESULT, 0
+ jumpeq Route104_MrBrineysHouse_EventScript_15BD97
+ jump Route104_MrBrineysHouse_EventScript_15BDAB
+ end
+
+Route104_MrBrineysHouse_EventScript_15BD7E:: @ 815BD7E
+ msgbox Route104_MrBrineysHouse_Text_191DA6, 5
+ compare RESULT, 0
+ jumpeq Route104_MrBrineysHouse_EventScript_15BD97
+ jump Route104_MrBrineysHouse_EventScript_15BDAB
+ end
+
+Route104_MrBrineysHouse_EventScript_15BD97:: @ 815BD97
+ msgbox Route104_MrBrineysHouse_Text_191C57, 4
+ release
+ end
+
+Route104_MrBrineysHouse_EventScript_15BDA1:: @ 815BDA1
+ msgbox Route104_MrBrineysHouse_Text_191EDB, 4
+ release
+ end
+
+Route104_MrBrineysHouse_EventScript_15BDAB:: @ 815BDAB
+ msgbox Route104_MrBrineysHouse_Text_191BFD, 4
+ call Route104_MrBrineysHouse_EventScript_1A010C
+ setvar 0x408e, 1
+ clearflag 738
+ setflag 739
+ setflag 881
+ warp Route104, 255, 13, 51
+ waitstate
+ releaseall
+ end
+
+Route104_MrBrineysHouse_EventScript_15BDD1:: @ 815BDD1
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox Route104_MrBrineysHouse_Text_191FB9, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/Route104_PrettyPetalFlowerShop.s b/data/scripts/maps/Route104_PrettyPetalFlowerShop.s
new file mode 100644
index 000000000..18c4f85b7
--- /dev/null
+++ b/data/scripts/maps/Route104_PrettyPetalFlowerShop.s
@@ -0,0 +1,111 @@
+Route104_PrettyPetalFlowerShop_MapScripts:: @ 815BDE4
+ map_script 3, Route104_PrettyPetalFlowerShop_MapScript1_15BDEA
+ .byte 0
+
+Route104_PrettyPetalFlowerShop_MapScript1_15BDEA:: @ 815BDEA
+ setflag 2108
+ checkflag 127
+ jumpif 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
+ checkflag 2057
+ jumpif 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
+ setflag 1
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE03:: @ 815BE03
+ movespriteperm 1, 4, 6
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE0B:: @ 815BE0B
+ lock
+ faceplayer
+ checkflag 1
+ jumpeq Route104_PrettyPetalFlowerShop_EventScript_15BE7C
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5EC6, 4
+ checkflag 127
+ jumpeq Route104_PrettyPetalFlowerShop_EventScript_15BE4A
+ setflag 127
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5F48, 5
+ compare RESULT, 1
+ callif 1, Route104_PrettyPetalFlowerShop_EventScript_15BE6A
+ compare RESULT, 0
+ callif 1, Route104_PrettyPetalFlowerShop_EventScript_15BE73
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE4A:: @ 815BE4A
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5F1B, 5
+ compare RESULT, 1
+ callif 1, Route104_PrettyPetalFlowerShop_EventScript_15BE6A
+ compare RESULT, 0
+ callif 1, Route104_PrettyPetalFlowerShop_EventScript_15BE73
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE6A:: @ 815BE6A
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5F9D, 4
+ return
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE73:: @ 815BE73
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C6121, 4
+ return
+
+Route104_PrettyPetalFlowerShop_EventScript_15BE7C:: @ 815BE7C
+ message Route104_PrettyPetalFlowerShop_Text_1A0C42
+ waittext
+ pokemartbp Route104_PrettyPetalFlowerShop_Pokemart_15BE94
+ msgbox Route104_PrettyPetalFlowerShop_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15be91, 0x3
+
+Route104_PrettyPetalFlowerShop_Pokemart_15BE94:: @ 815BE94
+ .2byte ITEM_FULL_RESTORE
+ .2byte ITEM_MAX_POTION
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_FULL_HEAL
+ .2byte ITEM_REVIVE
+ .2byte ITEM_NONE
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BEA4:: @ 815BEA4
+ lock
+ faceplayer
+ checkflag 94
+ jumpif 0, Route104_PrettyPetalFlowerShop_EventScript_15BEB9
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C61E8, 4
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BEB9:: @ 815BEB9
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C6158, 4
+ giveitem ITEM_WAILMER_PAIL
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C61E8, 4
+ setflag 94
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BEDA:: @ 815BEDA
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2256
+ jumpeq Route104_PrettyPetalFlowerShop_EventScript_15BF1A
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C62DA, 4
+ random 8
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq Route104_PrettyPetalFlowerShop_EventScript_1A029B
+ setflag 2256
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C6335, 4
+ release
+ end
+
+Route104_PrettyPetalFlowerShop_EventScript_15BF1A:: @ 815BF1A
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C6335, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route104_Prototype.s b/data/scripts/maps/Route104_Prototype.s
new file mode 100644
index 000000000..71022f23f
--- /dev/null
+++ b/data/scripts/maps/Route104_Prototype.s
@@ -0,0 +1,113 @@
+Route104_Prototype_MapScripts:: @ 8160C4A
+ .byte 0
+
+Route104_Prototype_EventScript_160C4B:: @ 8160C4B
+ lock
+ faceplayer
+ checktrainerflag 116
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ checktrainerflag 117
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ checktrainerflag 485
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ checktrainerflag 486
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ checktrainerflag 633
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ checktrainerflag 634
+ jumpif 0, Route104_Prototype_EventScript_160C99
+ setflag 215
+ msgbox Route104_Prototype_Text_19B267, 4
+ checkflag 216
+ jumpeq Route104_Prototype_EventScript_160CFB
+ release
+ end
+
+Route104_Prototype_EventScript_160C99:: @ 8160C99
+ msgbox Route104_Prototype_Text_19B22E, 4
+ release
+ end
+
+Route104_Prototype_EventScript_160CA3:: @ 8160CA3
+ lock
+ faceplayer
+ checktrainerflag 116
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ checktrainerflag 117
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ checktrainerflag 485
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ checktrainerflag 486
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ checktrainerflag 633
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ checktrainerflag 634
+ jumpif 0, Route104_Prototype_EventScript_160CF1
+ setflag 216
+ msgbox Route104_Prototype_Text_19B2E9, 4
+ checkflag 215
+ jumpeq Route104_Prototype_EventScript_160CFB
+ release
+ end
+
+Route104_Prototype_EventScript_160CF1:: @ 8160CF1
+ msgbox Route104_Prototype_Text_19B2B6, 4
+ release
+ end
+
+Route104_Prototype_EventScript_160CFB:: @ 8160CFB
+ closebutton
+ pause 60
+ fadescreen 1
+ pause 60
+ special 271
+ waitstate
+ release
+ end
+
+Route104_Prototype_EventScript_160D0A:: @ 8160D0A
+ msgbox Route104_Prototype_Text_19B33B, 2
+ end
+
+Route104_Prototype_EventScript_160D13:: @ 8160D13
+ msgbox Route104_Prototype_Text_19B37F, 2
+ end
+
+Route104_Prototype_EventScript_160D1C:: @ 8160D1C
+ msgbox Route104_Prototype_Text_19B3DE, 3
+ end
+
+Route104_Prototype_EventScript_160D25:: @ 8160D25
+ msgbox Route104_Prototype_Text_19B3FF, 3
+ end
+
+Route104_Prototype_EventScript_160D2E:: @ 8160D2E
+ trainerbattle 0, 117, 0, Route104_Prototype_Text_19AD9B, Route104_Prototype_Text_19ADDA
+ msgbox Route104_Prototype_Text_19ADF7, 6
+ end
+
+Route104_Prototype_EventScript_160D45:: @ 8160D45
+ trainerbattle 4, 485, 0, Route104_Prototype_Text_19AE3E, Route104_Prototype_Text_19AE53, Route104_Prototype_Text_19AEA9
+ msgbox Route104_Prototype_Text_19AE6A, 6
+ end
+
+Route104_Prototype_EventScript_160D60:: @ 8160D60
+ trainerbattle 4, 486, 0, Route104_Prototype_Text_19B148, Route104_Prototype_Text_19B17D, Route104_Prototype_Text_19B1DD
+ msgbox Route104_Prototype_Text_19B18D, 6
+ end
+
+Route104_Prototype_EventScript_160D7B:: @ 8160D7B
+ trainerbattle 0, 634, 0, Route104_Prototype_Text_19AEFB, Route104_Prototype_Text_19AF3E
+ msgbox Route104_Prototype_Text_19AF56, 6
+ end
+
+Route104_Prototype_EventScript_160D92:: @ 8160D92
+ trainerbattle 0, 116, 0, Route104_Prototype_Text_19AF8A, Route104_Prototype_Text_19AFDB
+ msgbox Route104_Prototype_Text_19B00D, 6
+ end
+
+Route104_Prototype_EventScript_160DA9:: @ 8160DA9
+ trainerbattle 0, 633, 0, Route104_Prototype_Text_19B066, Route104_Prototype_Text_19B0D7
+ msgbox Route104_Prototype_Text_19B0EF, 6
+ end
+
diff --git a/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s b/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s
new file mode 100644
index 000000000..ce5355d8a
--- /dev/null
+++ b/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s
@@ -0,0 +1,7 @@
+Route104_PrototypePrettyPetalFlowerShop_MapScripts:: @ 8160DC0
+ .byte 0
+
+Route104_PrototypePrettyPetalFlowerShop_EventScript_160DC1:: @ 8160DC1
+ msgbox Route104_PrototypePrettyPetalFlowerShop_Text_19B436, 2
+ end
+
diff --git a/data/scripts/maps/Route105.s b/data/scripts/maps/Route105.s
new file mode 100644
index 000000000..391b31e34
--- /dev/null
+++ b/data/scripts/maps/Route105.s
@@ -0,0 +1,39 @@
+Route105_MapScripts:: @ 814F298
+ map_script 1, Route105_MapScript1_14F29E
+ .byte 0
+
+Route105_MapScript1_14F29E:: @ 814F29E
+ checkflag 228
+ callif 0, Route105_EventScript_14F2A8
+ end
+
+Route105_EventScript_14F2A8:: @ 814F2A8
+ setmaptile 9, 19, 124, 1
+ setmaptile 9, 20, 145, 1
+ return
+
+Route105_EventScript_14F2BB:: @ 814F2BB
+ trainerbattle 0, 46, 0, Route105_Text_1B8B40, Route105_Text_1B8B93
+ msgbox Route105_Text_1B8BDE, 6
+ end
+
+Route105_EventScript_14F2D2:: @ 814F2D2
+ trainerbattle 0, 151, 0, Route105_Text_1B8C28, Route105_Text_1B8C99
+ msgbox Route105_Text_1B8CA9, 6
+ end
+
+Route105_EventScript_14F2E9:: @ 814F2E9
+ trainerbattle 0, 152, 0, Route105_Text_1B8CEE, Route105_Text_1B8D23
+ msgbox Route105_Text_1B8D45, 6
+ end
+
+Route105_EventScript_14F300:: @ 814F300
+ trainerbattle 0, 441, 0, Route105_Text_1B8D99, Route105_Text_1B8DDD
+ msgbox Route105_Text_1B8DED, 6
+ end
+
+Route105_EventScript_14F317:: @ 814F317
+ trainerbattle 0, 442, 0, Route105_Text_1B8E66, Route105_Text_1B8EA0
+ msgbox Route105_Text_1B8EBD, 6
+ end
+
diff --git a/data/scripts/maps/Route106.s b/data/scripts/maps/Route106.s
new file mode 100644
index 000000000..c7c9820cd
--- /dev/null
+++ b/data/scripts/maps/Route106.s
@@ -0,0 +1,35 @@
+Route106_MapScripts:: @ 814F32E
+ .byte 0
+
+Route106_EventScript_14F32F:: @ 814F32F
+ msgbox Route106_Text_16E026, 3
+ end
+
+Route106_EventScript_14F338:: @ 814F338
+ trainerbattle 0, 153, 0, Route106_Text_1B913D, Route106_Text_1B917F
+ msgbox Route106_Text_1B918A, 6
+ end
+
+Route106_EventScript_14F34F:: @ 814F34F
+ trainerbattle 0, 443, 0, Route106_Text_1B91AC, Route106_Text_1B91F8
+ msgbox Route106_Text_1B9222, 6
+ end
+
+Route106_EventScript_14F366:: @ 814F366
+ trainerbattle 0, 339, 0, Route106_Text_1B8EF0, Route106_Text_1B8F25
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route106_EventScript_14F38D
+ msgbox Route106_Text_1B8F55, 6
+ end
+
+Route106_EventScript_14F38D:: @ 814F38D
+ trainerbattle 5, 339, 0, Route106_Text_1B8FAC, Route106_Text_1B8FF5
+ msgbox Route106_Text_1B9011, 6
+ end
+
+Route106_EventScript_14F3A4:: @ 814F3A4
+ trainerbattle 0, 340, 0, Route106_Text_1B9052, Route106_Text_1B90D3
+ msgbox Route106_Text_1B910A, 6
+ end
+
diff --git a/data/scripts/maps/Route107.s b/data/scripts/maps/Route107.s
new file mode 100644
index 000000000..c50eec6a1
--- /dev/null
+++ b/data/scripts/maps/Route107.s
@@ -0,0 +1,41 @@
+Route107_MapScripts:: @ 814F3BB
+ .byte 0
+
+Route107_EventScript_14F3BC:: @ 814F3BC
+ trainerbattle 0, 154, 0, Route107_Text_1B926B, Route107_Text_1B92B7
+ msgbox Route107_Text_1B92E7, 6
+ end
+
+Route107_EventScript_14F3D3:: @ 814F3D3
+ trainerbattle 0, 155, 0, Route107_Text_1B933A, Route107_Text_1B9365
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route107_EventScript_14F3FA
+ msgbox Route107_Text_1B938E, 6
+ end
+
+Route107_EventScript_14F3FA:: @ 814F3FA
+ trainerbattle 5, 155, 0, Route107_Text_1B93EB, Route107_Text_1B9429
+ msgbox Route107_Text_1B9477, 6
+ end
+
+Route107_EventScript_14F411:: @ 814F411
+ trainerbattle 0, 444, 0, Route107_Text_1B94C8, Route107_Text_1B94F2
+ msgbox Route107_Text_1B94FF, 6
+ end
+
+Route107_EventScript_14F428:: @ 814F428
+ trainerbattle 0, 445, 0, Route107_Text_1B9538, Route107_Text_1B956B
+ msgbox Route107_Text_1B9589, 6
+ end
+
+Route107_EventScript_14F43F:: @ 814F43F
+ trainerbattle 4, 692, 0, Route107_Text_1B95CB, Route107_Text_1B95FB, Route107_Text_1B9672
+ msgbox Route107_Text_1B9630, 6
+ end
+
+Route107_EventScript_14F45A:: @ 814F45A
+ trainerbattle 4, 692, 0, Route107_Text_1B96AB, Route107_Text_1B9707, Route107_Text_1B9788
+ msgbox Route107_Text_1B9735, 6
+ end
+
diff --git a/data/scripts/maps/Route108.s b/data/scripts/maps/Route108.s
new file mode 100644
index 000000000..70a852195
--- /dev/null
+++ b/data/scripts/maps/Route108.s
@@ -0,0 +1,23 @@
+Route108_MapScripts:: @ 814F475
+ .byte 0
+
+Route108_EventScript_14F476:: @ 814F476
+ trainerbattle 0, 156, 0, Route108_Text_1B97C3, Route108_Text_1B97EF
+ msgbox Route108_Text_1B9823, 6
+ end
+
+Route108_EventScript_14F48D:: @ 814F48D
+ trainerbattle 0, 157, 0, Route108_Text_1B9864, Route108_Text_1B989F
+ msgbox Route108_Text_1B98BC, 6
+ end
+
+Route108_EventScript_14F4A4:: @ 814F4A4
+ trainerbattle 0, 446, 0, Route108_Text_1B98EC, Route108_Text_1B992C
+ msgbox Route108_Text_1B9935, 6
+ end
+
+Route108_EventScript_14F4BB:: @ 814F4BB
+ trainerbattle 0, 447, 0, Route108_Text_1B9986, Route108_Text_1B99BB
+ msgbox Route108_Text_1B99E9, 6
+ end
+
diff --git a/data/scripts/maps/Route109.s b/data/scripts/maps/Route109.s
new file mode 100644
index 000000000..39def243c
--- /dev/null
+++ b/data/scripts/maps/Route109.s
@@ -0,0 +1,447 @@
+Route109_MapScripts:: @ 814F4D2
+ .byte 0
+
+Route109_EventScript_14F4D3:: @ 814F4D3
+ call Route109_EventScript_1A010C
+ spritelevelup 2, 0, 24, 0
+ spritelevelup 255, 0, 24, 0
+ move 2, Route109_Movement_14F67B
+ waitmove 0
+ disappear 2
+ switch FACING
+ case 1, Route109_EventScript_14F518
+ case 3, Route109_EventScript_14F538
+ case 4, Route109_EventScript_14F528
+ end
+
+Route109_EventScript_14F518:: @ 814F518
+ move 255, Route109_Movement_14F66D
+ waitmove 0
+ jump Route109_EventScript_14F548
+ end
+
+Route109_EventScript_14F528:: @ 814F528
+ move 255, Route109_Movement_14F675
+ waitmove 0
+ jump Route109_EventScript_14F548
+ end
+
+Route109_EventScript_14F538:: @ 814F538
+ move 255, Route109_Movement_14F678
+ waitmove 0
+ jump Route109_EventScript_14F548
+ end
+
+Route109_EventScript_14F548:: @ 814F548
+ spriteinvisible 255, 0, 24
+ call Route109_EventScript_1A02E7
+ move 1, Route109_Movement_14F5BF
+ move 255, Route109_Movement_14F5BF
+ waitmove 0
+ call Route109_EventScript_1A02EF
+ spritevisible 255, 0, 11
+ move 255, Route109_Movement_14F670
+ waitmove 0
+ reappear 4
+ clearflag 743
+ movespriteperm 2, 12, 8
+ reappear 2
+ spritelevelup 2, 0, 11, 0
+ move 2, Route109_Movement_14F67D
+ waitmove 0
+ clearflag 740
+ setflag 744
+ spriteinvisible 1, 0, 24
+ msgbox Route109_Text_16B4B5, 4
+ closebutton
+ copyvar 0x4096, 0x8008
+ restorespritelevel 255, 0, 24
+ restorespritelevel 2, 0, 11
+ moveoffscreen 2
+ release
+ end
+
+Route109_Movement_14F5BF:: @ 814F5BF
+ step_25
+ step_down
+ step_down
+ step_15
+ step_15
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_2d
+ step_15
+ step_15
+ step_17
+ step_17
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_2f
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_left
+ step_left
+ step_25
+ step_end
+
+Route109_Movement_14F66D:: @ 814F66D
+ step_down
+ step_down
+ step_end
+
+Route109_Movement_14F670:: @ 814F670
+ step_down
+ step_down
+ step_left
+ step_28
+ step_end
+
+Route109_Movement_14F675:: @ 814F675
+ step_right
+ step_down
+ step_end
+
+Route109_Movement_14F678:: @ 814F678
+ step_left
+ step_down
+ step_end
+
+Route109_Movement_14F67B:: @ 814F67B
+ step_down
+ step_end
+
+Route109_Movement_14F67D:: @ 814F67D
+ step_down
+ step_27
+ step_end
+
+Route109_EventScript_14F680:: @ 814F680
+ lock
+ faceplayer
+ checkflag 149
+ jumpif 0, Route109_EventScript_14F691
+ jump Route109_EventScript_14F6AF
+ end
+
+Route109_EventScript_14F691:: @ 814F691
+ message Route109_Text_16E0F9
+ msgbox Route109_Text_16E0F9, 5
+ compare RESULT, 0
+ jumpeq Route109_EventScript_14F6F1
+ jump Route109_EventScript_14F6E2
+ end
+
+Route109_EventScript_14F6AF:: @ 814F6AF
+ message Route109_Text_16E26A
+ waittext
+ multichoicedef 21, 8, 14, 1, 0
+ switch RESULT
+ case 0, Route109_EventScript_14F6E2
+ case 1, Route109_EventScript_14F6FB
+ case 127, Route109_EventScript_14F6FB
+ end
+
+Route109_EventScript_14F6E2:: @ 814F6E2
+ msgbox Route109_Text_16E159, 4
+ closebutton
+ jump Route109_EventScript_14F4D3
+ end
+
+Route109_EventScript_14F6F1:: @ 814F6F1
+ msgbox Route109_Text_16E1B1, 4
+ release
+ end
+
+Route109_EventScript_14F6FB:: @ 814F6FB
+ msgbox Route109_Text_16E2C5, 4
+ release
+ end
+
+Route109_EventScript_14F705:: @ 814F705
+ msgbox Route109_Text_16E307, 2
+ end
+
+Route109_EventScript_14F70E:: @ 814F70E
+ lock
+ faceplayer
+ msgbox Route109_Text_16E405, 4
+ closebutton
+ move LAST_TALKED, Route109_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route109_EventScript_14F725:: @ 814F725
+ lock
+ faceplayer
+ special 148
+ checkflag 280
+ jumpeq Route109_EventScript_14F762
+ msgbox Route109_Text_16E433, 4
+ giveitem ITEM_SOFT_SAND
+ compare RESULT, 0
+ jumpeq Route109_EventScript_1A029B
+ closebutton
+ move LAST_TALKED, Route109_Movement_1A083D
+ waitmove 0
+ setflag 280
+ release
+ end
+
+Route109_EventScript_14F762:: @ 814F762
+ msgbox Route109_Text_16E446, 4
+ move LAST_TALKED, Route109_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route109_EventScript_14F776:: @ 814F776
+ msgbox Route109_Text_16E35B, 2
+ end
+
+Route109_EventScript_14F77F:: @ 814F77F
+ msgbox Route109_Text_16E4D5, 2
+ end
+
+Route109_EventScript_14F788:: @ 814F788
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox Route109_Text_16E5CA, 4
+ waitpokecry
+ release
+ end
+
+Route109_EventScript_14F79B:: @ 814F79B
+ msgbox Route109_Text_16E5DC, 3
+ end
+
+Route109_EventScript_14F7A4:: @ 814F7A4
+ msgbox Route109_Text_16E62C, 3
+ end
+
+Route109_EventScript_14F7AD:: @ 814F7AD
+ trainerbattle 0, 158, 0, Route109_Text_1B9A1C, Route109_Text_1B9A59
+ msgbox Route109_Text_1B9A6D, 6
+ end
+
+Route109_EventScript_14F7C4:: @ 814F7C4
+ trainerbattle 0, 448, 0, Route109_Text_1B9AAD, Route109_Text_1B9AD9
+ msgbox Route109_Text_1B9AEB, 6
+ end
+
+Route109_EventScript_14F7DB:: @ 814F7DB
+ trainerbattle 0, 490, 0, Route109_Text_1B9B11, Route109_Text_1B9B57
+ msgbox Route109_Text_1B9B68, 6
+ end
+
+Route109_EventScript_14F7F2:: @ 814F7F2
+ trainerbattle 0, 491, 0, Route109_Text_1B9B91, Route109_Text_1B9BAE
+ msgbox Route109_Text_1B9BD3, 6
+ end
+
+Route109_EventScript_14F809:: @ 814F809
+ trainerbattle 0, 64, 0, Route109_Text_1B9C23, Route109_Text_1B9C65
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route109_EventScript_14F830
+ msgbox Route109_Text_1B9C6E, 6
+ end
+
+Route109_EventScript_14F830:: @ 814F830
+ trainerbattle 5, 64, 0, Route109_Text_1B9CB3, Route109_Text_1B9CEB
+ msgbox Route109_Text_1B9D10, 6
+ end
+
+Route109_EventScript_14F847:: @ 814F847
+ trainerbattle 0, 57, 0, Route109_Text_1B9D54, Route109_Text_1B9D87
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route109_EventScript_14F86E
+ msgbox Route109_Text_1B9D8E, 6
+ end
+
+Route109_EventScript_14F86E:: @ 814F86E
+ trainerbattle 5, 57, 0, Route109_Text_1B9DD8, Route109_Text_1B9E16
+ msgbox Route109_Text_1B9E1D, 6
+ end
+
+Route109_EventScript_14F885:: @ 814F885
+ trainerbattle 0, 58, 0, Route109_Text_1B9E60, Route109_Text_1B9EA1
+ msgbox Route109_Text_1B9ECA, 6
+ end
+
+Route109_EventScript_14F89C:: @ 814F89C
+ trainerbattle 0, 59, 0, Route109_Text_1B9F07, Route109_Text_1B9F31
+ msgbox Route109_Text_1B9F44, 6
+ end
+
+Route109_EventScript_14F8B3:: @ 814F8B3
+ trainerbattle 0, 345, 0, Route109_Text_1B9F65, Route109_Text_1B9F9C
+ msgbox Route109_Text_1B9FB7, 6
+ end
+
+Route109_EventScript_14F8CA:: @ 814F8CA
+ trainerbattle 4, 680, 0, Route109_Text_1B9FF6, Route109_Text_1BA052, Route109_Text_1BA0BF
+ msgbox Route109_Text_1BA069, 6
+ end
+
+Route109_EventScript_14F8E5:: @ 814F8E5
+ trainerbattle 4, 680, 0, Route109_Text_1BA114, Route109_Text_1BA15F, Route109_Text_1BA1D0
+ msgbox Route109_Text_1BA193, 6
+ end
+
diff --git a/data/scripts/maps/Route109_SeashoreHouse.s b/data/scripts/maps/Route109_SeashoreHouse.s
new file mode 100644
index 000000000..aa9d55919
--- /dev/null
+++ b/data/scripts/maps/Route109_SeashoreHouse.s
@@ -0,0 +1,110 @@
+Route109_SeashoreHouse_MapScripts:: @ 8160DCA
+ map_script 3, Route109_SeashoreHouse_MapScript1_160DD0
+ .byte 0
+
+Route109_SeashoreHouse_MapScript1_160DD0:: @ 8160DD0
+ setflag 2111
+ end
+
+Route109_SeashoreHouse_EventScript_160DD4:: @ 8160DD4
+ lock
+ faceplayer
+ checkflag 140
+ jumpeq Route109_SeashoreHouse_EventScript_160E36
+ checkflag 141
+ jumpeq Route109_SeashoreHouse_EventScript_160E08
+ checkflag 2
+ jumpeq Route109_SeashoreHouse_EventScript_160DFE
+ msgbox Route109_SeashoreHouse_Text_19B4D9, 4
+ setflag 2
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160DFE:: @ 8160DFE
+ msgbox Route109_SeashoreHouse_Text_19B5B9, 4
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160E08:: @ 8160E08
+ msgbox Route109_SeashoreHouse_Text_19B609, 4
+ giveitem ITEM_SODA_POP, 6
+ compare RESULT, 0
+ jumpeq Route109_SeashoreHouse_EventScript_160E2C
+ setflag 140
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160E2C:: @ 8160E2C
+ msgbox Route109_SeashoreHouse_Text_19B6BE, 4
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160E36:: @ 8160E36
+ showmoney 0, 0
+ snop
+ msgbox Route109_SeashoreHouse_Text_19B702, 5
+ compare RESULT, 1
+ jumpeq Route109_SeashoreHouse_EventScript_160E5A
+ msgbox Route109_SeashoreHouse_Text_19B773, 4
+ hidemoney 0, 0
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160E5A:: @ 8160E5A
+ checkmoney 0x12c, 0
+ compare RESULT, 0
+ jumpeq Route109_SeashoreHouse_EventScript_160E9E
+ checkitemspace ITEM_SODA_POP, 1
+ compare RESULT, 0
+ jumpeq Route109_SeashoreHouse_EventScript_160EAB
+ msgbox Route109_SeashoreHouse_Text_19B74C, 4
+ paymoney 0x12c, 0
+ updatemoney 0, 0
+ snop
+ giveitem ITEM_SODA_POP
+ hidemoney 0, 0
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160E9E:: @ 8160E9E
+ msgbox Route109_SeashoreHouse_Text_19B759, 4
+ hidemoney 0, 0
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160EAB:: @ 8160EAB
+ msgbox Route109_SeashoreHouse_Text_1A0CC2, 4
+ hidemoney 0, 0
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160EB8:: @ 8160EB8
+ trainerbattle 2, 493, 0, Route109_SeashoreHouse_Text_19B809, Route109_SeashoreHouse_Text_19B869, Route109_SeashoreHouse_EventScript_160F09
+ msgbox Route109_SeashoreHouse_Text_19B89F, 6
+ end
+
+Route109_SeashoreHouse_EventScript_160ED3:: @ 8160ED3
+ trainerbattle 2, 647, 0, Route109_SeashoreHouse_Text_19B8E5, Route109_SeashoreHouse_Text_19B949, Route109_SeashoreHouse_EventScript_160F09
+ msgbox Route109_SeashoreHouse_Text_19B955, 6
+ end
+
+Route109_SeashoreHouse_EventScript_160EEE:: @ 8160EEE
+ trainerbattle 2, 65, 0, Route109_SeashoreHouse_Text_19B988, Route109_SeashoreHouse_Text_19B9C7, Route109_SeashoreHouse_EventScript_160F09
+ msgbox Route109_SeashoreHouse_Text_19B9E5, 6
+ end
+
+Route109_SeashoreHouse_EventScript_160F09:: @ 8160F09
+ checktrainerflag 493
+ jumpif 0, Route109_SeashoreHouse_EventScript_160F29
+ checktrainerflag 647
+ jumpif 0, Route109_SeashoreHouse_EventScript_160F29
+ checktrainerflag 65
+ jumpif 0, Route109_SeashoreHouse_EventScript_160F29
+ setflag 141
+ release
+ end
+
+Route109_SeashoreHouse_EventScript_160F29:: @ 8160F29
+ release
+ end
+
diff --git a/data/scripts/maps/Route110.s b/data/scripts/maps/Route110.s
new file mode 100644
index 000000000..53b2c8172
--- /dev/null
+++ b/data/scripts/maps/Route110.s
@@ -0,0 +1,540 @@
+Route110_MapScripts:: @ 814F900
+ map_script 5, Route110_MapScript1_14F910
+ map_script 3, Route110_MapScript1_14F914
+ map_script 2, Route110_MapScript2_14F933
+ .byte 0
+
+Route110_MapScript1_14F910:: @ 814F910
+ special 229
+ end
+
+Route110_MapScript1_14F914:: @ 814F914
+ call Route110_EventScript_1A0196
+ call Route110_EventScript_1A014E
+ call Route110_EventScript_1A0172
+ compare 0x40a9, 1
+ callif 1, Route110_EventScript_14F92F
+ end
+
+Route110_EventScript_14F92F:: @ 814F92F
+ playmusicbattle 403
+ return
+
+Route110_MapScript2_14F933:: @ 814F933
+ map_script_2 0x40a9, 1, Route110_EventScript_14F93D
+ .2byte 0
+
+Route110_EventScript_14F93D:: @ 814F93D
+ special 226
+ setvar 0x40a9, 2
+ return
+
+Route110_EventScript_14F946:: @ 814F946
+ lock
+ faceplayer
+ msgbox Route110_Text_16E6C0, 4
+ move LAST_TALKED, Route110_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route110_EventScript_14F95C:: @ 814F95C
+ lock
+ faceplayer
+ msgbox Route110_Text_16E6F2, 4
+ move LAST_TALKED, Route110_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route110_EventScript_14F972:: @ 814F972
+ lock
+ faceplayer
+ msgbox Route110_Text_16E729, 4
+ move LAST_TALKED, Route110_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route110_EventScript_14F988:: @ 814F988
+ lock
+ faceplayer
+ msgbox Route110_Text_16E76A, 4
+ move LAST_TALKED, Route110_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route110_EventScript_14F99E:: @ 814F99E
+ msgbox Route110_Text_16EB22, 2
+ end
+
+Route110_EventScript_14F9A7:: @ 814F9A7
+ msgbox Route110_Text_16EB65, 2
+ end
+
+Route110_EventScript_14F9B0:: @ 814F9B0
+ msgbox Route110_Text_16EBC9, 2
+ end
+
+Route110_EventScript_14F9B9:: @ 814F9B9
+ msgbox Route110_Text_16EDC5, 2
+ end
+
+Route110_EventScript_14F9C2:: @ 814F9C2
+ msgbox Route110_Text_16EE30, 2
+ end
+
+Route110_EventScript_14F9CB:: @ 814F9CB
+ msgbox Route110_Text_16EE74, 2
+ end
+
+Route110_EventScript_14F9D4:: @ 814F9D4
+ msgbox Route110_Text_16EEF6, 2
+ end
+
+Route110_EventScript_14F9DD:: @ 814F9DD
+ msgbox Route110_Text_16F381, 3
+ end
+
+Route110_EventScript_14F9E6:: @ 814F9E6
+ msgbox Route110_Text_16F39C, 3
+ end
+
+Route110_EventScript_14F9EF:: @ 814F9EF
+ msgbox Route110_Text_16F3B1, 3
+ end
+
+Route110_EventScript_14F9F8:: @ 814F9F8
+ msgbox Route110_Text_16F3E9, 3
+ end
+
+Route110_EventScript_14FA01:: @ 814FA01
+ msgbox Route110_Text_16F3FF, 3
+ end
+
+Route110_EventScript_14FA0A:: @ 814FA0A
+ msgbox Route110_Text_16F40F, 3
+ end
+
+Route110_EventScript_14FA13:: @ 814FA13
+ msgbox Route110_Text_16F429, 3
+ end
+
+Route110_EventScript_14FA1C:: @ 814FA1C
+ msgbox Route110_Text_16F4AE, 3
+ end
+
+Route110_EventScript_14FA25:: @ 814FA25
+ msgbox Route110_Text_16F4F7, 3
+ end
+
+Route110_EventScript_14FA2E:: @ 814FA2E
+ lockall
+ specialval RESULT, 225
+ compare RESULT, 0
+ jumpeq Route110_EventScript_14FA49
+ msgbox Route110_Text_16F53A, 4
+ releaseall
+ end
+
+Route110_EventScript_14FA49:: @ 814FA49
+ msgbox Route110_Text_16F57C, 4
+ releaseall
+ end
+
+Route110_EventScript_14FA53:: @ 814FA53
+ lock
+ faceplayer
+ specialval RESULT, 227
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FA84
+ compare 0x40a9, 0
+ jumpeq Route110_EventScript_14FA7A
+ msgbox Route110_Text_16F26A, 4
+ release
+ end
+
+Route110_EventScript_14FA7A:: @ 814FA7A
+ msgbox Route110_Text_16F1D0, 4
+ release
+ end
+
+Route110_EventScript_14FA84:: @ 814FA84
+ msgbox Route110_Text_16F2C4, 4
+ release
+ end
+
+Route110_EventScript_14FA8E:: @ 814FA8E
+ trainerbattle 0, 232, 0, Route110_Text_1BA699, Route110_Text_1BA6D2
+ msgbox Route110_Text_1BA6F8, 6
+ end
+
+Route110_EventScript_14FAA5:: @ 814FAA5
+ trainerbattle 0, 243, 0, Route110_Text_1BA72D, Route110_Text_1BA759
+ msgbox Route110_Text_1BA76C, 6
+ end
+
+Route110_EventScript_14FABC:: @ 814FABC
+ trainerbattle 0, 512, 0, Route110_Text_1BA7D2, Route110_Text_1BA803
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FAE3
+ msgbox Route110_Text_1BA829, 6
+ end
+
+Route110_EventScript_14FAE3:: @ 814FAE3
+ trainerbattle 5, 512, 0, Route110_Text_1BA877, Route110_Text_1BA8CD
+ msgbox Route110_Text_1BA8E9, 6
+ end
+
+Route110_EventScript_14FAFA:: @ 814FAFA
+ trainerbattle 0, 341, 0, Route110_Text_1BA913, Route110_Text_1BA93C
+ msgbox Route110_Text_1BA94A, 6
+ end
+
+Route110_EventScript_14FB11:: @ 814FB11
+ trainerbattle 0, 351, 0, Route110_Text_1BA22C, Route110_Text_1BA264
+ msgbox Route110_Text_1BA27C, 6
+ end
+
+Route110_EventScript_14FB28:: @ 814FB28
+ trainerbattle 0, 352, 0, Route110_Text_1BA2D4, Route110_Text_1BA2FC
+ msgbox Route110_Text_1BA30C, 6
+ end
+
+Route110_EventScript_14FB3F:: @ 814FB3F
+ trainerbattle 0, 353, 0, Route110_Text_1BA352, Route110_Text_1BA379
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FB66
+ msgbox Route110_Text_1BA3A5, 6
+ end
+
+Route110_EventScript_14FB66:: @ 814FB66
+ trainerbattle 5, 353, 0, Route110_Text_1BA3EF, Route110_Text_1BA432
+ msgbox Route110_Text_1BA456, 6
+ end
+
+Route110_EventScript_14FB7D:: @ 814FB7D
+ trainerbattle 0, 359, 0, Route110_Text_1BA5FF, Route110_Text_1BA63C
+ msgbox Route110_Text_1BA65F, 6
+ end
+
+Route110_EventScript_14FB94:: @ 814FB94
+ trainerbattle 0, 358, 0, Route110_Text_1BA4A0, Route110_Text_1BA50F
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FBBB
+ msgbox Route110_Text_1BA52E, 6
+ end
+
+Route110_EventScript_14FBBB:: @ 814FBBB
+ trainerbattle 5, 358, 0, Route110_Text_1BA573, Route110_Text_1BA5A1
+ msgbox Route110_Text_1BA5C4, 6
+ end
+
+Route110_EventScript_14FBD2:: @ 814FBD2
+ trainerbattle 0, 302, 0, Route110_Text_1BA990, Route110_Text_1BA9D0
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FBF9
+ msgbox Route110_Text_1BA9E9, 6
+ end
+
+Route110_EventScript_14FBF9:: @ 814FBF9
+ trainerbattle 5, 302, 0, Route110_Text_1BAA2D, Route110_Text_1BAA76
+ msgbox Route110_Text_1BAA8F, 6
+ end
+
+Route110_EventScript_14FC10:: @ 814FC10
+ trainerbattle 0, 334, 0, Route110_Text_1BAAC3, Route110_Text_1BAAF7
+ msgbox Route110_Text_1BAB19, 6
+ end
+
+Route110_EventScript_14FC27:: @ 814FC27
+ lockall
+ move 21, Route110_Movement_1A0843
+ waitmove 0
+ call Route110_EventScript_14FC39
+ releaseall
+ end
+
+Route110_EventScript_14FC39:: @ 814FC39
+ special 228
+ msgbox Route110_Text_16EF65, 4
+ switch RESULT
+ case 10, Route110_EventScript_14FCC3
+ case 9, Route110_EventScript_14FCD1
+ case 8, Route110_EventScript_14FCD1
+ case 7, Route110_EventScript_14FCD1
+ case 6, Route110_EventScript_14FCDF
+ case 5, Route110_EventScript_14FCDF
+ case 4, Route110_EventScript_14FCDF
+ case 3, Route110_EventScript_14FCED
+ case 2, Route110_EventScript_14FCED
+ case 1, Route110_EventScript_14FCED
+ case 0, Route110_EventScript_14FCFB
+ end
+
+Route110_EventScript_14FCC3:: @ 814FCC3
+ msgbox Route110_Text_16EF9F, 4
+ jump Route110_EventScript_14FD09
+ end
+
+Route110_EventScript_14FCD1:: @ 814FCD1
+ msgbox Route110_Text_16F012, 4
+ jump Route110_EventScript_14FD09
+ end
+
+Route110_EventScript_14FCDF:: @ 814FCDF
+ msgbox Route110_Text_16F069, 4
+ jump Route110_EventScript_14FD09
+ end
+
+Route110_EventScript_14FCED:: @ 814FCED
+ msgbox Route110_Text_16F0D0, 4
+ jump Route110_EventScript_14FD09
+ end
+
+Route110_EventScript_14FCFB:: @ 814FCFB
+ msgbox Route110_Text_16F139, 4
+ jump Route110_EventScript_14FD09
+ end
+
+Route110_EventScript_14FD09:: @ 814FD09
+ setvar 0x40a9, 3
+ playmusicbattle 0
+ fadedefault
+ return
+
+Route110_EventScript_14FD13:: @ 814FD13
+ setvar 0x8008, 1
+ jump Route110_EventScript_14FD34
+ end
+
+Route110_EventScript_14FD1E:: @ 814FD1E
+ setvar 0x8008, 2
+ jump Route110_EventScript_14FD34
+ end
+
+Route110_EventScript_14FD29:: @ 814FD29
+ setvar 0x8008, 3
+ jump Route110_EventScript_14FD34
+ end
+
+Route110_EventScript_14FD34:: @ 814FD34
+ lockall
+ checkgender
+ compare RESULT, 0
+ callif 1, Route110_EventScript_14FDA7
+ compare RESULT, 1
+ callif 1, Route110_EventScript_14FDAC
+ move 28, Route110_Movement_1A0845
+ waitmove 0
+ move 28, Route110_Movement_1A0833
+ waitmove 0
+ move 28, Route110_Movement_1A0835
+ waitmove 0
+ pause 30
+ compare 0x8008, 1
+ callif 1, Route110_EventScript_14FF14
+ compare 0x8008, 2
+ callif 1, Route110_EventScript_14FF1F
+ compare 0x8008, 3
+ callif 1, Route110_EventScript_14FF2A
+ checkgender
+ compare RESULT, 0
+ jumpeq Route110_EventScript_14FDB1
+ compare RESULT, 1
+ jumpeq Route110_EventScript_14FE2B
+ releaseall
+ end
+
+Route110_EventScript_14FDA7:: @ 814FDA7
+ playmusic 415, 1
+ return
+
+Route110_EventScript_14FDAC:: @ 814FDAC
+ playmusic 421, 1
+ return
+
+Route110_EventScript_14FDB1:: @ 814FDB1
+ msgbox Route110_Text_16E7A1, 4
+ switch 0x4023
+ case 0, Route110_EventScript_14FDE0
+ case 1, Route110_EventScript_14FDF0
+ case 2, Route110_EventScript_14FE00
+ end
+
+Route110_EventScript_14FDE0:: @ 814FDE0
+ trainerbattle 3, 533, 0, Route110_Text_16E826
+ jump Route110_EventScript_14FE10
+ end
+
+Route110_EventScript_14FDF0:: @ 814FDF0
+ trainerbattle 3, 536, 0, Route110_Text_16E826
+ jump Route110_EventScript_14FE10
+ end
+
+Route110_EventScript_14FE00:: @ 814FE00
+ trainerbattle 3, 530, 0, Route110_Text_16E826
+ jump Route110_EventScript_14FE10
+ end
+
+Route110_EventScript_14FE10:: @ 814FE10
+ msgbox Route110_Text_16E84C, 4
+ call Route110_EventScript_14FEA5
+ msgbox Route110_Text_16E8B3, 4
+ jump Route110_EventScript_14FEB2
+ end
+
+Route110_EventScript_14FE2B:: @ 814FE2B
+ msgbox Route110_Text_16E99A, 4
+ switch 0x4023
+ case 0, Route110_EventScript_14FE5A
+ case 1, Route110_EventScript_14FE6A
+ case 2, Route110_EventScript_14FE7A
+ end
+
+Route110_EventScript_14FE5A:: @ 814FE5A
+ trainerbattle 3, 524, 0, Route110_Text_16EA0F
+ jump Route110_EventScript_14FE8A
+ end
+
+Route110_EventScript_14FE6A:: @ 814FE6A
+ trainerbattle 3, 527, 0, Route110_Text_16EA0F
+ jump Route110_EventScript_14FE8A
+ end
+
+Route110_EventScript_14FE7A:: @ 814FE7A
+ trainerbattle 3, 521, 0, Route110_Text_16EA0F
+ jump Route110_EventScript_14FE8A
+ end
+
+Route110_EventScript_14FE8A:: @ 814FE8A
+ msgbox Route110_Text_16EA2A, 4
+ call Route110_EventScript_14FEA5
+ msgbox Route110_Text_16EA7B, 4
+ jump Route110_EventScript_14FEB2
+ end
+
+Route110_EventScript_14FEA5:: @ 814FEA5
+ giveitem ITEM_ITEMFINDER
+ return
+
+Route110_EventScript_14FEB2:: @ 814FEB2
+ closebutton
+ compare 0x8008, 1
+ callif 1, Route110_EventScript_14FF56
+ compare 0x8008, 2
+ callif 1, Route110_EventScript_14FF5E
+ compare 0x8008, 3
+ callif 1, Route110_EventScript_14FF66
+ spritebehave 28, 10
+ spritebehave 29, 10
+ disappear 28
+ reappear 29
+ pause 45
+ compare 0x8008, 1
+ callif 1, Route110_EventScript_14FF35
+ compare 0x8008, 2
+ callif 1, Route110_EventScript_14FF40
+ compare 0x8008, 3
+ callif 1, Route110_EventScript_14FF4B
+ disappear 29
+ setvar 0x4069, 1
+ playmusicbattle 0
+ fadedefault
+ releaseall
+ end
+
+Route110_EventScript_14FF14:: @ 814FF14
+ move 28, Route110_Movement_14FF6E
+ waitmove 0
+ return
+
+Route110_EventScript_14FF1F:: @ 814FF1F
+ move 28, Route110_Movement_14FF72
+ waitmove 0
+ return
+
+Route110_EventScript_14FF2A:: @ 814FF2A
+ move 28, Route110_Movement_14FF74
+ waitmove 0
+ return
+
+Route110_EventScript_14FF35:: @ 814FF35
+ move 29, Route110_Movement_14FF78
+ waitmove 0
+ return
+
+Route110_EventScript_14FF40:: @ 814FF40
+ move 29, Route110_Movement_14FF80
+ waitmove 0
+ return
+
+Route110_EventScript_14FF4B:: @ 814FF4B
+ move 29, Route110_Movement_14FF89
+ waitmove 0
+ return
+
+Route110_EventScript_14FF56:: @ 814FF56
+ movespriteperm 29, 33, 55
+ return
+
+Route110_EventScript_14FF5E:: @ 814FF5E
+ movespriteperm 29, 34, 55
+ return
+
+Route110_EventScript_14FF66:: @ 814FF66
+ movespriteperm 29, 35, 55
+ return
+
+Route110_Movement_14FF6E:: @ 814FF6E
+ step_down
+ step_left
+ step_25
+ step_end
+
+Route110_Movement_14FF72:: @ 814FF72
+ step_down
+ step_end
+
+Route110_Movement_14FF74:: @ 814FF74
+ step_down
+ step_right
+ step_25
+ step_end
+
+Route110_Movement_14FF78:: @ 814FF78
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route110_Movement_14FF80:: @ 814FF80
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_15
+ step_end
+
+Route110_Movement_14FF89:: @ 814FF89
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s
new file mode 100644
index 000000000..ed5dd3cda
--- /dev/null
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s
@@ -0,0 +1,58 @@
+Route110_SeasideCyclingRoadNorthEntrance_MapScripts:: @ 81634C8
+ map_script 3, Route110_SeasideCyclingRoadNorthEntrance_MapScript1_1634CE
+ .byte 0
+
+Route110_SeasideCyclingRoadNorthEntrance_MapScript1_1634CE:: @ 81634CE
+ compare 0x40a9, 3
+ callif 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
+ compare 0x40a9, 2
+ callif 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
+ end
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5:: @ 81634E5
+ setvar 0x40a9, 1
+ return
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634EB:: @ 81634EB
+ lock
+ faceplayer
+ msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_19E406, 4
+ release
+ end
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634F7:: @ 81634F7
+ lockall
+ specialval RESULT, 227
+ compare RESULT, 2
+ callif 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_16351D
+ compare RESULT, 0
+ jumpeq Route110_SeasideCyclingRoadNorthEntrance_EventScript_163523
+ setflag 2091
+ setvar 0x4001, 1
+ releaseall
+ end
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_16351D:: @ 816351D
+ setvar 0x40a9, 1
+ return
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_163523:: @ 8163523
+ msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_19E3AD, 4
+ closebutton
+ move 255, Route110_SeasideCyclingRoadNorthEntrance_Movement_163538
+ waitmove 0
+ releaseall
+ end
+
+Route110_SeasideCyclingRoadNorthEntrance_Movement_163538:: @ 8163538
+ step_left
+ step_end
+
+Route110_SeasideCyclingRoadNorthEntrance_EventScript_16353A:: @ 816353A
+ lockall
+ setvar 0x40a9, 0
+ clearflag 2091
+ setvar 0x4001, 0
+ releaseall
+ end
+
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s
new file mode 100644
index 000000000..d25463993
--- /dev/null
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s
@@ -0,0 +1,39 @@
+Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: @ 816347E
+ .byte 0
+
+Route110_SeasideCyclingRoadSouthEntrance_EventScript_16347F:: @ 816347F
+ lock
+ faceplayer
+ msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_19E326, 4
+ release
+ end
+
+Route110_SeasideCyclingRoadSouthEntrance_EventScript_16348B:: @ 816348B
+ lockall
+ specialval RESULT, 227
+ compare RESULT, 0
+ jumpeq Route110_SeasideCyclingRoadSouthEntrance_EventScript_1634A6
+ setflag 2091
+ setvar 0x4001, 1
+ releaseall
+ end
+
+Route110_SeasideCyclingRoadSouthEntrance_EventScript_1634A6:: @ 81634A6
+ msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_19E3AD, 4
+ closebutton
+ move 255, Route110_SeasideCyclingRoadSouthEntrance_Movement_1634BB
+ waitmove 0
+ releaseall
+ end
+
+Route110_SeasideCyclingRoadSouthEntrance_Movement_1634BB:: @ 81634BB
+ step_left
+ step_end
+
+Route110_SeasideCyclingRoadSouthEntrance_EventScript_1634BD:: @ 81634BD
+ lockall
+ clearflag 2091
+ setvar 0x4001, 0
+ releaseall
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHouseCorridor.s b/data/scripts/maps/Route110_TrickHouseCorridor.s
new file mode 100644
index 000000000..06da2482d
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHouseCorridor.s
@@ -0,0 +1,8 @@
+Route110_TrickHouseCorridor_MapScripts:: @ 8161CEC
+ map_script 3, Route110_TrickHouseCorridor_MapScript1_161CF2
+ .byte 0
+
+Route110_TrickHouseCorridor_MapScript1_161CF2:: @ 8161CF2
+ setvar 0x40b5, 1
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHouseEnd.s b/data/scripts/maps/Route110_TrickHouseEnd.s
new file mode 100644
index 000000000..4b335af91
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHouseEnd.s
@@ -0,0 +1,252 @@
+Route110_TrickHouseEnd_MapScripts:: @ 8161936
+ map_script 5, Route110_TrickHouseEnd_MapScript1_16194B
+ map_script 3, Route110_TrickHouseEnd_MapScript1_161957
+ map_script 2, Route110_TrickHouseEnd_MapScript2_16197C
+ map_script 4, Route110_TrickHouseEnd_MapScript2_161965
+ .byte 0
+
+Route110_TrickHouseEnd_MapScript1_16194B:: @ 816194B
+ compare 0x4001, 1
+ callif 1, Route110_TrickHouseEnd_EventScript_161994
+ end
+
+Route110_TrickHouseEnd_MapScript1_161957:: @ 8161957
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ special 261
+ end
+
+Route110_TrickHouseEnd_MapScript2_161965:: @ 8161965
+ map_script_2 0x4002, 0, Route110_TrickHouseEnd_EventScript_16196F
+ .2byte 0
+
+Route110_TrickHouseEnd_EventScript_16196F:: @ 816196F
+ reappear 1
+ spritevisible 1, 29, 1
+ spriteface 1, 4
+ end
+
+Route110_TrickHouseEnd_MapScript2_16197C:: @ 816197C
+ map_script_2 0x4001, 0, Route110_TrickHouseEnd_EventScript_161986
+ .2byte 0
+
+Route110_TrickHouseEnd_EventScript_161986:: @ 8161986
+ setvar 0x4001, 1
+ call Route110_TrickHouseEnd_EventScript_161994
+ special 142
+ end
+
+Route110_TrickHouseEnd_EventScript_161994:: @ 8161994
+ setmaptile 10, 1, 539, 1
+ return
+
+Route110_TrickHouseEnd_EventScript_16199E:: @ 816199E
+ lock
+ faceplayer
+ msgbox Route110_TrickHouseEnd_Text_19C281, 4
+ setvar 0x4002, 1
+ switch 0x4044
+ case 0, Route110_TrickHouseEnd_EventScript_161A0B
+ case 1, Route110_TrickHouseEnd_EventScript_161A47
+ case 2, Route110_TrickHouseEnd_EventScript_161A83
+ case 3, Route110_TrickHouseEnd_EventScript_161ABF
+ case 4, Route110_TrickHouseEnd_EventScript_161AFB
+ case 5, Route110_TrickHouseEnd_EventScript_161B37
+ case 6, Route110_TrickHouseEnd_EventScript_161B73
+ case 7, Route110_TrickHouseEnd_EventScript_161BAF
+ end
+
+Route110_TrickHouseEnd_EventScript_161A0B:: @ 8161A0B
+ msgbox Route110_TrickHouseEnd_Text_19C2B2, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_RARE_CANDY
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161A47:: @ 8161A47
+ msgbox Route110_TrickHouseEnd_Text_19C333, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_TIMER_BALL
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161A83:: @ 8161A83
+ msgbox Route110_TrickHouseEnd_Text_19C3A7, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_HARD_STONE
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161ABF:: @ 8161ABF
+ msgbox Route110_TrickHouseEnd_Text_19C41F, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_SMOKE_BALL
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161AFB:: @ 8161AFB
+ msgbox Route110_TrickHouseEnd_Text_19C491, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_TM12
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161B37:: @ 8161B37
+ msgbox Route110_TrickHouseEnd_Text_19C515, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_MAGNET
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161B73:: @ 8161B73
+ msgbox Route110_TrickHouseEnd_Text_19C567, 4
+ msgbox Route110_TrickHouseEnd_Text_19C90B, 4
+ setvar 0x40c1, 0
+ giveitem ITEM_PP_MAX
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C4E
+ msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
+ closebutton
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161BAF:: @ 8161BAF
+ msgbox Route110_TrickHouseEnd_Text_19C5AF, 4
+ closebutton
+ compare FACING, 1
+ callif 1, Route110_TrickHouseEnd_EventScript_161C74
+ compare FACING, 2
+ callif 1, Route110_TrickHouseEnd_EventScript_161C7F
+ compare FACING, 3
+ callif 1, Route110_TrickHouseEnd_EventScript_161C8A
+ compare FACING, 4
+ callif 1, Route110_TrickHouseEnd_EventScript_161C95
+ pause 30
+ msgbox Route110_TrickHouseEnd_Text_19C602, 4
+ closebutton
+ move 1, Route110_TrickHouseEnd_Movement_1A0839
+ waitmove 0
+ pause 30
+ msgbox Route110_TrickHouseEnd_Text_19C691, 4
+ setvar 0x40c1, 0
+ .ifdef SAPPHIRE
+ givedecoration 32
+ .else
+ givedecoration 31
+ .endc
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEnd_EventScript_161C61
+ msgbox Route110_TrickHouseEnd_Text_19C85C, 4
+ call Route110_TrickHouseEnd_EventScript_161C2E
+ special 260
+ release
+ end
+
+Route110_TrickHouseEnd_EventScript_161C2E:: @ 8161C2E
+ move 1, Route110_TrickHouseEnd_Movement_161315
+ waitmove 0
+ playsfx 178
+ move 1, Route110_TrickHouseEnd_Movement_16131E
+ waitmove 0
+ disappear 1
+ addvar 0x4044, 1
+ return
+
+Route110_TrickHouseEnd_EventScript_161C4E:: @ 8161C4E
+ call Route110_TrickHouseEnd_EventScript_1A02A5
+ msgbox Route110_TrickHouseEnd_Text_19C92E, 4
+ setvar 0x40c1, 1
+ return
+
+Route110_TrickHouseEnd_EventScript_161C61:: @ 8161C61
+ call Route110_TrickHouseEnd_EventScript_1A02B8
+ msgbox Route110_TrickHouseEnd_Text_19C7D7, 4
+ setvar 0x40c1, 1
+ return
+
+Route110_TrickHouseEnd_EventScript_161C74:: @ 8161C74
+ move 1, Route110_TrickHouseEnd_Movement_1A0845
+ waitmove 0
+ return
+
+Route110_TrickHouseEnd_EventScript_161C7F:: @ 8161C7F
+ move 1, Route110_TrickHouseEnd_Movement_1A0841
+ waitmove 0
+ return
+
+Route110_TrickHouseEnd_EventScript_161C8A:: @ 8161C8A
+ move 1, Route110_TrickHouseEnd_Movement_1A083F
+ waitmove 0
+ return
+
+Route110_TrickHouseEnd_EventScript_161C95:: @ 8161C95
+ move 1, Route110_TrickHouseEnd_Movement_1A0843
+ waitmove 0
+ return
+
+Route110_TrickHouseEnd_EventScript_161CA0:: @ 8161CA0
+ lockall
+ spriteface 1, 3
+ playsfx 21
+ move 1, Route110_TrickHouseEnd_Movement_1A0833
+ waitmove 0
+ pause 20
+ move 1, Route110_TrickHouseEnd_Movement_161CEA
+ waitmove 0
+ playsfx 178
+ move 255, Route110_TrickHouseEnd_Movement_1A0845
+ waitmove 0
+ msgbox Route110_TrickHouseEnd_Text_19CA8B, 4
+ closebutton
+ move 255, Route110_TrickHouseEnd_Movement_161CE8
+ waitmove 0
+ pause 4
+ spriteface 1, 4
+ releaseall
+ end
+
+Route110_TrickHouseEnd_Movement_161CE8:: @ 8161CE8
+ step_down
+ step_end
+
+Route110_TrickHouseEnd_Movement_161CEA:: @ 8161CEA
+ step_48
+ step_end
+
diff --git a/data/scripts/maps/Route110_TrickHouseEntrance.s b/data/scripts/maps/Route110_TrickHouseEntrance.s
new file mode 100644
index 000000000..08d78bfa1
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHouseEntrance.s
@@ -0,0 +1,663 @@
+Route110_TrickHouseEntrance_MapScripts:: @ 8160F2B
+ map_script 3, Route110_TrickHouseEntrance_MapScript1_160F3B
+ map_script 2, Route110_TrickHouseEntrance_MapScript2_1611CD
+ map_script 4, Route110_TrickHouseEntrance_MapScript2_1610B2
+ .byte 0
+
+Route110_TrickHouseEntrance_MapScript1_160F3B:: @ 8160F3B
+ setflag 2114
+ compare 0x40b5, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_160FCE
+ compare 0x40c1, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_160FB2
+ compare 0x40a6, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_16108E
+ compare 0x40a7, 5
+ callif 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ compare 0x40a7, 3
+ callif 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ compare 0x40a7, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ switch 0x40a7
+ case 0, Route110_TrickHouseEntrance_EventScript_16109A
+ case 1, Route110_TrickHouseEntrance_EventScript_1610A0
+ case 3, Route110_TrickHouseEntrance_EventScript_1610A6
+ case 4, Route110_TrickHouseEntrance_EventScript_1610AC
+ end
+
+Route110_TrickHouseEntrance_EventScript_160FB2:: @ 8160FB2
+ setvar 0x40a5, 1
+ compare 0x4044, 8
+ jumpeq Route110_TrickHouseEntrance_EventScript_160FC8
+ setvar 0x40a7, 2
+ end
+
+Route110_TrickHouseEntrance_EventScript_160FC8:: @ 8160FC8
+ setvar 0x40a7, 6
+ end
+
+Route110_TrickHouseEntrance_EventScript_160FCE:: @ 8160FCE
+ setvar 0x40b5, 0
+ setvar 0x40a7, 5
+ setvar 0x40a5, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_160FDE:: @ 8160FDE
+ setvar 0x40a7, 0
+ compare 0x4044, 1
+ callif 1, Route110_TrickHouseEntrance_EventScript_16103C
+ compare 0x4044, 2
+ callif 1, Route110_TrickHouseEntrance_EventScript_161046
+ compare 0x4044, 3
+ callif 1, Route110_TrickHouseEntrance_EventScript_161050
+ compare 0x4044, 4
+ callif 1, Route110_TrickHouseEntrance_EventScript_16105A
+ compare 0x4044, 5
+ callif 1, Route110_TrickHouseEntrance_EventScript_161064
+ compare 0x4044, 6
+ callif 1, Route110_TrickHouseEntrance_EventScript_16106E
+ compare 0x4044, 7
+ callif 1, Route110_TrickHouseEntrance_EventScript_161078
+ compare 0x4044, 8
+ callif 1, Route110_TrickHouseEntrance_EventScript_161082
+ return
+
+Route110_TrickHouseEntrance_EventScript_16103C:: @ 816103C
+ checkflag 2057
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_161046:: @ 8161046
+ checkflag 2058
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_161050:: @ 8161050
+ checkflag 2059
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_16105A:: @ 816105A
+ checkflag 2060
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_161064:: @ 8161064
+ checkflag 2061
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_16106E:: @ 816106E
+ checkflag 2062
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_161078:: @ 8161078
+ checkflag 2052
+ callif 0, Route110_TrickHouseEntrance_EventScript_161088
+ return
+
+Route110_TrickHouseEntrance_EventScript_161082:: @ 8161082
+ setvar 0x40a7, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_161088:: @ 8161088
+ setvar 0x40a7, 3
+ return
+
+Route110_TrickHouseEntrance_EventScript_16108E:: @ 816108E
+ movespriteperm 1, 5, 2
+ spritebehave 1, 4
+ end
+
+Route110_TrickHouseEntrance_EventScript_16109A:: @ 816109A
+ setvar 0x40a5, 0
+ end
+
+Route110_TrickHouseEntrance_EventScript_1610A0:: @ 81610A0
+ setvar 0x40a5, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_1610A6:: @ 81610A6
+ setvar 0x40a5, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_1610AC:: @ 81610AC
+ setvar 0x40a5, 1
+ end
+
+Route110_TrickHouseEntrance_MapScript2_1610B2:: @ 81610B2
+ map_script_2 0x40a6, 1, Route110_TrickHouseEntrance_EventScript_1610F4
+ map_script_2 0x40a7, 0, Route110_TrickHouseEntrance_EventScript_161105
+ map_script_2 0x40a7, 1, Route110_TrickHouseEntrance_EventScript_1611AB
+ map_script_2 0x40a7, 2, Route110_TrickHouseEntrance_EventScript_1611AF
+ map_script_2 0x40a7, 3, Route110_TrickHouseEntrance_EventScript_1611AF
+ map_script_2 0x40a7, 4, Route110_TrickHouseEntrance_EventScript_1611AB
+ map_script_2 0x40a7, 5, Route110_TrickHouseEntrance_EventScript_1611AB
+ map_script_2 0x40a7, 6, Route110_TrickHouseEntrance_EventScript_1611BE
+ .2byte 0
+
+Route110_TrickHouseEntrance_EventScript_1610F4:: @ 81610F4
+ reappear 1
+ spritevisible 1, 29, 0
+ spriteface 1, 4
+ spriteface 255, 3
+ end
+
+Route110_TrickHouseEntrance_EventScript_161105:: @ 8161105
+ reappear 1
+ spriteinvisible 1, 29, 0
+ switch 0x4044
+ case 0, Route110_TrickHouseEntrance_EventScript_16116B
+ case 1, Route110_TrickHouseEntrance_EventScript_161173
+ case 2, Route110_TrickHouseEntrance_EventScript_161193
+ case 3, Route110_TrickHouseEntrance_EventScript_161183
+ case 4, Route110_TrickHouseEntrance_EventScript_16118B
+ case 5, Route110_TrickHouseEntrance_EventScript_16117B
+ case 6, Route110_TrickHouseEntrance_EventScript_16119B
+ case 7, Route110_TrickHouseEntrance_EventScript_1611A3
+ end
+
+Route110_TrickHouseEntrance_EventScript_16116B:: @ 816116B
+ movesprite 1, 6, 3
+ end
+
+Route110_TrickHouseEntrance_EventScript_161173:: @ 8161173
+ movesprite 1, 11, 5
+ end
+
+Route110_TrickHouseEntrance_EventScript_16117B:: @ 816117B
+ movesprite 1, 11, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_161183:: @ 8161183
+ movesprite 1, 3, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_16118B:: @ 816118B
+ movesprite 1, 0, 5
+ end
+
+Route110_TrickHouseEntrance_EventScript_161193:: @ 8161193
+ movesprite 1, 9, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_16119B:: @ 816119B
+ movesprite 1, 8, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_1611A3:: @ 81611A3
+ movesprite 1, 4, 4
+ end
+
+Route110_TrickHouseEntrance_EventScript_1611AB:: @ 81611AB
+ disappear 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_1611AF:: @ 81611AF
+ reappear 1
+ movesprite 1, 5, 2
+ spriteface 1, 2
+ end
+
+Route110_TrickHouseEntrance_EventScript_1611BE:: @ 81611BE
+ reappear 1
+ movesprite 1, 5, 2
+ spriteface 1, 1
+ end
+
+Route110_TrickHouseEntrance_MapScript2_1611CD:: @ 81611CD
+ map_script_2 0x40a6, 1, Route110_TrickHouseEntrance_EventScript_1611D7
+ .2byte 0
+
+Route110_TrickHouseEntrance_EventScript_1611D7:: @ 81611D7
+ lockall
+ pause 20
+ compare 0x4044, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_161327
+ msgbox Route110_TrickHouseEntrance_Text_19BD82, 4
+ closebutton
+ pause 20
+ move 1, Route110_TrickHouseEntrance_Movement_161315
+ waitmove 0
+ playsfx 178
+ move 1, Route110_TrickHouseEntrance_Movement_16131E
+ waitmove 0
+ disappear 1
+ setvar 0x40a7, 1
+ setvar 0x40a6, 0
+ releaseall
+ end
+
+ .incbin "baserom.gba", 0x161218, 0x2
+
+Route110_TrickHouseEntrance_EventScript_16121A:: @ 816121A
+ lockall
+ switch 0x40a7
+ case 0, Route110_TrickHouseEntrance_EventScript_16124D
+ case 2, Route110_TrickHouseEntrance_EventScript_16136E
+ case 3, Route110_TrickHouseEntrance_EventScript_161330
+ case 6, Route110_TrickHouseEntrance_EventScript_161518
+ end
+
+Route110_TrickHouseEntrance_EventScript_16124D:: @ 816124D
+ playsfx 21
+ move 255, Route110_TrickHouseEntrance_Movement_1A0833
+ waitmove 0
+ move 255, Route110_TrickHouseEntrance_Movement_1A0835
+ waitmove 0
+ compare 0x4044, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612CD
+ compare 0x4044, 1
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612D6
+ compare 0x4044, 2
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612DF
+ compare 0x4044, 3
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612E8
+ compare 0x4044, 4
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612F1
+ compare 0x4044, 5
+ callif 1, Route110_TrickHouseEntrance_EventScript_1612FA
+ compare 0x4044, 6
+ callif 1, Route110_TrickHouseEntrance_EventScript_161303
+ compare 0x4044, 7
+ callif 1, Route110_TrickHouseEntrance_EventScript_16130C
+ closebutton
+ setvar 0x40a6, 1
+ warp Route110_TrickHouseEntrance, 255, 6, 2
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1612CD:: @ 81612CD
+ msgbox Route110_TrickHouseEntrance_Text_19BA6E, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_1612D6:: @ 81612D6
+ msgbox Route110_TrickHouseEntrance_Text_19BAC0, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_1612DF:: @ 81612DF
+ msgbox Route110_TrickHouseEntrance_Text_19BB11, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_1612E8:: @ 81612E8
+ msgbox Route110_TrickHouseEntrance_Text_19BB61, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_1612F1:: @ 81612F1
+ msgbox Route110_TrickHouseEntrance_Text_19BBB4, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_1612FA:: @ 81612FA
+ msgbox Route110_TrickHouseEntrance_Text_19BC04, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_161303:: @ 8161303
+ msgbox Route110_TrickHouseEntrance_Text_19BC55, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_16130C:: @ 816130C
+ msgbox Route110_TrickHouseEntrance_Text_19BCA8, 4
+ return
+
+Route110_TrickHouseEnd_Movement_161315:: @ 8161315
+Route110_TrickHouseEntrance_Movement_161315:: @ 8161315
+ step_01
+ step_12
+ step_02
+ step_12
+ step_00
+ step_12
+ step_03
+ step_12
+ step_end
+
+Route110_TrickHouseEnd_Movement_16131E:: @ 816131E
+Route110_TrickHouseEntrance_Movement_16131E:: @ 816131E
+ step_01
+ step_52
+ step_32
+ step_32
+ step_32
+ step_32
+ step_32
+ step_32
+ step_end
+
+Route110_TrickHouseEntrance_EventScript_161327:: @ 8161327
+ msgbox Route110_TrickHouseEntrance_Text_19BCFD, 4
+ return
+
+Route110_TrickHouseEntrance_EventScript_161330:: @ 8161330
+ msgbox Route110_TrickHouseEntrance_Text_19BF19, 4
+ closebutton
+ move 1, Route110_TrickHouseEntrance_Movement_1A0839
+ waitmove 0
+ playsfx 21
+ move 1, Route110_TrickHouseEntrance_Movement_1A0833
+ waitmove 0
+ move 1, Route110_TrickHouseEntrance_Movement_1A0835
+ waitmove 0
+ msgbox Route110_TrickHouseEntrance_Text_19BFAB, 4
+ move 1, Route110_TrickHouseEntrance_Movement_1A0841
+ waitmove 0
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_16136E:: @ 816136E
+ move 1, Route110_TrickHouseEntrance_Movement_1A0839
+ waitmove 0
+ msgbox Route110_TrickHouseEntrance_Text_19C07E, 4
+ compare 0x4044, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_1613CE
+ compare 0x4044, 2
+ jumpeq Route110_TrickHouseEntrance_EventScript_1613FA
+ compare 0x4044, 3
+ jumpeq Route110_TrickHouseEntrance_EventScript_161426
+ compare 0x4044, 4
+ jumpeq Route110_TrickHouseEntrance_EventScript_161452
+ compare 0x4044, 5
+ jumpeq Route110_TrickHouseEntrance_EventScript_16147E
+ compare 0x4044, 6
+ jumpeq Route110_TrickHouseEntrance_EventScript_1614AA
+ compare 0x4044, 7
+ jumpeq Route110_TrickHouseEntrance_EventScript_1614D6
+ end
+
+Route110_TrickHouseEntrance_EventScript_1613CE:: @ 81613CE
+ giveitem ITEM_RARE_CANDY
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1613FA:: @ 81613FA
+ giveitem ITEM_TIMER_BALL
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161426:: @ 8161426
+ giveitem ITEM_HARD_STONE
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161452:: @ 8161452
+ giveitem ITEM_SMOKE_BALL
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_16147E:: @ 816147E
+ giveitem ITEM_TM12
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1614AA:: @ 81614AA
+ giveitem ITEM_MAGNET
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1614D6:: @ 81614D6
+ giveitem ITEM_PP_MAX
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161502
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161502:: @ 8161502
+ setvar 0x40c1, 0
+ setvar 0x40a7, 3
+ move 1, Route110_TrickHouseEntrance_Movement_1A0841
+ waitmove 0
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161518:: @ 8161518
+ move 1, Route110_TrickHouseEntrance_Movement_1A0839
+ waitmove 0
+ msgbox Route110_TrickHouseEntrance_Text_19C128, 4
+ .ifdef SAPPHIRE
+ givedecoration 32
+ .else
+ givedecoration 31
+ .endif
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_161551
+ compare RESULT, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1A02B8
+ msgbox Route110_TrickHouseEntrance_Text_19C18D, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161551:: @ 8161551
+ msgbox Route110_TrickHouseEntrance_Text_19C17E, 4
+ closebutton
+ move 1, Route110_TrickHouseEntrance_Movement_16309F
+ waitmove 0
+ move 1, Route110_TrickHouseEntrance_Movement_161315
+ waitmove 0
+ playsfx 178
+ move 1, Route110_TrickHouseEntrance_Movement_16131E
+ waitmove 0
+ disappear 1
+ setvar 0x40c1, 0
+ setvar 0x40a7, 5
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_16158A:: @ 816158A
+ lockall
+ switch 0x40a7
+ case 0, Route110_TrickHouseEntrance_EventScript_1615BD
+ case 1, Route110_TrickHouseEntrance_EventScript_1615C7
+ case 4, Route110_TrickHouseEntrance_EventScript_1616B8
+ case 5, Route110_TrickHouseEntrance_EventScript_1616C2
+ end
+
+Route110_TrickHouseEntrance_EventScript_1615BD:: @ 81615BD
+ msgbox Route110_TrickHouseEntrance_Text_19BE6E, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1615C7:: @ 81615C7
+ msgbox Route110_TrickHouseEntrance_Text_19BE7D, 5
+ closebutton
+ compare RESULT, 1
+ jumpeq Route110_TrickHouseEntrance_EventScript_1615DD
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1615DD:: @ 81615DD
+ setmaptile 5, 1, 537, 0
+ special 142
+ pause 20
+ move 255, Route110_TrickHouseEntrance_Movement_1A0856
+ waitmove 0
+ move 255, Route110_TrickHouseEntrance_Movement_16165E
+ waitmove 0
+ switch 0x4044
+ case 0, Route110_TrickHouseEntrance_EventScript_161660
+ case 1, Route110_TrickHouseEntrance_EventScript_16166B
+ case 2, Route110_TrickHouseEntrance_EventScript_161676
+ case 3, Route110_TrickHouseEntrance_EventScript_161681
+ case 4, Route110_TrickHouseEntrance_EventScript_16168C
+ case 5, Route110_TrickHouseEntrance_EventScript_161697
+ case 6, Route110_TrickHouseEntrance_EventScript_1616A2
+ case 7, Route110_TrickHouseEntrance_EventScript_1616AD
+ end
+
+Route110_TrickHouseEntrance_Movement_16165E:: @ 816165E
+ step_54
+ step_end
+
+Route110_TrickHouseEntrance_EventScript_161660:: @ 8161660
+ warp Route110_TrickHousePuzzle1, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_16166B:: @ 816166B
+ warp Route110_TrickHousePuzzle2, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161676:: @ 8161676
+ warp Route110_TrickHousePuzzle3, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161681:: @ 8161681
+ warp Route110_TrickHousePuzzle4, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_16168C:: @ 816168C
+ warp Route110_TrickHousePuzzle5, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_161697:: @ 8161697
+ warp Route110_TrickHousePuzzle6, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1616A2:: @ 81616A2
+ warp Route110_TrickHousePuzzle7, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1616AD:: @ 81616AD
+ warp Route110_TrickHousePuzzle8, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1616B8:: @ 81616B8
+ msgbox Route110_TrickHouseEntrance_Text_19BEB3, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1616C2:: @ 81616C2
+ compare 0x4044, 8
+ jumpeq Route110_TrickHouseEntrance_EventScript_1616D7
+ msgbox Route110_TrickHouseEntrance_Text_19BE6E, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1616D7:: @ 81616D7
+ msgbox Route110_TrickHouseEntrance_Text_19BEB3, 4
+ releaseall
+ end
+
+ .global gUnknown_081616E1
+gUnknown_081616E1: @ 81616E1
+
+ .incbin "baserom.gba", 0x1616e1, 0x1b1
+
+Route110_TrickHousePuzzle1_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle2_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle3_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle4_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle5_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle6_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle7_EventScript_161892:: @ 8161892
+Route110_TrickHousePuzzle8_EventScript_161892:: @ 8161892
+ msgbox Route110_TrickHousePuzzle1_Text_19C1FF, 4
+ releaseall
+ end
+
+Route110_TrickHousePuzzle1_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle2_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle3_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle4_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle5_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle6_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle7_EventScript_16189C:: @ 816189C
+Route110_TrickHousePuzzle8_EventScript_16189C:: @ 816189C
+ fanfare 370
+ message Route110_TrickHousePuzzle1_Text_19C1B8
+ waitfanfare
+ waittext
+ msgbox Route110_TrickHousePuzzle1_Text_19C1CB, 4
+ releaseall
+ end
+
+Route110_TrickHouseEntrance_EventScript_1618B0:: @ 81618B0
+ lockall
+ msgbox Route110_TrickHouseEntrance_Text_19BA56, 4
+ releaseall
+ compare 0x4044, 0
+ callif 1, Route110_TrickHouseEntrance_EventScript_1618E1
+ compare 0x4044, 1
+ callif 1, Route110_TrickHouseEntrance_EventScript_1618F6
+ compare 0x4044, 2
+ callif 1, Route110_TrickHouseEntrance_EventScript_16190B
+ setvar 0x40a5, 1
+ end
+
+Route110_TrickHouseEntrance_EventScript_1618E1:: @ 81618E1
+ setvar 0x8004, 6
+ setvar 0x8005, 3
+ setvar 0x8006, 0
+ call Route110_TrickHouseEntrance_EventScript_161920
+ return
+
+Route110_TrickHouseEntrance_EventScript_1618F6:: @ 81618F6
+ setvar 0x8004, 11
+ setvar 0x8005, 5
+ setvar 0x8006, 0
+ call Route110_TrickHouseEntrance_EventScript_161920
+ return
+
+Route110_TrickHouseEntrance_EventScript_16190B:: @ 816190B
+ setvar 0x8004, 9
+ setvar 0x8005, 2
+ setvar 0x8006, 0
+ call Route110_TrickHouseEntrance_EventScript_161920
+ return
+
+Route110_TrickHouseEntrance_EventScript_161920:: @ 8161920
+ setanimation 0, 32772
+ setanimation 1, 32773
+ setanimation 2, 32774
+ doanimation 54
+ checkanimation 54
+ pause 10
+ return
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle1.s b/data/scripts/maps/Route110_TrickHousePuzzle1.s
new file mode 100644
index 000000000..074273652
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle1.s
@@ -0,0 +1,40 @@
+Route110_TrickHousePuzzle1_MapScripts:: @ 8161CF8
+ map_script 1, Route110_TrickHousePuzzle1_MapScript1_161CFE
+ .byte 0
+
+Route110_TrickHousePuzzle1_MapScript1_161CFE:: @ 8161CFE
+ compare 0x40ab, 2
+ jumpeq Route110_TrickHousePuzzle1_EventScript_161D0A
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D0A:: @ 8161D0A
+ setmaptile 13, 1, 523, 0
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D14:: @ 8161D14
+ lockall
+ compare 0x40ab, 0
+ jumpeq Route110_TrickHousePuzzle1_EventScript_161D26
+ jump Route110_TrickHousePuzzle1_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D26:: @ 8161D26
+ setvar 0x40ab, 1
+ jump Route110_TrickHousePuzzle1_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D31:: @ 8161D31
+ trainerbattle 0, 611, 0, Route110_TrickHousePuzzle1_Text_19CB4F, Route110_TrickHousePuzzle1_Text_19CB93
+ msgbox Route110_TrickHousePuzzle1_Text_19CBAB, 6
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D48:: @ 8161D48
+ trainerbattle 0, 332, 0, Route110_TrickHousePuzzle1_Text_19CBD6, Route110_TrickHousePuzzle1_Text_19CC06
+ msgbox Route110_TrickHousePuzzle1_Text_19CC1B, 6
+ end
+
+Route110_TrickHousePuzzle1_EventScript_161D5F:: @ 8161D5F
+ trainerbattle 0, 612, 0, Route110_TrickHousePuzzle1_Text_19CC68, Route110_TrickHousePuzzle1_Text_19CC86
+ msgbox Route110_TrickHousePuzzle1_Text_19CCAA, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle2.s b/data/scripts/maps/Route110_TrickHousePuzzle2.s
new file mode 100644
index 000000000..0984690a1
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle2.s
@@ -0,0 +1,106 @@
+Route110_TrickHousePuzzle2_MapScripts:: @ 8161D76
+ map_script 5, Route110_TrickHousePuzzle2_MapScript1_161D81
+ map_script 3, Route110_TrickHousePuzzle2_MapScript1_161DAE
+ .byte 0
+
+Route110_TrickHousePuzzle2_MapScript1_161D81:: @ 8161D81
+ compare 0x4001, 1
+ callif 1, Route110_TrickHousePuzzle2_EventScript_161E2C
+ compare 0x4002, 1
+ callif 1, Route110_TrickHousePuzzle2_EventScript_161E3F
+ compare 0x4003, 1
+ callif 1, Route110_TrickHousePuzzle2_EventScript_161E52
+ compare 0x4004, 1
+ callif 1, Route110_TrickHousePuzzle2_EventScript_161E65
+ end
+
+Route110_TrickHousePuzzle2_MapScript1_161DAE:: @ 8161DAE
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ setvar 0x4003, 0
+ setvar 0x4004, 0
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161DC3:: @ 8161DC3
+ lockall
+ compare 0x40ac, 0
+ jumpeq Route110_TrickHousePuzzle2_EventScript_161DD5
+ jump Route110_TrickHousePuzzle2_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161DD5:: @ 8161DD5
+ setvar 0x40ac, 1
+ jump Route110_TrickHousePuzzle2_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161DE0:: @ 8161DE0
+ lockall
+ setvar 0x4001, 1
+ playsfx 21
+ call Route110_TrickHousePuzzle2_EventScript_161E2C
+ special 142
+ releaseall
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161DF3:: @ 8161DF3
+ lockall
+ setvar 0x4002, 1
+ playsfx 21
+ call Route110_TrickHousePuzzle2_EventScript_161E3F
+ special 142
+ releaseall
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161E06:: @ 8161E06
+ lockall
+ setvar 0x4003, 1
+ playsfx 21
+ call Route110_TrickHousePuzzle2_EventScript_161E52
+ special 142
+ releaseall
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161E19:: @ 8161E19
+ lockall
+ setvar 0x4004, 1
+ playsfx 21
+ call Route110_TrickHousePuzzle2_EventScript_161E65
+ special 142
+ releaseall
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161E2C:: @ 8161E2C
+ setmaptile 14, 21, 601, 0
+ setmaptile 1, 12, 618, 0
+ return
+
+Route110_TrickHousePuzzle2_EventScript_161E3F:: @ 8161E3F
+ setmaptile 8, 17, 601, 0
+ setmaptile 12, 13, 618, 0
+ return
+
+Route110_TrickHousePuzzle2_EventScript_161E52:: @ 8161E52
+ setmaptile 4, 10, 601, 0
+ setmaptile 8, 4, 618, 0
+ return
+
+Route110_TrickHousePuzzle2_EventScript_161E65:: @ 8161E65
+ setmaptile 5, 2, 601, 0
+ setmaptile 12, 5, 618, 0
+ return
+
+Route110_TrickHousePuzzle2_EventScript_161E78:: @ 8161E78
+ trainerbattle 0, 274, 0, Route110_TrickHousePuzzle2_Text_19CD46, Route110_TrickHousePuzzle2_Text_19CD66
+ msgbox Route110_TrickHousePuzzle2_Text_19CD91, 6
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161E8F:: @ 8161E8F
+ trainerbattle 0, 275, 0, Route110_TrickHousePuzzle2_Text_19CDBF, Route110_TrickHousePuzzle2_Text_19CDF0
+ msgbox Route110_TrickHousePuzzle2_Text_19CE0D, 6
+ end
+
+Route110_TrickHousePuzzle2_EventScript_161EA6:: @ 8161EA6
+ trainerbattle 0, 281, 0, Route110_TrickHousePuzzle2_Text_19CE52, Route110_TrickHousePuzzle2_Text_19CE98
+ msgbox Route110_TrickHousePuzzle2_Text_19CEB8, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle3.s b/data/scripts/maps/Route110_TrickHousePuzzle3.s
new file mode 100644
index 000000000..309728db7
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle3.s
@@ -0,0 +1,397 @@
+Route110_TrickHousePuzzle3_MapScripts:: @ 8161EBD
+ map_script 5, Route110_TrickHousePuzzle3_MapScript1_161EC8
+ map_script 3, Route110_TrickHousePuzzle3_MapScript1_161EE4
+ .byte 0
+
+Route110_TrickHousePuzzle3_MapScript1_161EC8:: @ 8161EC8
+ call Route110_TrickHousePuzzle3_EventScript_161F12
+ compare 0x4009, 0
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FE5
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle3_EventScript_1622C8
+ end
+
+Route110_TrickHousePuzzle3_MapScript1_161EE4:: @ 8161EE4
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ setvar 0x4003, 0
+ setvar 0x4004, 0
+ setvar 0x4005, 0
+ setvar 0x4006, 0
+ setvar 0x4007, 0
+ setvar 0x4008, 0
+ setvar 0x4009, 0
+ end
+
+Route110_TrickHousePuzzle3_EventScript_161F12:: @ 8161F12
+ setmaptile 5, 20, 600, 0
+ setmaptile 4, 12, 600, 0
+ setmaptile 11, 10, 600, 0
+ setmaptile 3, 8, 600, 0
+ setmaptile 13, 7, 600, 0
+ setmaptile 1, 3, 600, 0
+ setmaptile 10, 2, 600, 0
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161F9F
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FA9
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FB3
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FBD
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FC7
+ compare 0x4008, 6
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FD1
+ compare 0x4008, 7
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FDB
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161F9F:: @ 8161F9F
+ setmaptile 5, 20, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FA9:: @ 8161FA9
+ setmaptile 4, 12, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FB3:: @ 8161FB3
+ setmaptile 11, 10, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FBD:: @ 8161FBD
+ setmaptile 3, 8, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FC7:: @ 8161FC7
+ setmaptile 13, 7, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FD1:: @ 8161FD1
+ setmaptile 1, 3, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FDB:: @ 8161FDB
+ setmaptile 10, 2, 601, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_161FE5:: @ 8161FE5
+ setmaptile 1, 6, 587, 0
+ setmaptile 2, 6, 588, 0
+ setmaptile 1, 7, 595, 0
+ setmaptile 2, 7, 596, 0
+ setmaptile 4, 9, 587, 0
+ setmaptile 5, 9, 588, 0
+ setmaptile 4, 10, 595, 0
+ setmaptile 5, 10, 596, 0
+ setmaptile 4, 18, 587, 0
+ setmaptile 5, 18, 588, 0
+ setmaptile 4, 19, 595, 0
+ setmaptile 5, 19, 596, 0
+ setmaptile 7, 3, 587, 0
+ setmaptile 8, 3, 588, 0
+ setmaptile 7, 4, 595, 0
+ setmaptile 8, 4, 596, 0
+ setmaptile 7, 9, 587, 0
+ setmaptile 8, 9, 588, 0
+ setmaptile 7, 10, 595, 0
+ setmaptile 8, 10, 596, 0
+ setmaptile 7, 18, 587, 0
+ setmaptile 8, 18, 588, 0
+ setmaptile 7, 19, 595, 0
+ setmaptile 8, 19, 596, 0
+ setmaptile 13, 3, 587, 0
+ setmaptile 14, 3, 588, 0
+ setmaptile 13, 4, 595, 0
+ setmaptile 14, 4, 596, 0
+ setmaptile 13, 9, 587, 0
+ setmaptile 14, 9, 588, 0
+ setmaptile 13, 10, 595, 0
+ setmaptile 14, 10, 596, 0
+ setmaptile 13, 15, 587, 0
+ setmaptile 14, 15, 588, 0
+ setmaptile 13, 16, 595, 0
+ setmaptile 14, 16, 596, 0
+ setmaptile 3, 13, 589, 1
+ setmaptile 3, 14, 597, 0
+ setmaptile 6, 7, 589, 1
+ setmaptile 6, 8, 597, 0
+ setmaptile 9, 16, 589, 1
+ setmaptile 9, 17, 597, 0
+ setmaptile 12, 4, 589, 1
+ setmaptile 12, 5, 597, 0
+ setmaptile 12, 10, 589, 1
+ setmaptile 12, 11, 597, 0
+ setmaptile 1, 15, 568, 0
+ setmaptile 2, 15, 569, 0
+ setmaptile 1, 16, 576, 1
+ setmaptile 2, 16, 577, 1
+ setmaptile 4, 6, 568, 0
+ setmaptile 5, 6, 569, 0
+ setmaptile 4, 7, 576, 1
+ setmaptile 5, 7, 577, 1
+ setmaptile 7, 12, 568, 0
+ setmaptile 8, 12, 569, 0
+ setmaptile 7, 13, 576, 1
+ setmaptile 8, 13, 577, 1
+ setmaptile 10, 12, 568, 0
+ setmaptile 11, 12, 569, 0
+ setmaptile 10, 13, 576, 1
+ setmaptile 11, 13, 577, 1
+ setmaptile 10, 18, 568, 0
+ setmaptile 11, 18, 569, 0
+ setmaptile 10, 19, 576, 1
+ setmaptile 11, 19, 577, 1
+ setmaptile 3, 4, 570, 1
+ setmaptile 3, 5, 578, 1
+ setmaptile 6, 10, 570, 1
+ setmaptile 6, 11, 578, 1
+ setmaptile 6, 13, 570, 1
+ setmaptile 6, 14, 578, 1
+ setmaptile 6, 16, 570, 1
+ setmaptile 6, 17, 578, 1
+ setmaptile 9, 4, 570, 1
+ setmaptile 9, 5, 578, 1
+ setmaptile 9, 7, 570, 1
+ setmaptile 9, 8, 578, 1
+ setmaptile 12, 13, 570, 1
+ setmaptile 12, 14, 578, 1
+ setmaptile 12, 16, 570, 1
+ setmaptile 12, 17, 578, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_1622C8:: @ 81622C8
+ setmaptile 1, 6, 571, 0
+ setmaptile 2, 6, 572, 0
+ setmaptile 1, 7, 579, 1
+ setmaptile 2, 7, 580, 1
+ setmaptile 4, 9, 571, 0
+ setmaptile 5, 9, 572, 0
+ setmaptile 4, 10, 579, 1
+ setmaptile 5, 10, 580, 1
+ setmaptile 4, 18, 571, 0
+ setmaptile 5, 18, 572, 0
+ setmaptile 4, 19, 579, 1
+ setmaptile 5, 19, 580, 1
+ setmaptile 7, 3, 571, 0
+ setmaptile 8, 3, 572, 0
+ setmaptile 7, 4, 579, 1
+ setmaptile 8, 4, 580, 1
+ setmaptile 7, 9, 571, 0
+ setmaptile 8, 9, 572, 0
+ setmaptile 7, 10, 579, 1
+ setmaptile 8, 10, 580, 1
+ setmaptile 7, 18, 571, 0
+ setmaptile 8, 18, 572, 0
+ setmaptile 7, 19, 579, 1
+ setmaptile 8, 19, 580, 1
+ setmaptile 13, 3, 571, 0
+ setmaptile 14, 3, 572, 0
+ setmaptile 13, 4, 579, 1
+ setmaptile 14, 4, 580, 1
+ setmaptile 13, 9, 571, 0
+ setmaptile 14, 9, 572, 0
+ setmaptile 13, 10, 579, 1
+ setmaptile 14, 10, 580, 1
+ setmaptile 13, 15, 571, 0
+ setmaptile 14, 15, 572, 0
+ setmaptile 13, 16, 579, 1
+ setmaptile 14, 16, 580, 1
+ setmaptile 3, 13, 573, 1
+ setmaptile 3, 14, 581, 1
+ setmaptile 6, 7, 573, 1
+ setmaptile 6, 8, 581, 1
+ setmaptile 9, 16, 573, 1
+ setmaptile 9, 17, 581, 1
+ setmaptile 12, 4, 573, 1
+ setmaptile 12, 5, 581, 1
+ setmaptile 12, 10, 573, 1
+ setmaptile 12, 11, 581, 1
+ setmaptile 1, 15, 584, 0
+ setmaptile 2, 15, 585, 0
+ setmaptile 1, 16, 592, 0
+ setmaptile 2, 16, 593, 0
+ setmaptile 4, 6, 584, 0
+ setmaptile 5, 6, 585, 0
+ setmaptile 4, 7, 592, 0
+ setmaptile 5, 7, 593, 0
+ setmaptile 7, 12, 584, 0
+ setmaptile 8, 12, 585, 0
+ setmaptile 7, 13, 592, 0
+ setmaptile 8, 13, 593, 0
+ setmaptile 10, 12, 584, 0
+ setmaptile 11, 12, 585, 0
+ setmaptile 10, 13, 592, 0
+ setmaptile 11, 13, 593, 0
+ setmaptile 10, 18, 584, 0
+ setmaptile 11, 18, 585, 0
+ setmaptile 10, 19, 592, 0
+ setmaptile 11, 19, 593, 0
+ setmaptile 3, 4, 586, 1
+ setmaptile 3, 5, 594, 0
+ setmaptile 6, 10, 586, 1
+ setmaptile 6, 11, 594, 0
+ setmaptile 6, 13, 586, 1
+ setmaptile 6, 14, 594, 0
+ setmaptile 6, 16, 586, 1
+ setmaptile 6, 17, 594, 0
+ setmaptile 9, 4, 586, 1
+ setmaptile 9, 5, 594, 0
+ setmaptile 9, 7, 586, 1
+ setmaptile 9, 8, 594, 0
+ setmaptile 12, 13, 586, 1
+ setmaptile 12, 14, 594, 0
+ setmaptile 12, 16, 586, 1
+ setmaptile 12, 17, 594, 0
+ return
+
+Route110_TrickHousePuzzle3_EventScript_1625AB:: @ 81625AB
+ lockall
+ setvar 0x4008, 1
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625B7:: @ 81625B7
+ lockall
+ setvar 0x4008, 2
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625C3:: @ 81625C3
+ lockall
+ setvar 0x4008, 3
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625CF:: @ 81625CF
+ lockall
+ setvar 0x4008, 4
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625DB:: @ 81625DB
+ lockall
+ setvar 0x4008, 5
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625E7:: @ 81625E7
+ lockall
+ setvar 0x4008, 6
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625F3:: @ 81625F3
+ lockall
+ setvar 0x4008, 7
+ jump Route110_TrickHousePuzzle3_EventScript_1625FF
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1625FF:: @ 81625FF
+ call Route110_TrickHousePuzzle3_EventScript_162612
+ playsfx 21
+ call Route110_TrickHousePuzzle3_EventScript_161F12
+ jump Route110_TrickHousePuzzle3_EventScript_1626AD
+ end
+
+Route110_TrickHousePuzzle3_EventScript_162612:: @ 8162612
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ setvar 0x4003, 0
+ setvar 0x4004, 0
+ setvar 0x4005, 0
+ setvar 0x4006, 0
+ setvar 0x4007, 0
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle3_EventScript_162683
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle3_EventScript_162689
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle3_EventScript_16268F
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle3_EventScript_162695
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle3_EventScript_16269B
+ compare 0x4008, 6
+ callif 1, Route110_TrickHousePuzzle3_EventScript_1626A1
+ compare 0x4008, 7
+ callif 1, Route110_TrickHousePuzzle3_EventScript_1626A7
+ return
+
+Route110_TrickHousePuzzle3_EventScript_162683:: @ 8162683
+ setvar 0x4001, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_162689:: @ 8162689
+ setvar 0x4002, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_16268F:: @ 816268F
+ setvar 0x4003, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_162695:: @ 8162695
+ setvar 0x4004, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_16269B:: @ 816269B
+ setvar 0x4005, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_1626A1:: @ 81626A1
+ setvar 0x4006, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_1626A7:: @ 81626A7
+ setvar 0x4007, 1
+ return
+
+Route110_TrickHousePuzzle3_EventScript_1626AD:: @ 81626AD
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle3_EventScript_161FE5
+ compare 0x4009, 0
+ callif 1, Route110_TrickHousePuzzle3_EventScript_1622C8
+ special 142
+ compare 0x4009, 1
+ jumpeq Route110_TrickHousePuzzle3_EventScript_1626DD
+ compare 0x4009, 0
+ jumpeq Route110_TrickHousePuzzle3_EventScript_1626E4
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1626DD:: @ 81626DD
+ setvar 0x4009, 0
+ releaseall
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1626E4:: @ 81626E4
+ setvar 0x4009, 1
+ releaseall
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1626EB:: @ 81626EB
+ lockall
+ compare 0x40ad, 0
+ jumpeq Route110_TrickHousePuzzle3_EventScript_1626FD
+ jump Route110_TrickHousePuzzle3_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle3_EventScript_1626FD:: @ 81626FD
+ setvar 0x40ad, 1
+ jump Route110_TrickHousePuzzle3_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle3_EventScript_162708:: @ 8162708
+ trainerbattle 0, 215, 0, Route110_TrickHousePuzzle3_Text_19CF76, Route110_TrickHousePuzzle3_Text_19CF9D
+ msgbox Route110_TrickHousePuzzle3_Text_19CFE6, 6
+ end
+
+Route110_TrickHousePuzzle3_EventScript_16271F:: @ 816271F
+ trainerbattle 0, 473, 0, Route110_TrickHousePuzzle3_Text_19D026, Route110_TrickHousePuzzle3_Text_19D065
+ msgbox Route110_TrickHousePuzzle3_Text_19D07A, 6
+ end
+
+Route110_TrickHousePuzzle3_EventScript_162736:: @ 8162736
+ trainerbattle 0, 630, 0, Route110_TrickHousePuzzle3_Text_19D0AE, Route110_TrickHousePuzzle3_Text_19D0F0
+ msgbox Route110_TrickHousePuzzle3_Text_19D110, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle4.s b/data/scripts/maps/Route110_TrickHousePuzzle4.s
new file mode 100644
index 000000000..f8760aba7
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle4.s
@@ -0,0 +1,30 @@
+Route110_TrickHousePuzzle4_MapScripts:: @ 816274D
+ .byte 0
+
+Route110_TrickHousePuzzle4_EventScript_16274E:: @ 816274E
+ lockall
+ compare 0x40ae, 0
+ jumpeq Route110_TrickHousePuzzle4_EventScript_162760
+ jump Route110_TrickHousePuzzle4_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle4_EventScript_162760:: @ 8162760
+ setvar 0x40ae, 1
+ jump Route110_TrickHousePuzzle4_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle4_EventScript_16276B:: @ 816276B
+ trainerbattle 0, 428, 0, Route110_TrickHousePuzzle4_Text_19D1DE, Route110_TrickHousePuzzle4_Text_19D21F
+ msgbox Route110_TrickHousePuzzle4_Text_19D253, 6
+ end
+
+Route110_TrickHousePuzzle4_EventScript_162782:: @ 8162782
+ trainerbattle 0, 188, 0, Route110_TrickHousePuzzle4_Text_19D295, Route110_TrickHousePuzzle4_Text_19D2D1
+ msgbox Route110_TrickHousePuzzle4_Text_19D306, 6
+ end
+
+Route110_TrickHousePuzzle4_EventScript_162799:: @ 8162799
+ trainerbattle 0, 429, 0, Route110_TrickHousePuzzle4_Text_19D351, Route110_TrickHousePuzzle4_Text_19D380
+ msgbox Route110_TrickHousePuzzle4_Text_19D386, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle5.s b/data/scripts/maps/Route110_TrickHousePuzzle5.s
new file mode 100644
index 000000000..cd5d2fbb9
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle5.s
@@ -0,0 +1,725 @@
+Route110_TrickHousePuzzle5_MapScripts:: @ 81627B0
+ map_script 3, Route110_TrickHousePuzzle5_MapScript1_1627B6
+ .byte 0
+
+Route110_TrickHousePuzzle5_MapScript1_1627B6:: @ 81627B6
+ setvar 0x4001, 0
+ setvar 0x4002, 0
+ setvar 0x4003, 0
+ setvar 0x4004, 0
+ setvar 0x4005, 0
+ setvar 0x4008, 0
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1627D5:: @ 81627D5
+ lockall
+ compare 0x40af, 0
+ jumpeq Route110_TrickHousePuzzle5_EventScript_1627E7
+ jump Route110_TrickHousePuzzle5_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1627E7:: @ 81627E7
+ setvar 0x40af, 1
+ jump Route110_TrickHousePuzzle5_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1627F2:: @ 81627F2
+ lockall
+ move 1, Route110_TrickHousePuzzle5_Movement_1A0839
+ waitmove 0
+ compare 0x4001, 1
+ jumpeq Route110_TrickHousePuzzle5_EventScript_162DE9
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_16293F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162813:: @ 8162813
+ lockall
+ move 2, Route110_TrickHousePuzzle5_Movement_1A0839
+ waitmove 0
+ compare 0x4002, 1
+ jumpeq Route110_TrickHousePuzzle5_EventScript_162DE9
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_1629B3
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162834:: @ 8162834
+ lockall
+ move 3, Route110_TrickHousePuzzle5_Movement_1A0839
+ waitmove 0
+ compare 0x4003, 1
+ jumpeq Route110_TrickHousePuzzle5_EventScript_162DE9
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162A27
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162855:: @ 8162855
+ lockall
+ move 4, Route110_TrickHousePuzzle5_Movement_1A0839
+ waitmove 0
+ compare 0x4004, 1
+ jumpeq Route110_TrickHousePuzzle5_EventScript_162DE9
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162A9B
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162876:: @ 8162876
+ lockall
+ move 5, Route110_TrickHousePuzzle5_Movement_1A0839
+ waitmove 0
+ compare 0x4005, 1
+ jumpeq Route110_TrickHousePuzzle5_EventScript_162DE9
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162B0F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162897:: @ 8162897
+ lockall
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_16293F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628A3:: @ 81628A3
+ lockall
+ setvar 0x4009, 1
+ jump Route110_TrickHousePuzzle5_EventScript_16293F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628AF:: @ 81628AF
+ lockall
+ setvar 0x4009, 2
+ jump Route110_TrickHousePuzzle5_EventScript_16293F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628BB:: @ 81628BB
+ lockall
+ setvar 0x4009, 3
+ jump Route110_TrickHousePuzzle5_EventScript_16293F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628C7:: @ 81628C7
+ lockall
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_1629B3
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628D3:: @ 81628D3
+ lockall
+ setvar 0x4009, 1
+ jump Route110_TrickHousePuzzle5_EventScript_1629B3
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628DF:: @ 81628DF
+ lockall
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162A27
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628EB:: @ 81628EB
+ lockall
+ setvar 0x4009, 1
+ jump Route110_TrickHousePuzzle5_EventScript_162A27
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1628F7:: @ 81628F7
+ lockall
+ setvar 0x4009, 2
+ jump Route110_TrickHousePuzzle5_EventScript_162A27
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162903:: @ 8162903
+ lockall
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162A9B
+ end
+
+Route110_TrickHousePuzzle5_EventScript_16290F:: @ 816290F
+ lockall
+ setvar 0x4009, 1
+ jump Route110_TrickHousePuzzle5_EventScript_162A9B
+ end
+
+Route110_TrickHousePuzzle5_EventScript_16291B:: @ 816291B
+ lockall
+ setvar 0x4009, 0
+ jump Route110_TrickHousePuzzle5_EventScript_162B0F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162927:: @ 8162927
+ lockall
+ setvar 0x4009, 1
+ jump Route110_TrickHousePuzzle5_EventScript_162B0F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162933:: @ 8162933
+ lockall
+ setvar 0x4009, 2
+ jump Route110_TrickHousePuzzle5_EventScript_162B0F
+ end
+
+Route110_TrickHousePuzzle5_EventScript_16293F:: @ 816293F
+ setvar 0x4001, 1
+ setvar 0x4008, 1
+ playsfx 21
+ move 1, Route110_TrickHousePuzzle5_Movement_1A0833
+ waitmove 0
+ move 1, Route110_TrickHousePuzzle5_Movement_1A0835
+ waitmove 0
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ compare 0x4009, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ compare 0x4009, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ msgbox Route110_TrickHousePuzzle5_Text_19D423, 4
+ random 3
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162B83
+ case 1, Route110_TrickHousePuzzle5_EventScript_162BA6
+ case 2, Route110_TrickHousePuzzle5_EventScript_162BC9
+ end
+
+Route110_TrickHousePuzzle5_EventScript_1629B3:: @ 81629B3
+ setvar 0x4002, 1
+ setvar 0x4008, 2
+ playsfx 21
+ move 2, Route110_TrickHousePuzzle5_Movement_1A0833
+ waitmove 0
+ move 2, Route110_TrickHousePuzzle5_Movement_1A0835
+ waitmove 0
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E9B
+ compare 0x4009, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162ED3
+ compare 0x4009, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F0B
+ msgbox Route110_TrickHousePuzzle5_Text_19D636, 4
+ random 3
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162BEC
+ case 1, Route110_TrickHousePuzzle5_EventScript_162C0F
+ case 2, Route110_TrickHousePuzzle5_EventScript_162C32
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162A27:: @ 8162A27
+ setvar 0x4003, 1
+ setvar 0x4008, 3
+ playsfx 21
+ move 3, Route110_TrickHousePuzzle5_Movement_1A0833
+ waitmove 0
+ move 3, Route110_TrickHousePuzzle5_Movement_1A0835
+ waitmove 0
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ compare 0x4009, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ compare 0x4009, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ msgbox Route110_TrickHousePuzzle5_Text_19D7D3, 4
+ random 3
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162C55
+ case 1, Route110_TrickHousePuzzle5_EventScript_162C78
+ case 2, Route110_TrickHousePuzzle5_EventScript_162C9B
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162A9B:: @ 8162A9B
+ setvar 0x4004, 1
+ setvar 0x4008, 4
+ playsfx 21
+ move 4, Route110_TrickHousePuzzle5_Movement_1A0833
+ waitmove 0
+ move 4, Route110_TrickHousePuzzle5_Movement_1A0835
+ waitmove 0
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ compare 0x4009, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ compare 0x4009, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ msgbox Route110_TrickHousePuzzle5_Text_19D93D, 4
+ random 3
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162CBE
+ case 1, Route110_TrickHousePuzzle5_EventScript_162CE1
+ case 2, Route110_TrickHousePuzzle5_EventScript_162D04
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162B0F:: @ 8162B0F
+ setvar 0x4005, 1
+ setvar 0x4008, 5
+ playsfx 21
+ move 5, Route110_TrickHousePuzzle5_Movement_1A0833
+ waitmove 0
+ move 5, Route110_TrickHousePuzzle5_Movement_1A0835
+ waitmove 0
+ compare 0x4009, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162E9B
+ compare 0x4009, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162ED3
+ compare 0x4009, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F0B
+ msgbox Route110_TrickHousePuzzle5_Text_19DA9A, 4
+ random 3
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162D27
+ case 1, Route110_TrickHousePuzzle5_EventScript_162D4A
+ case 2, Route110_TrickHousePuzzle5_EventScript_162D6D
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162B83:: @ 8162B83
+ msgbox Route110_TrickHousePuzzle5_Text_19D4AE, 4
+ multichoice 0, 0, 25, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162BA6:: @ 8162BA6
+ msgbox Route110_TrickHousePuzzle5_Text_19D501, 4
+ multichoice 0, 0, 26, 1
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162BC9:: @ 8162BC9
+ msgbox Route110_TrickHousePuzzle5_Text_19D553, 4
+ multichoice 0, 0, 27, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162BEC:: @ 8162BEC
+ msgbox Route110_TrickHousePuzzle5_Text_19D68E, 4
+ multichoice 0, 0, 28, 1
+ switch RESULT
+ case 2, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162C0F:: @ 8162C0F
+ msgbox Route110_TrickHousePuzzle5_Text_19D6EC, 4
+ multichoice 0, 0, 29, 1
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162C32:: @ 8162C32
+ msgbox Route110_TrickHousePuzzle5_Text_19D745, 4
+ multichoice 0, 0, 30, 1
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162C55:: @ 8162C55
+ msgbox Route110_TrickHousePuzzle5_Text_19D81B, 4
+ multichoice 0, 0, 31, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162C78:: @ 8162C78
+ msgbox Route110_TrickHousePuzzle5_Text_19D865, 4
+ multichoice 0, 0, 32, 1
+ switch RESULT
+ case 2, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162C9B:: @ 8162C9B
+ msgbox Route110_TrickHousePuzzle5_Text_19D8BA, 4
+ multichoice 0, 0, 33, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162CBE:: @ 8162CBE
+ msgbox Route110_TrickHousePuzzle5_Text_19D987, 4
+ multichoice 0, 0, 34, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162CE1:: @ 8162CE1
+ msgbox Route110_TrickHousePuzzle5_Text_19D9DC, 4
+ multichoice 0, 0, 35, 1
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162D04:: @ 8162D04
+ msgbox Route110_TrickHousePuzzle5_Text_19DA1D, 4
+ multichoice 0, 0, 36, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162D27:: @ 8162D27
+ msgbox Route110_TrickHousePuzzle5_Text_19DAEF, 4
+ multichoice 0, 0, 37, 1
+ switch RESULT
+ case 1, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162D4A:: @ 8162D4A
+ msgbox Route110_TrickHousePuzzle5_Text_19DB43, 4
+ multichoice 0, 0, 38, 1
+ switch RESULT
+ case 0, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162D6D:: @ 8162D6D
+ msgbox Route110_TrickHousePuzzle5_Text_19DB97, 4
+ multichoice 0, 0, 39, 1
+ switch RESULT
+ case 2, Route110_TrickHousePuzzle5_EventScript_162DDF
+ jump Route110_TrickHousePuzzle5_EventScript_162D90
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162D90:: @ 8162D90
+ checksound
+ playsfx 32
+ msgbox Route110_TrickHousePuzzle5_Text_19D5CF, 4
+ move 1, Route110_TrickHousePuzzle5_Movement_16309F
+ move 2, Route110_TrickHousePuzzle5_Movement_16309F
+ move 3, Route110_TrickHousePuzzle5_Movement_16309F
+ move 4, Route110_TrickHousePuzzle5_Movement_16309F
+ move 5, Route110_TrickHousePuzzle5_Movement_16309F
+ msgbox Route110_TrickHousePuzzle5_Text_19D5ED, 4
+ waitmove 0
+ closebutton
+ msgbox Route110_TrickHousePuzzle5_Text_19D615, 4
+ closebutton
+ warp Route110_TrickHousePuzzle5, 255, 0, 21
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162DDF:: @ 8162DDF
+ checksound
+ playsfx 31
+ jump Route110_TrickHousePuzzle5_EventScript_162DE9
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162DE9:: @ 8162DE9
+ msgbox Route110_TrickHousePuzzle5_Text_19D599, 4
+ releaseall
+ end
+
+Route110_TrickHousePuzzle5_EventScript_162DF3:: @ 8162DF3
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F43
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F4E
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F59
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F64
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F6F
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162E2B:: @ 8162E2B
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F7A
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F85
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F90
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162F9B
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FA6
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162E63:: @ 8162E63
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FB1
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FBC
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FC7
+ compare 0x4009, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FD2
+ compare 0x4009, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FDD
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162E9B:: @ 8162E9B
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FE8
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FF3
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_162FFE
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163009
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163014
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162ED3:: @ 8162ED3
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_16301F
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_16302A
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163035
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163040
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_16304B
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F0B:: @ 8162F0B
+ compare 0x4008, 1
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163056
+ compare 0x4008, 2
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163061
+ compare 0x4008, 3
+ callif 1, Route110_TrickHousePuzzle5_EventScript_16306C
+ compare 0x4008, 4
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163077
+ compare 0x4008, 5
+ callif 1, Route110_TrickHousePuzzle5_EventScript_163082
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F43:: @ 8162F43
+ move 1, Route110_TrickHousePuzzle5_Movement_16308D
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F4E:: @ 8162F4E
+ move 2, Route110_TrickHousePuzzle5_Movement_16308D
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F59:: @ 8162F59
+ move 3, Route110_TrickHousePuzzle5_Movement_16308D
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F64:: @ 8162F64
+ move 4, Route110_TrickHousePuzzle5_Movement_16308D
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F6F:: @ 8162F6F
+ move 5, Route110_TrickHousePuzzle5_Movement_16308D
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F7A:: @ 8162F7A
+ move 1, Route110_TrickHousePuzzle5_Movement_16308F
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F85:: @ 8162F85
+ move 2, Route110_TrickHousePuzzle5_Movement_16308F
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F90:: @ 8162F90
+ move 3, Route110_TrickHousePuzzle5_Movement_16308F
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162F9B:: @ 8162F9B
+ move 4, Route110_TrickHousePuzzle5_Movement_16308F
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FA6:: @ 8162FA6
+ move 5, Route110_TrickHousePuzzle5_Movement_16308F
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FB1:: @ 8162FB1
+ move 1, Route110_TrickHousePuzzle5_Movement_163092
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FBC:: @ 8162FBC
+ move 2, Route110_TrickHousePuzzle5_Movement_163092
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FC7:: @ 8162FC7
+ move 3, Route110_TrickHousePuzzle5_Movement_163092
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FD2:: @ 8162FD2
+ move 4, Route110_TrickHousePuzzle5_Movement_163092
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FDD:: @ 8162FDD
+ move 5, Route110_TrickHousePuzzle5_Movement_163092
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FE8:: @ 8162FE8
+ move 1, Route110_TrickHousePuzzle5_Movement_163096
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FF3:: @ 8162FF3
+ move 2, Route110_TrickHousePuzzle5_Movement_163096
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_162FFE:: @ 8162FFE
+ move 3, Route110_TrickHousePuzzle5_Movement_163096
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163009:: @ 8163009
+ move 4, Route110_TrickHousePuzzle5_Movement_163096
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163014:: @ 8163014
+ move 5, Route110_TrickHousePuzzle5_Movement_163096
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_16301F:: @ 816301F
+ move 1, Route110_TrickHousePuzzle5_Movement_163098
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_16302A:: @ 816302A
+ move 2, Route110_TrickHousePuzzle5_Movement_163098
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163035:: @ 8163035
+ move 3, Route110_TrickHousePuzzle5_Movement_163098
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163040:: @ 8163040
+ move 4, Route110_TrickHousePuzzle5_Movement_163098
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_16304B:: @ 816304B
+ move 5, Route110_TrickHousePuzzle5_Movement_163098
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163056:: @ 8163056
+ move 1, Route110_TrickHousePuzzle5_Movement_16309B
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163061:: @ 8163061
+ move 2, Route110_TrickHousePuzzle5_Movement_16309B
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_16306C:: @ 816306C
+ move 3, Route110_TrickHousePuzzle5_Movement_16309B
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163077:: @ 8163077
+ move 4, Route110_TrickHousePuzzle5_Movement_16309B
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_EventScript_163082:: @ 8163082
+ move 5, Route110_TrickHousePuzzle5_Movement_16309B
+ waitmove 0
+ return
+
+Route110_TrickHousePuzzle5_Movement_16308D:: @ 816308D
+ step_left
+ step_end
+
+Route110_TrickHousePuzzle5_Movement_16308F:: @ 816308F
+ step_left
+ step_left
+ step_end
+
+Route110_TrickHousePuzzle5_Movement_163092:: @ 8163092
+ step_left
+ step_left
+ step_left
+ step_end
+
+Route110_TrickHousePuzzle5_Movement_163096:: @ 8163096
+ step_right
+ step_end
+
+Route110_TrickHousePuzzle5_Movement_163098:: @ 8163098
+ step_right
+ step_right
+ step_end
+
+Route110_TrickHousePuzzle5_Movement_16309B:: @ 816309B
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route110_TrickHouseEntrance_Movement_16309F:: @ 816309F
+Route110_TrickHousePuzzle5_Movement_16309F:: @ 816309F
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_02
+ step_11
+ step_03
+ step_11
+ step_00
+ step_end
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle6.s b/data/scripts/maps/Route110_TrickHousePuzzle6.s
new file mode 100644
index 000000000..b921842d7
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle6.s
@@ -0,0 +1,44 @@
+Route110_TrickHousePuzzle6_MapScripts:: @ 81630CD
+ map_script 3, Route110_TrickHousePuzzle6_MapScript1_1630D8
+ map_script 4, Route110_TrickHousePuzzle6_MapScript2_1630DC
+ .byte 0
+
+Route110_TrickHousePuzzle6_MapScript1_1630D8:: @ 81630D8
+ special 201
+ end
+
+Route110_TrickHousePuzzle6_MapScript2_1630DC:: @ 81630DC
+ map_script_2 0x4000, 16384, Route110_TrickHousePuzzle6_EventScript_1630E6
+ .2byte 0
+
+Route110_TrickHousePuzzle6_EventScript_1630E6:: @ 81630E6
+ special 202
+ end
+
+Route110_TrickHousePuzzle6_EventScript_1630EA:: @ 81630EA
+ lockall
+ compare 0x40b0, 0
+ jumpeq Route110_TrickHousePuzzle6_EventScript_1630FC
+ jump Route110_TrickHousePuzzle6_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle6_EventScript_1630FC:: @ 81630FC
+ setvar 0x40b0, 1
+ jump Route110_TrickHousePuzzle6_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle6_EventScript_163107:: @ 8163107
+ trainerbattle 0, 561, 0, Route110_TrickHousePuzzle6_Text_19DC87, Route110_TrickHousePuzzle6_Text_19DCC6
+ msgbox Route110_TrickHousePuzzle6_Text_19DCE7, 6
+ end
+
+Route110_TrickHousePuzzle6_EventScript_16311E:: @ 816311E
+ trainerbattle 0, 407, 0, Route110_TrickHousePuzzle6_Text_19DD49, Route110_TrickHousePuzzle6_Text_19DD83
+ msgbox Route110_TrickHousePuzzle6_Text_19DD96, 6
+ end
+
+Route110_TrickHousePuzzle6_EventScript_163135:: @ 8163135
+ trainerbattle 0, 554, 0, Route110_TrickHousePuzzle6_Text_19DDCF, Route110_TrickHousePuzzle6_Text_19DDFE
+ msgbox Route110_TrickHousePuzzle6_Text_19DE44, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle7.s b/data/scripts/maps/Route110_TrickHousePuzzle7.s
new file mode 100644
index 000000000..a50af06c4
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle7.s
@@ -0,0 +1,260 @@
+Route110_TrickHousePuzzle7_MapScripts:: @ 816314C
+ map_script 5, Route110_TrickHousePuzzle7_MapScript1_163161
+ map_script 3, Route110_TrickHousePuzzle7_MapScript1_163253
+ map_script 1, Route110_TrickHousePuzzle7_MapScript1_16326F
+ map_script 2, Route110_TrickHousePuzzle7_MapScript2_16327B
+ .byte 0
+
+Route110_TrickHousePuzzle7_MapScript1_163161:: @ 8163161
+ call Route110_TrickHousePuzzle7_EventScript_163167
+ end
+
+Route110_TrickHousePuzzle7_EventScript_163167:: @ 8163167
+ checkflag 194
+ callif 1, Route110_TrickHousePuzzle7_EventScript_163195
+ checkflag 195
+ callif 1, Route110_TrickHousePuzzle7_EventScript_1631A8
+ checkflag 196
+ callif 1, Route110_TrickHousePuzzle7_EventScript_1631BB
+ checkflag 197
+ callif 1, Route110_TrickHousePuzzle7_EventScript_1631CE
+ checkflag 198
+ callif 1, Route110_TrickHousePuzzle7_EventScript_1631E1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_163195:: @ 8163195
+ setmaptile 13, 17, 610, 0
+ setmaptile 12, 16, 575, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_1631A8:: @ 81631A8
+ setmaptile 12, 13, 610, 0
+ setmaptile 12, 11, 575, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_1631BB:: @ 81631BB
+ setmaptile 7, 12, 610, 0
+ setmaptile 5, 10, 575, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_1631CE:: @ 81631CE
+ setmaptile 6, 6, 636, 0
+ setmaptile 4, 4, 575, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_1631E1:: @ 81631E1
+ setmaptile 8, 4, 609, 0
+ setmaptile 7, 5, 575, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_1631F4:: @ 81631F4
+ setmaptile 13, 17, 611, 0
+ setmaptile 12, 16, 574, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_163207:: @ 8163207
+ setmaptile 12, 13, 609, 0
+ setmaptile 12, 11, 574, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_16321A:: @ 816321A
+ setmaptile 7, 12, 611, 0
+ setmaptile 5, 10, 574, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_16322D:: @ 816322D
+ setmaptile 6, 6, 635, 0
+ setmaptile 4, 4, 574, 1
+ return
+
+Route110_TrickHousePuzzle7_EventScript_163240:: @ 8163240
+ setmaptile 8, 4, 608, 0
+ setmaptile 7, 5, 574, 1
+ return
+
+Route110_TrickHousePuzzle7_MapScript1_163253:: @ 8163253
+ compare 0x40b6, 1
+ jumpeq Route110_TrickHousePuzzle7_EventScript_16326E
+ clearflag 194
+ clearflag 195
+ clearflag 196
+ clearflag 197
+ clearflag 198
+ end
+
+Route110_TrickHousePuzzle7_EventScript_16326E:: @ 816326E
+ end
+
+Route110_TrickHousePuzzle7_MapScript1_16326F:: @ 816326F
+ compare 0x40b6, 1
+ callif 1, Route110_TrickHousePuzzle7_EventScript_163167
+ end
+
+Route110_TrickHousePuzzle7_MapScript2_16327B:: @ 816327B
+ map_script_2 0x40b6, 1, Route110_TrickHousePuzzle7_EventScript_163285
+ .2byte 0
+
+Route110_TrickHousePuzzle7_EventScript_163285:: @ 8163285
+ setvar 0x40b6, 0
+ end
+
+Route110_TrickHousePuzzle7_EventScript_16328B:: @ 816328B
+ lockall
+ compare 0x40b1, 0
+ jumpeq Route110_TrickHousePuzzle7_EventScript_16329D
+ jump Route110_TrickHousePuzzle7_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle7_EventScript_16329D:: @ 816329D
+ setvar 0x40b1, 1
+ jump Route110_TrickHousePuzzle7_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1632A8:: @ 81632A8
+ lockall
+ setvar 0x40b6, 1
+ warpteleport Route110_TrickHousePuzzle7, 255, 3, 19
+ waitstate
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1632B9:: @ 81632B9
+ lockall
+ pause 32
+ checkflag 194
+ callif 0, Route110_TrickHousePuzzle7_EventScript_163195
+ checkflag 194
+ callif 1, Route110_TrickHousePuzzle7_EventScript_1631F4
+ special 142
+ playsfx 36
+ checkflag 194
+ jumpif 0, Route110_TrickHousePuzzle7_EventScript_1633A4
+ checkflag 194
+ jumpeq Route110_TrickHousePuzzle7_EventScript_1633A9
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1632E8:: @ 81632E8
+ lockall
+ pause 32
+ checkflag 195
+ callif 0, Route110_TrickHousePuzzle7_EventScript_1631A8
+ checkflag 195
+ callif 1, Route110_TrickHousePuzzle7_EventScript_163207
+ special 142
+ playsfx 36
+ checkflag 195
+ jumpif 0, Route110_TrickHousePuzzle7_EventScript_1633AE
+ checkflag 195
+ jumpeq Route110_TrickHousePuzzle7_EventScript_1633B3
+ end
+
+Route110_TrickHousePuzzle7_EventScript_163317:: @ 8163317
+ lockall
+ pause 32
+ checkflag 196
+ callif 0, Route110_TrickHousePuzzle7_EventScript_1631BB
+ checkflag 196
+ callif 1, Route110_TrickHousePuzzle7_EventScript_16321A
+ special 142
+ playsfx 36
+ checkflag 196
+ jumpif 0, Route110_TrickHousePuzzle7_EventScript_1633B8
+ checkflag 196
+ jumpeq Route110_TrickHousePuzzle7_EventScript_1633BD
+ end
+
+Route110_TrickHousePuzzle7_EventScript_163346:: @ 8163346
+ lockall
+ pause 32
+ checkflag 197
+ callif 0, Route110_TrickHousePuzzle7_EventScript_1631CE
+ checkflag 197
+ callif 1, Route110_TrickHousePuzzle7_EventScript_16322D
+ special 142
+ playsfx 36
+ checkflag 197
+ jumpif 0, Route110_TrickHousePuzzle7_EventScript_1633C2
+ checkflag 197
+ jumpeq Route110_TrickHousePuzzle7_EventScript_1633C7
+ end
+
+Route110_TrickHousePuzzle7_EventScript_163375:: @ 8163375
+ lockall
+ pause 32
+ checkflag 198
+ callif 0, Route110_TrickHousePuzzle7_EventScript_1631E1
+ checkflag 198
+ callif 1, Route110_TrickHousePuzzle7_EventScript_163240
+ special 142
+ playsfx 36
+ checkflag 198
+ jumpif 0, Route110_TrickHousePuzzle7_EventScript_1633CC
+ checkflag 198
+ jumpeq Route110_TrickHousePuzzle7_EventScript_1633D1
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633A4:: @ 81633A4
+ setflag 194
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633A9:: @ 81633A9
+ clearflag 194
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633AE:: @ 81633AE
+ setflag 195
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633B3:: @ 81633B3
+ clearflag 195
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633B8:: @ 81633B8
+ setflag 196
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633BD:: @ 81633BD
+ clearflag 196
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633C2:: @ 81633C2
+ setflag 197
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633C7:: @ 81633C7
+ clearflag 197
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633CC:: @ 81633CC
+ setflag 198
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633D1:: @ 81633D1
+ clearflag 198
+ releaseall
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633D6:: @ 81633D6
+ trainerbattle 0, 237, 0, Route110_TrickHousePuzzle7_Text_19DF0B, Route110_TrickHousePuzzle7_Text_19DF4B
+ msgbox Route110_TrickHousePuzzle7_Text_19DF7E, 6
+ end
+
+Route110_TrickHousePuzzle7_EventScript_1633ED:: @ 81633ED
+ trainerbattle 0, 105, 0, Route110_TrickHousePuzzle7_Text_19DFBB, Route110_TrickHousePuzzle7_Text_19DFF2
+ msgbox Route110_TrickHousePuzzle7_Text_19E00F, 6
+ end
+
+Route110_TrickHousePuzzle7_EventScript_163404:: @ 8163404
+ trainerbattle 0, 248, 0, Route110_TrickHousePuzzle7_Text_19E054, Route110_TrickHousePuzzle7_Text_19E098
+ msgbox Route110_TrickHousePuzzle7_Text_19E0B2, 6
+ end
+
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle8.s b/data/scripts/maps/Route110_TrickHousePuzzle8.s
new file mode 100644
index 000000000..99100e4f6
--- /dev/null
+++ b/data/scripts/maps/Route110_TrickHousePuzzle8.s
@@ -0,0 +1,30 @@
+Route110_TrickHousePuzzle8_MapScripts:: @ 816341B
+ .byte 0
+
+Route110_TrickHousePuzzle8_EventScript_16341C:: @ 816341C
+ lockall
+ compare 0x40b2, 0
+ jumpeq Route110_TrickHousePuzzle8_EventScript_16342E
+ jump Route110_TrickHousePuzzle8_EventScript_161892
+ end
+
+Route110_TrickHousePuzzle8_EventScript_16342E:: @ 816342E
+ setvar 0x40b2, 1
+ jump Route110_TrickHousePuzzle8_EventScript_16189C
+ end
+
+Route110_TrickHousePuzzle8_EventScript_163439:: @ 8163439
+ trainerbattle 0, 76, 0, Route110_TrickHousePuzzle8_Text_19E178, Route110_TrickHousePuzzle8_Text_19E1A1
+ msgbox Route110_TrickHousePuzzle8_Text_19E1C5, 6
+ end
+
+Route110_TrickHousePuzzle8_EventScript_163450:: @ 8163450
+ trainerbattle 0, 93, 0, Route110_TrickHousePuzzle8_Text_19E201, Route110_TrickHousePuzzle8_Text_19E22C
+ msgbox Route110_TrickHousePuzzle8_Text_19E24C, 6
+ end
+
+Route110_TrickHousePuzzle8_EventScript_163467:: @ 8163467
+ trainerbattle 0, 77, 0, Route110_TrickHousePuzzle8_Text_19E284, Route110_TrickHousePuzzle8_Text_19E2C1
+ msgbox Route110_TrickHousePuzzle8_Text_19E2EE, 6
+ end
+
diff --git a/data/scripts/maps/Route111.s b/data/scripts/maps/Route111.s
new file mode 100644
index 000000000..4a977f132
--- /dev/null
+++ b/data/scripts/maps/Route111.s
@@ -0,0 +1,438 @@
+Route111_MapScripts:: @ 814FF91
+ map_script 1, Route111_MapScript1_14FF9C
+ map_script 3, Route111_MapScript1_14FFB9
+ .byte 0
+
+Route111_MapScript1_14FF9C:: @ 814FF9C
+ checkflag 228
+ callif 0, Route111_EventScript_14FFA6
+ end
+
+Route111_EventScript_14FFA6:: @ 814FFA6
+ setmaptile 29, 86, 124, 1
+ setmaptile 29, 87, 145, 1
+ return
+
+Route111_MapScript1_14FFB9:: @ 814FFB9
+ call Route111_EventScript_14FFCD
+ call Route111_EventScript_1AE313
+ checktrainerflag 312
+ jumpif 0, Route111_EventScript_15000D
+ end
+
+Route111_EventScript_14FFCD:: @ 814FFCD
+ getplayerxy 0x4000, 0x4001
+ compare 0x4001, 34
+ jumpif 0, Route111_EventScript_15000C
+ compare 0x4001, 107
+ jumpif 2, Route111_EventScript_15000C
+ compare 0x4001, 72
+ jumpif 2, Route111_EventScript_150009
+ compare 0x4000, 2000
+ jumpif 2, Route111_EventScript_15000C
+ compare 0x4000, 8
+ jumpif 0, Route111_EventScript_15000C
+
+Route111_EventScript_150009:: @ 8150009
+ setweather 8
+
+Route111_EventScript_15000C:: @ 815000C
+ return
+
+Route111_EventScript_15000D:: @ 815000D
+ clearflag 768
+ setflag 769
+ setflag 770
+ setflag 771
+ settrainerflag 292
+ settrainerflag 299
+ settrainerflag 606
+ end
+
+Route111_EventScript_150023:: @ 8150023
+ lockall
+ msgbox Route111_Text_16FA54, 5
+ compare RESULT, 0
+ jumpeq Route111_EventScript_15005F
+ giveitem ITEM_ROOT_FOSSIL
+ closebutton
+ setflag 963
+ setflag 964
+ disappear 34
+ pause 30
+ move 35, Route111_Movement_1500AF
+ waitmove 0
+ disappear 35
+ releaseall
+ end
+
+Route111_EventScript_15005F:: @ 815005F
+ msgbox Route111_Text_16FACE, 4
+ releaseall
+ end
+
+Route111_EventScript_150069:: @ 8150069
+ lockall
+ msgbox Route111_Text_16FAED, 5
+ compare RESULT, 0
+ jumpeq Route111_EventScript_1500A5
+ giveitem ITEM_CLAW_FOSSIL
+ closebutton
+ setflag 964
+ setflag 963
+ disappear 35
+ pause 30
+ move 34, Route111_Movement_1500AF
+ waitmove 0
+ disappear 34
+ releaseall
+ end
+
+Route111_EventScript_1500A5:: @ 81500A5
+ msgbox Route111_Text_16FB67, 4
+ releaseall
+ end
+
+Route111_Movement_1500AF:: @ 81500AF
+ step_55
+ step_12
+ step_54
+ step_12
+ step_55
+ step_12
+ step_54
+ step_12
+ step_55
+ step_13
+ step_54
+ step_13
+ step_55
+ step_13
+ step_54
+ step_13
+ step_55
+ step_14
+ step_54
+ step_14
+ step_55
+ step_end
+
+Route111_EventScript_1500C5:: @ 81500C5
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2252
+ jumpeq Route111_EventScript_150100
+ msgbox Route111_Text_1C56F0, 4
+ giveitem ITEM_RAZZ_BERRY
+ compare RESULT, 0
+ jumpeq Route111_EventScript_1A029B
+ setflag 2252
+ special 148
+ msgbox Route111_Text_1C5781, 4
+ release
+ end
+
+Route111_EventScript_150100:: @ 8150100
+ msgbox Route111_Text_1C57D2, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15010a, 0xc
+
+Route111_EventScript_150116:: @ 8150116
+ lockall
+ setvar 0x8004, 1
+ jump Route111_EventScript_15013A
+ end
+
+Route111_EventScript_150122:: @ 8150122
+ lockall
+ setvar 0x8004, 2
+ jump Route111_EventScript_15013A
+ end
+
+ .incbin "baserom.gba", 0x15012e, 0xc
+
+Route111_EventScript_15013A:: @ 815013A
+ checkitem ITEM_GO_GOGGLES, 1
+ compare RESULT, 0
+ jumpeq Route111_EventScript_150151
+ setvar 0x4003, 1
+ releaseall
+ end
+
+Route111_EventScript_150151:: @ 8150151
+ msgbox Route111_Text_1A0F93, 4
+ closebutton
+ compare 0x8004, 0
+ callif 1, Route111_EventScript_150188
+ compare 0x8004, 1
+ callif 1, Route111_EventScript_150193
+ compare 0x8004, 2
+ callif 1, Route111_EventScript_15019E
+ compare 0x8004, 3
+ callif 1, Route111_EventScript_1501A9
+ releaseall
+ end
+
+Route111_EventScript_150188:: @ 8150188
+ move 255, Route111_Movement_1501B4
+ waitmove 0
+ return
+
+Route111_EventScript_150193:: @ 8150193
+ move 255, Route111_Movement_1501B6
+ waitmove 0
+ return
+
+Route111_EventScript_15019E:: @ 815019E
+ move 255, Route111_Movement_1501B8
+ waitmove 0
+ return
+
+Route111_EventScript_1501A9:: @ 81501A9
+ move 255, Route111_Movement_1501BA
+ waitmove 0
+ return
+
+Route111_Movement_1501B4:: @ 81501B4
+ step_up
+ step_end
+
+Route111_Movement_1501B6:: @ 81501B6
+ step_down
+ step_end
+
+Route111_Movement_1501B8:: @ 81501B8
+ step_left
+ step_end
+
+Route111_Movement_1501BA:: @ 81501BA
+ step_right
+ step_end
+
+Route111_EventScript_1501BC:: @ 81501BC
+ setweather 2
+ fademusic 360
+ doweather
+ setvar 0x4003, 0
+ end
+
+Route111_EventScript_1501C9:: @ 81501C9
+ setweather 8
+ fademusic 409
+ doweather
+ end
+
+Route111_EventScript_1501D1:: @ 81501D1
+ lock
+ faceplayer
+ setflag 2115
+ msgbox Route111_Text_16F705, 5
+ compare RESULT, 1
+ jumpeq Route111_EventScript_1501F3
+ msgbox Route111_Text_16F785, 4
+ release
+ end
+
+Route111_EventScript_1501F3:: @ 81501F3
+ msgbox Route111_Text_16F7B3, 4
+ trainerbattle 3, 292, 0, Route111_Text_16F7D2
+ move 1, Route111_Movement_1A0841
+ waitmove 0
+ call Route111_EventScript_150348
+ msgbox Route111_Text_16F7FF, 4
+ closebutton
+ move 1, Route111_Movement_150356
+ waitmove 0
+ disappear 1
+ call Route111_EventScript_15034F
+ move 255, Route111_Movement_15035B
+ waitmove 0
+ call Route111_EventScript_150348
+ reappear 2
+ move 2, Route111_Movement_150359
+ waitmove 0
+ call Route111_EventScript_15034F
+ msgbox Route111_Text_16F82D, 4
+ trainerbattle 3, 299, 0, Route111_Text_16F8A6
+ move 2, Route111_Movement_1A0841
+ waitmove 0
+ call Route111_EventScript_150348
+ msgbox Route111_Text_16F8D5, 4
+ closebutton
+ move 2, Route111_Movement_150356
+ waitmove 0
+ disappear 2
+ call Route111_EventScript_15034F
+ move 255, Route111_Movement_15035B
+ waitmove 0
+ call Route111_EventScript_150348
+ reappear 3
+ move 3, Route111_Movement_150359
+ waitmove 0
+ call Route111_EventScript_15034F
+ msgbox Route111_Text_16F90E, 4
+ trainerbattle 3, 606, 0, Route111_Text_16F956
+ move 3, Route111_Movement_1A0841
+ waitmove 0
+ call Route111_EventScript_150348
+ msgbox Route111_Text_16F96C, 4
+ closebutton
+ move 3, Route111_Movement_150356
+ waitmove 0
+ disappear 3
+ call Route111_EventScript_15034F
+ move 255, Route111_Movement_15035B
+ waitmove 0
+ call Route111_EventScript_150348
+ reappear 4
+ move 4, Route111_Movement_150359
+ waitmove 0
+ call Route111_EventScript_15034F
+ msgbox Route111_Text_16F991, 4
+ trainerbattle 3, 312, 0, Route111_Text_16F9EC
+ msgbox Route111_Text_16FA22, 4
+ closebutton
+ move 4, Route111_Movement_1A0841
+ waitmove 0
+ call Route111_EventScript_150348
+ move 4, Route111_Movement_150356
+ waitmove 0
+ disappear 4
+ call Route111_EventScript_15034F
+ release
+ end
+
+Route111_EventScript_150348:: @ 8150348
+ setdooropened 13, 113
+ doorchange
+ return
+
+Route111_EventScript_15034F:: @ 815034F
+ setdoorclosed 13, 113
+ doorchange
+ return
+
+Route111_Movement_150356:: @ 8150356
+ step_26
+ step_up
+ step_end
+
+Route111_Movement_150359:: @ 8150359
+ step_down
+ step_end
+
+Route111_Movement_15035B:: @ 815035B
+ step_14
+ step_14
+ step_14
+ step_end
+
+Route111_EventScript_15035F:: @ 815035F
+ msgbox Route111_Text_16FC9C, 3
+ end
+
+Route111_EventScript_150368:: @ 8150368
+ msgbox Route111_Text_16FCB6, 3
+ end
+
+Route111_EventScript_150371:: @ 8150371
+ msgbox Route111_Text_16FCEF, 3
+ end
+
+Route111_EventScript_15037A:: @ 815037A
+ msgbox Route111_Text_16FD05, 3
+ end
+
+Route111_EventScript_150383:: @ 8150383
+ msgbox Route111_Text_16FD1B, 3
+ end
+
+Route111_EventScript_15038C:: @ 815038C
+ msgbox Route111_Text_16FD55, 3
+ end
+
+Route111_EventScript_150395:: @ 8150395
+ msgbox Route111_Text_16FB86, 2
+ end
+
+Route111_EventScript_15039E:: @ 815039E
+ msgbox Route111_Text_16FC3A, 2
+ end
+
+Route111_EventScript_1503A7:: @ 81503A7
+ trainerbattle 0, 211, 0, Route111_Text_1BAB4B, Route111_Text_1BABC7
+ msgbox Route111_Text_1BAC10, 6
+ end
+
+Route111_EventScript_1503BE:: @ 81503BE
+ trainerbattle 0, 469, 0, Route111_Text_1BAC60, Route111_Text_1BACC5
+ msgbox Route111_Text_1BACD8, 6
+ end
+
+Route111_EventScript_1503D5:: @ 81503D5
+ trainerbattle 0, 212, 0, Route111_Text_1BAD4B, Route111_Text_1BADA3
+ msgbox Route111_Text_1BADC2, 6
+ end
+
+Route111_EventScript_1503EC:: @ 81503EC
+ trainerbattle 0, 470, 0, Route111_Text_1BAE24, Route111_Text_1BAE6E
+ msgbox Route111_Text_1BAE81, 6
+ end
+
+Route111_EventScript_150403:: @ 8150403
+ trainerbattle 0, 44, 0, Route111_Text_1BAEC9, Route111_Text_1BAF14
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route111_EventScript_15042A
+ msgbox Route111_Text_1BAF5B, 6
+ end
+
+Route111_EventScript_15042A:: @ 815042A
+ trainerbattle 5, 44, 0, Route111_Text_1BAFC1, Route111_Text_1BB034
+ msgbox Route111_Text_1BB070, 6
+ end
+
+Route111_EventScript_150441:: @ 8150441
+ trainerbattle 0, 218, 0, Route111_Text_1BB111, Route111_Text_1BB140
+ msgbox Route111_Text_1BB15B, 6
+ end
+
+Route111_EventScript_150458:: @ 8150458
+ trainerbattle 0, 476, 0, Route111_Text_1BB199, Route111_Text_1BB1D8
+ msgbox Route111_Text_1BB1F6, 6
+ end
+
+Route111_EventScript_15046F:: @ 815046F
+ trainerbattle 0, 189, 0, Route111_Text_1BB250, Route111_Text_1BB27E
+ msgbox Route111_Text_1BB290, 6
+ end
+
+Route111_EventScript_150486:: @ 8150486
+ trainerbattle 0, 78, 0, Route111_Text_1BB2E3, Route111_Text_1BB313
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route111_EventScript_1504AD
+ msgbox Route111_Text_1BB33E, 6
+ end
+
+Route111_EventScript_1504AD:: @ 81504AD
+ trainerbattle 5, 78, 0, Route111_Text_1BB3A7, Route111_Text_1BB3FA
+ msgbox Route111_Text_1BB40E, 6
+ end
+
+Route111_EventScript_1504C4:: @ 81504C4
+ trainerbattle 0, 94, 0, Route111_Text_1BB44F, Route111_Text_1BB49F
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route111_EventScript_1504EB
+ msgbox Route111_Text_1BB4CE, 6
+ end
+
+Route111_EventScript_1504EB:: @ 81504EB
+ trainerbattle 5, 94, 0, Route111_Text_1BB529, Route111_Text_1BB5A2
+ msgbox Route111_Text_1BB5C1, 6
+ end
+
diff --git a/data/scripts/maps/Route111_OldLadysRestStop.s b/data/scripts/maps/Route111_OldLadysRestStop.s
new file mode 100644
index 000000000..81f66b738
--- /dev/null
+++ b/data/scripts/maps/Route111_OldLadysRestStop.s
@@ -0,0 +1,34 @@
+Route111_OldLadysRestStop_MapScripts:: @ 815BFD1
+ map_script 3, Route111_OldLadysRestStop_MapScript1_15BFD7
+ .byte 0
+
+Route111_OldLadysRestStop_MapScript1_15BFD7:: @ 815BFD7
+ setflag 2113
+ end
+
+Route111_OldLadysRestStop_EventScript_15BFDB:: @ 815BFDB
+ lock
+ faceplayer
+ msgbox Route111_OldLadysRestStop_Text_1923AF, 5
+ compare RESULT, 1
+ jumpeq Route111_OldLadysRestStop_EventScript_15BFFC
+ compare RESULT, 0
+ jumpeq Route111_OldLadysRestStop_EventScript_15C029
+ end
+
+Route111_OldLadysRestStop_EventScript_15BFFC:: @ 815BFFC
+ msgbox Route111_OldLadysRestStop_Text_192423, 4
+ closebutton
+ call Route111_OldLadysRestStop_EventScript_1A02CA
+ msgbox Route111_OldLadysRestStop_Text_19244D, 5
+ compare RESULT, 1
+ jumpeq Route111_OldLadysRestStop_EventScript_15BFFC
+ compare RESULT, 0
+ jumpeq Route111_OldLadysRestStop_EventScript_15C029
+ end
+
+Route111_OldLadysRestStop_EventScript_15C029:: @ 815C029
+ msgbox Route111_OldLadysRestStop_Text_1924C6, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route111_WinstrateFamilysHouse.s b/data/scripts/maps/Route111_WinstrateFamilysHouse.s
new file mode 100644
index 000000000..b48269333
--- /dev/null
+++ b/data/scripts/maps/Route111_WinstrateFamilysHouse.s
@@ -0,0 +1,61 @@
+Route111_WinstrateFamilysHouse_MapScripts:: @ 815BF24
+ .byte 0
+
+Route111_WinstrateFamilysHouse_EventScript_15BF25:: @ 815BF25
+ lock
+ faceplayer
+ setvar 0x8008, 2
+ msgbox Route111_WinstrateFamilysHouse_Text_191FCE, 4
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BF3A:: @ 815BF3A
+ lock
+ faceplayer
+ setvar 0x8008, 3
+ checkflag 277
+ jumpeq Route111_WinstrateFamilysHouse_EventScript_15BF72
+ msgbox Route111_WinstrateFamilysHouse_Text_19208A, 4
+ giveitem ITEM_MACHO_BRACE
+ compare RESULT, 0
+ jumpeq Route111_WinstrateFamilysHouse_EventScript_1A029B
+ setflag 277
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BF72:: @ 815BF72
+ msgbox Route111_WinstrateFamilysHouse_Text_19214D, 4
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BF80:: @ 815BF80
+ lock
+ faceplayer
+ setvar 0x8008, 1
+ msgbox Route111_WinstrateFamilysHouse_Text_192190, 4
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BF95:: @ 815BF95
+ lock
+ faceplayer
+ setvar 0x8008, 4
+ checkflag 4
+ jumpeq Route111_WinstrateFamilysHouse_EventScript_15BFB6
+ msgbox Route111_WinstrateFamilysHouse_Text_192219, 4
+ setflag 4
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BFB6:: @ 815BFB6
+ msgbox Route111_WinstrateFamilysHouse_Text_192334, 4
+ jump Route111_WinstrateFamilysHouse_EventScript_15BFC4
+ end
+
+Route111_WinstrateFamilysHouse_EventScript_15BFC4:: @ 815BFC4
+ closebutton
+ move 0x8008, Route111_WinstrateFamilysHouse_Movement_1A083D
+ waitmove 0
+ release
+ end
+
diff --git a/data/scripts/maps/Route112.s b/data/scripts/maps/Route112.s
new file mode 100644
index 000000000..b97a28d75
--- /dev/null
+++ b/data/scripts/maps/Route112.s
@@ -0,0 +1,61 @@
+Route112_MapScripts:: @ 8150502
+ map_script 3, Route112_MapScript1_150508
+ .byte 0
+
+Route112_MapScript1_150508:: @ 8150508
+ call Route112_EventScript_1A0196
+ setvar 0x40bd, 0
+ end
+
+Route112_EventScript_150513:: @ 8150513
+ msgbox Route112_Text_16FDF0, 2
+ end
+
+Route112_EventScript_15051C:: @ 815051C
+ msgbox Route112_Text_16FE3E, 2
+ end
+
+Route112_EventScript_150525:: @ 8150525
+ msgbox Route112_Text_16FEED, 3
+ end
+
+Route112_EventScript_15052E:: @ 815052E
+ msgbox Route112_Text_16FF19, 3
+ end
+
+Route112_EventScript_150537:: @ 8150537
+ msgbox Route112_Text_16FF64, 3
+ end
+
+Route112_EventScript_150540:: @ 8150540
+ msgbox Route112_Text_16FE7A, 2
+ end
+
+Route112_EventScript_150549:: @ 8150549
+ trainerbattle 0, 626, 0, Route112_Text_1BB619, Route112_Text_1BB655
+ msgbox Route112_Text_1BB667, 6
+ end
+
+Route112_EventScript_150560:: @ 8150560
+ trainerbattle 0, 627, 0, Route112_Text_1BB6A0, Route112_Text_1BB707
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route112_EventScript_150587
+ msgbox Route112_Text_1BB721, 6
+ end
+
+Route112_EventScript_150587:: @ 8150587
+ trainerbattle 5, 627, 0, Route112_Text_1BB7C7, Route112_Text_1BB801
+ msgbox Route112_Text_1BB819, 6
+ end
+
+Route112_EventScript_15059E:: @ 815059E
+ trainerbattle 0, 213, 0, Route112_Text_1BB893, Route112_Text_1BB8B6
+ msgbox Route112_Text_1BB8BE, 6
+ end
+
+Route112_EventScript_1505B5:: @ 81505B5
+ trainerbattle 0, 471, 0, Route112_Text_1BB8F0, Route112_Text_1BB942
+ msgbox Route112_Text_1BB958, 6
+ end
+
diff --git a/data/scripts/maps/Route112_CableCarStation.s b/data/scripts/maps/Route112_CableCarStation.s
new file mode 100644
index 000000000..4d4ab5c92
--- /dev/null
+++ b/data/scripts/maps/Route112_CableCarStation.s
@@ -0,0 +1,89 @@
+Route112_CableCarStation_MapScripts:: @ 815C033
+ map_script 3, Route112_CableCarStation_MapScript1_15C03E
+ map_script 2, Route112_CableCarStation_MapScript2_15C05E
+ .byte 0
+
+Route112_CableCarStation_MapScript1_15C03E:: @ 815C03E
+ warp6 Route112, 255, 28, 28
+ compare 0x40a3, 2
+ callif 1, Route112_CableCarStation_EventScript_15C052
+ end
+
+Route112_CableCarStation_EventScript_15C052:: @ 815C052
+ movespriteperm 1, 7, 4
+ spritebehave 1, 9
+ return
+
+Route112_CableCarStation_MapScript2_15C05E:: @ 815C05E
+ map_script_2 0x40a3, 2, Route112_CableCarStation_EventScript_15C068
+ .2byte 0
+
+Route112_CableCarStation_EventScript_15C068:: @ 815C068
+ lockall
+ move 255, Route112_CableCarStation_Movement_15C0F5
+ move 1, Route112_CableCarStation_Movement_15C0EB
+ waitmove 0
+ setvar 0x40a3, 0
+ movespriteperm 1, 6, 7
+ spritebehave 1, 8
+ releaseall
+ end
+
+Route112_CableCarStation_EventScript_15C08C:: @ 815C08C
+ lock
+ faceplayer
+ msgbox Route112_CableCarStation_Text_1924F5, 5
+ compare RESULT, 1
+ jumpeq Route112_CableCarStation_EventScript_15C0AD
+ compare RESULT, 0
+ jumpeq Route112_CableCarStation_EventScript_15C0DC
+ end
+
+Route112_CableCarStation_EventScript_15C0AD:: @ 815C0AD
+ msgbox Route112_CableCarStation_Text_1925A9, 4
+ closebutton
+ move 1, Route112_CableCarStation_Movement_15C0E6
+ move 255, Route112_CableCarStation_Movement_15C0F0
+ waitmove 0
+ setvar 0x8004, 0
+ setvar 0x40a3, 1
+ inccounter 48
+ special 151
+ special 152
+ waitstate
+ release
+ end
+
+Route112_CableCarStation_EventScript_15C0DC:: @ 815C0DC
+ msgbox Route112_CableCarStation_Text_192548, 4
+ release
+ end
+
+Route112_CableCarStation_Movement_15C0E6:: @ 815C0E6
+ step_up
+ step_up
+ step_right
+ step_27
+ step_end
+
+Route112_CableCarStation_Movement_15C0EB:: @ 815C0EB
+ step_14
+ step_left
+ step_down
+ step_down
+ step_end
+
+Route112_CableCarStation_Movement_15C0F0:: @ 815C0F0
+ step_up
+ step_up
+ step_up
+ step_14
+ step_end
+
+Route112_CableCarStation_Movement_15C0F5:: @ 815C0F5
+ step_down
+ step_down
+ step_down
+ step_14
+ step_end
+
diff --git a/data/scripts/maps/Route113.s b/data/scripts/maps/Route113.s
new file mode 100644
index 000000000..d56e7c5d5
--- /dev/null
+++ b/data/scripts/maps/Route113.s
@@ -0,0 +1,101 @@
+Route113_MapScripts:: @ 81505CC
+ map_script 5, Route113_MapScript1_1505D7
+ map_script 3, Route113_MapScript1_1505DA
+ .byte 0
+
+Route113_MapScript1_1505D7:: @ 81505D7
+ tileeffect 1
+ end
+
+Route113_MapScript1_1505DA:: @ 81505DA
+ call Route113_EventScript_1505E5
+ call Route113_EventScript_1A0196
+ end
+
+Route113_EventScript_1505E5:: @ 81505E5
+ getplayerxy 0x4000, 0x4001
+ compare 0x4000, 19
+ jumpif 0, Route113_EventScript_150604
+ compare 0x4000, 84
+ jumpif 2, Route113_EventScript_150604
+ setweather 7
+ return
+
+Route113_EventScript_150604:: @ 8150604
+ return
+
+Route113_EventScript_150605:: @ 8150605
+ msgbox Route113_Text_16FF7F, 2
+ end
+
+Route113_EventScript_15060E:: @ 815060E
+ msgbox Route113_Text_16FFEE, 2
+ end
+
+Route113_EventScript_150617:: @ 8150617
+ msgbox Route113_Text_170065, 3
+ end
+
+Route113_EventScript_150620:: @ 8150620
+ msgbox Route113_Text_17007B, 3
+ end
+
+Route113_EventScript_150629:: @ 8150629
+ msgbox Route113_Text_17011D, 3
+ end
+
+Route113_EventScript_150632:: @ 8150632
+ msgbox Route113_Text_170096, 3
+ end
+
+Route113_EventScript_15063B:: @ 815063B
+ trainerbattle 0, 326, 0, Route113_Text_1BB9BA, Route113_Text_1BB9E6
+ msgbox Route113_Text_1BB9FB, 6
+ end
+
+Route113_EventScript_150652:: @ 8150652
+ trainerbattle 0, 327, 0, Route113_Text_1BBA62, Route113_Text_1BBA9B
+ msgbox Route113_Text_1BBAB7, 6
+ end
+
+Route113_EventScript_150669:: @ 8150669
+ trainerbattle 0, 434, 0, Route113_Text_1BBB27, Route113_Text_1BBB7A
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route113_EventScript_150690
+ msgbox Route113_Text_1BBB9A, 6
+ end
+
+Route113_EventScript_150690:: @ 8150690
+ trainerbattle 5, 434, 0, Route113_Text_1BBBCE, Route113_Text_1BBC0D
+ msgbox Route113_Text_1BBC1C, 6
+ end
+
+Route113_EventScript_1506A7:: @ 81506A7
+ trainerbattle 0, 419, 0, Route113_Text_1BBC59, Route113_Text_1BBC90
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route113_EventScript_1506CE
+ msgbox Route113_Text_1BBCAB, 6
+ end
+
+Route113_EventScript_1506CE:: @ 81506CE
+ trainerbattle 5, 419, 0, Route113_Text_1BBCE6, Route113_Text_1BBD1D
+ msgbox Route113_Text_1BBD38, 6
+ end
+
+Route113_EventScript_1506E5:: @ 81506E5
+ trainerbattle 0, 420, 0, Route113_Text_1BBD92, Route113_Text_1BBDC6
+ msgbox Route113_Text_1BBE1D, 6
+ end
+
+Route113_EventScript_1506FC:: @ 81506FC
+ trainerbattle 4, 677, 0, Route113_Text_1BBE65, Route113_Text_1BBEA1, Route113_Text_1BBF25
+ msgbox Route113_Text_1BBEE4, 6
+ end
+
+Route113_EventScript_150717:: @ 8150717
+ trainerbattle 4, 677, 0, Route113_Text_1BBF62, Route113_Text_1BBF9D, Route113_Text_1BC021
+ msgbox Route113_Text_1BBFE2, 6
+ end
+
diff --git a/data/scripts/maps/Route113_GlassWorkshop.s b/data/scripts/maps/Route113_GlassWorkshop.s
new file mode 100644
index 000000000..51a4b7b7e
--- /dev/null
+++ b/data/scripts/maps/Route113_GlassWorkshop.s
@@ -0,0 +1,309 @@
+Route113_GlassWorkshop_MapScripts:: @ 816354A
+ map_script 3, Route113_GlassWorkshop_MapScript1_163550
+ .byte 0
+
+Route113_GlassWorkshop_MapScript1_163550:: @ 8163550
+ setflag 2116
+ compare 0x40be, 1
+ callif 1, Route113_GlassWorkshop_EventScript_16355F
+ end
+
+Route113_GlassWorkshop_EventScript_16355F:: @ 816355F
+ setvar 0x40be, 2
+ return
+
+Route113_GlassWorkshop_EventScript_163565:: @ 8163565
+ lock
+ faceplayer
+ compare 0x40be, 10
+ jumpif 4, Route113_GlassWorkshop_EventScript_1638D2
+ compare 0x40be, 2
+ jumpeq Route113_GlassWorkshop_EventScript_1635B5
+ compare 0x40be, 1
+ jumpeq Route113_GlassWorkshop_EventScript_1635AB
+ msgbox Route113_GlassWorkshop_Text_19E4E6, 4
+ giveitem ITEM_SOOT_SACK
+ setvar 0x40be, 1
+ msgbox Route113_GlassWorkshop_Text_19E59B, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1635AB:: @ 81635AB
+ msgbox Route113_GlassWorkshop_Text_19E59B, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1635B5:: @ 81635B5
+ checkitem ITEM_SOOT_SACK, 1
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_1635E4
+ msgbox Route113_GlassWorkshop_Text_19E65B, 4
+ compare 0x4048, 250
+ jumpif 0, Route113_GlassWorkshop_EventScript_163818
+ message Route113_GlassWorkshop_Text_19E757
+ waittext
+ jump Route113_GlassWorkshop_EventScript_1635EE
+ end
+
+Route113_GlassWorkshop_EventScript_1635E4:: @ 81635E4
+ msgbox Route113_GlassWorkshop_Text_19EAC1, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1635EE:: @ 81635EE
+ setvar 0x8009, 0
+ special 274
+ waitstate
+ switch RESULT
+ case 0, Route113_GlassWorkshop_EventScript_163660
+ case 1, Route113_GlassWorkshop_EventScript_16369C
+ case 2, Route113_GlassWorkshop_EventScript_1636D8
+ case 3, Route113_GlassWorkshop_EventScript_163714
+ case 4, Route113_GlassWorkshop_EventScript_163750
+ case 5, Route113_GlassWorkshop_EventScript_16378C
+ case 6, Route113_GlassWorkshop_EventScript_1637CD
+ case 7, Route113_GlassWorkshop_EventScript_16380E
+ case 127, Route113_GlassWorkshop_EventScript_16380E
+ end
+
+Route113_GlassWorkshop_EventScript_163660:: @ 8163660
+ setvar 0x8008, 39
+ bufferitem 0, 0x8008
+ setvar 0x800a, 250
+ compare 0x4048, 250
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 10
+ subvar 0x4048, 250
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_16369C:: @ 816369C
+ setvar 0x8008, 40
+ bufferitem 0, 0x8008
+ setvar 0x800a, 500
+ compare 0x4048, 500
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 11
+ subvar 0x4048, 500
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_1636D8:: @ 81636D8
+ setvar 0x8008, 41
+ bufferitem 0, 0x8008
+ setvar 0x800a, 500
+ compare 0x4048, 500
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 12
+ subvar 0x4048, 500
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_163714:: @ 8163714
+ setvar 0x8008, 43
+ bufferitem 0, 0x8008
+ setvar 0x800a, 1000
+ compare 0x4048, 1000
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 13
+ subvar 0x4048, 1000
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_163750:: @ 8163750
+ setvar 0x8008, 42
+ bufferitem 0, 0x8008
+ setvar 0x800a, 1000
+ compare 0x4048, 1000
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 14
+ subvar 0x4048, 1000
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_16378C:: @ 816378C
+ setvar 0x8009, 1
+ setvar 0x8008, 13
+ bufferdecor 0, 0x8008
+ setvar 0x800a, 6000
+ compare 0x4048, 6000
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 15
+ subvar 0x4048, 6000
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_1637CD:: @ 81637CD
+ setvar 0x8009, 1
+ setvar 0x8008, 6
+ bufferdecor 0, 0x8008
+ setvar 0x800a, 8000
+ compare 0x4048, 8000
+ jumpif 0, Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, 5
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_163845
+ setvar 0x40be, 16
+ subvar 0x4048, 8000
+ jump Route113_GlassWorkshop_EventScript_163851
+ end
+
+Route113_GlassWorkshop_EventScript_16380E:: @ 816380E
+ msgbox Route113_GlassWorkshop_Text_19E990, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_163818:: @ 8163818
+ setvar 0x800a, 250
+ subvar 0x800a, 16456
+ buffernum 0, 32778
+ msgbox Route113_GlassWorkshop_Text_19E697, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_163830:: @ 8163830
+ subvar 0x800a, 16456
+ buffernum 1, 32778
+ message Route113_GlassWorkshop_Text_19E890
+ waittext
+ jump Route113_GlassWorkshop_EventScript_1635EE
+ end
+
+Route113_GlassWorkshop_EventScript_163845:: @ 8163845
+ message Route113_GlassWorkshop_Text_19E802
+ waittext
+ jump Route113_GlassWorkshop_EventScript_1635EE
+ end
+
+Route113_GlassWorkshop_EventScript_163851:: @ 8163851
+ msgbox Route113_GlassWorkshop_Text_19E827, 4
+ closebutton
+ fadescreen 1
+ playsfx 5
+ pause 30
+ fadescreen 0
+ msgbox Route113_GlassWorkshop_Text_19E9D7, 4
+ compare 0x8009, 0
+ callif 1, Route113_GlassWorkshop_EventScript_163889
+ compare 0x8009, 1
+ callif 1, Route113_GlassWorkshop_EventScript_1638A1
+ setvar 0x40be, 2
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_163889:: @ 8163889
+ giveitem 0x8008
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_1638B4
+ return
+
+Route113_GlassWorkshop_EventScript_1638A1:: @ 81638A1
+ givedecoration 0x8008
+ compare RESULT, 0
+ jumpeq Route113_GlassWorkshop_EventScript_1638C3
+ return
+
+Route113_GlassWorkshop_EventScript_1638B4:: @ 81638B4
+ call Route113_GlassWorkshop_EventScript_1A02A5
+ msgbox Route113_GlassWorkshop_Text_19EA06, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1638C3:: @ 81638C3
+ call Route113_GlassWorkshop_EventScript_1A02B8
+ msgbox Route113_GlassWorkshop_Text_19EA64, 4
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1638D2:: @ 81638D2
+ switch 0x40be
+ case 10, Route113_GlassWorkshop_EventScript_163925
+ case 11, Route113_GlassWorkshop_EventScript_163939
+ case 12, Route113_GlassWorkshop_EventScript_16394D
+ case 13, Route113_GlassWorkshop_EventScript_163961
+ case 14, Route113_GlassWorkshop_EventScript_163975
+ case 15, Route113_GlassWorkshop_EventScript_163989
+ case 16, Route113_GlassWorkshop_EventScript_16399D
+ end
+
+Route113_GlassWorkshop_EventScript_163925:: @ 8163925
+ setvar 0x8009, 0
+ setvar 0x8008, 39
+ bufferitem 0, 0x8008
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_163939:: @ 8163939
+ setvar 0x8009, 0
+ setvar 0x8008, 40
+ bufferitem 0, 0x8008
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_16394D:: @ 816394D
+ setvar 0x8009, 0
+ setvar 0x8008, 41
+ bufferitem 0, 0x8008
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_163961:: @ 8163961
+ setvar 0x8009, 0
+ setvar 0x8008, 43
+ bufferitem 0, 0x8008
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_163975:: @ 8163975
+ setvar 0x8009, 0
+ setvar 0x8008, 42
+ bufferitem 0, 0x8008
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_163989:: @ 8163989
+ setvar 0x8009, 1
+ setvar 0x8008, 13
+ bufferdecor 0, 13
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_16399D:: @ 816399D
+ setvar 0x8009, 1
+ setvar 0x8008, 6
+ bufferdecor 0, 6
+ jump Route113_GlassWorkshop_EventScript_1639B1
+ end
+
+Route113_GlassWorkshop_EventScript_1639B1:: @ 81639B1
+ msgbox Route113_GlassWorkshop_Text_19E9D7, 4
+ compare 0x8009, 0
+ callif 1, Route113_GlassWorkshop_EventScript_163889
+ compare 0x8009, 1
+ callif 1, Route113_GlassWorkshop_EventScript_1638A1
+ setvar 0x40be, 2
+ release
+ end
+
+Route113_GlassWorkshop_EventScript_1639D6:: @ 81639D6
+ msgbox Route113_GlassWorkshop_Text_19EB3B, 2
+ end
+
diff --git a/data/scripts/maps/Route114.s b/data/scripts/maps/Route114.s
new file mode 100644
index 000000000..da590b8d6
--- /dev/null
+++ b/data/scripts/maps/Route114.s
@@ -0,0 +1,133 @@
+Route114_MapScripts:: @ 8150732
+ .byte 0
+
+Route114_EventScript_150733:: @ 8150733
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2251
+ jumpeq Route114_EventScript_150778
+ msgbox Route114_Text_1C5803, 4
+ random 5
+ addvar RESULT, 15
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq Route114_EventScript_1A029B
+ setflag 2251
+ msgbox Route114_Text_1C5861, 4
+ release
+ end
+
+Route114_EventScript_150778:: @ 8150778
+ msgbox Route114_Text_1C5878, 4
+ release
+ end
+
+Route114_EventScript_150782:: @ 8150782
+ lock
+ faceplayer
+ checkflag 231
+ jumpeq Route114_EventScript_1507B9
+ msgbox Route114_Text_170154, 4
+ giveitem ITEM_TM05
+ compare RESULT, 0
+ jumpeq Route114_EventScript_1A029B
+ setflag 231
+ msgbox Route114_Text_1701C5, 4
+ release
+ end
+
+Route114_EventScript_1507B9:: @ 81507B9
+ msgbox Route114_Text_1701C5, 4
+ release
+ end
+
+Route114_EventScript_1507C3:: @ 81507C3
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_POOCHYENA, 2
+ msgbox Route114_Text_1701F9, 4
+ waitpokecry
+ release
+ end
+
+Route114_EventScript_1507D6:: @ 81507D6
+ msgbox Route114_Text_170206, 3
+ end
+
+Route114_EventScript_1507DF:: @ 81507DF
+ msgbox Route114_Text_17022E, 3
+ end
+
+Route114_EventScript_1507E8:: @ 81507E8
+ msgbox Route114_Text_170263, 3
+ end
+
+Route114_EventScript_1507F1:: @ 81507F1
+ trainerbattle 0, 628, 0, Route114_Text_1BC05B, Route114_Text_1BC0B5
+ msgbox Route114_Text_1BC0C3, 6
+ end
+
+Route114_EventScript_150808:: @ 8150808
+ trainerbattle 0, 629, 0, Route114_Text_1BC125, Route114_Text_1BC163
+ msgbox Route114_Text_1BC184, 6
+ end
+
+Route114_EventScript_15081F:: @ 815081F
+ trainerbattle 0, 214, 0, Route114_Text_1BC1C8, Route114_Text_1BC23F
+ msgbox Route114_Text_1BC24F, 6
+ end
+
+Route114_EventScript_150836:: @ 8150836
+ trainerbattle 0, 472, 0, Route114_Text_1BC289, Route114_Text_1BC2BE
+ msgbox Route114_Text_1BC2C6, 6
+ end
+
+Route114_EventScript_15084D:: @ 815084D
+ trainerbattle 0, 143, 0, Route114_Text_1BC2F5, Route114_Text_1BC327
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route114_EventScript_150874
+ msgbox Route114_Text_1BC337, 6
+ end
+
+Route114_EventScript_150874:: @ 8150874
+ trainerbattle 5, 143, 0, Route114_Text_1BC3B3, Route114_Text_1BC3E0
+ msgbox Route114_Text_1BC40F, 6
+ end
+
+Route114_EventScript_15088B:: @ 815088B
+ trainerbattle 0, 206, 0, Route114_Text_1BC45A, Route114_Text_1BC499
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route114_EventScript_1508B2
+ msgbox Route114_Text_1BC4B5, 6
+ end
+
+Route114_EventScript_1508B2:: @ 81508B2
+ trainerbattle 5, 206, 0, Route114_Text_1BC525, Route114_Text_1BC559
+ msgbox Route114_Text_1BC58C, 6
+ end
+
+Route114_EventScript_1508C9:: @ 81508C9
+ trainerbattle 0, 338, 0, Route114_Text_1BC5FC, Route114_Text_1BC653
+ msgbox Route114_Text_1BC679, 6
+ end
+
+Route114_EventScript_1508E0:: @ 81508E0
+ trainerbattle 0, 342, 0, Route114_Text_1BC6EC, Route114_Text_1BC750
+ msgbox Route114_Text_1BC78A, 6
+ end
+
+Route114_EventScript_1508F7:: @ 81508F7
+ trainerbattle 4, 679, 0, Route114_Text_1BC7E3, Route114_Text_1BC834, Route114_Text_1BC88A
+ msgbox Route114_Text_1BC858, 6
+ end
+
+Route114_EventScript_150912:: @ 8150912
+ trainerbattle 4, 679, 0, Route114_Text_1BC8D8, Route114_Text_1BC8FB, Route114_Text_1BC96A
+ msgbox Route114_Text_1BC91E, 6
+ end
+
diff --git a/data/scripts/maps/Route114_FossilManiacsHouse.s b/data/scripts/maps/Route114_FossilManiacsHouse.s
new file mode 100644
index 000000000..71893af74
--- /dev/null
+++ b/data/scripts/maps/Route114_FossilManiacsHouse.s
@@ -0,0 +1,34 @@
+Route114_FossilManiacsHouse_MapScripts:: @ 815C1B9
+ map_script 3, Route114_FossilManiacsHouse_MapScript1_15C1BF
+ .byte 0
+
+Route114_FossilManiacsHouse_MapScript1_15C1BF:: @ 815C1BF
+ setflag 2135
+ end
+
+Route114_FossilManiacsHouse_EventScript_15C1C3:: @ 815C1C3
+ lock
+ faceplayer
+ checkflag 261
+ jumpeq Route114_FossilManiacsHouse_EventScript_15C1F2
+ msgbox Route114_FossilManiacsHouse_Text_1925E1, 4
+ giveitem ITEM_TM28
+ compare RESULT, 0
+ jumpeq Route114_FossilManiacsHouse_EventScript_1A029B
+ setflag 261
+ release
+ end
+
+Route114_FossilManiacsHouse_EventScript_15C1F2:: @ 815C1F2
+ msgbox Route114_FossilManiacsHouse_Text_1926AE, 4
+ release
+ end
+
+Route114_FossilManiacsHouse_EventScript_15C1FC:: @ 815C1FC
+ msgbox Route114_FossilManiacsHouse_Text_1926FA, 3
+ end
+
+Route114_FossilManiacsHouse_EventScript_15C205:: @ 815C205
+ msgbox Route114_FossilManiacsHouse_Text_192729, 3
+ end
+
diff --git a/data/scripts/maps/Route114_FossilManiacsTunnel.s b/data/scripts/maps/Route114_FossilManiacsTunnel.s
new file mode 100644
index 000000000..b888a3a4c
--- /dev/null
+++ b/data/scripts/maps/Route114_FossilManiacsTunnel.s
@@ -0,0 +1,28 @@
+Route114_FossilManiacsTunnel_MapScripts:: @ 815C20E
+ .byte 0
+
+Route114_FossilManiacsTunnel_EventScript_15C20F:: @ 815C20F
+ lock
+ faceplayer
+ checkflag 267
+ jumpeq Route114_FossilManiacsTunnel_EventScript_15C24E
+ checkitem ITEM_ROOT_FOSSIL, 1
+ compare RESULT, 1
+ jumpeq Route114_FossilManiacsTunnel_EventScript_15C244
+ checkitem ITEM_CLAW_FOSSIL, 1
+ compare RESULT, 1
+ jumpeq Route114_FossilManiacsTunnel_EventScript_15C244
+ msgbox Route114_FossilManiacsTunnel_Text_192795, 4
+ release
+ end
+
+Route114_FossilManiacsTunnel_EventScript_15C244:: @ 815C244
+ msgbox Route114_FossilManiacsTunnel_Text_1928DE, 4
+ release
+ end
+
+Route114_FossilManiacsTunnel_EventScript_15C24E:: @ 815C24E
+ msgbox Route114_FossilManiacsTunnel_Text_1929DC, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route114_LanettesHouse.s b/data/scripts/maps/Route114_LanettesHouse.s
new file mode 100644
index 000000000..16cc31033
--- /dev/null
+++ b/data/scripts/maps/Route114_LanettesHouse.s
@@ -0,0 +1,55 @@
+Route114_LanettesHouse_MapScripts:: @ 815C258
+ map_script 3, Route114_LanettesHouse_MapScript1_15C25E
+ .byte 0
+
+Route114_LanettesHouse_MapScript1_15C25E:: @ 815C25E
+ setflag 2117
+ end
+
+Route114_LanettesHouse_EventScript_15C262:: @ 815C262
+ lock
+ faceplayer
+ checkflag 131
+ jumpeq Route114_LanettesHouse_EventScript_15C28F
+ setflag 2123
+ msgbox Route114_LanettesHouse_Text_192A0D, 4
+ .ifdef SAPPHIRE
+ givedecoration 99
+ .else
+ givedecoration 100
+ .endif
+ compare RESULT, 0
+ jumpeq Route114_LanettesHouse_EventScript_1A02AE
+ setflag 131
+ release
+ end
+
+Route114_LanettesHouse_EventScript_15C28F:: @ 815C28F
+ msgbox Route114_LanettesHouse_Text_192ACC, 4
+ release
+ end
+
+Route114_LanettesHouse_EventScript_15C299:: @ 815C299
+ lockall
+ msgbox Route114_LanettesHouse_Text_192B4A, 5
+ compare RESULT, 1
+ jumpeq Route114_LanettesHouse_EventScript_15C2B7
+ msgbox Route114_LanettesHouse_Text_192DA9, 4
+ releaseall
+ end
+
+Route114_LanettesHouse_EventScript_15C2B7:: @ 815C2B7
+ msgbox Route114_LanettesHouse_Text_192C01, 5
+ compare RESULT, 1
+ callif 1, Route114_LanettesHouse_EventScript_15C2CC
+ releaseall
+ end
+
+Route114_LanettesHouse_EventScript_15C2CC:: @ 815C2CC
+ msgbox Route114_LanettesHouse_Text_192CB4, 4
+ return
+
+Route114_LanettesHouse_EventScript_15C2D5:: @ 815C2D5
+ msgbox Route114_LanettesHouse_Text_192DC1, 3
+ end
+
diff --git a/data/scripts/maps/Route115.s b/data/scripts/maps/Route115.s
new file mode 100644
index 000000000..5cc79447a
--- /dev/null
+++ b/data/scripts/maps/Route115.s
@@ -0,0 +1,64 @@
+Route115_MapScripts:: @ 815092D
+ .byte 0
+
+Route115_EventScript_15092E:: @ 815092E
+ msgbox Route115_Text_170273, 2
+ end
+
+Route115_EventScript_150937:: @ 8150937
+ msgbox Route115_Text_1702E7, 3
+ end
+
+Route115_EventScript_150940:: @ 8150940
+ msgbox Route115_Text_170301, 3
+ end
+
+Route115_EventScript_150949:: @ 8150949
+ trainerbattle 0, 307, 0, Route115_Text_1BC9AC, Route115_Text_1BC9E6
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route115_EventScript_150970
+ msgbox Route115_Text_1BCA0E, 6
+ end
+
+Route115_EventScript_150970:: @ 8150970
+ trainerbattle 5, 307, 0, Route115_Text_1BCA6B, Route115_Text_1BCAB3
+ msgbox Route115_Text_1BCAC6, 6
+ end
+
+Route115_EventScript_150987:: @ 8150987
+ trainerbattle 0, 182, 0, Route115_Text_1BCB0D, Route115_Text_1BCB2E
+ msgbox Route115_Text_1BCB40, 6
+ end
+
+Route115_EventScript_15099E:: @ 815099E
+ trainerbattle 0, 183, 0, Route115_Text_1BCB8A, Route115_Text_1BCBC1
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route115_EventScript_1509C5
+ msgbox Route115_Text_1BCBDE, 6
+ end
+
+Route115_EventScript_1509C5:: @ 81509C5
+ trainerbattle 5, 183, 0, Route115_Text_1BCC4C, Route115_Text_1BCCA2
+ msgbox Route115_Text_1BCCBA, 6
+ end
+
+Route115_EventScript_1509DC:: @ 81509DC
+ trainerbattle 0, 427, 0, Route115_Text_1BCCF4, Route115_Text_1BCD32
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route115_EventScript_150A03
+ msgbox Route115_Text_1BCD4C, 6
+ end
+
+Route115_EventScript_150A03:: @ 8150A03
+ trainerbattle 5, 427, 0, Route115_Text_1BCDB0, Route115_Text_1BCDD0
+ msgbox Route115_Text_1BCDEF, 6
+ end
+
+Route115_EventScript_150A1A:: @ 8150A1A
+ trainerbattle 0, TRAINER_514, 0, Route115_Text_1BCEE0, Route115_Text_1BCF16
+ msgbox Route115_Text_1BCF3D, 6
+ end
+
diff --git a/data/scripts/maps/Route116.s b/data/scripts/maps/Route116.s
new file mode 100644
index 000000000..c6c6e1cb1
--- /dev/null
+++ b/data/scripts/maps/Route116.s
@@ -0,0 +1,276 @@
+Route116_MapScripts:: @ 8150A31
+ map_script 3, Route116_MapScript1_150A37
+ .byte 0
+
+Route116_MapScript1_150A37:: @ 8150A37
+ checkflag 143
+ callif 1, Route116_EventScript_150A41
+ end
+
+Route116_EventScript_150A41:: @ 8150A41
+ movespriteperm 21, 41, 10
+ return
+
+Route116_EventScript_150A49:: @ 8150A49
+ lock
+ faceplayer
+ checkflag 143
+ jumpeq Route116_EventScript_150A67
+ checkflag 142
+ jumpeq Route116_EventScript_150A71
+ msgbox Route116_Text_1703CF, 4
+ release
+ end
+
+Route116_EventScript_150A67:: @ 8150A67
+ msgbox Route116_Text_170556, 4
+ release
+ end
+
+Route116_EventScript_150A71:: @ 8150A71
+ msgbox Route116_Text_1703F7, 4
+ release
+ end
+
+Route116_EventScript_150A7B:: @ 8150A7B
+ lock
+ faceplayer
+ checkflag 287
+ jumpeq Route116_EventScript_150B04
+ msgbox Route116_Text_1705AE, 4
+ jump Route116_EventScript_150A94
+ end
+
+Route116_EventScript_150A94:: @ 8150A94
+ setflag 287
+ giveitem ITEM_REPEAT_BALL
+ compare RESULT, 0
+ jumpeq Route116_EventScript_150B12
+ msgbox Route116_Text_1707B8, 4
+ closebutton
+ compare FACING, 2
+ callif 1, Route116_EventScript_150AEE
+ compare FACING, 1
+ callif 1, Route116_EventScript_150AEE
+ compare FACING, 3
+ callif 1, Route116_EventScript_150AEE
+ compare FACING, 4
+ callif 1, Route116_EventScript_150AF9
+ disappear LAST_TALKED
+ clearflag 949
+ setflag 256
+ release
+ end
+
+Route116_EventScript_150AEE:: @ 8150AEE
+ move LAST_TALKED, Route116_Movement_150B1C
+ waitmove 0
+ return
+
+Route116_EventScript_150AF9:: @ 8150AF9
+ move LAST_TALKED, Route116_Movement_150B25
+ waitmove 0
+ return
+
+Route116_EventScript_150B04:: @ 8150B04
+ msgbox Route116_Text_170865, 4
+ jump Route116_EventScript_150A94
+ end
+
+Route116_EventScript_150B12:: @ 8150B12
+ msgbox Route116_Text_17082A, 4
+ release
+ end
+
+Route116_Movement_150B1C:: @ 8150B1C
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+Route116_Movement_150B25:: @ 8150B25
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+Route116_EventScript_150B30:: @ 8150B30
+ msgbox Route116_Text_170A46, 3
+ end
+
+Route116_EventScript_150B39:: @ 8150B39
+ msgbox Route116_Text_170A60, 3
+ end
+
+Route116_EventScript_150B42:: @ 8150B42
+ msgbox Route116_Text_170AB8, 3
+ end
+
+Route116_EventScript_150B4B:: @ 8150B4B
+ msgbox Route116_Text_170ACE, 3
+ end
+
+Route116_EventScript_150B54:: @ 8150B54
+ msgbox Route116_Text_170B7D, 3
+ end
+
+Route116_EventScript_150B5D:: @ 8150B5D
+ lock
+ faceplayer
+ msgbox Route116_Text_17032A, 4
+ setvar 0x406f, 2
+ release
+ end
+
+Route116_EventScript_150B6E:: @ 8150B6E
+ lockall
+ move 11, Route116_Movement_1A0843
+ move 255, Route116_Movement_1A083F
+ waitmove 0
+ msgbox Route116_Text_17032A, 4
+ setvar 0x406f, 2
+ releaseall
+ end
+
+Route116_EventScript_150B8F:: @ 8150B8F
+ lock
+ faceplayer
+ checkitem ITEM_BLACK_GLASSES, 1
+ compare RESULT, 1
+ jumpeq Route116_EventScript_150BCA
+ specialval RESULT, 316
+ compare RESULT, 1
+ jumpeq Route116_EventScript_150BBB
+ msgbox Route116_Text_1708EE, 4
+ release
+ end
+
+Route116_EventScript_150BBB:: @ 8150BBB
+ msgbox Route116_Text_1709B7, 4
+ closebutton
+ jump Route116_EventScript_150C03
+ end
+
+Route116_EventScript_150BCA:: @ 8150BCA
+ msgbox Route116_Text_1708EE, 4
+ msgbox Route116_Text_170921, 4
+ specialval RESULT, 316
+ compare RESULT, 1
+ jumpeq Route116_EventScript_150BF4
+ msgbox Route116_Text_170A03, 4
+ release
+ end
+
+Route116_EventScript_150BF4:: @ 8150BF4
+ msgbox Route116_Text_17094D, 4
+ closebutton
+ jump Route116_EventScript_150C03
+ end
+
+Route116_EventScript_150C03:: @ 8150C03
+ pause 20
+ compare FACING, 2
+ callif 1, Route116_EventScript_150C37
+ compare FACING, 1
+ callif 1, Route116_EventScript_150C37
+ compare FACING, 3
+ callif 1, Route116_EventScript_150C37
+ compare FACING, 4
+ callif 1, Route116_EventScript_150C42
+ disappear LAST_TALKED
+ release
+ end
+
+Route116_EventScript_150C37:: @ 8150C37
+ move LAST_TALKED, Route116_Movement_150C4D
+ waitmove 0
+ return
+
+Route116_EventScript_150C42:: @ 8150C42
+ move LAST_TALKED, Route116_Movement_150C57
+ waitmove 0
+ return
+
+Route116_Movement_150C4D:: @ 8150C4D
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+Route116_Movement_150C57:: @ 8150C57
+ step_up
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+Route116_EventScript_150C62:: @ 8150C62
+ trainerbattle 0, 322, 0, Route116_Text_1BD02B, Route116_Text_1BD04C
+ msgbox Route116_Text_1BD078, 6
+ end
+
+Route116_EventScript_150C79:: @ 8150C79
+ trainerbattle 0, 617, 0, Route116_Text_1BD0AF, Route116_Text_1BD0D7
+ msgbox Route116_Text_1BD0F4, 6
+ end
+
+Route116_EventScript_150C90:: @ 8150C90
+ trainerbattle 0, 273, 0, Route116_Text_1BD1C0, Route116_Text_1BD21A
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route116_EventScript_150CB7
+ msgbox Route116_Text_1BD248, 6
+ end
+
+Route116_EventScript_150CB7:: @ 8150CB7
+ trainerbattle 5, 273, 0, Route116_Text_1BD2A5, Route116_Text_1BD2FE
+ msgbox Route116_Text_1BD31A, 6
+ end
+
+Route116_EventScript_150CCE:: @ 8150CCE
+ trainerbattle 0, 631, 0, Route116_Text_1BCF79, Route116_Text_1BCFBB
+ msgbox Route116_Text_1BCFE3, 6
+ end
+
+Route116_EventScript_150CE5:: @ 8150CE5
+ trainerbattle 0, 605, 0, Route116_Text_1BD131, Route116_Text_1BD165
+ msgbox Route116_Text_1BD180, 6
+ end
+
+Route116_EventScript_150CFC:: @ 8150CFC
+ trainerbattle 0, 280, 0, Route116_Text_1BD377, Route116_Text_1BD3AC
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route116_EventScript_150D23
+ msgbox Route116_Text_1BD3C3, 6
+ end
+
+Route116_EventScript_150D23:: @ 8150D23
+ trainerbattle 5, 280, 0, Route116_Text_1BD405, Route116_Text_1BD44A
+ msgbox Route116_Text_1BD466, 6
+ end
+
diff --git a/data/scripts/maps/Route116_TunnelersRestHouse.s b/data/scripts/maps/Route116_TunnelersRestHouse.s
new file mode 100644
index 000000000..87e21addd
--- /dev/null
+++ b/data/scripts/maps/Route116_TunnelersRestHouse.s
@@ -0,0 +1,30 @@
+Route116_TunnelersRestHouse_MapScripts:: @ 815C2DE
+ map_script 3, Route116_TunnelersRestHouse_MapScript1_15C2E4
+ .byte 0
+
+Route116_TunnelersRestHouse_MapScript1_15C2E4:: @ 815C2E4
+ setflag 2138
+ end
+
+Route116_TunnelersRestHouse_EventScript_15C2E8:: @ 815C2E8
+ msgbox Route116_TunnelersRestHouse_Text_192F33, 2
+ end
+
+Route116_TunnelersRestHouse_EventScript_15C2F1:: @ 815C2F1
+ msgbox Route116_TunnelersRestHouse_Text_193049, 2
+ end
+
+Route116_TunnelersRestHouse_EventScript_15C2FA:: @ 815C2FA
+ lock
+ faceplayer
+ checkflag 199
+ jumpeq Route116_TunnelersRestHouse_EventScript_15C30F
+ msgbox Route116_TunnelersRestHouse_Text_193135, 4
+ release
+ end
+
+Route116_TunnelersRestHouse_EventScript_15C30F:: @ 815C30F
+ msgbox Route116_TunnelersRestHouse_Text_1931C1, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route117.s b/data/scripts/maps/Route117.s
new file mode 100644
index 000000000..232ed81d4
--- /dev/null
+++ b/data/scripts/maps/Route117.s
@@ -0,0 +1,123 @@
+Route117_MapScripts:: @ 8150D3A
+ map_script 3, Route117_MapScript1_150D40
+ .byte 0
+
+Route117_MapScript1_150D40:: @ 8150D40
+ call Route117_EventScript_150D46
+ end
+
+Route117_EventScript_150D46:: @ 8150D46
+ checkflag 134
+ jumpif 0, Route117_EventScript_150D56
+ movespriteperm 3, 47, 6
+
+Route117_EventScript_150D56:: @ 8150D56
+ return
+
+Route117_EventScript_150D57:: @ 8150D57
+ msgbox Route117_Text_170CA7, 2
+ end
+
+Route117_EventScript_150D60:: @ 8150D60
+ msgbox Route117_Text_170CEB, 2
+ end
+
+Route117_EventScript_150D69:: @ 8150D69
+ msgbox Route117_Text_170C26, 2
+ end
+
+Route117_EventScript_150D72:: @ 8150D72
+ msgbox Route117_Text_170D02, 3
+ end
+
+Route117_EventScript_150D7B:: @ 8150D7B
+ msgbox Route117_Text_170D1E, 3
+ end
+
+Route117_EventScript_150D84:: @ 8150D84
+ msgbox Route117_Text_170D38, 3
+ end
+
+Route117_EventScript_150D8D:: @ 8150D8D
+ trainerbattle 0, 538, 0, Route117_Text_1BD49E, Route117_Text_1BD4D9
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150DB4
+ msgbox Route117_Text_1BD4F9, 6
+ end
+
+Route117_EventScript_150DB4:: @ 8150DB4
+ trainerbattle 5, 538, 0, Route117_Text_1BD569, Route117_Text_1BD5AB
+ msgbox Route117_Text_1BD5F2, 6
+ end
+
+Route117_EventScript_150DCB:: @ 8150DCB
+ trainerbattle 0, 545, 0, Route117_Text_1BD634, Route117_Text_1BD67B
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150DF2
+ msgbox Route117_Text_1BD69B, 6
+ end
+
+Route117_EventScript_150DF2:: @ 8150DF2
+ trainerbattle 5, 545, 0, Route117_Text_1BD6F2, Route117_Text_1BD733
+ msgbox Route117_Text_1BD74F, 6
+ end
+
+Route117_EventScript_150E09:: @ 8150E09
+ trainerbattle 0, 364, 0, Route117_Text_1BD79A, Route117_Text_1BD7E0
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150E30
+ msgbox Route117_Text_1BD7F5, 6
+ end
+
+Route117_EventScript_150E30:: @ 8150E30
+ trainerbattle 5, 364, 0, Route117_Text_1BD83F, Route117_Text_1BD8A2
+ msgbox Route117_Text_1BD8BD, 6
+ end
+
+Route117_EventScript_150E47:: @ 8150E47
+ trainerbattle 0, 369, 0, Route117_Text_1BD914, Route117_Text_1BD965
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150E6E
+ msgbox Route117_Text_1BD98F, 6
+ end
+
+Route117_EventScript_150E6E:: @ 8150E6E
+ trainerbattle 5, 369, 0, Route117_Text_1BD9F1, Route117_Text_1BDA41
+ msgbox Route117_Text_1BDA6B, 6
+ end
+
+Route117_EventScript_150E85:: @ 8150E85
+ trainerbattle 0, 227, 0, Route117_Text_1BDAA7, Route117_Text_1BDAFC
+ msgbox Route117_Text_1BDB24, 6
+ end
+
+Route117_EventScript_150E9C:: @ 8150E9C
+ trainerbattle 4, 287, 0, Route117_Text_1BDBC3, Route117_Text_1BDC07, Route117_Text_1BDC96
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150EC7
+ msgbox Route117_Text_1BDC44, 6
+ end
+
+Route117_EventScript_150EC7:: @ 8150EC7
+ trainerbattle 7, 287, 0, Route117_Text_1BDDEF, Route117_Text_1BDE2F, Route117_Text_1BDEA7
+ msgbox Route117_Text_1BDE55, 6
+ end
+
+Route117_EventScript_150EE2:: @ 8150EE2
+ trainerbattle 4, 287, 0, Route117_Text_1BDCD2, Route117_Text_1BDD1E, Route117_Text_1BDD8B
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route117_EventScript_150F0D
+ msgbox Route117_Text_1BDD4E, 6
+ end
+
+Route117_EventScript_150F0D:: @ 8150F0D
+ trainerbattle 7, 287, 0, Route117_Text_1BDEE3, Route117_Text_1BDF26, Route117_Text_1BDF90
+ msgbox Route117_Text_1BDF37, 6
+ end
+
diff --git a/data/scripts/maps/Route117_PokemonDayCare.s b/data/scripts/maps/Route117_PokemonDayCare.s
new file mode 100644
index 000000000..15435a631
--- /dev/null
+++ b/data/scripts/maps/Route117_PokemonDayCare.s
@@ -0,0 +1,8 @@
+Route117_PokemonDayCare_MapScripts:: @ 815C319
+ map_script 3, Route117_PokemonDayCare_MapScript1_15C31F
+ .byte 0
+
+Route117_PokemonDayCare_MapScript1_15C31F:: @ 815C31F
+ setflag 2118
+ end
+
diff --git a/data/scripts/maps/Route118.s b/data/scripts/maps/Route118.s
new file mode 100644
index 000000000..e2e685aba
--- /dev/null
+++ b/data/scripts/maps/Route118.s
@@ -0,0 +1,207 @@
+Route118_MapScripts:: @ 8150F28
+ map_script 3, Route118_MapScript1_150F2E
+ .byte 0
+
+Route118_MapScript1_150F2E:: @ 8150F2E
+ call Route118_EventScript_1AE313
+ end
+
+Route118_EventScript_150F34:: @ 8150F34
+ lock
+ faceplayer
+ checkflag 227
+ jumpeq Route118_EventScript_150F89
+ msgbox Route118_Text_170F12, 5
+ compare RESULT, 1
+ jumpeq Route118_EventScript_150F5E
+ compare RESULT, 0
+ jumpeq Route118_EventScript_150F7F
+ end
+
+Route118_EventScript_150F5E:: @ 8150F5E
+ msgbox Route118_Text_170F46, 4
+ giveitem ITEM_GOOD_ROD
+ setflag 227
+ msgbox Route118_Text_170F7E, 4
+ release
+ end
+
+Route118_EventScript_150F7F:: @ 8150F7F
+ msgbox Route118_Text_170FB0, 4
+ release
+ end
+
+Route118_EventScript_150F89:: @ 8150F89
+ msgbox Route118_Text_170FC8, 4
+ release
+ end
+
+Route118_EventScript_150F93:: @ 8150F93
+ msgbox Route118_Text_170FFE, 2
+ end
+
+Route118_EventScript_150F9C:: @ 8150F9C
+ msgbox Route118_Text_17108B, 3
+ end
+
+Route118_EventScript_150FA5:: @ 8150FA5
+ msgbox Route118_Text_1710A5, 3
+ end
+
+Route118_EventScript_150FAE:: @ 8150FAE
+ lockall
+ setvar 0x8008, 0
+ move 255, Route118_Movement_1A0841
+ waitmove 0
+ move 19, Route118_Movement_151069
+ waitmove 0
+ jump Route118_EventScript_151004
+ end
+
+Route118_EventScript_150FCE:: @ 8150FCE
+ lockall
+ setvar 0x8008, 1
+ move 255, Route118_Movement_1A0841
+ waitmove 0
+ jump Route118_EventScript_151004
+ end
+
+Route118_EventScript_150FE4:: @ 8150FE4
+ lockall
+ setvar 0x8008, 2
+ move 255, Route118_Movement_1A0841
+ waitmove 0
+ move 19, Route118_Movement_15106B
+ waitmove 0
+ jump Route118_EventScript_151004
+ end
+
+Route118_EventScript_151004:: @ 8151004
+ playsfx 10
+ move 19, Route118_Movement_15106D
+ waitmove 0
+ pause 30
+ msgbox Route118_Text_170D66, 4
+ closebutton
+ compare 0x8008, 0
+ callif 1, Route118_EventScript_151048
+ compare 0x8008, 1
+ callif 1, Route118_EventScript_151053
+ compare 0x8008, 2
+ callif 1, Route118_EventScript_15105E
+ setvar 0x4071, 1
+ disappear 19
+ releaseall
+ end
+
+Route118_EventScript_151048:: @ 8151048
+ move 19, Route118_Movement_151071
+ waitmove 0
+ return
+
+Route118_EventScript_151053:: @ 8151053
+ move 19, Route118_Movement_15107C
+ waitmove 0
+ return
+
+Route118_EventScript_15105E:: @ 815105E
+ move 19, Route118_Movement_151086
+ waitmove 0
+ return
+
+Route118_Movement_151069:: @ 8151069
+ step_left
+ step_end
+
+Route118_Movement_15106B:: @ 815106B
+ step_right
+ step_end
+
+Route118_Movement_15106D:: @ 815106D
+ fast_step_down
+ step_14
+ step_down
+ step_end
+
+Route118_Movement_151071:: @ 8151071
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route118_Movement_15107C:: @ 815107C
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route118_Movement_151086:: @ 8151086
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route118_EventScript_15108F:: @ 815108F
+ trainerbattle 0, 37, 0, Route118_Text_1BDFF4, Route118_Text_1BE03C
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route118_EventScript_1510B6
+ msgbox Route118_Text_1BE05E, 6
+ end
+
+Route118_EventScript_1510B6:: @ 81510B6
+ trainerbattle 5, 37, 0, Route118_Text_1BE0AB, Route118_Text_1BE0D3
+ msgbox Route118_Text_1BE104, 6
+ end
+
+Route118_EventScript_1510CD:: @ 81510CD
+ trainerbattle 0, 343, 0, Route118_Text_1BE24A, Route118_Text_1BE291
+ msgbox Route118_Text_1BE2BE, 6
+ end
+
+Route118_EventScript_1510E4:: @ 81510E4
+ trainerbattle 0, 344, 0, Route118_Text_1BE318, Route118_Text_1BE385
+ msgbox Route118_Text_1BE39C, 6
+ end
+
+Route118_EventScript_1510FB:: @ 81510FB
+ trainerbattle 0, 196, 0, Route118_Text_1BE3E8, Route118_Text_1BE406
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route118_EventScript_151122
+ msgbox Route118_Text_1BE413, 6
+ end
+
+Route118_EventScript_151122:: @ 8151122
+ trainerbattle 5, 196, 0, Route118_Text_1BE489, Route118_Text_1BE4CC
+ msgbox Route118_Text_1BE4D9, 6
+ end
+
+Route118_EventScript_151139:: @ 8151139
+ trainerbattle 0, 398, 0, Route118_Text_1BE148, Route118_Text_1BE188
+ msgbox Route118_Text_1BE19D, 6
+ end
+
+Route118_EventScript_151150:: @ 8151150
+ trainerbattle 0, 408, 0, Route118_Text_1BE1D7, Route118_Text_1BE1F5
+ msgbox Route118_Text_1BE20D, 6
+ end
+
diff --git a/data/scripts/maps/Route119.s b/data/scripts/maps/Route119.s
new file mode 100644
index 000000000..22e8c1c84
--- /dev/null
+++ b/data/scripts/maps/Route119.s
@@ -0,0 +1,384 @@
+Route119_MapScripts:: @ 8151167
+ map_script 5, Route119_MapScript1_151172
+ map_script 3, Route119_MapScript1_15119B
+ .byte 0
+
+Route119_MapScript1_151172:: @ 8151172
+ checkflag 2145
+ callif 1, Route119_EventScript_15117C
+ end
+
+Route119_EventScript_15117C:: @ 815117C
+ compare 0x8004, 6
+ callif 1, Route119_EventScript_151193
+ compare 0x8004, 7
+ callif 1, Route119_EventScript_151197
+ return
+
+Route119_EventScript_151193:: @ 8151193
+ disappear 35
+ return
+
+Route119_EventScript_151197:: @ 8151197
+ disappear 36
+ return
+
+Route119_MapScript1_15119B:: @ 815119B
+ call Route119_EventScript_1A014E
+ call Route119_EventScript_1A0172
+ call Route119_EventScript_1A0196
+ compare 0x40b3, 1
+ callif 1, Route119_EventScript_1511B9
+ special 324
+ end
+
+Route119_EventScript_1511B9:: @ 81511B9
+ setflag 893
+ clearflag 892
+ setvar 0x40b3, 2
+ return
+
+Route119_EventScript_1511C5:: @ 81511C5
+ setvar 0x4001, 1
+ jump Route119_EventScript_1511DB
+ end
+
+Route119_EventScript_1511D0:: @ 81511D0
+ setvar 0x4001, 2
+ jump Route119_EventScript_1511DB
+ end
+
+Route119_EventScript_1511DB:: @ 81511DB
+ lockall
+ reappear 25
+ checkgender
+ compare RESULT, 0
+ callif 1, Route119_EventScript_151254
+ compare RESULT, 1
+ callif 1, Route119_EventScript_151259
+ pause 65
+ compare 0x4001, 1
+ callif 1, Route119_EventScript_1513A6
+ compare 0x4001, 2
+ callif 1, Route119_EventScript_1513B1
+ move 255, Route119_Movement_1A0845
+ waitmove 0
+ pause 30
+ compare 0x4001, 1
+ callif 1, Route119_EventScript_1513D2
+ compare 0x4001, 2
+ callif 1, Route119_EventScript_1513E1
+ disappear 25
+ reappear 16
+ pause 30
+ checkgender
+ compare RESULT, 0
+ jumpeq Route119_EventScript_15125E
+ compare RESULT, 1
+ jumpeq Route119_EventScript_1512D8
+ releaseall
+ end
+
+Route119_EventScript_151254:: @ 8151254
+ playmusic 415, 1
+ return
+
+Route119_EventScript_151259:: @ 8151259
+ playmusic 421, 1
+ return
+
+Route119_EventScript_15125E:: @ 815125E
+ msgbox Route119_Text_1710BB, 4
+ switch 0x4023
+ case 0, Route119_EventScript_15128D
+ case 1, Route119_EventScript_15129D
+ case 2, Route119_EventScript_1512AD
+ end
+
+Route119_EventScript_15128D:: @ 815128D
+ trainerbattle 3, 534, 0, Route119_Text_171156
+ jump Route119_EventScript_1512BD
+ end
+
+Route119_EventScript_15129D:: @ 815129D
+ trainerbattle 3, 537, 0, Route119_Text_171156
+ jump Route119_EventScript_1512BD
+ end
+
+Route119_EventScript_1512AD:: @ 81512AD
+ trainerbattle 3, 531, 0, Route119_Text_171156
+ jump Route119_EventScript_1512BD
+ end
+
+Route119_EventScript_1512BD:: @ 81512BD
+ msgbox Route119_Text_1711B1, 4
+ call Route119_EventScript_151352
+ msgbox Route119_Text_171214, 4
+ jump Route119_EventScript_151362
+ end
+
+Route119_EventScript_1512D8:: @ 81512D8
+ msgbox Route119_Text_171358, 4
+ switch 0x4023
+ case 0, Route119_EventScript_151307
+ case 1, Route119_EventScript_151317
+ case 2, Route119_EventScript_151327
+ end
+
+Route119_EventScript_151307:: @ 8151307
+ trainerbattle 3, 525, 0, Route119_Text_1713E2
+ jump Route119_EventScript_151337
+ end
+
+Route119_EventScript_151317:: @ 8151317
+ trainerbattle 3, 528, 0, Route119_Text_1713E2
+ jump Route119_EventScript_151337
+ end
+
+Route119_EventScript_151327:: @ 8151327
+ trainerbattle 3, 522, 0, Route119_Text_1713E2
+ jump Route119_EventScript_151337
+ end
+
+Route119_EventScript_151337:: @ 8151337
+ msgbox Route119_Text_17140B, 4
+ call Route119_EventScript_151352
+ msgbox Route119_Text_171475, 4
+ jump Route119_EventScript_151362
+ end
+
+Route119_EventScript_151352:: @ 8151352
+ giveitem ITEM_HM02
+ setflag 110
+ return
+
+Route119_EventScript_151362:: @ 8151362
+ closebutton
+ compare 0x4001, 1
+ callif 1, Route119_EventScript_1513D2
+ compare 0x4001, 2
+ callif 1, Route119_EventScript_1513E1
+ disappear 16
+ reappear 25
+ pause 30
+ compare 0x4001, 1
+ callif 1, Route119_EventScript_1513BC
+ compare 0x4001, 2
+ callif 1, Route119_EventScript_1513C7
+ disappear 25
+ setvar 0x4072, 1
+ playmusicbattle 0
+ fadedefault
+ releaseall
+ end
+
+Route119_EventScript_1513A6:: @ 81513A6
+ move 25, Route119_Movement_1513F0
+ waitmove 0
+ return
+
+Route119_EventScript_1513B1:: @ 81513B1
+ move 25, Route119_Movement_1513FA
+ waitmove 0
+ return
+
+Route119_EventScript_1513BC:: @ 81513BC
+ move 25, Route119_Movement_151405
+ waitmove 0
+ return
+
+Route119_EventScript_1513C7:: @ 81513C7
+ move 25, Route119_Movement_15140F
+ waitmove 0
+ return
+
+Route119_EventScript_1513D2:: @ 81513D2
+ movespriteperm 16, 25, 32
+ movespriteperm 25, 25, 32
+ return
+
+Route119_EventScript_1513E1:: @ 81513E1
+ movespriteperm 16, 26, 32
+ movespriteperm 25, 26, 32
+ return
+
+Route119_Movement_1513F0:: @ 81513F0
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_end
+
+Route119_Movement_1513FA:: @ 81513FA
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_end
+
+Route119_Movement_151405:: @ 8151405
+ step_18
+ step_16
+ step_16
+ step_16
+ step_18
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route119_Movement_15140F:: @ 815140F
+ step_17
+ step_16
+ step_16
+ step_16
+ step_18
+ step_18
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route119_EventScript_15141A:: @ 815141A
+ msgbox Route119_Text_171698, 2
+ end
+
+Route119_EventScript_151423:: @ 8151423
+ msgbox Route119_Text_171749, 3
+ end
+
+Route119_EventScript_15142C:: @ 815142C
+ msgbox Route119_Text_171762, 3
+ end
+
+Route119_EventScript_151435:: @ 8151435
+ trainerbattle 0, 223, 0, Route119_Text_1BE521, Route119_Text_1BE54F
+ msgbox Route119_Text_1BE561, 6
+ end
+
+Route119_EventScript_15144C:: @ 815144C
+ trainerbattle 0, 224, 0, Route119_Text_1BE5A4, Route119_Text_1BE5DF
+ msgbox Route119_Text_1BE5F8, 6
+ end
+
+Route119_EventScript_151463:: @ 8151463
+ trainerbattle 0, 225, 0, Route119_Text_1BE632, Route119_Text_1BE67B
+ msgbox Route119_Text_1BE695, 6
+ end
+
+Route119_EventScript_15147A:: @ 815147A
+ trainerbattle 0, 618, 0, Route119_Text_1BE6EA, Route119_Text_1BE729
+ msgbox Route119_Text_1BE748, 6
+ end
+
+Route119_EventScript_151491:: @ 8151491
+ trainerbattle 0, 619, 0, Route119_Text_1BE784, Route119_Text_1BE7D3
+ msgbox Route119_Text_1BE7E9, 6
+ end
+
+Route119_EventScript_1514A8:: @ 81514A8
+ trainerbattle 0, 620, 0, Route119_Text_1BE82F, Route119_Text_1BE88D
+ msgbox Route119_Text_1BE89A, 6
+ end
+
+Route119_EventScript_1514BF:: @ 81514BF
+ trainerbattle 0, 552, 0, Route119_Text_1BE8BB, Route119_Text_1BE90E
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route119_EventScript_1514E6
+ msgbox Route119_Text_1BE937, 6
+ end
+
+Route119_EventScript_1514E6:: @ 81514E6
+ trainerbattle 5, 552, 0, Route119_Text_1BE98D, Route119_Text_1BE9D0
+ msgbox Route119_Text_1BE9E8, 6
+ end
+
+Route119_EventScript_1514FD:: @ 81514FD
+ trainerbattle 0, 559, 0, Route119_Text_1BEA3A, Route119_Text_1BEA88
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route119_EventScript_151524
+ msgbox Route119_Text_1BEAB3, 6
+ end
+
+Route119_EventScript_151524:: @ 8151524
+ trainerbattle 5, 559, 0, Route119_Text_1BEB22, Route119_Text_1BEB49
+ msgbox Route119_Text_1BEB68, 6
+ end
+
+Route119_EventScript_15153B:: @ 815153B
+ trainerbattle 0, 399, 0, Route119_Text_1BEBC0, Route119_Text_1BEC1C
+ msgbox Route119_Text_1BEC2A, 6
+ end
+
+Route119_EventScript_151552:: @ 8151552
+ trainerbattle 0, 400, 0, Route119_Text_1BEC5E, Route119_Text_1BEC9A
+ msgbox Route119_Text_1BECB1, 6
+ end
+
+Route119_EventScript_151569:: @ 8151569
+ trainerbattle 0, 415, 0, Route119_Text_1BECF1, Route119_Text_1BED4C
+ msgbox Route119_Text_1BED5C, 6
+ end
+
+Route119_EventScript_151580:: @ 8151580
+ trainerbattle 0, 416, 0, Route119_Text_1BEDB6, Route119_Text_1BEDEC
+ msgbox Route119_Text_1BEE06, 6
+ end
+
+Route119_EventScript_151597:: @ 8151597
+ trainerbattle 0, 651, 0, Route119_Text_1BEE2D, Route119_Text_1BEE4B
+ msgbox Route119_Text_1BEE66, 6
+ end
+
+Route119_EventScript_1515AE:: @ 81515AE
+ trainerbattle 0, 693, 0, Route119_Text_1BEED0, Route119_Text_1BEF37
+ msgbox Route119_Text_1BEF67, 6
+ end
+
+Route119_EventScript_1515C5:: @ 81515C5
+ lock
+ faceplayer
+ msgbox Route119_Text_171520, 4
+ closebutton
+ move LAST_TALKED, Route119_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route119_EventScript_1515DC:: @ 81515DC
+ lock
+ faceplayer
+ msgbox Route119_Text_17157C, 4
+ closebutton
+ move LAST_TALKED, Route119_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+Route119_EventScript_1515F3:: @ 81515F3
+ msgbox Route119_Text_1715D7, 2
+ end
+
+Route119_EventScript_1515FC:: @ 81515FC
+ msgbox Route119_Text_1716F4, 2
+ end
+
+Route119_EventScript_151605:: @ 8151605
+ msgbox Route119_Text_171774, 3
+ end
+
diff --git a/data/scripts/maps/Route119_House.s b/data/scripts/maps/Route119_House.s
new file mode 100644
index 000000000..b18ea7a6c
--- /dev/null
+++ b/data/scripts/maps/Route119_House.s
@@ -0,0 +1,17 @@
+Route119_House_MapScripts:: @ 8163DDD
+ .byte 0
+
+Route119_House_EventScript_163DDE:: @ 8163DDE
+ msgbox Route119_House_Text_19F371, 2
+ end
+
+Route119_House_EventScript_163DE7:: @ 8163DE7
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox Route119_House_Text_19F406, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/Route119_WeatherInstitute_1F.s b/data/scripts/maps/Route119_WeatherInstitute_1F.s
new file mode 100644
index 000000000..f280086f6
--- /dev/null
+++ b/data/scripts/maps/Route119_WeatherInstitute_1F.s
@@ -0,0 +1,56 @@
+Route119_WeatherInstitute_1F_MapScripts:: @ 8163C2A
+ map_script 3, Route119_WeatherInstitute_1F_MapScript1_163C30
+ .byte 0
+
+Route119_WeatherInstitute_1F_MapScript1_163C30:: @ 8163C30
+ call Route119_WeatherInstitute_1F_EventScript_1A0196
+ compare 0x40b3, 0
+ callif 1, Route119_WeatherInstitute_1F_EventScript_163C41
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C41:: @ 8163C41
+ movespriteperm 5, 0, 5
+ spritebehave 5, 10
+ return
+
+Route119_WeatherInstitute_1F_EventScript_163C4D:: @ 8163C4D
+ lock
+ faceplayer
+ special 148
+ compare 0x40b3, 0
+ jumpeq Route119_WeatherInstitute_1F_EventScript_163C67
+ msgbox Route119_WeatherInstitute_1F_Text_19ED22, 4
+ release
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C67:: @ 8163C67
+ msgbox Route119_WeatherInstitute_1F_Text_19ECF4, 4
+ release
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C71:: @ 8163C71
+ msgbox Route119_WeatherInstitute_1F_Text_19ED6B, 2
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C7A:: @ 8163C7A
+ msgbox Route119_WeatherInstitute_1F_Text_19EE25, 2
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C83:: @ 8163C83
+ lockall
+ msgbox Route119_WeatherInstitute_1F_Text_19EE8B, 4
+ closebutton
+ call Route119_WeatherInstitute_1F_EventScript_1A02CA
+ releaseall
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163C94:: @ 8163C94
+ trainerbattle 0, TRAINER_WEATHER_INSTITUTE_GRUNT_1, 0, Route119_WeatherInstitute_1F_Text_19EB8A, Route119_WeatherInstitute_1F_Text_19EBEE
+ msgbox Route119_WeatherInstitute_1F_Text_19EC0E, 6
+ end
+
+Route119_WeatherInstitute_1F_EventScript_163CAB:: @ 8163CAB
+ trainerbattle 0, TRAINER_WEATHER_INSTITUTE_GRUNT_2, 0, Route119_WeatherInstitute_1F_Text_19EC6B, Route119_WeatherInstitute_1F_Text_19EC89
+ msgbox Route119_WeatherInstitute_1F_Text_19EC97, 6
+ end
+
diff --git a/data/scripts/maps/Route119_WeatherInstitute_2F.s b/data/scripts/maps/Route119_WeatherInstitute_2F.s
new file mode 100644
index 000000000..deee98d09
--- /dev/null
+++ b/data/scripts/maps/Route119_WeatherInstitute_2F.s
@@ -0,0 +1,94 @@
+Route119_WeatherInstitute_2F_MapScripts:: @ 8163CC2
+ map_script 3, Route119_WeatherInstitute_2F_MapScript1_163CC8
+ .byte 0
+
+Route119_WeatherInstitute_2F_MapScript1_163CC8:: @ 8163CC8
+ call Route119_WeatherInstitute_2F_EventScript_1A0196
+ compare 0x40b3, 0
+ callif 1, Route119_WeatherInstitute_2F_EventScript_163CE4
+ compare 0x40b3, 1
+ callif 1, Route119_WeatherInstitute_2F_EventScript_163CF0
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163CE4:: @ 8163CE4
+ movespriteperm 5, 1, 6
+ spritebehave 5, 10
+ return
+
+Route119_WeatherInstitute_2F_EventScript_163CF0:: @ 8163CF0
+ movespriteperm 5, 4, 6
+ spritebehave 5, 10
+ return
+
+Route119_WeatherInstitute_2F_EventScript_163CFC:: @ 8163CFC
+ trainerbattle 0, TRAINER_WEATHER_INSTITUTE_GRUNT_3, 0, Route119_WeatherInstitute_2F_Text_19EEAF, Route119_WeatherInstitute_2F_Text_19EF1B
+ msgbox Route119_WeatherInstitute_2F_Text_19EF3E, 6
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163D13:: @ 8163D13
+ trainerbattle 0, TRAINER_WEATHER_INSTITUTE_GRUNT_4, 0, Route119_WeatherInstitute_2F_Text_19EFA3, Route119_WeatherInstitute_2F_Text_19EFDD
+ msgbox Route119_WeatherInstitute_2F_Text_19EFE9, 6
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163D2A:: @ 8163D2A
+ trainerbattle 2, TRAINER_WEATHER_INSTITUTE_GRUNT_5, 0, Route119_WeatherInstitute_2F_Text_19F042, Route119_WeatherInstitute_2F_Text_19F0F4, Route119_WeatherInstitute_2F_EventScript_163D45
+ msgbox Route119_WeatherInstitute_2F_Text_19F11B, 6
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163D45:: @ 8163D45
+ msgbox Route119_WeatherInstitute_2F_Text_19F11B, 4
+ closebutton
+ setvar 0x40b3, 1
+ clearflag 893
+ fadedefault
+ fadescreen 1
+ setflag 890
+ disappear 1
+ disappear 2
+ disappear 3
+ fadescreen 0
+ move 5, Route119_WeatherInstitute_2F_Movement_163DC8
+ waitmove 0
+ moveoffscreen 5
+ jump Route119_WeatherInstitute_2F_EventScript_163D7A
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163D7A:: @ 8163D7A
+ msgbox Route119_WeatherInstitute_2F_Text_19F1CF, 4
+ countpokemon
+ compare RESULT, 6
+ jumpeq Route119_WeatherInstitute_2F_EventScript_163DB4
+ fanfare 370
+ message Route119_WeatherInstitute_2F_Text_19F267
+ waitfanfare
+ waittext
+ givepokemon SPECIES_CASTFORM, 25, ITEM_MYSTIC_WATER, 0x0, 0x0, 0
+ setflag 151
+ msgbox Route119_WeatherInstitute_2F_Text_19F27D, 4
+ release
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163DB4:: @ 8163DB4
+ msgbox Route119_WeatherInstitute_2F_Text_19F231, 4
+ release
+ end
+
+Route119_WeatherInstitute_2F_EventScript_163DBE:: @ 8163DBE
+ msgbox Route119_WeatherInstitute_2F_Text_19F2FE, 4
+ release
+ end
+
+Route119_WeatherInstitute_2F_Movement_163DC8:: @ 8163DC8
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route119_WeatherInstitute_2F_EventScript_163DCC:: @ 8163DCC
+ lock
+ faceplayer
+ checkflag 151
+ jumpeq Route119_WeatherInstitute_2F_EventScript_163DBE
+ jump Route119_WeatherInstitute_2F_EventScript_163D7A
+ end
+
diff --git a/data/scripts/maps/Route120.s b/data/scripts/maps/Route120.s
new file mode 100644
index 000000000..e0ef91dc0
--- /dev/null
+++ b/data/scripts/maps/Route120.s
@@ -0,0 +1,358 @@
+Route120_MapScripts:: @ 815160E
+ map_script 5, Route120_MapScript1_15161E
+ map_script 3, Route120_MapScript1_1516DF
+ map_script 1, Route120_MapScript1_151686
+ .byte 0
+
+Route120_MapScript1_15161E:: @ 815161E
+ checkflag 2145
+ callif 1, Route120_EventScript_151628
+ end
+
+Route120_EventScript_151628:: @ 8151628
+ compare 0x8004, 0
+ callif 1, Route120_EventScript_15166B
+ compare 0x8004, 1
+ callif 1, Route120_EventScript_151672
+ compare 0x8004, 2
+ callif 1, Route120_EventScript_151676
+ compare 0x8004, 3
+ callif 1, Route120_EventScript_15167A
+ compare 0x8004, 4
+ callif 1, Route120_EventScript_15167E
+ compare 0x8004, 5
+ callif 1, Route120_EventScript_151682
+ return
+
+Route120_EventScript_15166B:: @ 815166B
+ disappear 30
+ disappear 36
+ return
+
+Route120_EventScript_151672:: @ 8151672
+ disappear 37
+ return
+
+Route120_EventScript_151676:: @ 8151676
+ disappear 38
+ return
+
+Route120_EventScript_15167A:: @ 815167A
+ disappear 39
+ return
+
+Route120_EventScript_15167E:: @ 815167E
+ disappear 41
+ return
+
+Route120_EventScript_151682:: @ 8151682
+ disappear 40
+ return
+
+Route120_MapScript1_151686:: @ 8151686
+ checkflag 228
+ callif 0, Route120_EventScript_1516A2
+ checkflag 285
+ callif 1, Route120_EventScript_1516B5
+ checkflag 285
+ callif 0, Route120_EventScript_1516DA
+ end
+
+Route120_EventScript_1516A2:: @ 81516A2
+ setmaptile 7, 54, 124, 1
+ setmaptile 7, 55, 145, 1
+ return
+
+Route120_EventScript_1516B5:: @ 81516B5
+ setmaptile 13, 15, 663, 0
+ setmaptile 12, 16, 671, 0
+ setmaptile 12, 17, 161, 0
+ setmaptile 13, 17, 161, 0
+ return
+
+Route120_EventScript_1516DA:: @ 81516DA
+ spritebehave 36, 10
+ return
+
+Route120_MapScript1_1516DF:: @ 81516DF
+ call Route120_EventScript_1AE313
+ call Route120_EventScript_1516EA
+ end
+
+Route120_EventScript_1516EA:: @ 81516EA
+ getplayerxy 0x4000, 0x4001
+ compare 0x4001, 14
+ jumpif 3, Route120_EventScript_151715
+ compare 0x4001, 60
+ jumpif 3, Route120_EventScript_151719
+ compare 0x4001, 61
+ jumpif 4, Route120_EventScript_151711
+ return
+
+Route120_EventScript_151711:: @ 8151711
+ setweather 1
+ return
+
+Route120_EventScript_151715:: @ 8151715
+ setweather 2
+ return
+
+Route120_EventScript_151719:: @ 8151719
+ compare 0x4000, 7
+ jumpif 3, Route120_EventScript_151735
+ compare 0x4000, 19
+ jumpif 3, Route120_EventScript_151715
+ jump Route120_EventScript_151735
+ end
+
+Route120_EventScript_151735:: @ 8151735
+ setweather 3
+ return
+
+Route120_EventScript_151739:: @ 8151739
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2254
+ jumpeq Route120_EventScript_151837
+ msgbox Route120_Text_1C58F1, 5
+ compare RESULT, 1
+ callif 1, Route120_EventScript_151841
+ compare RESULT, 0
+ callif 1, Route120_EventScript_15184A
+ specialval RESULT, 147
+ switch RESULT
+ case 0, Route120_EventScript_1517DC
+ case 5, Route120_EventScript_1517DC
+ case 1, Route120_EventScript_1517E7
+ case 6, Route120_EventScript_1517E7
+ case 2, Route120_EventScript_1517F2
+ case 7, Route120_EventScript_1517F2
+ case 3, Route120_EventScript_1517FD
+ case 8, Route120_EventScript_1517FD
+ case 4, Route120_EventScript_151808
+ case 9, Route120_EventScript_151808
+ end
+
+Route120_EventScript_1517DC:: @ 81517DC
+ setvar 0x8004, 143
+ jump Route120_EventScript_151813
+ end
+
+Route120_EventScript_1517E7:: @ 81517E7
+ setvar 0x8004, 144
+ jump Route120_EventScript_151813
+ end
+
+Route120_EventScript_1517F2:: @ 81517F2
+ setvar 0x8004, 145
+ jump Route120_EventScript_151813
+ end
+
+Route120_EventScript_1517FD:: @ 81517FD
+ setvar 0x8004, 146
+ jump Route120_EventScript_151813
+ end
+
+Route120_EventScript_151808:: @ 8151808
+ setvar 0x8004, 147
+ jump Route120_EventScript_151813
+ end
+
+Route120_EventScript_151813:: @ 8151813
+ giveitem 0x8004
+ compare RESULT, 0
+ jumpeq Route120_EventScript_1A029B
+ setflag 2254
+ msgbox Route120_Text_1C5A0B, 4
+ release
+ end
+
+Route120_EventScript_151837:: @ 8151837
+ msgbox Route120_Text_1C5A4D, 4
+ release
+ end
+
+Route120_EventScript_151841:: @ 8151841
+ msgbox Route120_Text_1C5979, 4
+ return
+
+Route120_EventScript_15184A:: @ 815184A
+ msgbox Route120_Text_1C59B5, 4
+ return
+
+Route120_EventScript_151853:: @ 8151853
+ lock
+ faceplayer
+ checkflag 290
+ jumpeq Route120_EventScript_151884
+ msgbox Route120_Text_171827, 5
+ compare RESULT, 0
+ jumpeq Route120_EventScript_151877
+ jump Route120_EventScript_15189D
+ end
+
+Route120_EventScript_151877:: @ 8151877
+ msgbox Route120_Text_17193D, 4
+ setflag 290
+ release
+ end
+
+Route120_EventScript_151884:: @ 8151884
+ msgbox Route120_Text_17196F, 5
+ compare RESULT, 0
+ jumpeq Route120_EventScript_151877
+ jump Route120_EventScript_15189D
+ end
+
+Route120_EventScript_15189D:: @ 815189D
+ msgbox Route120_Text_1719A0, 4
+ closebutton
+ compare FACING, 2
+ callif 1, Route120_EventScript_15197F
+ compare FACING, 3
+ callif 1, Route120_EventScript_15198A
+ move 31, Route120_Movement_1A083F
+ waitmove 0
+ pause 20
+ msgbox Route120_Text_1719D4, 4
+ closebutton
+ move 30, Route120_Movement_1A0843
+ waitmove 0
+ move 30, Route120_Movement_1A0662
+ waitmove 0
+ checksound
+ pokecry SPECIES_KECLEON, 2
+ pause 40
+ waitpokecry
+ setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
+ setvar 0x8004, 0
+ setflag 2145
+ dowildbattle
+ clearflag 2145
+ jump Route120_EventScript_151908
+ end
+
+Route120_EventScript_151908:: @ 8151908
+ move 31, Route120_Movement_1A0845
+ move 255, Route120_Movement_1A0841
+ waitmove 0
+ msgbox Route120_Text_171A40, 4
+ giveitem ITEM_DEVON_SCOPE
+ setflag 285
+ msgbox Route120_Text_171B0E, 4
+ closebutton
+ move 31, Route120_Movement_1A0845
+ waitmove 0
+ pause 50
+ setanimation 0, 1
+ doanimation 30
+ pause 15
+ disappear 31
+ checkanimation 30
+ setmaptile 13, 15, 663, 0
+ setmaptile 12, 16, 671, 0
+ setmaptile 12, 17, 161, 0
+ setmaptile 13, 17, 161, 0
+ special 142
+ release
+ end
+
+Route120_EventScript_15197F:: @ 815197F
+ move 255, Route120_Movement_1A083F
+ waitmove 0
+ return
+
+Route120_EventScript_15198A:: @ 815198A
+ move 255, Route120_Movement_151995
+ waitmove 0
+ return
+
+Route120_Movement_151995:: @ 8151995
+ step_down
+ step_left
+ step_end
+
+Route120_EventScript_151998:: @ 8151998
+ msgbox Route120_Text_171B93, 2
+ end
+
+Route120_EventScript_1519A1:: @ 81519A1
+ msgbox Route120_Text_171C5E, 3
+ end
+
+Route120_EventScript_1519AA:: @ 81519AA
+ msgbox Route120_Text_171C77, 3
+ end
+
+Route120_EventScript_1519B3:: @ 81519B3
+ trainerbattle 0, 405, 0, Route120_Text_1BEFC8, Route120_Text_1BF000
+ msgbox Route120_Text_1BF015, 6
+ end
+
+Route120_EventScript_1519CA:: @ 81519CA
+ trainerbattle 0, 406, 0, Route120_Text_1BF07E, Route120_Text_1BF0A5
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route120_EventScript_1519F1
+ msgbox Route120_Text_1BF0C3, 6
+ end
+
+Route120_EventScript_1519F1:: @ 81519F1
+ trainerbattle 5, 406, 0, Route120_Text_1BF0FA, Route120_Text_1BF131
+ msgbox Route120_Text_1BF154, 6
+ end
+
+Route120_EventScript_151A08:: @ 8151A08
+ trainerbattle 0, 553, 0, Route120_Text_1BF193, Route120_Text_1BF1D4
+ msgbox Route120_Text_1BF215, 6
+ end
+
+Route120_EventScript_151A1F:: @ 8151A1F
+ trainerbattle 0, 560, 0, Route120_Text_1BF26E, Route120_Text_1BF2D2
+ msgbox Route120_Text_1BF2EA, 6
+ end
+
+Route120_EventScript_151A36:: @ 8151A36
+ trainerbattle 0, 226, 0, Route120_Text_1BF32B, Route120_Text_1BF36B
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route120_EventScript_151A5D
+ msgbox Route120_Text_1BF38D, 6
+ end
+
+Route120_EventScript_151A5D:: @ 8151A5D
+ trainerbattle 5, 226, 0, Route120_Text_1BF3D0, Route120_Text_1BF416
+ msgbox Route120_Text_1BF43E, 6
+ end
+
+Route120_EventScript_151A74:: @ 8151A74
+ trainerbattle 0, 95, 0, Route120_Text_1BF4A0, Route120_Text_1BF504
+ msgbox Route120_Text_1BF51F, 6
+ end
+
+Route120_EventScript_151A8B:: @ 8151A8B
+ trainerbattle 0, 45, 0, Route120_Text_1BF560, Route120_Text_1BF5D6
+ msgbox Route120_Text_1BF5F4, 6
+ end
+
+Route120_EventScript_151AA2:: @ 8151AA2
+ trainerbattle 0, 435, 0, Route120_Text_1BF65B, Route120_Text_1BF6A4
+ msgbox Route120_Text_1BF6D0, 6
+ end
+
+Route120_EventScript_151AB9:: @ 8151AB9
+ trainerbattle 0, 436, 0, Route120_Text_1BF728, Route120_Text_1BF78C
+ msgbox Route120_Text_1BF7B2, 6
+ end
+
+Route120_EventScript_151AD0:: @ 8151AD0
+ trainerbattle 0, 652, 0, Route120_Text_1BF80B, Route120_Text_1BF852
+ msgbox Route120_Text_1BF891, 6
+ end
+
+Route120_EventScript_151AE7:: @ 8151AE7
+ trainerbattle 0, 653, 0, Route120_Text_1BF8C5, Route120_Text_1BF920
+ msgbox Route120_Text_1BF946, 6
+ end
+
diff --git a/data/scripts/maps/Route121.s b/data/scripts/maps/Route121.s
new file mode 100644
index 000000000..096e294d5
--- /dev/null
+++ b/data/scripts/maps/Route121.s
@@ -0,0 +1,114 @@
+Route121_MapScripts:: @ 8151AFE
+ map_script 3, Route121_MapScript1_151B04
+ .byte 0
+
+Route121_MapScript1_151B04:: @ 8151B04
+ call Route121_EventScript_1A0196
+ end
+
+Route121_EventScript_151B0A:: @ 8151B0A
+ msgbox Route121_Text_171CB4, 2
+ end
+
+Route121_EventScript_151B13:: @ 8151B13
+ msgbox Route121_Text_171D0C, 3
+ end
+
+Route121_EventScript_151B1C:: @ 8151B1C
+ msgbox Route121_Text_171D5B, 3
+ end
+
+Route121_EventScript_151B25:: @ 8151B25
+ lockall
+ msgbox Route121_Text_171C8F, 4
+ closebutton
+ move 12, Route121_Movement_151B57
+ move 13, Route121_Movement_151B60
+ move 14, Route121_Movement_151B69
+ waitmove 0
+ disappear 12
+ disappear 13
+ disappear 14
+ setvar 0x4074, 1
+ releaseall
+ end
+
+Route121_Movement_151B57:: @ 8151B57
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+Route121_Movement_151B60:: @ 8151B60
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+Route121_Movement_151B69:: @ 8151B69
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+Route121_EventScript_151B72:: @ 8151B72
+ trainerbattle 0, 300, 0, Route121_Text_1BF96E, Route121_Text_1BF9A1
+ msgbox Route121_Text_1BF9BA, 6
+ end
+
+Route121_EventScript_151B89:: @ 8151B89
+ trainerbattle 0, 254, 0, Route121_Text_1BFA1B, Route121_Text_1BFA8C
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route121_EventScript_151BB0
+ msgbox Route121_Text_1BFA9D, 6
+ end
+
+Route121_EventScript_151BB0:: @ 8151BB0
+ trainerbattle 5, 254, 0, Route121_Text_1BFADA, Route121_Text_1BFB4B
+ msgbox Route121_Text_1BFB5C, 6
+ end
+
+Route121_EventScript_151BC7:: @ 8151BC7
+ trainerbattle 0, 107, 0, Route121_Text_1BFBB4, Route121_Text_1BFBEE
+ msgbox Route121_Text_1BFBFD, 6
+ end
+
+Route121_EventScript_151BDE:: @ 8151BDE
+ trainerbattle 4, 286, 0, Route121_Text_1BFC36, Route121_Text_1BFC7A, Route121_Text_1BFD08
+ msgbox Route121_Text_1BFCB3, 6
+ end
+
+Route121_EventScript_151BF9:: @ 8151BF9
+ trainerbattle 4, 286, 0, Route121_Text_1BFD60, Route121_Text_1BFDA3, Route121_Text_1BFE0D
+ msgbox Route121_Text_1BFDC1, 6
+ end
+
+Route121_EventScript_151C14:: @ 8151C14
+ trainerbattle 0, 127, 0, Route121_Text_1BFE51, Route121_Text_1BFE80
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route121_EventScript_151C3B
+ msgbox Route121_Text_1BFEAE, 6
+ end
+
+Route121_EventScript_151C3B:: @ 8151C3B
+ trainerbattle 5, 127, 0, Route121_Text_1BFEDE, Route121_Text_1BFF0A
+ msgbox Route121_Text_1BFF3A, 6
+ end
+
diff --git a/data/scripts/maps/Route121_SafariZoneEntrance.s b/data/scripts/maps/Route121_SafariZoneEntrance.s
new file mode 100644
index 000000000..9d5c12e26
--- /dev/null
+++ b/data/scripts/maps/Route121_SafariZoneEntrance.s
@@ -0,0 +1,139 @@
+Route121_SafariZoneEntrance_MapScripts:: @ 815C323
+ map_script 2, Route121_SafariZoneEntrance_MapScript2_15C329
+ .byte 0
+
+Route121_SafariZoneEntrance_MapScript2_15C329:: @ 815C329
+ map_script_2 0x40a4, 1, Route121_SafariZoneEntrance_EventScript_15C333
+ .2byte 0
+
+Route121_SafariZoneEntrance_EventScript_15C333:: @ 815C333
+ lockall
+ move 255, Route121_SafariZoneEntrance_Movement_15C348
+ waitmove 0
+ special 206
+ setvar 0x40a4, 0
+ releaseall
+ end
+
+Route121_SafariZoneEntrance_Movement_15C348:: @ 815C348
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+Route121_SafariZoneEntrance_EventScript_15C351:: @ 815C351
+ msgbox Route121_SafariZoneEntrance_Text_1C35D0, 2
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C35A:: @ 815C35A
+ lock
+ faceplayer
+ msgbox Route121_SafariZoneEntrance_Text_1C3704, 5
+ compare RESULT, 1
+ jumpeq Route121_SafariZoneEntrance_EventScript_15C379
+ msgbox Route121_SafariZoneEntrance_Text_1C373C, 4
+ release
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C379:: @ 815C379
+ msgbox Route121_SafariZoneEntrance_Text_1C375F, 4
+ release
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C383:: @ 815C383
+ lockall
+ move 255, Route121_SafariZoneEntrance_Movement_1A0841
+ waitmove 0
+ showmoney 0, 0
+ snop
+ msgbox Route121_SafariZoneEntrance_Text_1C3832, 5
+ compare RESULT, 1
+ jumpeq Route121_SafariZoneEntrance_EventScript_15C3B3
+ msgbox Route121_SafariZoneEntrance_Text_1C3895, 4
+ jump Route121_SafariZoneEntrance_EventScript_15C46C
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C3B3:: @ 815C3B3
+ checkitem ITEM_POKEBLOCK_CASE, 1
+ compare RESULT, 0
+ jumpeq Route121_SafariZoneEntrance_EventScript_15C450
+ call Route121_SafariZoneEntrance_EventScript_15C425
+ checkmoney 0x1f4, 0
+ compare RESULT, 0
+ jumpeq Route121_SafariZoneEntrance_EventScript_15C45E
+ msgbox Route121_SafariZoneEntrance_Text_1C38D9, 4
+ paymoney 0x1f4, 0
+ updatemoney 0, 0
+ snop
+ msgbox Route121_SafariZoneEntrance_Text_1C38F4, 4
+ fanfare 370
+ message Route121_SafariZoneEntrance_Text_1C3910
+ waitfanfare
+ waittext
+ msgbox Route121_SafariZoneEntrance_Text_1C392D, 4
+ closebutton
+ hidemoney 0, 0
+ move 255, Route121_SafariZoneEntrance_Movement_15C47E
+ waitmove 0
+ special 205
+ setvar 0x40a4, 2
+ warp SafariZone_Southeast, 255, 32, 33
+ waitstate
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C425:: @ 815C425
+ countpokemon
+ compare RESULT, 6
+ jumpif 5, Route121_SafariZoneEntrance_EventScript_15C44F
+ specialval RESULT, 304
+ compare RESULT, 1
+ jumpeq Route121_SafariZoneEntrance_EventScript_15C44F
+ msgbox Route121_SafariZoneEntrance_Text_1C39A3, 4
+ jump Route121_SafariZoneEntrance_EventScript_15C46C
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C44F:: @ 815C44F
+ return
+
+Route121_SafariZoneEntrance_EventScript_15C450:: @ 815C450
+ msgbox Route121_SafariZoneEntrance_Text_1C39C3, 4
+ jump Route121_SafariZoneEntrance_EventScript_15C46C
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C45E:: @ 815C45E
+ msgbox Route121_SafariZoneEntrance_Text_1C38B5, 4
+ jump Route121_SafariZoneEntrance_EventScript_15C46C
+ end
+
+Route121_SafariZoneEntrance_EventScript_15C46C:: @ 815C46C
+ closebutton
+ hidemoney 0, 0
+ move 255, Route121_SafariZoneEntrance_Movement_15C47C
+ waitmove 0
+ releaseall
+ end
+
+Route121_SafariZoneEntrance_Movement_15C47C:: @ 815C47C
+ step_right
+ step_end
+
+Route121_SafariZoneEntrance_Movement_15C47E:: @ 815C47E
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_down
+ step_14
+ step_end
+
+Route121_SafariZoneEntrance_EventScript_15C487:: @ 815C487
+ msgbox Route121_SafariZoneEntrance_Text_1C3E4B, 3
+ end
+
diff --git a/data/scripts/maps/Route122.s b/data/scripts/maps/Route122.s
new file mode 100644
index 000000000..75718c2b1
--- /dev/null
+++ b/data/scripts/maps/Route122.s
@@ -0,0 +1,3 @@
+Route122_MapScripts:: @ 8151C52
+ .byte 0
+
diff --git a/data/scripts/maps/Route123.s b/data/scripts/maps/Route123.s
new file mode 100644
index 000000000..eb2ae5fcf
--- /dev/null
+++ b/data/scripts/maps/Route123.s
@@ -0,0 +1,103 @@
+Route123_MapScripts:: @ 8151C53
+ map_script 3, Route123_MapScript1_151C59
+ .byte 0
+
+Route123_MapScript1_151C59:: @ 8151C59
+ special 325
+ end
+
+Route123_EventScript_151C5D:: @ 8151C5D
+ lock
+ faceplayer
+ checkflag 232
+ jumpeq Route123_EventScript_151CAC
+ msgbox Route123_Text_171D83, 4
+ special 299
+ compare RESULT, 0
+ jumpeq Route123_EventScript_151CAA
+ msgbox Route123_Text_171DC2, 4
+ giveitem ITEM_TM19
+ compare RESULT, 0
+ jumpeq Route123_EventScript_1A029B
+ setflag 232
+ msgbox Route123_Text_171E34, 4
+ release
+ end
+
+Route123_EventScript_151CAA:: @ 8151CAA
+ release
+ end
+
+Route123_EventScript_151CAC:: @ 8151CAC
+ msgbox Route123_Text_171E34, 4
+ release
+ end
+
+Route123_EventScript_151CB6:: @ 8151CB6
+ msgbox Route123_Text_171E76, 3
+ end
+
+Route123_EventScript_151CBF:: @ 8151CBF
+ msgbox Route123_Text_171E8E, 3
+ end
+
+Route123_EventScript_151CC8:: @ 8151CC8
+ msgbox Route123_Text_171EBC, 3
+ end
+
+Route123_EventScript_151CD1:: @ 8151CD1
+ trainerbattle 0, 92, 0, Route123_Text_1BFF6A, Route123_Text_1BFFA2
+ msgbox Route123_Text_1BFFC1, 6
+ end
+
+Route123_EventScript_151CE8:: @ 8151CE8
+ trainerbattle 0, 75, 0, Route123_Text_1BFFF0, Route123_Text_1C0057
+ msgbox Route123_Text_1C0075, 6
+ end
+
+Route123_EventScript_151CFF:: @ 8151CFF
+ trainerbattle 0, 39, 0, Route123_Text_1C009E, Route123_Text_1C00D4
+ msgbox Route123_Text_1C0100, 6
+ end
+
+Route123_EventScript_151D16:: @ 8151D16
+ trainerbattle 0, 238, 0, Route123_Text_1C013F, Route123_Text_1C01A3
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route123_EventScript_151D3D
+ msgbox Route123_Text_1C01B1, 6
+ end
+
+Route123_EventScript_151D3D:: @ 8151D3D
+ trainerbattle 5, 238, 0, Route123_Text_1C01F9, Route123_Text_1C0240
+ msgbox Route123_Text_1C024E, 6
+ end
+
+Route123_EventScript_151D54:: @ 8151D54
+ trainerbattle 0, 249, 0, Route123_Text_1C028C, Route123_Text_1C0303
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route123_EventScript_151D7B
+ msgbox Route123_Text_1C030F, 6
+ end
+
+Route123_EventScript_151D7B:: @ 8151D7B
+ trainerbattle 5, 249, 0, Route123_Text_1C0351, Route123_Text_1C0380
+ msgbox Route123_Text_1C038C, 6
+ end
+
+Route123_EventScript_151D92:: @ 8151D92
+ trainerbattle 4, 484, 0, Route123_Text_1C03CB, Route123_Text_1C040E, Route123_Text_1C0462
+ msgbox Route123_Text_1C0423, 6
+ end
+
+Route123_EventScript_151DAD:: @ 8151DAD
+ trainerbattle 4, 484, 0, Route123_Text_1C049C, Route123_Text_1C04CD, Route123_Text_1C0519
+ msgbox Route123_Text_1C04E3, 6
+ end
+
+Route123_EventScript_151DC8:: @ 8151DC8
+ trainerbattle 0, 106, 0, Route123_Text_1C0554, Route123_Text_1C059F
+ msgbox Route123_Text_1C05BC, 6
+ end
+
diff --git a/data/scripts/maps/Route123_BerryMastersHouse.s b/data/scripts/maps/Route123_BerryMastersHouse.s
new file mode 100644
index 000000000..b1bfb5eaa
--- /dev/null
+++ b/data/scripts/maps/Route123_BerryMastersHouse.s
@@ -0,0 +1,153 @@
+Route123_BerryMastersHouse_MapScripts:: @ 81639DF
+ map_script 3, Route123_BerryMastersHouse_MapScript1_1639E5
+ .byte 0
+
+Route123_BerryMastersHouse_MapScript1_1639E5:: @ 81639E5
+ setflag 2147
+ end
+
+Route123_BerryMastersHouse_EventScript_1639E9:: @ 81639E9
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2253
+ jumpeq Route123_BerryMastersHouse_EventScript_163A5A
+ msgbox Route123_BerryMastersHouse_Text_1C5BC4, 4
+ random 10
+ addvar RESULT, 20
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 2253
+ msgbox Route123_BerryMastersHouse_Text_1C5C66, 4
+ random 10
+ addvar RESULT, 20
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ msgbox Route123_BerryMastersHouse_Text_1C5C83, 4
+ release
+ end
+
+Route123_BerryMastersHouse_EventScript_163A5A:: @ 8163A5A
+ msgbox Route123_BerryMastersHouse_Text_1C5CDC, 4
+ release
+ end
+
+Route123_BerryMastersHouse_EventScript_163A64:: @ 8163A64
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2257
+ jumpeq Route123_BerryMastersHouse_EventScript_163C13
+ msgbox Route123_BerryMastersHouse_Text_1C5D24, 4
+ setvar 0x8004, 13
+ call Route123_BerryMastersHouse_EventScript_1A00F3
+ lock
+ faceplayer
+ compare RESULT, 1
+ jumpeq Route123_BerryMastersHouse_EventScript_163AAD
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_163A9B
+ end
+
+Route123_BerryMastersHouse_EventScript_163A9B:: @ 8163A9B
+ msgbox Route123_BerryMastersHouse_Text_1C5EC0, 4
+ msgbox Route123_BerryMastersHouse_Text_1C5E59, 4
+ release
+ end
+
+Route123_BerryMastersHouse_EventScript_163AAD:: @ 8163AAD
+ compare 0x8004, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ compare 0x8004, 1
+ jumpeq Route123_BerryMastersHouse_EventScript_163B1E
+ compare 0x8004, 2
+ jumpeq Route123_BerryMastersHouse_EventScript_163B4F
+ compare 0x8004, 3
+ jumpeq Route123_BerryMastersHouse_EventScript_163B80
+ compare 0x8004, 4
+ jumpeq Route123_BerryMastersHouse_EventScript_163BB1
+ compare 0x8004, 5
+ jumpeq Route123_BerryMastersHouse_EventScript_163BE2
+ end
+
+Route123_BerryMastersHouse_EventScript_163AF0:: @ 8163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5E0E, 4
+ random 10
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+
+ .incbin "baserom.gba", 0x163b1c, 0x2
+
+Route123_BerryMastersHouse_EventScript_163B1E:: @ 8163B1E
+ checkflag 248
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
+ giveitem ITEM_SPELON_BERRY
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 248
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+ end
+
+Route123_BerryMastersHouse_EventScript_163B4F:: @ 8163B4F
+ checkflag 249
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
+ giveitem ITEM_PAMTRE_BERRY
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 249
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+ end
+
+Route123_BerryMastersHouse_EventScript_163B80:: @ 8163B80
+ checkflag 250
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
+ giveitem ITEM_WATMEL_BERRY
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 250
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+ end
+
+Route123_BerryMastersHouse_EventScript_163BB1:: @ 8163BB1
+ checkflag 251
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
+ giveitem ITEM_DURIN_BERRY
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 251
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+ end
+
+Route123_BerryMastersHouse_EventScript_163BE2:: @ 8163BE2
+ checkflag 252
+ jumpeq Route123_BerryMastersHouse_EventScript_163AF0
+ msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
+ giveitem ITEM_BELUE_BERRY
+ compare RESULT, 0
+ jumpeq Route123_BerryMastersHouse_EventScript_1A029B
+ setflag 252
+ jump Route123_BerryMastersHouse_EventScript_163C1D
+ end
+
+Route123_BerryMastersHouse_EventScript_163C13:: @ 8163C13
+ msgbox Route123_BerryMastersHouse_Text_1C5E59, 4
+ release
+ end
+
+Route123_BerryMastersHouse_EventScript_163C1D:: @ 8163C1D
+ setflag 2257
+ msgbox Route123_BerryMastersHouse_Text_1C5E59, 4
+ release
+ end
+
diff --git a/data/scripts/maps/Route124.s b/data/scripts/maps/Route124.s
new file mode 100644
index 000000000..d0295dd37
--- /dev/null
+++ b/data/scripts/maps/Route124.s
@@ -0,0 +1,72 @@
+Route124_MapScripts:: @ 8151DDF
+ map_script 3, Route124_MapScript1_151DE5
+ .byte 0
+
+Route124_MapScript1_151DE5:: @ 8151DE5
+ checkflag 2090
+ callif 1, Route124_EventScript_1A02C1
+ end
+
+Route124_EventScript_151DEF:: @ 8151DEF
+ msgbox Route124_Text_171ED1, 3
+ end
+
+Route124_EventScript_151DF8:: @ 8151DF8
+ trainerbattle 0, 159, 0, Route124_Text_1C0624, Route124_Text_1C0675
+ msgbox Route124_Text_1C0693, 6
+ end
+
+Route124_EventScript_151E0F:: @ 8151E0F
+ trainerbattle 0, 160, 0, Route124_Text_1C06F7, Route124_Text_1C0741
+ msgbox Route124_Text_1C0750, 6
+ end
+
+Route124_EventScript_151E26:: @ 8151E26
+ trainerbattle 0, 449, 0, Route124_Text_1C07B4, Route124_Text_1C07F9
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route124_EventScript_151E4D
+ msgbox Route124_Text_1C080E, 6
+ end
+
+Route124_EventScript_151E4D:: @ 8151E4D
+ trainerbattle 5, 449, 0, Route124_Text_1C0888, Route124_Text_1C08C8
+ msgbox Route124_Text_1C08EA, 6
+ end
+
+Route124_EventScript_151E64:: @ 8151E64
+ trainerbattle 0, 450, 0, Route124_Text_1C0936, Route124_Text_1C096B
+ msgbox Route124_Text_1C0994, 6
+ end
+
+Route124_EventScript_151E7B:: @ 8151E7B
+ trainerbattle 0, 174, 0, Route124_Text_1C09CE, Route124_Text_1C0A2F
+ msgbox Route124_Text_1C0A52, 6
+ end
+
+Route124_EventScript_151E92:: @ 8151E92
+ trainerbattle 4, 687, 0, Route124_Text_1C0ABD, Route124_Text_1C0B36, Route124_Text_1C0BC8
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route124_EventScript_151EBD
+ msgbox Route124_Text_1C0B72, 6
+ end
+
+Route124_EventScript_151EBD:: @ 8151EBD
+ trainerbattle 7, 687, 0, Route124_Text_1C0D1F, Route124_Text_1C0DB5, Route124_Text_1C0E5C
+ msgbox Route124_Text_1C0E06, 6
+ end
+
+Route124_EventScript_151ED8:: @ 8151ED8
+ trainerbattle 4, 687, 0, Route124_Text_1C0C0E, Route124_Text_1C0C4F, Route124_Text_1C0CE0
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route124_EventScript_151F03
+ msgbox Route124_Text_1C0C7F, 6
+ end
+
+Route124_EventScript_151F03:: @ 8151F03
+ trainerbattle 7, 687, 0, Route124_Text_1C0EA2, Route124_Text_1C0EE5, Route124_Text_1C0F90
+ msgbox Route124_Text_1C0F19, 6
+ end
+
diff --git a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.s b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.s
new file mode 100644
index 000000000..6e7a0a0df
--- /dev/null
+++ b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.s
@@ -0,0 +1,296 @@
+Route124_DivingTreasureHuntersHouse_MapScripts:: @ 8163DFA
+ map_script 3, Route124_DivingTreasureHuntersHouse_MapScript1_163E00
+ .byte 0
+
+Route124_DivingTreasureHuntersHouse_MapScript1_163E00:: @ 8163E00
+ setflag 2139
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E04:: @ 8163E04
+ lock
+ faceplayer
+ checkflag 217
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_163E20
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F416, 4
+ setflag 217
+ jump Route124_DivingTreasureHuntersHouse_EventScript_163E2E
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E20:: @ 8163E20
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F48F, 4
+ jump Route124_DivingTreasureHuntersHouse_EventScript_163E2E
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E2E:: @ 8163E2E
+ call Route124_DivingTreasureHuntersHouse_EventScript_163E44
+ compare 0x4001, 0
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_164329
+ jump Route124_DivingTreasureHuntersHouse_EventScript_163EA2
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E44:: @ 8163E44
+ setvar 0x4001, 0
+ checkitem ITEM_RED_SHARD, 1
+ compare RESULT, 1
+ callif 1, Route124_DivingTreasureHuntersHouse_EventScript_163E8A
+ checkitem ITEM_YELLOW_SHARD, 1
+ compare RESULT, 1
+ callif 1, Route124_DivingTreasureHuntersHouse_EventScript_163E90
+ checkitem ITEM_BLUE_SHARD, 1
+ compare RESULT, 1
+ callif 1, Route124_DivingTreasureHuntersHouse_EventScript_163E96
+ checkitem ITEM_GREEN_SHARD, 1
+ compare RESULT, 1
+ callif 1, Route124_DivingTreasureHuntersHouse_EventScript_163E9C
+ return
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E8A:: @ 8163E8A
+ addvar 0x4001, 1
+ return
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E90:: @ 8163E90
+ addvar 0x4001, 2
+ return
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E96:: @ 8163E96
+ addvar 0x4001, 4
+ return
+
+Route124_DivingTreasureHuntersHouse_EventScript_163E9C:: @ 8163E9C
+ addvar 0x4001, 8
+ return
+
+Route124_DivingTreasureHuntersHouse_EventScript_163EA2:: @ 8163EA2
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F544, 4
+ jump Route124_DivingTreasureHuntersHouse_EventScript_163EB0
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163EB0:: @ 8163EB0
+ message Route124_DivingTreasureHuntersHouse_Text_19F5C5
+ waittext
+ switch 0x4001
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_163F61
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_163F87
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_163FAD
+ case 4, Route124_DivingTreasureHuntersHouse_EventScript_163FDE
+ case 5, Route124_DivingTreasureHuntersHouse_EventScript_164004
+ case 6, Route124_DivingTreasureHuntersHouse_EventScript_164035
+ case 7, Route124_DivingTreasureHuntersHouse_EventScript_164066
+ case 8, Route124_DivingTreasureHuntersHouse_EventScript_1640A2
+ case 9, Route124_DivingTreasureHuntersHouse_EventScript_1640C8
+ case 10, Route124_DivingTreasureHuntersHouse_EventScript_1640F9
+ case 11, Route124_DivingTreasureHuntersHouse_EventScript_16412A
+ case 12, Route124_DivingTreasureHuntersHouse_EventScript_164166
+ case 13, Route124_DivingTreasureHuntersHouse_EventScript_164197
+ case 14, Route124_DivingTreasureHuntersHouse_EventScript_1641D3
+ case 15, Route124_DivingTreasureHuntersHouse_EventScript_16420F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163F61:: @ 8163F61
+ multichoice 0, 0, 58, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163F87:: @ 8163F87
+ multichoice 0, 0, 59, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163FAD:: @ 8163FAD
+ multichoice 0, 0, 60, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_163FDE:: @ 8163FDE
+ multichoice 0, 0, 61, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164004:: @ 8164004
+ multichoice 0, 0, 62, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164035:: @ 8164035
+ multichoice 0, 0, 63, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164066:: @ 8164066
+ multichoice 0, 0, 64, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_1640A2:: @ 81640A2
+ multichoice 0, 0, 65, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_1640C8:: @ 81640C8
+ multichoice 0, 0, 66, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_1640F9:: @ 81640F9
+ multichoice 0, 0, 67, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_16412A:: @ 816412A
+ multichoice 0, 0, 68, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164166:: @ 8164166
+ multichoice 0, 0, 69, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164197:: @ 8164197
+ multichoice 0, 0, 70, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_1641D3:: @ 81641D3
+ multichoice 0, 0, 71, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_16420F:: @ 816420F
+ multichoice 0, 0, 72, 0
+ switch RESULT
+ case 0, Route124_DivingTreasureHuntersHouse_EventScript_164256
+ case 1, Route124_DivingTreasureHuntersHouse_EventScript_164265
+ case 2, Route124_DivingTreasureHuntersHouse_EventScript_164274
+ case 3, Route124_DivingTreasureHuntersHouse_EventScript_164283
+ case 4, Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164256:: @ 8164256
+ setvar 0x8008, 48
+ setvar 0x8009, 95
+ jump Route124_DivingTreasureHuntersHouse_EventScript_164292
+
+Route124_DivingTreasureHuntersHouse_EventScript_164265:: @ 8164265
+ setvar 0x8008, 50
+ setvar 0x8009, 96
+ jump Route124_DivingTreasureHuntersHouse_EventScript_164292
+
+Route124_DivingTreasureHuntersHouse_EventScript_164274:: @ 8164274
+ setvar 0x8008, 49
+ setvar 0x8009, 97
+ jump Route124_DivingTreasureHuntersHouse_EventScript_164292
+
+Route124_DivingTreasureHuntersHouse_EventScript_164283:: @ 8164283
+ setvar 0x8008, 51
+ setvar 0x8009, 98
+ jump Route124_DivingTreasureHuntersHouse_EventScript_164292
+
+Route124_DivingTreasureHuntersHouse_EventScript_164292:: @ 8164292
+ bufferitem 0, 0x8008
+ bufferitem 1, 0x8009
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F5E0, 5
+ compare RESULT, 0
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ checkitemspace 0x8009, 1
+ compare RESULT, 1
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_1642D3
+ checkitem 0x8008, 2
+ compare RESULT, 0
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_1642D3
+ jump Route124_DivingTreasureHuntersHouse_EventScript_164315
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_1642D3:: @ 81642D3
+ removeitem 0x8008, 1
+ giveitem 0x8009
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F606, 4
+ call Route124_DivingTreasureHuntersHouse_EventScript_163E44
+ compare 0x4001, 0
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_164333
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F629, 5
+ compare RESULT, 1
+ jumpeq Route124_DivingTreasureHuntersHouse_EventScript_163EB0
+ jump Route124_DivingTreasureHuntersHouse_EventScript_16431F
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164315:: @ 8164315
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F64E, 4
+ release
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_16431F:: @ 816431F
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F686, 4
+ release
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164329:: @ 8164329
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F4D1, 4
+ release
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164333:: @ 8164333
+ release
+ end
+
+Route124_DivingTreasureHuntersHouse_EventScript_164335:: @ 8164335
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F6C5, 3
+ end
+
diff --git a/data/scripts/maps/Route125.s b/data/scripts/maps/Route125.s
new file mode 100644
index 000000000..1c51c45ad
--- /dev/null
+++ b/data/scripts/maps/Route125.s
@@ -0,0 +1,52 @@
+Route125_MapScripts:: @ 8151F1E
+ map_script 3, Route125_MapScript1_151F24
+ .byte 0
+
+Route125_MapScript1_151F24:: @ 8151F24
+ checkflag 2090
+ callif 1, Route125_EventScript_1A02C1
+ end
+
+Route125_EventScript_151F2E:: @ 8151F2E
+ trainerbattle 0, 161, 0, Route125_Text_1C0FCF, Route125_Text_1C1002
+ msgbox Route125_Text_1C1013, 6
+ end
+
+Route125_EventScript_151F45:: @ 8151F45
+ trainerbattle 0, 162, 0, Route125_Text_1C104B, Route125_Text_1C1073
+ msgbox Route125_Text_1C1083, 6
+ end
+
+Route125_EventScript_151F5C:: @ 8151F5C
+ trainerbattle 0, 451, 0, Route125_Text_1C10C3, Route125_Text_1C10FB
+ msgbox Route125_Text_1C110C, 6
+ end
+
+Route125_EventScript_151F73:: @ 8151F73
+ trainerbattle 0, 452, 0, Route125_Text_1C1136, Route125_Text_1C1175
+ msgbox Route125_Text_1C117F, 6
+ end
+
+Route125_EventScript_151F8A:: @ 8151F8A
+ trainerbattle 0, 492, 0, Route125_Text_1C11AF, Route125_Text_1C11ED
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route125_EventScript_151FB1
+ msgbox Route125_Text_1C1208, 6
+ end
+
+Route125_EventScript_151FB1:: @ 8151FB1
+ trainerbattle 5, 492, 0, Route125_Text_1C1282, Route125_Text_1C12C5
+ msgbox Route125_Text_1C12EE, 6
+ end
+
+Route125_EventScript_151FC8:: @ 8151FC8
+ trainerbattle 4, 678, 0, Route125_Text_1C13A1, Route125_Text_1C13FF, Route125_Text_1C146E
+ msgbox Route125_Text_1C141C, 6
+ end
+
+Route125_EventScript_151FE3:: @ 8151FE3
+ trainerbattle 4, 678, 0, Route125_Text_1C14AB, Route125_Text_1C14E7, Route125_Text_1C154F
+ msgbox Route125_Text_1C1508, 6
+ end
+
diff --git a/data/scripts/maps/Route126.s b/data/scripts/maps/Route126.s
new file mode 100644
index 000000000..574d05b98
--- /dev/null
+++ b/data/scripts/maps/Route126.s
@@ -0,0 +1,29 @@
+Route126_MapScripts:: @ 8151FFE
+ map_script 3, Route126_MapScript1_152004
+ .byte 0
+
+Route126_MapScript1_152004:: @ 8152004
+ checkflag 2090
+ callif 1, Route126_EventScript_1A02C1
+ end
+
+Route126_EventScript_15200E:: @ 815200E
+ trainerbattle 0, 163, 0, Route126_Text_1C1590, Route126_Text_1C15C3
+ msgbox Route126_Text_1C15D8, 6
+ end
+
+Route126_EventScript_152025:: @ 8152025
+ trainerbattle 0, 164, 0, Route126_Text_1C1627, Route126_Text_1C1660
+ msgbox Route126_Text_1C166F, 6
+ end
+
+Route126_EventScript_15203C:: @ 815203C
+ trainerbattle 0, 453, 0, Route126_Text_1C16AB, Route126_Text_1C16C5
+ msgbox Route126_Text_1C1702, 6
+ end
+
+Route126_EventScript_152053:: @ 8152053
+ trainerbattle 0, 454, 0, Route126_Text_1C1741, Route126_Text_1C1766
+ msgbox Route126_Text_1C1773, 6
+ end
+
diff --git a/data/scripts/maps/Route127.s b/data/scripts/maps/Route127.s
new file mode 100644
index 000000000..5beffdbcb
--- /dev/null
+++ b/data/scripts/maps/Route127.s
@@ -0,0 +1,44 @@
+Route127_MapScripts:: @ 815206A
+ map_script 3, Route127_MapScript1_152070
+ .byte 0
+
+Route127_MapScript1_152070:: @ 8152070
+ checkflag 2090
+ callif 1, Route127_EventScript_1A02C1
+ end
+
+Route127_EventScript_15207A:: @ 815207A
+ trainerbattle 0, 374, 0, Route127_Text_1C17A8, Route127_Text_1C17DD
+ msgbox Route127_Text_1C17EC, 6
+ end
+
+Route127_EventScript_152091:: @ 8152091
+ trainerbattle 0, 384, 0, Route127_Text_1C1828, Route127_Text_1C1860
+ msgbox Route127_Text_1C1877, 6
+ end
+
+Route127_EventScript_1520A8:: @ 81520A8
+ trainerbattle 0, 667, 0, Route127_Text_1C18CC, Route127_Text_1C1930
+ msgbox Route127_Text_1C195D, 6
+ end
+
+Route127_EventScript_1520BF:: @ 81520BF
+ trainerbattle 0, 668, 0, Route127_Text_1C19A3, Route127_Text_1C19D6
+ msgbox Route127_Text_1C19E7, 6
+ end
+
+Route127_EventScript_1520D6:: @ 81520D6
+ trainerbattle 0, 669, 0, Route127_Text_1C1A2E, Route127_Text_1C1A73
+ msgbox Route127_Text_1C1AA0, 6
+ end
+
+Route127_EventScript_1520ED:: @ 81520ED
+ trainerbattle 0, 672, 0, Route127_Text_1C1AE2, Route127_Text_1C1B2A
+ msgbox Route127_Text_1C1B39, 6
+ end
+
+Route127_EventScript_152104:: @ 8152104
+ trainerbattle 0, 674, 0, Route127_Text_1C1B92, Route127_Text_1C1BD9
+ msgbox Route127_Text_1C1BEC, 6
+ end
+
diff --git a/data/scripts/maps/Route128.s b/data/scripts/maps/Route128.s
new file mode 100644
index 000000000..00fc7c863
--- /dev/null
+++ b/data/scripts/maps/Route128.s
@@ -0,0 +1,202 @@
+Route128_MapScripts:: @ 815211B
+ map_script 3, Route128_MapScript1_152126
+ map_script 2, Route128_MapScript2_152135
+ .byte 0
+
+Route128_MapScript1_152126:: @ 8152126
+ checkflag 2090
+ callif 1, Route128_EventScript_1A02C1
+ call Route128_EventScript_1A0196
+ end
+
+Route128_MapScript2_152135:: @ 8152135
+ map_script_2 0x407b, 1, Route128_EventScript_15213F
+ .2byte 0
+
+Route128_EventScript_15213F:: @ 815213F
+ lockall
+ pause 20
+ .ifndef SAPPHIRE
+ special 317
+ waitstate
+ .endif
+ move 4, Route128_Movement_152271
+ waitmove 0
+ msgbox Route128_Text_171EE0, 4
+ move 4, Route128_Movement_152279
+ waitmove 0
+ msgbox Route128_Text_171F35, 4
+ closebutton
+ move 5, Route128_Movement_152293
+ waitmove 0
+ move 4, Route128_Movement_1A0841
+ waitmove 0
+ msgbox Route128_Text_171F4B, 4
+ closebutton
+ move 5, Route128_Movement_1522A1
+ waitmove 0
+ move 255, Route128_Movement_1A0841
+ waitmove 0
+ msgbox Route128_Text_172008, 4
+ closebutton
+ move 4, Route128_Movement_15227E
+ move 255, Route128_Movement_1A083F
+ move 5, Route128_Movement_152290
+ waitmove 0
+ msgbox Route128_Text_17210B, 4
+ closebutton
+ pause 40
+ move 5, Route128_Movement_152296
+ move 4, Route128_Movement_152283
+ waitmove 0
+ disappear 5
+ disappear 4
+ pause 100
+ setanimation 0, 1
+ doanimation 30
+ checkanimation 30
+ reappear 3
+ move 3, Route128_Movement_15226F
+ waitmove 0
+ move 255, Route128_Movement_1A0843
+ waitmove 0
+ msgbox Route128_Text_172181, 4
+ closebutton
+ move 3, Route128_Movement_15226D
+ move 255, Route128_Movement_1A0841
+ waitmove 0
+ msgbox Route128_Text_1722A1, 4
+ move 3, Route128_Movement_1A0845
+ waitmove 0
+ msgbox Route128_Text_1723BE, 4
+ closebutton
+ move 3, Route128_Movement_1A0845
+ waitmove 0
+ pause 50
+ setanimation 0, 1
+ doanimation 30
+ pause 15
+ disappear 3
+ checkanimation 30
+ setvar 0x407b, 2
+ releaseall
+ end
+
+ .incbin "baserom.gba", 0x15225e, 0xf
+
+Route128_Movement_15226D:: @ 815226D
+ step_up
+ step_end
+
+Route128_Movement_15226F:: @ 815226F
+ step_17
+ step_end
+
+Route128_Movement_152271:: @ 8152271
+ step_15
+ step_27
+ step_14
+ step_28
+ step_14
+ step_14
+ step_25
+ step_end
+
+Route128_Movement_152279:: @ 8152279
+ step_40
+ slow_step_up
+ step_14
+ step_41
+ step_end
+
+Route128_Movement_15227E:: @ 815227E
+ step_17
+ step_17
+ step_17
+ step_28
+ step_end
+
+Route128_Movement_152283:: @ 8152283
+ step_14
+ step_14
+ step_16
+ step_17
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route128_Movement_152290:: @ 8152290
+ step_left
+ step_left
+ step_end
+
+Route128_Movement_152293:: @ 8152293
+ step_left
+ step_25
+ step_end
+
+Route128_Movement_152296:: @ 8152296
+ step_17
+ step_17
+ step_17
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+Route128_Movement_1522A1:: @ 81522A1
+ step_right
+ step_25
+ step_end
+
+Route128_EventScript_1522A4:: @ 81522A4
+ trainerbattle 0, 376, 0, Route128_Text_1C1C67, Route128_Text_1C1C95
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route128_EventScript_1522CB
+ msgbox Route128_Text_1C1CC3, 6
+ end
+
+Route128_EventScript_1522CB:: @ 81522CB
+ trainerbattle 5, 376, 0, Route128_Text_1C1D02, Route128_Text_1C1D45
+ msgbox Route128_Text_1C1D6B, 6
+ end
+
+Route128_EventScript_1522E2:: @ 81522E2
+ trainerbattle 0, 386, 0, Route128_Text_1C1DB0, Route128_Text_1C1E25
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq Route128_EventScript_152309
+ msgbox Route128_Text_1C1E4A, 6
+ end
+
+Route128_EventScript_152309:: @ 8152309
+ trainerbattle 5, 386, 0, Route128_Text_1C1E90, Route128_Text_1C1EFA
+ msgbox Route128_Text_1C1F2E, 6
+ end
+
+Route128_EventScript_152320:: @ 8152320
+ trainerbattle 0, 670, 0, Route128_Text_1C1F6D, Route128_Text_1C1FCC
+ msgbox Route128_Text_1C1FE8, 6
+ end
+
+Route128_EventScript_152337:: @ 8152337
+ trainerbattle 0, 671, 0, Route128_Text_1C202C, Route128_Text_1C2051
+ msgbox Route128_Text_1C2060, 6
+ end
+
+Route128_EventScript_15234E:: @ 815234E
+ trainerbattle 0, 673, 0, Route128_Text_1C2090, Route128_Text_1C20FC
+ msgbox Route128_Text_1C210D, 6
+ end
+
diff --git a/data/scripts/maps/Route129.s b/data/scripts/maps/Route129.s
new file mode 100644
index 000000000..c6b955df8
--- /dev/null
+++ b/data/scripts/maps/Route129.s
@@ -0,0 +1,23 @@
+Route129_MapScripts:: @ 8152365
+ .byte 0
+
+Route129_EventScript_152366:: @ 8152366
+ trainerbattle 0, 378, 0, Route129_Text_1C2161, Route129_Text_1C2198
+ msgbox Route129_Text_1C21B4, 6
+ end
+
+Route129_EventScript_15237D:: @ 815237D
+ trainerbattle 0, 387, 0, Route129_Text_1C21ED, Route129_Text_1C222F
+ msgbox Route129_Text_1C2243, 6
+ end
+
+Route129_EventScript_152394:: @ 8152394
+ trainerbattle 0, 675, 0, Route129_Text_1C22C8, Route129_Text_1C22EC
+ msgbox Route129_Text_1C230F, 6
+ end
+
+Route129_EventScript_1523AB:: @ 81523AB
+ trainerbattle 0, 676, 0, Route129_Text_1C2349, Route129_Text_1C2378
+ msgbox Route129_Text_1C23A3, 6
+ end
+
diff --git a/data/scripts/maps/Route130.s b/data/scripts/maps/Route130.s
new file mode 100644
index 000000000..c61f7e3b1
--- /dev/null
+++ b/data/scripts/maps/Route130.s
@@ -0,0 +1,41 @@
+Route130_MapScripts:: @ 81523C2
+ map_script 3, Route130_MapScript1_1523C8
+ .byte 0
+
+Route130_MapScript1_1523C8:: @ 81523C8
+ specialval RESULT, 209
+ compare RESULT, 1
+ jumpeq Route130_EventScript_15240C
+ setflag 17
+ setflag 18
+ setflag 19
+ setflag 20
+ setflag 21
+ setflag 22
+ setflag 23
+ setflag 24
+ setflag 25
+ setflag 26
+ setflag 27
+ setflag 28
+ setflag 29
+ setflag 30
+ setflag 31
+ setflag 32
+ setmapfooter 264
+ end
+
+Route130_EventScript_15240C:: @ 815240C
+ setmapfooter 46
+ end
+
+Route130_EventScript_152410:: @ 8152410
+ trainerbattle 0, 165, 0, Route130_Text_1C2401, Route130_Text_1C245D
+ msgbox Route130_Text_1C2479, 6
+ end
+
+Route130_EventScript_152427:: @ 8152427
+ trainerbattle 0, 455, 0, Route130_Text_1C24DC, Route130_Text_1C2525
+ msgbox Route130_Text_1C256E, 6
+ end
+
diff --git a/data/scripts/maps/Route131.s b/data/scripts/maps/Route131.s
new file mode 100644
index 000000000..fb344f59b
--- /dev/null
+++ b/data/scripts/maps/Route131.s
@@ -0,0 +1,43 @@
+Route131_MapScripts:: @ 815243E
+ map_script 3, Route131_MapScript1_152444
+ .byte 0
+
+Route131_MapScript1_152444:: @ 8152444
+ checkflag 2052
+ callif 1, Route131_EventScript_15244E
+ end
+
+Route131_EventScript_15244E:: @ 815244E
+ setmapfooter 320
+ return
+
+Route131_EventScript_152452:: @ 8152452
+ trainerbattle 0, 166, 0, Route131_Text_1C25B3, Route131_Text_1C25F8
+ msgbox Route131_Text_1C262A, 6
+ end
+
+Route131_EventScript_152469:: @ 8152469
+ trainerbattle 0, 167, 0, Route131_Text_1C26B9, Route131_Text_1C271F
+ msgbox Route131_Text_1C2726, 6
+ end
+
+Route131_EventScript_152480:: @ 8152480
+ trainerbattle 0, 456, 0, Route131_Text_1C2774, Route131_Text_1C27A4
+ msgbox Route131_Text_1C27CF, 6
+ end
+
+Route131_EventScript_152497:: @ 8152497
+ trainerbattle 0, 457, 0, Route131_Text_1C284A, Route131_Text_1C2883
+ msgbox Route131_Text_1C2898, 6
+ end
+
+Route131_EventScript_1524AE:: @ 81524AE
+ trainerbattle 4, 686, 0, Route131_Text_1C28E2, Route131_Text_1C2918, Route131_Text_1C29B2
+ msgbox Route131_Text_1C2950, 6
+ end
+
+Route131_EventScript_1524C9:: @ 81524C9
+ trainerbattle 4, 686, 0, Route131_Text_1C29F3, Route131_Text_1C2A20, Route131_Text_1C2ACA
+ msgbox Route131_Text_1C2A5D, 6
+ end
+
diff --git a/data/scripts/maps/Route132.s b/data/scripts/maps/Route132.s
new file mode 100644
index 000000000..bdeaad51e
--- /dev/null
+++ b/data/scripts/maps/Route132.s
@@ -0,0 +1,23 @@
+Route132_MapScripts:: @ 81524E4
+ .byte 0
+
+Route132_EventScript_1524E5:: @ 81524E5
+ trainerbattle 0, 169, 0, Route132_Text_1C2AFB, Route132_Text_1C2B5B
+ msgbox Route132_Text_1C2B71, 6
+ end
+
+Route132_EventScript_1524FC:: @ 81524FC
+ trainerbattle 0, 458, 0, Route132_Text_1C2BB5, Route132_Text_1C2BEA
+ msgbox Route132_Text_1C2BFA, 6
+ end
+
+Route132_EventScript_152513:: @ 8152513
+ trainerbattle 0, 350, 0, Route132_Text_1C2C32, Route132_Text_1C2C60
+ msgbox Route132_Text_1C2C78, 6
+ end
+
+Route132_EventScript_15252A:: @ 815252A
+ trainerbattle 0, 181, 0, Route132_Text_1C2CD9, Route132_Text_1C2D1F
+ msgbox Route132_Text_1C2D3E, 6
+ end
+
diff --git a/data/scripts/maps/Route133.s b/data/scripts/maps/Route133.s
new file mode 100644
index 000000000..16d937782
--- /dev/null
+++ b/data/scripts/maps/Route133.s
@@ -0,0 +1,28 @@
+Route133_MapScripts:: @ 8152541
+ .byte 0
+
+Route133_EventScript_152542:: @ 8152542
+ trainerbattle 0, 170, 0, Route133_Text_1C2DA5, Route133_Text_1C2DF4
+ msgbox Route133_Text_1C2E09, 6
+ end
+
+Route133_EventScript_152559:: @ 8152559
+ trainerbattle 0, 460, 0, Route133_Text_1C2E61, Route133_Text_1C2EBD
+ msgbox Route133_Text_1C2ECD, 6
+ end
+
+Route133_EventScript_152570:: @ 8152570
+ trainerbattle 0, 461, 0, Route133_Text_1C2EF7, Route133_Text_1C2F19
+ msgbox Route133_Text_1C2F25, 6
+ end
+
+Route133_EventScript_152587:: @ 8152587
+ trainerbattle 0, 88, 0, Route133_Text_1C2F53, Route133_Text_1C2FA3
+ msgbox Route133_Text_1C2FC7, 6
+ end
+
+Route133_EventScript_15259E:: @ 815259E
+ trainerbattle 0, 414, 0, Route133_Text_1C302D, Route133_Text_1C305F
+ msgbox Route133_Text_1C307E, 6
+ end
+
diff --git a/data/scripts/maps/Route134.s b/data/scripts/maps/Route134.s
new file mode 100644
index 000000000..f1f738f88
--- /dev/null
+++ b/data/scripts/maps/Route134.s
@@ -0,0 +1,33 @@
+Route134_MapScripts:: @ 81525B5
+ map_script 5, Route134_MapScript1_1525BB
+ .byte 0
+
+Route134_MapScript1_1525BB:: @ 81525BB
+ warp4 Underwater_Route134, 255, 8, 6
+ end
+
+Route134_EventScript_1525C4:: @ 81525C4
+ trainerbattle 0, 172, 0, Route134_Text_1C30C6, Route134_Text_1C3110
+ msgbox Route134_Text_1C311A, 6
+ end
+
+Route134_EventScript_1525DB:: @ 81525DB
+ trainerbattle 0, 463, 0, Route134_Text_1C315E, Route134_Text_1C3198
+ msgbox Route134_Text_1C31A0, 6
+ end
+
+Route134_EventScript_1525F2:: @ 81525F2
+ trainerbattle 0, 413, 0, Route134_Text_1C31D7, Route134_Text_1C3213
+ msgbox Route134_Text_1C3229, 6
+ end
+
+Route134_EventScript_152609:: @ 8152609
+ trainerbattle 0, 397, 0, Route134_Text_1C3319, Route134_Text_1C335C
+ msgbox Route134_Text_1C336E, 6
+ end
+
+Route134_EventScript_152620:: @ 8152620
+ trainerbattle 0, 180, 0, Route134_Text_1C3262, Route134_Text_1C329E
+ msgbox Route134_Text_1C32D6, 6
+ end
+
diff --git a/data/scripts/maps/RustboroCity.s b/data/scripts/maps/RustboroCity.s
new file mode 100644
index 000000000..b7635286d
--- /dev/null
+++ b/data/scripts/maps/RustboroCity.s
@@ -0,0 +1,499 @@
+RustboroCity_MapScripts:: @ 814C372
+ map_script 3, RustboroCity_MapScript1_14C378
+ .byte 0
+
+RustboroCity_MapScript1_14C378:: @ 814C378
+ setflag 2073
+ call RustboroCity_EventScript_1A0196
+ call RustboroCity_EventScript_1A014E
+ end
+
+RustboroCity_EventScript_14C386:: @ 814C386
+ lock
+ faceplayer
+ checkflag 142
+ jumpeq RustboroCity_EventScript_14C39B
+ msgbox RustboroCity_Text_16689D, 4
+ release
+ end
+
+RustboroCity_EventScript_14C39B:: @ 814C39B
+ msgbox RustboroCity_Text_16690C, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3A5:: @ 814C3A5
+ lock
+ faceplayer
+ msgbox RustboroCity_Text_166A67, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3B1:: @ 814C3B1
+ msgbox RustboroCity_Text_166AE0, 2
+ end
+
+RustboroCity_EventScript_14C3BA:: @ 814C3BA
+ lock
+ faceplayer
+ checkflag 2055
+ jumpeq RustboroCity_EventScript_14C3CF
+ msgbox RustboroCity_Text_16696D, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3CF:: @ 814C3CF
+ msgbox RustboroCity_Text_1669FE, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3D9:: @ 814C3D9
+ lock
+ faceplayer
+ checkflag 188
+ jumpeq RustboroCity_EventScript_14C3EE
+ msgbox RustboroCity_Text_166B86, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3EE:: @ 814C3EE
+ msgbox RustboroCity_Text_166BEF, 4
+ release
+ end
+
+RustboroCity_EventScript_14C3F8:: @ 814C3F8
+ msgbox RustboroCity_Text_166C98, 2
+ end
+
+RustboroCity_EventScript_14C401:: @ 814C401
+ msgbox RustboroCity_Text_166CFA, 3
+ end
+
+RustboroCity_EventScript_14C40A:: @ 814C40A
+ msgbox RustboroCity_Text_167374, 3
+ end
+
+RustboroCity_EventScript_14C413:: @ 814C413
+ msgbox RustboroCity_Text_1673FA, 3
+ end
+
+RustboroCity_EventScript_14C41C:: @ 814C41C
+ msgbox RustboroCity_Text_167439, 3
+ end
+
+ .incbin "baserom.gba", 0x14c425, 0x9
+
+RustboroCity_EventScript_14C42E:: @ 814C42E
+ msgbox RustboroCity_Text_1674DD, 3
+ end
+
+RustboroCity_EventScript_14C437:: @ 814C437
+ msgbox RustboroCity_Text_167525, 3
+ end
+
+RustboroCity_EventScript_14C440:: @ 814C440
+ msgbox RustboroCity_Text_167568, 3
+ end
+
+RustboroCity_EventScript_14C449:: @ 814C449
+ lock
+ faceplayer
+ msgbox RustboroCity_Text_166D59, 4
+ move 7, RustboroCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RustboroCity_EventScript_14C45F:: @ 814C45F
+ lock
+ faceplayer
+ msgbox RustboroCity_Text_166DB0, 4
+ move 8, RustboroCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RustboroCity_EventScript_14C475:: @ 814C475
+ lock
+ faceplayer
+ msgbox RustboroCity_Text_166DEE, 4
+ release
+ end
+
+RustboroCity_EventScript_14C481:: @ 814C481
+ lockall
+ movespriteperm 9, 14, 21
+ spritebehave 9, 10
+ setvar 0x8004, 0
+ jump RustboroCity_EventScript_14C4F4
+ end
+
+RustboroCity_EventScript_14C498:: @ 814C498
+ lockall
+ movespriteperm 9, 14, 21
+ spritebehave 9, 10
+ setvar 0x8004, 1
+ jump RustboroCity_EventScript_14C4F4
+ end
+
+RustboroCity_EventScript_14C4AF:: @ 814C4AF
+ lockall
+ movespriteperm 9, 14, 21
+ spritebehave 9, 10
+ setvar 0x8004, 2
+ jump RustboroCity_EventScript_14C4F4
+ end
+
+RustboroCity_EventScript_14C4C6:: @ 814C4C6
+ lockall
+ movespriteperm 9, 14, 21
+ spritebehave 9, 10
+ setvar 0x8004, 3
+ jump RustboroCity_EventScript_14C4F4
+ end
+
+RustboroCity_EventScript_14C4DD:: @ 814C4DD
+ lockall
+ movespriteperm 9, 14, 21
+ spritebehave 9, 10
+ setvar 0x8004, 4
+ jump RustboroCity_EventScript_14C4F4
+ end
+
+RustboroCity_EventScript_14C4F4:: @ 814C4F4
+ msgbox RustboroCity_Text_166E65, 4
+ closebutton
+ reappear 10
+ reappear 9
+ move 10, RustboroCity_Movement_14C5C2
+ waitmove 0
+ disappear 10
+ move 9, RustboroCity_Movement_14C5D3
+ waitmove 0
+ msgbox RustboroCity_Text_166E7E, 4
+ closebutton
+ move 9, RustboroCity_Movement_14C5DB
+ waitmove 0
+ disappear 9
+ movespriteperm 9, 30, 10
+ clearflag 732
+ setflag 142
+ setvar 0x405a, 2
+ setvar 0x409a, 2
+ setvar 0x406f, 1
+ clearflag 891
+ clearflag 880
+ clearflag 878
+ setflag 739
+ setflag 881
+ releaseall
+ end
+
+ .incbin "baserom.gba", 0x14c55d, 0x65
+
+RustboroCity_Movement_14C5C2:: @ 814C5C2
+ step_30
+ step_30
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_16
+ step_end
+
+RustboroCity_Movement_14C5D3:: @ 814C5D3
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_26
+ step_end
+
+RustboroCity_Movement_14C5DB:: @ 814C5DB
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_end
+
+ .incbin "baserom.gba", 0x14c5e3, 0x1c
+
+RustboroCity_EventScript_14C5FF:: @ 814C5FF
+ lock
+ faceplayer
+ checkflag 143
+ jumpeq RustboroCity_EventScript_14C614
+ msgbox RustboroCity_Text_166F6B, 4
+ release
+ end
+
+RustboroCity_EventScript_14C614:: @ 814C614
+ checksound
+ setvar 0x4001, 4
+ jump RustboroCity_EventScript_14C77D
+ end
+
+RustboroCity_EventScript_14C620:: @ 814C620
+ lockall
+ setvar 0x4001, 0
+ jump RustboroCity_EventScript_14C650
+ end
+
+RustboroCity_EventScript_14C62C:: @ 814C62C
+ lockall
+ setvar 0x4001, 1
+ jump RustboroCity_EventScript_14C650
+ end
+
+RustboroCity_EventScript_14C638:: @ 814C638
+ lockall
+ setvar 0x4001, 2
+ jump RustboroCity_EventScript_14C650
+ end
+
+RustboroCity_EventScript_14C644:: @ 814C644
+ lockall
+ setvar 0x4001, 3
+ jump RustboroCity_EventScript_14C650
+ end
+
+RustboroCity_EventScript_14C650:: @ 814C650
+ compare 0x4001, 0
+ callif 1, RustboroCity_EventScript_14C691
+ compare 0x4001, 1
+ callif 1, RustboroCity_EventScript_14C6BD
+ compare 0x4001, 2
+ callif 1, RustboroCity_EventScript_14C6E9
+ compare 0x4001, 3
+ callif 1, RustboroCity_EventScript_14C715
+ setflag 159
+ setvar 0x405a, 3
+ moveoffscreen 9
+ msgbox RustboroCity_Text_166EA5, 4
+ releaseall
+ end
+
+RustboroCity_EventScript_14C691:: @ 814C691
+ move 9, RustboroCity_Movement_1A0841
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0845
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C6BD:: @ 814C6BD
+ move 9, RustboroCity_Movement_1A083F
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0843
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C6E9:: @ 814C6E9
+ move 9, RustboroCity_Movement_1A0845
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0841
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C715:: @ 814C715
+ move 9, RustboroCity_Movement_1A0845
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 9, RustboroCity_Movement_14C74B
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0841
+ waitmove 0
+ return
+
+RustboroCity_Movement_14C74B:: @ 814C74B
+ step_down
+ step_end
+
+RustboroCity_EventScript_14C74D:: @ 814C74D
+ lockall
+ setvar 0x4001, 0
+ jump RustboroCity_EventScript_14C77D
+ end
+
+RustboroCity_EventScript_14C759:: @ 814C759
+ lockall
+ setvar 0x4001, 1
+ jump RustboroCity_EventScript_14C77D
+ end
+
+RustboroCity_EventScript_14C765:: @ 814C765
+ lockall
+ setvar 0x4001, 2
+ jump RustboroCity_EventScript_14C77D
+ end
+
+RustboroCity_EventScript_14C771:: @ 814C771
+ lockall
+ setvar 0x4001, 3
+ jump RustboroCity_EventScript_14C77D
+ end
+
+RustboroCity_EventScript_14C77D:: @ 814C77D
+ compare 0x4001, 0
+ callif 1, RustboroCity_EventScript_14C7FE
+ compare 0x4001, 1
+ callif 1, RustboroCity_EventScript_14C82A
+ compare 0x4001, 2
+ callif 1, RustboroCity_EventScript_14C856
+ compare 0x4001, 3
+ callif 1, RustboroCity_EventScript_14C882
+ compare 0x4001, 4
+ callif 1, RustboroCity_EventScript_14C8B8
+ msgbox RustboroCity_Text_166FB4, 4
+ giveitem ITEM_GREAT_BALL
+ compare RESULT, 0
+ callif 1, RustboroCity_EventScript_14C7F5
+ msgbox RustboroCity_Text_16707F, 4
+ closebutton
+ setflag 144
+ setflag 732
+ setvar 0x405a, 5
+ pause 30
+ warp RustboroCity_DevonCorp_3F, 255, 2, 2
+ waitstate
+ releaseall
+ end
+
+RustboroCity_EventScript_14C7F5:: @ 814C7F5
+ msgbox RustboroCity_Text_16704C, 4
+ return
+
+RustboroCity_EventScript_14C7FE:: @ 814C7FE
+ move 9, RustboroCity_Movement_1A0841
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0845
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C82A:: @ 814C82A
+ move 9, RustboroCity_Movement_1A0843
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A083F
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C856:: @ 814C856
+ move 9, RustboroCity_Movement_1A0845
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0841
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C882:: @ 814C882
+ move 9, RustboroCity_Movement_1A0845
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ move 9, RustboroCity_Movement_14C74B
+ waitmove 0
+ move 255, RustboroCity_Movement_1A0841
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C8B8:: @ 814C8B8
+ move 9, RustboroCity_Movement_1A083F
+ waitmove 0
+ playsfx 21
+ move 9, RustboroCity_Movement_1A0833
+ waitmove 0
+ move 9, RustboroCity_Movement_1A0835
+ waitmove 0
+ return
+
+RustboroCity_EventScript_14C8DA:: @ 814C8DA
+ lock
+ faceplayer
+ checkflag 288
+ jumpeq RustboroCity_EventScript_14C917
+ checkgender
+ compare RESULT, 0
+ jumpeq RustboroCity_EventScript_14C8FD
+ compare RESULT, 1
+ jumpeq RustboroCity_EventScript_14C90A
+ end
+
+RustboroCity_EventScript_14C8FD:: @ 814C8FD
+ setflag 288
+ msgbox RustboroCity_Text_1670A7, 4
+ release
+ end
+
+RustboroCity_EventScript_14C90A:: @ 814C90A
+ setflag 288
+ msgbox RustboroCity_Text_167213, 4
+ release
+ end
+
+RustboroCity_EventScript_14C917:: @ 814C917
+ checkgender
+ compare RESULT, 0
+ jumpeq RustboroCity_EventScript_14C92F
+ compare RESULT, 1
+ jumpeq RustboroCity_EventScript_14C939
+ end
+
+RustboroCity_EventScript_14C92F:: @ 814C92F
+ msgbox RustboroCity_Text_16713C, 4
+ release
+ end
+
+RustboroCity_EventScript_14C939:: @ 814C939
+ msgbox RustboroCity_Text_1672B8, 4
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_CuttersHouse.s b/data/scripts/maps/RustboroCity_CuttersHouse.s
new file mode 100644
index 000000000..f75cc842f
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_CuttersHouse.s
@@ -0,0 +1,24 @@
+RustboroCity_CuttersHouse_MapScripts:: @ 8157D26
+ .byte 0
+
+RustboroCity_CuttersHouse_EventScript_157D27:: @ 8157D27
+ lock
+ faceplayer
+ checkflag 137
+ jumpeq RustboroCity_CuttersHouse_EventScript_157D53
+ msgbox RustboroCity_CuttersHouse_Text_18509C, 4
+ giveitem ITEM_HM01
+ setflag 137
+ msgbox RustboroCity_CuttersHouse_Text_1851C9, 4
+ release
+ end
+
+RustboroCity_CuttersHouse_EventScript_157D53:: @ 8157D53
+ msgbox RustboroCity_CuttersHouse_Text_1851C9, 4
+ release
+ end
+
+RustboroCity_CuttersHouse_EventScript_157D5D:: @ 8157D5D
+ msgbox RustboroCity_CuttersHouse_Text_1852B3, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_1F.s b/data/scripts/maps/RustboroCity_DevonCorp_1F.s
new file mode 100644
index 000000000..3c55fb9bf
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_DevonCorp_1F.s
@@ -0,0 +1,81 @@
+RustboroCity_DevonCorp_1F_MapScripts:: @ 8157406
+ map_script 3, RustboroCity_DevonCorp_1F_MapScript1_15740C
+ .byte 0
+
+RustboroCity_DevonCorp_1F_MapScript1_15740C:: @ 815740C
+ checkflag 144
+ callif 0, RustboroCity_DevonCorp_1F_EventScript_157416
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_157416:: @ 8157416
+ movespriteperm 2, 14, 2
+ spritebehave 2, 8
+ return
+
+RustboroCity_DevonCorp_1F_EventScript_157422:: @ 8157422
+ lock
+ faceplayer
+ checkflag 144
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_15744A
+ checkflag 142
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_157440
+ msgbox RustboroCity_DevonCorp_1F_Text_1829A4, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_157440:: @ 8157440
+ msgbox RustboroCity_DevonCorp_1F_Text_182A19, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_15744A:: @ 815744A
+ msgbox RustboroCity_DevonCorp_1F_Text_182AB3, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_157454:: @ 8157454
+ lock
+ faceplayer
+ checkflag 144
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_15747B
+ checkflag 143
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_157485
+ checkflag 142
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_157485
+ msgbox RustboroCity_DevonCorp_1F_Text_182AF0, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_15747B:: @ 815747B
+ msgbox RustboroCity_DevonCorp_1F_Text_182B5A, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_157485:: @ 8157485
+ msgbox RustboroCity_DevonCorp_1F_Text_182B2D, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_15748F:: @ 815748F
+ lock
+ faceplayer
+ checkflag 144
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_1574B6
+ checkflag 143
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_1574C0
+ checkflag 142
+ jumpeq RustboroCity_DevonCorp_1F_EventScript_1574C0
+ msgbox RustboroCity_DevonCorp_1F_Text_1828EE, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_1574B6:: @ 81574B6
+ msgbox RustboroCity_DevonCorp_1F_Text_1828EE, 4
+ release
+ end
+
+RustboroCity_DevonCorp_1F_EventScript_1574C0:: @ 81574C0
+ msgbox RustboroCity_DevonCorp_1F_Text_18295E, 4
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_2F.s b/data/scripts/maps/RustboroCity_DevonCorp_2F.s
new file mode 100644
index 000000000..cd05952fc
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_DevonCorp_2F.s
@@ -0,0 +1,178 @@
+RustboroCity_DevonCorp_2F_MapScripts:: @ 81574CA
+ map_script 3, RustboroCity_DevonCorp_2F_MapScript1_1574D0
+ .byte 0
+
+RustboroCity_DevonCorp_2F_MapScript1_1574D0:: @ 81574D0
+ compare 0x40c4, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_1574DC:: @ 81574DC
+ setvar 0x40c4, 2
+ return
+
+RustboroCity_DevonCorp_2F_EventScript_1574E2:: @ 81574E2
+ lock
+ faceplayer
+ compare 0x40c4, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ msgbox RustboroCity_DevonCorp_2F_Text_182B81, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_1574F9:: @ 81574F9
+ lock
+ faceplayer
+ compare 0x40c4, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ checkflag 287
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157519
+ msgbox RustboroCity_DevonCorp_2F_Text_182BD8, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157519:: @ 8157519
+ msgbox RustboroCity_DevonCorp_2F_Text_182C25, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157523:: @ 8157523
+ lock
+ faceplayer
+ compare 0x40c4, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ checkflag 188
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157543
+ msgbox RustboroCity_DevonCorp_2F_Text_182D2A, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157543:: @ 8157543
+ msgbox RustboroCity_DevonCorp_2F_Text_182D7E, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_15754D:: @ 815754D
+ lock
+ faceplayer
+ compare 0x40c4, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ msgbox RustboroCity_DevonCorp_2F_Text_182E6B, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157564:: @ 8157564
+ lock
+ faceplayer
+ compare 0x40c4, 2
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_15764A
+ compare 0x40c4, 1
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157640
+ msgbox RustboroCity_DevonCorp_2F_Text_182ED5, 4
+ checkitem ITEM_ROOT_FOSSIL, 1
+ compare RESULT, 1
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_1575A6
+ checkitem ITEM_CLAW_FOSSIL, 1
+ compare RESULT, 1
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_1575EE
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_1575A6:: @ 81575A6
+ closebutton
+ playsfx 21
+ move 5, RustboroCity_DevonCorp_2F_Movement_1A0833
+ waitmove 0
+ move 5, RustboroCity_DevonCorp_2F_Movement_1A0835
+ waitmove 0
+ msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
+ compare RESULT, 0
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157636
+ bufferitem 0, ITEM_ROOT_FOSSIL
+ msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
+ removeitem ITEM_ROOT_FOSSIL, 1
+ setvar 0x40c4, 1
+ setvar 0x40c5, 1
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_1575EE:: @ 81575EE
+ closebutton
+ playsfx 21
+ move 5, RustboroCity_DevonCorp_2F_Movement_1A0833
+ waitmove 0
+ move 5, RustboroCity_DevonCorp_2F_Movement_1A0835
+ waitmove 0
+ msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
+ compare RESULT, 0
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157636
+ bufferitem 0, ITEM_CLAW_FOSSIL
+ msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
+ removeitem ITEM_CLAW_FOSSIL, 1
+ setvar 0x40c4, 1
+ setvar 0x40c5, 2
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157636:: @ 8157636
+ msgbox RustboroCity_DevonCorp_2F_Text_182FD7, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157640:: @ 8157640
+ msgbox RustboroCity_DevonCorp_2F_Text_183072, 4
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_15764A:: @ 815764A
+ compare 0x40c5, 1
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157661
+ compare 0x40c5, 2
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_1576B4
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157661:: @ 8157661
+ bufferpoke 1, SPECIES_LILEEP
+ msgbox RustboroCity_DevonCorp_2F_Text_183124, 4
+ countpokemon
+ compare RESULT, 6
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157707
+ copyvar 0x8004, RESULT
+ setvar 0x40c4, 0
+ setflag 267
+ fanfare 370
+ message RustboroCity_DevonCorp_2F_Text_18319E
+ waitfanfare
+ waittext
+ givepokemon SPECIES_LILEEP, 20, ITEM_NONE, 0x0, 0x0, 0
+ msgbox RustboroCity_DevonCorp_2F_Text_1A1102, 5
+ compare RESULT, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1A0678
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_1576B4:: @ 81576B4
+ bufferpoke 1, SPECIES_ANORITH
+ msgbox RustboroCity_DevonCorp_2F_Text_183124, 4
+ countpokemon
+ compare RESULT, 6
+ jumpeq RustboroCity_DevonCorp_2F_EventScript_157707
+ copyvar 0x8004, RESULT
+ setvar 0x40c4, 0
+ setflag 267
+ fanfare 370
+ message RustboroCity_DevonCorp_2F_Text_18319E
+ waitfanfare
+ waittext
+ givepokemon SPECIES_ANORITH, 20, ITEM_NONE, 0x0, 0x0, 0
+ msgbox RustboroCity_DevonCorp_2F_Text_1A1102, 5
+ compare RESULT, 1
+ callif 1, RustboroCity_DevonCorp_2F_EventScript_1A0678
+ release
+ end
+
+RustboroCity_DevonCorp_2F_EventScript_157707:: @ 8157707
+ msgbox RustboroCity_DevonCorp_2F_Text_1831C8, 4
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_3F.s b/data/scripts/maps/RustboroCity_DevonCorp_3F.s
new file mode 100644
index 000000000..99b5e782f
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_DevonCorp_3F.s
@@ -0,0 +1,193 @@
+RustboroCity_DevonCorp_3F_MapScripts:: @ 8157711
+ map_script 3, RustboroCity_DevonCorp_3F_MapScript1_157721
+ map_script 4, RustboroCity_DevonCorp_3F_MapScript2_157739
+ map_script 2, RustboroCity_DevonCorp_3F_MapScript2_157748
+ .byte 0
+
+RustboroCity_DevonCorp_3F_MapScript1_157721:: @ 8157721
+ compare 0x408f, 0
+ callif 1, RustboroCity_DevonCorp_3F_EventScript_15772D
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_15772D:: @ 815772D
+ movespriteperm 2, 3, 2
+ spritebehave 2, 9
+ return
+
+RustboroCity_DevonCorp_3F_MapScript2_157739:: @ 8157739
+ map_script_2 0x408f, 0, RustboroCity_DevonCorp_3F_EventScript_157743
+ .2byte 0
+
+RustboroCity_DevonCorp_3F_EventScript_157743:: @ 8157743
+ spriteface 255, 4
+ end
+
+RustboroCity_DevonCorp_3F_MapScript2_157748:: @ 8157748
+ map_script_2 0x408f, 0, RustboroCity_DevonCorp_3F_EventScript_157752
+ .2byte 0
+
+RustboroCity_DevonCorp_3F_EventScript_157752:: @ 8157752
+ lockall
+ msgbox RustboroCity_DevonCorp_3F_Text_18374C, 4
+ closebutton
+ move 2, RustboroCity_DevonCorp_3F_Movement_157815
+ waitmove 0
+ pause 80
+ move 2, RustboroCity_DevonCorp_3F_Movement_15781E
+ waitmove 0
+ msgbox RustboroCity_DevonCorp_3F_Text_183903, 4
+ closebutton
+ playmusic 420, 0
+ move 2, RustboroCity_DevonCorp_3F_Movement_157803
+ move 255, RustboroCity_DevonCorp_3F_Movement_157827
+ waitmove 0
+ msgbox RustboroCity_DevonCorp_3F_Text_18394A, 4
+ closebutton
+ fadedefault
+ move 2, RustboroCity_DevonCorp_3F_Movement_157812
+ move 255, RustboroCity_DevonCorp_3F_Movement_157835
+ waitmove 0
+ msgbox RustboroCity_DevonCorp_3F_Text_18320B, 4
+ giveitem ITEM_LETTER
+ msgbox RustboroCity_DevonCorp_3F_Text_18337E, 4
+ fanfare 370
+ message RustboroCity_DevonCorp_3F_Text_183422
+ waitfanfare
+ waittext
+ setflag 2050
+ setflag 188
+ msgbox RustboroCity_DevonCorp_3F_Text_183439, 4
+ setflag 894
+ clearflag 807
+ clearflag 983
+ clearflag 739
+ clearflag 881
+ setvar 0x4096, 1
+ clearflag 814
+ setvar 0x408f, 1
+ releaseall
+ end
+
+ .incbin "baserom.gba", 0x1577fe, 0x5
+
+RustboroCity_DevonCorp_3F_Movement_157803:: @ 8157803
+ step_right
+ step_right
+ step_right
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_27
+ step_end
+
+RustboroCity_DevonCorp_3F_Movement_157812:: @ 8157812
+ step_14
+ step_25
+ step_end
+
+RustboroCity_DevonCorp_3F_Movement_157815:: @ 8157815
+ step_right
+ step_right
+ step_right
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+RustboroCity_DevonCorp_3F_Movement_15781E:: @ 815781E
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_left
+ step_left
+ step_left
+ step_end
+
+RustboroCity_DevonCorp_3F_Movement_157827:: @ 8157827
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+RustboroCity_DevonCorp_3F_Movement_157835:: @ 8157835
+ step_14
+ step_14
+ step_down
+ step_down
+ step_28
+ step_end
+
+RustboroCity_DevonCorp_3F_EventScript_15783B:: @ 815783B
+ lock
+ faceplayer
+ checkflag 272
+ jumpeq RustboroCity_DevonCorp_3F_EventScript_15789B
+ checkflag 189
+ jumpeq RustboroCity_DevonCorp_3F_EventScript_157864
+ msgbox RustboroCity_DevonCorp_3F_Text_18351E, 4
+ closebutton
+ move LAST_TALKED, RustboroCity_DevonCorp_3F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_157864:: @ 8157864
+ msgbox RustboroCity_DevonCorp_3F_Text_18353E, 4
+ giveitem ITEM_EXP_SHARE
+ compare RESULT, 0
+ jumpeq RustboroCity_DevonCorp_3F_EventScript_1A029B
+ setflag 272
+ msgbox RustboroCity_DevonCorp_3F_Text_1835B3, 4
+ closebutton
+ move LAST_TALKED, RustboroCity_DevonCorp_3F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_15789B:: @ 815789B
+ msgbox RustboroCity_DevonCorp_3F_Text_18368D, 4
+ closebutton
+ move LAST_TALKED, RustboroCity_DevonCorp_3F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_1578B0:: @ 81578B0
+ lock
+ faceplayer
+ checkflag 256
+ jumpeq RustboroCity_DevonCorp_3F_EventScript_1578C5
+ msgbox RustboroCity_DevonCorp_3F_Text_18395C, 4
+ release
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_1578C5:: @ 81578C5
+ msgbox RustboroCity_DevonCorp_3F_Text_1839A3, 4
+ release
+ end
+
+RustboroCity_DevonCorp_3F_EventScript_1578CF:: @ 81578CF
+ msgbox RustboroCity_DevonCorp_3F_Text_183A04, 3
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Flat1_1F.s b/data/scripts/maps/RustboroCity_Flat1_1F.s
new file mode 100644
index 000000000..d84d2ba4f
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Flat1_1F.s
@@ -0,0 +1,11 @@
+RustboroCity_Flat1_1F_MapScripts:: @ 8157C5F
+ .byte 0
+
+RustboroCity_Flat1_1F_EventScript_157C60:: @ 8157C60
+ msgbox RustboroCity_Flat1_1F_Text_184DB4, 2
+ end
+
+RustboroCity_Flat1_1F_EventScript_157C69:: @ 8157C69
+ msgbox RustboroCity_Flat1_1F_Text_184DE9, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Flat1_2F.s b/data/scripts/maps/RustboroCity_Flat1_2F.s
new file mode 100644
index 000000000..a682f160a
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Flat1_2F.s
@@ -0,0 +1,7 @@
+RustboroCity_Flat1_2F_MapScripts:: @ 8157C72
+ .byte 0
+
+RustboroCity_Flat1_2F_EventScript_157C73:: @ 8157C73
+ msgbox RustboroCity_Flat1_2F_Text_184E0D, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Flat2_1F.s b/data/scripts/maps/RustboroCity_Flat2_1F.s
new file mode 100644
index 000000000..088a6b16f
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Flat2_1F.s
@@ -0,0 +1,17 @@
+RustboroCity_Flat2_1F_MapScripts:: @ 8157D79
+ .byte 0
+
+RustboroCity_Flat2_1F_EventScript_157D7A:: @ 8157D7A
+ msgbox RustboroCity_Flat2_1F_Text_1853DD, 2
+ end
+
+RustboroCity_Flat2_1F_EventScript_157D83:: @ 8157D83
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_SKITTY, 0
+ msgbox RustboroCity_Flat2_1F_Text_185410, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Flat2_2F.s b/data/scripts/maps/RustboroCity_Flat2_2F.s
new file mode 100644
index 000000000..bd8b0c9b7
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Flat2_2F.s
@@ -0,0 +1,25 @@
+RustboroCity_Flat2_2F_MapScripts:: @ 8157D96
+ .byte 0
+
+RustboroCity_Flat2_2F_EventScript_157D97:: @ 8157D97
+ msgbox RustboroCity_Flat2_2F_Text_185421, 2
+ end
+
+RustboroCity_Flat2_2F_EventScript_157DA0:: @ 8157DA0
+ lock
+ faceplayer
+ checkflag 213
+ jumpeq RustboroCity_Flat2_2F_EventScript_157DCF
+ msgbox RustboroCity_Flat2_2F_Text_185461, 4
+ giveitem ITEM_PREMIER_BALL
+ compare RESULT, 0
+ jumpeq RustboroCity_Flat2_2F_EventScript_1A029B
+ setflag 213
+ release
+ end
+
+RustboroCity_Flat2_2F_EventScript_157DCF:: @ 8157DCF
+ msgbox RustboroCity_Flat2_2F_Text_1854C4, 4
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Flat2_3F.s b/data/scripts/maps/RustboroCity_Flat2_3F.s
new file mode 100644
index 000000000..919609205
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Flat2_3F.s
@@ -0,0 +1,11 @@
+RustboroCity_Flat2_3F_MapScripts:: @ 8157DD9
+ .byte 0
+
+RustboroCity_Flat2_3F_EventScript_157DDA:: @ 8157DDA
+ msgbox RustboroCity_Flat2_3F_Text_18551D, 2
+ end
+
+RustboroCity_Flat2_3F_EventScript_157DE3:: @ 8157DE3
+ msgbox RustboroCity_Flat2_3F_Text_18554D, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Gym.s b/data/scripts/maps/RustboroCity_Gym.s
new file mode 100644
index 000000000..0bf68a616
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Gym.s
@@ -0,0 +1,84 @@
+RustboroCity_Gym_MapScripts:: @ 81578D8
+ .byte 0
+
+RustboroCity_Gym_EventScript_1578D9:: @ 81578D9
+ trainerbattle 1, 265, 0, RustboroCity_Gym_Text_183EE5, RustboroCity_Gym_Text_183FC4, RustboroCity_Gym_EventScript_1578FE
+ checkflag 165
+ jumpif 0, RustboroCity_Gym_EventScript_15793C
+ msgbox RustboroCity_Gym_Text_184252, 4
+ release
+ end
+
+RustboroCity_Gym_EventScript_1578FE:: @ 81578FE
+ message RustboroCity_Gym_Text_1840AB
+ waittext
+ call RustboroCity_Gym_EventScript_1A02C5
+ msgbox RustboroCity_Gym_Text_1840D5, 4
+ setflag 1201
+ setflag 2055
+ setvar 0x405a, 1
+ addvar 0x4085, 1
+ setvar 0x8008, 1
+ call RustboroCity_Gym_EventScript_1A01C0
+ compare 0x4085, 6
+ callif 1, RustboroCity_Gym_EventScript_1A00FB
+ jump RustboroCity_Gym_EventScript_15793C
+ end
+
+RustboroCity_Gym_EventScript_15793C:: @ 815793C
+ giveitem ITEM_TM39
+ compare RESULT, 0
+ jumpeq RustboroCity_Gym_EventScript_1A029B
+ setflag 165
+ msgbox RustboroCity_Gym_Text_184170, 4
+ release
+ end
+
+RustboroCity_Gym_EventScript_157960:: @ 8157960
+ trainerbattle 0, 320, 0, RustboroCity_Gym_Text_183D99, RustboroCity_Gym_Text_183DDD
+ msgbox RustboroCity_Gym_Text_183DF9, 6
+ end
+
+RustboroCity_Gym_EventScript_157977:: @ 8157977
+ trainerbattle 0, 321, 0, RustboroCity_Gym_Text_183E38, RustboroCity_Gym_Text_183E78
+ msgbox RustboroCity_Gym_Text_183E98, 6
+ end
+
+RustboroCity_Gym_EventScript_15798E:: @ 815798E
+ lock
+ faceplayer
+ checkflag 1201
+ jumpeq RustboroCity_Gym_EventScript_1579A3
+ msgbox RustboroCity_Gym_Text_183A4B, 4
+ release
+ end
+
+RustboroCity_Gym_EventScript_1579A3:: @ 81579A3
+ msgbox RustboroCity_Gym_Text_183C90, 4
+ release
+ end
+
+RustboroCity_Gym_EventScript_1579AD:: @ 81579AD
+ lockall
+ checkflag 2055
+ jumpeq RustboroCity_Gym_EventScript_1579CD
+ jump RustboroCity_Gym_EventScript_1579D7
+ end
+
+RustboroCity_Gym_EventScript_1579BD:: @ 81579BD
+ lockall
+ checkflag 2055
+ jumpeq RustboroCity_Gym_EventScript_1579CD
+ jump RustboroCity_Gym_EventScript_1579D7
+ end
+
+RustboroCity_Gym_EventScript_1579CD:: @ 81579CD
+ msgbox RustboroCity_Gym_Text_1842E6, 4
+ releaseall
+ end
+
+RustboroCity_Gym_EventScript_1579D7:: @ 81579D7
+ msgbox RustboroCity_Gym_Text_1842CC, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/RustboroCity_House1.s b/data/scripts/maps/RustboroCity_House1.s
new file mode 100644
index 000000000..1eff4001e
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_House1.s
@@ -0,0 +1,55 @@
+RustboroCity_House1_MapScripts:: @ 8157C7C
+ .byte 0
+
+RustboroCity_House1_EventScript_157C7D:: @ 8157C7D
+ lock
+ faceplayer
+ checkflag 153
+ jumpeq RustboroCity_House1_EventScript_157D13
+ setvar 0x8008, 0
+ copyvar 0x8004, 0x8008
+ specialval RESULT, 252
+ copyvar 0x8009, RESULT
+ msgbox RustboroCity_House1_Text_184EBA, 5
+ compare RESULT, 0
+ jumpeq RustboroCity_House1_EventScript_157CFB
+ special 159
+ waitstate
+ copyvar 0x800a, 0x8004
+ compare 0x8004, 255
+ jumpeq RustboroCity_House1_EventScript_157CFB
+ copyvar 0x8005, 0x800a
+ specialval RESULT, 255
+ copyvar 0x800b, RESULT
+ comparevars RESULT, 0x8009
+ jumpif 5, RustboroCity_House1_EventScript_157D05
+ copyvar 0x8004, 0x8008
+ copyvar 0x8005, 0x800a
+ special 253
+ special 254
+ waitstate
+ msgbox RustboroCity_House1_Text_184F6B, 4
+ setflag 153
+ release
+ end
+
+RustboroCity_House1_EventScript_157CFB:: @ 8157CFB
+ msgbox RustboroCity_House1_Text_184FC1, 4
+ release
+ end
+
+RustboroCity_House1_EventScript_157D05:: @ 8157D05
+ bufferpoke 0, 0x8009
+ msgbox RustboroCity_House1_Text_184F8F, 4
+ release
+ end
+
+RustboroCity_House1_EventScript_157D13:: @ 8157D13
+ msgbox RustboroCity_House1_Text_184FDD, 4
+ release
+ end
+
+RustboroCity_House1_EventScript_157D1D:: @ 8157D1D
+ msgbox RustboroCity_House1_Text_185020, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_House2.s b/data/scripts/maps/RustboroCity_House2.s
new file mode 100644
index 000000000..66eeedf9b
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_House2.s
@@ -0,0 +1,11 @@
+RustboroCity_House2_MapScripts:: @ 8157D66
+ .byte 0
+
+RustboroCity_House2_EventScript_157D67:: @ 8157D67
+ msgbox RustboroCity_House2_Text_18532D, 2
+ end
+
+RustboroCity_House2_EventScript_157D70:: @ 8157D70
+ msgbox RustboroCity_House2_Text_185388, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_House3.s b/data/scripts/maps/RustboroCity_House3.s
new file mode 100644
index 000000000..60978400e
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_House3.s
@@ -0,0 +1,21 @@
+RustboroCity_House3_MapScripts:: @ 8157DEC
+ .byte 0
+
+RustboroCity_House3_EventScript_157DED:: @ 8157DED
+ msgbox RustboroCity_House3_Text_185584, 2
+ end
+
+RustboroCity_House3_EventScript_157DF6:: @ 8157DF6
+ msgbox RustboroCity_House3_Text_1855FA, 2
+ end
+
+RustboroCity_House3_EventScript_157DFF:: @ 8157DFF
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_PIKACHU, 0
+ msgbox RustboroCity_House3_Text_18567D, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/RustboroCity_Mart.s b/data/scripts/maps/RustboroCity_Mart.s
new file mode 100644
index 000000000..245d02056
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_Mart.s
@@ -0,0 +1,74 @@
+RustboroCity_Mart_MapScripts:: @ 8157BD3
+ .byte 0
+
+RustboroCity_Mart_EventScript_157BD4:: @ 8157BD4
+ lock
+ faceplayer
+ message RustboroCity_Mart_Text_1A0BE4
+ waittext
+ checkflag 287
+ jumpif 0, RustboroCity_Mart_EventScript_157BEF
+ checkflag 287
+ jumpeq RustboroCity_Mart_EventScript_157C18
+ end
+
+RustboroCity_Mart_EventScript_157BEF:: @ 8157BEF
+ pokemart RustboroCity_Mart_Pokemart_157C00
+ msgbox RustboroCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x157bfe, 0x2
+
+RustboroCity_Mart_Pokemart_157C00:: @ 8157C00
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_REPEL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_NONE
+ release
+ end
+
+RustboroCity_Mart_EventScript_157C18:: @ 8157C18
+ pokemart RustboroCity_Mart_Pokemart_157C28
+ msgbox RustboroCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x157c27, 0x1
+
+RustboroCity_Mart_Pokemart_157C28:: @ 8157C28
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_TIMER_BALL
+ .2byte ITEM_REPEAT_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_REPEL
+ .2byte ITEM_X_SPEED
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_NONE
+ release
+ end
+
+RustboroCity_Mart_EventScript_157C44:: @ 8157C44
+ msgbox RustboroCity_Mart_Text_184C76, 2
+ end
+
+RustboroCity_Mart_EventScript_157C4D:: @ 8157C4D
+ msgbox RustboroCity_Mart_Text_184CD8, 2
+ end
+
+RustboroCity_Mart_EventScript_157C56:: @ 8157C56
+ msgbox RustboroCity_Mart_Text_184D43, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_PokemonCenter_1F.s b/data/scripts/maps/RustboroCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..488c97722
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_PokemonCenter_1F.s
@@ -0,0 +1,29 @@
+RustboroCity_PokemonCenter_1F_MapScripts:: @ 8157B79
+ map_script 3, RustboroCity_PokemonCenter_1F_MapScript1_157B7F
+ .byte 0
+
+RustboroCity_PokemonCenter_1F_MapScript1_157B7F:: @ 8157B7F
+ sethealplace 6
+ call RustboroCity_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+RustboroCity_PokemonCenter_1F_EventScript_157B88:: @ 8157B88
+ setvar 0x800b, 1
+ call RustboroCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+RustboroCity_PokemonCenter_1F_EventScript_157B96:: @ 8157B96
+ msgbox RustboroCity_PokemonCenter_1F_Text_184B37, 2
+ end
+
+RustboroCity_PokemonCenter_1F_EventScript_157B9F:: @ 8157B9F
+ msgbox RustboroCity_PokemonCenter_1F_Text_184BAB, 2
+ end
+
+RustboroCity_PokemonCenter_1F_EventScript_157BA8:: @ 8157BA8
+ msgbox RustboroCity_PokemonCenter_1F_Text_184C19, 2
+ end
+
diff --git a/data/scripts/maps/RustboroCity_PokemonCenter_2F.s b/data/scripts/maps/RustboroCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..6f983d651
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+RustboroCity_PokemonCenter_2F_MapScripts:: @ 8157BB1
+ map_script 2, RustboroCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, RustboroCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, RustboroCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+RustboroCity_PokemonCenter_2F_EventScript_157BC1:: @ 8157BC1
+ call RustboroCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+RustboroCity_PokemonCenter_2F_EventScript_157BC7:: @ 8157BC7
+ call RustboroCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+RustboroCity_PokemonCenter_2F_EventScript_157BCD:: @ 8157BCD
+ call RustboroCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/RustboroCity_PokemonSchool.s b/data/scripts/maps/RustboroCity_PokemonSchool.s
new file mode 100644
index 000000000..af475848f
--- /dev/null
+++ b/data/scripts/maps/RustboroCity_PokemonSchool.s
@@ -0,0 +1,166 @@
+RustboroCity_PokemonSchool_MapScripts:: @ 81579E1
+ .byte 0
+
+RustboroCity_PokemonSchool_EventScript_1579E2:: @ 81579E2
+ lockall
+ msgbox RustboroCity_PokemonSchool_Text_184321, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_1579F1:: @ 81579F1
+ message RustboroCity_PokemonSchool_Text_184368
+ waittext
+ multichoicerow 8, 1, 13, 3, 0
+ switch RESULT
+ case 0, RustboroCity_PokemonSchool_EventScript_157A50
+ case 1, RustboroCity_PokemonSchool_EventScript_157A5E
+ case 2, RustboroCity_PokemonSchool_EventScript_157A6C
+ case 3, RustboroCity_PokemonSchool_EventScript_157A7A
+ case 4, RustboroCity_PokemonSchool_EventScript_157A88
+ case 5, RustboroCity_PokemonSchool_EventScript_157A96
+ case 127, RustboroCity_PokemonSchool_EventScript_157A96
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A50:: @ 8157A50
+ msgbox RustboroCity_PokemonSchool_Text_184389, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A5E:: @ 8157A5E
+ msgbox RustboroCity_PokemonSchool_Text_184447, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A6C:: @ 8157A6C
+ msgbox RustboroCity_PokemonSchool_Text_1844EC, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A7A:: @ 8157A7A
+ msgbox RustboroCity_PokemonSchool_Text_1845A5, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A88:: @ 8157A88
+ msgbox RustboroCity_PokemonSchool_Text_184627, 4
+ jump RustboroCity_PokemonSchool_EventScript_1579F1
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A96:: @ 8157A96
+ releaseall
+ end
+
+RustboroCity_PokemonSchool_EventScript_157A98:: @ 8157A98
+ msgbox RustboroCity_PokemonSchool_Text_18480E, 2
+ end
+
+RustboroCity_PokemonSchool_EventScript_157AA1:: @ 8157AA1
+ msgbox RustboroCity_PokemonSchool_Text_18483C, 2
+ end
+
+RustboroCity_PokemonSchool_EventScript_157AAA:: @ 8157AAA
+ msgbox RustboroCity_PokemonSchool_Text_184873, 2
+ end
+
+RustboroCity_PokemonSchool_EventScript_157AB3:: @ 8157AB3
+ msgbox RustboroCity_PokemonSchool_Text_1848D8, 2
+ end
+
+RustboroCity_PokemonSchool_EventScript_157ABC:: @ 8157ABC
+ msgbox RustboroCity_PokemonSchool_Text_184988, 2
+ end
+
+RustboroCity_PokemonSchool_EventScript_157AC5:: @ 8157AC5
+ msgbox RustboroCity_PokemonSchool_Text_184A17, 3
+ end
+
+RustboroCity_PokemonSchool_EventScript_157ACE:: @ 8157ACE
+ lock
+ faceplayer
+ checkflag 275
+ jumpeq RustboroCity_PokemonSchool_EventScript_157B34
+ compare FACING, 4
+ callif 1, RustboroCity_PokemonSchool_EventScript_157B1E
+ compare FACING, 3
+ callif 1, RustboroCity_PokemonSchool_EventScript_157B29
+ msgbox RustboroCity_PokemonSchool_Text_1846A2, 4
+ giveitem ITEM_QUICK_CLAW
+ compare RESULT, 0
+ jumpeq RustboroCity_PokemonSchool_EventScript_1A029B
+ closebutton
+ move LAST_TALKED, RustboroCity_PokemonSchool_Movement_1A0845
+ waitmove 0
+ setflag 275
+ release
+ end
+
+RustboroCity_PokemonSchool_EventScript_157B1E:: @ 8157B1E
+ move LAST_TALKED, RustboroCity_PokemonSchool_Movement_157B60
+ waitmove 0
+ return
+
+RustboroCity_PokemonSchool_EventScript_157B29:: @ 8157B29
+ move LAST_TALKED, RustboroCity_PokemonSchool_Movement_157B49
+ waitmove 0
+ return
+
+RustboroCity_PokemonSchool_EventScript_157B34:: @ 8157B34
+ msgbox RustboroCity_PokemonSchool_Text_184737, 4
+ closebutton
+ move LAST_TALKED, RustboroCity_PokemonSchool_Movement_1A0845
+ waitmove 0
+ release
+ end
+
+RustboroCity_PokemonSchool_Movement_157B49:: @ 8157B49
+ step_left
+ step_down
+ step_down
+ step_right
+ step_25
+ step_14
+ step_14
+ step_14
+ step_down
+ step_27
+ step_14
+ step_14
+ step_right
+ step_14
+ step_14
+ step_13
+ step_up
+ step_left
+ step_left
+ step_up
+ step_up
+ step_right
+ step_end
+
+RustboroCity_PokemonSchool_Movement_157B60:: @ 8157B60
+ step_right
+ step_right
+ step_down
+ step_down
+ step_left
+ step_left
+ step_25
+ step_14
+ step_14
+ step_14
+ step_down
+ step_27
+ step_14
+ step_14
+ step_right
+ step_14
+ step_14
+ step_13
+ step_up
+ step_right
+ step_up
+ step_up
+ step_left
+ step_left
+ step_end
+
diff --git a/data/scripts/maps/RusturfTunnel.s b/data/scripts/maps/RusturfTunnel.s
new file mode 100644
index 000000000..cd920e333
--- /dev/null
+++ b/data/scripts/maps/RusturfTunnel.s
@@ -0,0 +1,405 @@
+RusturfTunnel_MapScripts:: @ 815C745
+ map_script 3, RusturfTunnel_MapScript1_15C762
+ map_script 2, RusturfTunnel_MapScript2_15C750
+ .byte 0
+
+RusturfTunnel_MapScript2_15C750:: @ 815C750
+ map_script_2 0x409a, 4, RusturfTunnel_EventScript_15C7D1
+ map_script_2 0x409a, 5, RusturfTunnel_EventScript_15C7D1
+ .2byte 0
+
+RusturfTunnel_MapScript1_15C762:: @ 815C762
+ call RusturfTunnel_EventScript_1A0196
+ compare 0x409a, 2
+ callif 1, RusturfTunnel_EventScript_15C773
+ end
+
+RusturfTunnel_EventScript_15C773:: @ 815C773
+ movespriteperm 7, 13, 4
+ movespriteperm 6, 13, 5
+ return
+
+RusturfTunnel_EventScript_15C782:: @ 815C782
+ lock
+ faceplayer
+ msgbox RusturfTunnel_Text_194766, 4
+ closebutton
+ move LAST_TALKED, RusturfTunnel_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RusturfTunnel_EventScript_15C799:: @ 815C799
+ lock
+ faceplayer
+ checkflag 1
+ jumpeq RusturfTunnel_EventScript_15C7BC
+ setflag 1
+ msgbox RusturfTunnel_Text_1944C5, 4
+ closebutton
+ move LAST_TALKED, RusturfTunnel_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RusturfTunnel_EventScript_15C7BC:: @ 815C7BC
+ msgbox RusturfTunnel_Text_1945B2, 4
+ closebutton
+ move LAST_TALKED, RusturfTunnel_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+RusturfTunnel_EventScript_15C7D1:: @ 815C7D1
+ lockall
+ compare 0x4001, 1
+ callif 1, RusturfTunnel_EventScript_15C8CA
+ compare 0x4001, 2
+ callif 1, RusturfTunnel_EventScript_15C8DF
+ compare 0x4001, 3
+ callif 1, RusturfTunnel_EventScript_15C8EA
+ call RusturfTunnel_EventScript_15C92D
+ msgbox RusturfTunnel_Text_19461D, 4
+ compare 0x4001, 2
+ callif 1, RusturfTunnel_EventScript_15C8EB
+ compare 0x4001, 3
+ callif 1, RusturfTunnel_EventScript_15C8EB
+ giveitem ITEM_HM04
+ setflag 106
+ msgbox RusturfTunnel_Text_194693, 4
+ closebutton
+ compare 0x4001, 1
+ callif 1, RusturfTunnel_EventScript_15C880
+ compare 0x4001, 2
+ callif 1, RusturfTunnel_EventScript_15C892
+ compare 0x4001, 3
+ callif 1, RusturfTunnel_EventScript_15C8AE
+ msgbox RusturfTunnel_Text_194706, 4
+ closebutton
+ compare 0x4001, 1
+ callif 1, RusturfTunnel_EventScript_15C8F7
+ compare 0x4001, 2
+ callif 1, RusturfTunnel_EventScript_15C909
+ compare 0x4001, 3
+ callif 1, RusturfTunnel_EventScript_15C91B
+ call RusturfTunnel_EventScript_1A0442
+ releaseall
+ end
+
+RusturfTunnel_EventScript_15C880:: @ 815C880
+ move 255, RusturfTunnel_Movement_15C96A
+ move 1, RusturfTunnel_Movement_15C98F
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C892:: @ 815C892
+ move 255, RusturfTunnel_Movement_15C96D
+ move 1, RusturfTunnel_Movement_15C994
+ waitmove 0
+ move 10, RusturfTunnel_Movement_1A0845
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C8AE:: @ 815C8AE
+ move 255, RusturfTunnel_Movement_15C96D
+ move 1, RusturfTunnel_Movement_15C994
+ waitmove 0
+ move 10, RusturfTunnel_Movement_1A0845
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C8CA:: @ 815C8CA
+ move 1, RusturfTunnel_Movement_1A0841
+ waitmove 0
+ move 255, RusturfTunnel_Movement_1A0845
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C8DF:: @ 815C8DF
+ move 1, RusturfTunnel_Movement_15C970
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C8EA:: @ 815C8EA
+ return
+
+RusturfTunnel_EventScript_15C8EB:: @ 815C8EB
+ closebutton
+ move 1, RusturfTunnel_Movement_15C98D
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C8F7:: @ 815C8F7
+ move 10, RusturfTunnel_Movement_15C945
+ move 1, RusturfTunnel_Movement_15C973
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C909:: @ 815C909
+ move 10, RusturfTunnel_Movement_15C951
+ move 1, RusturfTunnel_Movement_15C980
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C91B:: @ 815C91B
+ move 10, RusturfTunnel_Movement_15C951
+ move 1, RusturfTunnel_Movement_15C980
+ waitmove 0
+ return
+
+RusturfTunnel_EventScript_15C92D:: @ 815C92D
+ playsfx 21
+ move 1, RusturfTunnel_Movement_1A0833
+ waitmove 0
+ move 1, RusturfTunnel_Movement_1A0835
+ waitmove 0
+ return
+
+RusturfTunnel_Movement_15C945:: @ 815C945
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+RusturfTunnel_Movement_15C951:: @ 815C951
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+ .incbin "baserom.gba", 0x15c95d, 0xd
+
+RusturfTunnel_Movement_15C96A:: @ 815C96A
+ step_left
+ step_28
+ step_end
+
+RusturfTunnel_Movement_15C96D:: @ 815C96D
+ step_right
+ step_27
+ step_end
+
+RusturfTunnel_Movement_15C970:: @ 815C970
+ step_up
+ step_28
+ step_end
+
+RusturfTunnel_Movement_15C973:: @ 815C973
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+RusturfTunnel_Movement_15C980:: @ 815C980
+ step_up
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
+RusturfTunnel_Movement_15C98D:: @ 815C98D
+ step_right
+ step_end
+
+RusturfTunnel_Movement_15C98F:: @ 815C98F
+ step_22
+ step_22
+ step_16
+ step_18
+ step_end
+
+RusturfTunnel_Movement_15C994:: @ 815C994
+ step_24
+ step_24
+ step_18
+ step_26
+ step_end
+
+RusturfTunnel_EventScript_15C999:: @ 815C999
+ setvar 0x4001, 1
+ end
+
+RusturfTunnel_EventScript_15C99F:: @ 815C99F
+ setvar 0x4001, 2
+ end
+
+RusturfTunnel_EventScript_15C9A5:: @ 815C9A5
+ setvar 0x4001, 3
+ end
+
+RusturfTunnel_EventScript_15C9AB:: @ 815C9AB
+ lockall
+ msgbox RusturfTunnel_Text_194159, 4
+ closebutton
+ move 6, RusturfTunnel_Movement_15C9D3
+ move 7, RusturfTunnel_Movement_15C9D3
+ waitmove 0
+ moveoffscreen 6
+ moveoffscreen 7
+ setvar 0x409a, 3
+ releaseall
+ end
+
+RusturfTunnel_Movement_15C9D3:: @ 815C9D3
+ step_40
+ step_right
+ step_41
+ step_end
+
+RusturfTunnel_EventScript_15C9D7:: @ 815C9D7
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox RusturfTunnel_Text_194188, 4
+ waitpokecry
+ release
+ end
+
+RusturfTunnel_EventScript_15C9EA:: @ 815C9EA
+ lock
+ faceplayer
+ playmusic BGM_EVIL_TEAM, 0
+ msgbox RusturfTunnel_Text_19419B, 4
+ trainerbattle 3, TRAINER_RUSTURF_TUNNEL_GRUNT, 0, RusturfTunnel_Text_194243
+ msgbox RusturfTunnel_Text_194274, 4
+ giveitem ITEM_DEVON_GOODS
+ closebutton
+ move 255, RusturfTunnel_Movement_15CA99
+ move 6, RusturfTunnel_Movement_15CAA2
+ waitmove 0
+ disappear 6
+ pause 50
+ reappear 5
+ move 5, RusturfTunnel_Movement_15CAAC
+ waitmove 0
+ move 255, RusturfTunnel_Movement_15CA9F
+ move 5, RusturfTunnel_Movement_15CAC0
+ waitmove 0
+ msgbox RusturfTunnel_Text_19432A, 4
+ move 5, RusturfTunnel_Movement_1A0839
+ waitmove 0
+ message RusturfTunnel_Text_19434F
+ waittext
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ waitbutton
+ waitpokecry
+ closebutton
+ move 5, RusturfTunnel_Movement_15CAB4
+ move 7, RusturfTunnel_Movement_15CAC3
+ waitmove 0
+ disappear 5
+ disappear 7
+ clearflag 142
+ setflag 143
+ setvar 0x405a, 4
+ setvar 0x4090, 1
+ setflag 891
+ release
+ end
+
+RusturfTunnel_Movement_15CA99:: @ 815CA99
+ step_00
+ step_40
+ step_up
+ step_41
+ step_27
+ step_end
+
+RusturfTunnel_Movement_15CA9F:: @ 815CA9F
+ step_down
+ step_26
+ step_end
+
+RusturfTunnel_Movement_15CAA2:: @ 815CAA2
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_17
+ step_end
+
+RusturfTunnel_Movement_15CAAC:: @ 815CAAC
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+RusturfTunnel_Movement_15CAB4:: @ 815CAB4
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+RusturfTunnel_Movement_15CAC0:: @ 815CAC0
+ step_14
+ step_right
+ step_end
+
+RusturfTunnel_Movement_15CAC3:: @ 815CAC3
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+RusturfTunnel_EventScript_15CACD:: @ 815CACD
+ trainerbattle 0, 635, 0, RusturfTunnel_Text_194814, RusturfTunnel_Text_1948A2
+ msgbox RusturfTunnel_Text_1948C4, 6
+ end
+
diff --git a/data/scripts/maps/SSTidalCorridor.s b/data/scripts/maps/SSTidalCorridor.s
new file mode 100644
index 000000000..f143d3261
--- /dev/null
+++ b/data/scripts/maps/SSTidalCorridor.s
@@ -0,0 +1,199 @@
+SSTidalCorridor_MapScripts:: @ 815FC94
+ map_script 2, SSTidalCorridor_MapScript2_15FC9A
+ .byte 0
+
+SSTidalCorridor_MapScript2_15FC9A:: @ 815FC9A
+ map_script_2 0x40b4, 1, SSTidalCorridor_EventScript_15FCBC
+ map_script_2 0x40b4, 5, SSTidalCorridor_EventScript_15FCD2
+ map_script_2 0x40b4, 9, SSTidalCorridor_EventScript_15FD24
+ map_script_2 0x40b4, 10, SSTidalCorridor_EventScript_15FD3A
+ .2byte 0
+
+SSTidalCorridor_EventScript_15FCBC:: @ 815FCBC
+ special 203
+ setvar 0x40b4, 2
+ lockall
+ playsfx 73
+ msgbox SSTidalCorridor_Text_199007, 4
+ releaseall
+ end
+
+SSTidalCorridor_EventScript_15FCD2:: @ 815FCD2
+ setvar 0x40b4, 6
+ lockall
+ playsfx 73
+ msgbox SSTidalCorridor_Text_199088, 4
+ releaseall
+ end
+
+SSTidalRooms_EventScript_15FCE5:: @ 815FCE5
+ special 203
+ setvar 0x40b4, 7
+ playsfx 73
+ msgbox SSTidalRooms_Text_199007, 4
+ return
+
+SSTidalRooms_EventScript_15FCF9:: @ 815FCF9
+ special 204
+ setvar 0x40b4, 4
+ playsfx 73
+ msgbox SSTidalRooms_Text_1990F8, 4
+ return
+
+ .global gUnknown_0815FD0D
+gUnknown_0815FD0D: @ 815FD0D
+
+ .incbin "baserom.gba", 0x15fd0d, 0x17
+
+SSTidalCorridor_EventScript_15FD24:: @ 815FD24
+ special 204
+ setvar 0x40b4, 3
+ lockall
+ playsfx 73
+ msgbox SSTidalCorridor_Text_199088, 4
+ releaseall
+ end
+
+SSTidalCorridor_EventScript_15FD3A:: @ 815FD3A
+ special 204
+ setvar 0x40b4, 8
+ lockall
+ playsfx 73
+ msgbox SSTidalCorridor_Text_1990B4, 4
+ releaseall
+ end
+
+SSTidalRooms_EventScript_15FD50:: @ 815FD50
+ special 204
+ setvar 0x40b4, 8
+ playsfx 73
+ msgbox SSTidalRooms_Text_1990B4, 4
+ return
+
+SSTidalRooms_EventScript_15FD64:: @ 815FD64
+ switch 0x40b4
+ case 2, SSTidalRooms_EventScript_15FCF9
+ case 3, SSTidalRooms_EventScript_15FCF9
+ case 6, SSTidalRooms_EventScript_15FCE5
+ case 7, SSTidalRooms_EventScript_15FD50
+ return
+
+SSTidalCorridor_EventScript_15FD96:: @ 815FD96
+ msgbox SSTidalCorridor_Text_199291, 2
+ end
+
+SSTidalCorridor_EventScript_15FD9F:: @ 815FD9F
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_WINGULL, 0
+ msgbox SSTidalCorridor_Text_199388, 4
+ waitpokecry
+ release
+ end
+
+SSTidalCorridor_EventScript_15FDB2:: @ 815FDB2
+ msgbox SSTidalCorridor_Text_1993A1, 3
+ end
+
+SSTidalCorridor_EventScript_15FDBB:: @ 815FDBB
+ msgbox SSTidalCorridor_Text_1993A9, 3
+ end
+
+SSTidalCorridor_EventScript_15FDC4:: @ 815FDC4
+ msgbox SSTidalCorridor_Text_1993B1, 3
+ end
+
+SSTidalCorridor_EventScript_15FDCD:: @ 815FDCD
+ msgbox SSTidalCorridor_Text_1993B9, 3
+ end
+
+SSTidalCorridor_EventScript_15FDD6:: @ 815FDD6
+ lock
+ faceplayer
+ compare 0x40b4, 4
+ jumpeq SSTidalCorridor_EventScript_15FDF8
+ compare 0x40b4, 8
+ jumpeq SSTidalCorridor_EventScript_15FE17
+ msgbox SSTidalCorridor_Text_19913B, 4
+ release
+ end
+
+SSTidalCorridor_EventScript_15FDF8:: @ 815FDF8
+ sethealplace 8
+ msgbox SSTidalCorridor_Text_1991F4, 4
+ checkflag 260
+ callif 1, SSTidalCorridor_EventScript_15FE36
+ warp LilycoveCity_Harbor, 255, 8, 11
+ waitstate
+ release
+ end
+
+SSTidalCorridor_EventScript_15FE17:: @ 815FE17
+ sethealplace 4
+ msgbox SSTidalCorridor_Text_1991F4, 4
+ checkflag 260
+ callif 1, SSTidalCorridor_EventScript_15FE36
+ warp SlateportCity_Harbor, 255, 8, 11
+ waitstate
+ release
+ end
+
+SSTidalCorridor_EventScript_15FE36:: @ 815FE36
+ setflag 951
+ return
+
+SSTidalCorridor_EventScript_15FE3A:: @ 815FE3A
+ lockall
+ compare 0x40b4, 2
+ jumpeq SSTidalCorridor_EventScript_15FE5B
+ compare 0x40b4, 7
+ jumpeq SSTidalCorridor_EventScript_15FE5B
+ msgbox SSTidalCorridor_Text_199268, 4
+ releaseall
+ end
+
+SSTidalCorridor_EventScript_15FE5B:: @ 815FE5B
+ special 270
+ waitstate
+ end
+
+SSTidalCorridor_EventScript_15FE60:: @ 815FE60
+ lock
+ faceplayer
+ checkflag 247
+ jumpeq SSTidalCorridor_EventScript_15FE7A
+ call SSTidalCorridor_EventScript_15FE84
+ msgbox SSTidalCorridor_Text_199203, 4
+ release
+ end
+
+SSTidalCorridor_EventScript_15FE7A:: @ 815FE7A
+ msgbox SSTidalCorridor_Text_199255, 4
+ release
+ end
+
+SSTidalCorridor_EventScript_15FE84:: @ 815FE84
+ checktrainerflag 494
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 495
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 294
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 255
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 256
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 641
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 138
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ checktrainerflag 119
+ jumpif 0, SSTidalCorridor_EventScript_15FED5
+ setflag 247
+ jump SSTidalCorridor_EventScript_15FE7A
+
+ .incbin "baserom.gba", 0x15fed4, 0x1
+
+SSTidalCorridor_EventScript_15FED5:: @ 815FED5
+ return
diff --git a/data/scripts/maps/SSTidalLowerDeck.s b/data/scripts/maps/SSTidalLowerDeck.s
new file mode 100644
index 000000000..f3dc6f0a0
--- /dev/null
+++ b/data/scripts/maps/SSTidalLowerDeck.s
@@ -0,0 +1,13 @@
+SSTidalLowerDeck_MapScripts:: @ 815FED6
+ .byte 0
+
+SSTidalLowerDeck_EventScript_15FED7:: @ 815FED7
+ trainerbattle 0, 494, 0, SSTidalLowerDeck_Text_1993C1, SSTidalLowerDeck_Text_19941A
+ msgbox SSTidalLowerDeck_Text_19942E, 6
+ end
+
+SSTidalLowerDeck_EventScript_15FEEE:: @ 815FEEE
+ trainerbattle 0, 495, 0, SSTidalLowerDeck_Text_199491, SSTidalLowerDeck_Text_1994F7
+ msgbox SSTidalLowerDeck_Text_199508, 6
+ end
+
diff --git a/data/scripts/maps/SSTidalRooms.s b/data/scripts/maps/SSTidalRooms.s
new file mode 100644
index 000000000..860b00a47
--- /dev/null
+++ b/data/scripts/maps/SSTidalRooms.s
@@ -0,0 +1,66 @@
+SSTidalRooms_MapScripts:: @ 815FF05
+ .byte 0
+
+SSTidalRooms_EventScript_15FF06:: @ 815FF06
+ lock
+ faceplayer
+ checkflag 260
+ jumpeq SSTidalRooms_EventScript_15FF3D
+ msgbox SSTidalRooms_Text_199B65, 4
+ giveitem ITEM_TM49
+ compare RESULT, 0
+ jumpeq SSTidalRooms_EventScript_1A029B
+ setflag 260
+ msgbox SSTidalRooms_Text_199C1A, 4
+ release
+ end
+
+SSTidalRooms_EventScript_15FF3D:: @ 815FF3D
+ msgbox SSTidalRooms_Text_199C1A, 4
+ release
+ end
+
+SSTidalRooms_EventScript_15FF47:: @ 815FF47
+ lockall
+ msgbox SSTidalRooms_Text_19956B, 4
+ closebutton
+ call SSTidalRooms_EventScript_1A02CA
+ call SSTidalRooms_EventScript_15FD64
+ releaseall
+ end
+
+SSTidalRooms_EventScript_15FF5D:: @ 815FF5D
+ trainerbattle 0, 294, 0, SSTidalRooms_Text_19958A, SSTidalRooms_Text_199613
+ msgbox SSTidalRooms_Text_199630, 6
+ end
+
+SSTidalRooms_EventScript_15FF74:: @ 815FF74
+ trainerbattle 0, 255, 0, SSTidalRooms_Text_1996A6, SSTidalRooms_Text_1996BF
+ msgbox SSTidalRooms_Text_1996E1, 6
+ end
+
+SSTidalRooms_EventScript_15FF8B:: @ 815FF8B
+ trainerbattle 0, 256, 0, SSTidalRooms_Text_199723, SSTidalRooms_Text_199747
+ msgbox SSTidalRooms_Text_199778, 6
+ end
+
+SSTidalRooms_EventScript_15FFA2:: @ 815FFA2
+ trainerbattle 4, 641, 0, SSTidalRooms_Text_1997C1, SSTidalRooms_Text_199813, SSTidalRooms_Text_199887
+ msgbox SSTidalRooms_Text_199820, 6
+ end
+
+SSTidalRooms_EventScript_15FFBD:: @ 815FFBD
+ trainerbattle 4, 641, 0, SSTidalRooms_Text_1998C5, SSTidalRooms_Text_19990E, SSTidalRooms_Text_199975
+ msgbox SSTidalRooms_Text_19991C, 6
+ end
+
+SSTidalRooms_EventScript_15FFD8:: @ 815FFD8
+ trainerbattle 0, 138, 0, SSTidalRooms_Text_1999B7, SSTidalRooms_Text_1999FF
+ msgbox SSTidalRooms_Text_199A10, 6
+ end
+
+SSTidalRooms_EventScript_15FFEF:: @ 815FFEF
+ trainerbattle 0, 119, 0, SSTidalRooms_Text_199A62, SSTidalRooms_Text_199ABF
+ msgbox SSTidalRooms_Text_199ADE, 6
+ end
+
diff --git a/data/scripts/maps/SafariZone_Northeast.s b/data/scripts/maps/SafariZone_Northeast.s
new file mode 100644
index 000000000..bb301e4fa
--- /dev/null
+++ b/data/scripts/maps/SafariZone_Northeast.s
@@ -0,0 +1,11 @@
+SafariZone_Northeast_MapScripts:: @ 8160010
+ .byte 0
+
+SafariZone_Northeast_EventScript_160011:: @ 8160011
+ msgbox SafariZone_Northeast_Text_1C3D19, 2
+ end
+
+SafariZone_Northeast_EventScript_16001A:: @ 816001A
+ msgbox SafariZone_Northeast_Text_1C3D80, 2
+ end
+
diff --git a/data/scripts/maps/SafariZone_Northwest.s b/data/scripts/maps/SafariZone_Northwest.s
new file mode 100644
index 000000000..4f30ad378
--- /dev/null
+++ b/data/scripts/maps/SafariZone_Northwest.s
@@ -0,0 +1,7 @@
+SafariZone_Northwest_MapScripts:: @ 8160006
+ .byte 0
+
+SafariZone_Northwest_EventScript_160007:: @ 8160007
+ msgbox SafariZone_Northwest_Text_1C3CAE, 2
+ end
+
diff --git a/data/scripts/maps/SafariZone_RestHouse.s b/data/scripts/maps/SafariZone_RestHouse.s
new file mode 100644
index 000000000..ace6e6473
--- /dev/null
+++ b/data/scripts/maps/SafariZone_RestHouse.s
@@ -0,0 +1,15 @@
+SafariZone_RestHouse_MapScripts:: @ 8160C2E
+ .byte 0
+
+SafariZone_RestHouse_EventScript_160C2F:: @ 8160C2F
+ msgbox SafariZone_RestHouse_Text_1C3EC9, 2
+ end
+
+SafariZone_RestHouse_EventScript_160C38:: @ 8160C38
+ msgbox SafariZone_RestHouse_Text_1C3F71, 2
+ end
+
+SafariZone_RestHouse_EventScript_160C41:: @ 8160C41
+ msgbox SafariZone_RestHouse_Text_1C3FF4, 2
+ end
+
diff --git a/data/scripts/maps/SafariZone_Southeast.s b/data/scripts/maps/SafariZone_Southeast.s
new file mode 100644
index 000000000..38fa96053
--- /dev/null
+++ b/data/scripts/maps/SafariZone_Southeast.s
@@ -0,0 +1,119 @@
+SafariZone_Southeast_MapScripts:: @ 8160036
+ map_script 3, SafariZone_Southeast_MapScript1_160073
+ map_script 2, SafariZone_Southeast_MapScript2_160041
+ .byte 0
+
+SafariZone_Southeast_MapScript2_160041:: @ 8160041
+ map_script_2 0x40a4, 2, SafariZone_Southeast_EventScript_16004B
+ .2byte 0
+
+SafariZone_Southeast_EventScript_16004B:: @ 816004B
+ lockall
+ setvar 0x4001, 0
+ move 255, SafariZone_Southeast_Movement_160087
+ waitmove 0
+ move 1, SafariZone_Southeast_Movement_160089
+ waitmove 0
+ movespriteperm 1, 32, 34
+ setvar 0x40a4, 0
+ releaseall
+ end
+
+SafariZone_Southeast_MapScript1_160073:: @ 8160073
+ compare 0x40a4, 2
+ callif 1, SafariZone_Southeast_EventScript_16007F
+ end
+
+SafariZone_Southeast_EventScript_16007F:: @ 816007F
+ movespriteperm 1, 31, 34
+ return
+
+SafariZone_Southeast_Movement_160087:: @ 8160087
+ step_down
+ step_end
+
+SafariZone_Southeast_Movement_160089:: @ 8160089
+ step_right
+ step_25
+ step_end
+
+SafariZone_Southeast_EventScript_16008C:: @ 816008C
+ msgbox SafariZone_Southeast_Text_1C3B71, 2
+ end
+
+SafariZone_Southeast_EventScript_160095:: @ 8160095
+ msgbox SafariZone_Southeast_Text_1C3BBD, 2
+ end
+
+SafariZone_Southeast_EventScript_16009E:: @ 816009E
+ msgbox SafariZone_Southeast_Text_1C3DCE, 2
+ end
+
+SafariZone_Southeast_EventScript_1600A7:: @ 81600A7
+ lock
+ faceplayer
+ compare 0x4001, 0
+ jumpeq SafariZone_Southeast_EventScript_1600D1
+ msgbox SafariZone_Southeast_Text_1C3A56, 5
+ compare RESULT, 1
+ jumpeq SafariZone_Southeast_EventScript_1600E0
+ msgbox SafariZone_Southeast_Text_1C3A9C, 4
+ release
+ end
+
+SafariZone_Southeast_EventScript_1600D1:: @ 81600D1
+ setvar 0x4001, 1
+ msgbox SafariZone_Southeast_Text_1C3B2D, 4
+ release
+ end
+
+SafariZone_Southeast_EventScript_1600E0:: @ 81600E0
+ msgbox SafariZone_Southeast_Text_1C3ACA, 4
+ closebutton
+ switch FACING
+ case 2, SafariZone_Southeast_EventScript_160105
+ case 4, SafariZone_Southeast_EventScript_16011F
+ end
+
+SafariZone_Southeast_EventScript_160105:: @ 8160105
+ move 1, SafariZone_Southeast_Movement_160150
+ waitmove 0
+ move 255, SafariZone_Southeast_Movement_16014B
+ waitmove 0
+ jump SafariZone_Southeast_EventScript_160139
+ end
+
+SafariZone_Southeast_EventScript_16011F:: @ 816011F
+ move 1, SafariZone_Southeast_Movement_160153
+ waitmove 0
+ move 255, SafariZone_Southeast_Movement_16014D
+ waitmove 0
+ jump SafariZone_Southeast_EventScript_160139
+ end
+
+SafariZone_Southeast_EventScript_160139:: @ 8160139
+ setvar 0x40a4, 1
+ special 206
+ warpwalk Route121_SafariZoneEntrance, 255, 2, 5
+ waitstate
+ end
+
+SafariZone_Southeast_Movement_16014B:: @ 816014B
+ step_up
+ step_end
+
+SafariZone_Southeast_Movement_16014D:: @ 816014D
+ step_right
+ step_26
+ step_end
+
+SafariZone_Southeast_Movement_160150:: @ 8160150
+ step_left
+ step_28
+ step_end
+
+SafariZone_Southeast_Movement_160153:: @ 8160153
+ step_down
+ step_26
+ step_end
+
diff --git a/data/scripts/maps/SafariZone_Southwest.s b/data/scripts/maps/SafariZone_Southwest.s
new file mode 100644
index 000000000..158b8720f
--- /dev/null
+++ b/data/scripts/maps/SafariZone_Southwest.s
@@ -0,0 +1,11 @@
+SafariZone_Southwest_MapScripts:: @ 8160023
+ .byte 0
+
+SafariZone_Southwest_EventScript_160024:: @ 8160024
+ msgbox SafariZone_Southwest_Text_1C3C39, 2
+ end
+
+SafariZone_Southwest_EventScript_16002D:: @ 816002D
+ msgbox SafariZone_Southwest_Text_1C3EA3, 3
+ end
+
diff --git a/data/scripts/maps/ScorchedSlab.s b/data/scripts/maps/ScorchedSlab.s
new file mode 100644
index 000000000..bf5074e95
--- /dev/null
+++ b/data/scripts/maps/ScorchedSlab.s
@@ -0,0 +1,8 @@
+ScorchedSlab_MapScripts:: @ 815F29D
+ map_script 3, ScorchedSlab_MapScript1_15F2A3
+ .byte 0
+
+ScorchedSlab_MapScript1_15F2A3:: @ 815F2A3
+ setflag 2136
+ end
+
diff --git a/data/scripts/maps/SeafloorCavern_Entrance.s b/data/scripts/maps/SeafloorCavern_Entrance.s
new file mode 100644
index 000000000..5f2788cf9
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Entrance.s
@@ -0,0 +1,9 @@
+SeafloorCavern_Entrance_MapScripts:: @ 815DA4A
+ map_script 5, SeafloorCavern_Entrance_MapScript1_15DA50
+ .byte 0
+
+SeafloorCavern_Entrance_MapScript1_15DA50:: @ 815DA50
+ warp4 Underwater_SeafloorCavern, 255, 6, 5
+ warp6 Underwater_SeafloorCavern, 255, 6, 5
+ end
+
diff --git a/data/scripts/maps/SeafloorCavern_Room1.s b/data/scripts/maps/SeafloorCavern_Room1.s
new file mode 100644
index 000000000..4cc0ea0cd
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room1.s
@@ -0,0 +1,18 @@
+SeafloorCavern_Room1_MapScripts:: @ 815DA61
+ map_script 3, SeafloorCavern_Room1_MapScript1_15DA67
+ .byte 0
+
+SeafloorCavern_Room1_MapScript1_15DA67:: @ 815DA67
+ call SeafloorCavern_Room1_EventScript_1A0196
+ end
+
+SeafloorCavern_Room1_EventScript_15DA6D:: @ 815DA6D
+ trainerbattle 0, TRAINER_SEAFLOOR_CAVERN_GRUNT_1, 0, SeafloorCavern_Room1_Text_1974BA, SeafloorCavern_Room1_Text_1974EA
+ msgbox SeafloorCavern_Room1_Text_1974FF, 6
+ end
+
+SeafloorCavern_Room1_EventScript_15DA84:: @ 815DA84
+ trainerbattle 0, TRAINER_SEAFLOOR_CAVERN_GRUNT_2, 0, SeafloorCavern_Room1_Text_19753C, SeafloorCavern_Room1_Text_197573
+ msgbox SeafloorCavern_Room1_Text_197589, 6
+ end
+
diff --git a/data/scripts/maps/SeafloorCavern_Room2.s b/data/scripts/maps/SeafloorCavern_Room2.s
new file mode 100644
index 000000000..cc53a220a
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room2.s
@@ -0,0 +1,3 @@
+SeafloorCavern_Room2_MapScripts:: @ 815DA9B
+ .byte 0
+
diff --git a/data/scripts/maps/SeafloorCavern_Room3.s b/data/scripts/maps/SeafloorCavern_Room3.s
new file mode 100644
index 000000000..6d836adc7
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room3.s
@@ -0,0 +1,13 @@
+SeafloorCavern_Room3_MapScripts:: @ 815DA9C
+ map_script 3, SeafloorCavern_Room3_MapScript1_15DAA2
+ .byte 0
+
+SeafloorCavern_Room3_MapScript1_15DAA2:: @ 815DAA2
+ call SeafloorCavern_Room3_EventScript_1A0196
+ end
+
+SeafloorCavern_Room3_EventScript_15DAA8:: @ 815DAA8
+ trainerbattle 0, TRAINER_SEAFLOOR_CAVERN_GRUNT_3, 0, SeafloorCavern_Room3_Text_1975DC, SeafloorCavern_Room3_Text_1976F3
+ msgbox SeafloorCavern_Room3_Text_197704, 6
+ end
+
diff --git a/data/scripts/maps/SeafloorCavern_Room4.s b/data/scripts/maps/SeafloorCavern_Room4.s
new file mode 100644
index 000000000..1e79317c7
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room4.s
@@ -0,0 +1,13 @@
+SeafloorCavern_Room4_MapScripts:: @ 815DABF
+ map_script 3, SeafloorCavern_Room4_MapScript1_15DAC5
+ .byte 0
+
+SeafloorCavern_Room4_MapScript1_15DAC5:: @ 815DAC5
+ call SeafloorCavern_Room4_EventScript_1A0196
+ end
+
+SeafloorCavern_Room4_EventScript_15DACB:: @ 815DACB
+ trainerbattle 0, TRAINER_SEAFLOOR_CAVERN_GRUNT_4, 0, SeafloorCavern_Room4_Text_1977B9, SeafloorCavern_Room4_Text_1977E2
+ msgbox SeafloorCavern_Room4_Text_1977ED, 6
+ end
+
diff --git a/data/scripts/maps/SeafloorCavern_Room5.s b/data/scripts/maps/SeafloorCavern_Room5.s
new file mode 100644
index 000000000..0bccaf57d
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room5.s
@@ -0,0 +1,3 @@
+SeafloorCavern_Room5_MapScripts:: @ 815DAE2
+ .byte 0
+
diff --git a/data/scripts/maps/SeafloorCavern_Room6.s b/data/scripts/maps/SeafloorCavern_Room6.s
new file mode 100644
index 000000000..c765f7715
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room6.s
@@ -0,0 +1,3 @@
+SeafloorCavern_Room6_MapScripts:: @ 815DAE3
+ .byte 0
+
diff --git a/data/scripts/maps/SeafloorCavern_Room7.s b/data/scripts/maps/SeafloorCavern_Room7.s
new file mode 100644
index 000000000..b0a2e1cd3
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room7.s
@@ -0,0 +1,3 @@
+SeafloorCavern_Room7_MapScripts:: @ 815DAE4
+ .byte 0
+
diff --git a/data/scripts/maps/SeafloorCavern_Room8.s b/data/scripts/maps/SeafloorCavern_Room8.s
new file mode 100644
index 000000000..48858c411
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room8.s
@@ -0,0 +1,3 @@
+SeafloorCavern_Room8_MapScripts:: @ 815DAE5
+ .byte 0
+
diff --git a/data/scripts/maps/SeafloorCavern_Room9.s b/data/scripts/maps/SeafloorCavern_Room9.s
new file mode 100644
index 000000000..2308cbbf5
--- /dev/null
+++ b/data/scripts/maps/SeafloorCavern_Room9.s
@@ -0,0 +1,227 @@
+SeafloorCavern_Room9_MapScripts:: @ 815DAE6
+ map_script 3, SeafloorCavern_Room9_MapScript1_15DAEC
+ .byte 0
+
+SeafloorCavern_Room9_MapScript1_15DAEC:: @ 815DAEC
+ call SeafloorCavern_Room9_EventScript_1A0196
+ call SeafloorCavern_Room9_EventScript_1A01B5
+ .ifdef SAPPHIRE
+ setmapfooter 157
+ .else
+ setmapfooter 327
+ .endif
+ end
+
+SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
+ lockall
+ setvar 0x8004, 2
+ setvar 0x8005, 3
+ setvar 0x8006, 4
+ setvar 0x8007, 5
+ move 255, SeafloorCavern_Room9_Movement_1A0841
+ waitmove 0
+ move 255, SeafloorCavern_Room9_Movement_15DD68
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4850, 4
+ closebutton
+ reappear 0x8004
+ move 255, SeafloorCavern_Room9_Movement_1A083F
+ waitmove 0
+ move 0x8004, SeafloorCavern_Room9_Movement_15DD36
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B486C, 4
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0841
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4897, 4
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0839
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B491F, 4
+ trainerbattle 3, TRAINER_SEAFLOOR_CAVERN_GRUNT_5, 0, SeafloorCavern_Room9_Text_1B49AE
+ msgbox SeafloorCavern_Room9_Text_1B49C1, 4
+ setweather 0
+ doweather
+ special 332
+ waitstate
+ msgbox SeafloorCavern_Room9_Text_1B4A5A, 4
+ special 284
+ waitstate
+ .ifdef SAPPHIRE
+ setvar RESULT, 1
+ .else
+ setvar RESULT, 0
+ .endif
+ playsfx 209
+ setanimation 0, 16
+ setanimation 1, 42
+ setanimation 2, 0
+ doanimation 54
+ checkanimation 54
+ .ifdef SAPPHIRE
+ setvar RESULT, 0
+ .else
+ setvar RESULT, 1
+ .endif
+ fanfare 388
+ playsfx 107
+ special 281
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0841
+ move 255, SeafloorCavern_Room9_Movement_1A0841
+ waitmove 0
+ pause 150
+ disappear 7
+ reappear 1
+ waitstate
+ pause 60
+ move 1, SeafloorCavern_Room9_Movement_15DD4C
+ waitmove 0
+ special 282
+ waitstate
+ setvar 0x8004, 1
+ setvar 0x8005, 1
+ special 310
+ waitstate
+ move 1, SeafloorCavern_Room9_Movement_15DD57
+ waitmove 0
+ disappear 1
+ pause 4
+ setvar 0x8004, 2
+ setvar 0x8005, 2
+ special 310
+ waitstate
+ pause 30
+ setvar 0x8004, 2
+ setvar 0x8005, 3
+ setvar 0x8006, 4
+ setvar 0x8007, 5
+ msgbox SeafloorCavern_Room9_Text_1B4A89, 4
+ playsfx 2
+ move 255, SeafloorCavern_Room9_Movement_1A083F
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4ADB, 4
+ closebutton
+ move 0x8004, SeafloorCavern_Room9_Movement_15DD41
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4B11, 4
+ closebutton
+ playsfx 3
+ pause 20
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0845
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4C79, 4
+ closebutton
+ reappear 0x8005
+ reappear 0x8006
+ reappear 0x8007
+ move 0x8007, SeafloorCavern_Room9_Movement_15DD63
+ move 0x8006, SeafloorCavern_Room9_Movement_15DD63
+ move 0x8005, SeafloorCavern_Room9_Movement_15DD5A
+ waitmove 0
+ move 0x8004, SeafloorCavern_Room9_Movement_1A083F
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4D02, 4
+ playsfx 21
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0833
+ waitmove 0
+ move 0x8004, SeafloorCavern_Room9_Movement_1A0835
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4DD3, 4
+ msgbox SeafloorCavern_Room9_Text_1B4E37, 4
+ closebutton
+ move 0x8005, SeafloorCavern_Room9_Movement_15DD60
+ move 0x8004, SeafloorCavern_Room9_Movement_15DD46
+ waitmove 0
+ msgbox SeafloorCavern_Room9_Text_1B4ECA, 4
+ setvar 0x407b, 1
+ clearflag 855
+ clearflag 856
+ clearflag 816
+ clearflag 973
+ setvar 0x405e, 1
+ clearflag 944
+ clearflag 945
+ setflag 2090
+ setflag 854
+ setflag 129
+ setflag 967
+ setvar 0x40c6, 1
+ setvar 0x40a2, 1
+ setflag 828
+ setflag 829
+ setflag 831
+ setflag 859
+ setflag 946
+ warp Route128, 255, 38, 22
+ waitstate
+ releaseall
+ end
+
+SeafloorCavern_Room9_Movement_15DD36:: @ 815DD36
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+ .incbin "baserom.gba", 0x15dd3e, 0x3
+
+SeafloorCavern_Room9_Movement_15DD41:: @ 815DD41
+ step_left
+ step_14
+ step_end
+
+ .incbin "baserom.gba", 0x15dd44, 0x2
+
+SeafloorCavern_Room9_Movement_15DD46:: @ 815DD46
+ step_01
+ step_40
+ step_down
+ step_41
+ step_28
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD4C:: @ 815DD4C
+ step_14
+ step_14
+ slow_step_down
+ step_14
+ step_14
+ step_14
+ slow_step_down
+ step_14
+ step_14
+ step_14
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD57:: @ 815DD57
+ step_32
+ step_32
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD5A:: @ 815DD5A
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD60:: @ 815DD60
+ step_right
+ step_right
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD63:: @ 815DD63
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+SeafloorCavern_Room9_Movement_15DD68:: @ 815DD68
+ step_14
+ step_14
+ step_end
+
diff --git a/data/scripts/maps/SealedChamber_InnerRoom.s b/data/scripts/maps/SealedChamber_InnerRoom.s
new file mode 100644
index 000000000..42a6bfce7
--- /dev/null
+++ b/data/scripts/maps/SealedChamber_InnerRoom.s
@@ -0,0 +1,89 @@
+SealedChamber_InnerRoom_MapScripts:: @ 815F1E7
+ .byte 0
+
+SealedChamber_InnerRoom_EventScript_15F1E8:: @ 815F1E8
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C53C1
+ waitbutton
+ hidebox 0, 0, 29, 19
+ checkflag 228
+ jumpeq SealedChamber_InnerRoom_EventScript_15F247
+ specialval RESULT, 279
+ compare RESULT, 0
+ jumpeq SealedChamber_InnerRoom_EventScript_15F247
+ fadeout 0
+ playsfx 49
+ special 305
+ waitstate
+ pause 40
+ special 315
+ waitstate
+ playsfx 8
+ pause 40
+ special 315
+ waitstate
+ playsfx 8
+ pause 40
+ special 315
+ waitstate
+ playsfx 8
+ pause 40
+ msgbox SealedChamber_InnerRoom_Text_1A138B, 4
+ closebutton
+ fadein 0
+ setflag 228
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F247:: @ 815F247
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F249:: @ 815F249
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C53F2
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F257:: @ 815F257
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C5414
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F265:: @ 815F265
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C5435
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F273:: @ 815F273
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C545C
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F281:: @ 815F281
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C5470
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_InnerRoom_EventScript_15F28F:: @ 815F28F
+ lockall
+ braillemsg SealedChamber_InnerRoom_Braille_1C549B
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/SealedChamber_OuterRoom.s b/data/scripts/maps/SealedChamber_OuterRoom.s
new file mode 100644
index 000000000..ed7a5b6bd
--- /dev/null
+++ b/data/scripts/maps/SealedChamber_OuterRoom.s
@@ -0,0 +1,132 @@
+SealedChamber_OuterRoom_MapScripts:: @ 815F0C6
+ map_script 5, SealedChamber_OuterRoom_MapScript1_15F0D6
+ map_script 3, SealedChamber_OuterRoom_MapScript1_15F0E7
+ map_script 1, SealedChamber_OuterRoom_MapScript1_15F0EB
+ .byte 0
+
+SealedChamber_OuterRoom_MapScript1_15F0D6:: @ 815F0D6
+ warp4 Underwater_SealedChamber, 255, 12, 44
+ warp6 Underwater_SealedChamber, 255, 12, 44
+ end
+
+SealedChamber_OuterRoom_MapScript1_15F0E7:: @ 815F0E7
+ setflag 2140
+ end
+
+SealedChamber_OuterRoom_MapScript1_15F0EB:: @ 815F0EB
+ checkflag 2127
+ callif 0, SealedChamber_OuterRoom_EventScript_15F0F5
+ end
+
+SealedChamber_OuterRoom_EventScript_15F0F5:: @ 815F0F5
+ setmaptile 9, 1, 553, 1
+ setmaptile 10, 1, 553, 1
+ setmaptile 11, 1, 553, 1
+ setmaptile 9, 2, 565, 1
+ setmaptile 10, 2, 565, 1
+ setmaptile 11, 2, 565, 1
+ return
+
+SealedChamber_OuterRoom_EventScript_15F12C:: @ 815F12C
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C534F
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F13A:: @ 815F13A
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C5359
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F148:: @ 815F148
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C5363
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F156:: @ 815F156
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C536D
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F164:: @ 815F164
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C5377
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F172:: @ 815F172
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C5381
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F180:: @ 815F180
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C538B
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F18E:: @ 815F18E
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C5396
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F19C:: @ 815F19C
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C539E
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F1AA:: @ 815F1AA
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C53A9
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F1B8:: @ 815F1B8
+ lockall
+ checkflag 2127
+ jumpeq SealedChamber_OuterRoom_EventScript_15F1CF
+ braillemsg SealedChamber_OuterRoom_Braille_1C53B1
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F1CF:: @ 815F1CF
+ msgbox SealedChamber_OuterRoom_Text_1A13BE, 4
+ releaseall
+ end
+
+SealedChamber_OuterRoom_EventScript_15F1D9:: @ 815F1D9
+ lockall
+ braillemsg SealedChamber_OuterRoom_Braille_1C53B1
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/SecretBase_BlueCave1.s b/data/scripts/maps/SecretBase_BlueCave1.s
new file mode 100644
index 000000000..bca6bee55
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BlueCave1.s
@@ -0,0 +1 @@
+SecretBase_BlueCave1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BlueCave2.s b/data/scripts/maps/SecretBase_BlueCave2.s
new file mode 100644
index 000000000..4fc579fb9
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BlueCave2.s
@@ -0,0 +1 @@
+SecretBase_BlueCave2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BlueCave3.s b/data/scripts/maps/SecretBase_BlueCave3.s
new file mode 100644
index 000000000..0a8199f19
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BlueCave3.s
@@ -0,0 +1 @@
+SecretBase_BlueCave3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BlueCave4.s b/data/scripts/maps/SecretBase_BlueCave4.s
new file mode 100644
index 000000000..72c1e9612
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BlueCave4.s
@@ -0,0 +1 @@
+SecretBase_BlueCave4_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BrownCave1.s b/data/scripts/maps/SecretBase_BrownCave1.s
new file mode 100644
index 000000000..ddbf182e4
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BrownCave1.s
@@ -0,0 +1 @@
+SecretBase_BrownCave1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BrownCave2.s b/data/scripts/maps/SecretBase_BrownCave2.s
new file mode 100644
index 000000000..06dcb6335
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BrownCave2.s
@@ -0,0 +1 @@
+SecretBase_BrownCave2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BrownCave3.s b/data/scripts/maps/SecretBase_BrownCave3.s
new file mode 100644
index 000000000..a0a85dc11
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BrownCave3.s
@@ -0,0 +1 @@
+SecretBase_BrownCave3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_BrownCave4.s b/data/scripts/maps/SecretBase_BrownCave4.s
new file mode 100644
index 000000000..12d931e9e
--- /dev/null
+++ b/data/scripts/maps/SecretBase_BrownCave4.s
@@ -0,0 +1 @@
+SecretBase_BrownCave4_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_RedCave1.s b/data/scripts/maps/SecretBase_RedCave1.s
new file mode 100644
index 000000000..77b99daec
--- /dev/null
+++ b/data/scripts/maps/SecretBase_RedCave1.s
@@ -0,0 +1 @@
+SecretBase_RedCave1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_RedCave2.s b/data/scripts/maps/SecretBase_RedCave2.s
new file mode 100644
index 000000000..735d386fc
--- /dev/null
+++ b/data/scripts/maps/SecretBase_RedCave2.s
@@ -0,0 +1 @@
+SecretBase_RedCave2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_RedCave3.s b/data/scripts/maps/SecretBase_RedCave3.s
new file mode 100644
index 000000000..c9b72ca30
--- /dev/null
+++ b/data/scripts/maps/SecretBase_RedCave3.s
@@ -0,0 +1 @@
+SecretBase_RedCave3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_RedCave4.s b/data/scripts/maps/SecretBase_RedCave4.s
new file mode 100644
index 000000000..6d2402f03
--- /dev/null
+++ b/data/scripts/maps/SecretBase_RedCave4.s
@@ -0,0 +1 @@
+SecretBase_RedCave4_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Shrub1.s b/data/scripts/maps/SecretBase_Shrub1.s
new file mode 100644
index 000000000..79116a0cf
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Shrub1.s
@@ -0,0 +1 @@
+SecretBase_Shrub1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Shrub2.s b/data/scripts/maps/SecretBase_Shrub2.s
new file mode 100644
index 000000000..49835f7f3
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Shrub2.s
@@ -0,0 +1 @@
+SecretBase_Shrub2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Shrub3.s b/data/scripts/maps/SecretBase_Shrub3.s
new file mode 100644
index 000000000..0aeb7bdf9
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Shrub3.s
@@ -0,0 +1 @@
+SecretBase_Shrub3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Shrub4.s b/data/scripts/maps/SecretBase_Shrub4.s
new file mode 100644
index 000000000..f131b308d
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Shrub4.s
@@ -0,0 +1 @@
+SecretBase_Shrub4_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Tree1.s b/data/scripts/maps/SecretBase_Tree1.s
new file mode 100644
index 000000000..7345c3bbb
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Tree1.s
@@ -0,0 +1 @@
+SecretBase_Tree1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Tree2.s b/data/scripts/maps/SecretBase_Tree2.s
new file mode 100644
index 000000000..0f2976a8c
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Tree2.s
@@ -0,0 +1 @@
+SecretBase_Tree2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Tree3.s b/data/scripts/maps/SecretBase_Tree3.s
new file mode 100644
index 000000000..cb80b0d25
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Tree3.s
@@ -0,0 +1 @@
+SecretBase_Tree3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_Tree4.s b/data/scripts/maps/SecretBase_Tree4.s
new file mode 100644
index 000000000..0a6771740
--- /dev/null
+++ b/data/scripts/maps/SecretBase_Tree4.s
@@ -0,0 +1 @@
+SecretBase_Tree4_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_YellowCave1.s b/data/scripts/maps/SecretBase_YellowCave1.s
new file mode 100644
index 000000000..b76a5f44e
--- /dev/null
+++ b/data/scripts/maps/SecretBase_YellowCave1.s
@@ -0,0 +1 @@
+SecretBase_YellowCave1_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_YellowCave2.s b/data/scripts/maps/SecretBase_YellowCave2.s
new file mode 100644
index 000000000..0bc1fc354
--- /dev/null
+++ b/data/scripts/maps/SecretBase_YellowCave2.s
@@ -0,0 +1 @@
+SecretBase_YellowCave2_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_YellowCave3.s b/data/scripts/maps/SecretBase_YellowCave3.s
new file mode 100644
index 000000000..137f04316
--- /dev/null
+++ b/data/scripts/maps/SecretBase_YellowCave3.s
@@ -0,0 +1 @@
+SecretBase_YellowCave3_MapScripts:: @ 815F337
diff --git a/data/scripts/maps/SecretBase_YellowCave4.s b/data/scripts/maps/SecretBase_YellowCave4.s
new file mode 100644
index 000000000..7f6ba9644
--- /dev/null
+++ b/data/scripts/maps/SecretBase_YellowCave4.s
@@ -0,0 +1,24 @@
+SecretBase_YellowCave4_MapScripts:: @ 815F337
+ map_script 4, SecretBase_RedCave1_MapScript2_15F358
+ map_script 3, SecretBase_RedCave1_MapScript1_15F34F
+ map_script 2, SecretBase_RedCave1_MapScript2_15F362
+ map_script 5, SecretBase_RedCave1_MapScript1_15F34C
+ .byte 0
+
+SecretBase_RedCave1_MapScript1_15F34C:: @ 815F34C
+ tileeffect 6
+ end
+
+SecretBase_RedCave1_MapScript1_15F34F:: @ 815F34F
+ call SecretBase_RedCave1_EventScript_1A2F3D
+ special 22
+ end
+
+SecretBase_RedCave1_MapScript2_15F358:: @ 815F358
+ map_script_2 0x4089, 0, SecretBase_RedCave1_EventScript_1A2F68
+ .2byte 0
+
+SecretBase_RedCave1_MapScript2_15F362:: @ 815F362
+ map_script_2 0x4097, 0, SecretBase_RedCave1_EventScript_1A2DDE
+ .2byte 0
+
diff --git a/data/scripts/maps/ShoalCave_HighTideEntranceRoom.s b/data/scripts/maps/ShoalCave_HighTideEntranceRoom.s
new file mode 100644
index 000000000..7e9c3cea2
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_HighTideEntranceRoom.s
@@ -0,0 +1,3 @@
+ShoalCave_HighTideEntranceRoom_MapScripts:: @ 815E488
+ .byte 0
+
diff --git a/data/scripts/maps/ShoalCave_HighTideInnerRoom.s b/data/scripts/maps/ShoalCave_HighTideInnerRoom.s
new file mode 100644
index 000000000..ed506a50e
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_HighTideInnerRoom.s
@@ -0,0 +1,3 @@
+ShoalCave_HighTideInnerRoom_MapScripts:: @ 815E489
+ .byte 0
+
diff --git a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.s b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.s
new file mode 100644
index 000000000..f44c79dfe
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.s
@@ -0,0 +1,103 @@
+ShoalCave_LowTideEntranceRoom_MapScripts:: @ 815E057
+ map_script 3, ShoalCave_LowTideEntranceRoom_MapScript1_15E05D
+ .byte 0
+
+ShoalCave_LowTideEntranceRoom_MapScript1_15E05D:: @ 815E05D
+ special 210
+ checkflag 2106
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E06E
+ jump ShoalCave_LowTideEntranceRoom_EventScript_15E072
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E06E:: @ 815E06E
+ setmapfooter 169
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E072:: @ 815E072
+ setmapfooter 165
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E076:: @ 815E076
+ lock
+ faceplayer
+ checkdailyflags
+ checkflag 2143
+ callif 1, ShoalCave_LowTideEntranceRoom_EventScript_15E176
+ checkitem ITEM_SHOAL_SALT, 4
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E138
+ checkitem ITEM_SHOAL_SHELL, 4
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E138
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C6793, 5
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E16C
+ checkitemspace ITEM_SHELL_BELL, 1
+ compare RESULT, 0
+ callif 1, ShoalCave_LowTideEntranceRoom_EventScript_15E106
+ compare RESULT, 2
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E12E
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C6808, 4
+ removeitem ITEM_SHOAL_SALT, 4
+ removeitem ITEM_SHOAL_SHELL, 4
+ giveitem ITEM_SHELL_BELL
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_1A029B
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C688E, 4
+ setflag 2
+ release
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E106:: @ 815E106
+ checkitem ITEM_SHOAL_SALT, 5
+ compare RESULT, 1
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E117
+ return
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E117:: @ 815E117
+ checkitem ITEM_SHOAL_SHELL, 5
+ compare RESULT, 1
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E128
+ return
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E128:: @ 815E128
+ setvar RESULT, 2
+ return
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E12E:: @ 815E12E
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C69F5, 4
+ release
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E138:: @ 815E138
+ checkitem ITEM_SHOAL_SALT, 1
+ compare RESULT, 1
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E162
+ checkitem ITEM_SHOAL_SHELL, 1
+ compare RESULT, 1
+ jumpeq ShoalCave_LowTideEntranceRoom_EventScript_15E162
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C6668, 4
+ release
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E162:: @ 815E162
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C670D, 4
+ release
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E16C:: @ 815E16C
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C6944, 4
+ release
+ end
+
+ShoalCave_LowTideEntranceRoom_EventScript_15E176:: @ 815E176
+ clearflag 952
+ clearflag 953
+ clearflag 954
+ clearflag 955
+ clearflag 956
+ clearflag 957
+ clearflag 958
+ clearflag 959
+ clearflag 2143
+ return
+
diff --git a/data/scripts/maps/ShoalCave_LowTideIceRoom.s b/data/scripts/maps/ShoalCave_LowTideIceRoom.s
new file mode 100644
index 000000000..1290d6efd
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_LowTideIceRoom.s
@@ -0,0 +1,3 @@
+ShoalCave_LowTideIceRoom_MapScripts:: @ 815F300
+ .byte 0
+
diff --git a/data/scripts/maps/ShoalCave_LowTideInnerRoom.s b/data/scripts/maps/ShoalCave_LowTideInnerRoom.s
new file mode 100644
index 000000000..d00193e42
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_LowTideInnerRoom.s
@@ -0,0 +1,158 @@
+ShoalCave_LowTideInnerRoom_MapScripts:: @ 815E192
+ map_script 1, ShoalCave_LowTideInnerRoom_MapScript1_15E1B3
+ map_script 3, ShoalCave_LowTideInnerRoom_MapScript1_15E19D
+ .byte 0
+
+ShoalCave_LowTideInnerRoom_MapScript1_15E19D:: @ 815E19D
+ checkflag 2106
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E1AB
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E1AF
+
+ShoalCave_LowTideInnerRoom_EventScript_15E1AB:: @ 815E1AB
+ setmapfooter 170
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E1AF:: @ 815E1AF
+ setmapfooter 166
+ end
+
+ShoalCave_LowTideInnerRoom_MapScript1_15E1B3:: @ 815E1B3
+ call ShoalCave_LowTideInnerRoom_EventScript_15E1B9
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E1B9:: @ 815E1B9
+ checkflag 952
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
+ checkflag 2106
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
+ setmaptile 31, 8, 856, 1
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E1DA
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E1DA:: @ 815E1DA
+ checkflag 953
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
+ checkflag 2106
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
+ setmaptile 14, 26, 856, 1
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E1FB
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E1FB:: @ 815E1FB
+ checkflag 956
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E213
+ setmaptile 41, 20, 857, 1
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E213
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E213:: @ 815E213
+ checkflag 957
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E22B
+ setmaptile 41, 10, 857, 1
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E22B
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E22B:: @ 815E22B
+ checkflag 958
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E243
+ setmaptile 6, 9, 857, 1
+ jump ShoalCave_LowTideInnerRoom_EventScript_15E243
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E243:: @ 815E243
+ checkflag 959
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E256
+ setmaptile 16, 13, 857, 1
+ return
+
+ShoalCave_LowTideInnerRoom_EventScript_15E256:: @ 815E256
+ return
+
+ShoalCave_LowTideInnerRoom_EventScript_15E257:: @ 815E257
+ lockall
+ checkflag 956
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ giveitem ITEM_SHOAL_SHELL
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 41, 20, 859, 0
+ special 142
+ setflag 956
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E289:: @ 815E289
+ msgbox ShoalCave_LowTideInnerRoom_Text_1C69B8, 4
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E293:: @ 815E293
+ lockall
+ checkflag 957
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ giveitem ITEM_SHOAL_SHELL
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 41, 10, 859, 0
+ special 142
+ setflag 957
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E2C5:: @ 815E2C5
+ lockall
+ checkflag 958
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ giveitem ITEM_SHOAL_SHELL
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 6, 9, 859, 0
+ special 142
+ setflag 958
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E2F7:: @ 815E2F7
+ lockall
+ checkflag 959
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ giveitem ITEM_SHOAL_SHELL
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 16, 13, 859, 0
+ special 142
+ setflag 959
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E329:: @ 815E329
+ lockall
+ checkflag 952
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E35B
+ giveitem ITEM_SHOAL_SALT
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 31, 8, 858, 0
+ special 142
+ setflag 952
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E35B:: @ 815E35B
+ msgbox ShoalCave_LowTideInnerRoom_Text_1C6979, 4
+ releaseall
+ end
+
+ShoalCave_LowTideInnerRoom_EventScript_15E365:: @ 815E365
+ lockall
+ checkflag 953
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_15E35B
+ giveitem ITEM_SHOAL_SALT
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideInnerRoom_EventScript_1A029B
+ setmaptile 14, 26, 858, 0
+ special 142
+ setflag 953
+ releaseall
+ end
+
diff --git a/data/scripts/maps/ShoalCave_LowTideLowerRoom.s b/data/scripts/maps/ShoalCave_LowTideLowerRoom.s
new file mode 100644
index 000000000..4ffed780e
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_LowTideLowerRoom.s
@@ -0,0 +1,53 @@
+ShoalCave_LowTideLowerRoom_MapScripts:: @ 815E3F3
+ map_script 1, ShoalCave_LowTideLowerRoom_MapScript1_15E3F9
+ .byte 0
+
+ShoalCave_LowTideLowerRoom_MapScript1_15E3F9:: @ 815E3F9
+ call ShoalCave_LowTideLowerRoom_EventScript_15E3FF
+ end
+
+ShoalCave_LowTideLowerRoom_EventScript_15E3FF:: @ 815E3FF
+ checkflag 955
+ jumpeq ShoalCave_LowTideLowerRoom_EventScript_15E412
+ setmaptile 18, 2, 856, 1
+ return
+
+ShoalCave_LowTideLowerRoom_EventScript_15E412:: @ 815E412
+ return
+
+ShoalCave_LowTideLowerRoom_EventScript_15E413:: @ 815E413
+ lockall
+ checkflag 955
+ jumpeq ShoalCave_LowTideLowerRoom_EventScript_15E445
+ giveitem ITEM_SHOAL_SALT
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideLowerRoom_EventScript_1A029B
+ setmaptile 18, 2, 858, 0
+ special 142
+ setflag 955
+ releaseall
+ end
+
+ShoalCave_LowTideLowerRoom_EventScript_15E445:: @ 815E445
+ msgbox ShoalCave_LowTideLowerRoom_Text_1C6979, 4
+ releaseall
+ end
+
+ShoalCave_LowTideLowerRoom_EventScript_15E44F:: @ 815E44F
+ lock
+ faceplayer
+ checkflag 283
+ jumpeq ShoalCave_LowTideLowerRoom_EventScript_15E47E
+ msgbox ShoalCave_LowTideLowerRoom_Text_198200, 4
+ giveitem ITEM_FOCUS_BAND
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideLowerRoom_EventScript_1A029B
+ setflag 283
+ release
+ end
+
+ShoalCave_LowTideLowerRoom_EventScript_15E47E:: @ 815E47E
+ msgbox ShoalCave_LowTideLowerRoom_Text_1982A2, 4
+ release
+ end
+
diff --git a/data/scripts/maps/ShoalCave_LowTideStairsRoom.s b/data/scripts/maps/ShoalCave_LowTideStairsRoom.s
new file mode 100644
index 000000000..bf660eaa4
--- /dev/null
+++ b/data/scripts/maps/ShoalCave_LowTideStairsRoom.s
@@ -0,0 +1,35 @@
+ShoalCave_LowTideStairsRoom_MapScripts:: @ 815E397
+ map_script 1, ShoalCave_LowTideStairsRoom_MapScript1_15E39D
+ .byte 0
+
+ShoalCave_LowTideStairsRoom_MapScript1_15E39D:: @ 815E39D
+ call ShoalCave_LowTideStairsRoom_EventScript_15E3A3
+ end
+
+ShoalCave_LowTideStairsRoom_EventScript_15E3A3:: @ 815E3A3
+ checkflag 954
+ jumpeq ShoalCave_LowTideStairsRoom_EventScript_15E3B6
+ setmaptile 11, 11, 856, 1
+ return
+
+ShoalCave_LowTideStairsRoom_EventScript_15E3B6:: @ 815E3B6
+ return
+
+ShoalCave_LowTideStairsRoom_EventScript_15E3B7:: @ 815E3B7
+ lockall
+ checkflag 954
+ jumpeq ShoalCave_LowTideStairsRoom_EventScript_15E3E9
+ giveitem ITEM_SHOAL_SALT
+ compare RESULT, 0
+ jumpeq ShoalCave_LowTideStairsRoom_EventScript_1A029B
+ setmaptile 11, 11, 858, 0
+ special 142
+ setflag 954
+ releaseall
+ end
+
+ShoalCave_LowTideStairsRoom_EventScript_15E3E9:: @ 815E3E9
+ msgbox ShoalCave_LowTideStairsRoom_Text_1C6979, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/SingleBattleColosseum.s b/data/scripts/maps/SingleBattleColosseum.s
new file mode 100644
index 000000000..270e4b670
--- /dev/null
+++ b/data/scripts/maps/SingleBattleColosseum.s
@@ -0,0 +1,3 @@
+SingleBattleColosseum_MapScripts:: @ 815F57C
+ .byte 0
+
diff --git a/data/scripts/maps/SkyPillar_1F.s b/data/scripts/maps/SkyPillar_1F.s
new file mode 100644
index 000000000..6afcecf08
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_1F.s
@@ -0,0 +1,3 @@
+SkyPillar_1F_MapScripts:: @ 815F2C8
+ .byte 0
+
diff --git a/data/scripts/maps/SkyPillar_2F.s b/data/scripts/maps/SkyPillar_2F.s
new file mode 100644
index 000000000..7a473a795
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_2F.s
@@ -0,0 +1,11 @@
+SkyPillar_2F_MapScripts:: @ 815F2C9
+ map_script 2, SkyPillar_2F_MapScript2_1C6BB5
+ map_script 3, SkyPillar_2F_MapScript1_1C6BBF
+ map_script 5, SkyPillar_2F_MapScript1_15F2D9
+ .byte 0
+
+SkyPillar_2F_MapScript1_15F2D9:: @ 815F2D9
+ tileeffect 7
+ warp5 SkyPillar_1F, 255, 0, 0
+ end
+
diff --git a/data/scripts/maps/SkyPillar_3F.s b/data/scripts/maps/SkyPillar_3F.s
new file mode 100644
index 000000000..6b0afa4d0
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_3F.s
@@ -0,0 +1,3 @@
+SkyPillar_3F_MapScripts:: @ 815F2E4
+ .byte 0
+
diff --git a/data/scripts/maps/SkyPillar_4F.s b/data/scripts/maps/SkyPillar_4F.s
new file mode 100644
index 000000000..22128480c
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_4F.s
@@ -0,0 +1,11 @@
+SkyPillar_4F_MapScripts:: @ 815F2E5
+ map_script 2, SkyPillar_4F_MapScript2_1C6BB5
+ map_script 3, SkyPillar_4F_MapScript1_1C6BBF
+ map_script 5, SkyPillar_4F_MapScript1_15F2F5
+ .byte 0
+
+SkyPillar_4F_MapScript1_15F2F5:: @ 815F2F5
+ tileeffect 7
+ warp5 SkyPillar_3F, 255, 0, 0
+ end
+
diff --git a/data/scripts/maps/SkyPillar_5F.s b/data/scripts/maps/SkyPillar_5F.s
new file mode 100644
index 000000000..cf0e60ecb
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_5F.s
@@ -0,0 +1,3 @@
+SkyPillar_5F_MapScripts:: @ 815F301
+ .byte 0
+
diff --git a/data/scripts/maps/SkyPillar_Entrance.s b/data/scripts/maps/SkyPillar_Entrance.s
new file mode 100644
index 000000000..09eb538c9
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_Entrance.s
@@ -0,0 +1,8 @@
+SkyPillar_Entrance_MapScripts:: @ 815F2BD
+ map_script 3, SkyPillar_Entrance_MapScript1_15F2C3
+ .byte 0
+
+SkyPillar_Entrance_MapScript1_15F2C3:: @ 815F2C3
+ setflag 2142
+ end
+
diff --git a/data/scripts/maps/SkyPillar_Outside.s b/data/scripts/maps/SkyPillar_Outside.s
new file mode 100644
index 000000000..338593de7
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_Outside.s
@@ -0,0 +1,3 @@
+SkyPillar_Outside_MapScripts:: @ 815F2C7
+ .byte 0
+
diff --git a/data/scripts/maps/SkyPillar_Top.s b/data/scripts/maps/SkyPillar_Top.s
new file mode 100644
index 000000000..970725bf8
--- /dev/null
+++ b/data/scripts/maps/SkyPillar_Top.s
@@ -0,0 +1,29 @@
+SkyPillar_Top_MapScripts:: @ 815F302
+ map_script 5, SkyPillar_Top_MapScript1_15F308
+ .byte 0
+
+SkyPillar_Top_MapScript1_15F308:: @ 815F308
+ checkflag 2145
+ callif 1, SkyPillar_Top_EventScript_15F312
+ end
+
+SkyPillar_Top_EventScript_15F312:: @ 815F312
+ disappear LAST_TALKED
+ return
+
+SkyPillar_Top_EventScript_15F316:: @ 815F316
+ lock
+ faceplayer
+ setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE
+ checksound
+ pokecry SPECIES_RAYQUAZA, 2
+ pause 40
+ waitpokecry
+ setflag 773
+ setflag 2145
+ special 312
+ waitstate
+ clearflag 2145
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity.s b/data/scripts/maps/SlateportCity.s
new file mode 100644
index 000000000..47db3a3fa
--- /dev/null
+++ b/data/scripts/maps/SlateportCity.s
@@ -0,0 +1,616 @@
+SlateportCity_MapScripts:: @ 814BA36
+ map_script 3, SlateportCity_MapScript1_14BA3C
+ .byte 0
+
+SlateportCity_MapScript1_14BA3C:: @ 814BA3C
+ setvar 0x4010, 120
+ setvar 0x4011, 119
+ setvar 0x40aa, 0
+ call SlateportCity_EventScript_14BA5C
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BA68
+ end
+
+SlateportCity_EventScript_14BA5C:: @ 814BA5C
+ setflag 2071
+ setvar 0x4086, 0
+ setflag 803
+ return
+
+SlateportCity_EventScript_14BA68:: @ 814BA68
+ movespriteperm 11, 28, 13
+ movespriteperm 7, 25, 13
+ movespriteperm 3, 25, 14
+ movespriteperm 6, 27, 16
+ movespriteperm 8, 28, 16
+ movespriteperm 1, 29, 16
+ movespriteperm 2, 31, 14
+ spritebehave 11, 8
+ spritebehave 7, 18
+ spritebehave 3, 16
+ spritebehave 6, 7
+ spritebehave 8, 7
+ spritebehave 1, 7
+ spritebehave 2, 9
+ return
+
+SlateportCity_EventScript_14BAB6:: @ 814BAB6
+ lock
+ faceplayer
+ message SlateportCity_Text_164642
+ waittext
+ pokemart SlateportCity_Pokemart_14BAD0
+ msgbox SlateportCity_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x14bacd, 0x3
+
+SlateportCity_Pokemart_14BAD0:: @ 814BAD0
+ .2byte ITEM_PROTEIN
+ .2byte ITEM_IRON
+ .2byte ITEM_CARBOS
+ .2byte ITEM_ZINC
+ .2byte ITEM_CALCIUM
+ .2byte ITEM_HP_UP
+ .2byte ITEM_NONE
+ release
+ end
+
+SlateportCity_EventScript_14BAE0:: @ 814BAE0
+ lock
+ faceplayer
+ bufferfirstpoke 0
+ msgbox SlateportCity_Text_164682, 4
+ specialval RESULT, 292
+ compare RESULT, 1
+ callif 1, SlateportCity_EventScript_14BB35
+ specialval RESULT, 294
+ compare RESULT, 0
+ callif 1, SlateportCity_EventScript_14BB2B
+ msgbox SlateportCity_Text_164691, 4
+ fanfare 370
+ message SlateportCity_Text_1646DD
+ waitfanfare
+ waittext
+ msgbox SlateportCity_Text_1646FC, 4
+ special 293
+ release
+ end
+
+SlateportCity_EventScript_14BB2B:: @ 814BB2B
+ msgbox SlateportCity_Text_16471C, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB35:: @ 814BB35
+ msgbox SlateportCity_Text_164775, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB3F:: @ 814BB3F
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BB56
+ msgbox SlateportCity_Text_164814, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB56:: @ 814BB56
+ msgbox SlateportCity_Text_165376, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB60:: @ 814BB60
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BB77
+ msgbox SlateportCity_Text_1648A0, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB77:: @ 814BB77
+ msgbox SlateportCity_Text_165222, 4
+ release
+ end
+
+SlateportCity_EventScript_14BB81:: @ 814BB81
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BBA1
+ checkflag 96
+ jumpeq SlateportCity_EventScript_14BBAB
+ msgbox SlateportCity_Text_164937, 4
+ release
+ end
+
+SlateportCity_EventScript_14BBA1:: @ 814BBA1
+ msgbox SlateportCity_Text_1652A0, 4
+ release
+ end
+
+SlateportCity_EventScript_14BBAB:: @ 814BBAB
+ msgbox SlateportCity_Text_164995, 4
+ release
+ end
+
+SlateportCity_EventScript_14BBB5:: @ 814BBB5
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BBCC
+ msgbox SlateportCity_Text_164A30, 4
+ release
+ end
+
+SlateportCity_EventScript_14BBCC:: @ 814BBCC
+ msgbox SlateportCity_Text_16530A, 4
+ release
+ end
+
+SlateportCity_EventScript_14BBD6:: @ 814BBD6
+ compare 0x4058, 1
+ jumpeq SlateportCity_EventScript_14BBEA
+ msgbox SlateportCity_Text_164AA9, 2
+ end
+
+SlateportCity_EventScript_14BBEA:: @ 814BBEA
+ msgbox SlateportCity_Text_1653D1, 3
+ end
+
+SlateportCity_EventScript_14BBF3:: @ 814BBF3
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BC0A
+ msgbox SlateportCity_Text_164B34, 4
+ release
+ end
+
+SlateportCity_EventScript_14BC0A:: @ 814BC0A
+ msgbox SlateportCity_Text_1653F4, 4
+ release
+ end
+
+SlateportCity_EventScript_14BC14:: @ 814BC14
+ lock
+ faceplayer
+ checkflag 148
+ jumpeq SlateportCity_EventScript_14BC29
+ msgbox SlateportCity_Text_164BBF, 4
+ release
+ end
+
+SlateportCity_EventScript_14BC29:: @ 814BC29
+ msgbox SlateportCity_Text_164BEA, 4
+ release
+ end
+
+SlateportCity_EventScript_14BC33:: @ 814BC33
+ msgbox SlateportCity_Text_165856, 3
+ end
+
+SlateportCity_EventScript_14BC3C:: @ 814BC3C
+ lockall
+ checkflag 2052
+ jumpeq SlateportCity_EventScript_14BC63
+ checkflag 2061
+ jumpeq SlateportCity_EventScript_14BC59
+ msgbox SlateportCity_Text_1658A0, 4
+ releaseall
+ end
+
+SlateportCity_EventScript_14BC59:: @ 814BC59
+ msgbox SlateportCity_Text_1658E8, 4
+ releaseall
+ end
+
+SlateportCity_EventScript_14BC63:: @ 814BC63
+ msgbox SlateportCity_Text_165952, 4
+ releaseall
+ end
+
+SlateportCity_EventScript_14BC6D:: @ 814BC6D
+ msgbox SlateportCity_Text_1659B3, 3
+ end
+
+SlateportCity_EventScript_14BC76:: @ 814BC76
+ msgbox SlateportCity_Text_1659E3, 3
+ end
+
+SlateportCity_EventScript_14BC7F:: @ 814BC7F
+ msgbox SlateportCity_Text_165A17, 3
+ end
+
+SlateportCity_EventScript_14BC88:: @ 814BC88
+ msgbox SlateportCity_Text_165A57, 3
+ end
+
+SlateportCity_EventScript_14BC91:: @ 814BC91
+ lockall
+ checkflag 2052
+ jumpeq SlateportCity_EventScript_14BCA5
+ msgbox SlateportCity_Text_165A8B, 4
+ releaseall
+ end
+
+SlateportCity_EventScript_14BCA5:: @ 814BCA5
+ msgbox SlateportCity_Text_165B02, 4
+ releaseall
+ end
+
+SlateportCity_EventScript_14BCAF:: @ 814BCAF
+ msgbox SlateportCity_Text_165B48, 3
+ end
+
+SlateportCity_EventScript_14BCB8:: @ 814BCB8
+ lock
+ faceplayer
+ compare 0x4058, 1
+ callif 1, SlateportCity_EventScript_14BCCF
+ msgbox SlateportCity_Text_164F9E, 4
+ release
+ end
+
+SlateportCity_EventScript_14BCCF:: @ 814BCCF
+ msgbox SlateportCity_Text_164F9E, 4
+ release
+ end
+
+SlateportCity_EventScript_14BCD9:: @ 814BCD9
+ msgbox SlateportCity_Text_164FFC, 2
+ end
+
+SlateportCity_EventScript_14BCE2:: @ 814BCE2
+ msgbox SlateportCity_Text_164E85, 2
+ end
+
+SlateportCity_EventScript_14BCEB:: @ 814BCEB
+ msgbox SlateportCity_Text_164EDB, 2
+ end
+
+SlateportCity_EventScript_14BCF4:: @ 814BCF4
+ msgbox SlateportCity_Text_164F62, 2
+ end
+
+SlateportCity_EventScript_14BCFD:: @ 814BCFD
+ msgbox SlateportCity_Text_16507C, 2
+ end
+
+SlateportCity_EventScript_14BD06:: @ 814BD06
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_1650F1, 5
+ compare RESULT, 1
+ callif 1, SlateportCity_EventScript_14BD28
+ compare RESULT, 0
+ callif 1, SlateportCity_EventScript_14BD31
+ release
+ end
+
+SlateportCity_EventScript_14BD28:: @ 814BD28
+ msgbox SlateportCity_Text_16511E, 4
+ return
+
+SlateportCity_EventScript_14BD31:: @ 814BD31
+ msgbox SlateportCity_Text_1651A1, 4
+ return
+
+SlateportCity_EventScript_14BD3A:: @ 814BD3A
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164C64, 4
+ closebutton
+ move 5, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BD51:: @ 814BD51
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164C9F, 4
+ closebutton
+ move 19, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BD68:: @ 814BD68
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164CE8, 4
+ closebutton
+ move 20, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BD7F:: @ 814BD7F
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164D2B, 4
+ closebutton
+ move 27, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BD96:: @ 814BD96
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164D92, 4
+ closebutton
+ move 28, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BDAD:: @ 814BDAD
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164DD5, 4
+ closebutton
+ move 29, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BDC4:: @ 814BDC4
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164DF4, 4
+ closebutton
+ move 30, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BDDB:: @ 814BDDB
+ lock
+ faceplayer
+ msgbox SlateportCity_Text_164E46, 4
+ closebutton
+ move 31, SlateportCity_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_EventScript_14BDF2:: @ 814BDF2
+ lock
+ faceplayer
+ message SlateportCity_Text_1A0BE4
+ waittext
+ pokemartdecor SlateportCity_PokemartDecor_14BE0C
+ msgbox SlateportCity_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x14be09, 0x3
+
+SlateportCity_PokemartDecor_14BE0C:: @ 814BE0C
+ .2byte 95
+ .2byte 78
+ .2byte 96
+ .2byte 0
+ release
+ end
+
+SlateportCity_EventScript_14BE16:: @ 814BE16
+ msgbox SlateportCity_Text_1A116E, 4
+ release
+ end
+
+SlateportCity_EventScript_14BE20:: @ 814BE20
+ lock
+ faceplayer
+ checkflag 96
+ jumpif 0, SlateportCity_EventScript_14BE16
+ message SlateportCity_Text_1A0BE4
+ waittext
+ pokemartdecor SlateportCity_PokemartDecor_14BE40
+ msgbox SlateportCity_Text_1A0C02, 4
+ release
+ end
+
+SlateportCity_PokemartDecor_14BE40:: @ 814BE40
+ .2byte 25
+ .2byte 27
+ .2byte 26
+ .2byte 28
+ .2byte 29
+ .2byte 30
+ .2byte 51
+ .2byte 52
+ .2byte 53
+ .2byte 54
+ .2byte 55
+ .2byte 56
+ .2byte 57
+ .2byte 58
+ .2byte 0
+ release
+ end
+
+ .incbin "baserom.gba", 0x14be60, 0x3a
+
+SlateportCity_EventScript_14BE9A:: @ 814BE9A
+ lock
+ faceplayer
+ message SlateportCity_Text_1A0BE4
+ waittext
+ pokemart SlateportCity_Pokemart_14BEB4
+ msgbox SlateportCity_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x14beb1, 0x3
+
+SlateportCity_Pokemart_14BEB4:: @ 814BEB4
+ .2byte ITEM_TM10
+ .2byte ITEM_TM43
+ .2byte ITEM_NONE
+ release
+ end
+
+SlateportCity_EventScript_14BEBC:: @ 814BEBC
+ lockall
+ msgbox SlateportCity_Text_165498, 4
+ msgbox SlateportCity_Text_1654E0, 4
+ closebutton
+ move 10, SlateportCity_Movement_1A0843
+ waitmove 0
+ pause 10
+ move 9, SlateportCity_Movement_1A0845
+ waitmove 0
+ pause 25
+ move 11, SlateportCity_Movement_14C000
+ move 255, SlateportCity_Movement_14C00E
+ move 10, SlateportCity_Movement_14BFDD
+ move 9, SlateportCity_Movement_14BFEA
+ waitmove 0
+ disappear 10
+ disappear 9
+ msgbox SlateportCity_Text_16558D, 4
+ move 11, SlateportCity_Movement_1A0841
+ waitmove 0
+ msgbox SlateportCity_Text_1655E7, 4
+ playmusic 441, 0
+ msgbox SlateportCity_Text_1656BC, 4
+ move 6, SlateportCity_Movement_1A083F
+ move 1, SlateportCity_Movement_1A083F
+ move 7, SlateportCity_Movement_14BFCD
+ move 3, SlateportCity_Movement_1A0831
+ move 2, SlateportCity_Movement_14BFD5
+ waitmove 0
+ move 11, SlateportCity_Movement_1A0845
+ waitmove 0
+ msgbox SlateportCity_Text_16578F, 4
+ playsfx 21
+ move 11, SlateportCity_Movement_1A0833
+ waitmove 0
+ move 11, SlateportCity_Movement_1A0835
+ waitmove 0
+ msgbox SlateportCity_Text_1657FA, 4
+ move 11, SlateportCity_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_Text_16583A, 4
+ closebutton
+ move 11, SlateportCity_Movement_14BFFB
+ move 255, SlateportCity_Movement_14C008
+ waitmove 0
+ disappear 11
+ clearflag 841
+ clearflag 848
+ clearflag 845
+ clearflag 846
+ setvar 0x4058, 2
+ warp SlateportCity_Harbor, 255, 11, 14
+ waitstate
+ releaseall
+ end
+
+SlateportCity_Movement_14BFCD:: @ 814BFCD
+ step_14
+ step_14
+ step_57
+ step_28
+ step_14
+ step_14
+ step_27
+ step_end
+
+SlateportCity_Movement_14BFD5:: @ 814BFD5
+ step_57
+ step_26
+ step_14
+ step_25
+ step_14
+ step_14
+ step_27
+ step_end
+
+SlateportCity_Movement_14BFDD:: @ 814BFDD
+ step_14
+ step_left
+ step_left
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+SlateportCity_Movement_14BFEA:: @ 814BFEA
+ step_down
+ step_left
+ step_left
+ step_left
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+ .incbin "baserom.gba", 0x14bff8, 0x3
+
+SlateportCity_Movement_14BFFB:: @ 814BFFB
+ step_right
+ step_up
+ step_up
+ step_54
+ step_end
+
+SlateportCity_Movement_14C000:: @ 814C000
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_down
+ step_left
+ step_end
+
+SlateportCity_Movement_14C008:: @ 814C008
+ step_28
+ step_14
+ step_14
+ step_right
+ step_up
+ step_end
+
+SlateportCity_Movement_14C00E:: @ 814C00E
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_25
+ step_end
+
+SlateportCity_EventScript_14C017:: @ 814C017
+ msgbox SlateportCity_Text_165425, 3
+ end
+
+SlateportCity_EventScript_14C020:: @ 814C020
+ msgbox SlateportCity_Text_165458, 3
+ end
+
+SlateportCity_EventScript_14C029:: @ 814C029
+ msgbox SlateportCity_Text_1647A7, 2
+ end
+
diff --git a/data/scripts/maps/SlateportCity_ContestHall.s b/data/scripts/maps/SlateportCity_ContestHall.s
new file mode 100644
index 000000000..2e33c1ec5
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_ContestHall.s
@@ -0,0 +1,114 @@
+SlateportCity_ContestHall_MapScripts:: @ 815554B
+ .byte 0
+
+SlateportCity_ContestHall_EventScript_15554C:: @ 815554C
+ msgbox SlateportCity_ContestHall_Text_17CB71, 2
+ end
+
+SlateportCity_ContestHall_EventScript_155555:: @ 8155555
+ msgbox SlateportCity_ContestHall_Text_17CC80, 2
+ end
+
+SlateportCity_ContestHall_EventScript_15555E:: @ 815555E
+ lock
+ faceplayer
+ checkflag 265
+ jumpeq SlateportCity_ContestHall_EventScript_155595
+ msgbox SlateportCity_ContestHall_Text_17CCE2, 4
+ giveitem ITEM_TM41
+ compare RESULT, 0
+ jumpeq SlateportCity_ContestHall_EventScript_1A029B
+ setflag 265
+ msgbox SlateportCity_ContestHall_Text_17CE28, 4
+ release
+ end
+
+SlateportCity_ContestHall_EventScript_155595:: @ 8155595
+ msgbox SlateportCity_ContestHall_Text_17CE28, 4
+ release
+ end
+
+SlateportCity_ContestHall_EventScript_15559F:: @ 815559F
+ msgbox SlateportCity_ContestHall_Text_17CEF3, 2
+ lockall
+ move 3, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_1555B4:: @ 81555B4
+ msgbox SlateportCity_ContestHall_Text_17CFA7, 2
+ lockall
+ move 4, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_1555C9:: @ 81555C9
+ msgbox SlateportCity_ContestHall_Text_17D054, 2
+ lockall
+ move 5, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_1555DE:: @ 81555DE
+ msgbox SlateportCity_ContestHall_Text_17D07F, 2
+ lockall
+ move 6, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_1555F3:: @ 81555F3
+ msgbox SlateportCity_ContestHall_Text_17D0F9, 2
+ lockall
+ move 7, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_155608:: @ 8155608
+ msgbox SlateportCity_ContestHall_Text_17D222, 2
+ lockall
+ move 8, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_15561D:: @ 815561D
+ msgbox SlateportCity_ContestHall_Text_17D39A, 2
+ lockall
+ move 9, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_155632:: @ 8155632
+ msgbox SlateportCity_ContestHall_Text_17D3F0, 2
+ lockall
+ move 10, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_155647:: @ 8155647
+ msgbox SlateportCity_ContestHall_Text_17D300, 2
+ lockall
+ move 12, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_15565C:: @ 815565C
+ msgbox SlateportCity_ContestHall_Text_17D27F, 2
+ lockall
+ move 11, SlateportCity_ContestHall_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_ContestHall_EventScript_155671:: @ 8155671
+ msgbox SlateportCity_ContestHall_Text_17D447, 3
+ end
+
diff --git a/data/scripts/maps/SlateportCity_ContestLobby.s b/data/scripts/maps/SlateportCity_ContestLobby.s
new file mode 100644
index 000000000..871f95f33
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_ContestLobby.s
@@ -0,0 +1,130 @@
+SlateportCity_ContestLobby_MapScripts:: @ 8155411
+ map_script 3, SlateportCity_ContestLobby_MapScript1_155417
+ .byte 0
+
+SlateportCity_ContestLobby_MapScript1_155417:: @ 8155417
+ call SlateportCity_ContestLobby_EventScript_1AE188
+ end
+
+SlateportCity_ContestLobby_EventScript_15541D:: @ 815541D
+ setvar 0x800b, 7
+ setvar 0x8010, 2
+ call SlateportCity_ContestLobby_EventScript_1A4E92
+ call SlateportCity_ContestLobby_EventScript_155448
+ special 83
+ call SlateportCity_ContestLobby_EventScript_15FBDB
+ setvar 0x4088, 3
+ warp LinkContestRoom1, 255, 7, 5
+ waitstate
+ end
+
+SlateportCity_ContestLobby_EventScript_155448:: @ 8155448
+ lockall
+ move 1, SlateportCity_ContestLobby_Movement_1554CC
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 545, 1
+ setmaptile 4, 3, 609, 1
+ special 142
+ move 1, SlateportCity_ContestLobby_Movement_1554CF
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 721, 1
+ setmaptile 4, 3, 729, 1
+ special 142
+ pause 20
+ move 1, SlateportCity_ContestLobby_Movement_1554DC
+ waitmove 0
+ move 255, SlateportCity_ContestLobby_Movement_1554CA
+ waitmove 0
+ msgbox SlateportCity_ContestLobby_Text_1A6832, 4
+ closebutton
+ move 1, SlateportCity_ContestLobby_Movement_1554D3
+ move 255, SlateportCity_ContestLobby_Movement_1554C0
+ waitmove 0
+ releaseall
+ return
+
+SlateportCity_ContestLobby_Movement_1554C0:: @ 81554C0
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+SlateportCity_ContestLobby_Movement_1554CA:: @ 81554CA
+ step_27
+ step_end
+
+SlateportCity_ContestLobby_Movement_1554CC:: @ 81554CC
+ step_left
+ step_25
+ step_end
+
+SlateportCity_ContestLobby_Movement_1554CF:: @ 81554CF
+ step_down
+ step_down
+ step_26
+ step_end
+
+SlateportCity_ContestLobby_Movement_1554D3:: @ 81554D3
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+SlateportCity_ContestLobby_Movement_1554DC:: @ 81554DC
+ step_28
+ step_end
+
+SlateportCity_ContestLobby_EventScript_1554DE:: @ 81554DE
+ msgbox SlateportCity_ContestLobby_Text_17C937, 2
+ end
+
+SlateportCity_ContestLobby_EventScript_1554E7:: @ 81554E7
+ msgbox SlateportCity_ContestLobby_Text_17C9D5, 2
+ end
+
+SlateportCity_ContestLobby_EventScript_1554F0:: @ 81554F0
+ msgbox SlateportCity_ContestLobby_Text_17CAEC, 2
+ end
+
+SlateportCity_ContestLobby_EventScript_1554F9:: @ 81554F9
+ lockall
+ checkflag 95
+ jumpeq SlateportCity_ContestLobby_EventScript_155526
+ move 7, SlateportCity_ContestLobby_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_ContestLobby_Text_17CA67, 4
+ giveitem ITEM_POKEBLOCK_CASE
+ setflag 95
+ releaseall
+ end
+
+SlateportCity_ContestLobby_EventScript_155526:: @ 8155526
+ msgbox SlateportCity_ContestLobby_Text_17CA88, 2
+ end
+
+SlateportCity_ContestLobby_EventScript_15552F:: @ 815552F
+ lockall
+ fadescreen 1
+ showcontestwinner 3
+ releaseall
+ end
+
+SlateportCity_ContestLobby_EventScript_155536:: @ 8155536
+ msgbox SlateportCity_ContestLobby_Text_1B7225, 2
+ end
+
+ .incbin "baserom.gba", 0x15553f, 0xc
+
diff --git a/data/scripts/maps/SlateportCity_Harbor.s b/data/scripts/maps/SlateportCity_Harbor.s
new file mode 100644
index 000000000..8bdccdbb9
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_Harbor.s
@@ -0,0 +1,371 @@
+SlateportCity_Harbor_MapScripts:: @ 8155F5D
+ map_script 3, SlateportCity_Harbor_MapScript1_155F63
+ .byte 0
+
+SlateportCity_Harbor_MapScript1_155F63:: @ 8155F63
+ warp6 SlateportCity, 255, 28, 13
+ setvar 0x4001, 0
+ compare 0x40a0, 1
+ callif 1, SlateportCity_Harbor_EventScript_155F89
+ checkflag 2052
+ callif 1, SlateportCity_Harbor_EventScript_155F85
+ end
+
+SlateportCity_Harbor_EventScript_155F85:: @ 8155F85
+ clearflag 860
+ return
+
+SlateportCity_Harbor_EventScript_155F89:: @ 8155F89
+ playmusicbattle BGM_EVIL_TEAM
+ movespriteperm 4, 12, 13
+ spritebehave 4, 9
+ setflag 905
+ return
+
+SlateportCity_Harbor_EventScript_155F9B:: @ 8155F9B
+ lockall
+ setvar 0x8008, 0
+ jump SlateportCity_Harbor_EventScript_155FD5
+ end
+
+SlateportCity_Harbor_EventScript_155FA7:: @ 8155FA7
+ lockall
+ setvar 0x8008, 1
+ jump SlateportCity_Harbor_EventScript_155FD5
+ end
+
+SlateportCity_Harbor_EventScript_155FB3:: @ 8155FB3
+ lockall
+ setvar 0x8008, 2
+ jump SlateportCity_Harbor_EventScript_155FD5
+ end
+
+SlateportCity_Harbor_EventScript_155FBF:: @ 8155FBF
+ lockall
+ setvar 0x8008, 3
+ move 255, SlateportCity_Harbor_Movement_1560C2
+ waitmove 0
+ jump SlateportCity_Harbor_EventScript_155FD5
+ end
+
+SlateportCity_Harbor_EventScript_155FD5:: @ 8155FD5
+ move 7, SlateportCity_Harbor_Movement_1A0845
+ waitmove 0
+ move 255, SlateportCity_Harbor_Movement_1A0841
+ waitmove 0
+ msgbox SlateportCity_Harbor_Text_17FD7D, 4
+ closebutton
+ move 6, SlateportCity_Harbor_Movement_15609B
+ move 7, SlateportCity_Harbor_Movement_15609B
+ move 8, SlateportCity_Harbor_Movement_1560A5
+ waitmove 0
+ disappear 6
+ disappear 7
+ disappear 8
+ setvar 0x40a0, 2
+ compare 0x8008, 0
+ callif 1, SlateportCity_Harbor_EventScript_15605C
+ compare 0x8008, 1
+ callif 1, SlateportCity_Harbor_EventScript_156071
+ compare 0x8008, 2
+ callif 1, SlateportCity_Harbor_EventScript_156086
+ compare 0x8008, 3
+ callif 1, SlateportCity_Harbor_EventScript_156086
+ msgbox SlateportCity_Harbor_Text_17FE60, 4
+ closebutton
+ setflag 821
+ setflag 822
+ moveoffscreen 4
+ spritebehave 4, 10
+ releaseall
+ end
+
+SlateportCity_Harbor_EventScript_15605C:: @ 815605C
+ move 4, SlateportCity_Harbor_Movement_1560B3
+ waitmove 0
+ move 255, SlateportCity_Harbor_Movement_1A0845
+ waitmove 0
+ return
+
+SlateportCity_Harbor_EventScript_156071:: @ 8156071
+ move 4, SlateportCity_Harbor_Movement_1560B9
+ waitmove 0
+ move 255, SlateportCity_Harbor_Movement_1A0843
+ waitmove 0
+ return
+
+SlateportCity_Harbor_EventScript_156086:: @ 8156086
+ move 4, SlateportCity_Harbor_Movement_1560BE
+ waitmove 0
+ move 255, SlateportCity_Harbor_Movement_1A0843
+ waitmove 0
+ return
+
+SlateportCity_Harbor_Movement_15609B:: @ 815609B
+ step_14
+ step_14
+ step_43
+ step_54
+ step_end
+
+ .incbin "baserom.gba", 0x1560a0, 0x5
+
+SlateportCity_Harbor_Movement_1560A5:: @ 81560A5
+ step_14
+ step_14
+ step_14
+ step_14
+ step_right
+ step_right
+ step_right
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_18
+ step_end
+
+SlateportCity_Harbor_Movement_1560B3:: @ 81560B3
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_end
+
+SlateportCity_Harbor_Movement_1560B9:: @ 81560B9
+ step_left
+ step_left
+ step_up
+ step_left
+ step_end
+
+SlateportCity_Harbor_Movement_1560BE:: @ 81560BE
+ step_left
+ step_left
+ step_left
+ step_end
+
+SlateportCity_Harbor_Movement_1560C2:: @ 81560C2
+ step_up
+ step_end
+
+SlateportCity_Harbor_EventScript_1560C4:: @ 81560C4
+ lock
+ faceplayer
+ checkflag 2052
+ jumpeq SlateportCity_Harbor_EventScript_1560D9
+ msgbox SlateportCity_Harbor_Text_17FA0A, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_1560D9:: @ 81560D9
+ msgbox SlateportCity_Harbor_Text_17FA73, 4
+ checkitem ITEM_SS_TICKET, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_156135
+ message SlateportCity_Harbor_Text_17FB0A
+ waittext
+ jump SlateportCity_Harbor_EventScript_1560FD
+ end
+
+SlateportCity_Harbor_EventScript_1560FD:: @ 81560FD
+ multichoicedef 18, 6, 52, 2, 0
+ switch RESULT
+ case 0, SlateportCity_Harbor_EventScript_15613F
+ case 1, SlateportCity_Harbor_EventScript_156167
+ case 2, SlateportCity_Harbor_EventScript_1561DA
+ case 127, SlateportCity_Harbor_EventScript_1561DA
+ end
+
+SlateportCity_Harbor_EventScript_156135:: @ 8156135
+ msgbox SlateportCity_Harbor_Text_17FAAD, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_15613F:: @ 815613F
+ msgbox SlateportCity_Harbor_Text_17FB81, 5
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_15618A
+ setvar 0x40b4, 1
+ call SlateportCity_Harbor_EventScript_156196
+ warp SSTidalCorridor, 255, 1, 10
+ waitstate
+ release
+ end
+
+SlateportCity_Harbor_EventScript_156167:: @ 8156167
+ msgbox SlateportCity_Harbor_Text_17FB9C, 5
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_15618A
+ call SlateportCity_Harbor_EventScript_156196
+ warp BattleTower_Outside, 255, 19, 23
+ waitstate
+ release
+ end
+
+SlateportCity_Harbor_EventScript_15618A:: @ 815618A
+ message SlateportCity_Harbor_Text_17FBE5
+ waittext
+ jump SlateportCity_Harbor_EventScript_1560FD
+ end
+
+SlateportCity_Harbor_EventScript_156196:: @ 8156196
+ msgbox SlateportCity_Harbor_Text_17FBB6, 4
+ closebutton
+ move LAST_TALKED, SlateportCity_Harbor_Movement_1A0841
+ waitmove 0
+ pause 30
+ spriteinvisible LAST_TALKED, 9, 8
+ compare FACING, 2
+ callif 1, SlateportCity_Harbor_EventScript_1561EF
+ compare FACING, 4
+ callif 1, SlateportCity_Harbor_EventScript_1561E4
+ pause 30
+ spriteinvisible 255, 0, 0
+ setvar 0x8004, 5
+ call SlateportCity_Harbor_EventScript_1A040E
+ return
+
+SlateportCity_Harbor_EventScript_1561DA:: @ 81561DA
+ msgbox SlateportCity_Harbor_Text_17FB5F, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_1561E4:: @ 81561E4
+ move 255, SlateportCity_Harbor_Movement_1561FA
+ waitmove 0
+ return
+
+SlateportCity_Harbor_EventScript_1561EF:: @ 81561EF
+ move 255, SlateportCity_Harbor_Movement_1561FD
+ waitmove 0
+ return
+
+SlateportCity_Harbor_Movement_1561FA:: @ 81561FA
+ step_right
+ step_26
+ step_end
+
+SlateportCity_Harbor_Movement_1561FD:: @ 81561FD
+ step_up
+ step_end
+
+SlateportCity_Harbor_EventScript_1561FF:: @ 81561FF
+ msgbox SlateportCity_Harbor_Text_17FC07, 2
+ end
+
+SlateportCity_Harbor_EventScript_156208:: @ 8156208
+ msgbox SlateportCity_Harbor_Text_17FC7C, 2
+ end
+
+SlateportCity_Harbor_EventScript_156211:: @ 8156211
+ lock
+ faceplayer
+ checkflag 2061
+ jumpeq SlateportCity_Harbor_EventScript_15626F
+ checkflag 271
+ jumpeq SlateportCity_Harbor_EventScript_156265
+ checkflag 112
+ jumpeq SlateportCity_Harbor_EventScript_156258
+ compare 0x40a0, 2
+ jumpeq SlateportCity_Harbor_EventScript_15624E
+ msgbox SlateportCity_Harbor_Text_17FD1C, 4
+ closebutton
+ move LAST_TALKED, SlateportCity_Harbor_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+SlateportCity_Harbor_EventScript_15624E:: @ 815624E
+ msgbox SlateportCity_Harbor_Text_17FE60, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_156258:: @ 8156258
+ setflag 271
+ msgbox SlateportCity_Harbor_Text_17FF35, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_156265:: @ 8156265
+ msgbox SlateportCity_Harbor_Text_1800A0, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_15626F:: @ 815626F
+ compare 0x4001, 1
+ jumpeq SlateportCity_Harbor_EventScript_156380
+ checkitem ITEM_SCANNER, 1
+ compare RESULT, 1
+ jumpeq SlateportCity_Harbor_EventScript_1562A7
+ checkflag 2052
+ jumpeq SlateportCity_Harbor_EventScript_15629D
+ msgbox SlateportCity_Harbor_Text_18017B, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_15629D:: @ 815629D
+ msgbox SlateportCity_Harbor_Text_1801EA, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_1562A7:: @ 81562A7
+ message SlateportCity_Harbor_Text_18028B
+ waittext
+ jump SlateportCity_Harbor_EventScript_1562B3
+ end
+
+SlateportCity_Harbor_EventScript_1562B3:: @ 81562B3
+ multichoice 0, 0, 46, 0
+ switch RESULT
+ case 0, SlateportCity_Harbor_EventScript_1562EA
+ case 1, SlateportCity_Harbor_EventScript_15632A
+ case 2, SlateportCity_Harbor_EventScript_15636A
+ case 127, SlateportCity_Harbor_EventScript_15636A
+ end
+
+SlateportCity_Harbor_EventScript_1562EA:: @ 81562EA
+ msgbox SlateportCity_Harbor_Text_1803DD, 5
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_156374
+ giveitem ITEM_DEEP_SEA_TOOTH
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_1A029B
+ removeitem ITEM_SCANNER, 1
+ msgbox SlateportCity_Harbor_Text_18046B, 4
+ setflag 294
+ jump SlateportCity_Harbor_EventScript_156380
+ end
+
+SlateportCity_Harbor_EventScript_15632A:: @ 815632A
+ msgbox SlateportCity_Harbor_Text_180412, 5
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_156374
+ giveitem ITEM_DEEP_SEA_SCALE
+ compare RESULT, 0
+ jumpeq SlateportCity_Harbor_EventScript_1A029B
+ removeitem ITEM_SCANNER, 1
+ msgbox SlateportCity_Harbor_Text_18046B, 4
+ setflag 294
+ jump SlateportCity_Harbor_EventScript_156380
+ end
+
+SlateportCity_Harbor_EventScript_15636A:: @ 815636A
+ msgbox SlateportCity_Harbor_Text_180360, 4
+ release
+ end
+
+SlateportCity_Harbor_EventScript_156374:: @ 8156374
+ message SlateportCity_Harbor_Text_180447
+ waittext
+ jump SlateportCity_Harbor_EventScript_1562B3
+ end
+
+SlateportCity_Harbor_EventScript_156380:: @ 8156380
+ setvar 0x4001, 1
+ msgbox SlateportCity_Harbor_Text_180491, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity_House1.s b/data/scripts/maps/SlateportCity_House1.s
new file mode 100644
index 000000000..bde33129c
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_House1.s
@@ -0,0 +1,73 @@
+SlateportCity_House1_MapScripts:: @ 815567A
+ .byte 0
+
+SlateportCity_House1_EventScript_15567B:: @ 815567B
+ lock
+ faceplayer
+ msgbox SlateportCity_House1_Text_17D46A, 5
+ compare RESULT, 1
+ jumpeq SlateportCity_House1_EventScript_15569C
+ compare RESULT, 0
+ jumpeq SlateportCity_House1_EventScript_1556BF
+ end
+
+SlateportCity_House1_EventScript_15569C:: @ 815569C
+ msgbox SlateportCity_House1_Text_17D4DB, 4
+ special 159
+ waitstate
+ compare 0x8004, 255
+ jumpif 5, SlateportCity_House1_EventScript_1556C9
+ compare 0x8004, 255
+ jumpeq SlateportCity_House1_EventScript_1556BF
+ end
+
+SlateportCity_House1_EventScript_1556BF:: @ 81556BF
+ msgbox SlateportCity_House1_Text_17D61E, 4
+ release
+ end
+
+SlateportCity_House1_EventScript_1556C9:: @ 81556C9
+ specialval RESULT, 327
+ compare RESULT, 412
+ jumpeq SlateportCity_House1_EventScript_15571C
+ special 124
+ special 125
+ compare RESULT, 1
+ jumpeq SlateportCity_House1_EventScript_155726
+ specialval RESULT, 336
+ special 124
+ compare RESULT, 1
+ jumpeq SlateportCity_House1_EventScript_155726
+ msgbox SlateportCity_House1_Text_17D505, 5
+ compare RESULT, 1
+ jumpeq SlateportCity_House1_EventScript_155730
+ compare RESULT, 0
+ jumpeq SlateportCity_House1_EventScript_1556BF
+ end
+
+SlateportCity_House1_EventScript_15571C:: @ 815571C
+ msgbox SlateportCity_House1_Text_17D752, 4
+ release
+ end
+
+SlateportCity_House1_EventScript_155726:: @ 8155726
+ msgbox SlateportCity_House1_Text_17D6CC, 4
+ release
+ end
+
+SlateportCity_House1_EventScript_155730:: @ 8155730
+ msgbox SlateportCity_House1_Text_17D580, 4
+ call SlateportCity_House1_EventScript_1A0678
+ specialval RESULT, 123
+ special 124
+ compare RESULT, 1
+ jumpeq SlateportCity_House1_EventScript_15575A
+ msgbox SlateportCity_House1_Text_17D63A, 4
+ release
+ end
+
+SlateportCity_House1_EventScript_15575A:: @ 815575A
+ msgbox SlateportCity_House1_Text_17D5B0, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity_House2.s b/data/scripts/maps/SlateportCity_House2.s
new file mode 100644
index 000000000..87581ceaf
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_House2.s
@@ -0,0 +1,22 @@
+SlateportCity_House2_MapScripts:: @ 815638F
+ .byte 0
+
+SlateportCity_House2_EventScript_156390:: @ 8156390
+ msgbox SlateportCity_House2_Text_1804CF, 2
+ end
+
+SlateportCity_House2_EventScript_156399:: @ 8156399
+ lock
+ faceplayer
+ checkitem ITEM_CONTEST_PASS, 1
+ compare RESULT, 1
+ jumpeq SlateportCity_House2_EventScript_1563B5
+ msgbox SlateportCity_House2_Text_180567, 4
+ release
+ end
+
+SlateportCity_House2_EventScript_1563B5:: @ 81563B5
+ msgbox SlateportCity_House2_Text_1805CD, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity_Mart.s b/data/scripts/maps/SlateportCity_Mart.s
new file mode 100644
index 000000000..f2c8f029b
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_Mart.s
@@ -0,0 +1,35 @@
+SlateportCity_Mart_MapScripts:: @ 8156410
+ .byte 0
+
+SlateportCity_Mart_EventScript_156411:: @ 8156411
+ lock
+ faceplayer
+ message SlateportCity_Mart_Text_1A0BE4
+ waittext
+ pokemart SlateportCity_Mart_Pokemart_156428
+ msgbox SlateportCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+SlateportCity_Mart_Pokemart_156428:: @ 8156428
+ .2byte ITEM_POKE_BALL
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_POTION
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_ESCAPE_ROPE
+ .2byte ITEM_REPEL
+ .2byte ITEM_HARBOR_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+SlateportCity_Mart_EventScript_15643E:: @ 815643E
+ msgbox SlateportCity_Mart_Text_180730, 2
+ end
+
+SlateportCity_Mart_EventScript_156447:: @ 8156447
+ msgbox SlateportCity_Mart_Text_18079D, 2
+ end
+
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.s b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.s
new file mode 100644
index 000000000..10dcb66d8
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.s
@@ -0,0 +1,219 @@
+SlateportCity_OceanicMuseum_1F_MapScripts:: @ 8155ACA
+ map_script 3, SlateportCity_OceanicMuseum_1F_MapScript1_155AD0
+ .byte 0
+
+SlateportCity_OceanicMuseum_1F_MapScript1_155AD0:: @ 8155AD0
+ .ifndef SAPPHIRE
+ setvar 0x4010, 120
+ setvar 0x4011, 119
+ .else
+ setvar 0x4010, 118
+ setvar 0x4011, 117
+ .endif
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155ADB:: @ 8155ADB
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E1DE, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155AE4:: @ 8155AE4
+ lockall
+ move 255, SlateportCity_OceanicMuseum_1F_Movement_1A083F
+ waitmove 0
+ jump SlateportCity_OceanicMuseum_1F_EventScript_155B06
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155AF5:: @ 8155AF5
+ lockall
+ move 255, SlateportCity_OceanicMuseum_1F_Movement_1A0843
+ waitmove 0
+ jump SlateportCity_OceanicMuseum_1F_EventScript_155B06
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B06:: @ 8155B06
+ showmoney 0, 0
+ snop
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E18D, 5
+ compare RESULT, 1
+ jumpeq SlateportCity_OceanicMuseum_1F_EventScript_155B2D
+ closebutton
+ hidemoney 0, 0
+ move 255, SlateportCity_OceanicMuseum_1F_Movement_155B8D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B2D:: @ 8155B2D
+ checkmoney 0x32, 0
+ compare RESULT, 0
+ jumpeq SlateportCity_OceanicMuseum_1F_EventScript_155B5A
+ paymoney 0x32, 0
+ updatemoney 0, 0
+ snop
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E1DE, 4
+ setvar 0x40aa, 1
+ hidemoney 0, 0
+ releaseall
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B5A:: @ 8155B5A
+ checkflag 149
+ jumpif 0, SlateportCity_OceanicMuseum_1F_EventScript_155B7B
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E1F5, 4
+ closebutton
+ hidemoney 0, 0
+ move 255, SlateportCity_OceanicMuseum_1F_Movement_155B8D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B7B:: @ 8155B7B
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E22D, 4
+ setvar 0x40aa, 1
+ hidemoney 0, 0
+ releaseall
+ end
+
+SlateportCity_OceanicMuseum_1F_Movement_155B8D:: @ 8155B8D
+ step_down
+ step_end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B8F:: @ 8155B8F
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E2BB, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155B98:: @ 8155B98
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E2E3, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BA1:: @ 8155BA1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E338, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BAA:: @ 8155BAA
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E36F, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BB3:: @ 8155BB3
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E3A9, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BBC:: @ 8155BBC
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E3ED, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BC5:: @ 8155BC5
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E6C9, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BCE:: @ 8155BCE
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E741, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BD7:: @ 8155BD7
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E7C4, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BE0:: @ 8155BE0
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E892, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BE9:: @ 8155BE9
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E944, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BF2:: @ 8155BF2
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17EA19, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155BFB:: @ 8155BFB
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17EB0D, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C04:: @ 8155C04
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17EBBC, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C0D:: @ 8155C0D
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17EC98, 3
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C16:: @ 8155C16
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E434, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C1F:: @ 8155C1F
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E477, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C28:: @ 8155C28
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E4D7, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C31:: @ 8155C31
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E540, 2
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C3A:: @ 8155C3A
+ lock
+ faceplayer
+ pause 8
+ playsfx 21
+ move 13, SlateportCity_OceanicMuseum_1F_Movement_1A0833
+ waitmove 0
+ move 13, SlateportCity_OceanicMuseum_1F_Movement_1A0835
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E582, 4
+ giveitem ITEM_TM46
+ compare RESULT, 0
+ jumpeq SlateportCity_OceanicMuseum_1F_EventScript_155CC2
+ setflag 269
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E606, 4
+ closebutton
+ compare FACING, 2
+ jumpeq SlateportCity_OceanicMuseum_1F_EventScript_155C98
+ compare FACING, 2
+ jumpif 5, SlateportCity_OceanicMuseum_1F_EventScript_155CAD
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155C98:: @ 8155C98
+ move 13, SlateportCity_OceanicMuseum_1F_Movement_155CD3
+ waitmove 0
+ setflag 965
+ playsfx 9
+ disappear 13
+ release
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155CAD:: @ 8155CAD
+ move 13, SlateportCity_OceanicMuseum_1F_Movement_155CCC
+ waitmove 0
+ setflag 965
+ playsfx 9
+ disappear 13
+ release
+ end
+
+SlateportCity_OceanicMuseum_1F_EventScript_155CC2:: @ 8155CC2
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E695, 4
+ release
+ end
+
+SlateportCity_OceanicMuseum_1F_Movement_155CCC:: @ 8155CCC
+ step_00
+ step_15
+ step_15
+ step_15
+ step_15
+ step_13
+ step_end
+
+SlateportCity_OceanicMuseum_1F_Movement_155CD3:: @ 8155CD3
+ step_18
+ step_15
+ step_15
+ step_15
+ step_15
+ step_13
+ step_end
+
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.s b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.s
new file mode 100644
index 000000000..28b098126
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.s
@@ -0,0 +1,269 @@
+SlateportCity_OceanicMuseum_2F_MapScripts:: @ 8155CDA
+ map_script 3, SlateportCity_OceanicMuseum_2F_MapScript1_155CE0
+ .byte 0
+
+SlateportCity_OceanicMuseum_2F_MapScript1_155CE0:: @ 8155CE0
+ call SlateportCity_OceanicMuseum_2F_EventScript_1A0196
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
+ lock
+ faceplayer
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17ECFD, 4
+ closebutton
+ playmusic BGM_EVIL_TEAM, 1
+ reappear 3
+ move 3, SlateportCity_OceanicMuseum_2F_Movement_155EB4
+ waitmove 0
+ reappear 4
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_155EC3
+ waitmove 0
+ move 3, SlateportCity_OceanicMuseum_2F_Movement_155EB8
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_155EC5
+ waitmove 0
+ compare FACING, 1
+ callif 1, SlateportCity_OceanicMuseum_2F_EventScript_155E62
+ compare FACING, 4
+ callif 1, SlateportCity_OceanicMuseum_2F_EventScript_155E62
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EDAE, 4
+ compare FACING, 4
+ callif 5, SlateportCity_OceanicMuseum_2F_EventScript_155E6D
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EDD7, 4
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EE01, 4
+ closebutton
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_155EB2
+ waitmove 0
+ compare FACING, 1
+ callif 1, SlateportCity_OceanicMuseum_2F_EventScript_155E78
+ compare FACING, 3
+ callif 1, SlateportCity_OceanicMuseum_2F_EventScript_155E83
+ trainerbattle 3, TRAINER_MUSEUM_2F_GRUNT_1, 0, SlateportCity_OceanicMuseum_2F_Text_17EE4E
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EE66, 4
+ closebutton
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_155EBF
+ waitmove 0
+ move 3, SlateportCity_OceanicMuseum_2F_Movement_155EB2
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EEA5, 4
+ playmusicbattle 0
+ trainerbattle 3, TRAINER_MUSEUM_2F_GRUNT_2, 0, SlateportCity_OceanicMuseum_2F_Text_17EED6
+ move 3, SlateportCity_OceanicMuseum_2F_Movement_155EBF
+ waitmove 0
+ move 3, SlateportCity_OceanicMuseum_2F_Movement_1A0845
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_1A0841
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EEEA, 4
+ closebutton
+ pause 35
+ reappear 2
+ move 2, SlateportCity_OceanicMuseum_2F_Movement_155EA8
+ move 4, SlateportCity_OceanicMuseum_2F_Movement_155ECE
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17EF62, 4
+ move 2, SlateportCity_OceanicMuseum_2F_Movement_155EA6
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F17E, 4
+ closebutton
+ fadescreen 1
+ disappear 2
+ disappear 3
+ disappear 4
+ fadescreen 0
+ pause 30
+ setflag 883
+ move 255, SlateportCity_OceanicMuseum_2F_Movement_1A0843
+ waitmove 0
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F352, 4
+ setvar 0x8004, 269
+ call SlateportCity_OceanicMuseum_2F_EventScript_1A067F
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F433, 4
+ closebutton
+ move 1, SlateportCity_OceanicMuseum_2F_Movement_155E98
+ waitmove 0
+ playsfx 9
+ disappear 1
+ setflag 900
+ setflag 149
+ clearflag 947
+ setflag 949
+ release
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155E62:: @ 8155E62
+ move 255, SlateportCity_OceanicMuseum_2F_Movement_1A083F
+ waitmove 0
+ return
+
+SlateportCity_OceanicMuseum_2F_EventScript_155E6D:: @ 8155E6D
+ move 1, SlateportCity_OceanicMuseum_2F_Movement_1A083F
+ waitmove 0
+ return
+
+SlateportCity_OceanicMuseum_2F_EventScript_155E78:: @ 8155E78
+ move 255, SlateportCity_OceanicMuseum_2F_Movement_155E8E
+ waitmove 0
+ return
+
+SlateportCity_OceanicMuseum_2F_EventScript_155E83:: @ 8155E83
+ move 255, SlateportCity_OceanicMuseum_2F_Movement_155E92
+ waitmove 0
+ return
+
+SlateportCity_OceanicMuseum_2F_Movement_155E8E:: @ 8155E8E
+ step_left
+ step_down
+ step_27
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155E92:: @ 8155E92
+ step_up
+ step_left
+ step_left
+ step_down
+ step_27
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155E98:: @ 8155E98
+ step_up
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_left
+ step_left
+ step_up
+ step_up
+ step_13
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EA6:: @ 8155EA6
+ step_right
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EA8:: @ 8155EA8
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EB2:: @ 8155EB2
+ step_right
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EB4:: @ 8155EB4
+ step_down
+ step_right
+ step_25
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EB8:: @ 8155EB8
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EBF:: @ 8155EBF
+ step_40
+ step_left
+ step_41
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EC3:: @ 8155EC3
+ step_down
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155EC5:: @ 8155EC5
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SlateportCity_OceanicMuseum_2F_Movement_155ECE:: @ 8155ECE
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_13
+ step_15
+ step_26
+ step_end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155EDA:: @ 8155EDA
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F572, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155EE3:: @ 8155EE3
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F5E3, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155EEC:: @ 8155EEC
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F653, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155EF5:: @ 8155EF5
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F754, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155EFE:: @ 8155EFE
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F7BC, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F07:: @ 8155F07
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F84E, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F10:: @ 8155F10
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F8BC, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F19:: @ 8155F19
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F918, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F22:: @ 8155F22
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F975, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F2B:: @ 8155F2B
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F9C7, 3
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F34:: @ 8155F34
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F4B6, 2
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F3D:: @ 8155F3D
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F50E, 2
+ end
+
+SlateportCity_OceanicMuseum_2F_EventScript_155F46:: @ 8155F46
+ lock
+ faceplayer
+ msgbox SlateportCity_OceanicMuseum_2F_Text_17F53B, 4
+ closebutton
+ move LAST_TALKED, SlateportCity_OceanicMuseum_2F_Movement_1A083D
+ waitmove 0
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity_PokemonCenter_1F.s b/data/scripts/maps/SlateportCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..a8ef51f52
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_PokemonCenter_1F.s
@@ -0,0 +1,25 @@
+SlateportCity_PokemonCenter_1F_MapScripts:: @ 81563BF
+ map_script 3, SlateportCity_PokemonCenter_1F_MapScript1_1563C5
+ .byte 0
+
+SlateportCity_PokemonCenter_1F_MapScript1_1563C5:: @ 81563C5
+ sethealplace 4
+ call SlateportCity_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+SlateportCity_PokemonCenter_1F_EventScript_1563CE:: @ 81563CE
+ setvar 0x800b, 1
+ call SlateportCity_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+SlateportCity_PokemonCenter_1F_EventScript_1563DC:: @ 81563DC
+ msgbox SlateportCity_PokemonCenter_1F_Text_180602, 2
+ end
+
+SlateportCity_PokemonCenter_1F_EventScript_1563E5:: @ 81563E5
+ msgbox SlateportCity_PokemonCenter_1F_Text_1806CB, 2
+ end
+
diff --git a/data/scripts/maps/SlateportCity_PokemonCenter_2F.s b/data/scripts/maps/SlateportCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..1f5216d11
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+SlateportCity_PokemonCenter_2F_MapScripts:: @ 81563EE
+ map_script 2, SlateportCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, SlateportCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, SlateportCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+SlateportCity_PokemonCenter_2F_EventScript_1563FE:: @ 81563FE
+ call SlateportCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+SlateportCity_PokemonCenter_2F_EventScript_156404:: @ 8156404
+ call SlateportCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+SlateportCity_PokemonCenter_2F_EventScript_15640A:: @ 815640A
+ call SlateportCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/SlateportCity_PokemonFanClub.s b/data/scripts/maps/SlateportCity_PokemonFanClub.s
new file mode 100644
index 000000000..ecaf833e8
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_PokemonFanClub.s
@@ -0,0 +1,264 @@
+SlateportCity_PokemonFanClub_MapScripts:: @ 8155764
+ map_script 3, SlateportCity_PokemonFanClub_MapScript1_15576A
+ .byte 0
+
+SlateportCity_PokemonFanClub_MapScript1_15576A:: @ 815576A
+ end
+
+SlateportCity_PokemonFanClub_EventScript_15576B:: @ 815576B
+ lock
+ faceplayer
+ switch 0x40b7
+ case 0, SlateportCity_PokemonFanClub_EventScript_155795
+ case 1, SlateportCity_PokemonFanClub_EventScript_1557A8
+ case 2, SlateportCity_PokemonFanClub_EventScript_1557FE
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155795:: @ 8155795
+ setvar 0x40b7, 1
+ msgbox SlateportCity_PokemonFanClub_Text_17D773, 4
+ jump SlateportCity_PokemonFanClub_EventScript_155808
+ end
+
+SlateportCity_PokemonFanClub_EventScript_1557A8:: @ 81557A8
+ setvar 0x4002, 0
+ checkflag 204
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155893
+ checkflag 203
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155893
+ checkflag 202
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155893
+ checkflag 201
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155893
+ checkflag 200
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155893
+ compare 0x4002, 5
+ callif 1, SlateportCity_PokemonFanClub_EventScript_15588D
+ compare 0x40b7, 2
+ jumpeq SlateportCity_PokemonFanClub_EventScript_1557FE
+ msgbox SlateportCity_PokemonFanClub_Text_17DA14, 4
+ jump SlateportCity_PokemonFanClub_EventScript_155808
+ end
+
+SlateportCity_PokemonFanClub_EventScript_1557FE:: @ 81557FE
+ msgbox SlateportCity_PokemonFanClub_Text_17DDD5, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155808:: @ 8155808
+ msgbox SlateportCity_PokemonFanClub_Text_17DA49, 4
+ setvar 0x4001, 0
+ checkflag 204
+ callif 0, SlateportCity_PokemonFanClub_EventScript_1559FE
+ checkflag 203
+ callif 0, SlateportCity_PokemonFanClub_EventScript_1559E7
+ checkflag 202
+ callif 0, SlateportCity_PokemonFanClub_EventScript_1559D0
+ checkflag 201
+ callif 0, SlateportCity_PokemonFanClub_EventScript_1559B9
+ checkflag 200
+ callif 0, SlateportCity_PokemonFanClub_EventScript_1559A2
+ bufferfirstpoke 0
+ switch 0x4001
+ case 0, SlateportCity_PokemonFanClub_EventScript_155899
+ case 1, SlateportCity_PokemonFanClub_EventScript_1558A3
+ case 2, SlateportCity_PokemonFanClub_EventScript_1558D4
+ case 3, SlateportCity_PokemonFanClub_EventScript_155905
+ case 4, SlateportCity_PokemonFanClub_EventScript_155936
+ case 5, SlateportCity_PokemonFanClub_EventScript_155967
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_15588D:: @ 815588D
+ setvar 0x40b7, 2
+ return
+
+SlateportCity_PokemonFanClub_EventScript_155893:: @ 8155893
+ addvar 0x4002, 1
+ return
+
+SlateportCity_PokemonFanClub_EventScript_155899:: @ 8155899
+ msgbox SlateportCity_PokemonFanClub_Text_17DA5C, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_1558A3:: @ 81558A3
+ checkitemspace ITEM_RED_SCARF, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
+ setflag 200
+ giveitem ITEM_RED_SCARF
+ msgbox SlateportCity_PokemonFanClub_Text_17DC1B, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_1558D4:: @ 81558D4
+ checkitemspace ITEM_BLUE_SCARF, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
+ setflag 201
+ giveitem ITEM_BLUE_SCARF
+ msgbox SlateportCity_PokemonFanClub_Text_17DC74, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155905:: @ 8155905
+ checkitemspace ITEM_PINK_SCARF, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
+ setflag 202
+ giveitem ITEM_PINK_SCARF
+ msgbox SlateportCity_PokemonFanClub_Text_17DCCB, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155936:: @ 8155936
+ checkitemspace ITEM_GREEN_SCARF, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
+ setflag 203
+ giveitem ITEM_GREEN_SCARF
+ msgbox SlateportCity_PokemonFanClub_Text_17DD27, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155967:: @ 8155967
+ checkitemspace ITEM_YELLOW_SCARF, 1
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB89, 4
+ setflag 204
+ giveitem ITEM_YELLOW_SCARF
+ msgbox SlateportCity_PokemonFanClub_Text_17DD78, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155998:: @ 8155998
+ msgbox SlateportCity_PokemonFanClub_Text_17DB0B, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_1559A2:: @ 81559A2
+ specialval RESULT, 265
+ compare RESULT, 1
+ callif 1, SlateportCity_PokemonFanClub_EventScript_1559B3
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559B3:: @ 81559B3
+ setvar 0x4001, 1
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559B9:: @ 81559B9
+ specialval RESULT, 266
+ compare RESULT, 1
+ callif 1, SlateportCity_PokemonFanClub_EventScript_1559CA
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559CA:: @ 81559CA
+ setvar 0x4001, 2
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559D0:: @ 81559D0
+ specialval RESULT, 267
+ compare RESULT, 1
+ callif 1, SlateportCity_PokemonFanClub_EventScript_1559E1
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559E1:: @ 81559E1
+ setvar 0x4001, 3
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559E7:: @ 81559E7
+ specialval RESULT, 268
+ compare RESULT, 1
+ callif 1, SlateportCity_PokemonFanClub_EventScript_1559F8
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559F8:: @ 81559F8
+ setvar 0x4001, 4
+ return
+
+SlateportCity_PokemonFanClub_EventScript_1559FE:: @ 81559FE
+ specialval RESULT, 269
+ compare RESULT, 1
+ callif 1, SlateportCity_PokemonFanClub_EventScript_155A0F
+ return
+
+SlateportCity_PokemonFanClub_EventScript_155A0F:: @ 8155A0F
+ setvar 0x4001, 5
+ return
+
+SlateportCity_PokemonFanClub_EventScript_155A15:: @ 8155A15
+ lock
+ faceplayer
+ checkflag 278
+ jumpeq SlateportCity_PokemonFanClub_EventScript_155A75
+ msgbox SlateportCity_PokemonFanClub_Text_17DE6B, 4
+ specialval RESULT, 230
+ compare RESULT, 4
+ jumpif 4, SlateportCity_PokemonFanClub_EventScript_155A3A
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155A3A:: @ 8155A3A
+ playsfx 21
+ move LAST_TALKED, SlateportCity_PokemonFanClub_Movement_1A0833
+ waitmove 0
+ move LAST_TALKED, SlateportCity_PokemonFanClub_Movement_1A0835
+ waitmove 0
+ msgbox SlateportCity_PokemonFanClub_Text_17DF57, 4
+ giveitem ITEM_SOOTHE_BELL
+ compare RESULT, 0
+ jumpeq SlateportCity_PokemonFanClub_EventScript_1A029B
+ setflag 278
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155A75:: @ 8155A75
+ msgbox SlateportCity_PokemonFanClub_Text_17DFB8, 4
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155A7F:: @ 8155A7F
+ msgbox SlateportCity_PokemonFanClub_Text_17E03B, 2
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155A88:: @ 8155A88
+ msgbox SlateportCity_PokemonFanClub_Text_17E0ED, 2
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155A91:: @ 8155A91
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_SKITTY, 0
+ msgbox SlateportCity_PokemonFanClub_Text_17E14E, 4
+ waitpokecry
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155AA4:: @ 8155AA4
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_ZIGZAGOON, 0
+ msgbox SlateportCity_PokemonFanClub_Text_17E164, 4
+ waitpokecry
+ release
+ end
+
+SlateportCity_PokemonFanClub_EventScript_155AB7:: @ 8155AB7
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZUMARILL, 0
+ msgbox SlateportCity_PokemonFanClub_Text_17E178, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_1F.s b/data/scripts/maps/SlateportCity_SternsShipyard_1F.s
new file mode 100644
index 000000000..64c81d3c4
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_1F.s
@@ -0,0 +1,68 @@
+SlateportCity_SternsShipyard_1F_MapScripts:: @ 8155335
+ .byte 0
+
+SlateportCity_SternsShipyard_1F_EventScript_155336:: @ 8155336
+ lockall
+ checkflag 2052
+ jumpeq SlateportCity_SternsShipyard_1F_EventScript_155388
+ checkflag 2061
+ jumpeq SlateportCity_SternsShipyard_1F_EventScript_15539C
+ checkflag 149
+ jumpeq SlateportCity_SternsShipyard_1F_EventScript_1553CF
+ checkflag 148
+ jumpeq SlateportCity_SternsShipyard_1F_EventScript_1553B0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C14B, 4
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C1EC, 4
+ closebutton
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A083D
+ waitmove 0
+ setflag 148
+ setflag 882
+ releaseall
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_155388:: @ 8155388
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C472, 4
+ releaseall
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_15539C:: @ 815539C
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C3F7, 4
+ releaseall
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_1553B0:: @ 81553B0
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C2F2, 4
+ closebutton
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A083D
+ waitmove 0
+ releaseall
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_1553CF:: @ 81553CF
+ move 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
+ waitmove 0
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C360, 4
+ releaseall
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_1553E3:: @ 81553E3
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C6BB, 2
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_1553EC:: @ 81553EC
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C764, 2
+ end
+
+SlateportCity_SternsShipyard_1F_EventScript_1553F5:: @ 81553F5
+ msgbox SlateportCity_SternsShipyard_1F_Text_17C53D, 2
+ end
+
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_2F.s b/data/scripts/maps/SlateportCity_SternsShipyard_2F.s
new file mode 100644
index 000000000..069b5c9f8
--- /dev/null
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_2F.s
@@ -0,0 +1,11 @@
+SlateportCity_SternsShipyard_2F_MapScripts:: @ 81553FE
+ .byte 0
+
+SlateportCity_SternsShipyard_2F_EventScript_1553FF:: @ 81553FF
+ msgbox SlateportCity_SternsShipyard_2F_Text_17C7A2, 2
+ end
+
+SlateportCity_SternsShipyard_2F_EventScript_155408:: @ 8155408
+ msgbox SlateportCity_SternsShipyard_2F_Text_17C80C, 2
+ end
+
diff --git a/data/scripts/maps/SootopolisCity.s b/data/scripts/maps/SootopolisCity.s
new file mode 100644
index 000000000..1690b8104
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity.s
@@ -0,0 +1,470 @@
+SootopolisCity_MapScripts:: @ 814D07D
+ map_script 1, SootopolisCity_MapScript1_14D08D
+ map_script 3, SootopolisCity_MapScript1_14D10D
+ map_script 5, SootopolisCity_MapScript1_14D165
+ .byte 0
+
+SootopolisCity_MapScript1_14D08D:: @ 814D08D
+ checkflag 129
+ callif 0, SootopolisCity_EventScript_14D0A0
+ checkflag 129
+ callif 1, SootopolisCity_EventScript_14D0B1
+ end
+
+SootopolisCity_EventScript_14D0A0:: @ 814D0A0
+ movespriteperm 3, 31, 18
+ setmaptile 31, 32, 592, 1
+ return
+
+SootopolisCity_EventScript_14D0B1:: @ 814D0B1
+ checkflag 113
+ callif 0, SootopolisCity_EventScript_14D0BB
+ return
+
+SootopolisCity_EventScript_14D0BB:: @ 814D0BB
+ setmaptile 9, 6, 584, 1
+ setmaptile 9, 17, 584, 1
+ setmaptile 9, 26, 584, 1
+ setmaptile 44, 17, 584, 1
+ setmaptile 8, 35, 584, 1
+ setmaptile 53, 28, 584, 1
+ setmaptile 45, 6, 584, 1
+ setmaptile 48, 25, 584, 1
+ setmaptile 31, 32, 592, 1
+ return
+
+SootopolisCity_MapScript1_14D10D:: @ 814D10D
+ setflag 2077
+ checkflag 113
+ callif 1, SootopolisCity_EventScript_14D159
+ checkflag 2090
+ callif 1, SootopolisCity_EventScript_14D123
+ end
+
+SootopolisCity_EventScript_14D123:: @ 814D123
+ call SootopolisCity_EventScript_1A02C1
+ movespriteperm 1, 29, 19
+ movespriteperm 2, 33, 19
+ compare 0x405e, 1
+ callif 1, SootopolisCity_EventScript_14D142
+ return
+
+SootopolisCity_EventScript_14D142:: @ 814D142
+ movespriteperm 10, 29, 6
+ spritebehave 10, 10
+ movespriteperm 5, 30, 6
+ spritebehave 5, 9
+ return
+
+SootopolisCity_EventScript_14D159:: @ 814D159
+ movespriteperm 10, 31, 33
+ spritebehave 10, 8
+ return
+
+SootopolisCity_MapScript1_14D165:: @ 814D165
+ warp4 Underwater_SootopolisCity, 255, 9, 6
+ end
+
+SootopolisCity_EventScript_14D16E:: @ 814D16E
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_EventScript_14D183
+ msgbox SootopolisCity_Text_1696A4, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D183:: @ 814D183
+ msgbox SootopolisCity_Text_16A455, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D18D:: @ 814D18D
+ msgbox SootopolisCity_Text_16A2B2, 2
+ end
+
+SootopolisCity_EventScript_14D196:: @ 814D196
+ msgbox SootopolisCity_Text_16A2FB, 2
+ end
+
+SootopolisCity_EventScript_14D19F:: @ 814D19F
+ lock
+ faceplayer
+ checkdailyflags
+ special 148
+ checkflag 2258
+ jumpeq SootopolisCity_EventScript_14D241
+ msgbox SootopolisCity_Text_1C63F2, 4
+ random 10
+ addvar RESULT, 20
+ addvar RESULT, 133
+ giveitem RESULT
+ compare RESULT, 0
+ jumpeq SootopolisCity_EventScript_1A029B
+ setflag 2258
+ msgbox SootopolisCity_Text_1C64D0, 4
+ random 2
+ compare RESULT, 0
+ jumpeq SootopolisCity_EventScript_14D1FF
+ compare RESULT, 1
+ jumpeq SootopolisCity_EventScript_14D220
+ end
+
+SootopolisCity_EventScript_14D1FF:: @ 814D1FF
+ giveitem ITEM_FIGY_BERRY
+ compare RESULT, 0
+ jumpeq SootopolisCity_EventScript_1A029B
+ msgbox SootopolisCity_Text_1C650B, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D220:: @ 814D220
+ giveitem ITEM_IAPAPA_BERRY
+ compare RESULT, 0
+ jumpeq SootopolisCity_EventScript_1A029B
+ msgbox SootopolisCity_Text_1C650B, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D241:: @ 814D241
+ msgbox SootopolisCity_Text_1C6540, 5
+ compare RESULT, 1
+ jumpeq SootopolisCity_EventScript_14D25E
+ msgbox SootopolisCity_Text_1C6626, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D25E:: @ 814D25E
+ msgbox SootopolisCity_Text_1C65D4, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D268:: @ 814D268
+ lock
+ faceplayer
+ checkflag 1236
+ jumpeq SootopolisCity_EventScript_14D27D
+ msgbox SootopolisCity_Text_16A4D6, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D27D:: @ 814D27D
+ msgbox SootopolisCity_Text_16A531, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D287:: @ 814D287
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_EventScript_14D29C
+ msgbox SootopolisCity_Text_169813, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D29C:: @ 814D29C
+ msgbox SootopolisCity_Text_16A587, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D2A6:: @ 814D2A6
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_EventScript_14D2BB
+ msgbox SootopolisCity_Text_1698A0, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D2BB:: @ 814D2BB
+ msgbox SootopolisCity_Text_16A614, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D2C5:: @ 814D2C5
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_EventScript_14D2DA
+ msgbox SootopolisCity_Text_1697A7, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D2DA:: @ 814D2DA
+ msgbox SootopolisCity_Text_16A6AE, 4
+ release
+ end
+
+SootopolisCity_EventScript_14D2E4:: @ 814D2E4
+ msgbox SootopolisCity_Text_16972B, 2
+ end
+
+SootopolisCity_EventScript_14D2ED:: @ 814D2ED
+ msgbox SootopolisCity_Text_16A6C7, 3
+ end
+
+SootopolisCity_EventScript_14D2F6:: @ 814D2F6
+ msgbox SootopolisCity_Text_16A711, 3
+ end
+
+ClosedSootopolisGymDoorScript:: @ 814D2FF
+ msgbox ClosedSootopolisGymDoorText, 3
+ end
+
+SootopolisCity_EventScript_14D308:: @ 814D308
+ lockall
+ move 10, SootopolisCity_Movement_1A083F
+ move 255, SootopolisCity_Movement_1A0843
+ waitmove 0
+ playsfx 21
+ move 10, SootopolisCity_Movement_1A0833
+ waitmove 0
+ move 10, SootopolisCity_Movement_1A0835
+ waitmove 0
+ move 10, SootopolisCity_Movement_14D413
+ waitmove 0
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169988, 4
+ .else
+ msgbox SootopolisCity_Text_169E0F, 4
+ .endif
+ closebutton
+ move 10, SootopolisCity_Movement_14D417
+ move 255, SootopolisCity_Movement_14D440
+ waitmove 10
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_1699FD, 4
+ .else
+ msgbox SootopolisCity_Text_169E82, 4
+ .endif
+ playsfx 21
+ move 5, SootopolisCity_Movement_1A0833
+ waitmove 0
+ move 5, SootopolisCity_Movement_1A0835
+ waitmove 0
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169AB7, 4
+ .else
+ msgbox SootopolisCity_Text_169F3C, 4
+ .endif
+ closebutton
+ pause 30
+ move 5, SootopolisCity_Movement_14D46A
+ move 10, SootopolisCity_Movement_14D41D
+ move 255, SootopolisCity_Movement_14D445
+ waitmove 0
+ move 5, SootopolisCity_Movement_1A0843
+ move 255, SootopolisCity_Movement_1A0843
+ waitmove 0
+ pause 30
+ move 10, SootopolisCity_Movement_1A0845
+ waitmove 0
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169AE7, 4
+ .else
+ msgbox SootopolisCity_Text_169F6B, 4
+ .endif
+ closebutton
+ pause 30
+ move 5, SootopolisCity_Movement_14D47C
+ move 255, SootopolisCity_Movement_14D457
+ move 10, SootopolisCity_Movement_14D42D
+ waitmove 0
+ move 5, SootopolisCity_Movement_1A083F
+ waitmove 0
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169BC7, 4
+ .else
+ msgbox SootopolisCity_Text_16A06C, 4
+ .endif
+ move 255, SootopolisCity_Movement_1A083F
+ waitmove 0
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169C99, 4
+ .else
+ msgbox SootopolisCity_Text_16A13E, 4
+ .endif
+ moveoffscreen 5
+ spritebehave 5, 9
+ moveoffscreen 10
+ spritebehave 10, 10
+ setvar 0x405e, 2
+ releaseall
+ end
+
+SootopolisCity_Movement_14D413:: @ 814D413
+ step_left
+ step_left
+ step_left
+ step_end
+
+SootopolisCity_Movement_14D417:: @ 814D417
+ step_right
+ step_right
+ step_right
+ step_up
+ step_25
+ step_end
+
+SootopolisCity_Movement_14D41D:: @ 814D41D
+ step_down
+ step_right
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_left
+ step_left
+ step_end
+
+SootopolisCity_Movement_14D42D:: @ 814D42D
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SootopolisCity_Movement_14D440:: @ 814D440
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SootopolisCity_Movement_14D445:: @ 814D445
+ step_right
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+SootopolisCity_Movement_14D457:: @ 814D457
+ step_14
+ step_14
+ step_left
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SootopolisCity_Movement_14D46A:: @ 814D46A
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_down
+ step_down
+ step_down
+ step_down
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_left
+ step_end
+
+SootopolisCity_Movement_14D47C:: @ 814D47C
+ step_14
+ step_14
+ step_left
+ step_left
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_right
+ step_end
+
+SootopolisCity_EventScript_14D48F:: @ 814D48F
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169D37, 2
+ .else
+ msgbox SootopolisCity_Text_16A1DB, 2
+ .endif
+ end
+
+SootopolisCity_EventScript_14D498:: @ 814D498
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_EventScript_14D4AD
+ .ifdef SAPPHIRE
+ msgbox SootopolisCity_Text_169DA6, 2
+ .else
+ msgbox SootopolisCity_Text_16A249, 4
+ .endif
+ release
+ end
+
+SootopolisCity_EventScript_14D4AD:: @ 814D4AD
+ msgbox SootopolisCity_Text_16A33E, 4
+ closebutton
+ move LAST_TALKED, SootopolisCity_Movement_1A0845
+ waitmove 0
+ pause 50
+ setanimation 0, 1
+ doanimation 30
+ pause 15
+ disappear LAST_TALKED
+ checkanimation 30
+ release
+ end
diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.s b/data/scripts/maps/SootopolisCity_Gym_1F.s
new file mode 100644
index 000000000..fa52b4da3
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_Gym_1F.s
@@ -0,0 +1,161 @@
+SootopolisCity_Gym_1F_MapScripts:: @ 815AF07
+ map_script 2, SootopolisCity_Gym_1F_MapScript2_15AF86
+ map_script 5, SootopolisCity_Gym_1F_MapScript1_15AF22
+ map_script 1, SootopolisCity_Gym_1F_MapScript1_15AF25
+ map_script 3, SootopolisCity_Gym_1F_MapScript1_15AF1C
+ .byte 0
+
+SootopolisCity_Gym_1F_MapScript1_15AF1C:: @ 815AF1C
+ setvar 0x4022, 1
+ end
+
+SootopolisCity_Gym_1F_MapScript1_15AF22:: @ 815AF22
+ tileeffect 4
+ end
+
+SootopolisCity_Gym_1F_MapScript1_15AF25:: @ 815AF25
+ call SootopolisCity_Gym_1F_EventScript_15AF2E
+ special 309
+ end
+
+SootopolisCity_Gym_1F_EventScript_15AF2E:: @ 815AF2E
+ compare 0x4022, 8
+ jumpif 0, SootopolisCity_Gym_1F_EventScript_15AF85
+ compare 0x4022, 28
+ jumpif 0, SootopolisCity_Gym_1F_EventScript_15AF73
+ compare 0x4022, 69
+ jumpif 0, SootopolisCity_Gym_1F_EventScript_15AF61
+ setmaptile 8, 4, 519, 0
+ setmaptile 8, 5, 519, 0
+
+SootopolisCity_Gym_1F_EventScript_15AF61:: @ 815AF61
+ setmaptile 8, 10, 519, 0
+ setmaptile 8, 11, 519, 0
+
+SootopolisCity_Gym_1F_EventScript_15AF73:: @ 815AF73
+ setmaptile 8, 15, 519, 0
+ setmaptile 8, 16, 519, 0
+
+SootopolisCity_Gym_1F_EventScript_15AF85:: @ 815AF85
+ return
+
+SootopolisCity_Gym_1F_MapScript2_15AF86:: @ 815AF86
+ map_script_2 0x4022, 8, SootopolisCity_Gym_1F_EventScript_15AFA8
+ map_script_2 0x4022, 28, SootopolisCity_Gym_1F_EventScript_15AFBC
+ map_script_2 0x4022, 69, SootopolisCity_Gym_1F_EventScript_15AFD0
+ map_script_2 0x4022, 0, SootopolisCity_Gym_1F_EventScript_15AFE4
+ .2byte 0
+
+SootopolisCity_Gym_1F_EventScript_15AFA8:: @ 815AFA8
+ addvar 0x4022, 1
+ pause 40
+ playsfx 40
+ call SootopolisCity_Gym_1F_EventScript_15AF2E
+ special 142
+ end
+
+SootopolisCity_Gym_1F_EventScript_15AFBC:: @ 815AFBC
+ addvar 0x4022, 1
+ pause 40
+ playsfx 40
+ call SootopolisCity_Gym_1F_EventScript_15AF2E
+ special 142
+ end
+
+SootopolisCity_Gym_1F_EventScript_15AFD0:: @ 815AFD0
+ addvar 0x4022, 1
+ pause 40
+ playsfx 40
+ call SootopolisCity_Gym_1F_EventScript_15AF2E
+ special 142
+ end
+
+SootopolisCity_Gym_1F_EventScript_15AFE4:: @ 815AFE4
+ lockall
+ pause 20
+ move 255, SootopolisCity_Gym_1F_Movement_15AFFD
+ waitmove 0
+ playsfx 43
+ pause 60
+ warphole SootopolisCity_Gym_B1F
+ waitstate
+ end
+
+SootopolisCity_Gym_1F_Movement_15AFFD:: @ 815AFFD
+ step_54
+ step_end
+
+SootopolisCity_Gym_1F_EventScript_15AFFF:: @ 815AFFF
+ trainerbattle 1, 272, 0, SootopolisCity_Gym_1F_Text_18F0CA, SootopolisCity_Gym_1F_Text_18F282, SootopolisCity_Gym_1F_EventScript_15B02D
+ checkflag 172
+ jumpif 0, SootopolisCity_Gym_1F_EventScript_15B056
+ checkflag 2060
+ jumpif 0, SootopolisCity_Gym_1F_EventScript_15B07A
+ msgbox SootopolisCity_Gym_1F_Text_18F4D7, 4
+ release
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B02D:: @ 815B02D
+ message SootopolisCity_Gym_1F_Text_18F342
+ waittext
+ call SootopolisCity_Gym_1F_EventScript_1A02C5
+ msgbox SootopolisCity_Gym_1F_Text_18F36B, 4
+ setflag 1236
+ setflag 2062
+ setvar 0x8008, 8
+ call SootopolisCity_Gym_1F_EventScript_1A01C0
+ jump SootopolisCity_Gym_1F_EventScript_15B056
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B056:: @ 815B056
+ giveitem ITEM_TM03
+ compare RESULT, 0
+ jumpeq SootopolisCity_Gym_1F_EventScript_1A029B
+ msgbox SootopolisCity_Gym_1F_Text_18F466, 4
+ setflag 172
+ release
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B07A:: @ 815B07A
+ msgbox SootopolisCity_Gym_1F_Text_18F5B4, 4
+ release
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B084:: @ 815B084
+ lock
+ faceplayer
+ checkflag 1236
+ jumpeq SootopolisCity_Gym_1F_EventScript_15B099
+ msgbox SootopolisCity_Gym_1F_Text_18E8A5, 4
+ release
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B099:: @ 815B099
+ msgbox SootopolisCity_Gym_1F_Text_18E9C9, 4
+ release
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B0A3:: @ 815B0A3
+ lockall
+ checkflag 2062
+ jumpeq SootopolisCity_Gym_1F_EventScript_15B0C3
+ jump SootopolisCity_Gym_1F_EventScript_15B0CD
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B0B3:: @ 815B0B3
+ lockall
+ checkflag 2062
+ jumpeq SootopolisCity_Gym_1F_EventScript_15B0C3
+ jump SootopolisCity_Gym_1F_EventScript_15B0CD
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B0C3:: @ 815B0C3
+ msgbox SootopolisCity_Gym_1F_Text_18F665, 4
+ releaseall
+ end
+
+SootopolisCity_Gym_1F_EventScript_15B0CD:: @ 815B0CD
+ msgbox SootopolisCity_Gym_1F_Text_18F649, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_Gym_B1F.s b/data/scripts/maps/SootopolisCity_Gym_B1F.s
new file mode 100644
index 000000000..21bbc1558
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_Gym_B1F.s
@@ -0,0 +1,43 @@
+SootopolisCity_Gym_B1F_MapScripts:: @ 815B0D7
+ .byte 0
+
+SootopolisCity_Gym_B1F_EventScript_15B0D8:: @ 815B0D8
+ trainerbattle 0, 613, 0, SootopolisCity_Gym_B1F_Text_18EA87, SootopolisCity_Gym_B1F_Text_18EACF
+ msgbox SootopolisCity_Gym_B1F_Text_18EAED, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B0EF:: @ 815B0EF
+ trainerbattle 0, 614, 0, SootopolisCity_Gym_B1F_Text_18EB22, SootopolisCity_Gym_B1F_Text_18EB81
+ msgbox SootopolisCity_Gym_B1F_Text_18EBB1, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B106:: @ 815B106
+ trainerbattle 0, 118, 0, SootopolisCity_Gym_B1F_Text_18EBFA, SootopolisCity_Gym_B1F_Text_18EC5E
+ msgbox SootopolisCity_Gym_B1F_Text_18EC92, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B11D:: @ 815B11D
+ trainerbattle 0, 128, 0, SootopolisCity_Gym_B1F_Text_18ECEB, SootopolisCity_Gym_B1F_Text_18ED18
+ msgbox SootopolisCity_Gym_B1F_Text_18ED2B, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B134:: @ 815B134
+ trainerbattle 0, 129, 0, SootopolisCity_Gym_B1F_Text_18ED91, SootopolisCity_Gym_B1F_Text_18EDE8
+ msgbox SootopolisCity_Gym_B1F_Text_18EE03, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B14B:: @ 815B14B
+ trainerbattle 0, 130, 0, SootopolisCity_Gym_B1F_Text_18EE96, SootopolisCity_Gym_B1F_Text_18EEDC
+ msgbox SootopolisCity_Gym_B1F_Text_18EEF7, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B162:: @ 815B162
+ trainerbattle 0, 131, 0, SootopolisCity_Gym_B1F_Text_18EF39, SootopolisCity_Gym_B1F_Text_18EFB8
+ msgbox SootopolisCity_Gym_B1F_Text_18EFCA, 6
+ end
+
+SootopolisCity_Gym_B1F_EventScript_15B179:: @ 815B179
+ trainerbattle 0, 301, 0, SootopolisCity_Gym_B1F_Text_18F037, SootopolisCity_Gym_B1F_Text_18F07F
+ msgbox SootopolisCity_Gym_B1F_Text_18F085, 6
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House1.s b/data/scripts/maps/SootopolisCity_House1.s
new file mode 100644
index 000000000..a2243206c
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House1.s
@@ -0,0 +1,30 @@
+SootopolisCity_House1_MapScripts:: @ 815B29A
+ .byte 0
+
+SootopolisCity_House1_EventScript_15B29B:: @ 815B29B
+ lock
+ faceplayer
+ checkflag 121
+ jumpeq SootopolisCity_House1_EventScript_15B2C7
+ msgbox SootopolisCity_House1_Text_18F991, 4
+ giveitem ITEM_TM31
+ setflag 121
+ msgbox SootopolisCity_House1_Text_18FA03, 4
+ release
+ end
+
+SootopolisCity_House1_EventScript_15B2C7:: @ 815B2C7
+ msgbox SootopolisCity_House1_Text_18FA03, 4
+ release
+ end
+
+SootopolisCity_House1_EventScript_15B2D1:: @ 815B2D1
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_KECLEON, 0
+ msgbox SootopolisCity_House1_Text_18FA50, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House2.s b/data/scripts/maps/SootopolisCity_House2.s
new file mode 100644
index 000000000..cb99f1004
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House2.s
@@ -0,0 +1,22 @@
+SootopolisCity_House2_MapScripts:: @ 815B2E4
+ .byte 0
+
+SootopolisCity_House2_EventScript_15B2E5:: @ 815B2E5
+ lock
+ faceplayer
+ msgbox SootopolisCity_House2_Text_18FA66, 5
+ compare RESULT, 1
+ callif 1, SootopolisCity_House2_EventScript_15B307
+ compare RESULT, 0
+ callif 1, SootopolisCity_House2_EventScript_15B310
+ release
+ end
+
+SootopolisCity_House2_EventScript_15B307:: @ 815B307
+ msgbox SootopolisCity_House2_Text_18FAAE, 4
+ return
+
+SootopolisCity_House2_EventScript_15B310:: @ 815B310
+ msgbox SootopolisCity_House2_Text_18FB04, 4
+ return
+
diff --git a/data/scripts/maps/SootopolisCity_House3.s b/data/scripts/maps/SootopolisCity_House3.s
new file mode 100644
index 000000000..7ebfa3787
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House3.s
@@ -0,0 +1,22 @@
+SootopolisCity_House3_MapScripts:: @ 815B319
+ .byte 0
+
+SootopolisCity_House3_EventScript_15B31A:: @ 815B31A
+ lock
+ faceplayer
+ msgbox SootopolisCity_House3_Text_18FB36, 5
+ compare RESULT, 1
+ jumpeq SootopolisCity_House3_EventScript_15B339
+ msgbox SootopolisCity_House3_Text_18FBC0, 4
+ release
+ end
+
+SootopolisCity_House3_EventScript_15B339:: @ 815B339
+ msgbox SootopolisCity_House3_Text_18FB9C, 4
+ release
+ end
+
+SootopolisCity_House3_EventScript_15B343:: @ 815B343
+ msgbox SootopolisCity_House3_Text_18FC1A, 2
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House4.s b/data/scripts/maps/SootopolisCity_House4.s
new file mode 100644
index 000000000..f8fdd8b4b
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House4.s
@@ -0,0 +1,21 @@
+SootopolisCity_House4_MapScripts:: @ 815B34C
+ .byte 0
+
+SootopolisCity_House4_EventScript_15B34D:: @ 815B34D
+ msgbox SootopolisCity_House4_Text_18FC92, 2
+ end
+
+SootopolisCity_House4_EventScript_15B356:: @ 815B356
+ msgbox SootopolisCity_House4_Text_18FD41, 2
+ end
+
+SootopolisCity_House4_EventScript_15B35F:: @ 815B35F
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_AZUMARILL, 0
+ msgbox SootopolisCity_House4_Text_18FDD8, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House5.s b/data/scripts/maps/SootopolisCity_House5.s
new file mode 100644
index 000000000..b42855160
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House5.s
@@ -0,0 +1,11 @@
+SootopolisCity_House5_MapScripts:: @ 815B372
+ .byte 0
+
+SootopolisCity_House5_EventScript_15B373:: @ 815B373
+ msgbox SootopolisCity_House5_Text_18FDEC, 2
+ end
+
+SootopolisCity_House5_EventScript_15B37C:: @ 815B37C
+ msgbox SootopolisCity_House5_Text_18FE7B, 2
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House6.s b/data/scripts/maps/SootopolisCity_House6.s
new file mode 100644
index 000000000..429d0c438
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House6.s
@@ -0,0 +1,36 @@
+SootopolisCity_House6_MapScripts:: @ 815B385
+ .byte 0
+
+SootopolisCity_House6_EventScript_15B386:: @ 815B386
+ lock
+ faceplayer
+ checkflag 245
+ jumpeq SootopolisCity_House6_EventScript_15B3CD
+ msgbox SootopolisCity_House6_Text_18FEA1, 5
+ compare RESULT, 0
+ callif 1, SootopolisCity_House6_EventScript_15B3C3
+ msgbox SootopolisCity_House6_Text_18FF12, 4
+ givedecoration 117
+ compare RESULT, 0
+ jumpeq SootopolisCity_House6_EventScript_15B3D7
+ setflag 245
+ release
+ end
+
+SootopolisCity_House6_EventScript_15B3C3:: @ 815B3C3
+ msgbox SootopolisCity_House6_Text_18FF6D, 4
+ release
+ end
+
+SootopolisCity_House6_EventScript_15B3CD:: @ 815B3CD
+ msgbox SootopolisCity_House6_Text_18FF95, 4
+ release
+ end
+
+SootopolisCity_House6_EventScript_15B3D7:: @ 815B3D7
+ bufferdecor 1, 117
+ msgbox SootopolisCity_House6_Text_1A0CEF, 4
+ msgbox SootopolisCity_House6_Text_18FF28, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House7.s b/data/scripts/maps/SootopolisCity_House7.s
new file mode 100644
index 000000000..889f8993d
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House7.s
@@ -0,0 +1,11 @@
+SootopolisCity_House7_MapScripts:: @ 815B3ED
+ .byte 0
+
+SootopolisCity_House7_EventScript_15B3EE:: @ 815B3EE
+ msgbox SootopolisCity_House7_Text_18FFA9, 2
+ end
+
+SootopolisCity_House7_EventScript_15B3F7:: @ 815B3F7
+ msgbox SootopolisCity_House7_Text_19005B, 2
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_House8.s b/data/scripts/maps/SootopolisCity_House8.s
new file mode 100644
index 000000000..0f9ee3580
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_House8.s
@@ -0,0 +1,115 @@
+SootopolisCity_House8_MapScripts:: @ 815B400
+ .byte 0
+
+SootopolisCity_House8_EventScript_15B401:: @ 815B401
+ special 119
+ lock
+ faceplayer
+ msgbox SootopolisCity_House8_Text_1900F7, 4
+ special 159
+ waitstate
+ copyvar RESULT, 0x8004
+ compare RESULT, 255
+ jumpeq SootopolisCity_House8_EventScript_15B448
+ special 120
+ compare RESULT, 1
+ jumpeq SootopolisCity_House8_EventScript_15B452
+ compare RESULT, 2
+ jumpeq SootopolisCity_House8_EventScript_15B45C
+ compare RESULT, 3
+ jumpeq SootopolisCity_House8_EventScript_15B466
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B448:: @ 815B448
+ msgbox SootopolisCity_House8_Text_190366, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B452:: @ 815B452
+ msgbox SootopolisCity_House8_Text_190329, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B45C:: @ 815B45C
+ msgbox SootopolisCity_House8_Text_1902E4, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B466:: @ 815B466
+ msgbox SootopolisCity_House8_Text_19021D, 4
+ giveitem ITEM_ELIXIR
+ compare RESULT, 0
+ jumpeq SootopolisCity_House8_EventScript_15B488
+ closebutton
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B488:: @ 815B488
+ msgbox SootopolisCity_House8_Text_1902C4, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B492:: @ 815B492
+ special 121
+ lock
+ faceplayer
+ msgbox SootopolisCity_House8_Text_190431, 4
+ special 159
+ waitstate
+ copyvar RESULT, 0x8004
+ compare RESULT, 255
+ jumpeq SootopolisCity_House8_EventScript_15B4D9
+ special 122
+ compare RESULT, 1
+ jumpeq SootopolisCity_House8_EventScript_15B4E3
+ compare RESULT, 2
+ jumpeq SootopolisCity_House8_EventScript_15B4ED
+ compare RESULT, 3
+ jumpeq SootopolisCity_House8_EventScript_15B4F7
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B4D9:: @ 815B4D9
+ msgbox SootopolisCity_House8_Text_19065A, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B4E3:: @ 815B4E3
+ msgbox SootopolisCity_House8_Text_190628, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B4ED:: @ 815B4ED
+ msgbox SootopolisCity_House8_Text_1905E6, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B4F7:: @ 815B4F7
+ msgbox SootopolisCity_House8_Text_190536, 4
+ giveitem ITEM_ELIXIR
+ compare RESULT, 0
+ jumpeq SootopolisCity_House8_EventScript_15B519
+ closebutton
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B519:: @ 815B519
+ msgbox SootopolisCity_House8_Text_1905C1, 4
+ release
+ end
+
+SootopolisCity_House8_EventScript_15B523:: @ 815B523
+ special 119
+ lockall
+ msgbox SootopolisCity_House8_Text_1903C9, 4
+ releaseall
+ end
+
+SootopolisCity_House8_EventScript_15B531:: @ 815B531
+ special 121
+ lockall
+ msgbox SootopolisCity_House8_Text_1906BE, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_Mart.s b/data/scripts/maps/SootopolisCity_Mart.s
new file mode 100644
index 000000000..7dcb0e274
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_Mart.s
@@ -0,0 +1,61 @@
+SootopolisCity_Mart_MapScripts:: @ 815B21A
+ .byte 0
+
+SootopolisCity_Mart_EventScript_15B21B:: @ 815B21B
+ lock
+ faceplayer
+ message SootopolisCity_Mart_Text_1A0BE4
+ waittext
+ pokemart SootopolisCity_Mart_Pokemart_15B234
+ msgbox SootopolisCity_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x15b232, 0x2
+
+SootopolisCity_Mart_Pokemart_15B234:: @ 815B234
+ .2byte ITEM_ULTRA_BALL
+ .2byte ITEM_HYPER_POTION
+ .2byte ITEM_MAX_POTION
+ .2byte ITEM_FULL_HEAL
+ .2byte ITEM_REVIVE
+ .2byte ITEM_MAX_REPEL
+ .2byte ITEM_X_ATTACK
+ .2byte ITEM_X_DEFEND
+ .2byte ITEM_SHADOW_MAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+SootopolisCity_Mart_EventScript_15B24A:: @ 815B24A
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_Mart_EventScript_15B268
+ checkflag 129
+ jumpif 0, SootopolisCity_Mart_EventScript_15B268
+ msgbox SootopolisCity_Mart_Text_18F8D7, 4
+ release
+ end
+
+SootopolisCity_Mart_EventScript_15B268:: @ 815B268
+ msgbox SootopolisCity_Mart_Text_18F890, 4
+ release
+ end
+
+SootopolisCity_Mart_EventScript_15B272:: @ 815B272
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_Mart_EventScript_15B290
+ checkflag 129
+ jumpif 0, SootopolisCity_Mart_EventScript_15B290
+ msgbox SootopolisCity_Mart_Text_18F96B, 4
+ release
+ end
+
+SootopolisCity_Mart_EventScript_15B290:: @ 815B290
+ msgbox SootopolisCity_Mart_Text_18F8F2, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.s b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.s
new file mode 100644
index 000000000..1221fb845
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.s
@@ -0,0 +1,42 @@
+SootopolisCity_PokemonCenter_1F_MapScripts:: @ 815B190
+ map_script 3, SootopolisCity_PokemonCenter_1F_MapScript1_15B196
+ .byte 0
+
+SootopolisCity_PokemonCenter_1F_MapScript1_15B196:: @ 815B196
+ sethealplace 10
+ end
+
+ .incbin "baserom.gba", 0x15b19a, 0xe
+
+SootopolisCity_PokemonCenter_1F_EventScript_15B1A8:: @ 815B1A8
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
+ checkflag 129
+ jumpif 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
+ msgbox SootopolisCity_PokemonCenter_1F_Text_18F770, 4
+ release
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_15B1C6:: @ 815B1C6
+ msgbox SootopolisCity_PokemonCenter_1F_Text_18F6A2, 4
+ release
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_15B1D0:: @ 815B1D0
+ lock
+ faceplayer
+ checkflag 113
+ jumpeq SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
+ checkflag 129
+ jumpif 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
+ msgbox SootopolisCity_PokemonCenter_1F_Text_18F860, 4
+ release
+ end
+
+SootopolisCity_PokemonCenter_1F_EventScript_15B1EE:: @ 815B1EE
+ msgbox SootopolisCity_PokemonCenter_1F_Text_18F7EA, 4
+ release
+ end
+
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_2F.s b/data/scripts/maps/SootopolisCity_PokemonCenter_2F.s
new file mode 100644
index 000000000..2046a9042
--- /dev/null
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_2F.s
@@ -0,0 +1,18 @@
+SootopolisCity_PokemonCenter_2F_MapScripts:: @ 815B1F8
+ map_script 2, SootopolisCity_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, SootopolisCity_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, SootopolisCity_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+SootopolisCity_PokemonCenter_2F_EventScript_15B208:: @ 815B208
+ call SootopolisCity_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+SootopolisCity_PokemonCenter_2F_EventScript_15B20E:: @ 815B20E
+ call SootopolisCity_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+SootopolisCity_PokemonCenter_2F_EventScript_15B214:: @ 815B214
+ call SootopolisCity_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/SouthernIsland_Exterior.s b/data/scripts/maps/SouthernIsland_Exterior.s
new file mode 100644
index 000000000..9723647cd
--- /dev/null
+++ b/data/scripts/maps/SouthernIsland_Exterior.s
@@ -0,0 +1,54 @@
+SouthernIsland_Exterior_MapScripts:: @ 8160AD6
+ map_script 3, SouthernIsland_Exterior_MapScript1_160ADC
+ .byte 0
+
+SouthernIsland_Exterior_MapScript1_160ADC:: @ 8160ADC
+ setflag 2121
+ end
+
+SouthernIsland_Exterior_EventScript_160AE0:: @ 8160AE0
+ lock
+ faceplayer
+ msgbox SouthernIsland_Exterior_Text_1C5215, 5
+ compare RESULT, 0
+ jumpeq SouthernIsland_Exterior_EventScript_160B25
+ msgbox SouthernIsland_Exterior_Text_1C5281, 4
+ closebutton
+ move LAST_TALKED, SouthernIsland_Exterior_Movement_1A0845
+ waitmove 0
+ pause 30
+ spriteinvisible 1, 26, 9
+ setvar 0x8004, 2
+ call SouthernIsland_Exterior_EventScript_1A047C
+ warp LilycoveCity_Harbor, 255, 8, 11
+ waitstate
+ release
+ end
+
+SouthernIsland_Exterior_EventScript_160B25:: @ 8160B25
+ msgbox SouthernIsland_Exterior_Text_1C52A6, 4
+ release
+ end
+
+BattleTower_Outside_EventScript_160B2F:: @ 8160B2F
+ move 255, BattleTower_Outside_Movement_160B45
+ waitmove 0
+ return
+
+BattleTower_Outside_EventScript_160B3A:: @ 8160B3A
+ move 255, BattleTower_Outside_Movement_160B47
+ waitmove 0
+ return
+
+BattleTower_Outside_Movement_160B45:: @ 8160B45
+ step_down
+ step_end
+
+BattleTower_Outside_Movement_160B47:: @ 8160B47
+ step_left
+ step_25
+ step_end
+
+SouthernIsland_Exterior_EventScript_160B4A:: @ 8160B4A
+ msgbox SouthernIsland_Exterior_Text_1C52FB, 3
+ end
diff --git a/data/scripts/maps/SouthernIsland_Interior.s b/data/scripts/maps/SouthernIsland_Interior.s
new file mode 100644
index 000000000..63e5b78a9
--- /dev/null
+++ b/data/scripts/maps/SouthernIsland_Interior.s
@@ -0,0 +1,114 @@
+SouthernIsland_Interior_MapScripts:: @ 8160B53
+ map_script 5, SouthernIsland_Interior_MapScript1_160B5E
+ map_script 3, SouthernIsland_Interior_MapScript1_160B6C
+ .byte 0
+
+SouthernIsland_Interior_MapScript1_160B5E:: @ 8160B5E
+ checkflag 2145
+ callif 1, SouthernIsland_Interior_EventScript_160B68
+ end
+
+SouthernIsland_Interior_EventScript_160B68:: @ 8160B68
+ disappear 2
+ return
+
+SouthernIsland_Interior_MapScript1_160B6C:: @ 8160B6C
+ .ifdef SAPPHIRE
+ setvar 0x4011, 188
+ .else
+ setvar 0x4011, 187
+ .endif
+ call SouthernIsland_Interior_EventScript_160B77
+ end
+
+SouthernIsland_Interior_EventScript_160B77:: @ 8160B77
+ checkgender
+ compare RESULT, 0
+ jumpeq SouthernIsland_Interior_EventScript_160B8F
+ compare RESULT, 1
+ jumpeq SouthernIsland_Interior_EventScript_160B95
+ end
+
+SouthernIsland_Interior_EventScript_160B8F:: @ 8160B8F
+ setvar 0x4010, 100
+ return
+
+SouthernIsland_Interior_EventScript_160B95:: @ 8160B95
+ setvar 0x4010, 105
+ return
+
+SouthernIsland_Interior_EventScript_160B9B:: @ 8160B9B
+ lockall
+ setvar 0x8008, 12
+ jump SouthernIsland_Interior_EventScript_160BA7
+ end
+
+SouthernIsland_Interior_EventScript_160BA7:: @ 8160BA7
+ checkflag 206
+ jumpeq SouthernIsland_Interior_EventScript_160C08
+ checkflag 2131
+ jumpif 0, SouthernIsland_Interior_EventScript_160C08
+ setflag 206
+ special 275
+ move 127, SouthernIsland_Interior_Movement_160C12
+ waitmove 0
+ pause 50
+ checksound
+ pokecry SPECIES_LATIAS_OR_LATIOS, 0
+ pause 30
+ waitpokecry
+ reappear 2
+ pause 30
+ move 127, SouthernIsland_Interior_Movement_160C16
+ move 2, SouthernIsland_Interior_Movement_160C22
+ waitmove 0
+ pause 50
+ special 276
+ setwildbattle SPECIES_LATIAS_OR_LATIOS, 50, ITEM_SOUL_DEW
+ setflag 911
+ setflag 2145
+ special 323
+ waitstate
+ clearflag 2145
+ releaseall
+ end
+
+SouthernIsland_Interior_EventScript_160C08:: @ 8160C08
+ msgbox SouthernIsland_Interior_Text_1C52C5, 4
+ releaseall
+ end
+
+SouthernIsland_Interior_Movement_160C12:: @ 8160C12
+ step_up
+ step_up
+ step_up
+ step_end
+
+SouthernIsland_Interior_Movement_160C16:: @ 8160C16
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_14
+ step_down
+ step_down
+ step_down
+ step_26
+ step_end
+
+SouthernIsland_Interior_Movement_160C22:: @ 8160C22
+ step_down
+ step_down
+ step_down
+ step_down
+ step_down
+ step_14
+ step_14
+ step_down
+ step_down
+ step_down
+ step_down
+ step_end
+
diff --git a/data/scripts/maps/TradeCenter.s b/data/scripts/maps/TradeCenter.s
new file mode 100644
index 000000000..44efcf62f
--- /dev/null
+++ b/data/scripts/maps/TradeCenter.s
@@ -0,0 +1,3 @@
+TradeCenter_MapScripts:: @ 815F57D
+ .byte 0
+
diff --git a/data/scripts/maps/Underwater1.s b/data/scripts/maps/Underwater1.s
new file mode 100644
index 000000000..aedbe82c4
--- /dev/null
+++ b/data/scripts/maps/Underwater1.s
@@ -0,0 +1,3 @@
+Underwater1_MapScripts:: @ 8152637
+ .byte 0
+
diff --git a/data/scripts/maps/Underwater2.s b/data/scripts/maps/Underwater2.s
new file mode 100644
index 000000000..4da2a5cb2
--- /dev/null
+++ b/data/scripts/maps/Underwater2.s
@@ -0,0 +1,3 @@
+Underwater2_MapScripts:: @ 8152638
+ .byte 0
+
diff --git a/data/scripts/maps/Underwater3.s b/data/scripts/maps/Underwater3.s
new file mode 100644
index 000000000..b87c72c9f
--- /dev/null
+++ b/data/scripts/maps/Underwater3.s
@@ -0,0 +1,3 @@
+Underwater3_MapScripts:: @ 8152639
+ .byte 0
+
diff --git a/data/scripts/maps/Underwater4.s b/data/scripts/maps/Underwater4.s
new file mode 100644
index 000000000..a6d8f1bd0
--- /dev/null
+++ b/data/scripts/maps/Underwater4.s
@@ -0,0 +1,3 @@
+Underwater4_MapScripts:: @ 815263A
+ .byte 0
+
diff --git a/data/scripts/maps/Underwater_Route134.s b/data/scripts/maps/Underwater_Route134.s
new file mode 100644
index 000000000..427481eda
--- /dev/null
+++ b/data/scripts/maps/Underwater_Route134.s
@@ -0,0 +1,8 @@
+Underwater_Route134_MapScripts:: @ 815F071
+ map_script 5, Underwater_Route134_MapScript1_15F077
+ .byte 0
+
+Underwater_Route134_MapScript1_15F077:: @ 815F077
+ warp4 Route134, 255, 60, 31
+ end
+
diff --git a/data/scripts/maps/Underwater_SeafloorCavern.s b/data/scripts/maps/Underwater_SeafloorCavern.s
new file mode 100644
index 000000000..4a0388146
--- /dev/null
+++ b/data/scripts/maps/Underwater_SeafloorCavern.s
@@ -0,0 +1,46 @@
+Underwater_SeafloorCavern_MapScripts:: @ 815D99E
+ map_script 5, Underwater_SeafloorCavern_MapScript1_15DA36
+ map_script 3, Underwater_SeafloorCavern_MapScript1_15D9AE
+ map_script 1, Underwater_SeafloorCavern_MapScript1_15D9BF
+ .byte 0
+
+Underwater_SeafloorCavern_MapScript1_15D9AE:: @ 815D9AE
+ setflag 2119
+ checkflag 129
+ jumpeq Underwater_SeafloorCavern_EventScript_15D9BB
+ end
+
+Underwater_SeafloorCavern_EventScript_15D9BB:: @ 815D9BB
+ setflag 980
+ end
+
+Underwater_SeafloorCavern_MapScript1_15D9BF:: @ 815D9BF
+ checkflag 129
+ callif 1, Underwater_SeafloorCavern_EventScript_15D9C9
+ end
+
+Underwater_SeafloorCavern_EventScript_15D9C9:: @ 815D9C9
+ setmaptile 5, 3, 542, 1
+ setmaptile 6, 3, 542, 1
+ setmaptile 7, 3, 542, 1
+ setmaptile 8, 3, 542, 1
+ setmaptile 5, 4, 552, 0
+ setmaptile 6, 4, 552, 0
+ setmaptile 7, 4, 552, 0
+ setmaptile 8, 4, 552, 0
+ setmaptile 5, 5, 552, 0
+ setmaptile 6, 5, 552, 0
+ setmaptile 7, 5, 552, 0
+ setmaptile 8, 5, 552, 0
+ return
+
+Underwater_SeafloorCavern_MapScript1_15DA36:: @ 815DA36
+ warp4 SeafloorCavern_Entrance, 255, 10, 17
+ end
+
+Underwater_SeafloorCavern_EventScript_15DA3F:: @ 815DA3F
+ lockall
+ msgbox Underwater_SeafloorCavern_Text_197435, 4
+ releaseall
+ end
+
diff --git a/data/scripts/maps/Underwater_SealedChamber.s b/data/scripts/maps/Underwater_SealedChamber.s
new file mode 100644
index 000000000..8e790ddc0
--- /dev/null
+++ b/data/scripts/maps/Underwater_SealedChamber.s
@@ -0,0 +1,28 @@
+Underwater_SealedChamber_MapScripts:: @ 815F080
+ map_script 6, Underwater_SealedChamber_MapScript1_15F086
+ .byte 0
+
+Underwater_SealedChamber_MapScript1_15F086:: @ 815F086
+ getplayerxy 0x8004, 0x8005
+ compare 0x8004, 12
+ jumpif 5, Underwater_SealedChamber_EventScript_15F0A6
+ compare 0x8005, 44
+ jumpif 5, Underwater_SealedChamber_EventScript_15F0A6
+ jump Underwater_SealedChamber_EventScript_15F0AF
+
+Underwater_SealedChamber_EventScript_15F0A6:: @ 815F0A6
+ warp4 Route134, 255, 60, 31
+ end
+
+Underwater_SealedChamber_EventScript_15F0AF:: @ 815F0AF
+ warp4 SealedChamber_OuterRoom, 255, 10, 19
+ end
+
+Underwater_SealedChamber_EventScript_15F0B8:: @ 815F0B8
+ lockall
+ braillemsg Underwater_SealedChamber_Braille_1C533D
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/Underwater_SootopolisCity.s b/data/scripts/maps/Underwater_SootopolisCity.s
new file mode 100644
index 000000000..aa3465cb7
--- /dev/null
+++ b/data/scripts/maps/Underwater_SootopolisCity.s
@@ -0,0 +1,8 @@
+Underwater_SootopolisCity_MapScripts:: @ 815CAE4
+ map_script 5, Underwater_SootopolisCity_MapScript1_15CAEA
+ .byte 0
+
+Underwater_SootopolisCity_MapScript1_15CAEA:: @ 815CAEA
+ warp4 SootopolisCity, 255, 29, 53
+ end
+
diff --git a/data/scripts/maps/UnknownMap_25_29.s b/data/scripts/maps/UnknownMap_25_29.s
new file mode 100644
index 000000000..a62e0c9f3
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_29.s
@@ -0,0 +1 @@
+UnknownMap_25_29_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/UnknownMap_25_30.s b/data/scripts/maps/UnknownMap_25_30.s
new file mode 100644
index 000000000..70a1f0ac2
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_30.s
@@ -0,0 +1 @@
+UnknownMap_25_30_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/UnknownMap_25_31.s b/data/scripts/maps/UnknownMap_25_31.s
new file mode 100644
index 000000000..44c67cab5
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_31.s
@@ -0,0 +1 @@
+UnknownMap_25_31_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/UnknownMap_25_32.s b/data/scripts/maps/UnknownMap_25_32.s
new file mode 100644
index 000000000..485a626e6
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_32.s
@@ -0,0 +1 @@
+UnknownMap_25_32_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/UnknownMap_25_33.s b/data/scripts/maps/UnknownMap_25_33.s
new file mode 100644
index 000000000..68feb9cc6
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_33.s
@@ -0,0 +1 @@
+UnknownMap_25_33_MapScripts:: @ 815F580
diff --git a/data/scripts/maps/UnknownMap_25_34.s b/data/scripts/maps/UnknownMap_25_34.s
new file mode 100644
index 000000000..3fc7b181a
--- /dev/null
+++ b/data/scripts/maps/UnknownMap_25_34.s
@@ -0,0 +1,430 @@
+UnknownMap_25_34_MapScripts:: @ 815F580
+ map_script 4, LinkContestRoom1_MapScript2_15F610
+ map_script 2, LinkContestRoom1_MapScript2_15F606
+ map_script 3, LinkContestRoom1_MapScript1_15F595
+ map_script 5, LinkContestRoom1_MapScript1_15F5F4
+ .byte 0
+
+LinkContestRoom1_MapScript1_15F595:: @ 815F595
+ call LinkContestRoom1_EventScript_15F5A5
+ setvar 0x4000, 1
+ call LinkContestRoom1_EventScript_15F630
+ end
+
+LinkContestRoom1_EventScript_15F5A5:: @ 815F5A5
+ special 326
+ compare RESULT, 0
+ callif 1, LinkContestRoom1_EventScript_15F5E0
+ compare RESULT, 1
+ callif 1, LinkContestRoom1_EventScript_15F5E4
+ compare RESULT, 2
+ callif 1, LinkContestRoom1_EventScript_15F5E8
+ compare RESULT, 3
+ callif 1, LinkContestRoom1_EventScript_15F5EC
+ compare RESULT, 4
+ callif 1, LinkContestRoom1_EventScript_15F5F0
+ return
+
+LinkContestRoom1_EventScript_15F5E0:: @ 815F5E0
+ playmusicbattle 393
+ return
+
+LinkContestRoom1_EventScript_15F5E4:: @ 815F5E4
+ playmusicbattle 394
+ return
+
+LinkContestRoom1_EventScript_15F5E8:: @ 815F5E8
+ playmusicbattle 395
+ return
+
+LinkContestRoom1_EventScript_15F5EC:: @ 815F5EC
+ playmusicbattle 396
+ return
+
+LinkContestRoom1_EventScript_15F5F0:: @ 815F5F0
+ playmusicbattle 440
+ return
+
+LinkContestRoom1_MapScript1_15F5F4:: @ 815F5F4
+ compare 0x4009, 1
+ callif 1, LinkContestRoom1_EventScript_15F600
+ end
+
+LinkContestRoom1_EventScript_15F600:: @ 815F600
+ call LinkContestRoom1_EventScript_15F919
+ return
+
+LinkContestRoom1_MapScript2_15F606:: @ 815F606
+ map_script_2 0x4086, 1, LinkContestRoom1_EventScript_15F61A
+ .2byte 0
+
+LinkContestRoom1_MapScript2_15F610:: @ 815F610
+ map_script_2 0x4086, 1, LinkContestRoom1_EventScript_15F625
+ .2byte 0
+
+LinkContestRoom1_EventScript_15F61A:: @ 815F61A
+ call LinkContestRoom1_EventScript_1A514D
+ call LinkContestRoom1_EventScript_15FB64
+ end
+
+LinkContestRoom1_EventScript_15F625:: @ 815F625
+ spriteinvisible 255, 0, 9
+ call LinkContestRoom1_EventScript_15F919
+ end
+
+LinkContestRoom1_EventScript_15F630:: @ 815F630
+ call LinkContestRoom1_EventScript_15F6E6
+ call LinkContestRoom1_EventScript_15F646
+ compare 0x4000, 8
+ jumpif 0, LinkContestRoom1_EventScript_15F630
+ return
+
+LinkContestRoom1_EventScript_15F646:: @ 815F646
+ switch 0x4000
+ case 1, LinkContestRoom1_EventScript_15F699
+ case 2, LinkContestRoom1_EventScript_15F6A4
+ case 3, LinkContestRoom1_EventScript_15F6AF
+ case 4, LinkContestRoom1_EventScript_15F6BA
+ case 5, LinkContestRoom1_EventScript_15F6C5
+ case 6, LinkContestRoom1_EventScript_15F6D0
+ case 7, LinkContestRoom1_EventScript_15F6DB
+ end
+
+LinkContestRoom1_EventScript_15F699:: @ 815F699
+ copyvar 0x4014, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6A4:: @ 815F6A4
+ copyvar 0x4015, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6AF:: @ 815F6AF
+ copyvar 0x4016, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6BA:: @ 815F6BA
+ copyvar 0x4017, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6C5:: @ 815F6C5
+ copyvar 0x4018, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6D0:: @ 815F6D0
+ copyvar 0x4019, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6DB:: @ 815F6DB
+ copyvar 0x401a, 0x4001
+ addvar 0x4000, 1
+ return
+
+LinkContestRoom1_EventScript_15F6E6:: @ 815F6E6
+ setvar RESULT, 32
+ special 340
+ addvar RESULT, 1
+ switch RESULT
+ case 1, LinkContestRoom1_EventScript_15F859
+ case 2, LinkContestRoom1_EventScript_15F85F
+ case 3, LinkContestRoom1_EventScript_15F865
+ case 4, LinkContestRoom1_EventScript_15F86B
+ case 5, LinkContestRoom1_EventScript_15F871
+ case 6, LinkContestRoom1_EventScript_15F877
+ case 7, LinkContestRoom1_EventScript_15F87D
+ case 8, LinkContestRoom1_EventScript_15F883
+ case 9, LinkContestRoom1_EventScript_15F889
+ case 10, LinkContestRoom1_EventScript_15F88F
+ case 11, LinkContestRoom1_EventScript_15F895
+ case 12, LinkContestRoom1_EventScript_15F89B
+ case 13, LinkContestRoom1_EventScript_15F8A1
+ case 14, LinkContestRoom1_EventScript_15F8A7
+ case 15, LinkContestRoom1_EventScript_15F8AD
+ case 16, LinkContestRoom1_EventScript_15F8B3
+ case 17, LinkContestRoom1_EventScript_15F8B9
+ case 18, LinkContestRoom1_EventScript_15F8BF
+ case 19, LinkContestRoom1_EventScript_15F8C5
+ case 20, LinkContestRoom1_EventScript_15F8CB
+ case 21, LinkContestRoom1_EventScript_15F8D1
+ case 22, LinkContestRoom1_EventScript_15F8D7
+ case 23, LinkContestRoom1_EventScript_15F8DD
+ case 24, LinkContestRoom1_EventScript_15F8E3
+ case 25, LinkContestRoom1_EventScript_15F8E9
+ case 26, LinkContestRoom1_EventScript_15F8EF
+ case 27, LinkContestRoom1_EventScript_15F8F5
+ case 28, LinkContestRoom1_EventScript_15F8FB
+ case 29, LinkContestRoom1_EventScript_15F901
+ case 30, LinkContestRoom1_EventScript_15F907
+ case 31, LinkContestRoom1_EventScript_15F90D
+ case 32, LinkContestRoom1_EventScript_15F913
+ end
+
+LinkContestRoom1_EventScript_15F859:: @ 815F859
+ setvar 0x4001, 5
+ return
+
+LinkContestRoom1_EventScript_15F85F:: @ 815F85F
+ setvar 0x4001, 6
+ return
+
+LinkContestRoom1_EventScript_15F865:: @ 815F865
+ setvar 0x4001, 7
+ return
+
+LinkContestRoom1_EventScript_15F86B:: @ 815F86B
+ setvar 0x4001, 8
+ return
+
+LinkContestRoom1_EventScript_15F871:: @ 815F871
+ setvar 0x4001, 10
+ return
+
+LinkContestRoom1_EventScript_15F877:: @ 815F877
+ setvar 0x4001, 11
+ return
+
+LinkContestRoom1_EventScript_15F87D:: @ 815F87D
+ setvar 0x4001, 12
+ return
+
+LinkContestRoom1_EventScript_15F883:: @ 815F883
+ setvar 0x4001, 13
+ return
+
+LinkContestRoom1_EventScript_15F889:: @ 815F889
+ setvar 0x4001, 14
+ return
+
+LinkContestRoom1_EventScript_15F88F:: @ 815F88F
+ setvar 0x4001, 15
+ return
+
+LinkContestRoom1_EventScript_15F895:: @ 815F895
+ setvar 0x4001, 17
+ return
+
+LinkContestRoom1_EventScript_15F89B:: @ 815F89B
+ setvar 0x4001, 18
+ return
+
+LinkContestRoom1_EventScript_15F8A1:: @ 815F8A1
+ setvar 0x4001, 19
+ return
+
+LinkContestRoom1_EventScript_15F8A7:: @ 815F8A7
+ setvar 0x4001, 20
+ return
+
+LinkContestRoom1_EventScript_15F8AD:: @ 815F8AD
+ setvar 0x4001, 21
+ return
+
+LinkContestRoom1_EventScript_15F8B3:: @ 815F8B3
+ setvar 0x4001, 22
+ return
+
+LinkContestRoom1_EventScript_15F8B9:: @ 815F8B9
+ setvar 0x4001, 25
+ return
+
+LinkContestRoom1_EventScript_15F8BF:: @ 815F8BF
+ setvar 0x4001, 26
+ return
+
+LinkContestRoom1_EventScript_15F8C5:: @ 815F8C5
+ setvar 0x4001, 27
+ return
+
+LinkContestRoom1_EventScript_15F8CB:: @ 815F8CB
+ setvar 0x4001, 47
+ return
+
+LinkContestRoom1_EventScript_15F8D1:: @ 815F8D1
+ setvar 0x4001, 30
+ return
+
+LinkContestRoom1_EventScript_15F8D7:: @ 815F8D7
+ setvar 0x4001, 31
+ return
+
+LinkContestRoom1_EventScript_15F8DD:: @ 815F8DD
+ setvar 0x4001, 32
+ return
+
+LinkContestRoom1_EventScript_15F8E3:: @ 815F8E3
+ setvar 0x4001, 33
+ return
+
+LinkContestRoom1_EventScript_15F8E9:: @ 815F8E9
+ setvar 0x4001, 34
+ return
+
+LinkContestRoom1_EventScript_15F8EF:: @ 815F8EF
+ setvar 0x4001, 35
+ return
+
+LinkContestRoom1_EventScript_15F8F5:: @ 815F8F5
+ setvar 0x4001, 36
+ return
+
+LinkContestRoom1_EventScript_15F8FB:: @ 815F8FB
+ setvar 0x4001, 37
+ return
+
+LinkContestRoom1_EventScript_15F901:: @ 815F901
+ setvar 0x4001, 38
+ return
+
+LinkContestRoom1_EventScript_15F907:: @ 815F907
+ setvar 0x4001, 44
+ return
+
+LinkContestRoom1_EventScript_15F90D:: @ 815F90D
+ setvar 0x4001, 45
+ return
+
+LinkContestRoom1_EventScript_15F913:: @ 815F913
+ setvar 0x4001, 46
+ return
+
+LinkContestRoom1_EventScript_15F919:: @ 815F919
+ switch 0x4088
+ case 1, LinkContestRoom1_EventScript_15F956
+ case 2, LinkContestRoom1_EventScript_15F969
+ case 3, LinkContestRoom1_EventScript_15F9C4
+ case 4, LinkContestRoom1_EventScript_15FA70
+ case 5, LinkContestRoom1_EventScript_15FA70
+ return
+
+LinkContestRoom1_EventScript_15F956:: @ 815F956
+ createvsprite 5, 20, 3, 2, 3, 1
+ createvsprite 46, 24, 11, 2, 3, 1
+ return
+
+LinkContestRoom1_EventScript_15F969:: @ 815F969
+ createvsprite 45, 0, 2, 3, 3, 4
+ createvsprite 66, 1, 2, 4, 3, 4
+ createvsprite 55, 2, 2, 7, 3, 4
+ createvsprite 46, 3, 2, 8, 3, 4
+ createvsprite 5, 10, 12, 3, 3, 3
+ createvsprite 20, 11, 12, 4, 3, 3
+ createvsprite 24, 12, 12, 7, 3, 3
+ createvsprite 12, 13, 12, 8, 3, 3
+ createvsprite 47, 20, 3, 2, 3, 1
+ createvsprite 46, 24, 11, 2, 3, 1
+ return
+
+LinkContestRoom1_EventScript_15F9C4:: @ 815F9C4
+ createvsprite 45, 0, 2, 3, 3, 4
+ createvsprite 66, 1, 2, 4, 3, 4
+ createvsprite 55, 2, 2, 7, 3, 4
+ createvsprite 48, 3, 2, 8, 3, 4
+ createvsprite 5, 10, 12, 3, 3, 3
+ createvsprite 20, 11, 12, 4, 3, 3
+ createvsprite 24, 12, 12, 7, 3, 3
+ createvsprite 45, 13, 12, 8, 3, 3
+ createvsprite 22, 20, 3, 2, 3, 1
+ createvsprite 23, 20, 6, 2, 3, 1
+ createvsprite 34, 20, 7, 2, 3, 1
+ createvsprite 46, 24, 8, 2, 3, 1
+ createvsprite 48, 24, 11, 2, 3, 1
+ createvsprite 11, 25, 3, 9, 3, 2
+ createvsprite 35, 26, 4, 9, 3, 2
+ createvsprite 17, 27, 5, 9, 3, 2
+ createvsprite 41, 28, 9, 9, 3, 2
+ createvsprite 38, 29, 10, 9, 3, 2
+ createvsprite 83, 30, 11, 9, 3, 2
+ return
+
+LinkContestRoom1_EventScript_15FA70:: @ 815FA70
+ createvsprite 45, 0, 2, 3, 3, 4
+ createvsprite 66, 1, 2, 4, 3, 4
+ createvsprite 55, 2, 2, 7, 3, 4
+ createvsprite 12, 3, 2, 8, 3, 4
+ createvsprite 39, 4, 1, 3, 3, 4
+ createvsprite 34, 6, 1, 5, 3, 4
+ createvsprite 26, 7, 1, 6, 3, 4
+ createvsprite 48, 9, 1, 8, 3, 4
+ createvsprite 5, 10, 12, 3, 3, 3
+ createvsprite 20, 11, 12, 4, 3, 3
+ createvsprite 24, 12, 12, 7, 3, 3
+ createvsprite 45, 13, 12, 8, 3, 3
+ createvsprite 50, 14, 13, 3, 3, 3
+ createvsprite 52, 15, 13, 4, 3, 3
+ createvsprite 65, 17, 13, 6, 3, 3
+ createvsprite 83, 18, 13, 7, 3, 3
+ createvsprite 116, 19, 13, 8, 3, 3
+ createvsprite 25, 20, 3, 2, 3, 1
+ createvsprite 31, 21, 6, 2, 3, 1
+ createvsprite 33, 22, 7, 2, 3, 1
+ createvsprite 46, 24, 11, 2, 3, 1
+ createvsprite 49, 25, 3, 9, 3, 2
+ createvsprite 35, 26, 4, 9, 3, 2
+ createvsprite 48, 27, 5, 9, 3, 2
+ createvsprite 41, 28, 9, 9, 3, 2
+ createvsprite 38, 29, 10, 9, 3, 2
+ createvsprite 83, 30, 11, 9, 3, 2
+ return
+
+LinkContestRoom1_EventScript_15FB64:: @ 815FB64
+ switch 0x4088
+ case 1, LinkContestRoom1_EventScript_15FBA1
+ case 2, LinkContestRoom1_EventScript_15FBAD
+ case 3, LinkContestRoom1_EventScript_15FBB9
+ case 4, LinkContestRoom1_EventScript_15FBC5
+ case 5, LinkContestRoom1_EventScript_15FBD1
+ return
+
+LinkContestRoom1_EventScript_15FBA1:: @ 815FBA1
+ inccounter 36
+ warp VerdanturfTown_ContestLobby, 255, 5, 4
+ waitstate
+ end
+
+LinkContestRoom1_EventScript_15FBAD:: @ 815FBAD
+ inccounter 36
+ warp FallarborTown_ContestLobby, 255, 5, 4
+ waitstate
+ end
+
+LinkContestRoom1_EventScript_15FBB9:: @ 815FBB9
+ inccounter 36
+ warp SlateportCity_ContestLobby, 255, 5, 4
+ waitstate
+ end
+
+LinkContestRoom1_EventScript_15FBC5:: @ 815FBC5
+ inccounter 36
+ warp LilycoveCity_ContestLobby, 255, 6, 4
+ waitstate
+ end
+
+LinkContestRoom1_EventScript_15FBD1:: @ 815FBD1
+ warp LilycoveCity_ContestLobby, 255, 7, 4
+ waitstate
+ end
+
+FallarborTown_ContestLobby_EventScript_15FBDB:: @ 815FBDB
+LilycoveCity_ContestLobby_EventScript_15FBDB:: @ 815FBDB
+SlateportCity_ContestLobby_EventScript_15FBDB:: @ 815FBDB
+VerdanturfTown_ContestLobby_EventScript_15FBDB:: @ 815FBDB
+ checkgender
+ compare RESULT, 0
+ jumpeq FallarborTown_ContestLobby_EventScript_15FBF3
+ compare RESULT, 1
+ jumpeq FallarborTown_ContestLobby_EventScript_15FBF9
+ return
+
+FallarborTown_ContestLobby_EventScript_15FBF3:: @ 815FBF3
+ setvar 0x4013, 100
+ return
+
+FallarborTown_ContestLobby_EventScript_15FBF9:: @ 815FBF9
+ setvar 0x4013, 105
+ return
+
diff --git a/data/scripts/maps/VerdanturfTown.s b/data/scripts/maps/VerdanturfTown.s
new file mode 100644
index 000000000..6b702a243
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown.s
@@ -0,0 +1,66 @@
+VerdanturfTown_MapScripts:: @ 814E854
+ map_script 3, VerdanturfTown_MapScript1_14E85A
+ .byte 0
+
+VerdanturfTown_MapScript1_14E85A:: @ 814E85A
+ setflag 2068
+ setvar 0x4086, 0
+ setflag 801
+ end
+
+VerdanturfTown_EventScript_14E866:: @ 814E866
+ lock
+ faceplayer
+ checkflag 199
+ jumpeq VerdanturfTown_EventScript_14E885
+ msgbox VerdanturfTown_Text_16CAEB, 4
+ move 2, VerdanturfTown_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+VerdanturfTown_EventScript_14E885:: @ 814E885
+ msgbox VerdanturfTown_Text_16CBCE, 4
+ move 2, VerdanturfTown_Movement_1A083D
+ waitmove 0
+ release
+ end
+
+VerdanturfTown_EventScript_14E899:: @ 814E899
+ msgbox VerdanturfTown_Text_16CC24, 2
+ end
+
+VerdanturfTown_EventScript_14E8A2:: @ 814E8A2
+ msgbox VerdanturfTown_Text_16CCD0, 2
+ end
+
+VerdanturfTown_EventScript_14E8AB:: @ 814E8AB
+ lock
+ faceplayer
+ checkflag 199
+ jumpeq VerdanturfTown_EventScript_14E8C0
+ msgbox VerdanturfTown_Text_16CD4D, 4
+ release
+ end
+
+VerdanturfTown_EventScript_14E8C0:: @ 814E8C0
+ msgbox VerdanturfTown_Text_16CE30, 4
+ release
+ end
+
+VerdanturfTown_EventScript_14E8CA:: @ 814E8CA
+ msgbox VerdanturfTown_Text_16CEC0, 3
+ end
+
+VerdanturfTown_EventScript_14E8D3:: @ 814E8D3
+ msgbox VerdanturfTown_Text_16CF0D, 3
+ end
+
+VerdanturfTown_EventScript_14E8DC:: @ 814E8DC
+ msgbox VerdanturfTown_Text_16CF1B, 3
+ end
+
+VerdanturfTown_EventScript_14E8E5:: @ 814E8E5
+ msgbox VerdanturfTown_Text_16CF6D, 3
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_ContestHall.s b/data/scripts/maps/VerdanturfTown_ContestHall.s
new file mode 100644
index 000000000..fe4f91cef
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_ContestHall.s
@@ -0,0 +1,21 @@
+VerdanturfTown_ContestHall_MapScripts:: @ 8153E95
+ .byte 0
+
+ .incbin "baserom.gba", 0x153e96, 0x1
+
+VerdanturfTown_ContestHall_EventScript_153E97:: @ 8153E97
+ msgbox VerdanturfTown_ContestHall_Text_177FB4, 2
+ end
+
+VerdanturfTown_ContestHall_EventScript_153EA0:: @ 8153EA0
+ msgbox VerdanturfTown_ContestHall_Text_178091, 2
+ end
+
+VerdanturfTown_ContestHall_EventScript_153EA9:: @ 8153EA9
+ msgbox VerdanturfTown_ContestHall_Text_178120, 2
+ end
+
+VerdanturfTown_ContestHall_EventScript_153EB2:: @ 8153EB2
+ msgbox VerdanturfTown_ContestHall_Text_1781A5, 3
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_ContestLobby.s b/data/scripts/maps/VerdanturfTown_ContestLobby.s
new file mode 100644
index 000000000..2f0d74896
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_ContestLobby.s
@@ -0,0 +1,130 @@
+VerdanturfTown_ContestLobby_MapScripts:: @ 8153D6A
+ map_script 3, VerdanturfTown_ContestLobby_MapScript1_153D70
+ .byte 0
+
+VerdanturfTown_ContestLobby_MapScript1_153D70:: @ 8153D70
+ call VerdanturfTown_ContestLobby_EventScript_1AE188
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153D76:: @ 8153D76
+ setvar 0x800b, 5
+ setvar 0x8010, 0
+ call VerdanturfTown_ContestLobby_EventScript_1A4E92
+ call VerdanturfTown_ContestLobby_EventScript_153DA1
+ special 83
+ call VerdanturfTown_ContestLobby_EventScript_15FBDB
+ setvar 0x4088, 1
+ warp LinkContestRoom1, 255, 7, 5
+ waitstate
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153DA1:: @ 8153DA1
+ lockall
+ move 1, VerdanturfTown_ContestLobby_Movement_153E25
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 545, 1
+ setmaptile 4, 3, 609, 1
+ special 142
+ move 1, VerdanturfTown_ContestLobby_Movement_153E28
+ waitmove 0
+ playsfx 71
+ setmaptile 4, 2, 721, 1
+ setmaptile 4, 3, 729, 1
+ special 142
+ pause 20
+ move 1, VerdanturfTown_ContestLobby_Movement_153E35
+ waitmove 0
+ move 255, VerdanturfTown_ContestLobby_Movement_153E23
+ waitmove 0
+ msgbox VerdanturfTown_ContestLobby_Text_1A6832, 4
+ closebutton
+ move 1, VerdanturfTown_ContestLobby_Movement_153E2C
+ move 255, VerdanturfTown_ContestLobby_Movement_153E19
+ waitmove 0
+ releaseall
+ return
+
+VerdanturfTown_ContestLobby_Movement_153E19:: @ 8153E19
+ step_left
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+VerdanturfTown_ContestLobby_Movement_153E23:: @ 8153E23
+ step_27
+ step_end
+
+VerdanturfTown_ContestLobby_Movement_153E25:: @ 8153E25
+ step_left
+ step_25
+ step_end
+
+VerdanturfTown_ContestLobby_Movement_153E28:: @ 8153E28
+ step_down
+ step_down
+ step_26
+ step_end
+
+VerdanturfTown_ContestLobby_Movement_153E2C:: @ 8153E2C
+ step_left
+ step_left
+ step_left
+ step_up
+ step_up
+ step_up
+ step_13
+ step_54
+ step_end
+
+VerdanturfTown_ContestLobby_Movement_153E35:: @ 8153E35
+ step_28
+ step_end
+
+VerdanturfTown_ContestLobby_EventScript_153E37:: @ 8153E37
+ lockall
+ fadescreen 1
+ showcontestwinner 1
+ releaseall
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153E3E:: @ 8153E3E
+ msgbox VerdanturfTown_ContestLobby_Text_177D6C, 2
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153E47:: @ 8153E47
+ lock
+ faceplayer
+ checkflag 235
+ jumpeq VerdanturfTown_ContestLobby_EventScript_153E76
+ msgbox VerdanturfTown_ContestLobby_Text_177DEC, 4
+ giveitem ITEM_TM45
+ compare RESULT, 0
+ jumpeq VerdanturfTown_ContestLobby_EventScript_1A029B
+ setflag 235
+ release
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153E76:: @ 8153E76
+ msgbox VerdanturfTown_ContestLobby_Text_177E98, 4
+ release
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153E80:: @ 8153E80
+ msgbox VerdanturfTown_ContestLobby_Text_177ECD, 2
+ end
+
+VerdanturfTown_ContestLobby_EventScript_153E89:: @ 8153E89
+ lockall
+ special 259
+ waitbutton
+ hidebox 0, 0, 29, 19
+ releaseall
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s
new file mode 100644
index 000000000..f2b561733
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s
@@ -0,0 +1,64 @@
+VerdanturfTown_FriendshipRatersHouse_MapScripts:: @ 815402F
+ .byte 0
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_154030:: @ 8154030
+ lock
+ faceplayer
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178A9C, 4
+ specialval RESULT, 230
+ switch RESULT
+ case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_154093
+ case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_15409D
+ case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_1540A7
+ case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_1540B1
+ case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_1540BB
+ case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_1540C5
+ case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_1540CF
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_154093:: @ 8154093
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178C90, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_15409D:: @ 815409D
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178C39, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540A7:: @ 81540A7
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178BFA, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540B1:: @ 81540B1
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178BC4, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540BB:: @ 81540BB
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178B82, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540C5:: @ 81540C5
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178B43, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540CF:: @ 81540CF
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178AF2, 4
+ release
+ end
+
+VerdanturfTown_FriendshipRatersHouse_EventScript_1540D9:: @ 81540D9
+ lock
+ faceplayer
+ checksound
+ pokecry SPECIES_PIKACHU, 0
+ msgbox VerdanturfTown_FriendshipRatersHouse_Text_178CFD, 4
+ waitpokecry
+ release
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_House.s b/data/scripts/maps/VerdanturfTown_House.s
new file mode 100644
index 000000000..fc9f5ffd9
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_House.s
@@ -0,0 +1,11 @@
+VerdanturfTown_House_MapScripts:: @ 81540EC
+ .byte 0
+
+VerdanturfTown_House_EventScript_1540ED:: @ 81540ED
+ msgbox VerdanturfTown_House_Text_178D11, 2
+ end
+
+VerdanturfTown_House_EventScript_1540F6:: @ 81540F6
+ msgbox VerdanturfTown_House_Text_178D8E, 2
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_Mart.s b/data/scripts/maps/VerdanturfTown_Mart.s
new file mode 100644
index 000000000..08634cb85
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_Mart.s
@@ -0,0 +1,43 @@
+VerdanturfTown_Mart_MapScripts:: @ 8153EBB
+ .byte 0
+
+VerdanturfTown_Mart_EventScript_153EBC:: @ 8153EBC
+ lock
+ faceplayer
+ message VerdanturfTown_Mart_Text_1A0BE4
+ waittext
+ pokemart VerdanturfTown_Mart_Pokemart_153ED4
+ msgbox VerdanturfTown_Mart_Text_1A0C02, 4
+ release
+ end
+
+ .incbin "baserom.gba", 0x153ed3, 0x1
+
+VerdanturfTown_Mart_Pokemart_153ED4:: @ 8153ED4
+ .2byte ITEM_GREAT_BALL
+ .2byte ITEM_NEST_BALL
+ .2byte ITEM_SUPER_POTION
+ .2byte ITEM_ANTIDOTE
+ .2byte ITEM_PARALYZE_HEAL
+ .2byte ITEM_AWAKENING
+ .2byte ITEM_BURN_HEAL
+ .2byte ITEM_ICE_HEAL
+ .2byte ITEM_REPEL
+ .2byte ITEM_X_SPECIAL
+ .2byte ITEM_FLUFFY_TAIL
+ .2byte ITEM_NONE
+ release
+ end
+
+VerdanturfTown_Mart_EventScript_153EEE:: @ 8153EEE
+ msgbox VerdanturfTown_Mart_Text_1781C9, 2
+ end
+
+VerdanturfTown_Mart_EventScript_153EF7:: @ 8153EF7
+ msgbox VerdanturfTown_Mart_Text_178240, 2
+ end
+
+VerdanturfTown_Mart_EventScript_153F00:: @ 8153F00
+ msgbox VerdanturfTown_Mart_Text_1782C0, 2
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s
new file mode 100644
index 000000000..7b8dcfc8f
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s
@@ -0,0 +1,26 @@
+VerdanturfTown_PokemonCenter_1F_MapScripts:: @ 8153F09
+ map_script 3, VerdanturfTown_PokemonCenter_1F_MapScript1_153F0F
+ .byte 0
+
+VerdanturfTown_PokemonCenter_1F_MapScript1_153F0F:: @ 8153F0F
+ sethealplace 18
+ call VerdanturfTown_PokemonCenter_1F_EventScript_19FD1B
+ end
+
+PacifidlogTown_PokemonCenter_1F_EventScript_153F18:: @ 8153F18
+VerdanturfTown_PokemonCenter_1F_EventScript_153F18:: @ 8153F18
+ setvar 0x800b, 1
+ call VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B
+ waittext
+ waitbutton
+ release
+ end
+
+VerdanturfTown_PokemonCenter_1F_EventScript_153F26:: @ 8153F26
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_17831D, 2
+ end
+
+VerdanturfTown_PokemonCenter_1F_EventScript_153F2F:: @ 8153F2F
+ msgbox VerdanturfTown_PokemonCenter_1F_Text_178389, 2
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s b/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s
new file mode 100644
index 000000000..113e3cfee
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s
@@ -0,0 +1,20 @@
+VerdanturfTown_PokemonCenter_2F_MapScripts:: @ 8153F38
+ map_script 2, VerdanturfTown_PokemonCenter_2F_MapScript2_1A3D88
+ map_script 4, VerdanturfTown_PokemonCenter_2F_MapScript2_1A3D03
+ map_script 1, VerdanturfTown_PokemonCenter_2F_MapScript1_1A3D32
+ .byte 0
+
+PacifidlogTown_PokemonCenter_2F_EventScript_153F48:: @ 8153F48
+VerdanturfTown_PokemonCenter_2F_EventScript_153F48:: @ 8153F48
+ call VerdanturfTown_PokemonCenter_2F_EventScript_1A3EA6
+ end
+
+PacifidlogTown_PokemonCenter_2F_EventScript_153F4E:: @ 8153F4E
+VerdanturfTown_PokemonCenter_2F_EventScript_153F4E:: @ 8153F4E
+ call VerdanturfTown_PokemonCenter_2F_EventScript_1A40CC
+ end
+
+VerdanturfTown_PokemonCenter_2F_EventScript_153F54:: @ 8153F54
+ call VerdanturfTown_PokemonCenter_2F_EventScript_1A41FB
+ end
+
diff --git a/data/scripts/maps/VerdanturfTown_WandasHouse.s b/data/scripts/maps/VerdanturfTown_WandasHouse.s
new file mode 100644
index 000000000..eb497c426
--- /dev/null
+++ b/data/scripts/maps/VerdanturfTown_WandasHouse.s
@@ -0,0 +1,92 @@
+VerdanturfTown_WandasHouse_MapScripts:: @ 8153F5A
+ .byte 0
+
+VerdanturfTown_WandasHouse_EventScript_153F5B:: @ 8153F5B
+ lock
+ faceplayer
+ checkflag 193
+ jumpeq VerdanturfTown_WandasHouse_EventScript_153F73
+ msgbox VerdanturfTown_WandasHouse_Text_1783F6, 4
+ setflag 193
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153F73:: @ 8153F73
+ msgbox VerdanturfTown_WandasHouse_Text_178521, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153F7D:: @ 8153F7D
+ lock
+ faceplayer
+ checkflag 126
+ jumpeq VerdanturfTown_WandasHouse_EventScript_153FA5
+ checkflag 1213
+ jumpeq VerdanturfTown_WandasHouse_EventScript_153F9B
+ msgbox VerdanturfTown_WandasHouse_Text_17859A, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153F9B:: @ 8153F9B
+ msgbox VerdanturfTown_WandasHouse_Text_178683, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FA5:: @ 8153FA5
+ msgbox VerdanturfTown_WandasHouse_Text_1786B5, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FAF:: @ 8153FAF
+ msgbox VerdanturfTown_WandasHouse_Text_17886A, 2
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FB8:: @ 8153FB8
+ lock
+ faceplayer
+ checkflag 1213
+ jumpeq VerdanturfTown_WandasHouse_EventScript_153FE0
+ checkflag 190
+ jumpeq VerdanturfTown_WandasHouse_EventScript_153FD6
+ msgbox VerdanturfTown_WandasHouse_Text_1787FB, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FD6:: @ 8153FD6
+ msgbox VerdanturfTown_WandasHouse_Text_178739, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FE0:: @ 8153FE0
+ msgbox VerdanturfTown_WandasHouse_Text_1787FB, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_153FEA:: @ 8153FEA
+ lock
+ faceplayer
+ checkflag 126
+ jumpeq VerdanturfTown_WandasHouse_EventScript_154025
+ checkflag 1213
+ jumpeq VerdanturfTown_WandasHouse_EventScript_15401B
+ checkflag 199
+ jumpeq VerdanturfTown_WandasHouse_EventScript_154011
+ msgbox VerdanturfTown_WandasHouse_Text_1788B1, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_154011:: @ 8154011
+ msgbox VerdanturfTown_WandasHouse_Text_178983, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_15401B:: @ 815401B
+ msgbox VerdanturfTown_WandasHouse_Text_1789DD, 4
+ release
+ end
+
+VerdanturfTown_WandasHouse_EventScript_154025:: @ 8154025
+ msgbox VerdanturfTown_WandasHouse_Text_178A47, 4
+ release
+ end
+
diff --git a/data/scripts/maps/VictoryRoad_1F.s b/data/scripts/maps/VictoryRoad_1F.s
new file mode 100644
index 000000000..88865f4eb
--- /dev/null
+++ b/data/scripts/maps/VictoryRoad_1F.s
@@ -0,0 +1,121 @@
+VictoryRoad_1F_MapScripts:: @ 815DE83
+ map_script 3, VictoryRoad_1F_MapScript1_15DE89
+ .byte 0
+
+VictoryRoad_1F_MapScript1_15DE89:: @ 815DE89
+ checkflag 126
+ callif 1, VictoryRoad_1F_EventScript_15DE93
+ end
+
+VictoryRoad_1F_EventScript_15DE93:: @ 815DE93
+ setflag 858
+ return
+
+VictoryRoad_1F_EventScript_15DE97:: @ 815DE97
+ lockall
+ reappear 4
+ move 4, VictoryRoad_1F_Movement_15DF07
+ waitmove 0
+ jump VictoryRoad_1F_EventScript_15DED3
+ end
+
+VictoryRoad_1F_EventScript_15DEAB:: @ 815DEAB
+ lockall
+ reappear 4
+ move 4, VictoryRoad_1F_Movement_15DF13
+ waitmove 0
+ jump VictoryRoad_1F_EventScript_15DED3
+ end
+
+VictoryRoad_1F_EventScript_15DEBF:: @ 815DEBF
+ lockall
+ reappear 4
+ move 4, VictoryRoad_1F_Movement_15DF1E
+ waitmove 0
+ jump VictoryRoad_1F_EventScript_15DED3
+ end
+
+VictoryRoad_1F_EventScript_15DED3:: @ 815DED3
+ move 255, VictoryRoad_1F_Movement_1A083F
+ waitmove 0
+ msgbox VictoryRoad_1F_Text_19782B, 4
+ trainerbattle 3, 519, 0, VictoryRoad_1F_Text_197943
+ msgbox VictoryRoad_1F_Text_197967, 4
+ clearflag 858
+ moveoffscreen 4
+ setflag 126
+ setvar 0x40c3, 1
+ releaseall
+ end
+
+VictoryRoad_1F_Movement_15DF07:: @ 815DF07
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_right
+ step_end
+
+VictoryRoad_1F_Movement_15DF13:: @ 815DF13
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_right
+ step_end
+
+VictoryRoad_1F_Movement_15DF1E:: @ 815DF1E
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_up
+ step_right
+ step_right
+ step_end
+
+VictoryRoad_1F_EventScript_15DF28:: @ 815DF28
+ msgbox VictoryRoad_1F_Text_197967, 2
+ end
+
+VictoryRoad_1F_EventScript_15DF31:: @ 815DF31
+ trainerbattle 0, 657, 0, VictoryRoad_1F_Text_1979BA, VictoryRoad_1F_Text_197A23
+ specialval RESULT, 57
+ compare RESULT, 1
+ jumpeq VictoryRoad_1F_EventScript_15DF58
+ msgbox VictoryRoad_1F_Text_197A47, 6
+ end
+
+VictoryRoad_1F_EventScript_15DF58:: @ 815DF58
+ trainerbattle 5, 657, 0, VictoryRoad_1F_Text_1979BA, VictoryRoad_1F_Text_197A23
+ msgbox VictoryRoad_1F_Text_197A47, 6
+ end
+
+VictoryRoad_1F_EventScript_15DF6F:: @ 815DF6F
+ trainerbattle 0, 79, 0, VictoryRoad_1F_Text_197AD1, VictoryRoad_1F_Text_197B1A
+ msgbox VictoryRoad_1F_Text_197B36, 6
+ end
+
+VictoryRoad_1F_EventScript_15DF86:: @ 815DF86
+ trainerbattle 0, 80, 0, VictoryRoad_1F_Text_197B99, VictoryRoad_1F_Text_197BE1
+ msgbox VictoryRoad_1F_Text_197BF7, 6
+ end
+
+VictoryRoad_1F_EventScript_15DF9D:: @ 815DF9D
+ trainerbattle 0, 96, 0, VictoryRoad_1F_Text_197C45, VictoryRoad_1F_Text_197C8D
+ msgbox VictoryRoad_1F_Text_197CAF, 6
+ end
+
diff --git a/data/scripts/maps/VictoryRoad_B1F.s b/data/scripts/maps/VictoryRoad_B1F.s
new file mode 100644
index 000000000..a4f40b815
--- /dev/null
+++ b/data/scripts/maps/VictoryRoad_B1F.s
@@ -0,0 +1,18 @@
+VictoryRoad_B1F_MapScripts:: @ 815DFB4
+ .byte 0
+
+VictoryRoad_B1F_EventScript_15DFB5:: @ 815DFB5
+ trainerbattle 0, 81, 0, VictoryRoad_B1F_Text_197CE9, VictoryRoad_B1F_Text_197D42
+ msgbox VictoryRoad_B1F_Text_197D5B, 6
+ end
+
+VictoryRoad_B1F_EventScript_15DFCC:: @ 815DFCC
+ trainerbattle 0, 97, 0, VictoryRoad_B1F_Text_197D98, VictoryRoad_B1F_Text_197DE8
+ msgbox VictoryRoad_B1F_Text_197E13, 6
+ end
+
+VictoryRoad_B1F_EventScript_15DFE3:: @ 815DFE3
+ trainerbattle 0, 98, 0, VictoryRoad_B1F_Text_197E5D, VictoryRoad_B1F_Text_197EA6
+ msgbox VictoryRoad_B1F_Text_197EB6, 6
+ end
+
diff --git a/data/scripts/maps/VictoryRoad_B2F.s b/data/scripts/maps/VictoryRoad_B2F.s
new file mode 100644
index 000000000..39ac84e92
--- /dev/null
+++ b/data/scripts/maps/VictoryRoad_B2F.s
@@ -0,0 +1,23 @@
+VictoryRoad_B2F_MapScripts:: @ 815DFFA
+ .byte 0
+
+VictoryRoad_B2F_EventScript_15DFFB:: @ 815DFFB
+ trainerbattle 0, 82, 0, VictoryRoad_B2F_Text_197EF2, VictoryRoad_B2F_Text_197F46
+ msgbox VictoryRoad_B2F_Text_197F71, 6
+ end
+
+VictoryRoad_B2F_EventScript_15E012:: @ 815E012
+ trainerbattle 0, 83, 0, VictoryRoad_B2F_Text_197FE5, VictoryRoad_B2F_Text_19802B
+ msgbox VictoryRoad_B2F_Text_198047, 6
+ end
+
+VictoryRoad_B2F_EventScript_15E029:: @ 815E029
+ trainerbattle 0, 99, 0, VictoryRoad_B2F_Text_198089, VictoryRoad_B2F_Text_1980AD
+ msgbox VictoryRoad_B2F_Text_1980C8, 6
+ end
+
+VictoryRoad_B2F_EventScript_15E040:: @ 815E040
+ trainerbattle 0, 100, 0, VictoryRoad_B2F_Text_198121, VictoryRoad_B2F_Text_1981A3
+ msgbox VictoryRoad_B2F_Text_1981BA, 6
+ end
+