object_const_def ; object_event 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: readvar 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 promptbutton verbosegiveitem MIRACLE_SEED iffalse .BagFull setevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 sjump .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 promptbutton 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 sjump _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: loadvar VAR_CALLERID, PHONE_FISHER_RALPH endifjustbattled opentext checkflag ENGINE_RALPH iftrue .Rematch checkflag ENGINE_FISH_SWARM iftrue .Swarm checkcellnum PHONE_FISHER_RALPH iftrue .NumberAccepted checkevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER iftrue .AskAgain writetext FisherRalphAfterText promptbutton setevent EVENT_RALPH_ASKED_FOR_PHONE_NUMBER scall .AskNumber1 sjump .AskForNumber .AskAgain: scall .AskNumber2 .AskForNumber: askforphonenumber PHONE_FISHER_RALPH ifequal PHONE_CONTACTS_FULL, .PhoneFull ifequal PHONE_CONTACT_REFUSED, .NumberDeclined gettrainername STRING_BUFFER_3, FISHER, RALPH1 scall .RegisteredNumber sjump .NumberAccepted .Rematch: scall .RematchStd winlosstext FisherRalph1BeatenText, 0 readmem wRalphFightCount ifequal 4, .Fight4 ifequal 3, .Fight3 ifequal 2, .Fight2 ifequal 1, .Fight1 ifequal 0, .LoadFight0 .Fight4: checkevent EVENT_RESTORED_POWER_TO_KANTO iftrue .LoadFight4 .Fight3: checkevent EVENT_BEAT_ELITE_FOUR iftrue .LoadFight3 .Fight2: checkflag ENGINE_FLYPOINT_LAKE_OF_RAGE iftrue .LoadFight2 .Fight1: checkflag ENGINE_FLYPOINT_ECRUTEAK iftrue .LoadFight1 .LoadFight0: loadtrainer FISHER, RALPH1 startbattle reloadmapafterbattle loadmem wRalphFightCount, 1 clearflag ENGINE_RALPH end .LoadFight1: loadtrainer FISHER, RALPH2 startbattle reloadmapafterbattle loadmem wRalphFightCount, 2 clearflag ENGINE_RALPH end .LoadFight2: loadtrainer FISHER, RALPH3 startbattle reloadmapafterbattle loadmem wRalphFightCount, 3 clearflag ENGINE_RALPH end .LoadFight3: loadtrainer FISHER, RALPH4 startbattle reloadmapafterbattle loadmem wRalphFightCount, 4 clearflag ENGINE_RALPH end .LoadFight4: loadtrainer FISHER, RALPH5 startbattle reloadmapafterbattle clearflag ENGINE_RALPH end .Swarm: writetext FisherRalphSwarmText waitbutton closetext 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: loadvar VAR_CALLERID, PHONE_PICNICKER_LIZ endifjustbattled opentext checkflag ENGINE_LIZ iftrue .Rematch checkcellnum PHONE_PICNICKER_LIZ iftrue .NumberAccepted checkevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER iftrue .AskAgain writetext PicnickerLiz1AfterText promptbutton setevent EVENT_LIZ_ASKED_FOR_PHONE_NUMBER scall .AskNumber1 sjump .AskForNumber .AskAgain: scall .AskNumber2 .AskForNumber: askforphonenumber PHONE_PICNICKER_LIZ ifequal PHONE_CONTACTS_FULL, .PhoneFull ifequal PHONE_CONTACT_REFUSED, .NumberDeclined gettrainername STRING_BUFFER_3, PICNICKER, LIZ1 scall .RegisteredNumber sjump .NumberAccepted .Rematch: scall .RematchStd winlosstext PicnickerLiz1BeatenText, 0 readmem wLizFightCount ifequal 4, .Fight4 ifequal 3, .Fight3 ifequal 2, .Fight2 ifequal 1, .Fight1 ifequal 0, .LoadFight0 .Fight4: checkevent EVENT_BEAT_ELITE_FOUR iftrue .LoadFight4 .Fight3: checkevent EVENT_CLEARED_RADIO_TOWER iftrue .LoadFight3 .Fight2: checkevent EVENT_CLEARED_ROCKET_HIDEOUT iftrue .LoadFight2 .Fight1: checkflag ENGINE_FLYPOINT_ECRUTEAK iftrue .LoadFight1 .LoadFight0: loadtrainer PICNICKER, LIZ1 startbattle reloadmapafterbattle loadmem wLizFightCount, 1 clearflag ENGINE_LIZ end .LoadFight1: loadtrainer PICNICKER, LIZ2 startbattle reloadmapafterbattle loadmem wLizFightCount, 2 clearflag ENGINE_LIZ end .LoadFight2: loadtrainer PICNICKER, LIZ3 startbattle reloadmapafterbattle loadmem wLizFightCount, 3 clearflag ENGINE_LIZ end .LoadFight3: loadtrainer PICNICKER, LIZ4 startbattle reloadmapafterbattle loadmem wLizFightCount, 4 clearflag ENGINE_LIZ end .LoadFight4: loadtrainer PICNICKER, LIZ5 startbattle reloadmapafterbattle clearflag ENGINE_LIZ 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 readvar VAR_WEEKDAY ifnotequal FRIDAY, .NotFriday checkevent EVENT_MET_FRIEDA_OF_FRIDAY iftrue .MetFrieda writetext MeetFriedaText promptbutton setevent EVENT_MET_FRIEDA_OF_FRIDAY .MetFrieda: writetext FriedaGivesGiftText promptbutton 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 Route32Repel: itemball REPEL 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 ", 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 really good at" line "both fishing and" cont "#MON." para "I'm not about to" line "lose to any kid!" 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 FisherRalphSwarmText: text "One, two, three…" line "Muahahaha, what a" para "great haul!" line "I'm done! Go ahead" para "and catch as many" line "as you can, kid!" 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 "Oh! I've got to" line "relieve my anger!" 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 12, 22, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerYoungsterAlbert, -1 object_event 4, 63, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerYoungsterGordon, -1 object_event 3, 45, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, 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, Route32Repel, EVENT_ROUTE_32_REPEL