summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2018-10-03 02:34:47 -0600
committerIIMarckus <iimarckus@gmail.com>2018-10-03 02:34:47 -0600
commit0caa6b151e2126c99e2a044ae3e8c0e203831d22 (patch)
tree9477a2275738ef6e693ca5acf754c37aa1876974
parent752bb47344f9862a4fe9b7cc2b096b0fe42cfad9 (diff)
Add map objects from bank 5C.
-rw-r--r--main.asm29
-rw-r--r--maps/BillsBrothersHouse.asm41
-rw-r--r--maps/Colosseum.asm69
-rw-r--r--maps/FuchsiaGym.asm400
-rw-r--r--maps/FuchsiaMart.asm52
-rw-r--r--maps/FuchsiaPokecenter1F.asm105
-rw-r--r--maps/FuchsiaPokecenter2FBeta.asm16
-rw-r--r--maps/Pokecenter2F.asm594
-rw-r--r--maps/Route15FuchsiaGate.asm34
-rw-r--r--maps/Route28SteelWingHouse.asm86
-rw-r--r--maps/SafariZoneMainOffice.asm17
-rw-r--r--maps/SafariZoneWardensHome.asm93
-rw-r--r--maps/TimeCapsule.asm69
-rw-r--r--maps/TradeCenter.asm70
14 files changed, 1660 insertions, 15 deletions
diff --git a/main.asm b/main.asm
index 35bad6ab..ac7fffbb 100644
--- a/main.asm
+++ b/main.asm
@@ -1863,21 +1863,20 @@ SECTION "bank5b", ROMX, BANK[$5b]
dr $16c000, $170000
SECTION "bank5c", ROMX, BANK[$5c]
-;INCLUDE "maps/FuchsiaMart.asm"
-;INCLUDE "maps/SafariZoneMainOffice.asm"
-;INCLUDE "maps/FuchsiaGym.asm"
-;INCLUDE "maps/BillsBrothersHouse.asm"
-;INCLUDE "maps/FuchsiaPokecenter1F.asm"
-;INCLUDE "maps/FuchsiaPokecenter2FBeta.asm"
-;INCLUDE "maps/SafariZoneWardensHome.asm"
-;INCLUDE "maps/Route15FuchsiaGate.asm"
-;INCLUDE "maps/SilverCavePokecenter1F.asm"
-;INCLUDE "maps/Route28SteelWingHouse.asm"
-;INCLUDE "maps/Pokecenter2F.asm"
-;INCLUDE "maps/TradeCenter.asm"
-;INCLUDE "maps/Colosseum.asm"
-;INCLUDE "maps/TimeCapsule.asm"
- dr $170000, $174000
+INCLUDE "maps/FuchsiaMart.asm"
+INCLUDE "maps/SafariZoneMainOffice.asm"
+INCLUDE "maps/FuchsiaGym.asm"
+INCLUDE "maps/BillsBrothersHouse.asm"
+INCLUDE "maps/FuchsiaPokecenter1F.asm"
+INCLUDE "maps/FuchsiaPokecenter2FBeta.asm"
+INCLUDE "maps/SafariZoneWardensHome.asm"
+INCLUDE "maps/Route15FuchsiaGate.asm"
+INCLUDE "maps/SilverCavePokecenter1F.asm"
+INCLUDE "maps/Route28SteelWingHouse.asm"
+INCLUDE "maps/Pokecenter2F.asm"
+INCLUDE "maps/TradeCenter.asm"
+INCLUDE "maps/Colosseum.asm"
+INCLUDE "maps/TimeCapsule.asm"
SECTION "bank5d", ROMX, BANK[$5d]
INCLUDE "maps/LavenderPokecenter1F.asm"
diff --git a/maps/BillsBrothersHouse.asm b/maps/BillsBrothersHouse.asm
new file mode 100644
index 00000000..e669586e
--- /dev/null
+++ b/maps/BillsBrothersHouse.asm
@@ -0,0 +1,41 @@
+ const_def 2 ; object constants
+ const BILLSBROTHERSHOUSE_POKEFAN_F
+ const BILLSBROTHERSHOUSE_YOUNGSTER
+
+BillsBrothersHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+BillsBrotherScript:
+ jumptextfaceplayer BillsBrotherText
+
+BillsBrothersHouseYoungsterScript:
+ jumptextfaceplayer BillsBrothersHouseYoungsterText
+
+BillsBrotherText:
+ text "My grandpa is at "
+ line "my brother BILL's"
+ cont "on CERULEAN CAPE."
+ done
+
+BillsBrothersHouseYoungsterText:
+ text "I saw these weird,"
+ line "slow #MON on"
+ cont "CYCLING ROAD."
+ done
+
+BillsBrothersHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, FUCHSIA_CITY, 4
+ warp_event 3, 7, FUCHSIA_CITY, 4
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_POKEFAN_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BillsBrotherScript, -1
+ object_event 6, 4, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BillsBrothersHouseYoungsterScript, -1
diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm
new file mode 100644
index 00000000..ee6cc343
--- /dev/null
+++ b/maps/Colosseum.asm
@@ -0,0 +1,69 @@
+ const_def 2 ; object constants
+ const COLOSSEUM_CHRIS1
+ const COLOSSEUM_CHRIS2
+
+Colosseum_MapScripts:
+ db 2 ; scene scripts
+ scene_script .InitializeColosseum ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_FINISHED
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .SetWhichChris
+
+.InitializeColosseum:
+ priorityjump .InitializeAndPreparePokecenter2F
+ end
+
+.DummyScene1:
+ end
+
+.SetWhichChris:
+ special CableClubCheckWhichChris
+ iffalse .Chris2
+ disappear COLOSSEUM_CHRIS2
+ appear COLOSSEUM_CHRIS1
+ return
+
+.Chris2:
+ disappear COLOSSEUM_CHRIS1
+ appear COLOSSEUM_CHRIS2
+ return
+
+.InitializeAndPreparePokecenter2F:
+ setscene SCENE_FINISHED
+ setmapscene POKECENTER_2F, SCENE_POKECENTER2F_LEAVE_COLOSSEUM
+ end
+
+ColosseumConsoleScript:
+ special Colosseum
+ newloadmap MAPSETUP_LINKRETURN
+ end
+
+CableClubFriendScript:
+ opentext
+ writetext .FriendReadyText
+ waitbutton
+ closetext
+ end
+
+.FriendReadyText:
+ text "Your friend is"
+ line "ready."
+ done
+
+Colosseum_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 7, POKECENTER_2F, 3
+ warp_event 5, 7, POKECENTER_2F, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 4, 4, BGEVENT_RIGHT, ColosseumConsoleScript
+ bg_event 5, 4, BGEVENT_LEFT, ColosseumConsoleScript
+
+ db 2 ; object events
+ object_event 3, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CableClubFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
+ object_event 6, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CableClubFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm
new file mode 100644
index 00000000..6b9c4b2b
--- /dev/null
+++ b/maps/FuchsiaGym.asm
@@ -0,0 +1,400 @@
+ const_def 2 ; object constants
+ const FUCHSIAGYM_JANINE
+ const FUCHSIAGYM_FUCHSIA_GYM_1
+ const FUCHSIAGYM_FUCHSIA_GYM_2
+ const FUCHSIAGYM_FUCHSIA_GYM_3
+ const FUCHSIAGYM_FUCHSIA_GYM_4
+ const FUCHSIAGYM_GYM_GUY
+
+FuchsiaGym_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+FuchsiaGymJanineScript:
+ checkflag ENGINE_SOULBADGE
+ iftrue .FightDone
+ applymovement FUCHSIAGYM_JANINE, Movement_NinjaSpin
+ faceplayer
+ opentext
+ writetext JanineText_DisappointYou
+ waitbutton
+ closetext
+ winlosstext JanineText_ToughOne, 0
+ loadtrainer JANINE, JANINE1
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_JANINE
+ setevent EVENT_BEAT_LASS_ALICE
+ setevent EVENT_BEAT_LASS_LINDA
+ setevent EVENT_BEAT_PICNICKER_CINDY
+ setevent EVENT_BEAT_CAMPER_BARRY
+ variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_LASS
+ variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
+ variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
+ variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
+ special LoadUsedSpritesGFX
+ opentext
+ writetext Text_ReceivedSoulBadge
+ playsound SFX_GET_BADGE
+ waitsfx
+ setflag ENGINE_SOULBADGE
+ jump .AfterBattle
+.FightDone:
+ faceplayer
+ opentext
+.AfterBattle:
+ checkevent EVENT_GOT_TM06_TOXIC
+ iftrue .AfterTM
+ writetext JanineText_ToxicSpeech
+ buttonsound
+ verbosegiveitem TM_TOXIC
+ iffalse .AfterTM
+ setevent EVENT_GOT_TM06_TOXIC
+.AfterTM:
+ writetext JanineText_ApplyMyself
+ waitbutton
+ closetext
+ end
+
+LassAliceScript:
+ checkevent EVENT_BEAT_LASS_ALICE
+ iftrue .AliceUnmasked
+ applymovement FUCHSIAGYM_FUCHSIA_GYM_1, Movement_NinjaSpin
+ faceplayer
+ variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_LASS
+ special LoadUsedSpritesGFX
+.AliceUnmasked:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_LASS_ALICE
+ iftrue .AliceAfterScript
+ writetext LassAliceBeforeText
+ waitbutton
+ closetext
+ winlosstext LassAliceBeatenText, 0
+ loadtrainer LASS, ALICE
+ startbattle
+ iftrue .AliceBecomesJanine
+ reloadmapafterbattle
+ setevent EVENT_BEAT_LASS_ALICE
+ end
+
+.AliceBecomesJanine:
+ variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_JANINE
+ reloadmapafterbattle
+ end
+
+.AliceAfterScript:
+ writetext LassAliceAfterText
+ waitbutton
+ closetext
+ end
+
+LassLindaScript:
+ checkevent EVENT_BEAT_LASS_LINDA
+ iftrue .LindaUnmasked
+ applymovement FUCHSIAGYM_FUCHSIA_GYM_2, Movement_NinjaSpin
+ faceplayer
+ variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_LASS
+ special LoadUsedSpritesGFX
+.LindaUnmasked:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_LASS_LINDA
+ iftrue .LindaAfterScript
+ writetext LassLindaBeforeText
+ waitbutton
+ closetext
+ winlosstext LassLindaBeatenText, 0
+ loadtrainer LASS, LINDA
+ startbattle
+ iftrue .LindaBecomesJanine
+ reloadmapafterbattle
+ setevent EVENT_BEAT_LASS_LINDA
+ end
+
+.LindaBecomesJanine:
+ variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_JANINE
+ reloadmapafterbattle
+ end
+
+.LindaAfterScript:
+ writetext LassLindaAfterText
+ waitbutton
+ closetext
+ end
+
+PicnickerCindyScript:
+ checkevent EVENT_BEAT_PICNICKER_CINDY
+ iftrue .CindyUnmasked
+ applymovement FUCHSIAGYM_FUCHSIA_GYM_3, Movement_NinjaSpin
+ faceplayer
+ variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_LASS
+ special LoadUsedSpritesGFX
+.CindyUnmasked:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_PICNICKER_CINDY
+ iftrue .CindyAfterScript
+ writetext PicnickerCindyBeforeText
+ waitbutton
+ closetext
+ winlosstext PicnickerCindyBeatenText, 0
+ loadtrainer PICNICKER, CINDY
+ startbattle
+ iftrue .CindyBecomesJanine
+ reloadmapafterbattle
+ setevent EVENT_BEAT_PICNICKER_CINDY
+ end
+
+.CindyBecomesJanine:
+ variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_JANINE
+ reloadmapafterbattle
+ end
+
+.CindyAfterScript:
+ writetext PicnickerCindyAfterText
+ waitbutton
+ closetext
+ end
+
+CamperBarryScript:
+ checkevent EVENT_BEAT_CAMPER_BARRY
+ iftrue .BarryUnmasked
+ applymovement FUCHSIAGYM_FUCHSIA_GYM_4, Movement_NinjaSpin
+ faceplayer
+ variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_YOUNGSTER
+ special LoadUsedSpritesGFX
+.BarryUnmasked:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_CAMPER_BARRY
+ iftrue .BarryAfterScript
+ writetext CamperBarryBeforeText
+ waitbutton
+ closetext
+ winlosstext CamperBarryBeatenText, 0
+ loadtrainer CAMPER, BARRY
+ startbattle
+ iftrue .BarryBecomesJanine
+ reloadmapafterbattle
+ setevent EVENT_BEAT_CAMPER_BARRY
+ end
+
+.BarryBecomesJanine:
+ variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_JANINE
+ reloadmapafterbattle
+ end
+
+.BarryAfterScript:
+ writetext CamperBarryAfterText
+ waitbutton
+ closetext
+ end
+
+FuchsiaGymGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_JANINE
+ iftrue .FuchsiaGymGuyWinScript
+ writetext FuchsiaGymGuyText
+ waitbutton
+ closetext
+ end
+
+.FuchsiaGymGuyWinScript:
+ writetext FuchsiaGymGuyWinText
+ waitbutton
+ closetext
+ end
+
+FuchsiaGymStatue:
+ checkflag ENGINE_SOULBADGE
+ iftrue .Beaten
+ jumpstd gymstatue1
+.Beaten:
+ trainertotext JANINE, JANINE1, MEM_BUFFER_1
+ jumpstd gymstatue2
+
+Movement_NinjaSpin:
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ step_end
+
+JanineText_DisappointYou:
+ text "Fufufufu…"
+
+ para "I'm sorry to dis-"
+ line "appoint you…"
+
+ para "I'm only joking!"
+
+ para "I'm the real deal!"
+
+ para "JANINE of FUCHSIA"
+ line "GYM, that's me!"
+ done
+
+JanineText_ToughOne:
+ text "JANINE: You're a"
+ line "tough one. You"
+ cont "definitely won…"
+
+ para "Here's SOULBADGE."
+ line "Take it."
+ done
+
+Text_ReceivedSoulBadge:
+ text "<PLAYER> received"
+ line "SOULBADGE."
+ done
+
+JanineText_ToxicSpeech:
+ text "JANINE: You're so"
+ line "tough! I have a"
+ cont "special gift!"
+
+ para "It's TOXIC, a pow-"
+ line "erful poison that"
+
+ para "steadily saps the"
+ line "victim's HP."
+ done
+
+JanineText_ApplyMyself:
+ text "JANINE: I'm going"
+ line "to really apply"
+
+ para "myself and improve"
+ line "my skills."
+
+ para "I want to become"
+ line "better than both"
+ cont "Father and you!"
+ done
+
+LassAliceBeforeText:
+ text "Fufufu!"
+
+ para "I'm JANINE, the"
+ line "GYM LEADER!"
+
+ para "No, I'm not!"
+ line "Gotcha, sucker!"
+ done
+
+LassAliceBeatenText:
+ text "I had you fooled…"
+ done
+
+LassAliceAfterText:
+ text "How will you dis-"
+ line "tinguish our real"
+ cont "LEADER?"
+ done
+
+LassLindaBeforeText:
+ text "Fooled you!"
+ line "Hahaha!"
+ done
+
+LassLindaBeatenText:
+ text "Ooh… I lost…"
+ line "You're not weak…"
+ done
+
+LassLindaAfterText:
+ text "Well? Wasn't my"
+ line "disguise perfect?"
+ done
+
+PicnickerCindyBeforeText:
+ text "I'm JANINE!"
+
+ para "How did you know I"
+ line "was real?"
+
+ para "Let's battle!"
+ done
+
+PicnickerCindyBeatenText:
+ text "Darn it!"
+ line "I wanted to win!"
+ done
+
+PicnickerCindyAfterText:
+ text "You must be"
+ line "getting tired."
+ done
+
+CamperBarryBeforeText:
+ text "Wahahaha!"
+
+ para "You betcha, dude."
+ line "I'm JANINE!"
+ done
+
+CamperBarryBeatenText:
+ text "My disguise was"
+ line "right on! Dang!"
+ done
+
+CamperBarryAfterText:
+ text "Hey, dude. Was my"
+ line "disguise cute or"
+ cont "what, huh?"
+ done
+
+FuchsiaGymGuyText:
+ text "Yo, CHAMP in"
+ line "making!"
+
+ para "Whoops! Take a"
+ line "good look around"
+
+ para "you. The trainers"
+ line "all look like the"
+ cont "LEADER, JANINE."
+
+ para "Which of them is"
+ line "the real JANINE?"
+ done
+
+FuchsiaGymGuyWinText:
+ text "That was a great"
+ line "battle, trainer"
+ cont "from JOHTO!"
+ done
+
+FuchsiaGym_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 17, FUCHSIA_CITY, 3
+ warp_event 5, 17, FUCHSIA_CITY, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 3, 15, BGEVENT_READ, FuchsiaGymStatue
+ bg_event 6, 15, BGEVENT_READ, FuchsiaGymStatue
+
+ db 6 ; object events
+ object_event 1, 10, SPRITE_JANINE, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, FuchsiaGymJanineScript, -1
+ object_event 5, 7, SPRITE_FUCHSIA_GYM_1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, LassAliceScript, -1
+ object_event 5, 11, SPRITE_FUCHSIA_GYM_2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, LassLindaScript, -1
+ object_event 9, 4, SPRITE_FUCHSIA_GYM_3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, PicnickerCindyScript, -1
+ object_event 4, 2, SPRITE_FUCHSIA_GYM_4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, CamperBarryScript, -1
+ object_event 7, 15, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, FuchsiaGymGuyScript, -1
diff --git a/maps/FuchsiaMart.asm b/maps/FuchsiaMart.asm
new file mode 100644
index 00000000..b57e8259
--- /dev/null
+++ b/maps/FuchsiaMart.asm
@@ -0,0 +1,52 @@
+ const_def 2 ; object constants
+ const FUCHSIAMART_CLERK
+ const FUCHSIAMART_FISHER
+ const FUCHSIAMART_COOLTRAINER_F
+
+FuchsiaMart_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+FuchsiaMartClerkScript:
+ opentext
+ pokemart MARTTYPE_STANDARD, MART_FUCHSIA
+ closetext
+ end
+
+FuchsiaMartFisherScript:
+ jumptextfaceplayer FuchsiaMartFisherText
+
+FuchsiaMartCooltrainerFScript:
+ jumptextfaceplayer FuchsiaMartCooltrainerFText
+
+FuchsiaMartFisherText:
+ text "I was hoping to"
+ line "buy some SAFARI"
+
+ para "ZONE souvenirs,"
+ line "but it's closed…"
+ done
+
+FuchsiaMartCooltrainerFText:
+ text "The SAFARI ZONE"
+ line "WARDEN's grand-"
+ cont "daughter lives in"
+ cont "town."
+ done
+
+FuchsiaMart_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, FUCHSIA_CITY, 1
+ warp_event 3, 7, FUCHSIA_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, FuchsiaMartClerkScript, -1
+ object_event 3, 2, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, FuchsiaMartFisherScript, -1
+ object_event 7, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, FuchsiaMartCooltrainerFScript, -1
diff --git a/maps/FuchsiaPokecenter1F.asm b/maps/FuchsiaPokecenter1F.asm
new file mode 100644
index 00000000..b0555704
--- /dev/null
+++ b/maps/FuchsiaPokecenter1F.asm
@@ -0,0 +1,105 @@
+ const_def 2 ; object constants
+ const FUCHSIAPOKECENTER1F_NURSE
+ const FUCHSIAPOKECENTER1F_COOLTRAINER_M
+ const FUCHSIAPOKECENTER1F_COOLTRAINER_F
+ const FUCHSIAPOKECENTER1F_JANINE_IMPERSONATOR
+
+FuchsiaPokecenter1F_MapScripts:
+ db 1 ; scene scripts
+ scene_script .DummyScene
+
+ db 0 ; callbacks
+
+.DummyScene:
+ end
+
+FuchsiaPokecenter1FNurseScript:
+ jumpstd pokecenternurse
+
+FuchsiaPokecenter1FCooltrainerMScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerMText
+
+FuchsiaPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerFText
+
+FuchsiaPokecenter1FJanineImpersonatorScript:
+ faceplayer
+ opentext
+ writetext FuchsiaPokecenter1FJanineImpersonatorText1
+ waitbutton
+ closetext
+ applymovement FUCHSIAPOKECENTER1F_JANINE_IMPERSONATOR, FuchsiaPokecenter1FJanineImpersonatorSpinMovement
+ faceplayer
+ variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_JANINE
+ special LoadUsedSpritesGFX
+ opentext
+ writetext FuchsiaPokecenter1FJanineImpersonatorText2
+ waitbutton
+ closetext
+ applymovement FUCHSIAPOKECENTER1F_JANINE_IMPERSONATOR, FuchsiaPokecenter1FJanineImpersonatorSpinMovement
+ faceplayer
+ variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS
+ special LoadUsedSpritesGFX
+ end
+
+FuchsiaPokecenter1FJanineImpersonatorSpinMovement:
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ turn_head LEFT
+ turn_head UP
+ turn_head RIGHT
+ turn_head DOWN
+ step_end
+
+FuchsiaPokecenter1FCooltrainerMText:
+ text "Hey! You have a"
+ line "brand new kind of"
+ cont "#DEX."
+
+ para "Did PROF.OAK give"
+ line "that to you?"
+ done
+
+FuchsiaPokecenter1FCooltrainerFText:
+ text "I got quite a"
+ line "shock at the GYM."
+
+ para "There were all"
+ line "these girls who"
+ cont "looked identical."
+ done
+
+FuchsiaPokecenter1FJanineImpersonatorText1:
+ text "I'm JANINE! Hocus-"
+ line "pocus… Poof!"
+ done
+
+FuchsiaPokecenter1FJanineImpersonatorText2:
+ text "See? I look just"
+ line "like her now!"
+ done
+
+FuchsiaPokecenter1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 3, 7, FUCHSIA_CITY, 5
+ warp_event 4, 7, FUCHSIA_CITY, 5
+ 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, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, FuchsiaPokecenter1FNurseScript, -1
+ object_event 8, 4, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerMScript, -1
+ object_event 1, 4, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerFScript, -1
+ object_event 5, 3, SPRITE_JANINE_IMPERSONATOR, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, FuchsiaPokecenter1FJanineImpersonatorScript, -1
diff --git a/maps/FuchsiaPokecenter2FBeta.asm b/maps/FuchsiaPokecenter2FBeta.asm
new file mode 100644
index 00000000..bfa6be81
--- /dev/null
+++ b/maps/FuchsiaPokecenter2FBeta.asm
@@ -0,0 +1,16 @@
+FuchsiaPokecenter2FBeta_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+FuchsiaPokecenter2FBeta_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 0, 7, FUCHSIA_POKECENTER_1F, 3
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/Pokecenter2F.asm b/maps/Pokecenter2F.asm
new file mode 100644
index 00000000..82b63a39
--- /dev/null
+++ b/maps/Pokecenter2F.asm
@@ -0,0 +1,594 @@
+ const_def 2 ; object constants
+ const POKECENTER2F_TRADE_RECEPTIONIST
+ const POKECENTER2F_BATTLE_RECEPTIONIST
+ const POKECENTER2F_TIME_CAPSULE_RECEPTIONIST
+ const POKECENTER2F_OFFICER
+
+Pokecenter2F_MapScripts:
+ db 4 ; scene scripts
+ scene_script .Scene0 ; SCENE_DEFAULT
+ scene_script .Scene1 ; SCENE_POKECENTER2F_LEAVE_TRADE_CENTER
+ scene_script .Scene2 ; SCENE_POKECENTER2F_LEAVE_COLOSSEUM
+ scene_script .Scene3 ; SCENE_POKECENTER2F_LEAVE_TIME_CAPSULE
+
+ db 0 ; callbacks
+
+.Scene0:
+ special CheckMysteryGift
+ ifequal $0, .Scene0Done
+ clearevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+ checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
+ iftrue .Scene0Done
+ priorityjump Pokecenter2F_AppearMysteryGiftDeliveryGuy
+
+.Scene0Done:
+ end
+
+.Scene1:
+ priorityjump Script_LeftCableTradeCenter
+ end
+
+.Scene2:
+ priorityjump Script_LeftCableColosseum
+ end
+
+.Scene3:
+ priorityjump Script_LeftTimeCapsule
+ end
+
+Pokecenter2F_AppearMysteryGiftDeliveryGuy:
+ appear POKECENTER2F_OFFICER
+ setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
+ end
+
+Script_TradeCenterClosed:
+ faceplayer
+ opentext
+ writetext Text_TradeRoomClosed
+ waitbutton
+ closetext
+ end
+
+Script_BattleRoomClosed:
+ faceplayer
+ opentext
+ writetext Text_BattleRoomClosed
+ waitbutton
+ closetext
+ end
+
+LinkReceptionistScript_Trade:
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iffalse Script_TradeCenterClosed
+ special SetBitsForLinkTradeRequest
+ opentext
+ writetext Text_TradeReceptionistIntro
+ yesorno
+ iffalse .AbortLink
+ writetext Text_PleaseWait
+ special WaitForLinkedFriend
+ iffalse .FriendNotReady
+ writetext Text_MustSaveGame
+ yesorno
+ iffalse .DidNotSave
+ special TryQuickSave
+ iffalse .DidNotSave
+ writetext Text_PleaseWait
+ special CheckLinkTimeout
+ iffalse .LinkTimedOut
+ copybytetovar wOtherPlayerLinkMode
+ iffalse .LinkedToFirstGen
+ special CheckBothSelectedSameRoom
+ iffalse .IncompatibleRooms
+ writetext Text_PleaseComeIn2
+ waitbutton
+ closetext
+ applymovement2 Pokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesThreeStepsUp
+ warpcheck
+ end
+
+.FriendNotReady:
+ special WaitForOtherPlayerToExit
+ writetext Text_FriendNotReady
+ closetext
+ end
+
+.LinkedToFirstGen:
+ special FailedLinkToPast
+ writetext Text_CantLinkToThePast
+ special CloseLink
+ closetext
+ end
+
+.IncompatibleRooms:
+ writetext Text_IncompatibleRooms
+ special CloseLink
+ closetext
+ end
+
+.LinkTimedOut:
+ writetext Text_LinkTimedOut
+ jump .AbortLink
+
+.DidNotSave:
+ writetext Text_PleaseComeAgain
+.AbortLink:
+ special WaitForOtherPlayerToExit
+ closetext
+ end
+
+LinkReceptionistScript_Battle:
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iffalse Script_BattleRoomClosed
+ special SetBitsForBattleRequest
+ opentext
+ writetext Text_BattleReceptionistIntro
+ yesorno
+ iffalse .AbortLink
+ writetext Text_PleaseWait
+ special WaitForLinkedFriend
+ iffalse .FriendNotReady
+ writetext Text_MustSaveGame
+ yesorno
+ iffalse .DidNotSave
+ special TryQuickSave
+ iffalse .DidNotSave
+ writetext Text_PleaseWait
+ special CheckLinkTimeout
+ iffalse .LinkTimedOut
+ copybytetovar wOtherPlayerLinkMode
+ iffalse .LinkedToFirstGen
+ special CheckBothSelectedSameRoom
+ iffalse .IncompatibleRooms
+ writetext Text_PleaseComeIn2
+ waitbutton
+ closetext
+ applymovement2 Pokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesThreeStepsUp
+ warpcheck
+ end
+
+.FriendNotReady:
+ special WaitForOtherPlayerToExit
+ writetext Text_FriendNotReady
+ closetext
+ end
+
+.LinkedToFirstGen:
+ special FailedLinkToPast
+ writetext Text_CantLinkToThePast
+ special CloseLink
+ closetext
+ end
+
+.IncompatibleRooms:
+ writetext Text_IncompatibleRooms
+ special CloseLink
+ closetext
+ end
+
+.LinkTimedOut:
+ writetext Text_LinkTimedOut
+ jump .AbortLink
+
+.DidNotSave:
+ writetext Text_PleaseComeAgain
+.AbortLink:
+ special WaitForOtherPlayerToExit
+ closetext
+ end
+
+Script_TimeCapsuleClosed:
+ faceplayer
+ opentext
+ writetext Text_TimeCapsuleClosed
+ waitbutton
+ closetext
+ end
+
+LinkReceptionistScript_TimeCapsule:
+ checkevent EVENT_MET_BILL
+ iftrue Script_TimeCapsuleClosed
+ checkflag ENGINE_TIME_CAPSULE
+ iftrue Script_TimeCapsuleClosed
+ special SetBitsForTimeCapsuleRequest
+ faceplayer
+ opentext
+ writetext Text_TimeCapsuleReceptionistIntro
+ yesorno
+ iffalse .Cancel
+ special CheckTimeCapsuleCompatibility
+ ifequal $1, .MonTooNew
+ ifequal $2, .MonMoveTooNew
+ ifequal $3, .MonHasMail
+ writetext Text_PleaseWait
+ special WaitForLinkedFriend
+ iffalse .FriendNotReady
+ writetext Text_MustSaveGame
+ yesorno
+ iffalse .DidNotSave
+ special TryQuickSave
+ iffalse .DidNotSave
+ writetext Text_PleaseWait
+ special CheckLinkTimeout
+ iffalse .LinkTimedOut
+ copybytetovar wOtherPlayerLinkMode
+ iffalse .OK
+ special CheckBothSelectedSameRoom
+ writetext Text_IncompatibleRooms
+ special CloseLink
+ closetext
+ end
+
+.OK:
+ special EnterTimeCapsule
+ writetext Text_PleaseComeIn2
+ waitbutton
+ closetext
+ checkcode VAR_FACING
+ ifequal LEFT, .MaleFacingLeft
+ ifequal RIGHT, .MaleFacingRight
+ applymovement2 Pokecenter2FMovementData_ReceptionistWalksLeft_LookRight
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesTwoStepsUp
+ warpcheck
+ end
+
+.FriendNotReady:
+ special WaitForOtherPlayerToExit
+ writetext Text_FriendNotReady
+ closetext
+ end
+
+.LinkTimedOut:
+ writetext Text_LinkTimedOut
+ jump .Cancel
+
+.DidNotSave:
+ writetext Text_PleaseComeAgain
+.Cancel:
+ special WaitForOtherPlayerToExit
+ closetext
+ end
+
+.MonTooNew:
+ writetext Text_RejectNewMon
+ closetext
+ end
+
+.MonMoveTooNew:
+ writetext Text_RejectMonWithNewMove
+ closetext
+ end
+
+.MonHasMail:
+ writetext Text_RejectMonWithMail
+ closetext
+ end
+
+.MaleFacingLeft:
+ applymovement2 Pokecenter2FMovementData_ReceptionistWalksLeft_LookRight
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesStepsLeftUp
+ warpcheck
+ end
+
+.MaleFacingRight:
+ applymovement2 Pokecenter2FMovementData_ReceptionistStepsRightLooksDown
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesStepsRightUp
+ warpcheck
+ end
+
+Script_LeftCableTradeCenter:
+ special WaitForOtherPlayerToExit
+ applymovement POKECENTER2F_TRADE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_3
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesThreeStepsDown
+ applymovement POKECENTER2F_TRADE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_1
+ setscene SCENE_DEFAULT
+ setmapscene TRADE_CENTER, SCENE_DEFAULT
+ end
+
+Script_LeftCableColosseum:
+ special WaitForOtherPlayerToExit
+ applymovement POKECENTER2F_BATTLE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_3
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesThreeStepsDown
+ applymovement POKECENTER2F_BATTLE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_1
+ setscene SCENE_DEFAULT
+ setmapscene COLOSSEUM, SCENE_DEFAULT
+ end
+
+Script_LeftTimeCapsule:
+ special WaitForOtherPlayerToExit
+ applymovement POKECENTER2F_TIME_CAPSULE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsLeftLooksRight
+ applymovement PLAYER, Pokecenter2FMovementData_PlayerTakesTwoStepsDown
+ applymovement POKECENTER2F_TIME_CAPSULE_RECEPTIONIST, Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_2
+ setscene SCENE_DEFAULT
+ setmapscene TIME_CAPSULE, SCENE_DEFAULT
+ end
+
+Pokecenter2FLinkRecordSign:
+ refreshscreen
+ special DisplayLinkRecord
+ closetext
+ end
+
+Pokecenter2FOfficerScript:
+ faceplayer
+ opentext
+ checkevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+ iftrue .AlreadyGotGift
+ writetext Text_MysteryGiftDeliveryGuy_Intro
+ yesorno
+ iffalse .RefusedGift
+ writetext Text_MysteryGiftDeliveryGuy_HereYouGo
+ buttonsound
+ waitsfx
+ special GetMysteryGiftItem
+ iffalse .BagIsFull
+ itemnotify
+ setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+.AlreadyGotGift:
+ writetext Text_MysteryGiftDeliveryGuy_Outro
+ waitbutton
+ closetext
+ end
+
+.BagIsFull:
+ writetext Text_MysteryGiftDeliveryGuy_NoRoom
+ waitbutton
+ closetext
+ end
+
+.RefusedGift:
+ writetext Text_MysteryGiftDeliveryGuy_SaidNo
+ waitbutton
+ closetext
+ end
+
+Pokecenter2FMovementData_ReceptionistWalksUpAndLeft_LookRight:
+ slow_step UP
+Pokecenter2FMovementData_ReceptionistWalksLeft_LookRight:
+ slow_step LEFT
+ turn_head DOWN
+ step_end
+
+Pokecenter2FMovementData_ReceptionistStepsRightLooksDown:
+ slow_step RIGHT
+ turn_head DOWN
+ step_end
+
+Pokecenter2FMovementData_PlayerTakesThreeStepsUp:
+ step UP
+Pokecenter2FMovementData_PlayerTakesTwoStepsUp:
+ step UP
+ step UP
+ step_end
+
+Pokecenter2FMovementData_PlayerTakesStepsLeftUp:
+ step LEFT
+ step UP
+ step_end
+
+Pokecenter2FMovementData_PlayerTakesStepsRightUp:
+ step RIGHT
+ step UP
+ step_end
+
+Pokecenter2FMovementData_PlayerTakesThreeStepsDown:
+ step DOWN
+ step DOWN
+ step DOWN
+ step_end
+
+Pokecenter2FMovementData_PlayerTakesTwoStepsDown:
+ step DOWN
+ step DOWN
+ step_end
+
+Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_1:
+ slow_step RIGHT
+ slow_step DOWN
+ step_end
+
+Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_2:
+ slow_step RIGHT
+ turn_head DOWN
+ step_end
+
+Pokecenter2FMovementData_ReceptionistStepsRightLooksDown_3:
+ slow_step UP
+ slow_step LEFT
+ turn_head RIGHT
+ step_end
+
+Pokecenter2FMovementData_ReceptionistStepsLeftLooksRight:
+ slow_step LEFT
+ turn_head RIGHT
+ step_end
+
+Text_BattleReceptionistIntro:
+ text "Welcome to CABLE"
+ line "CLUB COLOSSEUM."
+
+ para "You may battle a"
+ line "friend here."
+
+ para "Would you like to"
+ line "battle?"
+ done
+
+Text_TradeReceptionistIntro:
+ text "Welcome to CABLE"
+ line "CLUB TRADE CENTER."
+
+ para "You may trade your"
+ line "#MON here with"
+ cont "a friend."
+
+ para "Would you like to"
+ line "trade?"
+ done
+
+Text_TimeCapsuleReceptionistIntro:
+ text "Welcome to CABLE"
+ line "CLUB TIME CAPSULE."
+
+ para "You can travel to"
+ line "the past and trade"
+ cont "your #MON."
+
+ para "Would you like to"
+ line "trade across time?"
+ done
+
+Text_FriendNotReady:
+ text "Your friend is not"
+ line "ready."
+ prompt
+
+Text_MustSaveGame:
+ text "Before opening the"
+ line "link, you must"
+ cont "save your game."
+ done
+
+Text_PleaseWait:
+ text "Please wait."
+ done
+
+Text_LinkTimedOut:
+ text "The link has been"
+ line "closed because of"
+ cont "inactivity."
+
+ para "Please contact"
+ line "your friend and"
+ cont "come again."
+ prompt
+
+Text_PleaseComeAgain:
+ text "Please come again."
+ prompt
+
+Text_PleaseComeIn:
+ text "Please come in."
+ prompt
+
+Text_TemporaryStagingInLinkRoom:
+ text "We'll put you in"
+ line "the link room for"
+ cont "the time being."
+ done
+
+Text_CantLinkToThePast:
+ text "You can't link to"
+ line "the past here."
+ prompt
+
+Text_IncompatibleRooms:
+ text "Your friend chose"
+ line "a different room."
+ prompt
+
+Text_PleaseComeIn2:
+ text "Please come in."
+ done
+
+Text_PleaseEnter:
+ text "Please enter."
+ prompt
+
+Text_RejectNewMon:
+ text "Sorry--@"
+ text_from_ram wStringBuffer1
+ text_start
+ line "can't be taken."
+ prompt
+
+Text_RejectMonWithNewMove:
+ text "You can't take the"
+ line "@"
+ text_from_ram wStringBuffer1
+ text " with a"
+ cont "@"
+ text_from_ram wStringBuffer2
+ text "."
+ prompt
+
+Text_RejectMonWithMail:
+ text "You can't take the"
+ line "@"
+ text_from_ram wStringBuffer1
+ text " that"
+ cont "has MAIL with you."
+ prompt
+
+Text_TimeCapsuleClosed:
+ text "I'm sorry--the"
+ line "TIME CAPSULE is"
+ cont "being adjusted."
+ done
+
+Text_TradeRoomClosed:
+ text "I'm sorry--the"
+ line "TRADE MACHINE is"
+ cont "being adjusted."
+ done
+
+Text_BattleRoomClosed:
+ text "I'm sorry--the"
+ line "BATTLE MACHINE is"
+ cont "being adjusted."
+ done
+
+Text_MysteryGiftDeliveryGuy_Intro:
+ text "Hello! You're"
+ line "<PLAYER>, right?"
+
+ para "I have some-"
+ line "thing for you."
+ done
+
+Text_MysteryGiftDeliveryGuy_HereYouGo:
+ text "Here you go!"
+ done
+
+Text_MysteryGiftDeliveryGuy_Outro:
+ text "We hope to serve"
+ line "you again."
+ done
+
+Text_MysteryGiftDeliveryGuy_NoRoom:
+ text "Oh, you have no"
+ line "space for this."
+
+ para "Stop in at any"
+ line "#MON CENTER"
+
+ para "across the country"
+ line "to pick it up."
+ done
+
+Text_MysteryGiftDeliveryGuy_SaidNo:
+ text "No? That's very"
+ line "strange…"
+ done
+
+Pokecenter2F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 0, 7, POKECENTER_2F, -1
+ warp_event 5, 0, TRADE_CENTER, 1
+ warp_event 9, 0, COLOSSEUM, 1
+ warp_event 13, 2, TIME_CAPSULE, 1
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 7, 3, BGEVENT_READ, Pokecenter2FLinkRecordSign
+
+ db 4 ; object events
+ object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistScript_Trade, -1
+ object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistScript_Battle, -1
+ object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LinkReceptionistScript_TimeCapsule, -1
+ object_event 1, 1, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Pokecenter2FOfficerScript, EVENT_MYSTERY_GIFT_DELIVERY_GUY
diff --git a/maps/Route15FuchsiaGate.asm b/maps/Route15FuchsiaGate.asm
new file mode 100644
index 00000000..002b3134
--- /dev/null
+++ b/maps/Route15FuchsiaGate.asm
@@ -0,0 +1,34 @@
+ const_def 2 ; object constants
+ const ROUTE15FUCHSIAGATE_OFFICER
+
+Route15FuchsiaGate_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route15FuchsiaGateOfficerScript:
+ jumptextfaceplayer Route15FuchsiaGateOfficerText
+
+Route15FuchsiaGateOfficerText:
+ text "You're working on"
+ line "a #DEX? That's"
+
+ para "really something."
+ line "Don't give up!"
+ done
+
+Route15FuchsiaGate_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 0, 4, FUCHSIA_CITY, 8
+ warp_event 0, 5, FUCHSIA_CITY, 9
+ warp_event 9, 4, ROUTE_15, 1
+ warp_event 9, 5, ROUTE_15, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 5, 2, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route15FuchsiaGateOfficerScript, -1
diff --git a/maps/Route28SteelWingHouse.asm b/maps/Route28SteelWingHouse.asm
new file mode 100644
index 00000000..a62f94d5
--- /dev/null
+++ b/maps/Route28SteelWingHouse.asm
@@ -0,0 +1,86 @@
+ const_def 2 ; object constants
+ const ROUTE28STEELWINGHOUSE_CELEBRITY
+ const ROUTE28STEELWINGHOUSE_FEAROW
+
+Route28SteelWingHouse_MapScripts:
+ db 1 ; scene scripts
+ scene_script .DummyScene
+
+ db 0 ; callbacks
+
+.DummyScene:
+ end
+
+Celebrity:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TM47_STEEL_WING
+ iftrue .AlreadyGotItem
+ writetext CelebrityText1
+ buttonsound
+ verbosegiveitem TM_STEEL_WING
+ iffalse .Done
+ setevent EVENT_GOT_TM47_STEEL_WING
+.Done:
+ closetext
+ end
+.AlreadyGotItem:
+ writetext CelebrityText2
+ waitbutton
+ closetext
+ end
+
+CelebritysFearow:
+ opentext
+ writetext CelebritysFearowText
+ cry FEAROW
+ waitbutton
+ closetext
+ end
+
+CelebrityHouseBookshelf:
+ jumpstd magazinebookshelf
+
+CelebrityText1:
+ text "Oh, dear."
+ line "You've found me."
+
+ para "Please don't tell"
+ line "anyone about me."
+
+ para "I'll give you this"
+ line "for keeping my"
+ cont "secret. Please?"
+ done
+
+CelebrityText2:
+ text "It's tough being a"
+ line "top celebrity."
+
+ para "Everywhere I go,"
+ line "people chase me."
+
+ para "I just want to be"
+ line "left alone…"
+ done
+
+CelebritysFearowText:
+ text "FEAROW: Feero!"
+ done
+
+Route28SteelWingHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ROUTE_28, 1
+ warp_event 3, 7, ROUTE_28, 1
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, CelebrityHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, CelebrityHouseBookshelf
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Celebrity, -1
+ object_event 6, 5, SPRITE_MOLTRES, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, CelebritysFearow, -1
diff --git a/maps/SafariZoneMainOffice.asm b/maps/SafariZoneMainOffice.asm
new file mode 100644
index 00000000..270fc026
--- /dev/null
+++ b/maps/SafariZoneMainOffice.asm
@@ -0,0 +1,17 @@
+SafariZoneMainOffice_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+SafariZoneMainOffice_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, FUCHSIA_CITY, 2
+ warp_event 3, 7, FUCHSIA_CITY, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/SafariZoneWardensHome.asm b/maps/SafariZoneWardensHome.asm
new file mode 100644
index 00000000..41a2db11
--- /dev/null
+++ b/maps/SafariZoneWardensHome.asm
@@ -0,0 +1,93 @@
+ const_def 2 ; object constants
+ const SAFARIZONEWARDENSHOME_LASS
+
+SafariZoneWardensHome_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+WardensGranddaughter:
+ faceplayer
+ opentext
+ checkevent EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER
+ iftrue .AlreadyMet
+ writetext WardensGranddaughterText1
+ waitbutton
+ closetext
+ setevent EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER
+ end
+.AlreadyMet:
+ writetext WardensGranddaughterText2
+ waitbutton
+ closetext
+ end
+
+WardenPhoto:
+ jumptext WardenPhotoText
+
+SafariZonePhoto:
+ jumptext SafariZonePhotoText
+
+WardensHomeBookshelf:
+ jumpstd picturebookshelf
+
+WardensGranddaughterText1:
+ text "My grandpa is the"
+ line "SAFARI ZONE WAR-"
+ cont "DEN."
+
+ para "At least he was…"
+
+ para "He decided to go"
+ line "on a vacation and"
+
+ para "took off overseas"
+ line "all by himself."
+
+ para "He quit running"
+ line "SAFARI ZONE just"
+ cont "like that."
+ done
+
+WardensGranddaughterText2:
+ text "Many people were"
+ line "disappointed that"
+
+ para "SAFARI ZONE closed"
+ line "down, but Grandpa"
+ cont "is so stubborn…"
+ done
+
+WardenPhotoText:
+ text "It's a photo of a"
+ line "grinning old man"
+
+ para "who's surrounded"
+ line "by #MON."
+ done
+
+SafariZonePhotoText:
+ text "It's a photo of a"
+ line "huge grassy plain"
+
+ para "with rare #MON"
+ line "frolicking in it."
+ done
+
+SafariZoneWardensHome_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, FUCHSIA_CITY, 6
+ warp_event 3, 7, FUCHSIA_CITY, 6
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 0, 1, BGEVENT_READ, WardensHomeBookshelf
+ bg_event 1, 1, BGEVENT_READ, WardensHomeBookshelf
+ bg_event 7, 0, BGEVENT_READ, WardenPhoto
+ bg_event 9, 0, BGEVENT_READ, SafariZonePhoto
+
+ db 1 ; object events
+ object_event 2, 4, SPRITE_LASS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, WardensGranddaughter, -1
diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm
new file mode 100644
index 00000000..502312c9
--- /dev/null
+++ b/maps/TimeCapsule.asm
@@ -0,0 +1,69 @@
+ const_def 2 ; object constants
+ const TIMECAPSULE_CHRIS1
+ const TIMECAPSULE_CHRIS2
+
+TimeCapsule_MapScripts:
+ db 2 ; scene scripts
+ scene_script .InitializeTimeCapsule ; SCENE_DEFAULT
+ scene_script .DummyScene ; SCENE_FINISHED
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .SetWhichChris
+
+.InitializeTimeCapsule:
+ priorityjump .InitializeAndPreparePokecenter2F
+ end
+
+.DummyScene:
+ end
+
+.SetWhichChris:
+ special CableClubCheckWhichChris
+ iffalse .Chris2
+ disappear TIMECAPSULE_CHRIS2
+ appear TIMECAPSULE_CHRIS1
+ return
+
+.Chris2:
+ disappear TIMECAPSULE_CHRIS1
+ appear TIMECAPSULE_CHRIS2
+ return
+
+.InitializeAndPreparePokecenter2F:
+ setscene SCENE_FINISHED
+ setmapscene POKECENTER_2F, SCENE_POKECENTER2F_LEAVE_TIME_CAPSULE
+ end
+
+TimeCapsuleConsoleScript:
+ special TimeCapsule
+ newloadmap MAPSETUP_LINKRETURN
+ end
+
+TimeCapsuleFriendScript:
+ opentext
+ writetext .FriendReadyText
+ waitbutton
+ closetext
+ end
+
+.FriendReadyText:
+ text "Your friend is"
+ line "ready."
+ done
+
+TimeCapsule_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 7, POKECENTER_2F, 4
+ warp_event 5, 7, POKECENTER_2F, 4
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 4, 4, BGEVENT_RIGHT, TimeCapsuleConsoleScript
+ bg_event 5, 4, BGEVENT_LEFT, TimeCapsuleConsoleScript
+
+ db 2 ; object events
+ object_event 3, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TimeCapsuleFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
+ object_event 6, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TimeCapsuleFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm
new file mode 100644
index 00000000..51501c5b
--- /dev/null
+++ b/maps/TradeCenter.asm
@@ -0,0 +1,70 @@
+ const_def 2 ; object constants
+ const TRADECENTER_CHRIS1
+ const TRADECENTER_CHRIS2
+
+TradeCenter_MapScripts:
+ db 2 ; scene scripts
+ scene_script .InitializeTradeCenter ; SCENE_DEFAULT
+ scene_script .DummyScene ; SCENE_FINISHED
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .SetWhichChris
+
+.InitializeTradeCenter:
+ priorityjump .InitializeAndPreparePokecenter2F
+ end
+
+.DummyScene:
+ end
+
+.SetWhichChris:
+ special CableClubCheckWhichChris
+ iffalse .Chris2
+ disappear TRADECENTER_CHRIS2
+ appear TRADECENTER_CHRIS1
+ return
+
+.Chris2:
+ disappear TRADECENTER_CHRIS1
+ appear TRADECENTER_CHRIS2
+ return
+
+.InitializeAndPreparePokecenter2F:
+ setscene SCENE_FINISHED
+ setmapscene POKECENTER_2F, SCENE_POKECENTER2F_LEAVE_TRADE_CENTER
+ end
+
+TradeCenterConsoleScript:
+ special TradeCenter
+ newloadmap MAPSETUP_LINKRETURN
+ end
+
+TradeCenterFriendScript:
+; unreferenced
+ opentext
+ writetext .FriendReadyText
+ waitbutton
+ closetext
+ end
+
+.FriendReadyText:
+ text "Your friend is"
+ line "ready."
+ done
+
+TradeCenter_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 7, POKECENTER_2F, 2
+ warp_event 5, 7, POKECENTER_2F, 2
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 4, 4, BGEVENT_RIGHT, TradeCenterConsoleScript
+ bg_event 5, 4, BGEVENT_LEFT, TradeCenterConsoleScript
+
+ db 2 ; object events
+ object_event 3, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CableClubFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
+ object_event 6, 4, SPRITE_CHRIS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CableClubFriendScript, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2