summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2018-09-16 14:56:11 -0600
committerIIMarckus <iimarckus@gmail.com>2018-09-16 14:58:29 -0600
commitdee94fd4db2b42510c8763f49830340ccf918ceb (patch)
treebc1225aab387a66889475b0d77c405429f9f477c
parent3bdef2986b04830097ea1bd5a0963488075fda63 (diff)
Add Radio Tower map constants.
-rw-r--r--constants/event_flags.asm4
-rw-r--r--constants/map_constants.asm2
-rw-r--r--main.asm6
-rw-r--r--maps/RadioTower1F.asm489
-rw-r--r--maps/RadioTower2F.asm279
-rw-r--r--maps/RadioTower3F.asm351
-rw-r--r--maps/RadioTower4F.asm268
-rw-r--r--maps/RadioTower5F.asm469
8 files changed, 1864 insertions, 4 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index 99b3d036..f5dcdc10 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -123,7 +123,7 @@
const EVENT_GOT_TM37_SANDSTORM
const EVENT_FIRST_TIME_BANKING_WITH_MOM
const EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
- const EVENT_GOT_CLEAR_BELL
+ const EVENT_GOT_RAINBOW_WING
const EVENT_GOT_SILVER_WING
const EVENT_GOT_TM12_SWEET_SCENT
const EVENT_RELEASED_THE_BEASTS
@@ -836,7 +836,7 @@
const EVENT_FOUGHT_EUSINE
const EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
const EVENT_FOUGHT_SUICUNE
- const EVENT_GOT_RAINBOW_WING
+ const EVENT_GOT_RAINBOW_WING_FROM_EUSINE
const EVENT_HUEY_PROTEIN
const EVENT_JOEY_HP_UP
const EVENT_VANCE_CARBOS
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index b24deb25..5bb98f0a 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -142,7 +142,7 @@ ENDM
newgroup ; 4
- map_const ECRUTEAK_HOUSE, 9, 10 ; 1
+ map_const ECRUTEAK_TIN_TOWER_ENTRANCE, 9, 10 ; 1
map_const WISE_TRIOS_ROOM, 4, 4 ; 2
map_const ECRUTEAK_POKECENTER_1F, 4, 5 ; 3
map_const ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4
diff --git a/main.asm b/main.asm
index e73742f9..01d4c2ee 100644
--- a/main.asm
+++ b/main.asm
@@ -1552,7 +1552,11 @@ INCLUDE "maps/VictoryRoad.asm"
SECTION "bank43", ROMX, BANK[$43]
INCLUDE "maps/NationalPark.asm"
INCLUDE "maps/NationalParkBugContest.asm"
- dr $10cccf, $10f198
+INCLUDE "maps/RadioTower1F.asm"
+INCLUDE "maps/RadioTower2F.asm"
+INCLUDE "maps/RadioTower3F.asm"
+INCLUDE "maps/RadioTower4F.asm"
+INCLUDE "maps/RadioTower5F.asm"
SECTION "bank44", ROMX, BANK[$44]
dr $110000, $114000
diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm
new file mode 100644
index 00000000..7caa1e5d
--- /dev/null
+++ b/maps/RadioTower1F.asm
@@ -0,0 +1,489 @@
+ const_def 2 ; object constants
+ const RADIOTOWER1F_RECEPTIONIST
+ const RADIOTOWER1F_LASS
+ const RADIOTOWER1F_YOUNGSTER
+ const RADIOTOWER1F_ROCKET
+ const RADIOTOWER1F_GENTLEMAN
+ const RADIOTOWER1F_COOLTRAINER_F
+
+RadioTower1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RadioTower1FReceptionistScript:
+ faceplayer
+ opentext
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue .Rockets
+ writetext UnknownText_0x5ce77
+ waitbutton
+ closetext
+ end
+
+.Rockets:
+ writetext UnknownText_0x5ce81
+ waitbutton
+ closetext
+ end
+
+RadioTower1FLuckyNumberManScript:
+ faceplayer
+ opentext
+ writetext UnknownText_0x5ceba
+ buttonsound
+ special CheckLuckyNumberShowFlag
+ iffalse .skip
+ special ResetLuckyNumberShowFlag
+.skip
+ special PrintTodaysLuckyNumber
+ checkflag ENGINE_LUCKY_NUMBER_SHOW
+ iftrue .GameOver
+ writetext UnknownText_0x5cf3a
+ buttonsound
+ closetext
+ applymovement RADIOTOWER1F_GENTLEMAN, MovementData_0x5ce71
+ opentext
+ writetext UnknownText_0x5cf5a
+ buttonsound
+ waitsfx
+ writetext UnknownText_0x5cf79
+ playsound SFX_DEX_FANFARE_20_49
+ waitsfx
+ buttonsound
+ special CheckForLuckyNumberWinners
+ closetext
+ applymovement RADIOTOWER1F_GENTLEMAN, MovementData_0x5ce74
+ opentext
+ ifequal 1, .FirstPlace
+ ifequal 2, .SecondPlace
+ ifequal 3, .ThirdPlace
+ jump .NoPrize
+
+.GameOver:
+ writetext UnknownText_0x5cf7e
+ waitbutton
+ closetext
+ end
+
+.FirstPlace:
+ writetext UnknownText_0x5cfb5
+ playsound SFX_1ST_PLACE
+ waitsfx
+ buttonsound
+ giveitem MASTER_BALL
+ iffalse .BagFull
+ itemnotify
+ setflag ENGINE_LUCKY_NUMBER_SHOW
+ jump .GameOver
+
+.SecondPlace:
+ writetext UnknownText_0x5d023
+ playsound SFX_2ND_PLACE
+ waitsfx
+ buttonsound
+ giveitem EXP_SHARE
+ iffalse .BagFull
+ itemnotify
+ setflag ENGINE_LUCKY_NUMBER_SHOW
+ jump .GameOver
+
+.ThirdPlace:
+ writetext UnknownText_0x5d076
+ playsound SFX_3RD_PLACE
+ waitsfx
+ buttonsound
+ giveitem PP_UP
+ iffalse .BagFull
+ itemnotify
+ setflag ENGINE_LUCKY_NUMBER_SHOW
+ jump .GameOver
+
+.NoPrize:
+ writetext UnknownText_0x5d0c0
+ waitbutton
+ closetext
+ end
+
+.BagFull:
+ writetext UnknownText_0x5d0e6
+ waitbutton
+ closetext
+ end
+
+RadioTower1FRadioCardWomanScript:
+ faceplayer
+ opentext
+ checkflag ENGINE_RADIO_CARD
+ iftrue .GotCard
+ writetext UnknownText_0x5d12d
+ yesorno
+ iffalse .NoQuiz
+ writetext UnknownText_0x5d1f2
+ yesorno
+ iffalse .WrongAnswer
+ playsound SFX_ELEVATOR_END
+ waitsfx
+ writetext UnknownText_0x5d231
+ yesorno
+ iffalse .WrongAnswer
+ playsound SFX_ELEVATOR_END
+ waitsfx
+ writetext UnknownText_0x5d282
+ yesorno
+ iftrue .WrongAnswer
+ playsound SFX_ELEVATOR_END
+ waitsfx
+ writetext UnknownText_0x5d2bc
+ yesorno
+ iffalse .WrongAnswer
+ playsound SFX_ELEVATOR_END
+ waitsfx
+ writetext UnknownText_0x5d30e
+ yesorno
+ iftrue .WrongAnswer
+ playsound SFX_ELEVATOR_END
+ waitsfx
+ writetext UnknownText_0x5d37b
+ buttonsound
+ stringtotext .RadioCardText, MEM_BUFFER_1
+ scall .ReceiveItem
+ writetext UnknownText_0x5d3c0
+ buttonsound
+ setflag ENGINE_RADIO_CARD
+.GotCard:
+ writetext UnknownText_0x5d3e5
+ waitbutton
+ closetext
+ end
+
+.RadioCardText:
+ db "RADIO CARD@"
+
+.ReceiveItem:
+ jumpstd receiveitem
+ end
+
+.WrongAnswer:
+ playsound SFX_WRONG
+ writetext UnknownText_0x5d409
+ waitbutton
+ closetext
+ end
+
+.NoQuiz:
+ writetext UnknownText_0x5d443
+ waitbutton
+ closetext
+ end
+
+RadioTower1FLassScript:
+ jumptextfaceplayer RadioTower1FLassText
+
+RadioTower1FYoungsterScript:
+ jumptextfaceplayer RadioTower1FYoungsterText
+
+TrainerGruntM3:
+ trainer GRUNTM, GRUNTM_3, EVENT_BEAT_ROCKET_GRUNTM_3, GruntM3SeenText, GruntM3BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM3AfterBattleText
+ waitbutton
+ closetext
+ end
+
+RadioTower1FDirectory:
+ jumptext RadioTower1FDirectoryText
+
+RadioTower1FLuckyChannelSign:
+ jumptext RadioTower1FLuckyChannelSignText
+
+MovementData_0x5ce71:
+ step RIGHT
+ turn_head UP
+ step_end
+
+MovementData_0x5ce74:
+ step LEFT
+ turn_head UP
+ step_end
+
+UnknownText_0x5ce77:
+ text "Welcome!"
+ done
+
+UnknownText_0x5ce81:
+ text "Hello. I'm sorry,"
+ line "but we're not"
+ cont "offering any tours"
+ cont "today."
+ done
+
+UnknownText_0x5ceba:
+ text "Hi, are you here"
+ line "for the LUCKY NUM-"
+ cont "BER SHOW?"
+
+ para "Want me to check"
+ line "the ID numbers of"
+ cont "your #MON?"
+
+ para "If you get lucky,"
+ line "you win a prize."
+ done
+
+UnknownText_0x5cf3a:
+ text "This week's ID"
+ line "number is @"
+ text_from_ram wStringBuffer3
+ text "."
+ done
+
+UnknownText_0x5cf5a:
+ text "Let's see if you"
+ line "have a match."
+ done
+
+UnknownText_0x5cf79:
+ text "<……>"
+ line "<……>"
+ done
+
+UnknownText_0x5cf7e:
+ text "Please come back"
+ line "next week for the"
+ cont "next LUCKY NUMBER."
+ done
+
+UnknownText_0x5cfb5:
+ text "Wow! You have a"
+ line "perfect match of"
+ cont "all five numbers!"
+
+ para "We have a grand"
+ line "prize winner!"
+
+ para "You have won a"
+ line "MASTER BALL!"
+ done
+
+UnknownText_0x5d023:
+ text "Hey! You've"
+ line "matched the last"
+ cont "three numbers!"
+
+ para "You've won second"
+ line "prize, an EXP."
+ cont "SHARE!"
+ done
+
+UnknownText_0x5d076:
+ text "Ooh, you've"
+ line "matched the last"
+ cont "two numbers."
+
+ para "You've won third"
+ line "prize, a PP UP."
+ done
+
+UnknownText_0x5d0c0:
+ text "Nope, none of your"
+ line "ID numbers match."
+ done
+
+UnknownText_0x5d0e6:
+ text "You've got no room"
+ line "for your prize."
+
+ para "Make room and come"
+ line "back right away."
+ done
+
+UnknownText_0x5d12d:
+ text "We have a special"
+ line "quiz campaign on"
+ cont "right now."
+
+ para "Answer five ques-"
+ line "tions correctly to"
+ cont "win a RADIO CARD."
+
+ para "Slide it into your"
+ line "#GEAR to play"
+
+ para "the radio anytime,"
+ line "anywhere."
+
+ para "Would you like to"
+ line "take the quiz?"
+ done
+
+UnknownText_0x5d1f2:
+ text "Question 1:"
+
+ para "Can the TOWN MAP"
+ line "be displayed on a"
+ cont "#GEAR?"
+ done
+
+UnknownText_0x5d231:
+ text "Correct!"
+ line "Question 2:"
+
+ para "Can NIDORINA be"
+ line "female only?"
+ done
+
+UnknownText_0x5d282:
+ text "Bull's-eye!"
+ line "Question 3:"
+
+ para "Does KURT, the"
+ line "# BALL crafts-"
+ cont "man, use APRIKORN?"
+ done
+
+UnknownText_0x5d2bc:
+ text "So far so good!"
+ line "Question 4:"
+
+ para "MAGIKARP won't"
+ line "learn any TM move?"
+ done
+
+UnknownText_0x5d30e:
+ text "Wow! Right again!"
+ line "Here's the final"
+ cont "question:"
+
+ para "PROF.OAK'S #MON"
+ line "TALK is a very"
+ cont "popular program."
+
+ para "Is MARIE the co-"
+ line "host of the show?"
+ done
+
+UnknownText_0x5d37b:
+ text "Bingo! You got it!"
+ line "Congratulations!"
+
+ para "Here's your prize,"
+ line "a RADIO CARD!"
+ done
+
+UnknownText_0x5d3c0:
+ text "<PLAYER>'s #GEAR"
+ line "can now double as"
+ cont "a radio!"
+ done
+
+UnknownText_0x5d3e5:
+ text "Please tune in to"
+ line "our radio shows."
+ done
+
+UnknownText_0x5d409:
+ text "Oh, dear."
+ line "Sorry, but you"
+
+ para "got it wrong."
+ line "Please try again!"
+ done
+
+UnknownText_0x5d443:
+ text "Oh. I see. Please"
+ line "try if you change"
+ cont "your mind."
+ done
+
+RadioTower1FLassText:
+ text "BEN is a fabulous"
+ line "DJ."
+
+ para "His sweet voice"
+ line "makes me melt!"
+ done
+
+RadioTower1FYoungsterText:
+ text "I love MARY, from"
+ line "#MON TALK."
+
+ para "I only know what"
+ line "she sounds like,"
+ cont "though."
+ done
+
+GruntM3SeenText:
+ text "We've finally"
+ line "taken over the"
+ cont "RADIO TOWER!"
+
+ para "Now everyone will"
+ line "get to experience"
+
+ para "the true terror of"
+ line "TEAM ROCKET!"
+
+ para "We'll show you"
+ line "how scary we are!"
+ done
+
+GruntM3BeatenText:
+ text "Too strong! We"
+ line "must watch you…"
+ done
+
+GruntM3AfterBattleText:
+ text "You're too strong."
+
+ para "Our plan could be"
+ line "ruined. I must"
+ cont "warn the others…"
+ done
+
+RadioTower1FDirectoryText:
+ text "1F RECEPTION"
+ line "2F SALES"
+
+ para "3F PERSONNEL"
+ line "4F PRODUCTION"
+
+ para "5F DIRECTOR'S"
+ line " OFFICE"
+ done
+
+RadioTower1FLuckyChannelSignText:
+ text "LUCKY CHANNEL!"
+
+ para "Win with #MON"
+ line "ID numbers!"
+
+ para "Trade your #MON"
+ line "to collect differ-"
+ cont "ent ID numbers!"
+ done
+
+RadioTower1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 2, 7, GOLDENROD_CITY, 12
+ warp_event 3, 7, GOLDENROD_CITY, 12
+ warp_event 15, 0, RADIO_TOWER_2F, 2
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 3, 0, BGEVENT_READ, RadioTower1FDirectory
+ bg_event 13, 0, BGEVENT_READ, RadioTower1FLuckyChannelSign
+
+ db 6 ; object events
+ object_event 5, 6, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTower1FReceptionistScript, -1
+ object_event 16, 4, SPRITE_LASS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTower1FLassScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ object_event 15, 4, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, RadioTower1FYoungsterScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ object_event 14, 1, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 8, 6, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, RadioTower1FLuckyNumberManScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ object_event 12, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, RadioTower1FRadioCardWomanScript, EVENT_GOLDENROD_CITY_CIVILIANS
diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm
new file mode 100644
index 00000000..4e016173
--- /dev/null
+++ b/maps/RadioTower2F.asm
@@ -0,0 +1,279 @@
+ const_def 2 ; object constants
+ const RADIOTOWER2F_SUPER_NERD
+ const RADIOTOWER2F_TEACHER
+ const RADIOTOWER2F_ROCKET1
+ const RADIOTOWER2F_ROCKET2
+ const RADIOTOWER2F_ROCKET3
+ const RADIOTOWER2F_ROCKET_GIRL
+ const RADIOTOWER2F_BLACK_BELT1
+ const RADIOTOWER2F_BLACK_BELT2
+ const RADIOTOWER2F_JIGGLYPUFF
+
+RadioTower2F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RadioTower2FUnusedDummyScene:
+; unused
+ end
+
+RadioTower2FSuperNerdScript:
+ jumptextfaceplayer RadioTower2FSuperNerdText
+
+RadioTower2FTeacherScript:
+ faceplayer
+ opentext
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue .Rockets
+ writetext RadioTower2FTeacherText
+ waitbutton
+ closetext
+ end
+
+.Rockets:
+ writetext RadioTower2FTeacherText_Rockets
+ waitbutton
+ closetext
+ end
+
+RadioTowerJigglypuff:
+ opentext
+ writetext RadioTowerJigglypuffText
+ cry JIGGLYPUFF
+ waitbutton
+ closetext
+ end
+
+RadioTower2FBlackBelt1Script:
+ jumptextfaceplayer RadioTower2FBlackBelt1Text
+
+RadioTower2FBlackBelt2Script:
+ jumptextfaceplayer RadioTower2FBlackBelt2Text
+
+TrainerGruntM4:
+ trainer GRUNTM, GRUNTM_4, EVENT_BEAT_ROCKET_GRUNTM_4, GruntM4SeenText, GruntM4BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM4AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntM5:
+ trainer GRUNTM, GRUNTM_5, EVENT_BEAT_ROCKET_GRUNTM_5, GruntM5SeenText, GruntM5BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM5AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntM6:
+ trainer GRUNTM, GRUNTM_6, EVENT_BEAT_ROCKET_GRUNTM_6, GruntM6SeenText, GruntM6BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM6AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntF2:
+ trainer GRUNTF, GRUNTF_2, EVENT_BEAT_ROCKET_GRUNTF_2, GruntF2SeenText, GruntF2BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntF2AfterBattleText
+ waitbutton
+ closetext
+ end
+
+RadioTower2FSalesSign:
+ jumptext RadioTower2FSalesSignText
+
+RadioTower2FOaksPKMNTalkSign:
+ jumptext RadioTower2FOaksPKMNTalkSignText
+
+RadioTower2FPokemonRadioSign:
+ jumptext RadioTower2FPokemonRadioSignText
+
+RadioTower2FBookshelf:
+ jumpstd magazinebookshelf
+
+RadioTower2FSuperNerdText:
+ text "You can listen to"
+ line "the radio any-"
+ cont "where. Tune in!"
+ done
+
+RadioTower2FTeacherText:
+ text "Lullabies on the"
+ line "radio may make"
+ cont "#MON sleep."
+ done
+
+RadioTower2FTeacherText_Rockets:
+ text "Why would they"
+ line "want to take over"
+ cont "the RADIO TOWER?"
+ done
+
+RadioTowerJigglypuffText:
+ text "JIGGLYPUFF:"
+ line "Jiggly…"
+ done
+
+RadioTower2FBlackBelt1Text:
+ text "Sorry. Authorized"
+ line "personnel only"
+ cont "beyond this point."
+
+ para "It wasn't that way"
+ line "before."
+
+ para "There's something"
+ line "wrong with the"
+ cont "DIRECTOR…"
+ done
+
+RadioTower2FBlackBelt2Text:
+ text "Feel free to look"
+ line "around anywhere."
+
+ para "The DIRECTOR is"
+ line "nice again, just"
+ cont "as he was before."
+ done
+
+GruntM4SeenText:
+ text "Three years ago,"
+ line "TEAM ROCKET was"
+ cont "forced to disband."
+
+ para "But we're making a"
+ line "comeback here!"
+ done
+
+GruntM4BeatenText:
+ text "Gwah! Don't get"
+ line "cute!"
+ done
+
+GruntM4AfterBattleText:
+ text "We won't let you"
+ line "ruin our plans"
+ cont "for our comeback!"
+ done
+
+GruntM5SeenText:
+ text "We're TEAM ROCKET,"
+ line "the exploiters of"
+ cont "#MON!"
+
+ para "We love being"
+ line "evil! Scared?"
+ done
+
+GruntM5BeatenText:
+ text "You think you're a"
+ line "hero?"
+ done
+
+GruntM5AfterBattleText:
+ text "We're not always"
+ line "evil. We just do"
+ cont "whatever we like."
+ done
+
+GruntM6SeenText:
+ text "Hey, hey! Keep out"
+ line "of our way!"
+ done
+
+GruntM6BeatenText:
+ text "Arggh. I give up."
+ done
+
+GruntM6AfterBattleText:
+ text "Our EXECUTIVES are"
+ line "trying to take"
+ cont "this place over."
+
+ para "They have some big"
+ line "plan. I wonder"
+ cont "what that is?"
+ done
+
+GruntF2SeenText:
+ text "Hahaha!"
+
+ para "How boring."
+ line "It was far too"
+
+ para "easy to take over"
+ line "this place!"
+
+ para "Come on, keep me"
+ line "amused!"
+ done
+
+GruntF2BeatenText:
+ text "Wh-who are you?"
+ done
+
+GruntF2AfterBattleText:
+ text "You beat me, and"
+ line "I won't forget it!"
+ done
+
+RadioTower2FSalesSignText:
+ text "2F SALES"
+ done
+
+RadioTower2FOaksPKMNTalkSignText:
+ text "PROF.OAK'S #MON"
+ line "TALK"
+
+ para "The Hottest Show"
+ line "on the Air!"
+ done
+
+RadioTower2FPokemonRadioSignText:
+ text "Anywhere, Anytime"
+ line "#MON Radio"
+ done
+
+RadioTower2F_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 0, 0, RADIO_TOWER_3F, 1
+ warp_event 15, 0, RADIO_TOWER_1F, 3
+
+ db 0 ; coord events
+
+ db 6 ; bg events
+ bg_event 3, 0, BGEVENT_READ, RadioTower2FSalesSign
+ bg_event 5, 0, BGEVENT_READ, RadioTower2FOaksPKMNTalkSign
+ bg_event 9, 1, BGEVENT_READ, RadioTower2FBookshelf
+ bg_event 10, 1, BGEVENT_READ, RadioTower2FBookshelf
+ bg_event 11, 1, BGEVENT_READ, RadioTower2FBookshelf
+ bg_event 13, 0, BGEVENT_READ, RadioTower2FPokemonRadioSign
+
+ db 9 ; object events
+ object_event 5, 6, SPRITE_SUPER_NERD, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, RadioTower2FSuperNerdScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ object_event 13, 2, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTower2FTeacherScript, -1
+ object_event 1, 4, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 8, 4, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 4, 1, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 10, 5, SPRITE_ROCKET_GIRL, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 0, 1, SPRITE_BLACK_BELT, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, RadioTower2FBlackBelt1Script, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+ object_event 1, 1, SPRITE_BLACK_BELT, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, RadioTower2FBlackBelt2Script, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ object_event 12, 1, SPRITE_JIGGLYPUFF, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, RadioTowerJigglypuff, -1
diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm
new file mode 100644
index 00000000..367223ce
--- /dev/null
+++ b/maps/RadioTower3F.asm
@@ -0,0 +1,351 @@
+ const_def 2 ; object constants
+ const RADIOTOWER3F_SUPER_NERD
+ const RADIOTOWER3F_GYM_GUY
+ const RADIOTOWER3F_COOLTRAINER_F
+ const RADIOTOWER3F_ROCKET1
+ const RADIOTOWER3F_ROCKET2
+ const RADIOTOWER3F_ROCKET3
+ const RADIOTOWER3F_SCIENTIST
+
+RadioTower3F_MapScripts:
+ db 0 ; scene scripts
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_TILES, .CardKeyShutterCallback
+
+.CardKeyShutterCallback:
+ checkevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ iftrue .Change
+ return
+
+.Change:
+ changeblock 14, 2, $2a ; open shutter
+ changeblock 14, 4, $01 ; floor
+ return
+
+RadioTower3FSuperNerdScript:
+ jumptextfaceplayer RadioTower3FSuperNerdText
+
+RadioTower3FGymGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .NoRockets
+ writetext RadioTower3FGymGuyText_Rockets
+ waitbutton
+ closetext
+ end
+
+.NoRockets:
+ writetext RadioTower3FGymGuyText
+ waitbutton
+ closetext
+ end
+
+RadioTower3FCooltrainerFScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
+ iftrue .GotSunnyDay
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .NoRockets
+ checkevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ iftrue .UsedCardKey
+ writetext UnknownText_0x5e754
+ waitbutton
+ closetext
+ end
+
+.UsedCardKey:
+ writetext UnknownText_0x5e7cb
+ waitbutton
+ closetext
+ end
+
+.NoRockets:
+ writetext UnknownText_0x5e7e2
+ buttonsound
+ verbosegiveitem TM_SUNNY_DAY
+ iffalse .NoRoom
+ writetext UnknownText_0x5e821
+ waitbutton
+ closetext
+ setevent EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER
+ end
+
+.GotSunnyDay:
+ writetext UnknownText_0x5e85c
+ waitbutton
+.NoRoom:
+ closetext
+ end
+
+TrainerGruntM7:
+ trainer GRUNTM, GRUNTM_7, EVENT_BEAT_ROCKET_GRUNTM_7, GruntM7SeenText, GruntM7BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM7AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntM8:
+ trainer GRUNTM, GRUNTM_8, EVENT_BEAT_ROCKET_GRUNTM_8, GruntM8SeenText, GruntM8BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM8AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntM9:
+ trainer GRUNTM, GRUNTM_9, EVENT_BEAT_ROCKET_GRUNTM_9, GruntM9SeenText, GruntM9BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM9AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerScientistMarc:
+ trainer SCIENTIST, MARC, EVENT_BEAT_SCIENTIST_MARC, ScientistMarcSeenText, ScientistMarcBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext ScientistMarcAfterBattleText
+ waitbutton
+ closetext
+ end
+
+CardKeySlotScript::
+ opentext
+ writetext RadioTower3FCardKeySlotText
+ waitbutton
+ checkevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ iftrue .UsedCardKey
+ checkitem CARD_KEY
+ iftrue .HaveCardKey
+.UsedCardKey:
+ closetext
+ end
+
+.HaveCardKey:
+ writetext InsertedTheCardKeyText
+ waitbutton
+ setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ playsound SFX_ENTER_DOOR
+ changeblock 14, 2, $2a ; open shutter
+ changeblock 14, 4, $01 ; floor
+ reloadmappart
+ closetext
+ waitsfx
+ end
+
+RadioTower3FPersonnelSign:
+ jumptext RadioTower3FPersonnelSignText
+
+RadioTower3FPokemonMusicSign:
+ jumptext RadioTower3FPokemonMusicSignText
+
+RadioTower3FSuperNerdText:
+ text "We have recordings"
+ line "of the cries of"
+
+ para "all #MON that"
+ line "have been found."
+
+ para "We must have about"
+ line "200 kinds."
+ done
+
+RadioTower3FGymGuyText_Rockets:
+ text "To trainers, #-"
+ line "MON are their"
+ cont "beloved partners."
+
+ para "It's terrible how"
+ line "TEAM ROCKET is"
+
+ para "trying to control"
+ line "#MON."
+ done
+
+RadioTower3FGymGuyText:
+ text "We run 24 hours a"
+ line "day to broadcast"
+
+ para "entertaining pro-"
+ line "grams."
+
+ para "I'll do my best to"
+ line "run around the"
+ cont "clock too!"
+ done
+
+UnknownText_0x5e754:
+ text "The TEAM ROCKET"
+ line "boss has locked"
+ cont "himself in."
+
+ para "But the DIRECTOR"
+ line "can open it."
+
+ para "He's up on the"
+ line "fifth floor."
+
+ para "Please save him!"
+ done
+
+UnknownText_0x5e7cb:
+ text "Is the DIRECTOR"
+ line "safe?"
+ done
+
+UnknownText_0x5e7e2:
+ text "Thank you!"
+ line "You're my hero!"
+
+ para "This is a token of"
+ line "my appreciation."
+ done
+
+UnknownText_0x5e821:
+ text "It's SUNNY DAY."
+ line "It powers up fire-"
+ cont "type moves for a"
+ cont "while."
+ done
+
+UnknownText_0x5e85c:
+ text "You were simply"
+ line "marvelous!"
+ done
+
+GruntM7SeenText:
+ text "I've been given"
+ line "strict orders."
+
+ para "I'm to crush any-"
+ line "one who challenges"
+ cont "TEAM ROCKET!"
+ done
+
+GruntM7BeatenText:
+ text "What?!"
+ done
+
+GruntM7AfterBattleText:
+ text "I failed in my"
+ line "duties…"
+
+ para "I'll be docked pay"
+ line "for this…"
+ done
+
+GruntM8SeenText:
+ text "It feels great"
+ line "ordering #MON"
+ cont "to commit crimes."
+ done
+
+GruntM8BeatenText:
+ text "You're kidding!"
+ done
+
+GruntM8AfterBattleText:
+ text "I feel lousy over"
+ line "losing!"
+
+ para "Darn it! I hate"
+ line "useless #MON!"
+ done
+
+GruntM9SeenText:
+ text "Why did the shut-"
+ line "ter open? Did you"
+
+ para "have something to"
+ line "do with this?"
+ done
+
+GruntM9BeatenText:
+ text "I'm done for!"
+ done
+
+GruntM9AfterBattleText:
+ text "What?! You made it"
+ line "past our men in"
+ cont "the UNDERGROUND?"
+
+ para "How could you?"
+ done
+
+ScientistMarcSeenText:
+ text "An unknown child"
+ line "wandering here?"
+
+ para "Who are you?"
+ done
+
+ScientistMarcBeatenText:
+ text "Tch! I took you"
+ line "too lightly!"
+ done
+
+ScientistMarcAfterBattleText:
+ text "Bwahahaha…"
+
+ para "I can transmit as"
+ line "strong a signal as"
+ cont "I need from here."
+ done
+
+RadioTower3FCardKeySlotText:
+ text "It's the CARD KEY"
+ line "slot."
+ done
+
+InsertedTheCardKeyText:
+ text "<PLAYER> inserted"
+ line "the CARD KEY."
+ done
+
+RadioTower3FPersonnelSignText:
+ text "3F PERSONNEL"
+ done
+
+RadioTower3FPokemonMusicSignText:
+ text "#MON MUSIC with"
+ line "Host DJ BEN"
+ done
+
+RadioTower3F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 0, 0, RADIO_TOWER_2F, 1
+ warp_event 7, 0, RADIO_TOWER_4F, 2
+ warp_event 17, 0, RADIO_TOWER_4F, 4
+
+ db 0 ; coord events
+
+ db 3 ; bg events
+ bg_event 3, 0, BGEVENT_READ, RadioTower3FPersonnelSign
+ bg_event 9, 0, BGEVENT_READ, RadioTower3FPokemonMusicSign
+ bg_event 14, 2, BGEVENT_UP, CardKeySlotScript
+
+ db 7 ; object events
+ object_event 7, 4, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, RadioTower3FSuperNerdScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ object_event 3, 4, SPRITE_GYM_GUY, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTower3FGymGuyScript, -1
+ object_event 11, 3, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, RadioTower3FCooltrainerFScript, -1
+ object_event 5, 1, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 6, 2, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 16, 6, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 9, 6, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 5, TrainerScientistMarc, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm
new file mode 100644
index 00000000..87efe0b2
--- /dev/null
+++ b/maps/RadioTower4F.asm
@@ -0,0 +1,268 @@
+ const_def 2 ; object constants
+ const RADIOTOWER4F_FISHER
+ const RADIOTOWER4F_TEACHER
+ const RADIOTOWER4F_GROWLITHE
+ const RADIOTOWER4F_ROCKET1
+ const RADIOTOWER4F_ROCKET2
+ const RADIOTOWER4F_ROCKET_GIRL
+ const RADIOTOWER4F_SCIENTIST
+
+RadioTower4F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RadioTower4FFisherScript:
+ jumptextfaceplayer RadioTower4FFisherText
+
+RadioTower4FDJMaryScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_PINK_BOW_FROM_MARY
+ iftrue .GotPinkBow
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .ClearedRockets
+ writetext RadioTower4FDJMaryText
+ waitbutton
+ closetext
+ end
+
+.ClearedRockets:
+ writetext RadioTower4FDJMaryText_ClearedRockets
+ buttonsound
+ verbosegiveitem PINK_BOW
+ iffalse .NoRoom
+ writetext RadioTower4FDJMaryText_GivePinkBow
+ waitbutton
+ closetext
+ setevent EVENT_GOT_PINK_BOW_FROM_MARY
+ end
+
+.GotPinkBow:
+ writetext RadioTower4FDJMaryText_After
+ waitbutton
+.NoRoom:
+ closetext
+ end
+
+RadioTowerMeowth:
+ opentext
+ writetext RadioTowerMeowthText
+ cry MEOWTH
+ waitbutton
+ closetext
+ end
+
+TrainerGruntM10:
+ trainer GRUNTM, GRUNTM_10, EVENT_BEAT_ROCKET_GRUNTM_10, GruntM10SeenText, GruntM10BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntM10AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerExecutivem2:
+ trainer EXECUTIVEM, EXECUTIVEM_2, EVENT_BEAT_ROCKET_EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext Executivem2AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGruntF4:
+ trainer GRUNTF, GRUNTF_4, EVENT_BEAT_ROCKET_GRUNTF_4, GruntF4SeenText, GruntF4BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GruntF4AfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerScientistRich:
+ trainer SCIENTIST, RICH, EVENT_BEAT_SCIENTIST_RICH, ScientistRichSeenText, ScientistRichBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext ScientistRichAfterBattleText
+ waitbutton
+ closetext
+ end
+
+RadioTower4FProductionSign:
+ jumptext RadioTower4FProductionSignText
+
+RadioTower4FStudio2Sign:
+ jumptext RadioTower4FStudio2SignText
+
+RadioTower4FFisherText:
+ text "I listened to the"
+ line "radio while I was"
+ cont "at the RUINS."
+
+ para "I heard a strange"
+ line "broadcast there."
+ done
+
+RadioTower4FDJMaryText:
+ text "MARY: Why? Why do"
+ line "I have to suffer"
+ cont "through this?"
+
+ para "MEOWTH, help me!"
+ done
+
+RadioTower4FDJMaryText_ClearedRockets:
+ text "MARY: Oh! You're"
+ line "my little savior!"
+
+ para "Will you take this"
+ line "as my thanks?"
+ done
+
+RadioTower4FDJMaryText_GivePinkBow:
+ text "MARY: It's just"
+ line "right for #MON"
+
+ para "that know normal-"
+ line "type moves."
+ done
+
+RadioTower4FDJMaryText_After:
+ text "MARY: Please tune"
+ line "into me on PROF."
+
+ para "OAK'S #MON TALK"
+ line "show."
+ done
+
+RadioTowerMeowthText:
+ text "MEOWTH: Meowth…"
+ done
+
+GruntM10SeenText:
+ text "You plan to rescue"
+ line "the DIRECTOR?"
+
+ para "That won't be pos-"
+ line "sible because I'm"
+ cont "going to beat you!"
+ done
+
+GruntM10BeatenText:
+ text "No! Unbelievable!"
+ done
+
+GruntM10AfterBattleText:
+ text "I don't believe"
+ line "it! I was beaten!"
+ done
+
+Executivem2SeenText:
+ text "Stop! I'm known as"
+ line "the TEAM ROCKET"
+ cont "fortress!"
+
+ para "You're not taking"
+ line "another step!"
+ done
+
+Executivem2BeatenText:
+ text "The fortress came"
+ line "down!"
+ done
+
+Executivem2AfterBattleText:
+ text "You've earned my"
+ line "respect, so here's"
+ cont "some advice."
+
+ para "It's not too late."
+ line "You can still turn"
+ cont "back."
+ done
+
+GruntF4SeenText:
+ text "Don't I think"
+ line "#MON are cute?"
+
+ para "I'll think my"
+ line "#MON are cute--"
+
+ para "after they beat"
+ line "yours!"
+ done
+
+GruntF4BeatenText:
+ text "Oh, no! They're so"
+ line "useless!"
+ done
+
+GruntF4AfterBattleText:
+ text "I love my"
+ line "beautiful self!"
+
+ para "Who cares about"
+ line "#MON?"
+ done
+
+ScientistRichSeenText:
+ text "Most excellent."
+
+ para "This RADIO TOWER"
+ line "will fulfill our"
+ cont "grand design."
+ done
+
+ScientistRichBeatenText:
+ text "Hmmm…"
+
+ para "All grand plans"
+ line "come with snags."
+ done
+
+ScientistRichAfterBattleText:
+ text "Do you honestly"
+ line "believe you can"
+ cont "stop TEAM ROCKET?"
+ done
+
+RadioTower4FProductionSignText:
+ text "4F PRODUCTION"
+ done
+
+RadioTower4FStudio2SignText:
+ text "4F STUDIO 2"
+ done
+
+RadioTower4F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 0, 0, RADIO_TOWER_5F, 1
+ warp_event 9, 0, RADIO_TOWER_3F, 2
+ warp_event 12, 0, RADIO_TOWER_5F, 2
+ warp_event 17, 0, RADIO_TOWER_3F, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 7, 0, BGEVENT_READ, RadioTower4FProductionSign
+ bg_event 15, 0, BGEVENT_READ, RadioTower4FStudio2Sign
+
+ db 7 ; object events
+ object_event 6, 4, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTower4FFisherScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ object_event 14, 6, SPRITE_TEACHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, RadioTower4FDJMaryScript, -1
+ object_event 12, 7, SPRITE_GROWLITHE, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RadioTowerMeowth, -1
+ object_event 5, 6, SPRITE_ROCKET, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 14, 1, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_LEFT, 2, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 12, 4, SPRITE_ROCKET_GIRL, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 4, 2, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm
new file mode 100644
index 00000000..889b2fb2
--- /dev/null
+++ b/maps/RadioTower5F.asm
@@ -0,0 +1,469 @@
+ const_def 2 ; object constants
+ const RADIOTOWER5F_DIRECTOR
+ const RADIOTOWER5F_ROCKET
+ const RADIOTOWER5F_ROCKET_GIRL
+ const RADIOTOWER5F_ROCKER
+ const RADIOTOWER5F_POKE_BALL
+
+RadioTower5F_MapScripts:
+ db 3 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_RADIOTOWER5F_ROCKET_BOSS
+ scene_script .DummyScene2 ; SCENE_RADIOTOWER5F_NOTHING
+
+ db 0 ; callbacks
+
+.DummyScene0:
+ end
+
+.DummyScene1:
+ end
+
+.DummyScene2:
+ end
+
+FakeDirectorScript:
+ turnobject RADIOTOWER5F_DIRECTOR, UP
+ showemote EMOTE_SHOCK, RADIOTOWER5F_DIRECTOR, 15
+ opentext
+ writetext FakeDirectorTextBefore1
+ waitbutton
+ closetext
+ applymovement RADIOTOWER5F_DIRECTOR, FakeDirectorMovement
+ playmusic MUSIC_ROCKET_ENCOUNTER
+ opentext
+ writetext FakeDirectorTextBefore2
+ waitbutton
+ closetext
+ winlosstext FakeDirectorWinText, 0
+ setlasttalked RADIOTOWER5F_DIRECTOR
+ loadtrainer EXECUTIVEM, EXECUTIVEM_3
+ startbattle
+ reloadmapafterbattle
+ opentext
+ writetext FakeDirectorTextAfter
+ buttonsound
+ verbosegiveitem BASEMENT_KEY
+ closetext
+ setscene SCENE_RADIOTOWER5F_ROCKET_BOSS
+ setevent EVENT_BEAT_ROCKET_EXECUTIVEM_3
+ end
+
+Director:
+ faceplayer
+ opentext
+ checkevent EVENT_CLEARED_RADIO_TOWER
+ iftrue .TrueDirector
+ writetext FakeDirectorTextAfter
+ waitbutton
+ closetext
+ end
+
+.TrueDirector:
+ writetext RadioTower5FDirectorText
+ waitbutton
+ closetext
+ end
+
+TrainerExecutivef1:
+ trainer EXECUTIVEF, EXECUTIVEF_1, EVENT_BEAT_ROCKET_EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext Executivef1AfterBattleText
+ waitbutton
+ closetext
+ end
+
+RadioTower5FRocketBossScene:
+ applymovement PLAYER, RadioTower5FPlayerTwoStepsLeftMovement
+ playmusic MUSIC_ROCKET_ENCOUNTER
+ turnobject RADIOTOWER5F_ROCKET, RIGHT
+ opentext
+ writetext RadioTower5FRocketBossBeforeText
+ waitbutton
+ closetext
+ winlosstext RadioTower5FRocketBossWinText, 0
+ setlasttalked RADIOTOWER5F_ROCKET
+ loadtrainer EXECUTIVEM, EXECUTIVEM_1
+ startbattle
+ reloadmapafterbattle
+ opentext
+ writetext RadioTower5FRocketBossAfterText
+ waitbutton
+ closetext
+ special FadeBlackQuickly
+ special ReloadSpritesNoPalettes
+ disappear RADIOTOWER5F_ROCKET
+ disappear RADIOTOWER5F_ROCKET_GIRL
+ pause 15
+ special FadeInQuickly
+ setevent EVENT_BEAT_ROCKET_EXECUTIVEM_1
+ setevent EVENT_CLEARED_RADIO_TOWER
+ clearflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ setevent EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+ setevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ setevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ clearevent EVENT_MAHOGANY_MART_OWNERS
+ clearflag ENGINE_ROCKETS_IN_MAHOGANY
+ clearevent EVENT_GOLDENROD_CITY_CIVILIANS
+ clearevent EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ setevent EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
+ clearevent EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+ special PlayMapMusic
+ disappear RADIOTOWER5F_DIRECTOR
+ moveobject RADIOTOWER5F_DIRECTOR, 12, 0
+ appear RADIOTOWER5F_DIRECTOR
+ applymovement RADIOTOWER5F_DIRECTOR, RadioTower5FDirectorWalksIn
+ turnobject PLAYER, RIGHT
+ opentext
+ writetext RadioTower5FDirectorThankYouText
+ buttonsound
+ checkver
+ iftrue .SilverWing
+ verbosegiveitem RAINBOW_WING
+ writetext RadioTower5FDirectorDescribeRainbowWingText
+ waitbutton
+ closetext
+ setscene SCENE_RADIOTOWER5F_NOTHING
+ setevent EVENT_GOT_RAINBOW_WING
+ setevent EVENT_TEAM_ROCKET_DISBANDED
+ jump .UselessJump
+.SilverWing
+ verbosegiveitem SILVER_WING
+ writetext RadioTower5FDirectorDescribeSilverWingText
+ waitbutton
+ closetext
+ setscene SCENE_RADIOTOWER5F_NOTHING
+ setevent EVENT_GOT_SILVER_WING
+
+.UselessJump:
+ applymovement RADIOTOWER5F_DIRECTOR, RadioTower5FDirectorWalksOut
+ playsound SFX_EXIT_BUILDING
+ disappear RADIOTOWER5F_DIRECTOR
+ end
+
+Ben:
+ jumptextfaceplayer BenText
+
+RadioTower5FDirectorsOfficeSign:
+ jumptext RadioTower5FDirectorsOfficeSignText
+
+RadioTower5FStudio1Sign:
+ jumptext RadioTower5FStudio1SignText
+
+RadioTower5FBookshelf:
+ jumpstd magazinebookshelf
+
+FakeDirectorMovement:
+ step LEFT
+ step LEFT
+ step LEFT
+ step UP
+ step UP
+ step_end
+
+RadioTower5FDirectorWalksIn:
+ step DOWN
+ step DOWN
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step DOWN
+ step DOWN
+ step DOWN
+ step LEFT
+ step_end
+
+RadioTower5FDirectorWalksOut:
+ step RIGHT
+ step UP
+ step UP
+ step UP
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step UP
+ step UP
+ step_end
+
+RadioTower5FPlayerTwoStepsLeftMovement:
+ step LEFT
+ step LEFT
+ step_end
+
+FakeDirectorTextBefore1:
+ text "Y-you! You came to"
+ line "rescue me?"
+ done
+
+FakeDirectorTextBefore2:
+ text "Is that what you"
+ line "were expecting?"
+
+ para "Wrong!"
+ line "I'm an imposter!"
+
+ para "I pretended to be"
+ line "the real thing to"
+
+ para "prepare for our"
+ line "takeover."
+
+ para "Do you want to"
+ line "know where we hid"
+ cont "the real DIRECTOR?"
+
+ para "Sure, I'll tell"
+ line "you. But only if"
+ cont "you can beat me!"
+ done
+
+FakeDirectorWinText:
+ text "OK, OK. I'll tell"
+ line "you where he is."
+ done
+
+FakeDirectorTextAfter:
+ text "We stashed the"
+ line "real DIRECTOR in"
+
+ para "the UNDERGROUND"
+ line "WAREHOUSE."
+
+ para "It's at the far"
+ line "end of the UNDER-"
+ cont "GROUND."
+
+ para "But I doubt you'll"
+ line "get that far."
+ done
+
+Executivef1SeenText:
+ text "Hi, little boy."
+ line "Remember me from"
+
+ para "the HIDEOUT in"
+ line "MAHOGANY TOWN?"
+
+ para "I lost then, but I"
+ line "won't this time."
+ done
+
+Executivef1BeatenText:
+ text "This can't be"
+ line "happening!"
+
+ para "I fought hard, but"
+ line "I still lost…"
+ done
+
+Executivef1AfterBattleText:
+ text "<PLAYER>, isn't it?"
+
+ para "A brat like you"
+ line "won't appreciate"
+
+ para "the magnificence"
+ line "of TEAM ROCKET."
+
+ para "That's too bad."
+ line "I really admire"
+ cont "your power."
+ done
+
+RadioTower5FRocketBossBeforeText:
+ text "Oh? You managed to"
+ line "get this far?"
+
+ para "You must be quite"
+ line "the trainer."
+
+ para "We intend to take"
+ line "over this RADIO"
+
+ para "STATION and an-"
+ line "nounce our come-"
+ cont "back."
+
+ para "That should bring"
+ line "our boss GIOVANNI"
+
+ para "back from his solo"
+ line "training."
+
+ para "We are going to"
+ line "regain our former"
+ cont "glory."
+
+ para "I won't allow you"
+ line "to interfere with"
+ cont "our plans."
+ done
+
+RadioTower5FRocketBossWinText:
+ text "No! Forgive me,"
+ line "GIOVANNI!"
+ done
+
+RadioTower5FRocketBossAfterText:
+ text "How could this be?"
+
+ para "Our dreams have"
+ line "come to naught."
+
+ para "I wasn't up to the"
+ line "task after all."
+
+ para "Like GIOVANNI did"
+ line "before me, I will"
+
+ para "disband TEAM"
+ line "ROCKET here today."
+
+ para "Farewell."
+ done
+
+RadioTower5FDirectorThankYouText:
+ text "DIRECTOR: <PLAYER>,"
+ line "thank you!"
+
+ para "Your courageous"
+ line "actions have saved"
+
+ para "#MON nation-"
+ line "wide."
+
+ para "I know it's not"
+ line "much, but please"
+ cont "take this."
+ done
+
+RadioTower5FDirectorDescribeRainbowWingText:
+ text "There used to be a"
+ line "tower right here"
+ cont "in GOLDENROD CITY."
+
+ para "But it was old and"
+ line "creaky."
+
+ para "So we replaced it"
+ line "with our RADIO"
+ cont "TOWER."
+
+ para "During the tear-"
+ line "down, we found"
+ cont "that at the top."
+
+ para "I heard that giant"
+ line "#MON used to"
+
+ para "fly over GOLDENROD"
+ line "in the past."
+
+ para "Maybe that fell"
+ line "off a #MON."
+
+ para "Maybe like the one"
+ line "that appears at"
+
+ para "TIN TOWER in"
+ line "ECRUTEAK CITY."
+
+ para "OK, I better go to"
+ line "my OFFICE."
+ done
+
+RadioTower5FDirectorDescribeSilverWingText:
+ text "There used to be a"
+ line "tower right here"
+ cont "in GOLDENROD CITY."
+
+ para "But it was old and"
+ line "creaky."
+
+ para "So we replaced it"
+ line "with our RADIO"
+ cont "TOWER."
+
+ para "During the tear-"
+ line "down, we found"
+ cont "that at the top."
+
+ para "I heard that giant"
+ line "#MON used to"
+
+ para "fly over GOLDENROD"
+ line "in the past."
+
+ para "Maybe that fell"
+ line "off a #MON."
+
+ para "Maybe like the one"
+ line "that appears at"
+
+ para "WHIRL ISLANDS near"
+ line "CIANWOOD."
+
+ para "OK, I better go to"
+ line "my OFFICE."
+ done
+
+RadioTower5FDirectorText:
+ text "DIRECTOR: Hello,"
+ line "<PLAYER>!"
+
+ para "You know, I love"
+ line "#MON."
+
+ para "I built this RADIO"
+ line "TOWER so I could"
+
+ para "express my love"
+ line "of #MON."
+
+ para "It would be nice"
+ line "if people enjoyed"
+ cont "our programs."
+ done
+
+BenText:
+ text "BEN: Do you listen"
+ line "to our music?"
+ done
+
+RadioTower5FDirectorsOfficeSignText:
+ text "5F DIRECTOR'S"
+ line " OFFICE"
+ done
+
+RadioTower5FStudio1SignText:
+ text "5F STUDIO 1"
+ done
+
+RadioTower5F_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 0, 0, RADIO_TOWER_4F, 1
+ warp_event 12, 0, RADIO_TOWER_4F, 3
+
+ db 2 ; coord events
+ coord_event 0, 3, SCENE_DEFAULT, FakeDirectorScript
+ coord_event 16, 5, SCENE_RADIOTOWER5F_ROCKET_BOSS, RadioTower5FRocketBossScene
+
+ db 5 ; bg events
+ bg_event 3, 0, BGEVENT_READ, RadioTower5FDirectorsOfficeSign
+ bg_event 11, 0, BGEVENT_READ, RadioTower5FStudio1Sign
+ bg_event 15, 0, BGEVENT_READ, RadioTower5FStudio1Sign
+ bg_event 16, 1, BGEVENT_READ, RadioTower5FBookshelf
+ bg_event 17, 1, BGEVENT_READ, RadioTower5FBookshelf
+
+ db 4 ; object events
+ object_event 3, 6, SPRITE_GENTLEMAN, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Director, -1
+ object_event 13, 5, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 17, 2, SPRITE_ROCKET_GIRL, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ object_event 13, 5, SPRITE_ROCKER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER