summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/engine_flags.asm2
-rw-r--r--constants/event_flags.asm20
-rw-r--r--constants/map_constants.asm6
-rwxr-xr-xengine/engine_flags.asm2
-rwxr-xr-xengine/specials.asm4
-rw-r--r--macros/scripts/events.asm10
-rw-r--r--main.asm23
-rw-r--r--maps/DayOfWeekSiblingsHouse.asm83
-rw-r--r--maps/ElmsHouse.asm100
-rw-r--r--maps/ElmsLab.asm1258
-rw-r--r--maps/PlayersHouse1F.asm310
-rw-r--r--maps/PlayersHouse2F.asm132
-rw-r--r--maps/PlayersNeighborsHouse.asm97
-rw-r--r--maps/Route26HealHouse.asm62
-rw-r--r--maps/Route27SandstormHouse.asm108
-rw-r--r--maps/Route29Route46Gate.asm52
16 files changed, 2235 insertions, 34 deletions
diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm
index 082ffd64..f4da580e 100644
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -60,7 +60,7 @@
engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_6, wUnlockedUnowns, 6 ; $30
engine_flag_def ENGINE_UNLOCKED_UNOWNS_UNUSED_7, wUnlockedUnowns, 7
- engine_flag_def ENGINE_FLYPOINT_KRISS_HOUSE, wVisitedSpawns, 0 ; your house
+ engine_flag_def ENGINE_FLYPOINT_PLAYERS_HOUSE, wVisitedSpawns, 0 ; your house
engine_flag_def ENGINE_FLYPOINT_VIRIDIAN_POKECENTER, wVisitedSpawns, 1 ; viridian pokecenter
engine_flag_def ENGINE_FLYPOINT_PALLET, wVisitedSpawns, 2 ; pallet
engine_flag_def ENGINE_FLYPOINT_VIRIDIAN, wVisitedSpawns, 3 ; viridian
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index fbde1623..341298a4 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -728,7 +728,7 @@
const EVENT_DECO_GEODUDE_DOLL
const EVENT_DECO_MACHOP_DOLL
const EVENT_DECO_TENTACOOL_DOLL
- const EVENT_KRISS_ROOM_POSTER
+ const EVENT_PLAYERS_ROOM_POSTER
const EVENT_DECO_GOLD_TROPHY
const EVENT_DECO_SILVER_TROPHY
const EVENT_DECO_BIG_SNORLAX_DOLL
@@ -818,8 +818,8 @@
const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
-; More Crystal-specific events
const EVENT_LISTENED_TO_INITIAL_RADIO
+; More Crystal-specific events
const EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
const EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
const EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER
@@ -1803,8 +1803,8 @@
const EVENT_RIVAL_SPROUT_TOWER
const EVENT_RIVAL_BURNED_TOWER
const EVENT_RIVAL_DRAGONS_DEN
- const EVENT_KRISS_HOUSE_MOM_1
- const EVENT_KRISS_HOUSE_MOM_2
+ const EVENT_PLAYERS_HOUSE_MOM_1
+ const EVENT_PLAYERS_HOUSE_MOM_2
const EVENT_MR_POKEMONS_HOUSE_OAK
const EVENT_VIOLET_CITY_EARL
const EVENT_EARLS_ACADEMY_EARL
@@ -1925,10 +1925,10 @@
const EVENT_KURTS_HOUSE_KURT_1
const EVENT_KURTS_HOUSE_KURT_2
const EVENT_SLOWPOKE_WELL_KURT ; 740
- const EVENT_KRISS_HOUSE_2F_CONSOLE
- const EVENT_KRISS_HOUSE_2F_DOLL_1
- const EVENT_KRISS_HOUSE_2F_DOLL_2
- const EVENT_KRISS_HOUSE_2F_BIG_DOLL
+ const EVENT_PLAYERS_HOUSE_2F_CONSOLE
+ const EVENT_PLAYERS_HOUSE_2F_DOLL_1
+ const EVENT_PLAYERS_HOUSE_2F_DOLL_2
+ const EVENT_PLAYERS_HOUSE_2F_BIG_DOLL
const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
const EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
const EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
@@ -2008,8 +2008,8 @@
const EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
const EVENT_DRAGON_SHRINE_CLAIR ; 790
const EVENT_BATTLE_TOWER_BATTLE_ROOM_YOUNGSTER
- const EVENT_KRISS_HOUSE_1F_NEIGHBOR
- const EVENT_KRISS_NEIGHBORS_HOUSE_NEIGHBOR
+ const EVENT_PLAYERS_HOUSE_1F_NEIGHBOR
+ const EVENT_PLAYERS_NEIGHBORS_HOUSE_NEIGHBOR
const EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
const EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
const EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 1d74fd4c..bb2b5930 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -433,9 +433,9 @@ ENDM
map_const ROUTE_29, 9, 30 ; 3
map_const NEW_BARK_TOWN, 9, 10 ; 4
map_const ELMS_LAB, 6, 5 ; 5
- map_const KRISS_HOUSE_1F, 4, 5 ; 6
- map_const KRISS_HOUSE_2F, 3, 4 ; 7
- map_const KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8
+ map_const PLAYERS_HOUSE_1F, 4, 5 ; 6
+ map_const PLAYERS_HOUSE_2F, 3, 4 ; 7
+ map_const PLAYERS_NEIGHBORS_HOUSE, 4, 4 ; 8
map_const ELMS_HOUSE, 4, 4 ; 9
map_const ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10
map_const ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11
diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm
index 107133e2..897e55df 100755
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -146,7 +146,7 @@ EngineFlags:
engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_6
engine_flag ENGINE_UNLOCKED_UNOWNS_UNUSED_7
- engine_flag ENGINE_FLYPOINT_KRISS_HOUSE
+ engine_flag ENGINE_FLYPOINT_PLAYERS_HOUSE
engine_flag ENGINE_FLYPOINT_VIRIDIAN_POKECENTER
engine_flag ENGINE_FLYPOINT_PALLET
engine_flag ENGINE_FLYPOINT_VIRIDIAN
diff --git a/engine/specials.asm b/engine/specials.asm
index 100979ff..db0b8ddf 100755
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -138,8 +138,8 @@ SpecialsPointers:
add_special FadeOutMusic
add_special Diploma
add_special PrintDiploma
- add_special Function90a1b
- add_special Function90a54
+ add_special InitialSetDSTFlag
+ add_special InitialClearDSTFlag
add_special Function90a8d
add_special SpecialNone
diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm
index 6e2856d1..3a6578d7 100644
--- a/macros/scripts/events.asm
+++ b/macros/scripts/events.asm
@@ -800,12 +800,12 @@ playmusic: MACRO
dw \1 ; music_pointer
ENDM
- enum encountermusic_command ; $80
+ enum encountermusic_command ; $7f
encountermusic: MACRO
db encountermusic_command
ENDM
- enum musicfadeout_command ; $81
+ enum musicfadeout_command ; $80
musicfadeout: MACRO
db musicfadeout_command
dw \1 ; music
@@ -936,18 +936,18 @@ askforphonenumber: MACRO
db \1 ; number
ENDM
- enum phonecall_command ; $98
+ enum phonecall_command ; $97
phonecall: MACRO
db phonecall_command
dw \1 ; caller_name
ENDM
- enum hangup_command ; $99
+ enum hangup_command ; $98
hangup: MACRO
db hangup_command
ENDM
- enum describedecoration_command ; $9a
+ enum describedecoration_command ; $99
describedecoration: MACRO
db describedecoration_command
db \1 ; byte
diff --git a/main.asm b/main.asm
index 2dc4f5d0..105406e0 100644
--- a/main.asm
+++ b/main.asm
@@ -1243,9 +1243,9 @@ InitClock:
dr $90641, $908dc
SetDayOfWeek:
dr $908dc, $90a1b
-Function90a1b:
+InitialSetDSTFlag:
dr $90a1b, $90a54
-Function90a54:
+InitialClearDSTFlag:
dr $90a54, $90a8d
Function90a8d:
dr $90a8d, $90b0f
@@ -1935,16 +1935,15 @@ SECTION "bank5f", ROMX, BANK[$5f]
dr $17c000, $180000
SECTION "bank60", ROMX, BANK[$60]
-;INCLUDE "maps/ElmsLab.asm"
-;INCLUDE "maps/PlayersHouse1F.asm"
-;INCLUDE "maps/PlayersHouse2F.asm"
-;INCLUDE "maps/PlayersNeighborsHouse.asm"
-;INCLUDE "maps/ElmsHouse.asm"
-;INCLUDE "maps/Route26HealHouse.asm"
-;INCLUDE "maps/DayOfWeekSiblingsHouse.asm"
-;INCLUDE "maps/Route27SandstormHouse.asm"
-;INCLUDE "maps/Route29Route46Gate.asm"
- dr $180000, $184000
+INCLUDE "maps/ElmsLab.asm"
+INCLUDE "maps/PlayersHouse1F.asm"
+INCLUDE "maps/PlayersHouse2F.asm"
+INCLUDE "maps/PlayersNeighborsHouse.asm"
+INCLUDE "maps/ElmsHouse.asm"
+INCLUDE "maps/Route26HealHouse.asm"
+INCLUDE "maps/DayOfWeekSiblingsHouse.asm"
+INCLUDE "maps/Route27SandstormHouse.asm"
+INCLUDE "maps/Route29Route46Gate.asm"
SECTION "bank61", ROMX, BANK[$61]
INCLUDE "maps/FightingDojo.asm"
diff --git a/maps/DayOfWeekSiblingsHouse.asm b/maps/DayOfWeekSiblingsHouse.asm
new file mode 100644
index 00000000..73eca15d
--- /dev/null
+++ b/maps/DayOfWeekSiblingsHouse.asm
@@ -0,0 +1,83 @@
+ const_def 2 ; object constants
+ const DAYOFWEEKSIBLINGSHOUSE_POKEDEX
+
+DayOfWeekSiblingsHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+DayOfWeekSiblingsHousePokedexScript:
+ opentext
+ writetext DayOfWeekSiblingsHousePokedexText1
+ yesorno
+ iffalse .End
+ writetext DayOfWeekSiblingsHousePokedexText2
+ yesorno
+ iffalse .End
+ writetext DayOfWeekSiblingsHousePokedexText3
+ waitbutton
+.End:
+ closetext
+ end
+
+DayOfWeekSiblingsHousePokedexText1:
+ text "There's something"
+ line "written here."
+
+ para "Read it?"
+ done
+
+DayOfWeekSiblingsHousePokedexText2:
+ text "To my brothers and"
+ line "sisters:"
+
+ para "We take pride in"
+ line "serving #MON"
+ cont "trainers."
+
+ para "When trainers talk"
+ line "to you, give them"
+ cont "something useful."
+
+ para "Love,"
+ line "MONICA"
+
+ para "Keep reading?"
+ done
+
+DayOfWeekSiblingsHousePokedexText3:
+ text "Monday, MONICA"
+ line "ROUTE 40"
+
+ para "Tuesday, TUSCANY"
+ line "ROUTE 29"
+
+ para "Wednesday, WESLEY"
+ line "LAKE OF RAGE"
+
+ para "Thursday, ARTHUR"
+ line "ROUTE 36"
+
+ para "Friday, FRIEDA"
+ line "ROUTE 32"
+
+ para "Saturday, SANTOS"
+ line "BLACKTHORN CITY"
+
+ para "Sunday, SUNNY"
+ line "ROUTE 37"
+ done
+
+DayOfWeekSiblingsHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_26, 3
+ warp_event 3, 7, ROUTE_26, 3
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 3, 3, SPRITE_POKEDEX, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DayOfWeekSiblingsHousePokedexScript, -1
diff --git a/maps/ElmsHouse.asm b/maps/ElmsHouse.asm
new file mode 100644
index 00000000..49f06126
--- /dev/null
+++ b/maps/ElmsHouse.asm
@@ -0,0 +1,100 @@
+ const_def 2 ; object constants
+ const ELMSHOUSE_ELMS_WIFE
+ const ELMSHOUSE_ELMS_SON
+
+ElmsHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+ElmsWife:
+ jumptextfaceplayer ElmsWifeText
+
+ElmsSon:
+ jumptextfaceplayer ElmsSonText
+
+ElmsHousePC:
+ jumptext ElmsHousePCText
+
+ElmsHouseBookshelf:
+ jumpstd difficultbookshelf
+
+ElmsWifeText:
+ text "Hi, <PLAYER>! My"
+ line "husband's always"
+
+ para "so busy--I hope"
+ line "he's OK."
+
+ para "When he's caught"
+ line "up in his #MON"
+
+ para "research, he even"
+ line "forgets to eat."
+ done
+
+ElmsSonText:
+ text "When I grow up,"
+ line "I'm going to help"
+ cont "my Dad!"
+
+ para "I'm going to be a"
+ line "great #MON"
+ cont "professor!"
+ done
+
+ElmsHouseLabFoodText:
+; unused
+ text "There's some food"
+ line "here. It must be"
+ cont "for the LAB."
+ done
+
+ElmsHousePokemonFoodText:
+; unused
+ text "There's some food"
+ line "here. This must be"
+ cont "for #MON."
+ done
+
+ElmsHousePCText:
+ text "#MON. Where do"
+ line "they come from? "
+
+ para "Where are they"
+ line "going?"
+
+ para "Why has no one"
+ line "ever witnessed a"
+ cont "#MON's birth?"
+
+ para "I want to know! I"
+ line "will dedicate my"
+
+ para "life to the study"
+ line "of #MON!"
+
+ para "…"
+
+ para "It's a part of"
+ line "PROF.ELM's re-"
+ cont "search papers."
+ done
+
+ElmsHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, NEW_BARK_TOWN, 4
+ warp_event 3, 7, NEW_BARK_TOWN, 4
+
+ db 0 ; coord events
+
+ db 3 ; bg events
+ bg_event 0, 1, BGEVENT_READ, ElmsHousePC
+ bg_event 6, 1, BGEVENT_READ, ElmsHouseBookshelf
+ bg_event 7, 1, BGEVENT_READ, ElmsHouseBookshelf
+
+ db 2 ; object events
+ object_event 1, 5, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, ElmsWife, -1
+ object_event 5, 4, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ElmsSon, -1
diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm
new file mode 100644
index 00000000..a74212f4
--- /dev/null
+++ b/maps/ElmsLab.asm
@@ -0,0 +1,1258 @@
+ const_def 2 ; object constants
+ const ELMSLAB_ELM
+ const ELMSLAB_ELMS_AIDE
+ const ELMSLAB_POKE_BALL1
+ const ELMSLAB_POKE_BALL2
+ const ELMSLAB_POKE_BALL3
+ const ELMSLAB_OFFICER
+
+ElmsLab_MapScripts:
+ db 6 ; scene scripts
+ scene_script .MeetElm ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_ELMSLAB_CANT_LEAVE
+ scene_script .DummyScene2 ; SCENE_ELMSLAB_NOTHING
+ scene_script .DummyScene3 ; SCENE_ELMSLAB_MEET_OFFICER
+ scene_script .DummyScene4 ; SCENE_ELMSLAB_UNUSED
+ scene_script .DummyScene5 ; SCENE_ELMSLAB_AIDE_GIVES_POTION
+
+ db 0 ; callbacks
+
+.MeetElm:
+ priorityjump .WalkUpToElm
+ end
+
+.DummyScene1:
+ end
+
+.DummyScene2:
+ end
+
+.DummyScene3:
+ end
+
+.DummyScene4:
+ end
+
+.DummyScene5:
+ end
+
+.WalkUpToElm:
+ applymovement PLAYER, ElmsLab_WalkUpToElmMovement
+ turnobject ELMSLAB_ELM, LEFT
+ opentext
+ writetext ElmText_Intro
+ waitbutton
+ closetext
+ setscene SCENE_ELMSLAB_CANT_LEAVE
+ end
+
+ProfElmScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_SS_TICKET_FROM_ELM
+ iftrue ElmCheckMasterBall
+ checkevent EVENT_BEAT_ELITE_FOUR
+ iftrue ElmGiveTicketScript
+ElmCheckMasterBall:
+ checkevent EVENT_GOT_MASTER_BALL_FROM_ELM
+ iftrue ElmCheckEverstone
+ checkflag ENGINE_RISINGBADGE
+ iftrue ElmGiveMasterBallScript
+ElmCheckEverstone:
+ checkevent EVENT_GOT_EVERSTONE_FROM_ELM
+ iftrue ElmScript_CallYou
+ checkevent EVENT_SHOWED_TOGEPI_TO_ELM
+ iftrue ElmGiveEverstoneScript
+ checkevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
+ iffalse ElmCheckTogepiEgg
+ writebyte TOGEPI
+ special FindPartyMonThatSpeciesYourTrainerID
+ iftrue ShowElmTogepiScript
+ writebyte TOGETIC
+ special FindPartyMonThatSpeciesYourTrainerID
+ iftrue ShowElmTogepiScript
+ writetext ElmThoughtEggHatchedText
+ waitbutton
+ closetext
+ end
+
+ElmEggHatchedScript:
+ writebyte TOGEPI
+ special FindPartyMonThatSpeciesYourTrainerID
+ iftrue ShowElmTogepiScript
+ writebyte TOGETIC
+ special FindPartyMonThatSpeciesYourTrainerID
+ iftrue ShowElmTogepiScript
+ jump ElmCheckGotEggAgain
+
+ElmCheckTogepiEgg:
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ iffalse ElmCheckGotEggAgain
+ checkevent EVENT_TOGEPI_HATCHED
+ iftrue ElmEggHatchedScript
+ElmCheckGotEggAgain:
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE ; why are we checking it again?
+ iftrue ElmWaitingEggHatchScript
+ checkflag ENGINE_ZEPHYRBADGE
+ iftrue ElmAideHasEggScript
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue ElmStudyingEggScript
+ checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
+ iftrue ElmAfterTheftScript
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue ElmDescribesMrPokemonScript
+ writetext ElmText_LetYourMonBattleIt
+ waitbutton
+ closetext
+ end
+
+LabTryToLeaveScript:
+ turnobject ELMSLAB_ELM, DOWN
+ opentext
+ writetext LabWhereGoingText
+ waitbutton
+ closetext
+ applymovement PLAYER, ElmsLab_CantLeaveMovement
+ end
+
+CyndaquilPokeBallScript:
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue LookAtElmPokeBallScript
+ turnobject ELMSLAB_ELM, DOWN
+ refreshscreen
+ pokepic CYNDAQUIL
+ cry CYNDAQUIL
+ waitbutton
+ closepokepic
+ opentext
+ writetext TakeCyndaquilText
+ yesorno
+ iffalse DidntChooseStarterScript
+ disappear ELMSLAB_POKE_BALL1
+ setevent EVENT_GOT_CYNDAQUIL_FROM_ELM
+ writetext ChoseStarterText
+ buttonsound
+ waitsfx
+ pokenamemem CYNDAQUIL, MEM_BUFFER_0
+ writetext ReceivedStarterText
+ playsound SFX_CAUGHT_MON
+ waitsfx
+ buttonsound
+ givepoke CYNDAQUIL, 5, BERRY
+ closetext
+ checkcode VAR_FACING
+ ifequal RIGHT, ElmDirectionsScript
+ applymovement PLAYER, AfterCyndaquilMovement
+ jump ElmDirectionsScript
+
+TotodilePokeBallScript:
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue LookAtElmPokeBallScript
+ turnobject ELMSLAB_ELM, DOWN
+ refreshscreen
+ pokepic TOTODILE
+ cry TOTODILE
+ waitbutton
+ closepokepic
+ opentext
+ writetext TakeTotodileText
+ yesorno
+ iffalse DidntChooseStarterScript
+ disappear ELMSLAB_POKE_BALL2
+ setevent EVENT_GOT_TOTODILE_FROM_ELM
+ writetext ChoseStarterText
+ buttonsound
+ waitsfx
+ pokenamemem TOTODILE, MEM_BUFFER_0
+ writetext ReceivedStarterText
+ playsound SFX_CAUGHT_MON
+ waitsfx
+ buttonsound
+ givepoke TOTODILE, 5, BERRY
+ closetext
+ applymovement PLAYER, AfterTotodileMovement
+ jump ElmDirectionsScript
+
+ChikoritaPokeBallScript:
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue LookAtElmPokeBallScript
+ turnobject ELMSLAB_ELM, DOWN
+ refreshscreen
+ pokepic CHIKORITA
+ cry CHIKORITA
+ waitbutton
+ closepokepic
+ opentext
+ writetext TakeChikoritaText
+ yesorno
+ iffalse DidntChooseStarterScript
+ disappear ELMSLAB_POKE_BALL3
+ setevent EVENT_GOT_CHIKORITA_FROM_ELM
+ writetext ChoseStarterText
+ buttonsound
+ waitsfx
+ pokenamemem CHIKORITA, MEM_BUFFER_0
+ writetext ReceivedStarterText
+ playsound SFX_CAUGHT_MON
+ waitsfx
+ buttonsound
+ givepoke CHIKORITA, 5, BERRY
+ closetext
+ applymovement PLAYER, AfterChikoritaMovement
+ jump ElmDirectionsScript
+
+DidntChooseStarterScript:
+ writetext DidntChooseStarterText
+ waitbutton
+ closetext
+ end
+
+ElmDirectionsScript:
+ turnobject PLAYER, UP
+ opentext
+ writetext ElmDirectionsText1
+ waitbutton
+ closetext
+ turnobject ELMSLAB_ELM, LEFT
+ opentext
+ writetext ElmDirectionsText2
+ waitbutton
+ closetext
+ turnobject ELMSLAB_ELM, DOWN
+ opentext
+ writetext ElmDirectionsText3
+ buttonsound
+ waitsfx
+ addcellnum PHONE_ELM
+ writetext GotElmsNumberText
+ playsound SFX_REGISTER_PHONE_NUMBER
+ waitsfx
+ waitbutton
+ closetext
+ setevent EVENT_GOT_A_POKEMON_FROM_ELM
+ setevent EVENT_RIVAL_CHERRYGROVE_CITY
+ setscene SCENE_ELMSLAB_AIDE_GIVES_POTION
+ setmapscene NEW_BARK_TOWN, SCENE_FINISHED
+ end
+
+ElmDescribesMrPokemonScript:
+ writetext ElmDescribesMrPokemonText
+ waitbutton
+ closetext
+ end
+
+LookAtElmPokeBallScript:
+ opentext
+ writetext ElmPokeBallText
+ waitbutton
+ closetext
+ end
+
+ElmsLabHealingMachine:
+ opentext
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue .CanHeal
+ writetext ElmsLabHealingMachineText1
+ waitbutton
+ closetext
+ end
+
+.CanHeal:
+ writetext ElmsLabHealingMachineText2
+ yesorno
+ iftrue ElmsLabHealingMachine_HealParty
+ closetext
+ end
+
+ElmsLabHealingMachine_HealParty:
+ special HealParty
+ playmusic MUSIC_NONE
+ writebyte HEALMACHINE_ELMS_LAB
+ special HealMachineAnim
+ pause 30
+ special RestartMapMusic
+ closetext
+ end
+
+ElmAfterTheftDoneScript:
+ waitbutton
+ closetext
+ end
+
+ElmAfterTheftScript:
+ writetext ElmAfterTheftText1
+ checkitem MYSTERY_EGG
+ iffalse ElmAfterTheftDoneScript
+ buttonsound
+ writetext ElmAfterTheftText2
+ waitbutton
+ takeitem MYSTERY_EGG
+ scall ElmJumpBackScript1
+ writetext ElmAfterTheftText3
+ waitbutton
+ scall ElmJumpBackScript2
+ writetext ElmAfterTheftText4
+ buttonsound
+ writetext ElmAfterTheftText5
+ buttonsound
+ setevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ setmapscene ROUTE_29, SCENE_ROUTE29_CATCH_TUTORIAL
+ clearevent EVENT_ROUTE_30_YOUNGSTER_JOEY
+ setevent EVENT_ROUTE_30_BATTLE
+ writetext ElmAfterTheftText6
+ waitbutton
+ closetext
+ setscene SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS
+ end
+
+ElmStudyingEggScript:
+ writetext ElmStudyingEggText
+ waitbutton
+ closetext
+ end
+
+ElmAideHasEggScript:
+ writetext ElmAideHasEggText
+ waitbutton
+ closetext
+ end
+
+ElmWaitingEggHatchScript:
+ writetext ElmWaitingEggHatchText
+ waitbutton
+ closetext
+ end
+
+ShowElmTogepiScript:
+ writetext ShowElmTogepiText1
+ waitbutton
+ closetext
+ showemote EMOTE_SHOCK, ELMSLAB_ELM, 15
+ setevent EVENT_SHOWED_TOGEPI_TO_ELM
+ opentext
+ writetext ShowElmTogepiText2
+ buttonsound
+ writetext ShowElmTogepiText3
+ buttonsound
+ElmGiveEverstoneScript:
+ writetext ElmGiveEverstoneText1
+ buttonsound
+ verbosegiveitem EVERSTONE
+ iffalse ElmScript_NoRoomForEverstone
+ writetext ElmGiveEverstoneText2
+ waitbutton
+ closetext
+ setevent EVENT_GOT_EVERSTONE_FROM_ELM
+ end
+
+ElmScript_CallYou:
+ writetext ElmText_CallYou
+ waitbutton
+ElmScript_NoRoomForEverstone:
+ closetext
+ end
+
+ElmGiveMasterBallScript:
+ writetext ElmGiveMasterBallText1
+ buttonsound
+ verbosegiveitem MASTER_BALL
+ iffalse .notdone
+ setevent EVENT_GOT_MASTER_BALL_FROM_ELM
+ writetext ElmGiveMasterBallText2
+ waitbutton
+.notdone
+ closetext
+ end
+
+ElmGiveTicketScript:
+ writetext ElmGiveTicketText1
+ buttonsound
+ verbosegiveitem S_S_TICKET
+ setevent EVENT_GOT_SS_TICKET_FROM_ELM
+ writetext ElmGiveTicketText2
+ waitbutton
+ closetext
+ end
+
+ElmJumpBackScript1:
+ closetext
+ checkcode VAR_FACING
+ ifequal DOWN, ElmJumpDownScript
+ ifequal UP, ElmJumpUpScript
+ ifequal LEFT, ElmJumpLeftScript
+ ifequal RIGHT, ElmJumpRightScript
+ end
+
+ElmJumpBackScript2:
+ closetext
+ checkcode VAR_FACING
+ ifequal DOWN, ElmJumpUpScript
+ ifequal UP, ElmJumpDownScript
+ ifequal LEFT, ElmJumpRightScript
+ ifequal RIGHT, ElmJumpLeftScript
+ end
+
+ElmJumpUpScript:
+ applymovement ELMSLAB_ELM, ElmJumpUpMovement
+ opentext
+ end
+
+ElmJumpDownScript:
+ applymovement ELMSLAB_ELM, ElmJumpDownMovement
+ opentext
+ end
+
+ElmJumpLeftScript:
+ applymovement ELMSLAB_ELM, ElmJumpLeftMovement
+ opentext
+ end
+
+ElmJumpRightScript:
+ applymovement ELMSLAB_ELM, ElmJumpRightMovement
+ opentext
+ end
+
+AideScript_WalkPotion1:
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksRight1
+ turnobject PLAYER, DOWN
+ scall AideScript_GivePotion
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft1
+ end
+
+AideScript_WalkPotion2:
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksRight2
+ turnobject PLAYER, DOWN
+ scall AideScript_GivePotion
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft2
+ end
+
+AideScript_GivePotion:
+ opentext
+ writetext AideText_GiveYouPotion
+ buttonsound
+ verbosegiveitem POTION
+ writetext AideText_AlwaysBusy
+ waitbutton
+ closetext
+ setscene SCENE_ELMSLAB_NOTHING
+ end
+
+AideScript_WalkBalls1:
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksRight1
+ turnobject PLAYER, DOWN
+ scall AideScript_GiveYouBalls
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft1
+ end
+
+AideScript_WalkBalls2:
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksRight2
+ turnobject PLAYER, DOWN
+ scall AideScript_GiveYouBalls
+ applymovement ELMSLAB_ELMS_AIDE, AideWalksLeft2
+ end
+
+AideScript_GiveYouBalls:
+ opentext
+ writetext AideText_GiveYouBalls
+ buttonsound
+ itemtotext POKE_BALL, MEM_BUFFER_1
+ scall AideScript_ReceiveTheBalls
+ giveitem POKE_BALL, 5
+ writetext AideText_ExplainBalls
+ buttonsound
+ itemnotify
+ closetext
+ setscene SCENE_ELMSLAB_NOTHING
+ end
+
+AideScript_ReceiveTheBalls:
+ jumpstd receiveitem
+ end
+
+ElmsAideScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ iftrue AideScript_AfterTheft
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue AideScript_ExplainBalls
+ checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
+ iftrue AideScript_TheftTestimony
+ writetext AideText_AlwaysBusy
+ waitbutton
+ closetext
+ end
+
+AideScript_TheftTestimony:
+ writetext AideText_TheftTestimony
+ waitbutton
+ closetext
+ end
+
+AideScript_ExplainBalls:
+ writetext AideText_ExplainBalls
+ waitbutton
+ closetext
+ end
+
+AideScript_AfterTheft:
+ writetext AideText_AfterTheft
+ waitbutton
+ closetext
+ end
+
+MeetCopScript2:
+ applymovement PLAYER, MeetCopScript2_StepLeft
+
+MeetCopScript:
+ applymovement PLAYER, MeetCopScript_WalkUp
+CopScript:
+ turnobject ELMSLAB_OFFICER, LEFT
+ opentext
+ writetext ElmsLabOfficerText1
+ buttonsound
+ special NameRival
+ writetext ElmsLabOfficerText2
+ waitbutton
+ closetext
+ applymovement ELMSLAB_OFFICER, OfficerLeavesMovement
+ disappear ELMSLAB_OFFICER
+ setscene SCENE_ELMSLAB_NOTHING
+ end
+
+ElmsLabWindow:
+ opentext
+ checkflag ENGINE_FLYPOINT_VIOLET
+ iftrue .Normal
+ checkevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
+ iftrue .BreakIn
+ jump .Normal
+
+.BreakIn:
+ writetext ElmsLabWindowText2
+ waitbutton
+ closetext
+ end
+
+.Normal:
+ writetext ElmsLabWindowText1
+ waitbutton
+ closetext
+ end
+
+ElmsLabTravelTip1:
+ jumptext ElmsLabTravelTip1Text
+
+ElmsLabTravelTip2:
+ jumptext ElmsLabTravelTip2Text
+
+ElmsLabTravelTip3:
+ jumptext ElmsLabTravelTip3Text
+
+ElmsLabTravelTip4:
+ jumptext ElmsLabTravelTip4Text
+
+ElmsLabTrashcan:
+ jumptext ElmsLabTrashcanText
+
+ElmsLabTrashcan2:
+; unused
+ jumpstd trashcan
+
+ElmsLabBookshelf:
+ jumpstd difficultbookshelf
+
+ElmsLab_WalkUpToElmMovement:
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ turn_head RIGHT
+ step_end
+
+ElmsLab_CantLeaveMovement:
+ step UP
+ step_end
+
+MeetCopScript2_StepLeft:
+ step LEFT
+ step_end
+
+MeetCopScript_WalkUp:
+ step UP
+ step UP
+ turn_head RIGHT
+ step_end
+
+OfficerLeavesMovement:
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step_end
+
+AideWalksRight1:
+ step RIGHT
+ step RIGHT
+ turn_head UP
+ step_end
+
+AideWalksRight2:
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ turn_head UP
+ step_end
+
+AideWalksLeft1:
+ step LEFT
+ step LEFT
+ turn_head DOWN
+ step_end
+
+AideWalksLeft2:
+ step LEFT
+ step LEFT
+ step LEFT
+ turn_head DOWN
+ step_end
+
+ElmJumpUpMovement:
+ fix_facing
+ big_step UP
+ remove_fixed_facing
+ step_end
+
+ElmJumpDownMovement:
+ fix_facing
+ big_step DOWN
+ remove_fixed_facing
+ step_end
+
+ElmJumpLeftMovement:
+ fix_facing
+ big_step LEFT
+ remove_fixed_facing
+ step_end
+
+ElmJumpRightMovement:
+ fix_facing
+ big_step RIGHT
+ remove_fixed_facing
+ step_end
+
+AfterCyndaquilMovement:
+ step LEFT
+ step UP
+ step_end
+
+AfterTotodileMovement:
+ step LEFT
+ step LEFT
+ step UP
+ step_end
+
+AfterChikoritaMovement:
+ step LEFT
+ step LEFT
+ step LEFT
+ step UP
+ step_end
+
+ElmText_Intro:
+ text "ELM: <PLAYER>!"
+ line "There you are!"
+
+ para "I needed to ask"
+ line "you a favor."
+
+ para "I have an acquain-"
+ line "tance called MR."
+ cont "#MON."
+
+ para "He keeps finding"
+ line "weird things and"
+
+ para "raving about his"
+ line "discoveries."
+
+ para "Anyway, I just got"
+ line "an e-mail from him"
+
+ para "saying that this"
+ line "time it's real."
+
+ para "It is intriguing,"
+ line "but we're busy"
+
+ para "with our #MON"
+ line "research."
+
+ para "Could you look"
+ line "into it for us?"
+
+ para "I'll give you a"
+ line "#MON for a"
+ cont "partner."
+
+ para "They're all rare"
+ line "#MON that we"
+ cont "just found."
+
+ para "Go on. Pick one!"
+ done
+
+ElmText_LetYourMonBattleIt:
+ text "If a wild #MON"
+ line "appears, let your"
+ cont "#MON battle it!"
+ done
+
+LabWhereGoingText:
+ text "ELM: Wait! Where"
+ line "are you going?"
+ done
+
+TakeCyndaquilText:
+ text "ELM: You'll take"
+ line "CYNDAQUIL, the"
+ cont "fire #MON?"
+ done
+
+TakeTotodileText:
+ text "ELM: Do you want"
+ line "TOTODILE, the"
+ cont "water #MON?"
+ done
+
+TakeChikoritaText:
+ text "ELM: So, you like"
+ line "CHIKORITA, the"
+ cont "grass #MON?"
+ done
+
+DidntChooseStarterText:
+ text "ELM: Think it over"
+ line "carefully."
+
+ para "Your partner is"
+ line "important."
+ done
+
+ChoseStarterText:
+ text "ELM: I think"
+ line "that's a great"
+ cont "#MON too!"
+ done
+
+ReceivedStarterText:
+ text "<PLAYER> received"
+ line "@"
+ text_from_ram wStringBuffer3
+ text "!"
+ done
+
+ElmDirectionsText1:
+ text "MR.#MON lives"
+ line "near CHERRYGROVE,"
+ cont "the next city."
+
+ para "It's almost a"
+ line "direct route to"
+ cont "there."
+ done
+
+ElmDirectionsText2:
+ text "If your #MON is"
+ line "hurt, you should"
+
+ para "heal it with this"
+ line "machine."
+ done
+
+ElmDirectionsText3:
+ text "Oh, here's my"
+ line "phone number."
+
+ para "Call me if some-"
+ line "thing comes up."
+ done
+
+GotElmsNumberText:
+ text "<PLAYER> got ELM's"
+ line "phone number."
+ done
+
+ElmDescribesMrPokemonText:
+ text "MR.#MON goes"
+ line "everywhere and"
+ cont "finds rarities."
+
+ para "Too bad they're"
+ line "just rare and"
+ cont "not very useful…"
+
+ para "<PLAYER>, I'm"
+ line "counting on you!"
+ done
+
+ElmPokeBallText:
+ text "It contains a"
+ line "#MON caught by"
+ cont "PROF.ELM."
+ done
+
+ElmsLabHealingMachineText1:
+ text "I wonder what this"
+ line "does?"
+ done
+
+ElmsLabHealingMachineText2:
+ text "Heal #MON?"
+ done
+
+ElmAfterTheftText1:
+ text "ELM: <PLAYER>, this"
+ line "is terrible…"
+
+ para "Oh, yes, what was"
+ line "MR.#MON's big"
+ cont "discovery?"
+ done
+
+ElmAfterTheftText2:
+ text "<PLAYER> handed"
+ line "the MYSTERY EGG to"
+ cont "PROF.ELM."
+ done
+
+ElmAfterTheftText3:
+ text "ELM: This?"
+ done
+
+ElmAfterTheftText4:
+ text "But… Is it a"
+ line "#MON EGG?"
+
+ para "If it is, it is a"
+ line "great discovery!"
+ done
+
+ElmAfterTheftText5:
+ text "ELM: What?!?"
+
+ para "PROF.OAK gave you"
+ line "a #DEX?"
+
+ para "<PLAYER>, is that"
+ line "true? Th-that's"
+ cont "incredible!"
+
+ para "He is superb at"
+ line "seeing the poten-"
+ cont "tial of people as"
+ cont "trainers."
+
+ para "Wow, <PLAYER>. You"
+ line "may have what it"
+
+ para "takes to become"
+ line "the CHAMPION."
+
+ para "You seem to be"
+ line "getting on great"
+ cont "with #MON too."
+
+ para "You should take"
+ line "the #MON GYM"
+ cont "challenge."
+
+ para "The closest GYM"
+ line "would be the one"
+ cont "in VIOLET CITY."
+ done
+
+ElmAfterTheftText6:
+ text "…<PLAYER>. The"
+ line "road to the"
+
+ para "championship will"
+ line "be a long one."
+
+ para "Before you leave,"
+ line "make sure that you"
+ cont "talk to your mom."
+ done
+
+ElmStudyingEggText:
+ text "ELM: Don't give"
+ line "up! I'll call if"
+
+ para "I learn anything"
+ line "about that EGG!"
+ done
+
+ElmAideHasEggText:
+ text "ELM: <PLAYER>?"
+ line "Didn't you meet my"
+ cont "assistant?"
+
+ para "He should have met"
+ line "you with the EGG"
+
+ para "at VIOLET CITY's"
+ line "#MON CENTER."
+
+ para "You must have just"
+ line "missed him. Try to"
+ cont "catch him there."
+ done
+
+ElmWaitingEggHatchText:
+ text "ELM: Hey, has that"
+ line "EGG changed any?"
+ done
+
+ElmThoughtEggHatchedText:
+ text "<PLAYER>? I thought"
+ line "the EGG hatched."
+
+ para "Where is the"
+ line "#MON?"
+ done
+
+ShowElmTogepiText1:
+ text "ELM: <PLAYER>, you"
+ line "look great!"
+ done
+
+ShowElmTogepiText2:
+ text "What?"
+ line "That #MON!?!"
+ done
+
+ShowElmTogepiText3:
+ text "The EGG hatched!"
+ line "So, #MON are"
+ cont "born from EGGS…"
+
+ para "No, perhaps not"
+ line "all #MON are."
+
+ para "Wow, there's still"
+ line "a lot of research"
+ cont "to be done."
+ done
+
+ElmGiveEverstoneText1:
+ text "Thanks, <PLAYER>!"
+ line "You're helping"
+
+ para "unravel #MON"
+ line "mysteries for us!"
+
+ para "I want you to have"
+ line "this as a token of"
+ cont "our appreciation."
+ done
+
+ElmGiveEverstoneText2:
+ text "That's an"
+ line "EVERSTONE."
+
+ para "Some species of"
+ line "#MON evolve"
+
+ para "when they grow to"
+ line "certain levels."
+
+ para "A #MON holding"
+ line "the EVERSTONE"
+ cont "won't evolve."
+
+ para "Give it to a #-"
+ line "MON you don't want"
+ cont "to evolve."
+ done
+
+ElmText_CallYou:
+ text "ELM: <PLAYER>, I'll"
+ line "call you if any-"
+ cont "thing comes up."
+ done
+
+AideText_AfterTheft:
+ text "…sigh… That"
+ line "stolen #MON."
+
+ para "I wonder how it's"
+ line "doing."
+
+ para "They say a #MON"
+ line "raised by a bad"
+
+ para "person turns bad"
+ line "itself."
+ done
+
+ElmGiveMasterBallText1:
+ text "ELM: Hi, <PLAYER>!"
+ line "Thanks to you, my"
+
+ para "research is going"
+ line "great!"
+
+ para "Take this as a"
+ line "token of my"
+ cont "appreciation."
+ done
+
+ElmGiveMasterBallText2:
+ text "The MASTER BALL is"
+ line "the best!"
+
+ para "It's the ultimate"
+ line "BALL! It'll catch"
+
+ para "any #MON with-"
+ line "out fail."
+
+ para "It's given only to"
+ line "recognized #MON"
+ cont "researchers."
+
+ para "I think you can"
+ line "make better use of"
+
+ para "it than I can,"
+ line "<PLAYER>!"
+ done
+
+ElmGiveTicketText1:
+ text "ELM: <PLAYER>!"
+ line "There you are!"
+
+ para "I called because I"
+ line "have something for"
+ cont "you."
+
+ para "See? It's an"
+ line "S.S.TICKET."
+
+ para "Now you can catch"
+ line "#MON in KANTO."
+ done
+
+ElmGiveTicketText2:
+ text "The ship departs"
+ line "from OLIVINE CITY."
+
+ para "But you knew that"
+ line "already, <PLAYER>."
+
+ para "After all, you've"
+ line "traveled all over"
+ cont "with your #MON."
+
+ para "Give my regards to"
+ line "PROF.OAK in KANTO!"
+ done
+
+ElmsLabSignpostText_Egg:
+ text "It's the #MON"
+ line "EGG being studied"
+ cont "by PROF.ELM."
+ done
+
+AideText_GiveYouPotion:
+ text "<PLAYER>, I want"
+ line "you to have this"
+ cont "for your errand."
+ done
+
+AideText_AlwaysBusy:
+ text "There are only two"
+ line "of us, so we're"
+ cont "always busy."
+ done
+
+AideText_TheftTestimony:
+ text "There was a loud"
+ line "noise outside…"
+
+ para "When we went to"
+ line "look, someone"
+ cont "stole a #MON."
+
+ para "It's unbelievable"
+ line "that anyone would"
+ cont "do that!"
+
+ para "…sigh… That"
+ line "stolen #MON."
+
+ para "I wonder how it's"
+ line "doing."
+
+ para "They say a #MON"
+ line "raised by a bad"
+
+ para "person turns bad"
+ line "itself."
+ done
+
+AideText_GiveYouBalls:
+ text "<PLAYER>!"
+
+ para "Use these on your"
+ line "#DEX quest!"
+ done
+
+AideText_ExplainBalls:
+ text "To add to your"
+ line "#DEX, you have"
+ cont "to catch #MON."
+
+ para "Throw # BALLS"
+ line "at wild #MON"
+ cont "to get them."
+ done
+
+ElmsLabOfficerText1:
+ text "I heard a #MON"
+ line "was stolen here…"
+
+ para "I was just getting"
+ line "some information"
+ cont "from PROF.ELM."
+
+ para "Apparently, it was"
+ line "a young male with"
+ cont "long, red hair…"
+
+ para "What?"
+
+ para "You battled a"
+ line "trainer like that?"
+
+ para "Did you happen to"
+ line "get his name?"
+ done
+
+ElmsLabOfficerText2:
+ text "OK! So <RIVAL>"
+ line "was his name."
+
+ para "Thanks for helping"
+ line "my investigation!"
+ done
+
+ElmsLabWindowText1:
+ text "The window's open."
+
+ para "A pleasant breeze"
+ line "is blowing in."
+ done
+
+ElmsLabWindowText2:
+ text "He broke in"
+ line "through here!"
+ done
+
+ElmsLabTravelTip1Text:
+ text "<PLAYER> opened a"
+ line "book."
+
+ para "Travel Tip 1:"
+
+ para "Press START to"
+ line "open the MENU."
+ done
+
+ElmsLabTravelTip2Text:
+ text "<PLAYER> opened a"
+ line "book."
+
+ para "Travel Tip 2:"
+
+ para "Record your trip"
+ line "with SAVE!"
+ done
+
+ElmsLabTravelTip3Text:
+ text "<PLAYER> opened a"
+ line "book."
+
+ para "Travel Tip 3:"
+
+ para "Open your PACK and"
+ line "press SELECT to"
+ cont "move items."
+ done
+
+ElmsLabTravelTip4Text:
+ text "<PLAYER> opened a"
+ line "book."
+
+ para "Travel Tip 4:"
+
+ para "Check your #MON"
+ line "moves. Press the"
+
+ para "A Button to switch"
+ line "moves."
+ done
+
+ElmsLabTrashcanText:
+ text "The wrapper from"
+ line "the snack PROF.ELM"
+ cont "ate is in there…"
+ done
+
+ElmsLab_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 11, NEW_BARK_TOWN, 1
+ warp_event 5, 11, NEW_BARK_TOWN, 1
+
+ db 8 ; coord events
+ coord_event 4, 6, SCENE_ELMSLAB_CANT_LEAVE, LabTryToLeaveScript
+ coord_event 5, 6, SCENE_ELMSLAB_CANT_LEAVE, LabTryToLeaveScript
+ coord_event 4, 5, SCENE_ELMSLAB_MEET_OFFICER, MeetCopScript
+ coord_event 5, 5, SCENE_ELMSLAB_MEET_OFFICER, MeetCopScript2
+ coord_event 4, 8, SCENE_ELMSLAB_AIDE_GIVES_POTION, AideScript_WalkPotion1
+ coord_event 5, 8, SCENE_ELMSLAB_AIDE_GIVES_POTION, AideScript_WalkPotion2
+ coord_event 4, 8, SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS, AideScript_WalkBalls1
+ coord_event 5, 8, SCENE_ELMSLAB_AIDE_GIVES_POKE_BALLS, AideScript_WalkBalls2
+
+ db 15 ; bg events
+ bg_event 2, 1, BGEVENT_READ, ElmsLabHealingMachine
+ bg_event 6, 1, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 7, 1, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 8, 1, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 9, 1, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 0, 7, BGEVENT_READ, ElmsLabTravelTip1
+ bg_event 1, 7, BGEVENT_READ, ElmsLabTravelTip2
+ bg_event 2, 7, BGEVENT_READ, ElmsLabTravelTip3
+ bg_event 3, 7, BGEVENT_READ, ElmsLabTravelTip4
+ bg_event 6, 7, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 7, 7, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 8, 7, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 9, 7, BGEVENT_READ, ElmsLabBookshelf
+ bg_event 9, 3, BGEVENT_READ, ElmsLabTrashcan
+ bg_event 5, 0, BGEVENT_READ, ElmsLabWindow
+
+ db 6 ; object events
+ object_event 5, 2, SPRITE_ELM, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ProfElmScript, -1
+ object_event 2, 9, SPRITE_SCIENTIST, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
+ object_event 6, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+ object_event 7, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+ object_event 8, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+ object_event 5, 3, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CopScript, EVENT_COP_IN_ELMS_LAB
diff --git a/maps/PlayersHouse1F.asm b/maps/PlayersHouse1F.asm
new file mode 100644
index 00000000..91e0cc54
--- /dev/null
+++ b/maps/PlayersHouse1F.asm
@@ -0,0 +1,310 @@
+ const_def 2 ; object constants
+ const PLAYERSHOUSE1F_MOM1
+ const PLAYERSHOUSE1F_MOM2
+ const PLAYERSHOUSE1F_MOM3
+ const PLAYERSHOUSE1F_MOM4
+
+PlayersHouse1F_MapScripts:
+ db 2 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.DummyScene0:
+ priorityjump MeetMomScript
+ end
+
+.DummyScene1:
+ end
+
+MeetMomScript:
+ applymovement PLAYER, PlayersHouseDownstairsMovement
+ playmusic MUSIC_MOM
+ turnobject PLAYERSHOUSE1F_MOM1, UP
+ showemote EMOTE_SHOCK, PLAYERSHOUSE1F_MOM1, 15
+ applymovement PLAYERSHOUSE1F_MOM1, MomWalksToPlayerMovement
+ opentext
+ writetext ElmsLookingForYouText
+ buttonsound
+ stringtotext GearName, MEM_BUFFER_1
+ scall PlayersHouse1FReceiveItemStd
+ setflag ENGINE_POKEGEAR
+ setflag ENGINE_PHONE_CARD
+ addcellnum PHONE_MOM
+ setscene SCENE_FINISHED
+ setevent EVENT_PLAYERS_HOUSE_MOM_1
+ clearevent EVENT_PLAYERS_HOUSE_MOM_2
+ writetext MomGivesPokegearText
+ buttonsound
+ special SetDayOfWeek
+.SetDayOfWeek:
+ writetext IsItDSTText
+ yesorno
+ iffalse .WrongDay
+ special InitialSetDSTFlag
+ yesorno
+ iffalse .SetDayOfWeek
+ jump .DayOfWeekDone
+
+.WrongDay:
+ special InitialClearDSTFlag
+ yesorno
+ iffalse .SetDayOfWeek
+.DayOfWeekDone:
+ writetext ComeHomeForDSTText
+ yesorno
+ iffalse .ExplainPhone
+ jump .KnowPhone
+
+.KnowPhone:
+ writetext KnowTheInstructionsText
+ buttonsound
+ jump .FinishPhone
+
+.ExplainPhone:
+ writetext DontKnowTheInstructionsText
+ buttonsound
+ jump .FinishPhone
+
+.FinishPhone:
+ writetext InstructionsNextText
+ waitbutton
+ closetext
+ applymovement PLAYERSHOUSE1F_MOM1, MomTurnsBackMovement
+ special RestartMapMusic
+ end
+
+GearName:
+ db "#GEAR@"
+
+PlayersHouse1FReceiveItemStd:
+ jumpstd receiveitem
+ end
+
+MomScript:
+ faceplayer
+ opentext
+ checkevent EVENT_FIRST_TIME_BANKING_WITH_MOM
+ iftrue .FirstTimeBanking
+ checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+ iftrue .BankOfMom
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .GaveMysteryEgg
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue .GotAPokemon
+ writetext HurryUpElmIsWaitingText
+ waitbutton
+ closetext
+ end
+
+.GotAPokemon:
+ writetext SoWhatWasProfElmsErrandText
+ waitbutton
+ closetext
+ end
+
+.FirstTimeBanking:
+ writetext ImBehindYouText
+ waitbutton
+ closetext
+ end
+
+.GaveMysteryEgg:
+ setevent EVENT_FIRST_TIME_BANKING_WITH_MOM
+.BankOfMom:
+ setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+ special BankOfMom
+ waitbutton
+ closetext
+ end
+
+TVScript:
+ jumptext TVText
+
+StoveScript:
+ jumptext StoveText
+
+SinkScript:
+ jumptext SinkText
+
+FridgeScript:
+ jumptext FridgeText
+
+PlayersHouseDownstairsMovement:
+ step DOWN
+ step_end
+
+MomWalksToPlayerMovement:
+ slow_step RIGHT
+ slow_step RIGHT
+ slow_step UP
+ step_end
+
+MomTurnsBackMovement:
+ slow_step DOWN
+ slow_step LEFT
+ slow_step LEFT
+ step_end
+
+ElmsLookingForYouText:
+ text "Oh, <PLAYER>…! Our"
+ line "neighbor, PROF."
+
+ para "ELM, was looking"
+ line "for you."
+
+ para "He said he wanted"
+ line "you to do some-"
+ cont "thing for him."
+
+ para "Oh! I almost for-"
+ line "got! Your #MON"
+
+ para "GEAR is back from"
+ line "the repair shop."
+
+ para "Here you go!"
+ done
+
+MomGivesPokegearText:
+ text "#MON GEAR, or"
+ line "just #GEAR."
+
+ para "It's essential if"
+ line "you want to be a"
+ cont "good trainer."
+
+ para "Oh, the day of the"
+ line "week isn't set."
+
+ para "You mustn't forget"
+ line "that!"
+ done
+
+IsItDSTText:
+ text "Is it Daylight"
+ line "Saving Time now?"
+ done
+
+ComeHomeForDSTText:
+ text "Come home to"
+ line "adjust your clock"
+
+ para "for Daylight"
+ line "Saving Time."
+
+ para "By the way, do you"
+ line "know how to use"
+ cont "the PHONE?"
+ done
+
+KnowTheInstructionsText:
+ text "Don't you just"
+ line "turn the #GEAR"
+
+ para "on and select the"
+ line "PHONE icon?"
+ done
+
+DontKnowTheInstructionsText:
+ text "I'll read the"
+ line "instructions."
+
+ para "Turn the #GEAR"
+ line "on and select the"
+ cont "PHONE icon."
+ done
+
+InstructionsNextText:
+ text "Phone numbers are"
+ line "stored in memory."
+
+ para "Just choose a name"
+ line "you want to call."
+
+ para "Gee, isn't that"
+ line "convenient?"
+ done
+
+HurryUpElmIsWaitingText:
+ text "PROF.ELM is wait-"
+ line "ing for you."
+
+ para "Hurry up, baby!"
+ done
+
+SoWhatWasProfElmsErrandText:
+ text "So, what was PROF."
+ line "ELM's errand?"
+
+ para "…"
+
+ para "That does sound"
+ line "challenging."
+
+ para "But, you should be"
+ line "proud that people"
+ cont "rely on you."
+ done
+
+ImBehindYouText:
+ text "<PLAYER>, do it!"
+
+ para "I'm behind you all"
+ line "the way!"
+ done
+
+StoveText:
+ text "Mom's specialty!"
+
+ para "CINNABAR VOLCANO"
+ line "BURGER!"
+ done
+
+SinkText:
+ text "The sink is spot-"
+ line "less. Mom likes it"
+ cont "clean."
+ done
+
+FridgeText:
+ text "Let's see what's"
+ line "in the fridge…"
+
+ para "FRESH WATER and"
+ line "tasty LEMONADE!"
+ done
+
+TVText:
+ text "There's a movie on"
+ line "TV: Stars dot the"
+
+ para "sky as two boys"
+ line "ride on a train…"
+
+ para "I'd better get"
+ line "rolling too!"
+ done
+
+PlayersHouse1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 6, 7, NEW_BARK_TOWN, 2
+ warp_event 7, 7, NEW_BARK_TOWN, 2
+ warp_event 9, 0, PLAYERS_HOUSE_2F, 1
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 0, 1, BGEVENT_READ, StoveScript
+ bg_event 1, 1, BGEVENT_READ, SinkScript
+ bg_event 2, 1, BGEVENT_READ, FridgeScript
+ bg_event 4, 1, BGEVENT_READ, TVScript
+
+ db 4 ; object events
+ object_event 7, 3, SPRITE_MOM, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_1
+ object_event 2, 2, SPRITE_MOM, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, MORN, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2
+ object_event 7, 3, SPRITE_MOM, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2
+ object_event 0, 2, SPRITE_MOM, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, NITE, 0, OBJECTTYPE_SCRIPT, 0, MomScript, EVENT_PLAYERS_HOUSE_MOM_2
diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm
new file mode 100644
index 00000000..711b9594
--- /dev/null
+++ b/maps/PlayersHouse2F.asm
@@ -0,0 +1,132 @@
+ const_def 2 ; object constants
+ const PLAYERSHOUSE2F_CONSOLE
+ const PLAYERSHOUSE2F_DOLL_1
+ const PLAYERSHOUSE2F_DOLL_2
+ const PLAYERSHOUSE2F_BIG_DOLL
+
+PlayersHouse2F_MapScripts:
+ db 0 ; scene scripts
+
+ db 2 ; callbacks
+ callback MAPCALLBACK_NEWMAP, .InitializeRoom
+ callback MAPCALLBACK_TILES, .SetSpawn
+
+; unused
+.Null:
+ end
+
+.InitializeRoom:
+ special ToggleDecorationsVisibility
+ setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_8
+ checkevent EVENT_INITIALIZED_EVENTS
+ iftrue .SkipInitialization
+ jumpstd initializeevents
+ return
+
+.SkipInitialization:
+ return
+
+.SetSpawn:
+ special ToggleMaptileDecorations
+ return
+
+PlayersHouseRadioScript:
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue .NormalRadio
+ checkevent EVENT_LISTENED_TO_INITIAL_RADIO
+ iftrue .AbbreviatedRadio
+ playmusic MUSIC_POKEMON_TALK
+ opentext
+ writetext PlayersRadioText1
+ pause 45
+ writetext PlayersRadioText2
+ pause 45
+ writetext PlayersRadioText3
+ pause 45
+ musicfadeout MUSIC_NEW_BARK_TOWN, 16
+ writetext PlayersRadioText4
+ pause 45
+ closetext
+ setevent EVENT_LISTENED_TO_INITIAL_RADIO
+ end
+
+.NormalRadio:
+ jumpstd radio1
+
+.AbbreviatedRadio:
+ opentext
+ writetext PlayersRadioText4
+ pause 45
+ closetext
+ end
+PlayersHouseBookshelfScript:
+ jumpstd picturebookshelf
+
+PlayersHousePCScript:
+ opentext
+ special PlayersHousePC
+ iftrue .Warp
+ closetext
+ end
+.Warp:
+ warp NONE, 0, 0
+ end
+
+PlayersHousePosterScript:
+ conditional_event EVENT_PLAYERS_ROOM_POSTER, .Script
+
+.Script:
+ describedecoration DECODESC_POSTER
+
+Doll1Script:
+ describedecoration DECODESC_LEFT_DOLL
+
+Doll2Script:
+ describedecoration DECODESC_RIGHT_DOLL
+
+BigDollScript:
+ describedecoration DECODESC_BIG_DOLL
+
+GameConsoleScript:
+ describedecoration DECODESC_CONSOLE
+
+
+PlayersRadioText1:
+ text "PROF.OAK'S #MON"
+ line "TALK! Please tune"
+ cont "in next time!"
+ done
+
+PlayersRadioText2:
+ text "#MON CHANNEL!"
+ done
+
+PlayersRadioText3:
+ text "This is DJ MARY,"
+ line "your co-host!"
+ done
+
+PlayersRadioText4:
+ text "#MON!"
+ line "#MON CHANNEL…"
+ done
+
+PlayersHouse2F_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 7, 0, PLAYERS_HOUSE_1F, 3
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 2, 1, BGEVENT_UP, PlayersHousePCScript
+ bg_event 3, 1, BGEVENT_READ, PlayersHouseRadioScript
+ bg_event 5, 1, BGEVENT_READ, PlayersHouseBookshelfScript
+ bg_event 6, 0, BGEVENT_IFSET, PlayersHousePosterScript
+
+ db 4 ; object events
+ object_event 4, 2, SPRITE_CONSOLE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GameConsoleScript, EVENT_PLAYERS_HOUSE_2F_CONSOLE
+ object_event 4, 4, SPRITE_DOLL_1, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Doll1Script, EVENT_PLAYERS_HOUSE_2F_DOLL_1
+ object_event 5, 4, SPRITE_DOLL_2, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Doll2Script, EVENT_PLAYERS_HOUSE_2F_DOLL_2
+ object_event 0, 1, SPRITE_BIG_DOLL, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BigDollScript, EVENT_PLAYERS_HOUSE_2F_BIG_DOLL
diff --git a/maps/PlayersNeighborsHouse.asm b/maps/PlayersNeighborsHouse.asm
new file mode 100644
index 00000000..e587dc32
--- /dev/null
+++ b/maps/PlayersNeighborsHouse.asm
@@ -0,0 +1,97 @@
+ const_def 2 ; object constants
+ const PLAYERSNEIGHBORSHOUSE_COOLTRAINER_F
+
+PlayersNeighborsHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+PlayersNeighborsDaughterScript:
+ jumptextfaceplayer PlayersNeighborsDaughterText
+
+PlayersNeighborsHouseBookshelfScript:
+ jumpstd magazinebookshelf
+
+PlayersNeighborsHouseRadioScript:
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue .NormalRadio
+ checkevent EVENT_LISTENED_TO_INITIAL_RADIO
+ iftrue .AbbreviatedRadio
+ playmusic MUSIC_POKEMON_TALK
+ opentext
+ writetext PlayerNeighborRadioText1
+ pause 45
+ writetext PlayerNeighborRadioText2
+ pause 45
+ writetext PlayerNeighborRadioText3
+ pause 45
+ musicfadeout MUSIC_NEW_BARK_TOWN, 16
+ writetext PlayerNeighborRadioText4
+ pause 45
+ closetext
+ setevent EVENT_LISTENED_TO_INITIAL_RADIO
+ end
+.NormalRadio:
+ jumpstd radio1
+.AbbreviatedRadio:
+ opentext
+ writetext PlayerNeighborRadioText4
+ pause 45
+ closetext
+ end
+
+PlayersNeighborsDaughterText:
+ text "PIKACHU is an"
+ line "evolved #MON."
+
+ para "I was amazed by"
+ line "PROF.ELM's find-"
+ cont "ings."
+
+ para "He's so famous for"
+ line "his research on"
+ cont "#MON evolution."
+
+ para "…sigh…"
+
+ para "I wish I could be"
+ line "a researcher like"
+ cont "him…"
+ done
+
+PlayerNeighborRadioText1:
+ text "PROF.OAK'S #MON"
+ line "TALK! Please tune"
+ cont "in next time!"
+ done
+
+PlayerNeighborRadioText2:
+ text "#MON CHANNEL!"
+ done
+
+PlayerNeighborRadioText3:
+ text "This is DJ MARY,"
+ line "your co-host!"
+ done
+
+PlayerNeighborRadioText4:
+ text "#MON!"
+ line "#MON CHANNEL…"
+ done
+
+PlayersNeighborsHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, NEW_BARK_TOWN, 3
+ warp_event 3, 7, NEW_BARK_TOWN, 3
+
+ db 0 ; coord events
+
+ db 3 ; bg events
+ bg_event 0, 1, BGEVENT_READ, PlayersNeighborsHouseBookshelfScript
+ bg_event 1, 1, BGEVENT_READ, PlayersNeighborsHouseBookshelfScript
+ bg_event 7, 1, BGEVENT_READ, PlayersNeighborsHouseRadioScript
+
+ db 1 ; object events
+ object_event 2, 3, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, PlayersNeighborsDaughterScript, -1
diff --git a/maps/Route26HealHouse.asm b/maps/Route26HealHouse.asm
new file mode 100644
index 00000000..d7dc3ae0
--- /dev/null
+++ b/maps/Route26HealHouse.asm
@@ -0,0 +1,62 @@
+ const_def 2 ; object constants
+ const ROUTE26HEALHOUSE_TEACHER
+
+Route26HealHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route26HealHouseTeacherScript:
+ faceplayer
+ opentext
+ writetext Route26HealHouseRestAWhileText
+ waitbutton
+ closetext
+ special FadeBlackQuickly
+ special ReloadSpritesNoPalettes
+ playmusic MUSIC_HEAL
+ special HealParty
+ pause 60
+ special FadeInQuickly
+ special RestartMapMusic
+ opentext
+ writetext Route26HealHouseKeepAtItText
+ waitbutton
+ closetext
+ end
+
+Route26HealHouseBookshelf:
+ jumpstd picturebookshelf
+
+Route26HealHouseRestAWhileText:
+ text "Your #MON look"
+ line "a little tired."
+
+ para "You should rest"
+ line "them a while."
+ done
+
+Route26HealHouseKeepAtItText:
+ text "There!"
+
+ para "Your #MON are"
+ line "looking good!"
+
+ para "Keep at it!"
+ done
+
+Route26HealHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_26, 2
+ warp_event 3, 7, ROUTE_26, 2
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, Route26HealHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, Route26HealHouseBookshelf
+
+ db 1 ; object events
+ object_event 2, 3, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route26HealHouseTeacherScript, -1
diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm
new file mode 100644
index 00000000..886e7aa2
--- /dev/null
+++ b/maps/Route27SandstormHouse.asm
@@ -0,0 +1,108 @@
+ const_def 2 ; object constants
+ const ROUTE27SANDSTORMHOUSE_GRANNY
+
+Route27SandstormHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+SandstormHouseWoman:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TM37_SANDSTORM
+ iftrue .AlreadyGotItem
+ special GetFirstPokemonHappiness
+ writetext SandstormHouseWomanText1
+ buttonsound
+ ifgreater 150 - 1, .Loyal
+ jump .Disloyal
+
+.Loyal:
+ writetext SandstormHouseWomanLoyalText
+ buttonsound
+ verbosegiveitem TM_SANDSTORM
+ iffalse .Done
+ setevent EVENT_GOT_TM37_SANDSTORM
+.AlreadyGotItem:
+ writetext SandstormHouseSandstormDescription
+ waitbutton
+.Done:
+ closetext
+ end
+
+.Disloyal:
+ writetext SandstormHouseWomanDisloyalText
+ waitbutton
+ closetext
+ end
+
+SandstormHouseBookshelf:
+ jumpstd magazinebookshelf
+
+SandstormHouseWomanText1:
+ text "Where are you off"
+ line "to with #MON?"
+
+ para "#MON LEAGUE?"
+
+ para "Are your #MON"
+ line "loyal enough for"
+ cont "you to win?"
+
+ para "Let me see…"
+ done
+
+SandstormHouseWomanLoyalText:
+ text "Ah! Your #MON"
+ line "trusts you very"
+ cont "much."
+
+ para "It's nice to see a"
+ line "good trainer."
+
+ para "Here. A gift for"
+ line "your journey."
+ done
+
+SandstormHouseSandstormDescription:
+ text "TM37 happens to be"
+ line "SANDSTORM."
+
+ para "It's a move that"
+ line "inflicts damage on"
+ cont "both battlers."
+
+ para "It's for advanced"
+ line "trainers only."
+
+ para "Use it if you"
+ line "dare. Good luck!"
+ done
+
+SandstormHouseWomanDisloyalText:
+ text "If it doesn't come"
+ line "to trust you some"
+
+ para "more, it could be"
+ line "tough going."
+
+ para "Trust is the tie"
+ line "that binds #MON"
+ cont "and trainers."
+ done
+
+Route27SandstormHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_27, 1
+ warp_event 3, 7, ROUTE_27, 1
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, SandstormHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, SandstormHouseBookshelf
+
+ db 1 ; object events
+ object_event 2, 4, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SandstormHouseWoman, -1
diff --git a/maps/Route29Route46Gate.asm b/maps/Route29Route46Gate.asm
new file mode 100644
index 00000000..f575df1c
--- /dev/null
+++ b/maps/Route29Route46Gate.asm
@@ -0,0 +1,52 @@
+ const_def 2 ; object constants
+ const ROUTE29ROUTE46GATE_OFFICER
+ const ROUTE29ROUTE46GATE_YOUNGSTER
+
+Route29Route46Gate_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route29Route46GateOfficerScript:
+ jumptextfaceplayer Route29Route46GateOfficerText
+
+Route29Route46GateYoungsterScript:
+ jumptextfaceplayer Route29Route46GateYoungsterText
+
+Route29Route46GateOfficerText:
+ text "You can't climb"
+ line "ledges."
+
+ para "But you can jump"
+ line "down from them to"
+ cont "take a shortcut."
+ done
+
+Route29Route46GateYoungsterText:
+ text "Different kinds of"
+ line "#MON appear"
+ cont "past here."
+
+ para "If you want to"
+ line "catch them all,"
+
+ para "you have to look"
+ line "everywhere."
+ done
+
+Route29Route46Gate_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 4, 0, ROUTE_46, 1
+ warp_event 5, 0, ROUTE_46, 2
+ warp_event 4, 7, ROUTE_29, 1
+ warp_event 5, 7, ROUTE_29, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 2 ; object events
+ object_event 0, 4, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route29Route46GateOfficerScript, -1
+ object_event 6, 4, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route29Route46GateYoungsterScript, -1