summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/map_constants.asm6
-rw-r--r--main.asm28
-rw-r--r--maps/CeladonCity.asm251
-rw-r--r--maps/CinnabarIsland.asm143
-rw-r--r--maps/FuchsiaCity.asm157
-rw-r--r--maps/PalletTown.asm88
-rw-r--r--maps/Route1.asm94
-rw-r--r--maps/Route16.asm44
-rw-r--r--maps/Route17.asm150
-rw-r--r--maps/Route18.asm92
-rw-r--r--maps/Route19.asm253
-rw-r--r--maps/Route20.asm127
-rw-r--r--maps/Route21.asm104
-rw-r--r--maps/Route22.asm27
-rw-r--r--maps/Route7.asm48
-rw-r--r--maps/ViridianCity.asm240
16 files changed, 1835 insertions, 17 deletions
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 1cac6435..bd120e94 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -169,7 +169,7 @@ ENDM
map_const CINNABAR_POKECENTER_1F, 4, 5 ; 1
map_const CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2
- map_const ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3
+ map_const ROUTE_19_FUCHSIA_GATE, 4, 5 ; 3
map_const SEAFOAM_GYM, 4, 5 ; 4
map_const ROUTE_19, 18, 10 ; 5
map_const ROUTE_20, 9, 30 ; 6
@@ -332,7 +332,7 @@ ENDM
map_const FUCHSIA_MART, 4, 6 ; 6
map_const SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7
map_const FUCHSIA_GYM, 9, 5 ; 8
- map_const FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9
+ map_const BILLS_BROTHERS_HOUSE, 4, 4 ; 9
map_const FUCHSIA_POKECENTER_1F, 4, 5 ; 10
map_const FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11
map_const SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12
@@ -396,7 +396,7 @@ ENDM
map_const ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23
map_const ROUTE_16_GATE, 4, 5 ; 24
map_const ROUTE_7_SAFFRON_GATE, 4, 5 ; 25
- map_const ROUTE_17_18_GATE, 4, 5 ; 26
+ map_const ROUTE_17_ROUTE_18_GATE, 4, 5 ; 26
newgroup ; 22
diff --git a/main.asm b/main.asm
index 152fdc94..8dd66443 100644
--- a/main.asm
+++ b/main.asm
@@ -1673,20 +1673,20 @@ SECTION "bank4d", ROMX, BANK[$4d]
dr $134000, $138000
SECTION "bank4e", ROMX, BANK[$4e]
-;INCLUDE "maps/ViridianCity.asm"
-;INCLUDE "maps/Route1.asm"
-;INCLUDE "maps/PalletTown.asm"
-;INCLUDE "maps/Route21.asm"
-;INCLUDE "maps/CinnabarIsland.asm"
-;INCLUDE "maps/Route20.asm"
-;INCLUDE "maps/Route19.asm"
-;INCLUDE "maps/FuchsiaCity.asm"
-;INCLUDE "maps/Route18.asm"
-;INCLUDE "maps/Route17.asm"
-;INCLUDE "maps/Route16.asm"
-;INCLUDE "maps/CeladonCity.asm"
-;INCLUDE "maps/Route7.asm"
- dr $138000, $13c000
+INCLUDE "maps/ViridianCity.asm"
+INCLUDE "maps/Route22.asm"
+INCLUDE "maps/Route1.asm"
+INCLUDE "maps/PalletTown.asm"
+INCLUDE "maps/Route21.asm"
+INCLUDE "maps/CinnabarIsland.asm"
+INCLUDE "maps/Route20.asm"
+INCLUDE "maps/Route19.asm"
+INCLUDE "maps/FuchsiaCity.asm"
+INCLUDE "maps/Route18.asm"
+INCLUDE "maps/Route17.asm"
+INCLUDE "maps/Route16.asm"
+INCLUDE "maps/CeladonCity.asm"
+INCLUDE "maps/Route7.asm"
SECTION "bank4f", ROMX, BANK[$4f]
INCLUDE "maps/Route15.asm"
diff --git a/maps/CeladonCity.asm b/maps/CeladonCity.asm
new file mode 100644
index 00000000..cf2c4c3f
--- /dev/null
+++ b/maps/CeladonCity.asm
@@ -0,0 +1,251 @@
+ const_def 2 ; object constants
+ const CELADONCITY_FISHER
+ const CELADONCITY_POLIWAG
+ const CELADONCITY_TEACHER1
+ const CELADONCITY_GRAMPS1
+ const CELADONCITY_GRAMPS2
+ const CELADONCITY_YOUNGSTER1
+ const CELADONCITY_YOUNGSTER2
+ const CELADONCITY_TEACHER2
+ const CELADONCITY_LASS
+
+CeladonCity_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .FlyPoint
+
+.FlyPoint:
+ setflag ENGINE_FLYPOINT_CELADON
+ return
+
+CeladonCityFisherScript:
+ jumptextfaceplayer CeladonCityFisherText
+
+CeladonCityPoliwrath:
+ opentext
+ writetext CeladonCityPoliwrathText
+ cry POLIWRATH
+ waitbutton
+ closetext
+ end
+
+CeladonCityTeacher1Script:
+ jumptextfaceplayer CeladonCityTeacher1Text
+
+CeladonCityGramps1Script:
+ jumptextfaceplayer CeladonCityGramps1Text
+
+CeladonCityGramps2Script:
+ jumptextfaceplayer CeladonCityGramps2Text
+
+CeladonCityYoungster1Script:
+ jumptextfaceplayer CeladonCityYoungster1Text
+
+CeladonCityYoungster2Script:
+ jumptextfaceplayer CeladonCityYoungster2Text
+
+CeladonCityTeacher2Script:
+ jumptextfaceplayer CeladonCityTeacher2Text
+
+CeladonCityLassScript:
+ jumptextfaceplayer CeladonCityLassText
+
+CeladonCitySign:
+ jumptext CeladonCitySignText
+
+CeladonGymSign:
+ jumptext CeladonGymSignText
+
+CeladonCityDeptStoreSign:
+ jumptext CeladonCityDeptStoreSignText
+
+CeladonCityMansionSign:
+ jumptext CeladonCityMansionSignText
+
+CeladonCityGameCornerSign:
+ jumptext CeladonCityGameCornerSignText
+
+CeladonCityTrainerTips:
+ jumptext CeladonCityTrainerTipsText
+
+CeladonCityPokecenterSign:
+ jumpstd pokecentersign
+
+CeladonCityHiddenPpUp:
+ hiddenitem PP_UP, EVENT_CELADON_CITY_HIDDEN_PP_UP
+
+CeladonCityFisherText:
+ text "This POLIWRATH is"
+ line "my partner."
+
+ para "I wonder if it'll"
+ line "ever evolve into a"
+ cont "frog #MON."
+ done
+
+CeladonCityPoliwrathText:
+ text "POLIWRATH: Croak!"
+ done
+
+CeladonCityTeacher1Text:
+ text "I lost at the slot"
+ line "machines again…"
+
+ para "We girls also play"
+ line "the slots now."
+
+ para "You should check"
+ line "them out too."
+ done
+
+CeladonCityGramps1Text:
+ text "GRIMER have been"
+ line "appearing lately."
+
+ para "See that pond out"
+ line "in front of the"
+
+ para "house? GRIMER live"
+ line "there now."
+
+ para "Where did they"
+ line "come from? This is"
+ cont "a serious problem…"
+ done
+
+CeladonCityGramps2Text:
+ text "Nihihi! This GYM"
+ line "is great! Only"
+
+ para "girls are allowed"
+ line "here!"
+ done
+
+CeladonCityYoungster1Text:
+ text "Want to know a"
+ line "secret?"
+
+ para "CELADON MANSION"
+ line "has a hidden back"
+ cont "door."
+ done
+
+CeladonCityYoungster2Text:
+ text "They're holding an"
+ line "eating contest at"
+ cont "the restaurant."
+
+ para "Just watching them"
+ line "go at it makes me"
+ cont "feel bloated…"
+ done
+
+CeladonCityTeacher2Text:
+ text "CELADON DEPT.STORE"
+ line "has the biggest"
+
+ para "and best selection"
+ line "of merchandise."
+
+ para "If you can't get"
+ line "it there, you"
+
+ para "can't get it any-"
+ line "where."
+
+ para "Gee… I sound like"
+ line "a sales clerk."
+ done
+
+CeladonCityLassText:
+ text "Looking at the"
+ line "ground while I was"
+
+ para "walking made me"
+ line "dizzy."
+ done
+
+CeladonCitySignText:
+ text "CELADON CITY"
+
+ para "The City of"
+ line "Rainbow Dreams"
+ done
+
+CeladonGymSignText:
+ text "CELADON CITY"
+ line "#MON GYM"
+ cont "LEADER: ERIKA"
+
+ para "The Nature-Loving"
+ line "Princess"
+ done
+
+CeladonCityDeptStoreSignText:
+ text "Find What You"
+ line "Need at CELADON"
+ cont "DEPT.STORE!"
+ done
+
+CeladonCityMansionSignText:
+ text "CELADON MANSION"
+ done
+
+CeladonCityGameCornerSignText:
+ text "The Playground for"
+ line "Everybody--CELADON"
+ cont "GAME CORNER"
+ done
+
+CeladonCityTrainerTipsText:
+ text "TRAINER TIPS"
+
+ para "GUARD SPEC."
+ line "protects #MON"
+
+ para "against SPECIAL"
+ line "attacks such as"
+ cont "fire and water."
+
+ para "Get your items at"
+ line "CELADON DEPT."
+ cont "STORE!"
+ done
+
+CeladonCity_MapEvents:
+ db 0, 0 ; filler
+
+ db 9 ; warp events
+ warp_event 4, 9, CELADON_DEPT_STORE_1F, 1
+ warp_event 16, 9, CELADON_MANSION_1F, 1
+ warp_event 16, 3, CELADON_MANSION_1F, 3
+ warp_event 17, 3, CELADON_MANSION_1F, 3
+ warp_event 29, 9, CELADON_POKECENTER_1F, 1
+ warp_event 18, 19, CELADON_GAME_CORNER, 1
+ warp_event 23, 19, CELADON_GAME_CORNER_PRIZE_ROOM, 1
+ warp_event 10, 29, CELADON_GYM, 1
+ warp_event 25, 29, CELADON_CAFE, 1
+
+ db 0 ; coord events
+
+ db 8 ; bg events
+ bg_event 23, 21, BGEVENT_READ, CeladonCitySign
+ bg_event 11, 31, BGEVENT_READ, CeladonGymSign
+ bg_event 6, 9, BGEVENT_READ, CeladonCityDeptStoreSign
+ bg_event 13, 9, BGEVENT_READ, CeladonCityMansionSign
+ bg_event 19, 21, BGEVENT_READ, CeladonCityGameCornerSign
+ bg_event 29, 21, BGEVENT_READ, CeladonCityTrainerTips
+ bg_event 30, 9, BGEVENT_READ, CeladonCityPokecenterSign
+ bg_event 37, 21, BGEVENT_ITEM, CeladonCityHiddenPpUp
+
+ db 9 ; object events
+ object_event 26, 11, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonCityFisherScript, -1
+ object_event 27, 11, SPRITE_POLIWAG, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
+ object_event 20, 24, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityTeacher1Script, -1
+ object_event 14, 16, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, CeladonCityGramps1Script, -1
+ object_event 8, 31, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityGramps2Script, -1
+ object_event 18, 13, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CeladonCityYoungster1Script, -1
+ object_event 24, 33, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonCityYoungster2Script, -1
+ object_event 6, 14, SPRITE_TEACHER, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CeladonCityTeacher2Script, -1
+ object_event 7, 22, SPRITE_LASS, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 2, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CeladonCityLassScript, -1
diff --git a/maps/CinnabarIsland.asm b/maps/CinnabarIsland.asm
new file mode 100644
index 00000000..54656768
--- /dev/null
+++ b/maps/CinnabarIsland.asm
@@ -0,0 +1,143 @@
+ const_def 2 ; object constants
+ const CINNABARISLAND_BLUE
+
+CinnabarIsland_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .FlyPoint
+
+.FlyPoint:
+ setflag ENGINE_FLYPOINT_CINNABAR
+ return
+
+CinnabarIslandBlue:
+ faceplayer
+ opentext
+ writetext CinnabarIslandBlueText
+ waitbutton
+ closetext
+ playsound SFX_WARP_TO
+ applymovement CINNABARISLAND_BLUE, CinnabarIslandBlueTeleport
+ disappear CINNABARISLAND_BLUE
+ clearevent EVENT_VIRIDIAN_GYM_BLUE
+ end
+
+CinnabarIslandGymSign:
+ jumptext CinnabarIslandGymSignText
+
+CinnabarIslandSign:
+ jumptext CinnabarIslandSignText
+
+CinnabarIslandPokecenterSign:
+ jumpstd pokecentersign
+
+CinnabarIslandHiddenRareCandy:
+ hiddenitem RARE_CANDY, EVENT_CINNABAR_ISLAND_HIDDEN_RARE_CANDY
+
+CinnabarIslandBlueTeleport:
+ teleport_from
+ step_end
+
+CinnabarIslandBlueText:
+ text "Who are you?"
+
+ para "Well, it's plain"
+ line "to see that you're"
+ cont "a trainer…"
+
+ para "My name's BLUE."
+
+ para "I was once the"
+ line "CHAMPION, although"
+
+ para "it was for only a"
+ line "short time…"
+
+ para "That meddling RED"
+ line "did me in…"
+
+ para "Anyway, what do"
+ line "you want? You want"
+
+ para "to challenge me or"
+ line "something?"
+
+ para "…I hate to say"
+ line "it, but I'm not in"
+
+ para "the mood for a"
+ line "battle now."
+
+ para "Take a good look"
+ line "around you…"
+
+ para "A volcano erupts,"
+ line "and just like"
+
+ para "that, a whole town"
+ line "disappears."
+
+ para "We can go on win-"
+ line "ning and losing in"
+
+ para "#MON. But if"
+ line "nature so much as"
+
+ para "twitches, we can"
+ line "lose in a second."
+
+ para "…"
+
+ para "That's the way it"
+ line "is…"
+
+ para "But, anyway, I'm"
+ line "still a trainer."
+
+ para "If I see a strong"
+ line "opponent, it makes"
+ cont "me want to battle."
+
+ para "If you want to"
+ line "battle me, come to"
+ cont "the VIRIDIAN GYM."
+
+ para "I'll take you on"
+ line "then."
+ done
+
+CinnabarIslandGymSignText:
+ text "There's a notice"
+ line "here…"
+
+ para "CINNABAR GYM has"
+ line "relocated to SEA-"
+ cont "FOAM ISLANDS."
+
+ para "BLAINE"
+ done
+
+CinnabarIslandSignText:
+ text "CINNABAR ISLAND"
+
+ para "The Fiery Town of"
+ line "Burning Desire"
+ done
+
+CinnabarIsland_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 11, 11, CINNABAR_POKECENTER_1F, 1
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 12, 11, BGEVENT_READ, CinnabarIslandPokecenterSign
+ bg_event 9, 11, BGEVENT_READ, CinnabarIslandGymSign
+ bg_event 7, 7, BGEVENT_READ, CinnabarIslandSign
+ bg_event 9, 1, BGEVENT_ITEM, CinnabarIslandHiddenRareCandy
+
+ db 1 ; object events
+ object_event 9, 6, SPRITE_BLUE, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm
new file mode 100644
index 00000000..0d44b0e8
--- /dev/null
+++ b/maps/FuchsiaCity.asm
@@ -0,0 +1,157 @@
+ const_def 2 ; object constants
+ const FUCHSIACITY_YOUNGSTER
+ const FUCHSIACITY_POKEFAN_M
+ const FUCHSIACITY_TEACHER
+ const FUCHSIACITY_FRUIT_TREE
+
+FuchsiaCity_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .FlyPoint
+
+.FlyPoint:
+ setflag ENGINE_FLYPOINT_FUCHSIA
+ return
+
+FuchsiaCityYoungster:
+ jumptextfaceplayer FuchsiaCityYoungsterText
+
+FuchsiaCityPokefanM:
+ jumptextfaceplayer FuchsiaCityPokefanMText
+
+FuchsiaCityTeacher:
+ jumptextfaceplayer FuchsiaCityTeacherText
+
+FuchsiaCitySign:
+ jumptext FuchsiaCitySignText
+
+FuchsiaGymSign:
+ jumptext FuchsiaGymSignText
+
+SafariZoneOfficeSign:
+ jumptext SafariZoneOfficeSignText
+
+WardensHomeSign:
+ jumptext WardensHomeSignText
+
+SafariZoneClosedSign:
+ jumptext SafariZoneClosedSignText
+
+NoLitteringSign:
+ jumptext NoLitteringSignText
+
+FuchsiaCityPokecenterSign:
+ jumpstd pokecentersign
+
+FuchsiaCityMartSign:
+ jumpstd martsign
+
+FuchsiaCityFruitTree:
+ fruittree FRUITTREE_FUCHSIA_CITY
+
+FuchsiaCityYoungsterText:
+ text "One of the ELITE"
+ line "FOUR used to be"
+
+ para "the LEADER of"
+ line "FUCHSIA's GYM."
+ done
+
+FuchsiaCityPokefanMText:
+ text "KOGA's daughter"
+ line "succeeded him as"
+
+ para "the GYM LEADER"
+ line "after he joined"
+ cont "the ELITE FOUR."
+ done
+
+FuchsiaCityTeacherText:
+ text "The SAFARI ZONE is"
+ line "closed… It's sad,"
+
+ para "considering it's"
+ line "FUCHSIA's main"
+ cont "attraction."
+ done
+
+FuchsiaCitySignText:
+ text "FUCHSIA CITY"
+
+ para "Behold! It's"
+ line "Passion Pink!"
+ done
+
+FuchsiaGymSignText:
+ text "FUCHSIA CITY"
+ line "#MON GYM"
+ cont "LEADER: JANINE"
+
+ para "The Poisonous"
+ line "Ninja Master"
+ done
+
+SafariZoneOfficeSignText:
+ text "There's a notice"
+ line "here…"
+
+ para "SAFARI ZONE OFFICE"
+ line "is closed until"
+ cont "further notice."
+ done
+
+WardensHomeSignText:
+ text "SAFARI ZONE"
+ line "WARDEN'S HOME"
+ done
+
+SafariZoneClosedSignText:
+ text "The WARDEN is"
+ line "traveling abroad."
+
+ para "Therefore, the"
+ line "SAFARI ZONE is"
+ cont "closed."
+ done
+
+NoLitteringSignText:
+ text "No littering."
+
+ para "Please take your"
+ line "waste with you."
+ done
+
+FuchsiaCity_MapEvents:
+ db 0, 0 ; filler
+
+ db 11 ; warp events
+ warp_event 5, 13, FUCHSIA_MART, 2
+ warp_event 22, 13, SAFARI_ZONE_MAIN_OFFICE, 1
+ warp_event 8, 27, FUCHSIA_GYM, 1
+ warp_event 11, 27, BILLS_BROTHERS_HOUSE, 1
+ warp_event 19, 27, FUCHSIA_POKECENTER_1F, 1
+ warp_event 27, 27, SAFARI_ZONE_WARDENS_HOME, 1
+ warp_event 18, 3, SAFARI_ZONE_FUCHSIA_GATE_BETA, 3 ; inaccessible
+ warp_event 37, 22, ROUTE_15_FUCHSIA_GATE, 1
+ warp_event 37, 23, ROUTE_15_FUCHSIA_GATE, 2
+ warp_event 7, 35, ROUTE_19_FUCHSIA_GATE, 1
+ warp_event 8, 35, ROUTE_19_FUCHSIA_GATE, 2
+
+ db 0 ; coord events
+
+ db 8 ; bg events
+ bg_event 21, 15, BGEVENT_READ, FuchsiaCitySign
+ bg_event 5, 29, BGEVENT_READ, FuchsiaGymSign
+ bg_event 25, 15, BGEVENT_READ, SafariZoneOfficeSign
+ bg_event 27, 29, BGEVENT_READ, WardensHomeSign
+ bg_event 17, 5, BGEVENT_READ, SafariZoneClosedSign
+ bg_event 13, 15, BGEVENT_READ, NoLitteringSign
+ bg_event 20, 27, BGEVENT_READ, FuchsiaCityPokecenterSign
+ bg_event 6, 13, BGEVENT_READ, FuchsiaCityMartSign
+
+ db 4 ; object events
+ object_event 23, 18, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, FuchsiaCityYoungster, -1
+ object_event 13, 8, SPRITE_POKEFAN_M, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, FuchsiaCityPokefanM, -1
+ object_event 16, 14, SPRITE_TEACHER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, FuchsiaCityTeacher, -1
+ object_event 8, 1, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FuchsiaCityFruitTree, -1
diff --git a/maps/PalletTown.asm b/maps/PalletTown.asm
new file mode 100644
index 00000000..0bc82010
--- /dev/null
+++ b/maps/PalletTown.asm
@@ -0,0 +1,88 @@
+ const_def 2 ; object constants
+ const PALLETTOWN_TEACHER
+ const PALLETTOWN_FISHER
+
+PalletTown_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .FlyPoint
+
+.FlyPoint:
+ setflag ENGINE_FLYPOINT_PALLET
+ return
+
+PalletTownTeacherScript:
+ jumptextfaceplayer PalletTownTeacherText
+
+PalletTownFisherScript:
+ jumptextfaceplayer PalletTownFisherText
+
+PalletTownSign:
+ jumptext PalletTownSignText
+
+RedsHouseSign:
+ jumptext RedsHouseSignText
+
+OaksLabSign:
+ jumptext OaksLabSignText
+
+BluesHouseSign:
+ jumptext BluesHouseSignText
+
+PalletTownTeacherText:
+ text "I'm raising #-"
+ line "MON too."
+
+ para "They serve as my"
+ line "private guards."
+ done
+
+PalletTownFisherText:
+ text "Technology is"
+ line "incredible!"
+
+ para "You can now trade"
+ line "#MON across"
+ cont "time like e-mail."
+ done
+
+PalletTownSignText:
+ text "PALLET TOWN"
+
+ para "A Tranquil Setting"
+ line "of Peace & Purity"
+ done
+
+RedsHouseSignText:
+ text "RED'S HOUSE"
+ done
+
+OaksLabSignText:
+ text "OAK #MON"
+ line "RESEARCH LAB"
+ done
+
+BluesHouseSignText:
+ text "BLUE'S HOUSE"
+ done
+
+PalletTown_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 5, 5, REDS_HOUSE_1F, 1
+ warp_event 13, 5, BLUES_HOUSE, 1
+ warp_event 12, 11, OAKS_LAB, 1
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 7, 9, BGEVENT_READ, PalletTownSign
+ bg_event 3, 5, BGEVENT_READ, RedsHouseSign
+ bg_event 13, 13, BGEVENT_READ, OaksLabSign
+ bg_event 11, 5, BGEVENT_READ, BluesHouseSign
+
+ db 2 ; object events
+ object_event 3, 8, SPRITE_TEACHER, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PalletTownTeacherScript, -1
+ object_event 12, 14, SPRITE_FISHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, PalletTownFisherScript, -1
diff --git a/maps/Route1.asm b/maps/Route1.asm
new file mode 100644
index 00000000..ee928caf
--- /dev/null
+++ b/maps/Route1.asm
@@ -0,0 +1,94 @@
+ const_def 2 ; object constants
+ const ROUTE1_YOUNGSTER
+ const ROUTE1_COOLTRAINER_F
+ const ROUTE1_FRUIT_TREE
+
+Route1_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerSchoolboyDanny:
+ trainer SCHOOLBOY, DANNY, EVENT_BEAT_SCHOOLBOY_DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SchoolboyDannyAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerCooltrainerfQuinn:
+ trainer COOLTRAINERF, QUINN, EVENT_BEAT_COOLTRAINERF_QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext CooltrainerfQuinnAfterBattleText
+ waitbutton
+ closetext
+ end
+
+Route1Sign:
+ jumptext Route1SignText
+
+Route1FruitTree:
+ fruittree FRUITTREE_ROUTE_1
+
+SchoolboyDannySeenText:
+ text "If trainers meet,"
+ line "the first thing to"
+ cont "do is battle."
+ done
+
+SchoolboyDannyBeatenText:
+ text "Awww… I've got a"
+ line "losing record…"
+ done
+
+SchoolboyDannyAfterBattleText:
+ text "For trainers, it's"
+ line "a given that we'll"
+
+ para "battle whenever we"
+ line "meet."
+ done
+
+CooltrainerfQuinnSeenText:
+ text "You there!"
+ line "Want to battle?"
+ done
+
+CooltrainerfQuinnBeatenText:
+ text "Down and out…"
+ done
+
+CooltrainerfQuinnAfterBattleText:
+ text "You're strong."
+
+ para "You obviously must"
+ line "have trained hard."
+ done
+
+Route1SignText:
+ text "ROUTE 1"
+
+ para "PALLET TOWN -"
+ line "VIRIDIAN CITY"
+ done
+
+Route1_MapEvents:
+ db 0, 0 ; filler
+
+ db 0 ; warp events
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 7, 27, BGEVENT_READ, Route1Sign
+
+ db 3 ; object events
+ object_event 7, 17, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerSchoolboyDanny, -1
+ object_event 3, 26, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 1, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 4, TrainerCooltrainerfQuinn, -1
+ object_event 3, 7, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route1FruitTree, -1
diff --git a/maps/Route16.asm b/maps/Route16.asm
new file mode 100644
index 00000000..ce0fc39c
--- /dev/null
+++ b/maps/Route16.asm
@@ -0,0 +1,44 @@
+Route16_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .AlwaysOnBike
+
+.AlwaysOnBike:
+ checkcode VAR_YCOORD
+ ifless 5, .CanWalk
+ checkcode VAR_XCOORD
+ ifgreater 13, .CanWalk
+ setflag ENGINE_ALWAYS_ON_BIKE
+ return
+
+.CanWalk:
+ clearflag ENGINE_ALWAYS_ON_BIKE
+ return
+
+CyclingRoadSign:
+ jumptext CyclingRoadSignText
+
+CyclingRoadSignText:
+ text "CYCLING ROAD"
+
+ para "Downhill Coasting"
+ line "All the Way!"
+ done
+
+Route16_MapEvents:
+ db 0, 0 ; filler
+
+ db 5 ; warp events
+ warp_event 3, 1, ROUTE_16_FUCHSIA_SPEECH_HOUSE, 1
+ warp_event 14, 6, ROUTE_16_GATE, 3
+ warp_event 14, 7, ROUTE_16_GATE, 4
+ warp_event 9, 6, ROUTE_16_GATE, 1
+ warp_event 9, 7, ROUTE_16_GATE, 2
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 5, 5, BGEVENT_READ, CyclingRoadSign
+
+ db 0 ; object events
diff --git a/maps/Route17.asm b/maps/Route17.asm
new file mode 100644
index 00000000..4e0c0b97
--- /dev/null
+++ b/maps/Route17.asm
@@ -0,0 +1,150 @@
+ const_def 2 ; object constants
+ const ROUTE17_BIKER1
+ const ROUTE17_BIKER2
+ const ROUTE17_BIKER3
+ const ROUTE17_BIKER4
+
+Route17_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .AlwaysOnBike
+
+.AlwaysOnBike:
+ setflag ENGINE_ALWAYS_ON_BIKE
+ setflag ENGINE_DOWNHILL
+ return
+
+TrainerBikerCharles:
+ trainer BIKER, CHARLES, EVENT_BEAT_BIKER_CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BikerCharlesAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerBikerRiley:
+ trainer BIKER, RILEY, EVENT_BEAT_BIKER_RILEY, BikerRileySeenText, BikerRileyBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BikerRileyAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerBikerJoel:
+ trainer BIKER, JOEL, EVENT_BEAT_BIKER_JOEL, BikerJoelSeenText, BikerJoelBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BikerJoelAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerBikerGlenn:
+ trainer BIKER, GLENN, EVENT_BEAT_BIKER_GLENN, BikerGlennSeenText, BikerGlennBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BikerGlennAfterBattleText
+ waitbutton
+ closetext
+ end
+
+Route17HiddenMaxEther:
+ hiddenitem MAX_ETHER, EVENT_ROUTE_17_HIDDEN_MAX_ETHER
+
+Route17HiddenMaxElixer:
+ hiddenitem MAX_ELIXER, EVENT_ROUTE_17_HIDDEN_MAX_ELIXER
+
+BikerRileySeenText:
+ text "Hey, you! You're"
+ line "from JOHTO, huh?"
+ done
+
+BikerRileyBeatenText:
+ text "Whoa, you kick!"
+ done
+
+BikerRileyAfterBattleText:
+ text "Don't get cocky,"
+ line "you JOHTO punk!"
+ done
+
+BikerJoelSeenText:
+ text "Wow. That's a cool"
+ line "BICYCLE!"
+ done
+
+BikerJoelBeatenText:
+ text "But you don't just"
+ line "look cool…"
+ done
+
+BikerJoelAfterBattleText:
+ text "I look cool, but"
+ line "I'm weak, so I'm"
+ cont "not really cool."
+
+ para "I have to train"
+ line "harder…"
+ done
+
+BikerGlennSeenText:
+ text "Hey! Want to have"
+ line "a speed battle?"
+ done
+
+BikerGlennBeatenText:
+ text "Yikes! You've got"
+ line "awesome torque!"
+ done
+
+BikerGlennAfterBattleText:
+ text "Hands-free riding"
+ line "is considered cool"
+ cont "on CYCLING ROAD."
+ done
+
+BikerCharlesSeenText:
+ text "We're fearless"
+ line "highway stars!"
+ done
+
+BikerCharlesBeatenText:
+ text "Arrrgh! Crash and"
+ line "burn!"
+ done
+
+BikerCharlesAfterBattleText:
+ text "Reckless driving"
+ line "causes accidents!"
+ cont "Take it easy!"
+ done
+
+Route17_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 17, 82, ROUTE_17_ROUTE_18_GATE, 1
+ warp_event 17, 83, ROUTE_17_ROUTE_18_GATE, 2
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 12, 5, BGEVENT_ITEM, Route17HiddenMaxEther
+ bg_event 8, 77, BGEVENT_ITEM, Route17HiddenMaxElixer
+
+ db 4 ; object events
+ object_event 4, 17, SPRITE_BIKER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerBikerRiley, -1
+ object_event 16, 32, SPRITE_BIKER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBikerJoel, -1
+ object_event 3, 53, SPRITE_BIKER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBikerGlenn, -1
+ object_event 6, 80, SPRITE_BIKER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerBikerCharles, -1
diff --git a/maps/Route18.asm b/maps/Route18.asm
new file mode 100644
index 00000000..23d6cb4e
--- /dev/null
+++ b/maps/Route18.asm
@@ -0,0 +1,92 @@
+ const_def 2 ; object constants
+ const ROUTE18_YOUNGSTER1
+ const ROUTE18_YOUNGSTER2
+
+Route18_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerBirdKeeperBoris:
+ trainer BIRD_KEEPER, BORIS, EVENT_BEAT_BIRD_KEEPER_BORIS, BirdKeeperBorisSeenText, BirdKeeperBorisBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BirdKeeperBorisAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerBirdKeeperBob:
+ trainer BIRD_KEEPER, BOB, EVENT_BEAT_BIRD_KEEPER_BOB, BirdKeeperBobSeenText, BirdKeeperBobBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BirdKeeperBobAfterBattleText
+ waitbutton
+ closetext
+ end
+
+Route18Sign:
+ jumptext Route18SignText
+
+BirdKeeperBorisSeenText:
+ text "If you're looking"
+ line "for #MON, you"
+
+ para "have to look in"
+ line "the tall grass."
+ done
+
+BirdKeeperBorisBeatenText:
+ text "Ayieee!"
+ done
+
+BirdKeeperBorisAfterBattleText:
+ text "Since you're so"
+ line "strong, it must be"
+ cont "fun to battle."
+ done
+
+BirdKeeperBobSeenText:
+ text "CYCLING ROAD is a"
+ line "quick shortcut to"
+ cont "CELADON."
+ done
+
+BirdKeeperBobBeatenText:
+ text "…Whew!"
+ done
+
+BirdKeeperBobAfterBattleText:
+ text "If you don't have"
+ line "a BICYCLE, you're"
+
+ para "not allowed to use"
+ line "the shortcut."
+ done
+
+Route18SignText:
+ text "ROUTE 18"
+
+ para "CELADON CITY -"
+ line "FUCHSIA CITY"
+ done
+
+Route18_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 6, ROUTE_17_ROUTE_18_GATE, 3
+ warp_event 2, 7, ROUTE_17_ROUTE_18_GATE, 4
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 9, 5, BGEVENT_READ, Route18Sign
+
+ db 2 ; object events
+ object_event 9, 12, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperBoris, -1
+ object_event 13, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperBob, -1
diff --git a/maps/Route19.asm b/maps/Route19.asm
new file mode 100644
index 00000000..103370a5
--- /dev/null
+++ b/maps/Route19.asm
@@ -0,0 +1,253 @@
+ const_def 2 ; object constants
+ const ROUTE19_SWIMMER_GIRL
+ const ROUTE19_SWIMMER_GUY1
+ const ROUTE19_SWIMMER_GUY2
+ const ROUTE19_SWIMMER_GUY3
+ const ROUTE19_FISHER1
+ const ROUTE19_FISHER2
+
+Route19_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_TILES, .ClearRocks
+
+.ClearRocks:
+ checkevent EVENT_CINNABAR_ROCKS_CLEARED
+ iftrue .Done
+ changeblock 6, 6, $7a ; rock
+ changeblock 8, 6, $7a ; rock
+ changeblock 10, 6, $7a ; rock
+ changeblock 12, 8, $7a ; rock
+ changeblock 4, 8, $7a ; rock
+ changeblock 10, 10, $7a ; rock
+.Done:
+ return
+
+TrainerSwimmerfDawn:
+ trainer SWIMMERF, DAWN, EVENT_BEAT_SWIMMERF_DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmerfDawnAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmermHarold:
+ trainer SWIMMERM, HAROLD, EVENT_BEAT_SWIMMERM_HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmermHaroldAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmermJerome:
+ trainer SWIMMERM, JEROME, EVENT_BEAT_SWIMMERM_JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmermJeromeAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmermTucker:
+ trainer SWIMMERM, TUCKER, EVENT_BEAT_SWIMMERM_TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmermTuckerAfterBattleText
+ waitbutton
+ closetext
+ end
+
+Route19Fisher1Script:
+ faceplayer
+ opentext
+ checkevent EVENT_CINNABAR_ROCKS_CLEARED
+ iftrue .RocksCleared
+ writetext Route19Fisher1Text
+ waitbutton
+ closetext
+ end
+
+.RocksCleared:
+ writetext Route19Fisher1Text_RocksCleared
+ waitbutton
+ closetext
+ end
+
+Route19Fisher2Script:
+ faceplayer
+ opentext
+ checkevent EVENT_CINNABAR_ROCKS_CLEARED
+ iftrue .RocksCleared
+ writetext Route19Fisher2Text
+ waitbutton
+ closetext
+ end
+
+.RocksCleared:
+ writetext Route19Fisher2Text_RocksCleared
+ waitbutton
+ closetext
+ end
+
+Route19Sign:
+ jumptext Route19SignText
+
+CarefulSwimmingSign:
+ jumptext CarefulSwimmingSignText
+
+SwimmermHaroldSeenText:
+ text "Have you ever gone"
+ line "swimming in the"
+ cont "sea at night?"
+ done
+
+SwimmermHaroldBeatenText:
+ text "Glub…"
+ done
+
+SwimmermHaroldAfterBattleText:
+ text "At night, the sea"
+ line "turns black. It"
+
+ para "feels like it will"
+ line "swallow you up."
+ done
+
+SwimmermTuckerSeenText:
+ text "Pant, pant…"
+ line "Just… a little…"
+
+ para "farther… to…"
+ line "FUCHSIA…"
+ done
+
+SwimmermTuckerBeatenText:
+ text "I'm drowning!"
+ done
+
+SwimmermTuckerAfterBattleText:
+ text "I… asked my girl-"
+ line "friend to swim to"
+ cont "FUCHSIA… Gasp…"
+ done
+
+SwimmerfDawnSeenText:
+ text "I'm disgusted by"
+ line "wimpy people!"
+ done
+
+SwimmerfDawnBeatenText:
+ text "I could beat you"
+ line "at swimming…"
+ done
+
+SwimmerfDawnAfterBattleText:
+ text "It's a quick swim"
+ line "between FUCHSIA"
+
+ para "and SEAFOAM IS-"
+ line "LANDS…"
+
+ para "Sheesh, some big"
+ line "man my boyfriend"
+
+ para "is! What a wimp!"
+ done
+
+SwimmermJeromeSeenText:
+ text "Swimming?"
+ line "I'm lousy at it."
+
+ para "I'm just splashing"
+ line "around in these"
+ cont "shallow waters."
+ done
+
+SwimmermJeromeBeatenText:
+ text "I thought I could"
+ line "win."
+ done
+
+SwimmermJeromeAfterBattleText:
+ text "I might be bad at"
+ line "swimming, but I"
+ cont "love the sea."
+ done
+
+Route19Fisher1Text:
+ text "Sorry. This road"
+ line "is closed for"
+ cont "construction."
+
+ para "If you want to get"
+ line "to CINNABAR, you'd"
+
+ para "better go south"
+ line "from PALLET TOWN."
+ done
+
+Route19Fisher1Text_RocksCleared:
+ text "I'm all sweaty."
+ line "Time for a swim!"
+ done
+
+Route19Fisher2Text:
+ text "Who knows how long"
+ line "it would take to"
+ cont "move this boulder…"
+ done
+
+Route19Fisher2Text_RocksCleared:
+ text "The roadwork is"
+ line "finally finished."
+
+ para "Now I can go"
+ line "fishing again."
+ done
+
+Route19SignText:
+ text "ROUTE 19"
+
+ para "FUCHSIA CITY -"
+ line "SEAFOAM ISLANDS"
+ done
+
+CarefulSwimmingSignText:
+ text "Please be careful"
+ line "if you are swim-"
+ cont "ming to SEAFOAM"
+ cont "ISLANDS."
+
+ para "FUCHSIA POLICE"
+ done
+
+Route19_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 7, 3, ROUTE_19_FUCHSIA_GATE, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 11, 13, BGEVENT_READ, Route19Sign
+ bg_event 11, 1, BGEVENT_READ, CarefulSwimmingSign
+
+ db 6 ; object events
+ object_event 9, 23, SPRITE_SWIMMER_GIRL, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 0, TrainerSwimmerfDawn, -1
+ object_event 13, 28, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerSwimmermHarold, -1
+ object_event 11, 17, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerSwimmermJerome, -1
+ object_event 8, 23, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, TrainerSwimmermTucker, -1
+ object_event 9, 5, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 1, Route19Fisher1Script, -1
+ object_event 11, 5, SPRITE_FISHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 1, Route19Fisher2Script, -1
diff --git a/maps/Route20.asm b/maps/Route20.asm
new file mode 100644
index 00000000..8339bb5d
--- /dev/null
+++ b/maps/Route20.asm
@@ -0,0 +1,127 @@
+ const_def 2 ; object constants
+ const ROUTE20_SWIMMER_GIRL1
+ const ROUTE20_SWIMMER_GIRL2
+ const ROUTE20_SWIMMER_GUY
+
+Route20_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .ClearRocks
+
+.ClearRocks:
+ setevent EVENT_CINNABAR_ROCKS_CLEARED
+ return
+
+TrainerSwimmerfNicole:
+ trainer SWIMMERF, NICOLE, EVENT_BEAT_SWIMMERF_NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmerfNicoleAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmerfLori:
+ trainer SWIMMERF, LORI, EVENT_BEAT_SWIMMERF_LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmerfLoriAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmermCameron:
+ trainer SWIMMERM, CAMERON, EVENT_BEAT_SWIMMERM_CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmermCameronAfterBattleText
+ waitbutton
+ closetext
+ end
+
+CinnabarGymSign:
+ jumptext CinnabarGymSignText
+
+SwimmerfNicoleSeenText:
+ text "I feel so much"
+ line "lighter in water."
+ done
+
+SwimmerfNicoleBeatenText:
+ text "Oh, no!"
+ done
+
+SwimmerfNicoleAfterBattleText:
+ text "Swimming exercises"
+ line "your full body."
+
+ para "It's really good"
+ line "for you."
+ done
+
+SwimmerfLoriSeenText:
+ text "What an impressive"
+ line "collection of GYM"
+
+ para "BADGES. We should"
+ line "battle!"
+ done
+
+SwimmerfLoriBeatenText:
+ text "No!"
+ done
+
+SwimmerfLoriAfterBattleText:
+ text "SURF is no longer"
+ line "the only HM move"
+ cont "you use in water."
+ done
+
+SwimmermCameronSeenText:
+ text "I guess it's im-"
+ line "possible to swim"
+
+ para "all the way to"
+ line "JOHTO."
+ done
+
+SwimmermCameronBeatenText:
+ text "Aiyah!"
+ done
+
+SwimmermCameronAfterBattleText:
+ text "Besides the sea, I"
+ line "can also swim in"
+ cont "ponds and rivers."
+ done
+
+CinnabarGymSignText:
+ text "What does this"
+ line "sign say?"
+
+ para "CINNABAR GYM"
+ line "LEADER: BLAINE"
+ done
+
+Route20_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 38, 7, SEAFOAM_GYM, 1
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 37, 11, BGEVENT_READ, CinnabarGymSign
+
+ db 3 ; object events
+ object_event 52, 8, SPRITE_SWIMMER_GIRL, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerSwimmerfNicole, -1
+ object_event 45, 13, SPRITE_SWIMMER_GIRL, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerSwimmerfLori, -1
+ object_event 12, 13, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerSwimmermCameron, -1
diff --git a/maps/Route21.asm b/maps/Route21.asm
new file mode 100644
index 00000000..da757267
--- /dev/null
+++ b/maps/Route21.asm
@@ -0,0 +1,104 @@
+ const_def 2 ; object constants
+ const ROUTE21_SWIMMER_GIRL
+ const ROUTE21_SWIMMER_GUY
+ const ROUTE21_FISHER
+
+Route21_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerSwimmermSeth:
+ trainer SWIMMERM, SETH, EVENT_BEAT_SWIMMERM_SETH, SwimmermSethSeenText, SwimmermSethBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmermSethAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSwimmerfNikki:
+ trainer SWIMMERF, NIKKI, EVENT_BEAT_SWIMMERF_NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SwimmerfNikkiAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerFisherArnold:
+ trainer FISHER, ARNOLD, EVENT_BEAT_FISHER_ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext FisherArnoldAfterBattleText
+ waitbutton
+ closetext
+ end
+
+SwimmermSethSeenText:
+ text "Land ho! Gotta"
+ line "keep going!"
+ done
+
+SwimmermSethBeatenText:
+ text "Glug…"
+ done
+
+SwimmermSethAfterBattleText:
+ text "This arrogant guy"
+ line "was at CINNABAR's"
+ cont "volcano."
+ done
+
+SwimmerfNikkiSeenText:
+ text "Hi!"
+
+ para "I was just going"
+ line "to put some sun"
+ cont "block on."
+ done
+
+SwimmerfNikkiBeatenText:
+ text "I'm worried about"
+ line "sunburn…"
+ done
+
+SwimmerfNikkiAfterBattleText:
+ text "I have to watch"
+ line "out for blemishes"
+ cont "caused by the sun."
+ done
+
+FisherArnoldSeenText:
+ text "I'm bored by fish-"
+ line "ing. Let's battle!"
+ done
+
+FisherArnoldBeatenText:
+ text "Utter failure…"
+ done
+
+FisherArnoldAfterBattleText:
+ text "I'll just go back"
+ line "to fishing…"
+ done
+
+Route21_MapEvents:
+ db 0, 0 ; filler
+
+ db 0 ; warp events
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 3 ; object events
+ object_event 11, 16, SPRITE_SWIMMER_GIRL, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerSwimmerfNikki, -1
+ object_event 2, 30, SPRITE_SWIMMER_GUY, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 4, TrainerSwimmermSeth, -1
+ object_event 14, 22, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerFisherArnold, -1
diff --git a/maps/Route22.asm b/maps/Route22.asm
new file mode 100644
index 00000000..8402f5e4
--- /dev/null
+++ b/maps/Route22.asm
@@ -0,0 +1,27 @@
+Route22_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VictoryRoadEntranceSign:
+ jumptext VictoryRoadEntranceSignText
+
+VictoryRoadEntranceSignText:
+ text "#MON LEAGUE"
+
+ para "VICTORY ROAD"
+ line "ENTRANCE"
+ done
+
+Route22_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 13, 5, VICTORY_ROAD_GATE, 1
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 15, 7, BGEVENT_READ, VictoryRoadEntranceSign
+
+ db 0 ; object events
diff --git a/maps/Route7.asm b/maps/Route7.asm
new file mode 100644
index 00000000..6f1c5251
--- /dev/null
+++ b/maps/Route7.asm
@@ -0,0 +1,48 @@
+Route7_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route7UndergroundPathSign:
+ jumptext Route7UndergroundPathSignText
+
+Route7LockedDoor:
+ jumptext Route7LockedDoorText
+
+Route7UndergroundPathSignText:
+ text "What's this flyer?"
+
+ para "… Uncouth trainers"
+ line "have been holding"
+
+ para "battles in the"
+ line "UNDERGROUND PATH."
+
+ para "Because of rising"
+ line "complaints by lo-"
+ cont "cal residents, the"
+ cont "UNDERGROUND PATH"
+ cont "has been sealed"
+ cont "indefinitely."
+
+ para "CELADON POLICE"
+ done
+
+Route7LockedDoorText:
+ text "It's locked…"
+ done
+
+Route7_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 15, 6, ROUTE_7_SAFFRON_GATE, 1
+ warp_event 15, 7, ROUTE_7_SAFFRON_GATE, 2
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 5, 11, BGEVENT_READ, Route7UndergroundPathSign
+ bg_event 6, 9, BGEVENT_READ, Route7LockedDoor
+
+ db 0 ; object events
diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm
new file mode 100644
index 00000000..d0686934
--- /dev/null
+++ b/maps/ViridianCity.asm
@@ -0,0 +1,240 @@
+ const_def 2 ; object constants
+ const VIRIDIANCITY_GRAMPS1
+ const VIRIDIANCITY_GRAMPS2
+ const VIRIDIANCITY_FISHER
+ const VIRIDIANCITY_YOUNGSTER
+
+ViridianCity_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .FlyPoint
+
+.FlyPoint:
+ setflag ENGINE_FLYPOINT_VIRIDIAN
+ return
+
+ViridianCityCoffeeGramps:
+ faceplayer
+ opentext
+ writetext ViridianCityCoffeeGrampsQuestionText
+ yesorno
+ iffalse .no
+ writetext ViridianCityCoffeeGrampsBelievedText
+ waitbutton
+ closetext
+ end
+
+.no:
+ writetext ViridianCityCoffeeGrampsDoubtedText
+ waitbutton
+ closetext
+ end
+
+ViridianCityGrampsNearGym:
+ faceplayer
+ opentext
+ checkevent EVENT_BLUE_IN_CINNABAR
+ iftrue .BlueReturned
+ writetext ViridianCityGrampsNearGymText
+ waitbutton
+ closetext
+ end
+
+.BlueReturned:
+ writetext ViridianCityGrampsNearGymBlueReturnedText
+ waitbutton
+ closetext
+ end
+
+ViridianCityDreamEaterFisher:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TM42_DREAM_EATER
+ iftrue .GotDreamEater
+ writetext ViridianCityDreamEaterFisherText
+ buttonsound
+ verbosegiveitem TM_DREAM_EATER
+ iffalse .NoRoomForDreamEater
+ setevent EVENT_GOT_TM42_DREAM_EATER
+.GotDreamEater:
+ writetext ViridianCityDreamEaterFisherGotDreamEaterText
+ waitbutton
+.NoRoomForDreamEater:
+ closetext
+ end
+
+ViridianCityYoungsterScript:
+ jumptextfaceplayer ViridianCityYoungsterText
+
+ViridianCitySign:
+ jumptext ViridianCitySignText
+
+ViridianGymSign:
+ jumptext ViridianGymSignText
+
+ViridianCityWelcomeSign:
+ jumptext ViridianCityWelcomeSignText
+
+TrainerHouseSign:
+ jumptext TrainerHouseSignText
+
+ViridianCityPokecenterSign:
+ jumpstd pokecentersign
+
+ViridianCityMartSign:
+ jumpstd martsign
+
+ViridianCityCoffeeGrampsQuestionText:
+ text "Hey, kid! I just"
+ line "had a double shot"
+
+ para "of espresso, and"
+ line "I am wired!"
+
+ para "I need to talk to"
+ line "someone, so you'll"
+ cont "have to do!"
+
+ para "I might not look"
+ line "like much now, but"
+
+ para "I was an expert at"
+ line "catching #MON."
+
+ para "Do you believe me?"
+ done
+
+ViridianCityCoffeeGrampsBelievedText:
+ text "Good, good. Yes, I"
+ line "was something out"
+
+ para "of the ordinary,"
+ line "let me tell you!"
+ done
+
+ViridianCityCoffeeGrampsDoubtedText:
+ text "What? You little"
+ line "whelp!"
+
+ para "If I were just a"
+ line "bit younger, I'd"
+
+ para "show you a thing"
+ line "or two. Humph!"
+ done
+
+ViridianCityGrampsNearGymText:
+ text "This GYM didn't"
+ line "have a LEADER"
+ cont "until recently."
+
+ para "A young man from"
+ line "PALLET became the"
+
+ para "LEADER, but he's"
+ line "often away."
+ done
+
+ViridianCityGrampsNearGymBlueReturnedText:
+ text "Are you going to"
+ line "battle the LEADER?"
+
+ para "Good luck to you."
+ line "You'll need it."
+ done
+
+ViridianCityDreamEaterFisherText:
+ text "Yawn!"
+
+ para "I must have dozed"
+ line "off in the sun."
+
+ para "…I had this dream"
+ line "about a DROWZEE"
+
+ para "eating my dream."
+ line "Weird, huh?"
+
+ para "Huh?"
+ line "What's this?"
+
+ para "Where did this TM"
+ line "come from?"
+
+ para "This is spooky!"
+ line "Here, you can have"
+ cont "this TM."
+ done
+
+ViridianCityDreamEaterFisherGotDreamEaterText:
+ text "TM42 contains"
+ line "DREAM EATER…"
+
+ para "…Zzzzz…"
+ done
+
+ViridianCityYoungsterText:
+ text "I heard that there"
+ line "are many items on"
+
+ para "the ground in"
+ line "VIRIDIAN FOREST."
+ done
+
+ViridianCitySignText:
+ text "VIRIDIAN CITY"
+
+ para "The Eternally"
+ line "Green Paradise"
+ done
+
+ViridianGymSignText:
+ text "VIRIDIAN CITY"
+ line "#MON GYM"
+ cont "LEADER: …"
+
+ para "The rest of the"
+ line "text is illegible…"
+ done
+
+ViridianCityWelcomeSignText:
+ text "Welcome to"
+ line "VIRIDIAN CITY,"
+
+ para "the Gateway to"
+ line "INDIGO PLATEAU"
+ done
+
+TrainerHouseSignText:
+ text "TRAINER HOUSE"
+
+ para "The Club for Top"
+ line "Trainer Battles"
+ done
+
+ViridianCity_MapEvents:
+ db 0, 0 ; filler
+
+ db 5 ; warp events
+ warp_event 32, 7, VIRIDIAN_GYM, 1
+ warp_event 21, 9, VIRIDIAN_NICKNAME_SPEECH_HOUSE, 1
+ warp_event 23, 15, TRAINER_HOUSE_1F, 1
+ warp_event 29, 19, VIRIDIAN_MART, 2
+ warp_event 23, 25, VIRIDIAN_POKECENTER_1F, 1
+
+ db 0 ; coord events
+
+ db 6 ; bg events
+ bg_event 17, 17, BGEVENT_READ, ViridianCitySign
+ bg_event 27, 7, BGEVENT_READ, ViridianGymSign
+ bg_event 19, 1, BGEVENT_READ, ViridianCityWelcomeSign
+ bg_event 21, 15, BGEVENT_READ, TrainerHouseSign
+ bg_event 24, 25, BGEVENT_READ, ViridianCityPokecenterSign
+ bg_event 30, 19, BGEVENT_READ, ViridianCityMartSign
+
+ db 4 ; object events
+ object_event 18, 5, SPRITE_GRAMPS, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ViridianCityCoffeeGramps, -1
+ object_event 30, 8, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ViridianCityGrampsNearGym, -1
+ object_event 6, 23, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, ViridianCityDreamEaterFisher, -1
+ object_event 17, 21, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, ViridianCityYoungsterScript, -1