summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2018-10-03 23:15:33 -0600
committerIIMarckus <iimarckus@gmail.com>2018-10-03 23:15:49 -0600
commit6910c7a29002fd01fe4bb330b63294eafdb92865 (patch)
treed6644927ce08479553637b0a29142fbe4655e8aa
parentecda8b81ae8f3836927f36d42e122d4e29097366 (diff)
Add map objects from bank 4B.
-rw-r--r--constants/event_flags.asm18
-rw-r--r--constants/map_constants.asm2
-rw-r--r--main.asm11
-rw-r--r--maps/Route32.asm874
-rw-r--r--maps/Route33.asm136
-rw-r--r--maps/Route34.asm673
-rw-r--r--maps/Route35.asm466
-rw-r--r--maps/Route36.asm490
8 files changed, 2654 insertions, 16 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index b5b9c2e8..471eaa8f 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -642,21 +642,21 @@
const EVENT_WADE_ASKED_FOR_PHONE_NUMBER
const EVENT_276
const EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
- const EVENT_278
+ const EVENT_RALPH_READY_FOR_REMATCH
const EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
- const EVENT_27A
+ const EVENT_LIZ_READY_FOR_REMATCH
const EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
- const EVENT_27C
+ const EVENT_ANTHONY_READY_FOR_REMATCH
const EVENT_TODD_ASKED_FOR_PHONE_NUMBER
- const EVENT_27E
+ const EVENT_TODD_READY_FOR_REMATCH
const EVENT_GINA_ASKED_FOR_PHONE_NUMBER
- const EVENT_280 ; 280
+ const EVENT_GINA_READY_FOR_REMATCH ; 280
const EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
- const EVENT_282
+ const EVENT_IRWIN_READY_FOR_REMATCH
const EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
- const EVENT_284
+ const EVENT_ARNIE_READY_FOR_REMATCH
const EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
- const EVENT_286
+ const EVENT_ALAN_READY_FOR_REMATCH
const EVENT_287
const EVENT_288
const EVENT_DANA_ASKED_FOR_PHONE_NUMBER
@@ -1780,7 +1780,7 @@
const EVENT_ROUTE_31_POTION
const EVENT_ROUTE_31_POKE_BALL
const EVENT_ROUTE_32_GREAT_BALL
- const EVENT_ROUTE_32_REPEL
+ const EVENT_ROUTE_32_POTION
const EVENT_ROUTE_35_TM_ROLLOUT
const EVENT_ROUTE_42_ULTRA_BALL
const EVENT_ROUTE_42_SUPER_POTION
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index d9bd0ed0..cb874504 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -258,7 +258,7 @@ ENDM
map_const GOLDENROD_GAME_CORNER, 7, 10 ; 19
map_const ILEX_FOREST_AZALEA_GATE, 4, 5 ; 20
map_const ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 21
- map_const DAYCARE, 4, 5 ; 22
+ map_const DAY_CARE, 4, 5 ; 22
newgroup ; 12
diff --git a/main.asm b/main.asm
index b03d8e59..470f99a7 100644
--- a/main.asm
+++ b/main.asm
@@ -1647,12 +1647,11 @@ SECTION "bank4a", ROMX, BANK[$4a]
dr $128000, $12c000
SECTION "bank4b", ROMX, BANK[$4b]
-;INCLUDE "maps/Route32.asm"
-;INCLUDE "maps/Route33.asm"
-;INCLUDE "maps/Route34.asm"
-;INCLUDE "maps/Route35.asm"
-;INCLUDE "maps/Route36.asm"
- dr $12c000, $130000
+INCLUDE "maps/Route32.asm"
+INCLUDE "maps/Route33.asm"
+INCLUDE "maps/Route34.asm"
+INCLUDE "maps/Route35.asm"
+INCLUDE "maps/Route36.asm"
SECTION "bank4c", ROMX, BANK[$4c]
INCLUDE "maps/Route37.asm"
diff --git a/maps/Route32.asm b/maps/Route32.asm
new file mode 100644
index 00000000..799c7e9d
--- /dev/null
+++ b/maps/Route32.asm
@@ -0,0 +1,874 @@
+ const_def 2 ; object constants
+ const ROUTE32_FISHER1
+ const ROUTE32_FISHER2
+ const ROUTE32_FISHER3
+ const ROUTE32_YOUNGSTER1
+ const ROUTE32_YOUNGSTER2
+ const ROUTE32_YOUNGSTER3
+ const ROUTE32_LASS1
+ const ROUTE32_COOLTRAINER_M
+ const ROUTE32_YOUNGSTER4
+ const ROUTE32_FISHER4
+ const ROUTE32_POKE_BALL1
+ const ROUTE32_FISHER5
+ const ROUTE32_FRIEDA
+ const ROUTE32_POKE_BALL2
+
+Route32_MapScripts:
+ db 3 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_ROUTE32_OFFER_SLOWPOKETAIL
+ scene_script .DummyScene2 ; SCENE_ROUTE32_NOTHING
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .Frieda
+
+.DummyScene0:
+ end
+
+.DummyScene1:
+ end
+
+.DummyScene2:
+ end
+
+.Frieda:
+ checkcode VAR_WEEKDAY
+ ifequal FRIDAY, .FriedaAppears
+ disappear ROUTE32_FRIEDA
+ return
+
+.FriedaAppears:
+ appear ROUTE32_FRIEDA
+ return
+
+Route32CooltrainerMScript:
+ faceplayer
+Route32CooltrainerMContinueScene:
+ opentext
+ checkevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
+ iftrue .GotMiracleSeed
+ checkflag ENGINE_ZEPHYRBADGE
+ iffalse .DontHaveZephyrBadge
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ iftrue .GiveMiracleSeed
+ writetext Route32CooltrainerMText_AideIsWaiting
+ waitbutton
+ closetext
+ end
+
+.Unreferenced:
+ writetext Route32CooltrainerMText_UnusedSproutTower
+ waitbutton
+ closetext
+ end
+
+.GiveMiracleSeed:
+ writetext Route32CooltrainerMText_HaveThisSeed
+ buttonsound
+ verbosegiveitem MIRACLE_SEED
+ iffalse .BagFull
+ setevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
+ jump .GotMiracleSeed
+
+.DontHaveZephyrBadge:
+ writetext Route32CooltrainerMText_VioletGym
+ waitbutton
+ closetext
+ end
+
+.GotMiracleSeed:
+ writetext Route32CooltrainerMText_ExperiencesShouldBeUseful
+ waitbutton
+.BagFull:
+ closetext
+ end
+
+Route32CooltrainerMStopsYouScene:
+ turnobject ROUTE32_COOLTRAINER_M, LEFT
+ turnobject PLAYER, RIGHT
+ opentext
+ writetext Route32CooltrainerMText_WhatsTheHurry
+ waitbutton
+ closetext
+ follow PLAYER, ROUTE32_COOLTRAINER_M
+ applymovement PLAYER, Movement_Route32CooltrainerMPushesYouBackToViolet
+ stopfollow
+ turnobject PLAYER, DOWN
+ scall Route32CooltrainerMContinueScene
+ applymovement ROUTE32_COOLTRAINER_M, Movement_Route32CooltrainerMReset1
+ applymovement ROUTE32_COOLTRAINER_M, Movement_Route32CooltrainerMReset2
+ end
+
+Route32RoarTMGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TM05_ROAR
+ iftrue .AlreadyHaveRoar
+ writetext Text_RoarIntro
+ buttonsound
+ verbosegiveitem TM_ROAR
+ iffalse .Finish
+ setevent EVENT_GOT_TM05_ROAR
+.AlreadyHaveRoar:
+ writetext Text_RoarOutro
+ waitbutton
+.Finish:
+ closetext
+ end
+
+Route32WannaBuyASlowpokeTailScript:
+ turnobject ROUTE32_FISHER4, DOWN
+ turnobject PLAYER, UP
+ jump _OfferToSellSlowpokeTail
+
+SlowpokeTailSalesmanScript:
+ faceplayer
+_OfferToSellSlowpokeTail:
+ setscene SCENE_ROUTE32_NOTHING
+ opentext
+ writetext Text_MillionDollarSlowpokeTail
+ yesorno
+ iffalse .refused
+ writetext Text_ThoughtKidsWereLoaded
+ waitbutton
+ closetext
+ end
+
+.refused
+ writetext Text_RefusedToBuySlowpokeTail
+ waitbutton
+ closetext
+ end
+
+TrainerCamperRoland:
+ trainer CAMPER, ROLAND, EVENT_BEAT_CAMPER_ROLAND, CamperRolandSeenText, CamperRolandBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext CamperRolandAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerFisherJustin:
+ trainer FISHER, JUSTIN, EVENT_BEAT_FISHER_JUSTIN, FisherJustinSeenText, FisherJustinBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext FisherJustinAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerFisherRalph1:
+ trainer FISHER, RALPH1, EVENT_BEAT_FISHER_RALPH, FisherRalph1SeenText, FisherRalph1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_RALPH_READY_FOR_REMATCH
+ iftrue .Rematch
+ checkcellnum PHONE_FISHER_RALPH
+ iftrue .NumberAccepted
+ checkevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgain
+ writetext FisherRalphAfterText
+ buttonsound
+ setevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber1
+ jump .AskForNumber
+
+.AskAgain:
+ scall .AskNumber2
+.AskForNumber:
+ askforphonenumber PHONE_FISHER_RALPH
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext FISHER, RALPH1, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.Rematch:
+ scall .RematchStd
+ winlosstext FisherRalph1BeatenText, 0
+ checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_ECRUTEAK
+ iftrue .LoadFight1
+ loadtrainer FISHER, RALPH1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_RALPH_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer FISHER, RALPH2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_RALPH_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer FISHER, RALPH3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_RALPH_READY_FOR_REMATCH
+ end
+
+.AskNumber1:
+ jumpstd asknumber1m
+ end
+
+.AskNumber2:
+ jumpstd asknumber2m
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberm
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedm
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedm
+ end
+
+.PhoneFull:
+ jumpstd phonefullm
+ end
+
+.RematchStd:
+ jumpstd rematchm
+ end
+
+TrainerFisherHenry:
+ trainer FISHER, HENRY, EVENT_BEAT_FISHER_HENRY, FisherHenrySeenText, FisherHenryBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext FisherHenryAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerPicnickerLiz1:
+ trainer PICNICKER, LIZ1, EVENT_BEAT_PICNICKER_LIZ, PicnickerLiz1SeenText, PicnickerLiz1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_LIZ_READY_FOR_REMATCH
+ iftrue .Rematch
+ checkcellnum PHONE_PICNICKER_LIZ
+ iftrue .NumberAccepted
+ checkevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgain
+ writetext PicnickerLiz1AfterText
+ buttonsound
+ setevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber1
+ jump .AskForNumber
+
+.AskAgain:
+ scall .AskNumber2
+.AskForNumber:
+ askforphonenumber PHONE_PICNICKER_LIZ
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext PICNICKER, LIZ1, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.Rematch:
+ scall .RematchStd
+ winlosstext PicnickerLiz1BeatenText, 0
+ checkevent EVENT_CLEARED_ROCKET_HIDEOUT
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_ECRUTEAK
+ iftrue .LoadFight1
+ loadtrainer PICNICKER, LIZ1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_LIZ_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer PICNICKER, LIZ2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_LIZ_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer PICNICKER, LIZ3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_LIZ_READY_FOR_REMATCH
+ end
+
+.AskNumber1:
+ jumpstd asknumber1f
+ end
+
+.AskNumber2:
+ jumpstd asknumber2f
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberf
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedf
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedf
+ end
+
+.PhoneFull:
+ jumpstd phonefullf
+ end
+
+.RematchStd:
+ jumpstd rematchf
+ end
+
+TrainerYoungsterAlbert:
+ trainer YOUNGSTER, ALBERT, EVENT_BEAT_YOUNGSTER_ALBERT, YoungsterAlbertSeenText, YoungsterAlbertBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext YoungsterAlbertAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerYoungsterGordon:
+ trainer YOUNGSTER, GORDON, EVENT_BEAT_YOUNGSTER_GORDON, YoungsterGordonSeenText, YoungsterGordonBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext YoungsterGordonAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerBirdKeeperPeter:
+ trainer BIRD_KEEPER, PETER, EVENT_BEAT_BIRD_KEEPER_PETER, BirdKeeperPeterSeenText, BirdKeeperPeterBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BirdKeeperPeterAfterText
+ waitbutton
+ closetext
+ end
+
+FriedaScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_POISON_BARB_FROM_FRIEDA
+ iftrue .Friday
+ checkcode VAR_WEEKDAY
+ ifnotequal FRIDAY, .NotFriday
+ checkevent EVENT_MET_FRIEDA_OF_FRIDAY
+ iftrue .MetFrieda
+ writetext MeetFriedaText
+ buttonsound
+ setevent EVENT_MET_FRIEDA_OF_FRIDAY
+.MetFrieda:
+ writetext FriedaGivesGiftText
+ buttonsound
+ verbosegiveitem POISON_BARB
+ iffalse .Done
+ setevent EVENT_GOT_POISON_BARB_FROM_FRIEDA
+ writetext FriedaGaveGiftText
+ waitbutton
+ closetext
+ end
+
+.Friday:
+ writetext FriedaFridayText
+ waitbutton
+.Done:
+ closetext
+ end
+
+.NotFriday:
+ writetext FriedaNotFridayText
+ waitbutton
+ closetext
+ end
+
+Route32GreatBall:
+ itemball GREAT_BALL
+
+Route32Potion:
+ itemball POTION
+
+Route32Sign:
+ jumptext Route32SignText
+
+Route32RuinsSign:
+ jumptext Route32RuinsSignText
+
+Route32UnionCaveSign:
+ jumptext Route32UnionCaveSignText
+
+Route32PokecenterSign:
+ jumpstd pokecentersign
+
+Route32HiddenGreatBall:
+ hiddenitem GREAT_BALL, EVENT_ROUTE_32_HIDDEN_GREAT_BALL
+
+Route32HiddenSuperPotion:
+ hiddenitem SUPER_POTION, EVENT_ROUTE_32_HIDDEN_SUPER_POTION
+
+Movement_Route32CooltrainerMPushesYouBackToViolet:
+ step UP
+ step UP
+ step_end
+
+Movement_Route32CooltrainerMReset1:
+ step DOWN
+ step_end
+
+Movement_Route32CooltrainerMReset2:
+ step RIGHT
+ step_end
+
+Route32CooltrainerMText_WhatsTheHurry:
+ text "Wait up!"
+ line "What's the hurry?"
+ done
+
+Route32CooltrainerMText_AideIsWaiting:
+ text "<PLAYER>, right?"
+ line "Some guy wearing"
+
+ para "glasses was look-"
+ line "ing for you."
+
+ para "See for yourself."
+ line "He's waiting for"
+
+ para "you at the #MON"
+ line "CENTER."
+ done
+
+Route32CooltrainerMText_UnusedSproutTower:
+; unused
+ text "Have you gone to"
+ line "SPROUT TOWER?"
+
+ para "If you ever visit"
+ line "VIOLET CITY, "
+
+ para "they'll expect you"
+ line "to train there."
+
+ para "That's basic for"
+ line "trainers. Go to"
+ cont "SPROUT TOWER!"
+ done
+
+Route32CooltrainerMText_VioletGym:
+ text "Have you gone to"
+ line "the #MON GYM?"
+
+ para "You can test your"
+ line "#MON and your-"
+ cont "self there."
+
+ para "It's a rite of"
+ line "passage for all"
+ cont "trainers!"
+ done
+
+Route32CooltrainerMText_HaveThisSeed:
+ text "You have some good"
+ line "#MON there."
+
+ para "It must be from"
+ line "the training you"
+
+ para "gave them around"
+ line "VIOLET CITY."
+
+ para "The training at"
+ line "the GYM must have"
+
+ para "been especially"
+ line "helpful."
+
+ para "As a souvenir of"
+ line "VIOLET CITY, take"
+ cont "this."
+
+ para "It increases the"
+ line "power of grass-"
+ cont "type moves."
+ done
+
+Route32CooltrainerMText_ExperiencesShouldBeUseful:
+ text "Your experiences"
+ line "in VIOLET CITY"
+
+ para "should be useful"
+ line "for your journey."
+ done
+
+Text_MillionDollarSlowpokeTail:
+ text "How would you like"
+ line "to have this"
+
+ para "tasty, nutritious"
+ line "SLOWPOKETAIL?"
+
+ para "For you right now,"
+ line "just ¥1,000,000!"
+
+ para "You'll want this!"
+ done
+
+Text_ThoughtKidsWereLoaded:
+ text "Tch! I thought"
+ line "kids these days"
+ cont "were loaded…"
+ done
+
+Text_RefusedToBuySlowpokeTail:
+ text "You don't want it?"
+ line "Then scram. Shoo!"
+ done
+
+FisherJustinSeenText:
+ text "Whoa!"
+
+ para "You made me lose"
+ line "that fish!"
+ done
+
+FisherJustinBeatenText:
+ text "Sploosh!"
+ done
+
+FisherJustinAfterText:
+ text "Calm, collected…"
+ line "The essence of"
+
+ para "fishing and #-"
+ line "MON is the same."
+ done
+
+FisherRalph1SeenText:
+ text "I'm a good angler,"
+ line "but an even better"
+ cont "trainer!"
+ done
+
+FisherRalph1BeatenText:
+ text "Tch! I tried to"
+ line "rush things…"
+ done
+
+FisherRalphAfterText:
+ text "Fishing is a life-"
+ line "long passion."
+
+ para "#MON are life-"
+ line "long friends!"
+ done
+
+; --- start a segment of unused text
+
+Route32UnusedFisher1SeenText:
+ text "I keep catching"
+ line "the same #MON…"
+
+ para "Maybe a battle"
+ line "will turn things"
+ cont "around for me."
+ done
+
+Route32UnusedFisher1BeatenText:
+ text "Nothing ever goes"
+ line "right for me now…"
+ done
+
+Route32UnusedFisher1AfterText:
+ text "How come the guy"
+ line "next to me catches"
+ cont "good #MON?"
+ done
+
+Route32UnusedFisher2SeenText:
+ text "Heh, I'm on a roll"
+ line "today. How about a"
+ cont "battle, kid?"
+ done
+
+Route32UnusedFisher2BeatenText:
+ text "Oof. I wasn't"
+ line "lucky that time."
+ done
+
+Route32UnusedFisher2AfterText:
+ text "You have to have a"
+ line "good ROD if you"
+
+ para "want to catch good"
+ line "#MON."
+ done
+
+; --- end a segment of unused texts
+
+FisherHenrySeenText:
+ text "My #MON?"
+ line "Freshly caught!"
+ done
+
+FisherHenryBeatenText:
+ text "SPLASH?"
+ done
+
+FisherHenryAfterText:
+ text "Freshly caught"
+ line "#MON are no"
+
+ para "match for properly"
+ line "raised ones."
+ done
+
+YoungsterAlbertSeenText:
+ text "I haven't seen you"
+ line "around before."
+
+ para "So you think you"
+ line "are pretty tough?"
+ done
+
+YoungsterAlbertBeatenText:
+ text "You're strong!"
+ done
+
+YoungsterAlbertAfterText:
+ text "I'm going to try"
+ line "to be the best"
+ cont "with my favorites."
+
+ para "I'm not using the"
+ line "same tough #MON"
+ cont "as everyone else."
+ done
+
+YoungsterGordonSeenText:
+ text "I found some good"
+ line "#MON in the"
+ cont "grass!"
+
+ para "I think they'll do"
+ line "it for me!"
+ done
+
+YoungsterGordonBeatenText:
+ text "Darn. I thought I"
+ line "could win."
+ done
+
+YoungsterGordonAfterText:
+ text "The grass is full"
+ line "of clingy things."
+ done
+
+CamperRolandSeenText:
+ text "That glance…"
+ line "It's intriguing."
+ done
+
+CamperRolandBeatenText:
+ text "Hmmm. This is"
+ line "disappointing."
+ done
+
+CamperRolandAfterText:
+ text "If you don't want"
+ line "to battle, just"
+ cont "avoid eye contact."
+ done
+
+PicnickerLiz1SeenText:
+ text "Uh-huh. Yeah, and"
+ line "you know…"
+
+ para "Pardon? Battle?"
+ line "I'm on the phone."
+
+ para "Oh, all right. But"
+ line "make it fast."
+ done
+
+PicnickerLiz1BeatenText:
+ text "Take it easy!"
+ line "That's mean!"
+ done
+
+PicnickerLiz1AfterText:
+ text "I was having a"
+ line "nice chat too."
+ done
+
+BirdKeeperPeterSeenText:
+ text "That BADGE! It's"
+ line "from VIOLET CITY!"
+
+ para "You beat FALKNER?"
+ done
+
+BirdKeeperPeterBeatenText:
+ text "I know what my"
+ line "weaknesses are."
+ done
+
+BirdKeeperPeterAfterText:
+ text "I should train"
+ line "again at the GYM"
+ cont "in VIOLET CITY."
+ done
+
+Route32UnusedText:
+; unused
+ text "The fishermen"
+ line "yelled at me for"
+ cont "bugging them…"
+ done
+
+Text_RoarIntro:
+ text "WROOOOAR!"
+ line "PEOPLE RUN WHEN I"
+
+ para "ROAR! BUT YOU"
+ line "CAME LOOKING!"
+
+ para "THAT PLEASES ME!"
+ line "NOW TAKE THIS!"
+ done
+
+Text_RoarOutro:
+ text "WROOOAR!"
+ line "IT'S ROAR!"
+
+ para "EVEN #MON RUN"
+ line "FROM A GOOD ROAR!"
+ done
+
+MeetFriedaText:
+ text "FRIEDA: Yahoo!"
+ line "It's Friday!"
+
+ para "I'm FRIEDA of"
+ line "Friday!"
+
+ para "Nice to meet you!"
+ done
+
+FriedaGivesGiftText:
+ text "Here's a POISON"
+ line "BARB for you!"
+ done
+
+FriedaGaveGiftText:
+ text "FRIEDA: Give it to"
+ line "a #MON that has"
+ cont "poison-type moves."
+
+ para "Oh!"
+
+ para "It's wicked!"
+
+ para "You'll be shocked"
+ line "how good it makes"
+ cont "poison moves!"
+ done
+
+FriedaFridayText:
+ text "FRIEDA: Hiya! What"
+ line "day do you like?"
+
+ para "I love Friday. No"
+ line "doubt about it!"
+
+ para "Don't you think"
+ line "it's great too?"
+ done
+
+FriedaNotFridayText:
+ text "FRIEDA: Isn't it"
+ line "Friday today?"
+
+ para "It's so boring"
+ line "when it's not!"
+ done
+
+Route32SignText:
+ text "ROUTE 32"
+
+ para "VIOLET CITY -"
+ line "AZALEA TOWN"
+ done
+
+Route32RuinsSignText:
+ text "RUINS OF ALPH"
+ line "EAST ENTRANCE"
+ done
+
+Route32UnionCaveSignText:
+ text "UNION CAVE"
+ line "Ahead"
+ done
+
+Route32_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 11, 73, ROUTE_32_POKECENTER_1F, 1
+ warp_event 4, 2, ROUTE_32_RUINS_OF_ALPH_GATE, 3
+ warp_event 4, 3, ROUTE_32_RUINS_OF_ALPH_GATE, 4
+ warp_event 6, 79, UNION_CAVE_1F, 4
+
+ db 2 ; coord events
+ coord_event 18, 8, SCENE_DEFAULT, Route32CooltrainerMStopsYouScene
+ coord_event 7, 71, SCENE_ROUTE32_OFFER_SLOWPOKETAIL, Route32WannaBuyASlowpokeTailScript
+
+ db 6 ; bg events
+ bg_event 13, 5, BGEVENT_READ, Route32Sign
+ bg_event 9, 1, BGEVENT_READ, Route32RuinsSign
+ bg_event 10, 84, BGEVENT_READ, Route32UnionCaveSign
+ bg_event 12, 73, BGEVENT_READ, Route32PokecenterSign
+ bg_event 12, 67, BGEVENT_ITEM, Route32HiddenGreatBall
+ bg_event 11, 40, BGEVENT_ITEM, Route32HiddenSuperPotion
+
+ db 14 ; object events
+ object_event 8, 49, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerFisherJustin, -1
+ object_event 12, 56, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerFisherRalph1, -1
+ object_event 6, 48, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerFisherHenry, -1
+ object_event 13, 23, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerYoungsterAlbert, -1
+ object_event 4, 65, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerYoungsterGordon, -1
+ object_event 1, 56, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 4, TrainerCamperRoland, -1
+ object_event 10, 30, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerPicnickerLiz1, -1
+ object_event 19, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route32CooltrainerMScript, -1
+ object_event 11, 82, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperPeter, -1
+ object_event 7, 70, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SlowpokeTailSalesmanScript, EVENT_SLOWPOKE_WELL_ROCKETS
+ object_event 6, 53, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route32GreatBall, EVENT_ROUTE_32_GREAT_BALL
+ object_event 15, 13, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route32RoarTMGuyScript, -1
+ object_event 12, 67, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
+ object_event 3, 30, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route32Potion, EVENT_ROUTE_32_POTION
diff --git a/maps/Route33.asm b/maps/Route33.asm
new file mode 100644
index 00000000..29e7d497
--- /dev/null
+++ b/maps/Route33.asm
@@ -0,0 +1,136 @@
+ const_def 2 ; object constants
+ const ROUTE33_POKEFAN_M
+ const ROUTE33_LASS
+ const ROUTE33_FRUIT_TREE
+
+Route33_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerHikerAnthony:
+ trainer HIKER, ANTHONY2, EVENT_BEAT_HIKER_ANTHONY, HikerAnthony2SeenText, HikerAnthony2BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_ANTHONY_READY_FOR_REMATCH
+ iftrue .Rematch
+ checkcellnum PHONE_HIKER_ANTHONY
+ iftrue .NumberAccepted
+ checkevent EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgain
+ writetext HikerAnthony2AfterText
+ buttonsound
+ setevent EVENT_ANTHONY_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber1
+ jump .AskForPhoneNumber
+
+.AskAgain:
+ scall .AskNumber2
+.AskForPhoneNumber:
+ askforphonenumber PHONE_HIKER_ANTHONY
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext HIKER, ANTHONY2, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.Rematch:
+ scall .RematchStd
+ winlosstext HikerAnthony2BeatenText, 0
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_OLIVINE
+ iftrue .LoadFight1
+ loadtrainer HIKER, ANTHONY2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ANTHONY_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer HIKER, ANTHONY1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ANTHONY_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer HIKER, ANTHONY3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ANTHONY_READY_FOR_REMATCH
+ end
+
+.AskNumber1:
+ jumpstd asknumber1m
+ end
+
+.AskNumber2:
+ jumpstd asknumber2m
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberm
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedm
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedm
+ end
+
+.PhoneFull:
+ jumpstd phonefullm
+ end
+
+.RematchStd:
+ jumpstd rematchm
+ end
+
+Route33Sign:
+ jumptext Route33SignText
+
+Route33FruitTree:
+ fruittree FRUITTREE_ROUTE_33
+
+HikerAnthony2SeenText:
+ text "I came through the"
+ line "tunnel, but I"
+
+ para "still have plenty"
+ line "of energy left."
+ done
+
+HikerAnthony2BeatenText:
+ text "Whoa, boy! You've"
+ line "got more zip."
+ done
+
+HikerAnthony2AfterText:
+ text "We HIKERS are at"
+ line "our best in the"
+ cont "mountains."
+ done
+
+Route33SignText:
+ text "ROUTE 33"
+ done
+
+Route33_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 11, 9, UNION_CAVE_1F, 3
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 11, 11, BGEVENT_READ, Route33Sign
+
+ db 2 ; object events
+ object_event 6, 13, SPRITE_POKEFAN_M, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerHikerAnthony, -1
+ object_event 14, 16, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route33FruitTree, -1
diff --git a/maps/Route34.asm b/maps/Route34.asm
new file mode 100644
index 00000000..be42a190
--- /dev/null
+++ b/maps/Route34.asm
@@ -0,0 +1,673 @@
+ const_def 2 ; object constants
+ const ROUTE34_YOUNGSTER1
+ const ROUTE34_YOUNGSTER2
+ const ROUTE34_YOUNGSTER3
+ const ROUTE34_LASS
+ const ROUTE34_OFFICER
+ const ROUTE34_POKEFAN_M
+ const ROUTE34_GRAMPS
+ const ROUTE34_DAY_CARE_MON_1
+ const ROUTE34_DAY_CARE_MON_2
+ const ROUTE34_COOLTRAINER_F1
+ const ROUTE34_COOLTRAINER_F2
+ const ROUTE34_COOLTRAINER_F3
+ const ROUTE34_POKE_BALL
+
+Route34_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .EggCheckCallback
+
+.EggCheckCallback:
+ checkflag ENGINE_DAY_CARE_MAN_HAS_EGG
+ iftrue .PutDayCareManOutside
+ clearevent EVENT_DAY_CARE_MAN_IN_DAY_CARE
+ setevent EVENT_DAY_CARE_MAN_ON_ROUTE_34
+ jump .CheckMon1
+
+.PutDayCareManOutside:
+ setevent EVENT_DAY_CARE_MAN_IN_DAY_CARE
+ clearevent EVENT_DAY_CARE_MAN_ON_ROUTE_34
+ jump .CheckMon1
+
+.CheckMon1:
+ checkflag ENGINE_DAY_CARE_MAN_HAS_MON
+ iffalse .HideMon1
+ clearevent EVENT_DAY_CARE_MON_1
+ jump .CheckMon2
+
+.HideMon1:
+ setevent EVENT_DAY_CARE_MON_1
+ jump .CheckMon2
+
+.CheckMon2:
+ checkflag ENGINE_DAY_CARE_LADY_HAS_MON
+ iffalse .HideMon2
+ clearevent EVENT_DAY_CARE_MON_2
+ return
+
+.HideMon2:
+ setevent EVENT_DAY_CARE_MON_2
+ return
+
+DayCareManScript_Outside:
+ faceplayer
+ opentext
+ special DayCareManOutside
+ waitbutton
+ closetext
+ ifequal TRUE, .end_fail
+ clearflag ENGINE_DAY_CARE_MAN_HAS_EGG
+ checkcode VAR_FACING
+ ifequal RIGHT, .walk_around_player
+ applymovement ROUTE34_GRAMPS, Route34MovementData_DayCareManWalksBackInside
+ playsound SFX_ENTER_DOOR
+ disappear ROUTE34_GRAMPS
+.end_fail
+ end
+
+.walk_around_player
+ applymovement ROUTE34_GRAMPS, Route34MovementData_DayCareManWalksBackInside_WalkAroundPlayer
+ playsound SFX_ENTER_DOOR
+ disappear ROUTE34_GRAMPS
+ end
+
+DayCareMon1Script:
+ opentext
+ special DayCareMon1
+ closetext
+ end
+
+DayCareMon2Script:
+ opentext
+ special DayCareMon2
+ closetext
+ end
+
+TrainerCamperTodd1:
+ trainer CAMPER, TODD1, EVENT_BEAT_CAMPER_TODD, CamperTodd1SeenText, CamperTodd1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_TODD_READY_FOR_REMATCH
+ iftrue .Rematch
+ checkcellnum PHONE_CAMPER_TODD
+ iftrue .NumberAccepted
+ checkevent EVENT_TODD_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgain
+ writetext CamperTodd1AfterText
+ buttonsound
+ setevent EVENT_TODD_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber
+ jump .FinishAsk
+
+.AskAgain:
+ scall .AskNumber2
+.FinishAsk:
+ askforphonenumber PHONE_CAMPER_TODD
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext CAMPER, TODD1, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.Rematch:
+ scall .RematchStd
+ winlosstext CamperTodd1BeatenText, 0
+ checkflag ENGINE_FLYPOINT_BLACKTHORN
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_CIANWOOD
+ iftrue .LoadFight1
+ loadtrainer CAMPER, TODD1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_TODD_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer CAMPER, TODD2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_TODD_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer CAMPER, TODD3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_TODD_READY_FOR_REMATCH
+ end
+
+.AskNumber:
+ jumpstd asknumber1m
+ end
+
+.AskNumber2:
+ jumpstd asknumber2m
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberm
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedm
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedm
+ end
+
+.PhoneFull:
+ jumpstd phonefullm
+ end
+
+.RematchStd:
+ jumpstd rematchm
+ end
+
+TrainerPicnickerGina1:
+ trainer PICNICKER, GINA1, EVENT_BEAT_PICNICKER_GINA, PicnickerGina1SeenText, PicnickerGina1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_GINA_READY_FOR_REMATCH
+ iftrue .Rematch
+ checkcellnum PHONE_PICNICKER_GINA
+ iftrue .NumberAccepted
+ checkevent EVENT_GINA_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgain
+ writetext PicnickerGina1AfterText
+ buttonsound
+ setevent EVENT_GINA_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber1
+ jump .FinishAsk
+
+.AskAgain:
+ scall .AskNumber2
+.FinishAsk:
+ askforphonenumber PHONE_PICNICKER_GINA
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext PICNICKER, GINA1, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.Rematch:
+ scall .RematchStd
+ winlosstext PicnickerGina1BeatenText, 0
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_MAHOGANY
+ iftrue .LoadFight1
+ loadtrainer PICNICKER, GINA1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_GINA_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer PICNICKER, GINA2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_GINA_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer PICNICKER, GINA3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_GINA_READY_FOR_REMATCH
+ end
+
+.AskNumber1:
+ jumpstd asknumber1f
+ end
+
+.AskNumber2:
+ jumpstd asknumber2f
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberf
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedf
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedf
+ end
+
+.PhoneFull:
+ jumpstd phonefullf
+ end
+
+.RematchStd:
+ jumpstd rematchf
+ end
+
+OfficerKeithScript:
+ faceplayer
+ opentext
+ checktime NITE
+ iffalse .NoFight
+ checkevent EVENT_BEAT_OFFICER_KEITH
+ iftrue .AfterScript
+ playmusic MUSIC_OFFICER_ENCOUNTER
+ writetext OfficerKeithSeenText
+ waitbutton
+ closetext
+ winlosstext OfficerKeithWinText, 0
+ loadtrainer OFFICER, KEITH
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_OFFICER_KEITH
+ closetext
+ end
+
+.AfterScript:
+ writetext OfficerKeithAfterText
+ waitbutton
+ closetext
+ end
+
+.NoFight:
+ writetext OfficerKeithDaytimeText
+ waitbutton
+ closetext
+ end
+
+TrainerYoungsterSamuel:
+ trainer YOUNGSTER, SAMUEL, EVENT_BEAT_YOUNGSTER_SAMUEL, YoungsterSamuelSeenText, YoungsterSamuelBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext YoungsterSamuelAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerYoungsterIan:
+ trainer YOUNGSTER, IAN, EVENT_BEAT_YOUNGSTER_IAN, YoungsterIanSeenText, YoungsterIanBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext YoungsterIanAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerPokefanmBrandon:
+ trainer POKEFANM, BRANDON, EVENT_BEAT_POKEFANM_BRANDON, PokefanmBrandonSeenText, PokefanmBrandonBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext PokefanmBrandonAfterText
+ waitbutton
+ closetext
+ end
+
+TrainerCooltrainerfIrene:
+ trainer COOLTRAINERF, IRENE, EVENT_BEAT_COOLTRAINERF_IRENE, CooltrainerfIreneSeenText, CooltrainerfIreneBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
+ iftrue .GotSoftSand
+ writetext CooltrainerfIreneAfterText1
+ waitbutton
+ closetext
+ end
+
+.GotSoftSand:
+ writetext CooltrainerfIreneAfterText2
+ waitbutton
+ closetext
+ end
+
+TrainerCooltrainerfJenn:
+ trainer COOLTRAINERF, JENN, EVENT_BEAT_COOLTRAINERF_JENN, CooltrainerfJennSeenText, CooltrainerfJennBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
+ iftrue .GotSoftSand
+ writetext CooltrainerfJennAfterText1
+ waitbutton
+ closetext
+ end
+
+.GotSoftSand:
+ writetext CooltrainerfJennAfterText2
+ waitbutton
+ closetext
+ end
+
+TrainerCooltrainerfKate:
+ trainer COOLTRAINERF, KATE, EVENT_BEAT_COOLTRAINERF_KATE, CooltrainerfKateSeenText, CooltrainerfKateBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_GOT_SOFT_SAND_FROM_KATE
+ iftrue .GotSoftSand
+ writetext CooltrainerfKateOfferSoftSandText
+ buttonsound
+ verbosegiveitem SOFT_SAND
+ iffalse .BagFull
+ setevent EVENT_GOT_SOFT_SAND_FROM_KATE
+.GotSoftSand:
+ writetext CooltrainerfKateAfterText
+ waitbutton
+.BagFull:
+ closetext
+ end
+
+Route34IlexForestSign:
+; unused
+ jumptext Route34IlexForestSignText
+
+Route34Sign:
+ jumptext Route34SignText
+
+Route34TrainerTips:
+ jumptext Route34TrainerTipsText
+
+DayCareSign:
+ jumptext DayCareSignText
+
+Route34HiddenRareCandy:
+ hiddenitem RARE_CANDY, EVENT_ROUTE_34_HIDDEN_RARE_CANDY
+
+Route34HiddenSuperPotion:
+ hiddenitem SUPER_POTION, EVENT_ROUTE_34_HIDDEN_SUPER_POTION
+
+Route34MovementData_DayCareManWalksBackInside:
+ slow_step LEFT
+ slow_step LEFT
+ slow_step UP
+ step_end
+
+Route34MovementData_DayCareManWalksBackInside_WalkAroundPlayer:
+ slow_step DOWN
+ slow_step LEFT
+ slow_step LEFT
+ slow_step UP
+ slow_step UP
+ step_end
+
+YoungsterSamuelSeenText:
+ text "This is where I do"
+ line "my training!"
+ done
+
+YoungsterSamuelBeatenText:
+ text "What happened?"
+ done
+
+YoungsterSamuelAfterText:
+ text "I'm going to train"
+ line "even harder."
+
+ para "After all, I'm"
+ line "trying to become"
+ cont "a GYM LEADER."
+ done
+
+YoungsterIanSeenText:
+ text "I'm the best in my"
+ line "class at #MON."
+ done
+
+YoungsterIanBeatenText:
+ text "No! There are bet-"
+ line "ter trainers…"
+ done
+
+YoungsterIanAfterText:
+ text "I'm trying hard so"
+ line "I can be the star"
+ cont "in my class."
+ done
+
+CamperTodd1SeenText:
+ text "I'm confident in"
+ line "my ability to"
+ cont "raise #MON."
+
+ para "Want to see?"
+ done
+
+CamperTodd1BeatenText:
+ text "I didn't do a good"
+ line "enough job?"
+ done
+
+CamperTodd1AfterText:
+ text "Maybe I should"
+ line "leave one in DAY-"
+ cont "CARE."
+ cont "What should I do?"
+ done
+
+PicnickerGina1SeenText:
+ text "Are you a trainer?"
+
+ para "Let's have a"
+ line "practice battle."
+ done
+
+PicnickerGina1BeatenText:
+ text "Oh, no! I just"
+ line "can't win…"
+ done
+
+PicnickerGina1AfterText:
+ text "You're too strong"
+ line "to be a practice"
+ cont "partner."
+ done
+
+OfficerKeithSeenText:
+ text "Who goes there?"
+ line "What are you up"
+ cont "to?"
+ done
+
+OfficerKeithWinText:
+ text "You're a tough"
+ line "little guy."
+ done
+
+OfficerKeithAfterText:
+ text "Yep, I see nothing"
+ line "wrong today. You"
+
+ para "be good and stay"
+ line "out of trouble."
+ done
+
+OfficerKeithDaytimeText:
+ text "I'm on patrol for"
+ line "suspicious indi-"
+ cont "viduals."
+ done
+
+PokefanmBrandonSeenText:
+ text "I just got my"
+ line "#MON back from"
+ cont "DAY-CARE."
+
+ para "Let's see how much"
+ line "stronger it got!"
+ done
+
+PokefanmBrandonBeatenText:
+ text "Why does it end"
+ line "this way?"
+ done
+
+PokefanmBrandonAfterText:
+ text "My #MON knew"
+ line "moves I didn't"
+ cont "know it had."
+
+ para "That confounded me"
+ line "to no end!"
+ done
+
+CooltrainerfIreneSeenText:
+ text "IRENE: Kyaaah!"
+ line "A boy found us!"
+ done
+
+CooltrainerfIreneBeatenText:
+ text "IRENE: Ohhhh!"
+ line "He's too strong!"
+ done
+
+CooltrainerfIreneAfterText1:
+ text "IRENE: My sister"
+ line "KATE will get you"
+ cont "for this!"
+ done
+
+CooltrainerfIreneAfterText2:
+ text "IRENE: Isn't this"
+ line "beach great?"
+
+ para "It's our secret"
+ line "little getaway!"
+ done
+
+CooltrainerfJennSeenText:
+ text "JENN: You can't"
+ line "beat IRENE and go"
+ cont "unpunished!"
+ done
+
+CooltrainerfJennBeatenText:
+ text "JENN: So sorry,"
+ line "IRENE! Sis!"
+ done
+
+CooltrainerfJennAfterText1:
+ text "JENN: Don't get"
+ line "cocky! My sister"
+ cont "KATE is tough!"
+ done
+
+CooltrainerfJennAfterText2:
+ text "JENN: Sunlight"
+ line "makes your body"
+ cont "stronger."
+ done
+
+CooltrainerfKateSeenText:
+ text "KATE: You sure"
+ line "were mean to my"
+ cont "little sisters!"
+ done
+
+CooltrainerfKateBeatenText:
+ text "KATE: No! I can't"
+ line "believe I lost."
+ done
+
+CooltrainerfKateOfferSoftSandText:
+ text "KATE: You're too"
+ line "strong. I didn't"
+ cont "stand a chance."
+
+ para "Here. You deserve"
+ line "this."
+ done
+
+CooltrainerfKateAfterText:
+ text "KATE: I'm sorry we"
+ line "jumped you."
+
+ para "We never expected"
+ line "anyone to find us"
+
+ para "here. You sure"
+ line "startled us."
+ done
+
+Route34IlexForestSignText:
+; unused
+ text "ILEX FOREST"
+ line "Through the Gate"
+ done
+
+Route34SignText:
+ text "ROUTE 34"
+
+ para "GOLDENROD CITY -"
+ line "AZALEA TOWN"
+
+ para "ILEX FOREST"
+ line "Somewhere Between"
+ done
+
+Route34TrainerTipsText:
+ text "TRAINER TIPS"
+
+ para "BERRY trees grow"
+ line "new BERRIES"
+ cont "everyday."
+
+ para "Make a note of"
+ line "which trees bear"
+ cont "which BERRIES."
+ done
+
+DayCareSignText:
+ text "DAY-CARE"
+
+ para "Let Us Raise Your"
+ line "#MON for You!"
+ done
+
+Route34_MapEvents:
+ db 0, 0 ; filler
+
+ db 5 ; warp events
+ warp_event 13, 37, ROUTE_34_ILEX_FOREST_GATE, 1
+ warp_event 14, 37, ROUTE_34_ILEX_FOREST_GATE, 2
+ warp_event 11, 14, DAY_CARE, 1
+ warp_event 11, 15, DAY_CARE, 2
+ warp_event 13, 15, DAY_CARE, 3
+
+ db 0 ; coord events
+
+ db 5 ; bg events
+ bg_event 12, 6, BGEVENT_READ, Route34Sign
+ bg_event 13, 33, BGEVENT_READ, Route34TrainerTips
+ bg_event 10, 13, BGEVENT_READ, DayCareSign
+ bg_event 8, 32, BGEVENT_ITEM, Route34HiddenRareCandy
+ bg_event 17, 19, BGEVENT_ITEM, Route34HiddenSuperPotion
+
+ db 12 ; object events
+ object_event 13, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 5, TrainerCamperTodd1, -1
+ object_event 15, 33, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerYoungsterSamuel, -1
+ object_event 17, 22, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerYoungsterIan, -1
+ object_event 10, 26, SPRITE_LASS, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerPicnickerGina1, -1
+ object_event 9, 11, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, OfficerKeithScript, -1
+ object_event 19, 28, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerPokefanmBrandon, -1
+ object_event 15, 16, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DayCareManScript_Outside, EVENT_DAY_CARE_MAN_ON_ROUTE_34
+ object_event 14, 18, SPRITE_DAY_CARE_MON_1, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DayCareMon1Script, EVENT_DAY_CARE_MON_1
+ object_event 17, 19, SPRITE_DAY_CARE_MON_2, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DayCareMon2Script, EVENT_DAY_CARE_MON_2
+ object_event 11, 48, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 5, TrainerCooltrainerfIrene, -1
+ object_event 3, 48, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainerfJenn, -1
+ object_event 6, 51, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerCooltrainerfKate, -1
diff --git a/maps/Route35.asm b/maps/Route35.asm
new file mode 100644
index 00000000..fc2c80fa
--- /dev/null
+++ b/maps/Route35.asm
@@ -0,0 +1,466 @@
+ const_def 2 ; object constants
+ const ROUTE35_YOUNGSTER1
+ const ROUTE35_YOUNGSTER2
+ const ROUTE35_LASS1
+ const ROUTE35_LASS2
+ const ROUTE35_YOUNGSTER3
+ const ROUTE35_FISHER
+ const ROUTE35_BUG_CATCHER
+ const ROUTE35_SUPER_NERD
+ const ROUTE35_OFFICER
+ const ROUTE35_FRUIT_TREE
+ const ROUTE35_POKE_BALL
+
+Route35_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TrainerBirdKeeperBryan:
+ trainer BIRD_KEEPER, BRYAN, EVENT_BEAT_BIRD_KEEPER_BRYAN, BirdKeeperBryanSeenText, BirdKeeperBryanBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext BirdKeeperBryanAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerJugglerIrwin:
+ trainer JUGGLER, IRWIN1, EVENT_BEAT_JUGGLER_IRWIN, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_IRWIN_READY_FOR_REMATCH
+ iftrue .WantsBattle
+ checkcellnum PHONE_JUGGLER_IRWIN
+ iftrue Route35NumberAcceptedM
+ checkevent EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskedAlready
+ writetext JugglerIrwinAfterBattleText
+ buttonsound
+ setevent EVENT_IRWIN_ASKED_FOR_PHONE_NUMBER
+ scall Route35AskNumber1M
+ jump .AskForNumber
+
+.AskedAlready:
+ scall Route35AskNumber2M
+.AskForNumber:
+ askforphonenumber PHONE_JUGGLER_IRWIN
+ ifequal PHONE_CONTACTS_FULL, Route35PhoneFullM
+ ifequal PHONE_CONTACT_REFUSED, Route35NumberDeclinedM
+ trainertotext JUGGLER, IRWIN1, MEM_BUFFER_0
+ scall Route35RegisteredNumberM
+ jump Route35NumberAcceptedM
+
+.WantsBattle:
+ scall Route35RematchM
+ winlosstext JugglerIrwin1BeatenText, 0
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_CIANWOOD
+ iftrue .LoadFight1
+ loadtrainer JUGGLER, IRWIN1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_IRWIN_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer JUGGLER, IRWIN2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_IRWIN_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer JUGGLER, IRWIN3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_IRWIN_READY_FOR_REMATCH
+ end
+
+Route35AskNumber1M:
+ jumpstd asknumber1m
+ end
+
+Route35AskNumber2M:
+ jumpstd asknumber2m
+ end
+
+Route35RegisteredNumberM:
+ jumpstd registerednumberm
+ end
+
+Route35NumberAcceptedM:
+ jumpstd numberacceptedm
+ end
+
+Route35NumberDeclinedM:
+ jumpstd numberdeclinedm
+ end
+
+Route35PhoneFullM:
+ jumpstd phonefullm
+ end
+
+Route35RematchM:
+ jumpstd rematchm
+ end
+
+TrainerCamperIvan:
+ trainer CAMPER, IVAN, EVENT_BEAT_CAMPER_IVAN, CamperIvanSeenText, CamperIvanBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext CamperIvanAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerCamperElliot:
+ trainer CAMPER, ELLIOT, EVENT_BEAT_CAMPER_ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext CamperElliotAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerPicnickerBrooke:
+ trainer PICNICKER, BROOKE, EVENT_BEAT_PICNICKER_BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext PicnickerBrookeAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerPicnickerKim:
+ trainer PICNICKER, KIM, EVENT_BEAT_PICNICKER_KIM, PicnickerKimSeenText, PicnickerKimBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext PicnickerKimAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerBugCatcherArnie:
+ trainer BUG_CATCHER, ARNIE1, EVENT_BEAT_BUG_CATCHER_ARNIE, BugCatcherArnieSeenText, BugCatcherArnieBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_ARNIE_READY_FOR_REMATCH
+ iftrue .WantsBattle
+ checkcellnum PHONE_BUG_CATCHER_ARNIE
+ iftrue Route35NumberAcceptedM
+ checkevent EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskedAlready
+ writetext BugCatcherArnieAfterBattleText
+ buttonsound
+ setevent EVENT_ARNIE_ASKED_FOR_PHONE_NUMBER
+ scall Route35AskNumber1M
+ jump .AskForNumber
+
+.AskedAlready:
+ scall Route35AskNumber2M
+.AskForNumber:
+ askforphonenumber PHONE_BUG_CATCHER_ARNIE
+ ifequal PHONE_CONTACTS_FULL, Route35PhoneFullM
+ ifequal PHONE_CONTACT_REFUSED, Route35NumberDeclinedM
+ trainertotext BUG_CATCHER, ARNIE1, MEM_BUFFER_0
+ scall Route35RegisteredNumberM
+ jump Route35NumberAcceptedM
+
+.WantsBattle:
+ scall Route35RematchM
+ winlosstext BugCatcherArnieBeatenText, 0
+ checkflag ENGINE_FLYPOINT_BLACKTHORN
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE
+ iftrue .LoadFight1
+ loadtrainer BUG_CATCHER, ARNIE1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ARNIE_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer BUG_CATCHER, ARNIE2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ARNIE_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer BUG_CATCHER, ARNIE3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ARNIE_READY_FOR_REMATCH
+ end
+
+TrainerFirebreatherWalt:
+ trainer FIREBREATHER, WALT, EVENT_BEAT_FIREBREATHER_WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext FirebreatherWaltAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerOfficerDirk:
+ faceplayer
+ opentext
+ checktime NITE
+ iffalse .NotNight
+ checkevent EVENT_BEAT_OFFICER_DIRK
+ iftrue .AfterBattle
+ playmusic MUSIC_OFFICER_ENCOUNTER
+ writetext OfficerDirkSeenText
+ waitbutton
+ closetext
+ winlosstext OfficerDirkBeatenText, 0
+ loadtrainer OFFICER, DIRK
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_OFFICER_DIRK
+ closetext
+ end
+
+.AfterBattle:
+ writetext OfficerDirkAfterBattleText
+ waitbutton
+ closetext
+ end
+
+.NotNight:
+ writetext OfficerDirkPrettyToughText
+ waitbutton
+ closetext
+ end
+
+Route35Sign:
+ jumptext Route35SignText
+
+Route35TMRollout:
+ itemball TM_ROLLOUT
+
+Route35FruitTree:
+ fruittree FRUITTREE_ROUTE_35
+
+CamperIvanSeenText:
+ text "I've been getting"
+ line "#MON data off"
+
+ para "my radio. I think"
+ line "I'm good."
+ done
+
+CamperIvanBeatenText:
+ text "I give!"
+ done
+
+CamperIvanAfterBattleText:
+ text "Music on the radio"
+ line "changes the moods"
+ cont "of wild #MON."
+ done
+
+CamperElliotSeenText:
+ text "I'm gonna show my"
+ line "girlfriend I'm hot"
+ cont "stuff!"
+ done
+
+CamperElliotBeatenText:
+ text "I wish you would"
+ line "have lost for me…"
+ done
+
+CamperElliotAfterBattleText:
+ text "I was humiliated"
+ line "in front of my"
+ cont "girlfriend…"
+ done
+
+PicnickerBrookeSeenText:
+ text "My boyfriend's"
+ line "weak, so I can't"
+ cont "rely on him."
+ done
+
+PicnickerBrookeBeatenText:
+ text "Oh, my! You're so"
+ line "strong!"
+ done
+
+PicnickerBrookeAfterBattleText:
+ text "I can count on my"
+ line "#MON more than"
+ cont "my boyfriend."
+ done
+
+PicnickerKimSeenText:
+ text "Are you going to"
+ line "the GYM? Me too!"
+ done
+
+PicnickerKimBeatenText:
+ text "Oh. I couldn't"
+ line "win…"
+ done
+
+PicnickerKimAfterBattleText:
+ text "The GYM BADGES are"
+ line "pretty. I collect"
+ cont "them."
+ done
+
+BirdKeeperBryanSeenText:
+ text "What kinds of #"
+ line "BALL do you use?"
+ done
+
+BirdKeeperBryanBeatenText:
+ text "Yikes! Not fast"
+ line "enough!"
+ done
+
+BirdKeeperBryanAfterBattleText:
+ text "Some #MON flee"
+ line "right away."
+
+ para "Try catching them"
+ line "with KURT's FAST"
+ cont "BALL."
+
+ para "Whenever I find a"
+ line "WHT APRICORN, I"
+ cont "take it to KURT."
+
+ para "He turns it into a"
+ line "custom # BALL."
+ done
+
+JugglerIrwin1SeenText:
+ text "Behold my graceful"
+ line "BALL dexterity!"
+ done
+
+JugglerIrwin1BeatenText:
+ text "Whew! That was a"
+ line "jolt!"
+ done
+
+JugglerIrwinAfterBattleText:
+ text "I was going to"
+ line "dazzle you with my"
+ cont "prize #MON."
+
+ para "But your prowess"
+ line "electrified me!"
+ done
+
+BugCatcherArnieSeenText:
+ text "I'll go anywhere"
+ line "if bug #MON"
+ cont "appear there."
+ done
+
+BugCatcherArnieBeatenText:
+ text "I see. So you"
+ line "battle that way."
+ done
+
+BugCatcherArnieAfterBattleText:
+ text "My VENONAT won me"
+ line "the Bug-Catching"
+
+ para "Contest at the"
+ line "NATIONAL PARK."
+ done
+
+FirebreatherWaltSeenText:
+ text "I'm practicing my"
+ line "fire breathing."
+ done
+
+FirebreatherWaltBeatenText:
+ text "Ow! I scorched the"
+ line "tip of my nose!"
+ done
+
+FirebreatherWaltAfterBattleText:
+ text "The #MON March"
+ line "on the radio lures"
+ cont "wild #MON."
+ done
+
+OfficerDirkSeenText:
+ text "Danger lurks in"
+ line "the night!"
+ done
+
+OfficerDirkBeatenText:
+ text "Whoops!"
+ done
+
+OfficerDirkAfterBattleText:
+ text "You know, night-"
+ line "time is fun in its"
+ cont "own ways."
+
+ para "But don't overdo"
+ line "it, OK?"
+ done
+
+OfficerDirkPrettyToughText:
+ text "Your #MON look"
+ line "pretty tough."
+
+ para "You could go any-"
+ line "where safely."
+ done
+
+Route35SignText:
+ text "ROUTE 35"
+ done
+
+Route35_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 9, 33, ROUTE_35_GOLDENROD_GATE, 1
+ warp_event 10, 33, ROUTE_35_GOLDENROD_GATE, 2
+ warp_event 3, 5, ROUTE_35_NATIONAL_PARK_GATE, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 1, 7, BGEVENT_READ, Route35Sign
+ bg_event 11, 31, BGEVENT_READ, Route35Sign
+
+ db 11 ; object events
+ object_event 3, 19, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 4, TrainerCamperIvan, -1
+ object_event 8, 20, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerCamperElliot, -1
+ object_event 7, 20, SPRITE_LASS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerPicnickerBrooke, -1
+ object_event 11, 24, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerPicnickerKim, -1
+ object_event 14, 28, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 0, TrainerBirdKeeperBryan, -1
+ object_event 2, 10, SPRITE_FISHER, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerFirebreatherWalt, -1
+ object_event 16, 7, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_DOWN, 2, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBugCatcherArnie, -1
+ object_event 5, 10, SPRITE_SUPER_NERD, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerJugglerIrwin, -1
+ object_event 5, 6, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, TrainerOfficerDirk, -1
+ object_event 2, 25, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route35FruitTree, -1
+ object_event 13, 16, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route35TMRollout, EVENT_ROUTE_35_TM_ROLLOUT
diff --git a/maps/Route36.asm b/maps/Route36.asm
new file mode 100644
index 00000000..992107e4
--- /dev/null
+++ b/maps/Route36.asm
@@ -0,0 +1,490 @@
+ const_def 2 ; object constants
+ const ROUTE36_YOUNGSTER1
+ const ROUTE36_YOUNGSTER2
+ const ROUTE36_WEIRD_TREE
+ const ROUTE36_LASS1
+ const ROUTE36_FISHER
+ const ROUTE36_FRUIT_TREE
+ const ROUTE36_ARTHUR
+
+Route36_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_OBJECTS, .ArthurCallback
+
+.ArthurCallback:
+ checkcode VAR_WEEKDAY
+ ifequal THURSDAY, .ArthurAppears
+ disappear ROUTE36_ARTHUR
+ return
+
+.ArthurAppears:
+ appear ROUTE36_ARTHUR
+ return
+
+SudowoodoScript:
+ checkitem SQUIRTBOTTLE
+ iftrue .Fight
+
+ waitsfx
+ playsound SFX_SANDSTORM
+ applymovement ROUTE36_WEIRD_TREE, SudowoodoShakeMovement
+ end
+
+.Fight:
+ opentext
+ writetext UseSquirtbottleText
+ yesorno
+ iffalse DidntUseSquirtbottleScript
+ closetext
+WateredWeirdTreeScript:: ; export (for when you use Squirtbottle from pack)
+ opentext
+ writetext UsedSquirtbottleText
+ waitbutton
+ closetext
+ waitsfx
+ playsound SFX_SANDSTORM
+ applymovement ROUTE36_WEIRD_TREE, SudowoodoShakeMovement
+ opentext
+ writetext SudowoodoAttackedText
+ waitbutton
+ closetext
+ loadwildmon SUDOWOODO, 20
+ startbattle
+ setevent EVENT_FOUGHT_SUDOWOODO
+ ifequal $2, DidntCatchSudowoodo
+ disappear ROUTE36_WEIRD_TREE
+ variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
+ reloadmapafterbattle
+ end
+
+DidntUseSquirtbottleScript:
+ closetext
+ end
+
+DidntCatchSudowoodo:
+ reloadmapafterbattle
+ applymovement ROUTE36_WEIRD_TREE, WeirdTreeMovement_Flee
+ disappear ROUTE36_WEIRD_TREE
+ variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
+ special LoadUsedSpritesGFX
+ end
+
+Route36RockSmashGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_TM08_ROCK_SMASH
+ iftrue .AlreadyGotRockSmash
+ checkevent EVENT_FOUGHT_SUDOWOODO
+ iftrue .ClearedSudowoodo
+ writetext RockSmashGuyText1
+ waitbutton
+ closetext
+ end
+
+.ClearedSudowoodo:
+ writetext RockSmashGuyText2
+ buttonsound
+ verbosegiveitem TM_ROCK_SMASH
+ iffalse .NoRoomForTM
+ setevent EVENT_GOT_TM08_ROCK_SMASH
+.AlreadyGotRockSmash:
+ writetext RockSmashGuyText3
+ waitbutton
+.NoRoomForTM:
+ closetext
+ end
+
+Route36LassScript:
+ faceplayer
+ opentext
+ checkevent EVENT_FOUGHT_SUDOWOODO
+ iftrue .ClearedSudowoodo
+ writetext Route36LassText
+ waitbutton
+ closetext
+ end
+
+.ClearedSudowoodo:
+ writetext Route36LassText_ClearedSudowoodo
+ waitbutton
+ closetext
+ end
+
+TrainerSchoolboyAlan1:
+ trainer SCHOOLBOY, ALAN1, EVENT_BEAT_SCHOOLBOY_ALAN, SchoolboyAlan1SeenText, SchoolboyAlan1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ checkevent EVENT_ALAN_READY_FOR_REMATCH
+ iftrue .ChooseRematch
+ checkcellnum PHONE_SCHOOLBOY_ALAN
+ iftrue .NumberAccepted
+ checkevent EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
+ iftrue .AskAgainForPhoneNumber
+ writetext UnknownText_0x1947aa
+ buttonsound
+ setevent EVENT_ALAN_ASKED_FOR_PHONE_NUMBER
+ scall .AskNumber1
+ jump .ContinueAskForPhoneNumber
+
+.AskAgainForPhoneNumber:
+ scall .AskNumber2
+.ContinueAskForPhoneNumber:
+ askforphonenumber PHONE_SCHOOLBOY_ALAN
+ ifequal PHONE_CONTACTS_FULL, .PhoneFull
+ ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
+ trainertotext SCHOOLBOY, ALAN1, MEM_BUFFER_0
+ scall .RegisteredNumber
+ jump .NumberAccepted
+
+.ChooseRematch:
+ scall .Rematch
+ winlosstext SchoolboyAlan1BeatenText, 0
+ checkflag ENGINE_FLYPOINT_BLACKTHORN
+ iftrue .LoadFight2
+ checkflag ENGINE_FLYPOINT_OLIVINE
+ iftrue .LoadFight1
+ loadtrainer SCHOOLBOY, ALAN1
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ALAN_READY_FOR_REMATCH
+ end
+
+.LoadFight1:
+ loadtrainer SCHOOLBOY, ALAN2
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ALAN_READY_FOR_REMATCH
+ end
+
+.LoadFight2:
+ loadtrainer SCHOOLBOY, ALAN3
+ startbattle
+ reloadmapafterbattle
+ clearevent EVENT_ALAN_READY_FOR_REMATCH
+ end
+
+.AskNumber1:
+ jumpstd asknumber1m
+ end
+
+.AskNumber2:
+ jumpstd asknumber2m
+ end
+
+.RegisteredNumber:
+ jumpstd registerednumberm
+ end
+
+.NumberAccepted:
+ jumpstd numberacceptedm
+ end
+
+.NumberDeclined:
+ jumpstd numberdeclinedm
+ end
+
+.PhoneFull:
+ jumpstd phonefullm
+ end
+
+.Rematch:
+ jumpstd rematchm
+ end
+
+TrainerPsychicMark:
+ trainer PSYCHIC_T, MARK, EVENT_BEAT_PSYCHIC_MARK, PsychicMarkSeenText, PsychicMarkBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext PsychicMarkAfterBattleText
+ waitbutton
+ closetext
+ end
+
+ArthurScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_HARD_STONE_FROM_ARTHUR
+ iftrue .AlreadyGotStone
+ checkcode VAR_WEEKDAY
+ ifnotequal THURSDAY, ArthurNotThursdayScript
+ checkevent EVENT_MET_ARTHUR_OF_THURSDAY
+ iftrue .MetArthur
+ writetext MeetArthurText
+ buttonsound
+ setevent EVENT_MET_ARTHUR_OF_THURSDAY
+.MetArthur:
+ writetext ArthurGivesGiftText
+ buttonsound
+ verbosegiveitem HARD_STONE
+ iffalse .BagFull
+ setevent EVENT_GOT_HARD_STONE_FROM_ARTHUR
+ writetext ArthurGaveGiftText
+ waitbutton
+ closetext
+ end
+
+.AlreadyGotStone:
+ writetext ArthurThursdayText
+ waitbutton
+.BagFull:
+ closetext
+ end
+
+ArthurNotThursdayScript:
+ writetext ArthurNotThursdayText
+ waitbutton
+ closetext
+ end
+
+Route36Sign:
+ jumptext Route36SignText
+
+RuinsOfAlphNorthSign:
+ jumptext RuinsOfAlphNorthSignText
+
+Route36TrainerTips1:
+ jumptext Route36TrainerTips1Text
+
+Route36TrainerTips2:
+ jumptext Route36TrainerTips2Text
+
+Route36FruitTree:
+ fruittree FRUITTREE_ROUTE_36
+
+SudowoodoShakeMovement:
+ tree_shake ; shake
+ step_end
+
+WeirdTreeMovement_Flee:
+ fast_jump_step UP
+ fast_jump_step UP
+ step_end
+
+UseSquirtbottleText:
+ text "It's a weird tree."
+ line "Use SQUIRTBOTTLE?"
+ done
+
+UsedSquirtbottleText:
+ text "<PLAYER> used the"
+ line "SQUIRTBOTTLE."
+ done
+
+SudowoodoAttackedText:
+ text "The weird tree"
+ line "doesn't like the"
+ cont "SQUIRTBOTTLE!"
+
+ para "The weird tree"
+ line "attacked!"
+ done
+
+RockSmashGuyText1:
+ text "Wa-hey!"
+
+ para "I was going to"
+ line "snap that tree"
+
+ para "with my straight-"
+ line "arm punch."
+
+ para "But I couldn't!"
+ line "I'm a failure!"
+ done
+
+RockSmashGuyText2:
+ text "Did you clear that"
+ line "wretched tree?"
+
+ para "I'm impressed!"
+ line "I want you to"
+ cont "have this."
+ done
+
+UnknownText_0x19451a:
+ text "<PLAYER> received"
+ line "TM08."
+ done
+
+RockSmashGuyText3:
+ text "That happens to be"
+ line "ROCK SMASH."
+
+ para "You can shatter"
+ line "rocks with just a"
+
+ para "single well-aimed"
+ line "smack."
+
+ para "If any rocks are"
+ line "in your way, just"
+ cont "smash 'em up!"
+ done
+
+Route36LassText:
+ text "An odd tree is"
+ line "blocking the way"
+ cont "to GOLDENROD CITY."
+
+ para "It's preventing"
+ line "me from shopping."
+
+ para "Something should"
+ line "be done about it."
+ done
+
+Route36LassText_ClearedSudowoodo:
+ text "That odd tree dis-"
+ line "appeared without a"
+ cont "trace."
+
+ para "Oh! That tree was"
+ line "really a #MON?"
+ done
+
+PsychicMarkSeenText:
+ text "I'm going to read"
+ line "your thoughts!"
+ done
+
+PsychicMarkBeatenText:
+ text "I misread you!"
+ done
+
+PsychicMarkAfterBattleText:
+ text "I'd be strong if"
+ line "only I could tell"
+
+ para "what my opponent"
+ line "was thinking."
+ done
+
+SchoolboyAlan1SeenText:
+ text "Thanks to my stud-"
+ line "ies, I'm ready for"
+ cont "any #MON!"
+ done
+
+SchoolboyAlan1BeatenText:
+ text "Oops! Computation"
+ line "error?"
+ done
+
+UnknownText_0x1947aa:
+ text "Darn. I study five"
+ line "hours a day too."
+
+ para "There's a lot you"
+ line "can't learn just"
+ cont "by reading books."
+ done
+
+MeetArthurText:
+ text "ARTHUR: Who are"
+ line "you?"
+
+ para "I'm ARTHUR of"
+ line "Thursday."
+ done
+
+ArthurGivesGiftText:
+ text "Here. You can have"
+ line "this."
+ done
+
+ArthurGaveGiftText:
+ text "ARTHUR: A #MON"
+ line "that uses rock-"
+
+ para "type moves should"
+ line "hold on to that."
+
+ para "It pumps up rock-"
+ line "type attacks."
+ done
+
+ArthurThursdayText:
+ text "ARTHUR: I'm ARTHUR"
+ line "of Thursday. I'm"
+
+ para "the second son out"
+ line "of seven children."
+ done
+
+ArthurNotThursdayText:
+ text "ARTHUR: Today's"
+ line "not Thursday. How"
+ cont "disappointing."
+ done
+
+Route36SignText:
+ text "ROUTE 36"
+ done
+
+RuinsOfAlphNorthSignText:
+ text "RUINS OF ALPH"
+ line "NORTH ENTRANCE"
+ done
+
+Route36TrainerTips1Text:
+ text "TRAINER TIPS"
+
+ para "#MON stats"
+ line "vary--even within"
+ cont "the same species."
+
+ para "Their stats may be"
+ line "similar at first."
+
+ para "However, differ-"
+ line "ences will become"
+
+ para "pronounced as the"
+ line "#MON grow."
+ done
+
+Route36TrainerTips2Text:
+ text "TRAINER TIPS"
+
+ para "Use DIG to return"
+ line "to the entrance of"
+ cont "any place."
+
+ para "It is convenient"
+ line "for exploring"
+
+ para "caves and other"
+ line "landmarks."
+ done
+
+Route36_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 18, 8, ROUTE_36_NATIONAL_PARK_GATE, 3
+ warp_event 18, 9, ROUTE_36_NATIONAL_PARK_GATE, 4
+ warp_event 47, 13, ROUTE_36_RUINS_OF_ALPH_GATE, 1
+ warp_event 48, 13, ROUTE_36_RUINS_OF_ALPH_GATE, 2
+
+ db 0 ; coord events
+
+ db 4 ; bg events
+ bg_event 29, 1, BGEVENT_READ, Route36TrainerTips2
+ bg_event 45, 11, BGEVENT_READ, RuinsOfAlphNorthSign
+ bg_event 55, 7, BGEVENT_READ, Route36Sign
+ bg_event 21, 7, BGEVENT_READ, Route36TrainerTips1
+
+ db 7 ; object events
+ object_event 20, 12, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerPsychicMark, -1
+ object_event 31, 14, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 5, TrainerSchoolboyAlan1, -1
+ object_event 35, 9, SPRITE_WEIRD_TREE, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SudowoodoScript, EVENT_ROUTE_36_SUDOWOODO
+ object_event 51, 8, SPRITE_LASS, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route36LassScript, -1
+ object_event 44, 9, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route36RockSmashGuyScript, -1
+ object_event 21, 4, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route36FruitTree, -1
+ object_event 46, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY