summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.asm17
-rw-r--r--maps/CherrygroveEvolutionSpeechHouse.asm57
-rw-r--r--maps/CherrygroveGymSpeechHouse.asm60
-rw-r--r--maps/CherrygroveMart.asm86
-rw-r--r--maps/CherrygrovePokecenter1F.asm85
-rw-r--r--maps/GuideGentsHouse.asm42
-rw-r--r--maps/MrPokemonsHouse.asm388
-rw-r--r--maps/Route30BerryHouse.asm61
-rw-r--r--maps/Route31VioletGate.asm43
9 files changed, 830 insertions, 9 deletions
diff --git a/main.asm b/main.asm
index f8e18fe6..2dc4f5d0 100644
--- a/main.asm
+++ b/main.asm
@@ -1962,15 +1962,14 @@ INCLUDE "maps/Route5SaffronGate.asm"
INCLUDE "maps/Route5CleanseTagHouse.asm"
SECTION "bank62", ROMX, BANK[$62]
-;INCLUDE "maps/CherrygroveMart.asm"
-;INCLUDE "maps/CherrygrovePokecenter1F.asm"
-;INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
-;INCLUDE "maps/GuideGentsHouse.asm"
-;INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
-;INCLUDE "maps/Route30BerryHouse.asm"
-;INCLUDE "maps/MrPokemonsHouse.asm"
-;INCLUDE "maps/Route31VioletGate.asm"
- dr $188000, $18c000
+INCLUDE "maps/CherrygroveMart.asm"
+INCLUDE "maps/CherrygrovePokecenter1F.asm"
+INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
+INCLUDE "maps/GuideGentsHouse.asm"
+INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
+INCLUDE "maps/Route30BerryHouse.asm"
+INCLUDE "maps/MrPokemonsHouse.asm"
+INCLUDE "maps/Route31VioletGate.asm"
SECTION "bank6c", ROMX, BANK[$6c]
ItemNames::
diff --git a/maps/CherrygroveEvolutionSpeechHouse.asm b/maps/CherrygroveEvolutionSpeechHouse.asm
new file mode 100644
index 00000000..78ea3fc6
--- /dev/null
+++ b/maps/CherrygroveEvolutionSpeechHouse.asm
@@ -0,0 +1,57 @@
+ const_def 2 ; object constants
+ const CHERRYGROVEEVOLUTIONSPEECHHOUSE_LASS
+ const CHERRYGROVEEVOLUTIONSPEECHHOUSE_YOUNGSTER
+
+CherrygroveEvolutionSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+CherrygroveEvolutionSpeechHouseYoungsterScript:
+ opentext
+ writetext CherrygroveEvolutionSpeechHouseYoungsterText
+ waitbutton
+ closetext
+ end
+
+CherrygroveEvolutionSpeechHouseLassScript:
+ opentext
+ writetext CherrygroveEvolutionSpeechHouseLassText
+ waitbutton
+ closetext
+ end
+
+CherrygroveEvolutionSpeechHouseBookshelf:
+ jumpstd magazinebookshelf
+
+CherrygroveEvolutionSpeechHouseYoungsterText:
+ text "#MON gain expe-"
+ line "rience in battle"
+
+ para "and change their"
+ line "form."
+ done
+
+CherrygroveEvolutionSpeechHouseLassText:
+ text "#MON change?"
+
+ para "I would be shocked"
+ line "if one did that!"
+ done
+
+CherrygroveEvolutionSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, CHERRYGROVE_CITY, 5
+ warp_event 3, 7, CHERRYGROVE_CITY, 5
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, CherrygroveEvolutionSpeechHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, CherrygroveEvolutionSpeechHouseBookshelf
+
+ db 2 ; object events
+ object_event 3, 5, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CherrygroveEvolutionSpeechHouseLassScript, -1
+ object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CherrygroveEvolutionSpeechHouseYoungsterScript, -1
diff --git a/maps/CherrygroveGymSpeechHouse.asm b/maps/CherrygroveGymSpeechHouse.asm
new file mode 100644
index 00000000..95aa6c91
--- /dev/null
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -0,0 +1,60 @@
+ const_def 2 ; object constants
+ const CHERRYGROVEGYMSPEECHHOUSE_POKEFAN_M
+ const CHERRYGROVEGYMSPEECHHOUSE_BUG_CATCHER
+
+CherrygroveGymSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+CherrygroveGymSpeechHousePokefanMScript:
+ jumptextfaceplayer CherrygroveGymSpeechHousePokefanMText
+
+CherrygroveGymSpeechHouseBugCatcherScript:
+ jumptextfaceplayer CherrygroveGymSpeechHouseBugCatcherText
+
+CherrygroveGymSpeechHouseBookshelf:
+ jumpstd picturebookshelf
+
+CherrygroveGymSpeechHousePokefanMText:
+ text "You're trying to"
+ line "see how good you"
+
+ para "are as a #MON"
+ line "trainer?"
+
+ para "You better visit"
+ line "the #MON GYMS"
+
+ para "all over JOHTO and"
+ line "collect BADGES."
+ done
+
+CherrygroveGymSpeechHouseBugCatcherText:
+ text "When I get older,"
+ line "I'm going to be a"
+ cont "GYM LEADER!"
+
+ para "I make my #MON"
+ line "battle with my"
+
+ para "friend's to make"
+ line "them tougher!"
+ done
+
+CherrygroveGymSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, CHERRYGROVE_CITY, 3
+ warp_event 3, 7, CHERRYGROVE_CITY, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, CherrygroveGymSpeechHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, CherrygroveGymSpeechHouseBookshelf
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygroveGymSpeechHousePokefanMScript, -1
+ object_event 5, 5, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CherrygroveGymSpeechHouseBugCatcherScript, -1
diff --git a/maps/CherrygroveMart.asm b/maps/CherrygroveMart.asm
new file mode 100644
index 00000000..366df35e
--- /dev/null
+++ b/maps/CherrygroveMart.asm
@@ -0,0 +1,86 @@
+ const_def 2 ; object constants
+ const CHERRYGROVEMART_CLERK
+ const CHERRYGROVEMART_COOLTRAINER_M
+ const CHERRYGROVEMART_YOUNGSTER
+
+CherrygroveMart_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+CherrygroveMartClerkScript:
+ opentext
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .PokeBallsInStock
+ pokemart MARTTYPE_STANDARD, MART_CHERRYGROVE
+ closetext
+ end
+
+.PokeBallsInStock:
+ pokemart MARTTYPE_STANDARD, MART_CHERRYGROVE_DEX
+ closetext
+ end
+
+CherrygroveMartCooltrainerMScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .PokeBallsInStock
+ writetext CherrygroveMartCooltrainerMText
+ waitbutton
+ closetext
+ end
+
+.PokeBallsInStock:
+ writetext CherrygroveMartCooltrainerMText_PokeBallsInStock
+ waitbutton
+ closetext
+ end
+
+CherrygroveMartYoungsterScript:
+ jumptextfaceplayer CherrygroveMartYoungsterText
+
+CherrygroveMartCooltrainerMText:
+ text "They're fresh out"
+ line "of # BALLS!"
+
+ para "When will they get"
+ line "more of them?"
+ done
+
+CherrygroveMartCooltrainerMText_PokeBallsInStock:
+ text "# BALLS are in"
+ line "stock! Now I can"
+ cont "catch #MON!"
+ done
+
+CherrygroveMartYoungsterText:
+ text "When I was walking"
+ line "in the grass, a"
+
+ para "bug #MON poi-"
+ line "soned my #MON!"
+
+ para "I just kept going,"
+ line "but then my"
+ cont "#MON fainted."
+
+ para "You should keep an"
+ line "ANTIDOTE with you."
+ done
+
+CherrygroveMart_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, CHERRYGROVE_CITY, 1
+ warp_event 3, 7, CHERRYGROVE_CITY, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 3 ; object events
+ object_event 1, 3, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygroveMartClerkScript, -1
+ object_event 7, 6, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygroveMartCooltrainerMScript, -1
+ object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CherrygroveMartYoungsterScript, -1
diff --git a/maps/CherrygrovePokecenter1F.asm b/maps/CherrygrovePokecenter1F.asm
new file mode 100644
index 00000000..cfd02430
--- /dev/null
+++ b/maps/CherrygrovePokecenter1F.asm
@@ -0,0 +1,85 @@
+ const_def 2 ; object constants
+ const CHERRYGROVEPOKECENTER1F_NURSE
+ const CHERRYGROVEPOKECENTER1F_FISHER
+ const CHERRYGROVEPOKECENTER1F_GENTLEMAN
+ const CHERRYGROVEPOKECENTER1F_TEACHER
+
+CherrygrovePokecenter1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+CherrygrovePokecenter1FNurseScript:
+ jumpstd pokecenternurse
+
+CherrygrovePokecenter1FFisherScript:
+ jumptextfaceplayer CherrygrovePokecenter1FFisherText
+
+CherrygrovePokecenter1FGentlemanScript:
+ jumptextfaceplayer CherrygrovePokecenter1FGentlemanText
+
+CherrygrovePokecenter1FTeacherScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .CommCenterOpen
+ writetext CherrygrovePokecenter1FTeacherText
+ waitbutton
+ closetext
+ end
+
+.CommCenterOpen:
+ writetext CherrygrovePokecenter1FTeacherText_CommCenterOpen
+ waitbutton
+ closetext
+ end
+
+CherrygrovePokecenter1FFisherText:
+ text "It's great. I can"
+ line "store any number"
+
+ para "of #MON, and"
+ line "it's all free."
+ done
+
+CherrygrovePokecenter1FGentlemanText:
+ text "That PC is free"
+ line "for any trainer"
+ cont "to use."
+ done
+
+CherrygrovePokecenter1FTeacherText:
+ text "The COMMUNICATION"
+ line "CENTER upstairs"
+ cont "was just built."
+
+ para "But they're still"
+ line "finishing it up."
+ done
+
+CherrygrovePokecenter1FTeacherText_CommCenterOpen:
+ text "The COMMUNICATION"
+ line "CENTER upstairs"
+ cont "was just built."
+
+ para "I traded #MON"
+ line "there already!"
+ done
+
+CherrygrovePokecenter1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 3, 7, CHERRYGROVE_CITY, 2
+ warp_event 4, 7, CHERRYGROVE_CITY, 2
+ warp_event 0, 7, POKECENTER_2F, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 4 ; object events
+ object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygrovePokecenter1FNurseScript, -1
+ object_event 2, 3, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CherrygrovePokecenter1FFisherScript, -1
+ object_event 8, 6, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CherrygrovePokecenter1FGentlemanScript, -1
+ object_event 1, 6, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, CherrygrovePokecenter1FTeacherScript, -1
diff --git a/maps/GuideGentsHouse.asm b/maps/GuideGentsHouse.asm
new file mode 100644
index 00000000..376aa0d0
--- /dev/null
+++ b/maps/GuideGentsHouse.asm
@@ -0,0 +1,42 @@
+ const_def 2 ; object constants
+ const GUIDEGENTSHOUSE_GRAMPS
+
+GuideGentsHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+GuideGentsHouseGuideGent:
+ jumptextfaceplayer GuideGentsHouseGuideGentText
+
+GuideGentsHouseBookshelf:
+ jumpstd magazinebookshelf
+
+GuideGentsHouseGuideGentText:
+ text "When I was a wee"
+ line "lad, I was a hot-"
+ cont "shot trainer!"
+
+ para "Here's a word of"
+ line "advice: Catch lots"
+ cont "of #MON!"
+
+ para "Treat them all"
+ line "with kindness!"
+ done
+
+GuideGentsHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, CHERRYGROVE_CITY, 4
+ warp_event 3, 7, CHERRYGROVE_CITY, 4
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, GuideGentsHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, GuideGentsHouseBookshelf
+
+ db 1 ; object events
+ object_event 2, 3, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GuideGentsHouseGuideGent, EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm
new file mode 100644
index 00000000..3f6efbb0
--- /dev/null
+++ b/maps/MrPokemonsHouse.asm
@@ -0,0 +1,388 @@
+ const_def 2 ; object constants
+ const MRPOKEMONSHOUSE_GENTLEMAN
+ const MRPOKEMONSHOUSE_OAK
+
+MrPokemonsHouse_MapScripts:
+ db 2 ; scene scripts
+ scene_script .MeetMrPokemon ; SCENE_DEFAULT
+ scene_script .DummyScene ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.MeetMrPokemon:
+ priorityjump .MrPokemonEvent
+ end
+
+.DummyScene:
+ end
+
+.MrPokemonEvent:
+ showemote EMOTE_SHOCK, MRPOKEMONSHOUSE_GENTLEMAN, 15
+ turnobject MRPOKEMONSHOUSE_GENTLEMAN, DOWN
+ opentext
+ writetext MrPokemonIntroText1
+ waitbutton
+ closetext
+ applymovement PLAYER, MrPokemonsHouse_PlayerWalksToMrPokemon
+ opentext
+ writetext MrPokemonIntroText2
+ buttonsound
+ waitsfx
+ giveitem MYSTERY_EGG
+ writetext MrPokemonsHouse_GotEggText
+ playsound SFX_KEY_ITEM
+ waitsfx
+ itemnotify
+ setevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
+ blackoutmod CHERRYGROVE_CITY
+ writetext MrPokemonIntroText3
+ buttonsound
+ turnobject MRPOKEMONSHOUSE_GENTLEMAN, RIGHT
+ writetext MrPokemonIntroText4
+ buttonsound
+ turnobject MRPOKEMONSHOUSE_GENTLEMAN, DOWN
+ turnobject MRPOKEMONSHOUSE_OAK, LEFT
+ writetext MrPokemonIntroText5
+ waitbutton
+ closetext
+ jump MrPokemonsHouse_OakScript
+
+MrPokemonsHouse_MrPokemonScript:
+ faceplayer
+ opentext
+ checkitem RED_SCALE
+ iftrue .RedScale
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .AlwaysNewDiscoveries
+ writetext MrPokemonText_ImDependingOnYou
+ waitbutton
+ closetext
+ end
+
+.AlwaysNewDiscoveries:
+ writetext MrPokemonText_AlwaysNewDiscoveries
+ waitbutton
+ closetext
+ end
+
+.RedScale:
+ writetext MrPokemonText_GimmeTheScale
+ yesorno
+ iffalse .refused
+ verbosegiveitem EXP_SHARE
+ iffalse .full
+ takeitem RED_SCALE
+ jump .AlwaysNewDiscoveries
+
+.refused
+ writetext MrPokemonText_Disappointed
+ waitbutton
+.full
+ closetext
+ end
+
+MrPokemonsHouse_OakScript:
+ playmusic MUSIC_PROF_OAK
+ applymovement MRPOKEMONSHOUSE_OAK, MrPokemonsHouse_OakWalksToPlayer
+ turnobject PLAYER, RIGHT
+ opentext
+ writetext MrPokemonsHouse_OakText1
+ buttonsound
+ waitsfx
+ writetext MrPokemonsHouse_GetDexText
+ playsound SFX_ITEM
+ waitsfx
+ setflag ENGINE_POKEDEX
+ writetext MrPokemonsHouse_OakText2
+ waitbutton
+ closetext
+ turnobject PLAYER, DOWN
+ applymovement MRPOKEMONSHOUSE_OAK, MrPokemonsHouse_OakExits
+ playsound SFX_EXIT_BUILDING
+ disappear MRPOKEMONSHOUSE_OAK
+ waitsfx
+ special RestartMapMusic
+ pause 15
+ turnobject PLAYER, UP
+ opentext
+ writetext MrPokemonsHouse_MrPokemonHealText
+ waitbutton
+ closetext
+ special FadeBlackQuickly
+ special ReloadSpritesNoPalettes
+ playmusic MUSIC_HEAL
+ special HealParty
+ pause 60
+ special FadeInQuickly
+ special RestartMapMusic
+ opentext
+ writetext MrPokemonText_ImDependingOnYou
+ waitbutton
+ closetext
+ setevent EVENT_RIVAL_NEW_BARK_TOWN
+ setscene SCENE_FINISHED
+ setmapscene CHERRYGROVE_CITY, SCENE_CHERRYGROVECITY_MEET_RIVAL
+ setmapscene ELMS_LAB, SCENE_ELMSLAB_MEET_OFFICER
+ specialphonecall SPECIALCALL_ROBBED
+ clearevent EVENT_COP_IN_ELMS_LAB
+ checkevent EVENT_GOT_TOTODILE_FROM_ELM
+ iftrue .RivalTakesChikorita
+ checkevent EVENT_GOT_CHIKORITA_FROM_ELM
+ iftrue .RivalTakesCyndaquil
+ setevent EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+ end
+
+.RivalTakesChikorita:
+ setevent EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+ end
+
+.RivalTakesCyndaquil:
+ setevent EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+ end
+
+MrPokemonsHouse_ForeignMagazines:
+ jumptext MrPokemonsHouse_ForeignMagazinesText
+
+MrPokemonsHouse_BrokenComputer:
+ jumptext MrPokemonsHouse_BrokenComputerText
+
+MrPokemonsHouse_StrangeCoins:
+ jumptext MrPokemonsHouse_StrangeCoinsText
+
+MrPokemonsHouse_PlayerWalksToMrPokemon:
+ step RIGHT
+ step UP
+ step_end
+
+MrPokemonsHouse_OakWalksToPlayer:
+ step DOWN
+ step LEFT
+ step LEFT
+ step_end
+
+MrPokemonsHouse_OakExits:
+ step DOWN
+ step LEFT
+ turn_head DOWN
+ step_sleep 2
+ step_end
+
+MrPokemonIntroText1:
+ text "Hello, hello! You"
+ line "must be <PLAYER>."
+
+ para "PROF.ELM said that"
+ line "you would visit."
+ done
+
+MrPokemonIntroText2:
+ text "This is what I"
+ line "want PROF.ELM to"
+ cont "examine."
+ done
+
+MrPokemonsHouse_GotEggText:
+ text "<PLAYER> received"
+ line "MYSTERY EGG."
+ done
+
+MrPokemonIntroText3:
+ text "I know a couple"
+ line "who run a #MON"
+ cont "DAY-CARE service."
+
+ para "They gave me that"
+ line "EGG."
+
+ para "I was intrigued,"
+ line "so I sent mail to"
+ cont "PROF.ELM."
+
+ para "For #MON evolu-"
+ line "tion, PROF.ELM is"
+ cont "the authority."
+ done
+
+MrPokemonIntroText4:
+ text "Even PROF.OAK here"
+ line "recognizes that."
+ done
+
+MrPokemonIntroText5:
+ text "If my assumption"
+ line "is correct, PROF."
+ cont "ELM will know it."
+ done
+
+MrPokemonsHouse_MrPokemonHealText:
+ text "You are returning"
+ line "to PROF.ELM?"
+
+ para "Here. Your #MON"
+ line "should have some"
+ cont "rest."
+ done
+
+MrPokemonText_ImDependingOnYou:
+ text "I'm depending on"
+ line "you!"
+ done
+
+MrPokemonText_AlwaysNewDiscoveries:
+ text "Life is delight-"
+ line "ful! Always, new"
+
+ para "discoveries to be"
+ line "made!"
+ done
+
+MrPokemonsHouse_OakText1:
+ text "OAK: Aha! So"
+ line "you're <PLAYER>!"
+
+ para "I'm OAK! A #MON"
+ line "researcher."
+
+ para "I was just visit-"
+ line "ing my old friend"
+ cont "MR.#MON."
+
+ para "I heard you were"
+ line "running an errand"
+
+ para "for PROF.ELM, so I"
+ line "waited here."
+
+ para "Oh! What's this?"
+ line "A rare #MON!"
+
+ para "Let's see…"
+
+ para "Hm, I see!"
+
+ para "I understand why"
+ line "PROF.ELM gave you"
+
+ para "a #MON for this"
+ line "errand."
+
+ para "To researchers"
+ line "like PROF.ELM and"
+
+ para "I, #MON are our"
+ line "friends."
+
+ para "He saw that you"
+ line "would treat your"
+
+ para "#MON with love"
+ line "and care."
+
+ para "…Ah!"
+
+ para "You seem to be"
+ line "dependable."
+
+ para "How would you like"
+ line "to help me out?"
+
+ para "See? This is the"
+ line "latest version of"
+ cont "#DEX."
+
+ para "It automatically"
+ line "records data on"
+
+ para "#MON you've"
+ line "seen or caught."
+
+ para "It's a hi-tech"
+ line "encyclopedia!"
+ done
+
+MrPokemonsHouse_GetDexText:
+ text "<PLAYER> received"
+ line "#DEX!"
+ done
+
+MrPokemonsHouse_OakText2:
+ text "Go meet many kinds"
+ line "of #MON and"
+
+ para "complete that"
+ line "#DEX!"
+
+ para "But I've stayed"
+ line "too long."
+
+ para "I have to get to"
+ line "GOLDENROD for my"
+ cont "usual radio show."
+
+ para "<PLAYER>, I'm"
+ line "counting on you!"
+ done
+
+MrPokemonText_GimmeTheScale:
+ text "Hm? That SCALE!"
+ line "What's that?"
+ cont "A red GYARADOS?"
+
+ para "That's rare! "
+ line "I, I want it…"
+
+ para "<PLAYER>, would you"
+ line "care to trade it?"
+
+ para "I can offer this"
+ line "EXP.SHARE I got"
+ cont "from PROF.OAK."
+ done
+
+MrPokemonText_Disappointed:
+ text "That's disappoint-"
+ line "ing. That happens"
+ cont "to be very rare."
+ done
+
+MrPokemonsHouse_ForeignMagazinesText:
+ text "It's packed with"
+ line "foreign magazines."
+
+ para "Can't even read"
+ line "their titles…"
+ done
+
+MrPokemonsHouse_BrokenComputerText:
+ text "It's a big com-"
+ line "puter. Hmm. It's"
+ cont "broken."
+ done
+
+MrPokemonsHouse_StrangeCoinsText:
+ text "A whole pile of"
+ line "strange coins!"
+
+ para "Maybe they're from"
+ line "another country…"
+ done
+
+MrPokemonsHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_30, 2
+ warp_event 3, 7, ROUTE_30, 2
+
+ db 0 ; coord events
+
+ db 5 ; bg events
+ bg_event 0, 1, BGEVENT_READ, MrPokemonsHouse_ForeignMagazines
+ bg_event 1, 1, BGEVENT_READ, MrPokemonsHouse_ForeignMagazines
+ bg_event 6, 1, BGEVENT_READ, MrPokemonsHouse_BrokenComputer
+ bg_event 7, 1, BGEVENT_READ, MrPokemonsHouse_BrokenComputer
+ bg_event 6, 4, BGEVENT_READ, MrPokemonsHouse_StrangeCoins
+
+ db 2 ; object events
+ object_event 3, 5, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MrPokemonsHouse_MrPokemonScript, -1
+ object_event 6, 5, SPRITE_OAK, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_MR_POKEMONS_HOUSE_OAK
diff --git a/maps/Route30BerryHouse.asm b/maps/Route30BerryHouse.asm
new file mode 100644
index 00000000..f24c5808
--- /dev/null
+++ b/maps/Route30BerryHouse.asm
@@ -0,0 +1,61 @@
+ const_def 2 ; object constants
+ const ROUTE30BERRYHOUSE_POKEFAN_M
+
+Route30BerryHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route30BerryHousePokefanMScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
+ iftrue .GotBerry
+ writetext Route30BerrySpeechHouseMonEatBerriesText
+ buttonsound
+ verbosegiveitem BERRY
+ iffalse .NoRoom
+ setevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
+.GotBerry:
+ writetext Route30BerrySpeechHouseCheckTreesText
+ waitbutton
+.NoRoom:
+ closetext
+ end
+
+Route30BerryHouseBookshelf:
+ jumpstd magazinebookshelf
+
+Route30BerrySpeechHouseMonEatBerriesText:
+ text "You know, #MON"
+ line "eat BERRIES."
+
+ para "Well, my #MON"
+ line "got healthier by"
+ cont "eating a BERRY."
+
+ para "Here. I'll share"
+ line "one with you!"
+ done
+
+Route30BerrySpeechHouseCheckTreesText:
+ text "Check trees for"
+ line "BERRIES. They just"
+ cont "drop right off."
+ done
+
+Route30BerryHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_30, 1
+ warp_event 3, 7, ROUTE_30, 1
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, Route30BerryHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, Route30BerryHouseBookshelf
+
+ db 1 ; object events
+ object_event 2, 3, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, Route30BerryHousePokefanMScript, -1
diff --git a/maps/Route31VioletGate.asm b/maps/Route31VioletGate.asm
new file mode 100644
index 00000000..aeb5b868
--- /dev/null
+++ b/maps/Route31VioletGate.asm
@@ -0,0 +1,43 @@
+ const_def 2 ; object constants
+ const ROUTE31VIOLETGATE_OFFICER
+ const ROUTE31VIOLETGATE_COOLTRAINER_F
+
+Route31VioletGate_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route31VioletGateOfficerScript:
+ jumptextfaceplayer Route31VioletGateOfficerText
+
+Route31VioletGateCooltrainerFScript:
+ jumptextfaceplayer Route31VioletGateCooltrainerFText
+
+Route31VioletGateOfficerText:
+ text "Hi, guy!"
+ line "Did you visit"
+ cont "SPROUT TOWER?"
+ done
+
+Route31VioletGateCooltrainerFText:
+ text "I came too far"
+ line "out. I'd better"
+ cont "phone home!"
+ done
+
+Route31VioletGate_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 0, 4, VIOLET_CITY, 8
+ warp_event 0, 5, VIOLET_CITY, 9
+ warp_event 9, 4, ROUTE_31, 1
+ warp_event 9, 5, ROUTE_31, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 2 ; object events
+ object_event 5, 2, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route31VioletGateOfficerScript, -1
+ object_event 1, 2, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route31VioletGateCooltrainerFScript, -1