summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2018-10-03 04:16:36 -0600
committerIIMarckus <iimarckus@gmail.com>2018-10-03 04:16:36 -0600
commit095d1b60fd0a2d21d40c1091a04b37ea83cfe7cf (patch)
tree0517bfb93207da47d15a2799f329f5816d781a47
parent3ec304aadfb74c9063251fa8411ffae719559449 (diff)
Add map objects from bank 52.
-rw-r--r--main.asm17
-rw-r--r--maps/DanceTheatre.asm344
-rw-r--r--maps/EcruteakGym.asm384
-rw-r--r--maps/EcruteakItemfinderHouse.asm177
-rw-r--r--maps/EcruteakLugiaSpeechHouse.asm59
-rw-r--r--maps/EcruteakMart.asm60
-rw-r--r--maps/EcruteakPokecenter1F.asm203
-rw-r--r--maps/EcruteakTinTowerEntrance.asm164
-rw-r--r--maps/WiseTriosRoom.asm20
9 files changed, 1419 insertions, 9 deletions
diff --git a/main.asm b/main.asm
index 837c2d3f..8057da20 100644
--- a/main.asm
+++ b/main.asm
@@ -1732,15 +1732,14 @@ SECTION "bank51", ROMX, BANK[$51]
dr $144000, $148000
SECTION "bank52", ROMX, BANK[$52]
-;INCLUDE "maps/EcruteakTinTowerEntrance.asm"
-;INCLUDE "maps/WiseTriosRoom.asm"
-;INCLUDE "maps/EcruteakPokecenter1F.asm"
-;INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
-;INCLUDE "maps/DanceTheatre.asm"
-;INCLUDE "maps/EcruteakMart.asm"
-;INCLUDE "maps/EcruteakGym.asm"
-;INCLUDE "maps/EcruteakItemfinderHouse.asm"
- dr $148000, $14c000
+INCLUDE "maps/EcruteakTinTowerEntrance.asm"
+INCLUDE "maps/WiseTriosRoom.asm"
+INCLUDE "maps/EcruteakPokecenter1F.asm"
+INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
+INCLUDE "maps/DanceTheatre.asm"
+INCLUDE "maps/EcruteakMart.asm"
+INCLUDE "maps/EcruteakGym.asm"
+INCLUDE "maps/EcruteakItemfinderHouse.asm"
SECTION "bank53", ROMX, BANK[$53]
INCLUDE "maps/BlackthornGym1F.asm"
diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm
new file mode 100644
index 00000000..205e3683
--- /dev/null
+++ b/maps/DanceTheatre.asm
@@ -0,0 +1,344 @@
+ const_def 2 ; object constants
+ const DANCETHEATRE_KIMONO_GIRL1
+ const DANCETHEATRE_KIMONO_GIRL2
+ const DANCETHEATRE_KIMONO_GIRL3
+ const DANCETHEATRE_KIMONO_GIRL4
+ const DANCETHEATRE_KIMONO_GIRL5
+ const DANCETHEATRE_GENTLEMAN
+ const DANCETHEATRE_RHYDON
+ const DANCETHEATRE_COOLTRAINER_M
+ const DANCETHEATRE_GRANNY
+
+DanceTheatre_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerKimonoGirlNaoko2:
+ trainer KIMONO_GIRL, NAOKO, EVENT_BEAT_KIMONO_GIRL_NAOKO, KimonoGirlNaoko2SeenText, KimonoGirlNaoko2BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext KimonoGirlNaoko2AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerKimonoGirlSayo:
+ trainer KIMONO_GIRL, SAYO, EVENT_BEAT_KIMONO_GIRL_SAYO, KimonoGirlSayoSeenText, KimonoGirlSayoBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext KimonoGirlSayoAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerKimonoGirlZuki:
+ trainer KIMONO_GIRL, ZUKI, EVENT_BEAT_KIMONO_GIRL_ZUKI, KimonoGirlZukiSeenText, KimonoGirlZukiBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext KimonoGirlZukiAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerKimonoGirlKuni:
+ trainer KIMONO_GIRL, KUNI, EVENT_BEAT_KIMONO_GIRL_KUNI, KimonoGirlKuniSeenText, KimonoGirlKuniBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext KimonoGirlKuniAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerKimonoGirlMiki:
+ trainer KIMONO_GIRL, MIKI, EVENT_BEAT_KIMONO_GIRL_MIKI, KimonoGirlMikiSeenText, KimonoGirlMikiBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext KimonoGirlMikiAfterBattleText
+ waitbutton
+ closetext
+ end
+
+DanceTheaterSurfGuy:
+ faceplayer
+ opentext
+ writetext SurfGuyNeverLeftAScratchText
+ buttonsound
+ checkevent EVENT_GOT_HM03_SURF
+ iftrue SurfGuyAlreadyGaveSurf
+ checkevent EVENT_BEAT_KIMONO_GIRL_NAOKO
+ iffalse .KimonoGirlsUndefeated
+ checkevent EVENT_BEAT_KIMONO_GIRL_SAYO
+ iffalse .KimonoGirlsUndefeated
+ checkevent EVENT_BEAT_KIMONO_GIRL_ZUKI
+ iffalse .KimonoGirlsUndefeated
+ checkevent EVENT_BEAT_KIMONO_GIRL_KUNI
+ iffalse .KimonoGirlsUndefeated
+ checkevent EVENT_BEAT_KIMONO_GIRL_MIKI
+ iffalse .KimonoGirlsUndefeated
+ jump .GetSurf
+
+.KimonoGirlsUndefeated:
+ writetext SurfGuyLadGiftText
+ waitbutton
+ closetext
+ end
+
+.GetSurf:
+ writetext SurfGuyLikeADanceText
+ buttonsound
+ verbosegiveitem HM_SURF
+ setevent EVENT_GOT_HM03_SURF
+ writetext SurfGuySurfExplanationText
+ waitbutton
+ closetext
+ end
+
+SurfGuyAlreadyGaveSurf:
+ writetext SurfGuyElegantKimonoGirlsText
+ waitbutton
+ closetext
+ end
+
+DanceTheaterRhydon:
+ opentext
+ writetext RhydonText
+ cry RHYDON
+ waitbutton
+ closetext
+ end
+
+DanceTheatreCooltrainerMScript:
+ jumptextfaceplayer DanceTheatreCooltrainerMText
+
+DanceTheatreGrannyScript:
+ jumptextfaceplayer DanceTheatreGrannyText
+
+DanceTheatreFancyPanel:
+ jumptext DanceTheatreFancyPanelText
+
+KimonoGirlNaoko2SeenText:
+ text "You have lovely"
+ line "#MON. May I see"
+ cont "them in battle?"
+ done
+
+KimonoGirlNaoko2BeatenText:
+ text "Oh, you are very"
+ line "strong."
+ done
+
+KimonoGirlNaoko2AfterBattleText:
+ text "I enjoyed that"
+ line "bout. I would like"
+ cont "to see you again."
+ done
+
+KimonoGirlSayoSeenText:
+ text "I always dance"
+ line "with my #MON."
+
+ para "Of course, I also"
+ line "train them."
+ done
+
+KimonoGirlSayoBeatenText:
+ text "Oh, so close!"
+ line "I almost had you."
+ done
+
+KimonoGirlSayoAfterBattleText:
+ text "Rhythm is impor-"
+ line "tant for both"
+
+ para "dancing and #-"
+ line "MON."
+ done
+
+KimonoGirlZukiSeenText:
+ text "Isn't my barrette"
+ line "pretty?"
+
+ para "Oh. A #MON"
+ line "battle?"
+ done
+
+KimonoGirlZukiBeatenText:
+ text "I don't have any"
+ line "#MON left…"
+ done
+
+KimonoGirlZukiAfterBattleText:
+ text "I put a different"
+ line "flower in my bar-"
+ cont "rette every month."
+ done
+
+KimonoGirlKuniSeenText:
+ text "Oh, you're a cute"
+ line "trainer. Would you"
+ cont "like to battle?"
+ done
+
+KimonoGirlKuniBeatenText:
+ text "You're stronger"
+ line "than you look."
+ done
+
+KimonoGirlKuniAfterBattleText:
+ text "I trained a lot,"
+ line "so I thought I was"
+
+ para "a capable trainer."
+ line "I guess I'm not."
+ done
+
+KimonoGirlMikiSeenText:
+ text "Do you like my"
+ line "dancing? I'm good"
+ cont "at #MON too."
+ done
+
+KimonoGirlMikiBeatenText:
+ text "Ooh, you're good"
+ line "at #MON too."
+ done
+
+KimonoGirlMikiAfterBattleText:
+ text "I can keep dancing"
+ line "because there are"
+
+ para "people who enjoy"
+ line "what I do."
+
+ para "My #MON keep my"
+ line "spirits up too."
+ done
+
+SurfGuyNeverLeftAScratchText:
+ text "Not only are the"
+ line "KIMONO GIRLS great"
+
+ para "dancers, they're"
+ line "also skilled at"
+ cont "#MON."
+
+ para "I always challenge"
+ line "them, but I've"
+
+ para "never even left a"
+ line "scratch…"
+ done
+
+SurfGuyLadGiftText:
+ text "Lad! If you can"
+ line "defeat all the"
+
+ para "KIMONO GIRLS, I'll"
+ line "give you a gift."
+ done
+
+SurfGuyLikeADanceText:
+ text "The way you bat-"
+ line "tled, it was like"
+ cont "watching a dance."
+
+ para "It was a rare"
+ line "treat to see!"
+
+ para "I want you to have"
+ line "this. Don't worry"
+ cont "--take it!"
+ done
+
+SurfGuySurfExplanationText:
+ text "That's SURF."
+
+ para "It's a move that"
+ line "lets #MON swim"
+ cont "across water."
+ done
+
+SurfGuyElegantKimonoGirlsText:
+ text "I wish my #MON"
+ line "were as elegant as"
+ cont "the KIMONO GIRLS…"
+ done
+
+RhydonText:
+ text "RHYDON: Gugooh"
+ line "gugogooh!"
+ done
+
+DanceTheatreCooltrainerMText:
+ text "That man's always"
+ line "with his RHYDON."
+
+ para "Says he wants a"
+ line "#MON that can"
+ cont "SURF and dance."
+
+ para "Is he trying to"
+ line "make a synchro-"
+ cont "nized swimming"
+ cont "#MON?"
+ done
+
+DanceTheatreGrannyText:
+ text "The KIMONO GIRLS"
+ line "are so beautiful…"
+
+ para "But they have to"
+ line "go through rigor-"
+ cont "ous training."
+
+ para "And they have to"
+ line "learn to follow"
+
+ para "customs before ap-"
+ line "pearing in public."
+
+ para "But if you love"
+ line "something, any-"
+ cont "thing is possible."
+ done
+
+DanceTheatreFancyPanelText:
+ text "It's a fancy panel"
+ line "that's decorated"
+ cont "with flowers."
+ done
+
+DanceTheatre_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 5, 13, ECRUTEAK_CITY, 8
+ warp_event 6, 13, ECRUTEAK_CITY, 8
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 5, 6, BGEVENT_UP, DanceTheatreFancyPanel
+ bg_event 6, 6, BGEVENT_UP, DanceTheatreFancyPanel
+
+ db 9 ; object events
+ object_event 0, 2, SPRITE_KIMONO_GIRL, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 0, TrainerKimonoGirlNaoko2, -1
+ object_event 2, 1, SPRITE_KIMONO_GIRL, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 0, TrainerKimonoGirlSayo, -1
+ object_event 6, 2, SPRITE_KIMONO_GIRL, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, TrainerKimonoGirlZuki, -1
+ object_event 9, 1, SPRITE_KIMONO_GIRL, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 0, TrainerKimonoGirlKuni, -1
+ object_event 11, 2, SPRITE_KIMONO_GIRL, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 0, TrainerKimonoGirlMiki, -1
+ object_event 7, 10, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DanceTheaterSurfGuy, -1
+ object_event 6, 8, SPRITE_RHYDON, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, DanceTheaterRhydon, -1
+ object_event 10, 10, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, DanceTheatreCooltrainerMScript, -1
+ object_event 3, 6, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DanceTheatreGrannyScript, -1
diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm
new file mode 100644
index 00000000..d1ec88a3
--- /dev/null
+++ b/maps/EcruteakGym.asm
@@ -0,0 +1,384 @@
+ const_def 2 ; object constants
+ const ECRUTEAKGYM_MORTY
+ const ECRUTEAKGYM_SAGE1
+ const ECRUTEAKGYM_SAGE2
+ const ECRUTEAKGYM_GRANNY1
+ const ECRUTEAKGYM_GRANNY2
+ const ECRUTEAKGYM_GYM_GUY
+ const ECRUTEAKGYM_GRAMPS
+
+EcruteakGym_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+EcruteakGymMortyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_MORTY
+ iftrue .FightDone
+ writetext MortyIntroText
+ waitbutton
+ closetext
+ winlosstext MortyWinLossText, 0
+ loadtrainer MORTY, MORTY1
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_MORTY
+ opentext
+ writetext Text_ReceivedFogBadge
+ playsound SFX_GET_BADGE
+ waitsfx
+ setflag ENGINE_FOGBADGE
+ checkcode VAR_BADGES
+ scall EcruteakGymActivateRockets
+ setmapscene ECRUTEAK_TIN_TOWER_ENTRANCE, SCENE_FINISHED
+.FightDone:
+ checkevent EVENT_GOT_TM30_SHADOW_BALL
+ iftrue .GotShadowBall
+ setevent EVENT_BEAT_SAGE_JEFFREY
+ setevent EVENT_BEAT_SAGE_PING
+ setevent EVENT_BEAT_MEDIUM_MARTHA
+ setevent EVENT_BEAT_MEDIUM_GRACE
+ writetext MortyText_FogBadgeSpeech
+ buttonsound
+ verbosegiveitem TM_SHADOW_BALL
+ iffalse .NoRoomForShadowBall
+ setevent EVENT_GOT_TM30_SHADOW_BALL
+ writetext MortyText_ShadowBallSpeech
+ waitbutton
+ closetext
+ end
+
+.GotShadowBall:
+ writetext MortyFightDoneText
+ waitbutton
+.NoRoomForShadowBall:
+ closetext
+ end
+
+EcruteakGymActivateRockets:
+ ifequal 7, .RadioTowerRockets
+ ifequal 6, .GoldenrodRockets
+ end
+
+.GoldenrodRockets:
+ jumpstd goldenrodrockets
+
+.RadioTowerRockets:
+ jumpstd radiotowerrockets
+
+TrainerSageJeffrey:
+ trainer SAGE, JEFFREY, EVENT_BEAT_SAGE_JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SageJeffreyAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerSagePing:
+ trainer SAGE, PING, EVENT_BEAT_SAGE_PING, SagePingSeenText, SagePingBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext SagePingAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerMediumMartha:
+ trainer MEDIUM, MARTHA, EVENT_BEAT_MEDIUM_MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext MediumMarthaAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerMediumGrace:
+ trainer MEDIUM, GRACE, EVENT_BEAT_MEDIUM_GRACE, MediumGraceSeenText, MediumGraceBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext MediumGraceAfterBattleText
+ waitbutton
+ closetext
+ end
+
+EcruteakGymGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_MORTY
+ iftrue .EcruteakGymGuyWinScript
+ writetext EcruteakGymGuyText
+ waitbutton
+ closetext
+ end
+
+.EcruteakGymGuyWinScript:
+ writetext EcruteakGymGuyWinText
+ waitbutton
+ closetext
+ end
+
+EcruteakGymStatue:
+ checkflag ENGINE_FOGBADGE
+ iftrue .Beaten
+ jumpstd gymstatue1
+.Beaten:
+ trainertotext MORTY, MORTY1, MEM_BUFFER_1
+ jumpstd gymstatue2
+
+MortyIntroText:
+ text "Good of you to"
+ line "have come."
+
+ para "Here in ECRUTEAK,"
+ line "#MON have been"
+ cont "revered."
+
+ para "It's said that"
+ line "legendary #MON"
+
+ para "will appear to the"
+ line "truly powerful"
+ cont "trainers."
+
+ para "I believed that"
+ line "tale, so I have"
+
+ para "secretly trained"
+ line "here all my life."
+
+ para "As a result, I can"
+ line "now see what"
+ cont "others cannot."
+
+ para "Just a bit more…"
+
+ para "With a little"
+ line "more, I could see"
+
+ para "a future in which"
+ line "I meet the legen-"
+ cont "dary #MON."
+
+ para "You're going to"
+ line "help me reach that"
+ cont "level!"
+ done
+
+MortyWinLossText:
+ text "I'm not good"
+ line "enough yet…"
+
+ para "All right. This"
+ line "BADGE is yours."
+ done
+
+Text_ReceivedFogBadge:
+ text "<PLAYER> received"
+ line "FOGBADGE."
+ done
+
+MortyText_FogBadgeSpeech:
+ text "By having FOG-"
+ line "BADGE, #MON up"
+
+ para "to L50 will obey"
+ line "you."
+
+ para "Also, #MON that"
+ line "know SURF will be"
+
+ para "able to use that"
+ line "move anytime."
+
+ para "I want you to have"
+ line "this too."
+ done
+
+MortyText_ShadowBallSpeech:
+ text "It's SHADOW BALL."
+ line "It causes damage"
+
+ para "and may reduce"
+ line "SPCL.DEF."
+
+ para "Use it if it"
+ line "appeals to you."
+ done
+
+MortyFightDoneText:
+ text "I see…"
+
+ para "Your journey has"
+ line "taken you to far-"
+ cont "away places."
+
+ para "And you have wit-"
+ line "nessed much more"
+ cont "than I."
+
+ para "I envy you for"
+ line "that…"
+ done
+
+SageJeffreySeenText:
+ text "I spent the spring"
+ line "with my #MON."
+
+ para "Then summer, fall"
+ line "and winter…"
+
+ para "Then spring came"
+ line "again. We have"
+
+ para "lived together"
+ line "for a long time."
+ done
+
+SageJeffreyBeatenText:
+ text "Wins and losses, I"
+ line "experienced both."
+ done
+
+SageJeffreyAfterBattleText:
+ text "Where did #MON"
+ line "come from?"
+ done
+
+SagePingSeenText:
+ text "Can you inflict"
+ line "any damage on our"
+ cont "#MON?"
+ done
+
+SagePingBeatenText:
+ text "Ah! Well done!"
+ done
+
+SagePingAfterBattleText:
+ text "We use only ghost-"
+ line "type #MON."
+
+ para "No normal-type"
+ line "attack can harm"
+ cont "them!"
+ done
+
+MediumMarthaSeenText:
+ text "I shall win!"
+ done
+
+MediumMarthaBeatenText:
+ text "I, I, I lost!"
+ done
+
+MediumMarthaAfterBattleText:
+ text "The one who wants"
+ line "to win most--will!"
+ done
+
+MediumGraceSeenText:
+ text "Stumped by our in-"
+ line "visible floor?"
+
+ para "Defeat me if you"
+ line "want a hint!"
+ done
+
+MediumGraceBeatenText:
+ text "Wha-what?"
+ done
+
+MediumGraceAfterBattleText:
+ text "Fine. I shall tell"
+ line "you the secret of"
+
+ para "the invisible"
+ line "floor."
+
+ para "The path is right"
+ line "before our eyes!"
+ done
+
+EcruteakGymGuyText:
+ text "The trainers here"
+ line "have secret mo-"
+ cont "tives."
+
+ para "If you win, they"
+ line "may tell you some"
+
+ para "deep secrets about"
+ line "ECRUTEAK."
+ done
+
+EcruteakGymGuyWinText:
+ text "Whew, <PLAYER>."
+ line "You did great!"
+
+ para "I was cowering in"
+ line "the corner out of"
+ cont "pure terror!"
+ done
+
+EcruteakGym_MapEvents:
+ db 0, 0 ; filler
+
+ db 33 ; warp events
+ warp_event 4, 17, ECRUTEAK_CITY, 10
+ warp_event 5, 17, ECRUTEAK_CITY, 10
+ warp_event 4, 14, ECRUTEAK_GYM, 4
+ warp_event 2, 4, ECRUTEAK_GYM, 3
+ warp_event 3, 4, ECRUTEAK_GYM, 3
+ warp_event 4, 4, ECRUTEAK_GYM, 3
+ warp_event 4, 5, ECRUTEAK_GYM, 3
+ warp_event 6, 7, ECRUTEAK_GYM, 3
+ warp_event 7, 4, ECRUTEAK_GYM, 3
+ warp_event 2, 6, ECRUTEAK_GYM, 3
+ warp_event 3, 6, ECRUTEAK_GYM, 3
+ warp_event 4, 6, ECRUTEAK_GYM, 3
+ warp_event 5, 6, ECRUTEAK_GYM, 3
+ warp_event 7, 6, ECRUTEAK_GYM, 3
+ warp_event 7, 7, ECRUTEAK_GYM, 3
+ warp_event 4, 8, ECRUTEAK_GYM, 3
+ warp_event 5, 8, ECRUTEAK_GYM, 3
+ warp_event 6, 8, ECRUTEAK_GYM, 3
+ warp_event 7, 8, ECRUTEAK_GYM, 3
+ warp_event 2, 8, ECRUTEAK_GYM, 3
+ warp_event 2, 9, ECRUTEAK_GYM, 3
+ warp_event 2, 10, ECRUTEAK_GYM, 3
+ warp_event 2, 11, ECRUTEAK_GYM, 3
+ warp_event 4, 10, ECRUTEAK_GYM, 3
+ warp_event 5, 10, ECRUTEAK_GYM, 3
+ warp_event 2, 12, ECRUTEAK_GYM, 3
+ warp_event 3, 12, ECRUTEAK_GYM, 3
+ warp_event 4, 12, ECRUTEAK_GYM, 3
+ warp_event 5, 12, ECRUTEAK_GYM, 3
+ warp_event 7, 10, ECRUTEAK_GYM, 3
+ warp_event 7, 11, ECRUTEAK_GYM, 3
+ warp_event 7, 12, ECRUTEAK_GYM, 3
+ warp_event 7, 13, ECRUTEAK_GYM, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 3, 15, BGEVENT_READ, EcruteakGymStatue
+ bg_event 6, 15, BGEVENT_READ, EcruteakGymStatue
+
+ db 6 ; object events
+ object_event 5, 1, SPRITE_MORTY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, EcruteakGymMortyScript, -1
+ object_event 2, 7, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerSageJeffrey, -1
+ object_event 3, 13, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerSagePing, -1
+ object_event 7, 5, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 1, TrainerMediumMartha, -1
+ object_event 7, 9, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 1, TrainerMediumGrace, -1
+ object_event 7, 15, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, EcruteakGymGuyScript, -1
diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm
new file mode 100644
index 00000000..0ae99bd6
--- /dev/null
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -0,0 +1,177 @@
+ const_def 2 ; object constants
+ const ECRUTEAKITEMFINDERHOUSE_COOLTRAINER_M
+ const ECRUTEAKITEMFINDERHOUSE_POKEDEX
+
+EcruteakItemfinderHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+EcruteakItemfinderGuy:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_ITEMFINDER
+ iftrue .itemfinder
+ writetext EcruteakItemfinderAdventureText
+ yesorno
+ iffalse .no
+ writetext EcruteakItemfinderTrueSpiritText
+ buttonsound
+ verbosegiveitem ITEMFINDER
+ setevent EVENT_GOT_ITEMFINDER
+.itemfinder:
+ writetext ItemfinderExplanationText
+ waitbutton
+ closetext
+ end
+
+.no:
+ writetext EcruteakItemfinderToEachHisOwnText
+ waitbutton
+ closetext
+ end
+
+EcruteakHistoryBook:
+ opentext
+ writetext EcruteakHistoryBookText
+ yesorno
+ iftrue .ReadBook
+ closetext
+ end
+
+.ReadBook:
+ writetext EcruteakTwoTowersText
+ yesorno
+ iftrue .KeepReading
+ closetext
+ end
+
+.KeepReading:
+ writetext EcruteakThreeMonText
+ waitbutton
+ closetext
+ end
+
+ItemFinderHouseRadio:
+ jumpstd radio2
+
+EcruteakItemfinderAdventureText:
+ text "Ah. You're on an"
+ line "adventure with"
+ cont "your #MON?"
+
+ para "Well, what's an"
+ line "adventure without"
+ cont "treasure hunting?"
+
+ para "Am I right, or am"
+ line "I right?"
+ done
+
+EcruteakItemfinderTrueSpiritText:
+ text "Good! You under-"
+ line "stand the true"
+
+ para "spirit of adven-"
+ line "ture."
+
+ para "I like that! Take"
+ line "this with you."
+ done
+
+ItemfinderExplanationText:
+ text "There are many"
+ line "items lying about"
+
+ para "that aren't ob-"
+ line "vious."
+
+ para "Use ITEMFINDER to"
+ line "check if there is"
+
+ para "an item on the"
+ line "ground near you."
+
+ para "It doesn't show"
+ line "the exact spot,"
+
+ para "so you'll have to"
+ line "look yourself."
+
+ para "Oh yeah--I heard"
+ line "there are items"
+
+ para "in ECRUTEAK's"
+ line "BURNED TOWER."
+ done
+
+EcruteakItemfinderToEachHisOwnText:
+ text "Oh… To each his"
+ line "own, I suppose…"
+ done
+
+EcruteakHistoryBookText:
+ text "HISTORY OF"
+ line "ECRUTEAK"
+
+ para "Want to read it?"
+ done
+
+EcruteakTwoTowersText:
+ text "In ECRUTEAK, there"
+ line "were two towers."
+
+ para "Each tower was the"
+ line "roost of powerful"
+ cont "flying #MON."
+
+ para "But one of the"
+ line "towers burned to"
+ cont "the ground."
+
+ para "The two #MON"
+ line "haven't been seen"
+ cont "since…"
+
+ para "Keep reading?"
+ done
+
+EcruteakThreeMonText:
+ text "ECRUTEAK was also"
+ line "home to three"
+
+ para "#MON that raced"
+ line "around the town."
+
+ para "They were said to"
+ line "have been born of"
+
+ para "water, lightning"
+ line "and fire."
+
+ para "But they could not"
+ line "contain their"
+ cont "excessive power."
+
+ para "So they say the"
+ line "three ran like the"
+
+ para "wind off into the"
+ line "grassland."
+ done
+
+EcruteakItemfinderHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 3, 7, ECRUTEAK_CITY, 11
+ warp_event 4, 7, ECRUTEAK_CITY, 11
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 2, 1, BGEVENT_READ, ItemFinderHouseRadio
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, EcruteakItemfinderGuy, -1
+ object_event 3, 3, SPRITE_POKEDEX, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakHistoryBook, -1
diff --git a/maps/EcruteakLugiaSpeechHouse.asm b/maps/EcruteakLugiaSpeechHouse.asm
new file mode 100644
index 00000000..8b02bd15
--- /dev/null
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -0,0 +1,59 @@
+ const_def 2 ; object constants
+ const ECRUTEAKLUGIASPEECHHOUSE_GRAMPS
+ const ECRUTEAKLUGIASPEECHHOUSE_YOUNGSTER
+
+EcruteakLugiaSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+EcruteakLugiaSpeechHouseGrampsScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseGrampsText
+
+EcruteakLugiaSpeechHouseYoungsterScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseYoungsterText
+
+LugiaSpeechHouseRadio:
+ jumpstd radio2
+
+EcruteakLugiaSpeechHouseGrampsText:
+ text "This happened when"
+ line "I was young."
+
+ para "The sky suddenly"
+ line "turned black. A"
+
+ para "giant flying #-"
+ line "MON was blocking"
+ cont "out the sun."
+
+ para "I wonder what that"
+ line "#MON was? "
+
+ para "It was like a bird"
+ line "and a dragon."
+ done
+
+EcruteakLugiaSpeechHouseYoungsterText:
+ text "Is there really a"
+ line "#MON that big?"
+
+ para "If it exists, it"
+ line "must be powerful."
+ done
+
+EcruteakLugiaSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 3, 7, ECRUTEAK_CITY, 7
+ warp_event 4, 7, ECRUTEAK_CITY, 7
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 2, 1, BGEVENT_READ, LugiaSpeechHouseRadio
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_GRAMPS, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseGrampsScript, -1
+ object_event 5, 4, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseYoungsterScript, -1
diff --git a/maps/EcruteakMart.asm b/maps/EcruteakMart.asm
new file mode 100644
index 00000000..13259932
--- /dev/null
+++ b/maps/EcruteakMart.asm
@@ -0,0 +1,60 @@
+ const_def 2 ; object constants
+ const ECRUTEAKMART_CLERK
+ const ECRUTEAKMART_SUPER_NERD
+ const ECRUTEAKMART_GRANNY
+
+EcruteakMart_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+EcruteakMartClerkScript:
+ opentext
+ pokemart MARTTYPE_STANDARD, MART_ECRUTEAK
+ closetext
+ end
+
+EcruteakMartSuperNerdScript:
+ jumptextfaceplayer EcruteakMartSuperNerdText
+
+EcruteakMartGrannyScript:
+ jumptextfaceplayer EcruteakMartGrannyText
+
+EcruteakMartSuperNerdText:
+ text "My EEVEE evolved"
+ line "into an ESPEON."
+
+ para "But my friend's"
+ line "EEVEE turned into"
+ cont "an UMBREON."
+
+ para "I wonder why? We"
+ line "both were raising"
+
+ para "our EEVEE in the"
+ line "same way…"
+ done
+
+EcruteakMartGrannyText:
+ text "If you use REVIVE,"
+ line "a #MON that's"
+
+ para "fainted will wake"
+ line "right up."
+ done
+
+EcruteakMart_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, ECRUTEAK_CITY, 9
+ warp_event 3, 7, ECRUTEAK_CITY, 9
+
+ 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, EcruteakMartClerkScript, -1
+ object_event 5, 2, SPRITE_SUPER_NERD, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, EcruteakMartSuperNerdScript, -1
+ object_event 6, 6, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakMartGrannyScript, -1
diff --git a/maps/EcruteakPokecenter1F.asm b/maps/EcruteakPokecenter1F.asm
new file mode 100644
index 00000000..fcc417d7
--- /dev/null
+++ b/maps/EcruteakPokecenter1F.asm
@@ -0,0 +1,203 @@
+ const_def 2 ; object constants
+ const ECRUTEAKPOKECENTER1F_NURSE
+ const ECRUTEAKPOKECENTER1F_POKEFAN_M
+ const ECRUTEAKPOKECENTER1F_COOLTRAINER_F
+ const ECRUTEAKPOKECENTER1F_GYM_GUY
+ const ECRUTEAKPOKECENTER1F_BILL
+
+EcruteakPokecenter1F_MapScripts:
+ db 2 ; scene scripts
+ scene_script .MeetBill ; SCENE_DEFAULT
+ scene_script .DummyScene ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.MeetBill:
+ priorityjump .BillActivatesTimeCapsule
+ end
+
+.DummyScene:
+ end
+
+.BillActivatesTimeCapsule:
+ pause 30
+ playsound SFX_EXIT_BUILDING
+ appear ECRUTEAKPOKECENTER1F_BILL
+ waitsfx
+ applymovement ECRUTEAKPOKECENTER1F_BILL, EcruteakPokecenter1FBillMovement1
+ applymovement PLAYER, EcruteakPokecenter1FPlayerMovement1
+ turnobject ECRUTEAKPOKECENTER1F_NURSE, UP
+ pause 10
+ turnobject ECRUTEAKPOKECENTER1F_NURSE, DOWN
+ pause 30
+ turnobject ECRUTEAKPOKECENTER1F_NURSE, UP
+ pause 10
+ turnobject ECRUTEAKPOKECENTER1F_NURSE, DOWN
+ pause 20
+ turnobject ECRUTEAKPOKECENTER1F_BILL, DOWN
+ pause 10
+ opentext
+ writetext EcruteakPokecenter1F_BillText1
+ buttonsound
+ jump .PointlessJump
+
+.PointlessJump:
+ writetext EcruteakPokecenter1F_BillText2
+ waitbutton
+ closetext
+ turnobject PLAYER, DOWN
+ applymovement ECRUTEAKPOKECENTER1F_BILL, EcruteakPokecenter1FBillMovement2
+ playsound SFX_EXIT_BUILDING
+ disappear ECRUTEAKPOKECENTER1F_BILL
+ clearevent EVENT_MET_BILL
+ setflag ENGINE_TIME_CAPSULE
+ setscene SCENE_FINISHED
+ waitsfx
+ end
+
+EcruteakPokecenter1FNurseScript:
+ jumpstd pokecenternurse
+
+EcruteakPokecenter1FPokefanMScript:
+ jumptextfaceplayer EcruteakPokecenter1FPokefanMText
+
+EcruteakPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer EcruteakPokecenter1FCooltrainerFText
+
+EcruteakPokecenter1FGymGuyScript:
+ jumptextfaceplayer EcruteakPokecenter1FGymGuyText
+
+EcruteakPokecenter1FBillMovement1:
+ step UP
+ step UP
+ step UP
+ step UP
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ turn_head UP
+ step_end
+
+EcruteakPokecenter1FBillMovement2:
+ step RIGHT
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step_end
+
+EcruteakPokecenter1FPlayerMovement1:
+ step UP
+ step UP
+ step UP
+ step_end
+
+EcruteakPokecenter1F_BillText1:
+ text "Hi, I'm BILL. And"
+ line "who are you?"
+
+ para "Hmm, <PLAYER>, huh?"
+ line "You've come at the"
+ cont "right time."
+ done
+
+EcruteakPokecenter1F_BillText2:
+ text "I just finished"
+ line "adjustments on my"
+ cont "TIME CAPSULE."
+
+ para "You know that"
+ line "#MON can be"
+ cont "traded, right?"
+
+ para "My TIME CAPSULE"
+ line "was developed to"
+
+ para "enable trades with"
+ line "the past."
+
+ para "But you can't send"
+ line "anything that"
+
+ para "didn't exist in"
+ line "the past."
+
+ para "If you did, the PC"
+ line "in the past would"
+ cont "have a breakdown."
+
+ para "So you have to"
+ line "remove anything"
+
+ para "that wasn't around"
+ line "in the past."
+
+ para "Put simply, no"
+ line "sending new moves"
+
+ para "or new #MON in"
+ line "the TIME CAPSULE."
+
+ para "Don't you worry."
+ line "I'm done with the"
+ cont "adjustments."
+
+ para "Tomorrow, TIME"
+ line "CAPSULES will be"
+
+ para "running at all"
+ line "#MON CENTERS."
+
+ para "I have to hurry on"
+ line "back to GOLDENROD"
+ cont "and see my folks."
+
+ para "Buh-bye!"
+ done
+
+EcruteakPokecenter1FPokefanMText:
+ text "The way the KIMONO"
+ line "GIRLS dance is"
+
+ para "marvelous. Just"
+ line "like the way they"
+ cont "use their #MON."
+ done
+
+EcruteakPokecenter1FCooltrainerFText:
+ text "MORTY, the GYM"
+ line "LEADER, is soooo"
+ cont "cool."
+
+ para "His #MON are"
+ line "really tough too."
+ done
+
+EcruteakPokecenter1FGymGuyText:
+ text "LAKE OF RAGE…"
+
+ para "The appearance of"
+ line "a GYARADOS swarm…"
+
+ para "I smell a conspir-"
+ line "acy. I know it!"
+ done
+
+EcruteakPokecenter1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 3, 7, ECRUTEAK_CITY, 6
+ warp_event 4, 7, ECRUTEAK_CITY, 6
+ warp_event 0, 7, POKECENTER_2F, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 5 ; object events
+ object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakPokecenter1FNurseScript, -1
+ object_event 7, 6, SPRITE_POKEFAN_M, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakPokecenter1FPokefanMScript, -1
+ object_event 1, 4, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakPokecenter1FCooltrainerFScript, -1
+ object_event 7, 1, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, EcruteakPokecenter1FGymGuyScript, -1
+ object_event 0, 7, SPRITE_BILL, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
diff --git a/maps/EcruteakTinTowerEntrance.asm b/maps/EcruteakTinTowerEntrance.asm
new file mode 100644
index 00000000..f7a61d88
--- /dev/null
+++ b/maps/EcruteakTinTowerEntrance.asm
@@ -0,0 +1,164 @@
+ const_def 2 ; object constants
+ const ECRUTEAKTINTOWERENTRANCE_SAGE1
+ const ECRUTEAKTINTOWERENTRANCE_SAGE2
+ const ECRUTEAKTINTOWERENTRANCE_SAGE3
+ const ECRUTEAKTINTOWERENTRANCE_GRAMPS
+
+EcruteakTinTowerEntrance_MapScripts:
+ db 2 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.DummyScene0:
+ end
+
+.DummyScene1:
+ end
+
+EcruteakTinTowerEntrance_CoordEvent1:
+ checkevent EVENT_RANG_CLEAR_BELL_2
+ iftrue EcruteakTinTowerEntrance_CoordEventEmpty
+ applymovement ECRUTEAKTINTOWERENTRANCE_SAGE2, MovementData_0x980c7
+ moveobject ECRUTEAKTINTOWERENTRANCE_SAGE1, 4, 6
+ appear ECRUTEAKTINTOWERENTRANCE_SAGE1
+ pause 5
+ disappear ECRUTEAKTINTOWERENTRANCE_SAGE2
+ end
+
+EcruteakTinTowerEntrance_CoordEvent2:
+ checkevent EVENT_RANG_CLEAR_BELL_1
+ iftrue EcruteakTinTowerEntrance_CoordEventEmpty
+ applymovement ECRUTEAKTINTOWERENTRANCE_SAGE1, MovementData_0x980cc
+ moveobject ECRUTEAKTINTOWERENTRANCE_SAGE2, 5, 6
+ appear ECRUTEAKTINTOWERENTRANCE_SAGE2
+ pause 5
+ disappear ECRUTEAKTINTOWERENTRANCE_SAGE1
+ end
+
+EcruteakTinTowerEntrance_CoordEventEmpty:
+ end
+
+EcruteakTinTowerEntranceSageScript
+ faceplayer
+ opentext
+ checkflag ENGINE_FOGBADGE
+ iftrue .BlockPassage_GotFogBadge
+ writetext EcruteakTinTowerEntranceSageText
+ waitbutton
+ closetext
+ end
+
+.BlockPassage_GotFogBadge:
+ writetext EcruteakTinTowerEntranceSageText_GotFogBadge
+ waitbutton
+ closetext
+ end
+
+EcruteakTinTowerEntranceWanderingSageScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_RAINBOW_WING
+ iftrue .GotRainbowWing
+ writetext EcruteakTinTowerEntranceWanderingSageText
+ waitbutton
+ closetext
+ end
+
+.GotRainbowWing:
+ writetext EcruteakTinTowerEntranceWanderingSageText_GotClearBell
+ waitbutton
+ closetext
+ end
+
+EcruteakTinTowerEntranceGrampsScript:
+ jumptextfaceplayer EcruteakTinTowerEntranceGrampsText
+
+MovementData_0x980c7:
+ fix_facing
+ big_step LEFT
+ remove_fixed_facing
+ turn_head DOWN
+ step_end
+
+MovementData_0x980cc:
+ fix_facing
+ big_step RIGHT
+ remove_fixed_facing
+ turn_head DOWN
+ step_end
+
+EcruteakTinTowerEntranceSageText:
+ text "TIN TOWER is off"
+ line "limits to anyone"
+
+ para "without ECRUTEAK"
+ line "GYM's BADGE."
+
+ para "Sorry, but you'll"
+ line "have to leave."
+ done
+
+EcruteakTinTowerEntranceSageText_GotFogBadge:
+ text "TIN TOWER is off"
+ line "limits to anyone"
+
+ para "without ECRUTEAK"
+ line "GYM's BADGE."
+
+ para "Ah!"
+
+ para "ECRUTEAK's GYM"
+ line "BADGE! Please, go"
+ cont "right through."
+ done
+
+EcruteakTinTowerEntranceWanderingSageText:
+ text "The TIN TOWER up"
+ line "ahead was built"
+
+ para "as a roost for"
+ line "flying #MON."
+ done
+
+EcruteakTinTowerEntranceWanderingSageText_GotClearBell:
+ text "The TIN TOWER"
+ line "shook! A #MON"
+
+ para "must have returned"
+ line "to the top!"
+ done
+
+EcruteakTinTowerEntranceGrampsText:
+ text "Two towers…"
+ line "Two #MON…"
+
+ para "But when one"
+ line "burned down, both"
+
+ para "#MON flew away,"
+ line "never to return."
+ done
+
+EcruteakTinTowerEntrance_MapEvents:
+ db 0, 0 ; filler
+
+ db 5 ; warp events
+ warp_event 4, 17, ECRUTEAK_CITY, 3
+ warp_event 5, 17, ECRUTEAK_CITY, 3
+ warp_event 5, 3, ECRUTEAK_TIN_TOWER_ENTRANCE, 4
+ warp_event 17, 15, ECRUTEAK_TIN_TOWER_ENTRANCE, 3
+ warp_event 17, 3, WISE_TRIOS_ROOM, 3
+
+ db 2 ; coord events
+ coord_event 4, 7, SCENE_DEFAULT, EcruteakTinTowerEntrance_CoordEvent1
+ coord_event 5, 7, SCENE_DEFAULT, EcruteakTinTowerEntrance_CoordEvent2
+
+ db 0 ; bg events
+
+ db 4 ; object events
+ object_event 4, 6, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakTinTowerEntranceSageScript, EVENT_RANG_CLEAR_BELL_1
+ object_event 5, 6, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakTinTowerEntranceSageScript, EVENT_RANG_CLEAR_BELL_2
+ object_event 6, 9, SPRITE_SAGE, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakTinTowerEntranceWanderingSageScript, -1
+ object_event 3, 11, SPRITE_GRAMPS, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakTinTowerEntranceGrampsScript, -1
diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm
new file mode 100644
index 00000000..c8577ac2
--- /dev/null
+++ b/maps/WiseTriosRoom.asm
@@ -0,0 +1,20 @@
+ const_def 2 ; object constants
+
+WiseTriosRoom_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+WiseTriosRoom_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 7, 4, ECRUTEAK_CITY, 4
+ warp_event 7, 5, ECRUTEAK_CITY, 5
+ warp_event 2, 4, ECRUTEAK_TIN_TOWER_ENTRANCE, 5
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events