summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--constants/event_flags.asm50
-rw-r--r--constants/sprite_anim_constants.asm3
-rw-r--r--data/phone/text/bike_shop.asm19
-rw-r--r--data/phone/text/bill.asm101
-rw-r--r--data/phone/text/elm.asm212
-rw-r--r--data/phone/text/landmarks.asm67
-rw-r--r--data/phone/text/mom.asm165
-rw-r--r--data/phone/text/trainers.asm355
-rw-r--r--data/phone/text/unused.asm3
-rw-r--r--data/text/std_text.asm422
-rw-r--r--engine/events/std_scripts.asm774
-rw-r--r--engine/movie/gamefreak_presents.asm73
-rw-r--r--engine/movie/title.asm2
-rwxr-xr-xengine/overworld/player_movement.asm2
-rw-r--r--engine/phone/scripts/bike_shop.asm5
-rw-r--r--engine/phone/scripts/bill.asm41
-rw-r--r--engine/phone/scripts/elm.asm101
-rw-r--r--engine/phone/scripts/generic.asm227
-rw-r--r--engine/phone/scripts/mom.asm150
-rw-r--r--engine/phone/scripts/trainers.asm677
-rw-r--r--engine/phone/scripts/unused.asm3
-rw-r--r--gfx/pokedex/pokedex.2bppbin928 -> 0 bytes
-rw-r--r--gfx/pokedex/slowpoke.2bppbin880 -> 0 bytes
-rwxr-xr-xhome/print_num.asm126
-rw-r--r--layout.link4
-rw-r--r--main.asm151
27 files changed, 3465 insertions, 270 deletions
diff --git a/.gitignore b/.gitignore
index f7289199..7b6a70e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,5 @@ gfx/player/chris_back.2bpp
gfx/trade/game_boy.2bpp
gfx/pokegear/pokegear_sprites.2bpp
gfx/slots/slots_*.2bpp
+gfx/pokedex/pokedex.2bpp
+gfx/pokedex/slowpoke.2bpp
diff --git a/constants/event_flags.asm b/constants/event_flags.asm
index 2aa6bf22..bb1476b1 100644
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -621,7 +621,7 @@
const EVENT_GAVE_KURT_PNK_APRICORN
; Phone events
const EVENT_JACK_ASKED_FOR_PHONE_NUMBER
- const EVENT_JACK_READY_FOR_REMATCH ; 0260
+ const EVENT_JACK_READY_FOR_REMATCH ; 260
const EVENT_BEVERLY_ASKED_FOR_PHONE_NUMBER
const EVENT_BEVERLY_READY_FOR_REMATCH
const EVENT_HUEY_ASKED_FOR_PHONE_NUMBER
@@ -637,7 +637,7 @@
const EVENT_BETH_ASKED_FOR_PHONE_NUMBER
const EVENT_BETH_READY_FOR_REMATCH
const EVENT_JOSE_ASKED_FOR_PHONE_NUMBER
- const EVENT_JOSE_READY_FOR_REMATCH ; 0270
+ const EVENT_JOSE_READY_FOR_REMATCH ; 270
const EVENT_REENA_ASKED_FOR_PHONE_NUMBER
const EVENT_REENA_READY_FOR_REMATCH
const EVENT_JOEY_ASKED_FOR_PHONE_NUMBER
@@ -669,7 +669,7 @@
const EVENT_DEREK_ASKED_FOR_PHONE_NUMBER
const EVENT_DEREK_READY_FOR_REMATCH
const EVENT_CHRIS_ASKED_FOR_PHONE_NUMBER
- const EVENT_CHRIS_READY_FOR_REMATCH
+ const EVENT_CHRIS_READY_FOR_REMATCH ; 290
const EVENT_BRENT_ASKED_FOR_PHONE_NUMBER
const EVENT_BRENT_READY_FOR_REMATCH
const EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER
@@ -1669,7 +1669,7 @@
; The map script command macros `disappear` and `appear` set/clear these flags and immediately apply the effect on visibility.
; The map script command macros `setevent` and `clearevent` set/clear these flags, and their effects will be seen when the map is reloaded.
; Johto itemballs
- const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+ const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB ; 640
const EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
const EVENT_VIOLET_CITY_PP_UP
@@ -1685,7 +1685,7 @@
const EVENT_TIN_TOWER_4F_PP_UP
const EVENT_TIN_TOWER_4F_ESCAPE_ROPE
const EVENT_TIN_TOWER_5F_RARE_CANDY
- const EVENT_TIN_TOWER_7F_MAX_REVIVE
+ const EVENT_TIN_TOWER_7F_MAX_REVIVE ; 650
const EVENT_TIN_TOWER_8F_NUGGET
const EVENT_TIN_TOWER_8F_MAX_ELIXER
const EVENT_TIN_TOWER_8F_FULL_RESTORE
@@ -1701,7 +1701,7 @@
const EVENT_UNION_CAVE_1F_AWAKENING
const EVENT_UNION_CAVE_B1F_TM_SWIFT
const EVENT_UNION_CAVE_B1F_X_DEFEND
- const EVENT_UNION_CAVE_B2F_ELIXER
+ const EVENT_UNION_CAVE_B2F_ELIXER ; 660
const EVENT_UNION_CAVE_B2F_HYPER_POTION
const EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
const EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
@@ -1717,7 +1717,7 @@
const EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
const EVENT_TEAM_ROCKET_BASE_B3F_DIRE_HIT
const EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
- const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
+ const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL ; 670
const EVENT_ILEX_FOREST_REVIVE
const EVENT_GOLDENROD_UNDERGROUND_COIN_CASE
const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
@@ -1733,7 +1733,7 @@
const EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
const EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
const EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
- const EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
+ const EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION ; 680
const EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
const EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
const EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
@@ -1749,7 +1749,7 @@
const EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
const EVENT_ICE_PATH_B3F_NEVERMELTICE
const EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
- const EVENT_WHIRL_ISLAND_SW_GUARD_SPEC
+ const EVENT_WHIRL_ISLAND_SW_GUARD_SPEC ; 690
const EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
const EVENT_WHIRL_ISLAND_B1F_CARBOS
const EVENT_WHIRL_ISLAND_B1F_CALCIUM
@@ -1765,7 +1765,7 @@
const EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
const EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
const EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
- const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
+ const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION ; 6a0
const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
const EVENT_VICTORY_ROAD_TM_EARTHQUAKE
@@ -1781,7 +1781,7 @@
const EVENT_ROUTE_29_POTION
const EVENT_ROUTE_31_ANTIDOTE
const EVENT_ROUTE_31_POKE_BALL
- const EVENT_ROUTE_32_GREAT_BALL
+ const EVENT_ROUTE_32_GREAT_BALL ; 6b0
const EVENT_ROUTE_32_POTION
const EVENT_ROUTE_35_TM_ROLLOUT
const EVENT_ROUTE_42_ULTRA_BALL
@@ -1798,7 +1798,7 @@
const EVENT_RIVAL_NEW_BARK_TOWN
const EVENT_RIVAL_CHERRYGROVE_CITY
const EVENT_RIVAL_AZALEA_TOWN
- const EVENT_RIVAL_TEAM_ROCKET_BASE
+ const EVENT_RIVAL_TEAM_ROCKET_BASE ; 6c0
const EVENT_RIVAL_GOLDENROD_UNDERGROUND
const EVENT_RIVAL_VICTORY_ROAD
const EVENT_RIVAL_OLIVINE_CITY
@@ -1814,7 +1814,7 @@
const EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
const EVENT_RADIO_TOWER_ROCKET_TAKEOVER
const EVENT_GOLDENROD_CITY_CIVILIANS
- const EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ const EVENT_RADIO_TOWER_CIVILIANS_AFTER ; 6d0
const EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
const EVENT_OLIVINE_LIGHTHOUSE_JASMINE
const EVENT_OLIVINE_GYM_JASMINE
@@ -1830,7 +1830,7 @@
const EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
const EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
const EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
- const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+ const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 ; 6e0
const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
const EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM
@@ -1846,7 +1846,7 @@
const EVENT_ILEX_FOREST_FARFETCHD5
const EVENT_ILEX_FOREST_FARFETCHD6
const EVENT_ILEX_FOREST_FARFETCHD7
- const EVENT_ILEX_FOREST_FARFETCHD8
+ const EVENT_ILEX_FOREST_FARFETCHD8 ; 6f0
const EVENT_ILEX_FOREST_FARFETCHD9
const EVENT_ILEX_FOREST_FARFETCHD10
const EVENT_ILEX_FOREST_APPRENTICE
@@ -1862,7 +1862,7 @@
const EVENT_KURTS_HOUSE_SLOWPOKE
const EVENT_GUIDE_GENT_IN_HIS_HOUSE
const EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
- const EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+ const EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER ; 700
const EVENT_ELMS_AIDE_IN_LAB
const EVENT_COP_IN_ELMS_LAB
const EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
@@ -1878,7 +1878,7 @@
const EVENT_BOULDER_IN_ICE_PATH_1A
const EVENT_BOULDER_IN_ICE_PATH_2A
const EVENT_BOULDER_IN_ICE_PATH_3A
- const EVENT_BOULDER_IN_ICE_PATH_4A
+ const EVENT_BOULDER_IN_ICE_PATH_4A ; 710
const EVENT_MYSTERY_GIFT_DELIVERY_GUY
const EVENT_MET_BILL
const EVENT_ECRUTEAK_POKE_CENTER_BILL
@@ -1894,7 +1894,7 @@
const EVENT_BUG_CATCHING_CONTESTANT_8A
const EVENT_BUG_CATCHING_CONTESTANT_9A
const EVENT_BUG_CATCHING_CONTESTANT_10A
- const EVENT_BUG_CATCHING_CONTESTANT_1B
+ const EVENT_BUG_CATCHING_CONTESTANT_1B ; 720
const EVENT_BUG_CATCHING_CONTESTANT_2B
const EVENT_BUG_CATCHING_CONTESTANT_3B
const EVENT_BUG_CATCHING_CONTESTANT_4B
@@ -1910,7 +1910,7 @@
const EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
const EVENT_FAST_SHIP_B1F_SAILOR_LEFT
const EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
- const EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
+ const EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN ; 730
const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
const EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
@@ -1964,12 +1964,12 @@
const EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
const EVENT_BURNED_TOWER_FIREBREATHER_DICK_NORMAL
const EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES
- const EVENT_RANG_CLEAR_BELL_1
- const EVENT_RANG_CLEAR_BELL_2
- const EVENT_FLORIA_AT_FLOWER_SHOP
- const EVENT_FLORIA_AT_SUDOWOODO
- const EVENT_GOLDENROD_CITY_MOVE_TUTOR
- const EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
+ const EVENT_RANG_CLEAR_BELL_1 ; rename?
+ const EVENT_RANG_CLEAR_BELL_2 ; rename?
+ const EVENT_FLORIA_AT_FLOWER_SHOP ; rename?
+ const EVENT_FLORIA_AT_SUDOWOODO ; rename?
+ const EVENT_GOLDENROD_CITY_MOVE_TUTOR ; rename?
+ const EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR ; rename?
; Kanto people
const EVENT_ROUTE_24_ROCKET
const EVENT_CERULEAN_GYM_ROCKET
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 04c01743..1df8c368 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -23,6 +23,9 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
SPRITE_ANIM_INDEX_PARTY_MON EQU $00
SPRITE_ANIM_INDEX_GS_TITLE_TRAIL EQU $0f
SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR EQU $14
+SPRITE_ANIM_INDEX_GAMEFREAK_LOGO EQU $15
+SPRITE_ANIM_INDEX_GS_INTRO_STAR EQU $16
+SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE EQU $17
SPRITE_ANIM_INDEX_SLOTS_GOLEM EQU $18
SPRITE_ANIM_INDEX_SLOTS_CHANSEY EQU $19
SPRITE_ANIM_INDEX_SLOTS_EGG EQU $1a
diff --git a/data/phone/text/bike_shop.asm b/data/phone/text/bike_shop.asm
new file mode 100644
index 00000000..ec2ce893
--- /dev/null
+++ b/data/phone/text/bike_shop.asm
@@ -0,0 +1,19 @@
+BikeShopPhoneCallerText:
+ text "Hi, <PLAYER>!"
+ line "Our BICYCLE sales"
+
+ para "have gone through"
+ line "the roof!"
+
+ para "We owe it all to"
+ line "your advertising"
+
+ para "by riding around"
+ line "on our BICYCLE."
+
+ para "As our way of say-"
+ line "ing thanks, please"
+
+ para "keep that BICYCLE."
+ line "Thanks again!"
+ done
diff --git a/data/phone/text/bill.asm b/data/phone/text/bill.asm
new file mode 100644
index 00000000..24f4840d
--- /dev/null
+++ b/data/phone/text/bill.asm
@@ -0,0 +1,101 @@
+BillPhoneMornGreetingText:
+ text "Good morning!"
+
+ para "This is the #-"
+ line "MON STORAGE SYSTEM"
+
+ para "ADMINISTRATION"
+ line "SERVICE."
+ done
+
+BillPhoneDayGreetingText:
+ text "Good day!"
+
+ para "This is the #-"
+ line "MON STORAGE SYSTEM"
+
+ para "ADMINISTRATION"
+ line "SERVICE."
+ done
+
+BillPhoneNiteGreetingText:
+ text "Good evening!"
+
+ para "This is the #-"
+ line "MON STORAGE SYSTEM"
+
+ para "ADMINISTRATION"
+ line "SERVICE."
+ done
+
+BillPhoneGenericText:
+ text "Who's calling?"
+
+ para "<PLAYER>, is it?"
+ line "Hang on a sec…"
+
+ para "<……>"
+ line "<……>"
+ done
+
+BillPhoneNotFullText:
+ text "Thanks for"
+ line "waiting!"
+
+ para "<PLAYER>, your BOX"
+ line "has room for @"
+ text_ram wStringBuffer3
+ text_start
+ cont "more #MON."
+
+ para "Get out there and"
+ line "fill it up!"
+ done
+
+BillPhoneNearlyFullText:
+ text "Thanks for"
+ line "waiting!"
+
+ para "<PLAYER>, your BOX"
+ line "has room for only"
+ cont "@"
+ text_ram wStringBuffer3
+ text " more #MON."
+
+ para "Maybe you should"
+ line "switch your BOX."
+ done
+
+BillPhoneFullText:
+ text "Thanks for"
+ line "waiting!"
+
+ para "<PLAYER>, your BOX"
+ line "is full!"
+
+ para "You'll have to"
+ line "switch BOXES if"
+
+ para "you want to catch"
+ line "more #MON."
+ done
+
+BillPhoneNewlyFullText:
+ text "Hi, <PLAYER>?"
+ line "It's me, BILL!"
+
+ para "Thanks for using"
+ line "my STORAGE SYSTEM."
+
+ para "That last #MON"
+ line "you sent filled"
+ cont "your BOX up."
+
+ para "You'll have to"
+ line "switch BOXES if"
+
+ para "you want to catch"
+ line "more #MON."
+
+ para "Bye now!"
+ done
diff --git a/data/phone/text/elm.asm b/data/phone/text/elm.asm
new file mode 100644
index 00000000..a1450ca2
--- /dev/null
+++ b/data/phone/text/elm.asm
@@ -0,0 +1,212 @@
+ElmPhoneHealYourMonText:
+ text "Hello, <PLAYER>?"
+
+ para "Try not to overdo"
+ line "it."
+
+ para "Be sure to heal"
+ line "your #MON if"
+ cont "they are hurt."
+ done
+
+ElmPhoneSawMrPokemonText:
+ text "Hello, <PLAYER>?"
+
+ para "Did you meet MR."
+ line "#MON? Great!"
+ cont "Come back safely!"
+ done
+
+ElmPhonePokemonStolenText:
+ text "<PLAYER>? I'm very"
+ line "upset now."
+
+ para "We had a #MON"
+ line "stolen from here."
+
+ para "How could anyone"
+ line "do that?"
+ done
+
+ElmPhoneCheckingTheEggText:
+ text "Hello, <PLAYER>?"
+
+ para "We're checking the"
+ line "EGG now. It does"
+
+ para "appear to be a"
+ line "#MON EGG."
+ done
+
+ElmPhoneAssistantText:
+ text "Hello, <PLAYER>?"
+
+ para "Did you see my"
+ line "assistant? He's at"
+
+ para "the #MON CENTER"
+ line "in VIOLET CITY."
+ done
+
+ElmPhoneHowIsTheEggText:
+ text "Hello, <PLAYER>?"
+
+ para "How's the EGG? Has"
+ line "anything changed?"
+
+ para "If anything hap-"
+ line "pens, please call."
+ done
+
+ElmPhoneEggHatchedText:
+ text "Hello, <PLAYER>?"
+ line "How is the EGG?"
+
+ para "What? It hatched?"
+ line "Wow! What kind of"
+ cont "#MON is it?"
+
+ para "Please come show"
+ line "me now!"
+ done
+
+ElmPhoneDiscoveredHatchTimeText:
+ text "Hello, <PLAYER>?"
+
+ para "I just made a new"
+ line "discovery."
+
+ para "The time it takes"
+ line "for an EGG to"
+
+ para "hatch depends on"
+ line "the #MON."
+ done
+
+ElmPhoneInvestigatingEggMovesText:
+ text "Hello, <PLAYER>?"
+
+ para "It's still a"
+ line "mystery what kinds"
+
+ para "of moves hatched"
+ line "#MON have."
+
+ para "We're investigat-"
+ line "ing that now."
+ done
+
+ElmPhoneDiscoveredPokerusText:
+ text "Hello, <PLAYER>?"
+
+ para "I discovered an"
+ line "odd thing."
+
+ para "Apparently there's"
+ line "something called"
+
+ para "#RUS that in-"
+ line "fects #MON."
+
+ para "Yes, it's like a"
+ line "virus, so it's"
+ cont "called #RUS."
+
+ para "It multiplies fast"
+ line "and infects other"
+
+ para "#MON too. But"
+ line "that's all."
+
+ para "It doesn't seem to"
+ line "do anything, and"
+
+ para "it goes away over"
+ line "time."
+
+ para "I guess it's"
+ line "nothing to worry"
+ cont "about. Bye!"
+ done
+
+ElmPhoneDisasterText:
+ text "H-hello? <PLAYER>?"
+ line "It's a disaster!"
+
+ para "Uh, um, it's just"
+ line "terrible!"
+
+ para "What should I do?"
+ line "It… Oh, no…"
+
+ para "Please get back"
+ line "here now!"
+ done
+
+ElmPhoneEggAssistantText:
+ text "Hello, <PLAYER>? We"
+ line "discovered some-"
+
+ para "thing about the"
+ line "EGG!"
+
+ para "My assistant is at"
+ line "the #MON CENTER"
+
+ para "in VIOLET CITY. "
+ line "Could you talk to"
+ cont "him?"
+ done
+
+ElmPhoneRadioTowerRocketTakeoverText:
+ text "<PLAYER>, how are"
+ line "things going?"
+
+ para "I called because"
+ line "something weird is"
+
+ para "happening with the"
+ line "radio broadcasts."
+
+ para "They were talking"
+ line "about TEAM ROCKET."
+
+ para "<PLAYER>, do you"
+ line "know anything"
+ cont "about it?"
+
+ para "Maybe TEAM ROCKET"
+ line "has returned. No,"
+
+ para "that just can't"
+ line "be true."
+
+ para "Sorry to bug you."
+ line "Take care!"
+ done
+
+ElmPhoneGiftText:
+ text "Hello, <PLAYER>?"
+
+ para "I have something"
+ line "here for you."
+
+ para "Could you swing by"
+ line "my LAB?"
+
+ para "See you later!"
+ done
+
+; unused
+ElmPhoneGotAholdOfSomethingNeatText:
+ text "Hello, <PLAYER>?"
+ line "How's it going?"
+
+ para "I got ahold of"
+ line "something neat."
+
+ para "Swing by my LAB"
+ line "and pick it up!"
+
+ para "See you later!"
+ done
diff --git a/data/phone/text/landmarks.asm b/data/phone/text/landmarks.asm
new file mode 100644
index 00000000..175f6111
--- /dev/null
+++ b/data/phone/text/landmarks.asm
@@ -0,0 +1,67 @@
+PhoneNationalParkText:
+ db "NATIONAL PARK@"
+
+PhoneLighthouseText:
+ db "LIGHTHOUSE@"
+
+; unreferenced
+PhoneUndergroundText:
+ db "UNDERGROUND@"
+
+PhoneDarkCaveText:
+ db "DARK CAVE@"
+
+PhoneMtMortarText:
+ db "MT.MORTAR@"
+
+PhoneRoute26Text:
+ db "ROUTE 26@"
+
+PhoneRoute27Text:
+ db "ROUTE 27@"
+
+PhoneRoute30Text:
+ db "ROUTE 30@"
+
+PhoneRoute31Text:
+ db "ROUTE 31@"
+
+PhoneRoute32Text:
+ db "ROUTE 32@"
+
+PhoneRoute33Text:
+ db "ROUTE 33@"
+
+PhoneRoute34Text:
+ db "ROUTE 34@"
+
+PhoneRoute35Text:
+ db "ROUTE 35@"
+
+PhoneRoute36Text:
+ db "ROUTE 36@"
+
+; unreferenced
+PhoneRoute37Text:
+ db "ROUTE 37@"
+
+PhoneRoute38Text:
+ db "ROUTE 38@"
+
+PhoneRoute39Text:
+ db "ROUTE 39@"
+
+PhoneRoute42Text:
+ db "ROUTE 42@"
+
+PhoneRoute43Text:
+ db "ROUTE 43@"
+
+PhoneRoute44Text:
+ db "ROUTE 44@"
+
+PhoneRoute45Text:
+ db "ROUTE 45@"
+
+PhoneRoute46Text:
+ db "ROUTE 46@"
diff --git a/data/phone/text/mom.asm b/data/phone/text/mom.asm
new file mode 100644
index 00000000..75e8dfbb
--- /dev/null
+++ b/data/phone/text/mom.asm
@@ -0,0 +1,165 @@
+MomPhoneGreetingText:
+ text "Hello?"
+
+ para "Oh, hi, <PLAYER>!"
+ line "Working hard?"
+ done
+
+MomPhoneLandmarkText:
+ text "Oh, so you're in"
+ line "@"
+ text_ram wStringBuffer3
+ text "…"
+
+ para "Isn't that where"
+ line "@"
+ text_ram wStringBuffer4
+ text_start
+ para "is? Did you go"
+ line "take a look?"
+ done
+
+MomPhoneGenericAreaText:
+ text "Really, you're in"
+ line "@"
+ text_ram wStringBuffer3
+ text "?"
+
+ para "I've never gone"
+ line "there. That's kind"
+ cont "of neat, <PLAYER>."
+ done
+
+MomPhoneNewBarkText:
+ text "What? You're in"
+ line "@"
+ text_ram wStringBuffer3
+ text "?"
+
+ para "Come see your MOM"
+ line "sometime!"
+ done
+
+MomPhoneCherrygroveText:
+ text "You're visiting"
+ line "@"
+ text_ram wStringBuffer3
+ text "?"
+
+ para "How about coming"
+ line "home for a bit?"
+ done
+
+MomOtherAreaText:
+ text "Wow, you're in"
+ line "@"
+ text_ram wStringBuffer3
+ text "?"
+
+ para "Good luck on your"
+ line "#MON quest!"
+ done
+
+MomDeterminedText:
+ text "That sounds really"
+ line "tough."
+
+ para "But, <PLAYER>, I"
+ line "know you're really"
+
+ para "determined. You'll"
+ line "be OK, right?"
+ done
+
+MomCheckBalanceText:
+ text "By the way, you've"
+ line "saved up ¥@"
+ text_ram wStringBuffer3
+ text "."
+
+ para "Do you want to"
+ line "keep on saving?"
+ done
+
+MomImportantToSaveText:
+ text "It's important to"
+ line "save your money."
+ done
+
+MomYoureNotSavingText:
+ text "Oh, <PLAYER>,"
+ line "you're not saving"
+
+ para "any money. Would"
+ line "you like to save?"
+ done
+
+MomYouveSavedText:
+ text "By the way, you've"
+ line "saved up ¥@"
+ text_ram wStringBuffer3
+ text "."
+
+ para "Want to start"
+ line "saving again?"
+ done
+
+MomOKIllSaveText:
+ text "OK. I'll save your"
+ line "money."
+ done
+
+MomPhoneStopSavingMoneyText:
+ text "OK. I'll stop"
+ line "saving your money."
+ done
+
+MomPhoneHangUpText:
+ text "<PLAYER>, keep it"
+ line "up! I'm rooting"
+ cont "for you, baby!"
+ done
+
+MomPhoneNoPokemonText:
+ text "Hello?"
+
+ para "Oh, hi, <PLAYER>!"
+ line "Wasn't PROF.ELM"
+ cont "waiting for you?"
+ done
+
+MomPhoneNoPokedexText:
+ text "Hello?"
+
+ para "Oh, hi, <PLAYER>!"
+ line "You're on a big"
+
+ para "mission for PROF."
+ line "ELM? Be good!"
+ done
+
+MomPhoneNoGymQuestText:
+ text "Hello?"
+
+ para "Hi, <PLAYER>! If"
+ line "you're done with"
+
+ para "your errand come"
+ line "on home, dear."
+ done
+
+MomPhoneLectureText:
+ text "Hello?"
+
+ para "…… <PLAYER>?"
+ line "I heard from PROF."
+
+ para "ELM that you went"
+ line "on a long trip."
+
+ para "I wish you would"
+ line "have told me…"
+
+ para "What about money?"
+ line "Should I save it?"
+ done
diff --git a/data/phone/text/trainers.asm b/data/phone/text/trainers.asm
new file mode 100644
index 00000000..2a15811c
--- /dev/null
+++ b/data/phone/text/trainers.asm
@@ -0,0 +1,355 @@
+PhoneMaleAnswerMornText:
+ text "Hello. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "…"
+
+ para "Good morning,"
+ line "<PLAYER>!"
+ done
+
+PhoneMaleAnswerDayText:
+ text "Hello. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "…"
+
+ para "How's it going,"
+ line "<PLAYER>?"
+ done
+
+PhoneMaleAnswerNiteText:
+ text "Hello. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "…"
+
+ para "Good evening,"
+ line "<PLAYER>!"
+ done
+
+PhoneFemaleAnswerMornText:
+ text "Hi. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "."
+
+ para "Hi, <PLAYER>!"
+ line "Good morning."
+ done
+
+PhoneFemaleAnswerDayText:
+ text "Hi. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "."
+
+ para "Hi, <PLAYER>!"
+ line "How are you?"
+ done
+
+PhoneFemaleAnswerNiteText:
+ text "Hi. This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "."
+
+ para "Hi, <PLAYER>!"
+ line "Good evening."
+ done
+
+PhoneMaleGreetMornText:
+ text "<PLAYER>, good"
+ line "morning!"
+
+ para "It's me, @"
+ text_ram wStringBuffer3
+ text "."
+ line "How are you doing?"
+ done
+
+PhoneMaleGreetDayText:
+ text "<PLAYER>, howdy!"
+
+ para "It's me, @"
+ text_ram wStringBuffer3
+ text "."
+ line "Isn't it nice out?"
+ done
+
+PhoneMaleGreetNiteText:
+ text "<PLAYER>, good"
+ line "evening!"
+
+ para "It's me, @"
+ text_ram wStringBuffer3
+ text "."
+ line "Got a minute?"
+ done
+
+PhoneFemaleGreetMornText:
+ text "Good morning,"
+ line "<PLAYER>."
+
+ para "This is @"
+ text_ram wStringBuffer3
+ text "."
+ line "Did I wake you?"
+ done
+
+PhoneFemaleGreetDayText:
+ text "Hello, <PLAYER>."
+
+ para "This is @"
+ text_ram wStringBuffer3
+ text "."
+ line "How are things?"
+ done
+
+PhoneFemaleGreetNiteText:
+ text "Good evening,"
+ line "<PLAYER>."
+
+ para "This is @"
+ text_ram wStringBuffer3
+ text "."
+ line "Were you awake?"
+ done
+
+PhoneMaleReallyEnergeticText:
+ text "How are your"
+ line "#MON doing?"
+
+ para "My @"
+ text_ram wStringBuffer4
+ text "'s"
+ line "really energetic."
+ cont "It's a handful!"
+ done
+
+PhoneFemaleTopShapeText:
+ text "How are your"
+ line "#MON doing?"
+
+ para "I always keep my"
+ line "@"
+ text_ram wStringBuffer4
+ text " in top"
+
+ para "shape by going to"
+ line "#MON CENTERS."
+ done
+
+PhoneMaleLookingAwesomeText:
+ text "My @"
+ text_ram wStringBuffer4
+ text "'s"
+ line "looking awesome."
+
+ para "I wish I could"
+ line "show you."
+ done
+
+PhoneFemaleDressedUpText:
+ text "I dressed up my"
+ line "@"
+ text_ram wStringBuffer4
+ text "."
+
+ para "It looks even"
+ line "cuter than before."
+ done
+
+PhoneMaleManagedToBeatText:
+ text "Oh, yeah, I man-"
+ line "aged to beat a"
+ cont "tough @"
+ text_ram wStringBuffer4
+ text "."
+
+ para "I need to make my"
+ line "party stronger."
+ done
+
+PhoneFemaleTypeAdvantageText:
+ text "You have to hear"
+ line "this! I battled"
+
+ para "@"
+ text_ram wStringBuffer4
+ text " the"
+ line "other day."
+
+ para "It was easy! I had"
+ line "a type advantage."
+ done
+
+PhoneMaleAlmostCaughtText:
+ text "Hey, listen!"
+ line "I almost caught"
+
+ para "@"
+ text_ram wStringBuffer4
+ text " the"
+ line "other day."
+
+ para "Oh, it was soooo"
+ line "close too!"
+ done
+
+PhoneFemaleMissedCatchingText:
+ text "Guess what happen-"
+ line "ed the other day."
+
+ para "I missed catching"
+ line "@"
+ text_ram wStringBuffer4
+ text " again."
+
+ para "Maybe I'm not very"
+ line "good at this…"
+ done
+
+PhoneMaleWantsToBattleText:
+ text "Want to battle?"
+ line "It's not going to"
+
+ para "be a repeat of the"
+ line "last time we met."
+
+ para "I'll be around"
+ line "@"
+ text_ram wStringBuffer5
+ text "."
+ done
+
+PhoneFemaleWantsToBattleText:
+ text "Do you want to"
+ line "battle? I'm going"
+ cont "to win this time!"
+
+ para "I'll be waiting"
+ line "for you around"
+
+ para "@"
+ text_ram wStringBuffer5
+ text "."
+ line "Look for me, OK?"
+ done
+
+PhoneWrongNumberKazText:
+ text "Hello? This is"
+ line "@"
+ text_ram wStringBuffer3
+ text "…"
+
+ para "Uh-oh… You're not"
+ line "KAZ! Sorry, wrong"
+ cont "number."
+ done
+
+PhoneWrongNumberAudreyText:
+ text "Hello, this is"
+ line "@"
+ text_ram wStringBuffer3
+ text ". How are"
+ cont "you doing, AUDREY?"
+
+ para "Huh? <PLAYER>?"
+ line "Oops! My mistake!"
+ done
+
+PhoneSeeYouLaterText:
+ text "See you later!"
+ done
+
+PhoneByeByeText:
+ text "Bye-bye!"
+ done
+
+PhoneSwarmGrassText:
+ text "You have to see"
+ line "this! It's wild!"
+
+ para "A whole bunch of"
+ line "@"
+ text_ram wStringBuffer4
+ text " have"
+
+ para "shown up around"
+ line "@"
+ text_ram wStringBuffer5
+ text "!"
+ done
+
+PhoneSwarmFishText:
+ text "It's amazing!"
+
+ para "On @"
+ text_ram wStringBuffer5
+ text ","
+ line "@"
+ text_ram wStringBuffer4
+ text " are"
+
+ para "biting like there"
+ line "is no tomorrow."
+
+ para "<PLAYER>, bring"
+ line "your ROD, buddy!"
+ done
+
+PhoneSwarmCaveText:
+ text "A friend just told"
+ line "me this."
+
+ para "He saw a lot of"
+ line "@"
+ text_ram wStringBuffer4
+ text " in"
+ cont "@"
+ text_ram wStringBuffer5
+ text "."
+
+ para "<PLAYER>, you ought"
+ line "to go look."
+ done
+
+PhoneBugCatchingContestText:
+ text "They're holding"
+ line "the Bug-Catching"
+
+ para "Contest today at"
+ line "the PARK."
+
+ para "<PLAYER>, are you"
+ line "going to go?"
+ done
+
+IrwinRocketTakeoverRumorText:
+ text "<PLAYER>, did you"
+ line "know?"
+
+ para "I hear GOLDENROD's"
+ line "RADIO TOWER was"
+
+ para "taken over by TEAM"
+ line "ROCKET."
+
+ para "But what exactly"
+ line "is TEAM ROCKET?"
+ done
+
+GinaRocketTakeoverRumorText:
+ text "<PLAYER>, did you"
+ line "hear the news?"
+
+ para "TEAM ROCKET has"
+ line "taken over the"
+
+ para "RADIO TOWER in"
+ line "GOLDENROD CITY."
+
+ para "I wonder if the"
+ line "workers are OK…"
+ done
diff --git a/data/phone/text/unused.asm b/data/phone/text/unused.asm
new file mode 100644
index 00000000..cd1cf723
--- /dev/null
+++ b/data/phone/text/unused.asm
@@ -0,0 +1,3 @@
+UnusedPhoneText:
+ text "Good morning."
+ done
diff --git a/data/text/std_text.asm b/data/text/std_text.asm
new file mode 100644
index 00000000..4c57e2e6
--- /dev/null
+++ b/data/text/std_text.asm
@@ -0,0 +1,422 @@
+NurseMornText:
+ text "Good morning!"
+ line "Welcome to our"
+ cont "#MON CENTER."
+ done
+
+NurseDayText:
+ text "Hello!"
+ line "Welcome to our"
+ cont "#MON CENTER."
+ done
+
+NurseNiteText:
+ text "Good evening!"
+ line "You're out late."
+
+ para "Welcome to our"
+ line "#MON CENTER."
+ done
+
+NurseAskHealText:
+ text "We can heal your"
+ line "#MON to perfect"
+ cont "health."
+
+ para "Shall we heal your"
+ line "#MON?"
+ done
+
+NurseTakePokemonText:
+ text "OK, may I see your"
+ line "#MON?"
+ done
+
+NurseReturnPokemonText:
+ text "Thank you for"
+ line "waiting."
+
+ para "Your #MON are"
+ line "fully healed."
+ done
+
+NurseGoodbyeText:
+ text "We hope to see you"
+ line "again."
+ done
+
+; not used
+ text "We hope to see you"
+ line "again."
+ done
+
+NursePokerusText:
+ text "Your #MON ap-"
+ line "pear to have tiny"
+
+ para "life forms stuck"
+ line "to them."
+
+ para "Your #MON are"
+ line "healthy and seem"
+ cont "to be fine."
+
+ para "But we can't tell"
+ line "you anything more"
+
+ para "at a #MON"
+ line "CENTER."
+ done
+
+DifficultBookshelfText:
+ text "It's full of"
+ line "difficult books."
+ done
+
+PictureBookshelfText:
+ text "A whole collection"
+ line "of #MON picture"
+ cont "books!"
+ done
+
+MagazineBookshelfText:
+ text "#MON magazines…"
+ line "#MON PAL,"
+
+ para "#MON HANDBOOK,"
+ line "#MON GRAPH…"
+ done
+
+TeamRocketOathText:
+ text "TEAM ROCKET OATH"
+
+ para "Steal #MON for"
+ line "profit!"
+
+ para "Exploit #MON"
+ line "for profit!"
+
+ para "All #MON exist"
+ line "for the glory of"
+ cont "TEAM ROCKET!"
+ done
+
+IncenseBurnerText:
+ text "What is this?"
+
+ para "Oh, it's an"
+ line "incense burner!"
+ done
+
+MerchandiseShelfText:
+ text "Lots of #MON"
+ line "merchandise!"
+ done
+
+LookTownMapText:
+ text "It's the TOWN MAP."
+ done
+
+WindowText:
+ text "My reflection!"
+ line "Lookin' good!"
+ done
+
+TVText:
+ text "It's a TV."
+ done
+
+HomepageText:
+ text "#MON JOURNAL"
+ line "HOME PAGE…"
+
+ para "It hasn't been"
+ line "updated…"
+ done
+
+; not used
+ text "#MON RADIO!"
+
+ para "Call in with your"
+ line "requests now!"
+ done
+
+TrashCanText:
+ text "There's nothing in"
+ line "here…"
+ done
+
+; not used
+ text "A #MON may be"
+ line "able to move this."
+ done
+
+; not used
+ text "Maybe a #MON"
+ line "can break this."
+ done
+
+PokecenterSignText:
+ text "Heal Your #MON!"
+ line "#MON CENTER"
+ done
+
+MartSignText:
+ text "For All Your"
+ line "#MON Needs"
+
+ para "#MON MART"
+ done
+
+ContestResults_ReadyToJudgeText:
+ text "We will now judge"
+ line "the #MON you've"
+ cont "caught."
+
+ para "<……>"
+ line "<……>"
+
+ para "We have chosen the"
+ line "winners!"
+
+ para "Are you ready for"
+ line "this?"
+ done
+
+AskNumber1MText:
+ text "Wow! You're pretty"
+ line "tough."
+
+ para "Could I get your"
+ line "phone number?"
+
+ para "I'll call you for"
+ line "a rematch."
+ done
+
+AskNumber2MText:
+ text "Register the phone"
+ line "number?"
+ done
+
+RegisteredNumberMText:
+ text "<PLAYER> registered"
+ line "@"
+ text_ram wStringBuffer3
+ text "'s number."
+ done
+
+NumberAcceptedMText:
+ text "I'll call you if"
+ line "anything comes up."
+ done
+
+NumberDeclinedMText:
+ text "Oh, OK…"
+ line "Just talk to me if"
+
+ para "you want to get my"
+ line "phone number."
+ done
+
+PhoneFullMText:
+ text "Your phone doesn't"
+ line "have enough memory"
+ cont "for more numbers."
+ done
+
+RematchMText:
+ text "I was waiting for"
+ line "you. Let's battle!"
+ done
+
+AskNumber1FText:
+ text "Wow, you're good"
+ line "at battling."
+
+ para "Want to give me"
+ line "your phone number?"
+
+ para "I'll phone you for"
+ line "another battle."
+ done
+
+AskNumber2FText:
+ text "Register the phone"
+ line "number?"
+ done
+
+RegisteredNumberFText:
+ text "<PLAYER> registered"
+ line "@"
+ text_ram wStringBuffer3
+ text "'s number."
+ done
+
+NumberAcceptedFText:
+ text "I'll call you if"
+ line "something's up."
+ done
+
+NumberDeclinedFText:
+ text "Oh, fine then…"
+ line "If you want to get"
+
+ para "my phone number,"
+ line "just tell me."
+ done
+
+PhoneFullFText:
+ text "Your phone doesn't"
+ line "have enough memory"
+ cont "for more numbers."
+ done
+
+RematchFText:
+ text "I waited for you."
+ line "Let's battle!"
+ done
+
+ContestResults_PlayerWonAPrizeText:
+ text "<PLAYER> wins the"
+ line "No. @"
+ text_ram wStringBuffer3
+ text " prize,"
+ cont "a @"
+ text_ram wStringBuffer4
+ text "!"
+ done
+
+ReceivedItemText:
+ text "<PLAYER> received"
+ line "@"
+ text_ram wStringBuffer4
+ text "."
+ done
+
+ContestResults_JoinUsNextTimeText:
+ text "Please join us for"
+ line "the next Contest!"
+ done
+
+ContestResults_ConsolationPrizeText:
+ text "Everyone else gets"
+ line "a BERRY as a con-"
+ cont "solation prize!"
+ done
+
+ContestResults_DidNotWinText:
+ text "We hope you do"
+ line "better next time."
+ done
+
+ContestResults_ReturnPartyText:
+ text "We'll return the"
+ line "#MON we kept"
+
+ para "for you."
+ line "Here you go!"
+ done
+
+ContestResults_PartyFullText:
+ text "Your party's full,"
+ line "so the #MON was"
+
+ para "sent to your BOX"
+ line "in BILL's PC."
+ done
+
+GymStatue_CityGymText:
+ text_ram wStringBuffer3
+ text_start
+ line "#MON GYM"
+ done
+
+GymStatue_WinningTrainersText:
+ text "LEADER: @"
+ text_ram wStringBuffer4
+ text_start
+ para "WINNING TRAINERS:"
+ line "<PLAYER>"
+ done
+
+CoinVendor_WelcomeText:
+ text "Welcome to the"
+ line "GAME CORNER."
+ done
+
+CoinVendor_NoCoinCaseText:
+ text "Do you need game"
+ line "coins?"
+
+ para "Oh, you don't have"
+ line "a COIN CASE for"
+ cont "your coins."
+ done
+
+CoinVendor_IntroText:
+ text "Do you need some"
+ line "game coins?"
+
+ para "It costs ¥1000 for"
+ line "50 coins. Do you"
+ cont "want some?"
+ done
+
+CoinVendor_Buy50CoinsText:
+ text "Thank you!"
+ line "Here are 50 coins."
+ done
+
+CoinVendor_Buy500CoinsText:
+ text "Thank you! Here"
+ line "are 500 coins."
+ done
+
+CoinVendor_NotEnoughMoneyText:
+ text "You don't have"
+ line "enough money."
+ done
+
+CoinVendor_CoinCaseFullText:
+ text "Whoops! Your COIN"
+ line "CASE is full."
+ done
+
+CoinVendor_CancelText:
+ text "No coins for you?"
+ line "Come again!"
+ done
+
+BugContestPrizeNoRoomText:
+ text "Oh? Your PACK is"
+ line "full."
+
+ para "We'll keep this"
+ line "for you today, so"
+
+ para "come back when you"
+ line "make room for it."
+ done
+
+HappinessText3:
+ text "Wow! You and your"
+ line "#MON are really"
+ cont "close!"
+ done
+
+HappinessText2:
+ text "#MON get more"
+ line "friendly if you"
+
+ para "spend time with"
+ line "them."
+ done
+
+HappinessText1:
+ text "You haven't tamed"
+ line "your #MON."
+
+ para "If you aren't"
+ line "nice, it'll pout."
+ done
diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm
new file mode 100644
index 00000000..bdc90c55
--- /dev/null
+++ b/engine/events/std_scripts.asm
@@ -0,0 +1,774 @@
+StdScripts::
+; entries correspond to constants/std_constants.asm
+ dba PokecenterNurseScript
+ dba DifficultBookshelfScript
+ dba PictureBookshelfScript
+ dba MagazineBookshelfScript
+ dba TeamRocketOathScript
+ dba IncenseBurnerScript
+ dba MerchandiseShelfScript
+ dba TownMapScript
+ dba WindowScript
+ dba TVScript
+ dba HomepageScript
+ dba Radio1Script
+ dba Radio2Script
+ dba TrashCanScript
+ dba StrengthBoulderScript
+ dba SmashRockScript
+ dba PokecenterSignScript
+ dba MartSignScript
+ dba GoldenrodRocketsScript
+ dba RadioTowerRocketsScript
+ dba ElevatorButtonScript
+ dba DayToTextScript
+ dba BugContestResultsWarpScript
+ dba BugContestResultsScript
+ dba InitializeEventsScript
+ dba AskNumber1MScript
+ dba AskNumber2MScript
+ dba RegisteredNumberMScript
+ dba NumberAcceptedMScript
+ dba NumberDeclinedMScript
+ dba PhoneFullMScript
+ dba RematchMScript
+ dba AskNumber1FScript
+ dba AskNumber2FScript
+ dba RegisteredNumberFScript
+ dba NumberAcceptedFScript
+ dba NumberDeclinedFScript
+ dba PhoneFullFScript
+ dba RematchFScript
+ dba GymStatue1Script
+ dba GymStatue2Script
+ dba ReceiveItemScript
+ dba ReceiveTogepiEggScript
+ dba PCScript
+ dba GameCornerCoinVendorScript
+ dba HappinessCheckScript
+
+PokecenterNurseScript:
+ opentext
+ checktime MORN
+ iftrue .morn
+ checktime DAY
+ iftrue .day
+ checktime NITE
+ iftrue .nite
+ sjump .ok
+
+.morn
+ writetext NurseMornText
+ promptbutton
+ sjump .ok
+
+.day
+ writetext NurseDayText
+ promptbutton
+ sjump .ok
+
+.nite
+ writetext NurseNiteText
+ promptbutton
+ sjump .ok
+
+.ok
+ writetext NurseAskHealText
+ yesorno
+ iffalse .done
+
+ writetext NurseTakePokemonText
+ pause 20
+ turnobject LAST_TALKED, LEFT
+ pause 10
+ special HealParty
+ playmusic MUSIC_NONE
+ setval HEALMACHINE_POKECENTER
+ special HealMachineAnim
+ pause 30
+ special RestartMapMusic
+ turnobject LAST_TALKED, DOWN
+ pause 10
+
+ checkphonecall ; elm already called about pokerus
+ iftrue .no
+ checkflag ENGINE_CAUGHT_POKERUS
+ iftrue .no
+ special CheckPokerus
+ iftrue .pokerus
+.no
+ writetext NurseReturnPokemonText
+ pause 20
+
+.done
+ writetext NurseGoodbyeText
+
+ turnobject LAST_TALKED, UP
+ pause 10
+ turnobject LAST_TALKED, DOWN
+ pause 10
+
+ waitbutton
+ closetext
+ end
+
+.pokerus
+ writetext NursePokerusText
+ waitbutton
+ closetext
+ setflag ENGINE_CAUGHT_POKERUS
+ specialphonecall SPECIALCALL_POKERUS
+ end
+
+DifficultBookshelfScript:
+ jumptext DifficultBookshelfText
+
+PictureBookshelfScript:
+ jumptext PictureBookshelfText
+
+MagazineBookshelfScript:
+ jumptext MagazineBookshelfText
+
+TeamRocketOathScript:
+ jumptext TeamRocketOathText
+
+IncenseBurnerScript:
+ jumptext IncenseBurnerText
+
+MerchandiseShelfScript:
+ jumptext MerchandiseShelfText
+
+TownMapScript:
+ opentext
+ writetext LookTownMapText
+ waitbutton
+ special OverworldTownMap
+ closetext
+ end
+
+WindowScript:
+ jumptext WindowText
+
+TVScript:
+ opentext
+ writetext TVText
+ waitbutton
+ closetext
+ end
+
+HomepageScript:
+ jumptext HomepageText
+
+Radio1Script:
+ opentext
+ setval MAPRADIO_POKEMON_CHANNEL
+ special MapRadio
+ closetext
+ end
+
+Radio2Script:
+; Lucky Channel
+ opentext
+ setval MAPRADIO_LUCKY_CHANNEL
+ special MapRadio
+ closetext
+ end
+
+TrashCanScript:
+ jumptext TrashCanText
+
+PCScript:
+ opentext
+ special PokemonCenterPC
+ closetext
+ end
+
+ElevatorButtonScript:
+ playsound SFX_READ_TEXT_2
+ pause 15
+ playsound SFX_ELEVATOR_END
+ end
+
+StrengthBoulderScript:
+ farsjump AskStrengthScript
+
+SmashRockScript:
+ farsjump AskRockSmashScript
+
+PokecenterSignScript:
+ jumptext PokecenterSignText
+
+MartSignScript:
+ jumptext MartSignText
+
+DayToTextScript:
+ readvar VAR_WEEKDAY
+ ifequal MONDAY, .Monday
+ ifequal TUESDAY, .Tuesday
+ ifequal WEDNESDAY, .Wednesday
+ ifequal THURSDAY, .Thursday
+ ifequal FRIDAY, .Friday
+ ifequal SATURDAY, .Saturday
+ getstring STRING_BUFFER_3, .SundayText
+ end
+.Monday:
+ getstring STRING_BUFFER_3, .MondayText
+ end
+.Tuesday:
+ getstring STRING_BUFFER_3, .TuesdayText
+ end
+.Wednesday:
+ getstring STRING_BUFFER_3, .WednesdayText
+ end
+.Thursday:
+ getstring STRING_BUFFER_3, .ThursdayText
+ end
+.Friday:
+ getstring STRING_BUFFER_3, .FridayText
+ end
+.Saturday:
+ getstring STRING_BUFFER_3, .SaturdayText
+ end
+.SundayText:
+ db "SUNDAY@"
+.MondayText:
+ db "MONDAY@"
+.TuesdayText:
+ db "TUESDAY@"
+.WednesdayText:
+ db "WEDNESDAY@"
+.ThursdayText:
+ db "THURSDAY@"
+.FridayText:
+ db "FRIDAY@"
+.SaturdayText:
+ db "SATURDAY@"
+
+GoldenrodRocketsScript:
+ clearevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ end
+
+RadioTowerRocketsScript:
+ setflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ setevent EVENT_GOLDENROD_CITY_CIVILIANS
+ setevent EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+ clearevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ clearevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ setevent EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
+ specialphonecall SPECIALCALL_WEIRDBROADCAST
+ setmapscene MAHOGANY_TOWN, SCENE_FINISHED
+ end
+
+BugContestResultsWarpScript:
+ special ClearBGPalettes
+ scall BugContestResults_CopyContestantsToResults
+ setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+ clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
+ setevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
+ warp ROUTE_36_NATIONAL_PARK_GATE, 0, 4
+ applymovement PLAYER, Movement_ContestResults_WalkAfterWarp
+
+BugContestResultsScript:
+ clearflag ENGINE_BUG_CONTEST_TIMER
+ clearevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
+ clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
+ clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
+ clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
+ clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
+ opentext
+ writetext ContestResults_ReadyToJudgeText
+ waitbutton
+ special BugContestJudging
+ getnum STRING_BUFFER_3
+ ifequal 1, BugContestResults_FirstPlace
+ ifequal 2, BugContestResults_SecondPlace
+ ifequal 3, BugContestResults_ThirdPlace
+ writetext ContestResults_ConsolationPrizeText
+ promptbutton
+ waitsfx
+ verbosegiveitem BERRY
+ iffalse BugContestResults_NoRoomForBerry
+
+BugContestResults_DidNotWin:
+ writetext ContestResults_DidNotWinText
+ promptbutton
+ sjump BugContestResults_FinishUp
+
+BugContestResults_ReturnAfterWinnersPrize:
+ writetext ContestResults_JoinUsNextTimeText
+ promptbutton
+
+BugContestResults_FinishUp:
+ checkevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
+ iffalse BugContestResults_DidNotLeaveMons
+ writetext ContestResults_ReturnPartyText
+ waitbutton
+ special ContestReturnMons
+BugContestResults_DidNotLeaveMons:
+ special CheckPartyFullAfterContest
+ ifequal BUGCONTEST_CAUGHT_MON, BugContestResults_CleanUp
+ ifequal BUGCONTEST_NO_CATCH, BugContestResults_CleanUp
+ ; BUGCONTEST_BOXED_MON
+ writetext ContestResults_PartyFullText
+ waitbutton
+BugContestResults_CleanUp:
+ closetext
+ setscene SCENE_ROUTE36NATIONALPARKGATE_NOTHING
+ setmapscene ROUTE_35_NATIONAL_PARK_GATE, SCENE_ROUTE35NATIONALPARKGATE_NOTHING
+ setevent EVENT_BUG_CATCHING_CONTESTANT_1A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_2A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_3A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_4A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_5A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_6A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_7A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_8A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_9A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_10A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_1B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_2B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_3B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_4B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_5B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_6B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_7B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_8B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_9B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_10B
+ setflag ENGINE_DAILY_BUG_CONTEST
+ special PlayMapMusic
+ end
+
+BugContestResults_FirstPlace:
+ setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
+ getitemname STRING_BUFFER_4, SUN_STONE
+ writetext ContestResults_PlayerWonAPrizeText
+ waitbutton
+ verbosegiveitem SUN_STONE
+ iffalse BugContestResults_NoRoomForSunStone
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_SecondPlace:
+ getitemname STRING_BUFFER_4, EVERSTONE
+ writetext ContestResults_PlayerWonAPrizeText
+ waitbutton
+ verbosegiveitem EVERSTONE
+ iffalse BugContestResults_NoRoomForEverstone
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_ThirdPlace:
+ getitemname STRING_BUFFER_4, GOLD_BERRY
+ writetext ContestResults_PlayerWonAPrizeText
+ waitbutton
+ verbosegiveitem GOLD_BERRY
+ iffalse BugContestResults_NoRoomForGoldBerry
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_NoRoomForSunStone:
+ writetext BugContestPrizeNoRoomText
+ promptbutton
+ setevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_NoRoomForEverstone:
+ writetext BugContestPrizeNoRoomText
+ promptbutton
+ setevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_NoRoomForGoldBerry:
+ writetext BugContestPrizeNoRoomText
+ promptbutton
+ setevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
+ sjump BugContestResults_ReturnAfterWinnersPrize
+
+BugContestResults_NoRoomForBerry:
+ writetext BugContestPrizeNoRoomText
+ promptbutton
+ setevent EVENT_CONTEST_OFFICER_HAS_BERRY
+ sjump BugContestResults_DidNotWin
+
+BugContestResults_CopyContestantsToResults:
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_1A
+ iftrue .skip1
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_1B
+.skip1
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_2A
+ iftrue .skip2
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_2B
+.skip2
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_3A
+ iftrue .skip3
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_3B
+.skip3
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_4A
+ iftrue .skip4
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_4B
+.skip4
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_5A
+ iftrue .skip5
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_5B
+.skip5
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_6A
+ iftrue .skip6
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_6B
+.skip6
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_7A
+ iftrue .skip7
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_7B
+.skip7
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_8A
+ iftrue .skip8
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_8B
+.skip8
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_9A
+ iftrue .skip9
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_9B
+.skip9
+ checkevent EVENT_BUG_CATCHING_CONTESTANT_10A
+ iftrue .skip10
+ clearevent EVENT_BUG_CATCHING_CONTESTANT_10B
+.skip10
+ end
+
+InitializeEventsScript:
+ setevent EVENT_EARLS_ACADEMY_EARL
+ setevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ setevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ setevent EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ setevent EVENT_ILEX_FOREST_APPRENTICE
+ setevent EVENT_ILEX_FOREST_FARFETCHD1
+ setevent EVENT_ILEX_FOREST_FARFETCHD2
+ setevent EVENT_ILEX_FOREST_FARFETCHD3
+ setevent EVENT_ILEX_FOREST_FARFETCHD4
+ setevent EVENT_ILEX_FOREST_FARFETCHD5
+ setevent EVENT_ILEX_FOREST_FARFETCHD6
+ setevent EVENT_ILEX_FOREST_FARFETCHD7
+ setevent EVENT_ILEX_FOREST_FARFETCHD8
+ setevent EVENT_ILEX_FOREST_FARFETCHD9
+ setevent EVENT_ILEX_FOREST_FARFETCHD10
+ setevent EVENT_ILEX_FOREST_CHARCOAL_MASTER
+ setevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
+ setevent EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE
+ setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
+ setevent EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
+ setevent EVENT_RIVAL_TEAM_ROCKET_BASE
+ setevent EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM
+ setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
+ setevent EVENT_RIVAL_CHERRYGROVE_CITY
+ setevent EVENT_RIVAL_AZALEA_TOWN
+ setevent EVENT_RIVAL_GOLDENROD_UNDERGROUND
+ setevent EVENT_AZALEA_TOWN_SLOWPOKES
+ setevent EVENT_KURTS_HOUSE_SLOWPOKE
+ setevent EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE
+ setevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+ setevent EVENT_COP_IN_ELMS_LAB
+ setevent EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
+ setevent EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
+ setevent EVENT_BOULDER_IN_ICE_PATH_1A
+ setevent EVENT_BOULDER_IN_ICE_PATH_2A
+ setevent EVENT_BOULDER_IN_ICE_PATH_3A
+ setevent EVENT_BOULDER_IN_ICE_PATH_4A
+ setevent EVENT_ROUTE_30_YOUNGSTER_JOEY
+ setevent EVENT_BUG_CATCHING_CONTESTANT_1A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_2A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_3A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_4A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_5A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_6A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_7A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_8A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_9A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_10A
+ setevent EVENT_BUG_CATCHING_CONTESTANT_1B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_2B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_3B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_4B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_5B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_6B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_7B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_8B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_9B
+ setevent EVENT_BUG_CATCHING_CONTESTANT_10B
+ setevent EVENT_FAST_SHIP_1F_GENTLEMAN
+ setevent EVENT_FAST_SHIP_B1F_SAILOR_RIGHT
+ setevent EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+ setevent EVENT_LAKE_OF_RAGE_CIVILIANS
+ setevent EVENT_MAHOGANY_MART_OWNERS
+ setevent EVENT_TIN_TOWER_ROOF_HO_OH
+ setevent EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+ setevent EVENT_PLAYERS_HOUSE_2F_CONSOLE
+ setevent EVENT_PLAYERS_HOUSE_2F_DOLL_1
+ setevent EVENT_PLAYERS_HOUSE_2F_DOLL_2
+ setevent EVENT_PLAYERS_HOUSE_2F_BIG_DOLL
+ setevent EVENT_DECO_BED_1
+ setevent EVENT_DECO_POSTER_1
+ setevent EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+ setevent EVENT_OLIVINE_GYM_JASMINE
+ setevent EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN
+ setevent EVENT_MET_BILL
+ setevent EVENT_ECRUTEAK_POKE_CENTER_BILL
+ setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY
+ setevent EVENT_LAKE_OF_RAGE_LANCE
+ setevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_1
+ setevent EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_BLOCKED_OFF
+ setevent EVENT_DRAGONS_DEN_CLAIR
+ setevent EVENT_RIVAL_OLIVINE_CITY
+ setevent EVENT_RIVAL_VICTORY_ROAD
+ setevent EVENT_RIVAL_DRAGONS_DEN
+ setevent EVENT_LANCES_ROOM_OAK_AND_MARY
+ setevent EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+ setevent EVENT_BURNED_TOWER_B1F_BEASTS_1
+ setevent EVENT_RED_IN_MT_SILVER
+ setevent EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
+ setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ setevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ setevent EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+ setevent EVENT_KURTS_HOUSE_KURT_2
+ setevent EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES
+ setevent EVENT_RANG_CLEAR_BELL_1 ; ?
+ setevent EVENT_PLAYERS_HOUSE_MOM_2
+ setflag ENGINE_ROCKET_SIGNAL_ON_CH20
+ setflag ENGINE_ROCKETS_IN_MAHOGANY
+ variablesprite SPRITE_WEIRD_TREE, SPRITE_SUDOWOODO
+ variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SILVER
+ variablesprite SPRITE_AZALEA_ROCKET, SPRITE_ROCKET
+ variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_JANINE
+ variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_JANINE
+ variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_JANINE
+ variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_JANINE
+ variablesprite SPRITE_COPYCAT, SPRITE_LASS
+ variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS
+ setevent EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM
+ setevent EVENT_CERULEAN_GYM_ROCKET
+ setevent EVENT_ROUTE_24_ROCKET
+ setevent EVENT_ROUTE_25_MISTY_BOYFRIEND
+ setevent EVENT_TRAINERS_IN_CERULEAN_GYM
+ setevent EVENT_COPYCATS_HOUSE_2F_DOLL
+ setevent EVENT_VIRIDIAN_GYM_BLUE
+ setevent EVENT_SEAFOAM_GYM_GYM_GUY
+ setevent EVENT_MT_MOON_SQUARE_CLEFAIRY
+ setevent EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ setevent EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
+ setevent EVENT_INITIALIZED_EVENTS
+ return
+
+AskNumber1MScript:
+ writetext AskNumber1MText
+ end
+
+AskNumber2MScript:
+ writetext AskNumber2MText
+ end
+
+RegisteredNumberMScript:
+ writetext RegisteredNumberMText
+ playsound SFX_REGISTER_PHONE_NUMBER
+ waitsfx
+ promptbutton
+ end
+
+NumberAcceptedMScript:
+ writetext NumberAcceptedMText
+ waitbutton
+ closetext
+ end
+
+NumberDeclinedMScript:
+ writetext NumberDeclinedMText
+ waitbutton
+ closetext
+ end
+
+PhoneFullMScript:
+ writetext PhoneFullMText
+ waitbutton
+ closetext
+ end
+
+RematchMScript:
+ writetext RematchMText
+ waitbutton
+ closetext
+ end
+
+AskNumber1FScript:
+ writetext AskNumber1FText
+ end
+
+AskNumber2FScript:
+ writetext AskNumber2FText
+ end
+
+RegisteredNumberFScript:
+ writetext RegisteredNumberFText
+ playsound SFX_REGISTER_PHONE_NUMBER
+ waitsfx
+ promptbutton
+ end
+
+NumberAcceptedFScript:
+ writetext NumberAcceptedFText
+ waitbutton
+ closetext
+ end
+
+NumberDeclinedFScript:
+ writetext NumberDeclinedFText
+ waitbutton
+ closetext
+ end
+
+PhoneFullFScript:
+ writetext PhoneFullFText
+ waitbutton
+ closetext
+ end
+
+RematchFScript:
+ writetext RematchFText
+ waitbutton
+ closetext
+ end
+
+GymStatue1Script:
+ getcurlandmarkname STRING_BUFFER_3
+ opentext
+ writetext GymStatue_CityGymText
+ waitbutton
+ closetext
+ end
+
+GymStatue2Script:
+ getcurlandmarkname STRING_BUFFER_3
+ opentext
+ writetext GymStatue_CityGymText
+ promptbutton
+ writetext GymStatue_WinningTrainersText
+ waitbutton
+ closetext
+ end
+
+ReceiveItemScript:
+ waitsfx
+ writetext ReceivedItemText
+ playsound SFX_ITEM
+ waitsfx
+ end
+
+ReceiveTogepiEggScript:
+ waitsfx
+ writetext ReceivedItemText
+ playsound SFX_GET_EGG
+ waitsfx
+ end
+
+GameCornerCoinVendorScript:
+ faceplayer
+ opentext
+ writetext CoinVendor_WelcomeText
+ promptbutton
+ checkitem COIN_CASE
+ iftrue CoinVendor_IntroScript
+ writetext CoinVendor_NoCoinCaseText
+ waitbutton
+ closetext
+ end
+
+CoinVendor_IntroScript:
+ writetext CoinVendor_IntroText
+
+.loop
+ special DisplayMoneyAndCoinBalance
+ loadmenu .MenuHeader
+ verticalmenu
+ closewindow
+ ifequal 1, .Buy50
+ ifequal 2, .Buy500
+ sjump .Cancel
+
+.Buy50:
+ checkcoins MAX_COINS - 50
+ ifequal HAVE_MORE, .CoinCaseFull
+ checkmoney YOUR_MONEY, 1000
+ ifequal HAVE_LESS, .NotEnoughMoney
+ givecoins 50
+ takemoney YOUR_MONEY, 1000
+ waitsfx
+ playsound SFX_TRANSACTION
+ writetext CoinVendor_Buy50CoinsText
+ waitbutton
+ sjump .loop
+
+.Buy500:
+ checkcoins MAX_COINS - 500
+ ifequal HAVE_MORE, .CoinCaseFull
+ checkmoney YOUR_MONEY, 10000
+ ifequal HAVE_LESS, .NotEnoughMoney
+ givecoins 500
+ takemoney YOUR_MONEY, 10000
+ waitsfx
+ playsound SFX_TRANSACTION
+ writetext CoinVendor_Buy500CoinsText
+ waitbutton
+ sjump .loop
+
+.NotEnoughMoney:
+ writetext CoinVendor_NotEnoughMoneyText
+ waitbutton
+ closetext
+ end
+
+.CoinCaseFull:
+ writetext CoinVendor_CoinCaseFullText
+ waitbutton
+ closetext
+ end
+
+.Cancel:
+ writetext CoinVendor_CancelText
+ waitbutton
+ closetext
+ end
+
+.MenuHeader:
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 0, 4, 15, TEXTBOX_Y - 1
+ dw .MenuData
+ db 1 ; default option
+
+.MenuData:
+ db STATICMENU_CURSOR ; flags
+ db 3 ; items
+ db " 50 : ¥1000@"
+ db "500 : ¥10000@"
+ db "CANCEL@"
+
+HappinessCheckScript:
+ faceplayer
+ opentext
+ special GetFirstPokemonHappiness
+ ifless 50, .Unhappy
+ ifless 150, .KindaHappy
+ writetext HappinessText3
+ waitbutton
+ closetext
+ end
+
+.KindaHappy:
+ writetext HappinessText2
+ waitbutton
+ closetext
+ end
+
+.Unhappy:
+ writetext HappinessText1
+ waitbutton
+ closetext
+ end
+
+Movement_ContestResults_WalkAfterWarp:
+ step RIGHT
+ step DOWN
+ turn_head UP
+ step_end
diff --git a/engine/movie/gamefreak_presents.asm b/engine/movie/gamefreak_presents.asm
index 2676c9f6..f4c2c5cc 100644
--- a/engine/movie/gamefreak_presents.asm
+++ b/engine/movie/gamefreak_presents.asm
@@ -1,41 +1,30 @@
-Copyright_GFPresents: ; e49a8 (39:49a8)
+Copyright_GFPresents:
; Play the copyright screen and GameFreak Presents sequence.
; Return carry if user cancels animation by pressing a button.
call ClearBGPalettes
call ClearTilemap
-
ld a, HIGH(vBGMap0)
ldh [hBGMapAddress + 1], a
xor a ; LOW(vBGMap0)
ldh [hBGMapAddress], a
-
ldh [hJoyDown], a
ldh [hSCX], a
ldh [hSCY], a
-
ld a, SCREEN_HEIGHT_PX
ldh [hWY], a
-
call WaitBGMap
-
ld b, SCGB_GAMEFREAK_LOGO
call GetSGBLayout
-
call SetPalettes
-
ld c, 10
call DelayFrames
-
callfar Copyright
-
call WaitBGMap
-
ld c, 100
call DelayFrames
-
call ClearTilemap
- call GFPresents_Init
+ call .GetGFLogoGFX
.loop
call GFPresents_PlayFrame
@@ -55,7 +44,7 @@ Copyright_GFPresents: ; e49a8 (39:49a8)
scf
ret
-GFPresents_Init: ; e49f3 (39:49f3)
+.GetGFLogoGFX:
; Load gfx and initialize variables
ld de, GFPresentsGFX1
@@ -75,25 +64,21 @@ GFPresents_Init: ; e49f3 (39:49f3)
ld [hli], a
ld a, $8d
ld [hl], a
-
xor a
ld [wJumptableIndex], a
- ld [$ce64], a
+ ld [wIntroSceneFrameCounter], a
ld [wIntroSceneTimer], a
ldh [hSCX], a
ldh [hSCY], a
-
ld a, 1
ldh [hBGMapMode], a
-
ld a, SCREEN_HEIGHT_PX
ldh [hWY], a
-
lb de, %00100100, %11111000
call DmgToCgbObjPals
ret
-GFPresents_PlayFrame: ; e4a37 (39:4a37)
+GFPresents_PlayFrame:
; Play one frame of GFPresents sequence.
; Return carry when the sequence completes or is canceled.
@@ -133,7 +118,7 @@ GFPresents_PlayFrame: ; e4a37 (39:4a37)
scf
ret
-GFPresents_HandleFrame: ; e4a6d (39:4a6d)
+GFPresents_HandleFrame:
; Dispatch to the current scene handler
ld a, [wJumptableIndex]
@@ -155,26 +140,26 @@ GFPresents_HandleFrame: ; e4a6d (39:4a6d)
dw GFPresents_WaitForTimer
dw GFPresents_SetDoneFlag
-GFPresents_NextScene: ; e4a88 (39:4a88)
+GFPresents_NextScene:
ld hl, wJumptableIndex
inc [hl]
ret
; unused?
-Func_e4a8d: ; e4a8d (39:4a8d)
+Functione4a8d:
ld c, 64
call DelayFrames
call GFPresents_NextScene
ret
-GFPresents_Star: ; e4a96 (39:4a96)
+GFPresents_Star:
; tell GFPresents_PlaceLogo we haven't finished yet
xor a
- ld [$ce64], a
+ ld [wIntroSceneFrameCounter], a
depixel 10, 11, 4, 0
- ld a, $16
+ ld a, SPRITE_ANIM_INDEX_GS_INTRO_STAR
call InitSpriteAnimStruct
; TODO set some flag in the struct?
@@ -188,17 +173,17 @@ GFPresents_Star: ; e4a96 (39:4a96)
call GFPresents_NextScene
ret
-GFPresents_PlaceLogo: ; e4ab2 (39:4ab2)
+GFPresents_PlaceLogo:
; Draw the Game Freak logo (may be initially invisible due to palette)
; wait until the star animation completed
; TODO this is cleared above, but when is it set?
- ld a, [$ce64]
+ ld a, [wIntroSceneFrameCounter]
and a
ret z
depixel 10, 11, 4, 0
- ld a, $15
+ ld a, SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
call InitSpriteAnimStruct
call GFPresents_NextScene
@@ -208,7 +193,7 @@ GFPresents_PlaceLogo: ; e4ab2 (39:4ab2)
ld [wIntroSceneTimer], a
ret
-GFPresents_LogoSparkles: ; e4ac8 (39:4ac8)
+GFPresents_LogoSparkles:
ld hl, wIntroSceneTimer
ld a, [hl]
@@ -230,16 +215,18 @@ GFPresents_LogoSparkles: ; e4ac8 (39:4ac8)
call GFPresents_NextScene
ret
-GFPresents_PlaceGameFreak: ; e4adf (39:4adf)
+GFPresents_PlaceGameFreak:
hlcoord 5, 12
ld de, .game_freak
call PlaceString
ret
.game_freak
- db $80, $81, $82, $83, $8d, $84, $85, $83, $81, $86, "@"
+ db $80, $81, $82, $83, $8d, $84, $85, $83, $81, $86
+.end
+ db "@"
-GFPresents_PlacePresents: ; e4af4 (39:4af4)
+GFPresents_PlacePresents:
hlcoord 7, 13
ld de, .presents
call PlaceString
@@ -252,18 +239,18 @@ GFPresents_PlacePresents: ; e4af4 (39:4af4)
ret
.presents
- db $87, $88, $89, $8a, $8b, $8c, "@"
+ db $87, $88, $89, $8a, $8b, $8c
+.end
+ db "@"
-GFPresents_SetDoneFlag: ; e4b0d (39:4b0d)
-; Tell GFPresents_PlayFrame and TitleScreenFrame (01:63da) that we're finished.
+GFPresents_SetDoneFlag:
+; Tell GFPresents_PlayFrame and TitleScreenFrame that we're finished.
ld hl, wJumptableIndex
set 7, [hl]
ret
-GFPresents_WaitForTimer: ; e4b13 (39:4b13)
-; Wait for the timer to elapse
-
+GFPresents_WaitForTimer:
ld hl, wIntroSceneTimer
ld a, [hl]
and a
@@ -274,8 +261,8 @@ GFPresents_WaitForTimer: ; e4b13 (39:4b13)
call GFPresents_NextScene
ret
-GFPresents_UpdateLogoPal: ; e4b20 (39:4b20)
-; called from 29:5928
+GFPresents_UpdateLogoPal:
+; called from 23:5928
; OBP1 was initialized at end of GFPresents_Init
; once we reached the final state, leave it alone
@@ -297,7 +284,7 @@ GFPresents_UpdateLogoPal: ; e4b20 (39:4b20)
call DmgToCgbObjPal1
ret
-GFPresents_Sparkle: ; e4b33 (39:4b33)
+GFPresents_Sparkle:
; Initialize and configure a sparkle sprite.
; TODO unclear how this relates to the actual screen display,
; seems to be called more times than there are visible sparkles?
@@ -314,7 +301,7 @@ GFPresents_Sparkle: ; e4b33 (39:4b33)
; set up a new sparkle sprite
push af
depixel 11, 11
- ld a, $17
+ ld a, SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
call InitSpriteAnimStruct
pop af
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index 93345798..0545b8f1 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -55,7 +55,7 @@ TitleScreen:
ld [hli], a ; wIntroSceneFrameCounter
ld [hli], a ; wTitleScreenTimer
ld [hl], a ; wTitleScreenTimer + 1
- ld de, $6058
+ depixel 12, 11
ld a, SPRITE_ANIM_INDEX_GS_INTRO_HO_OH
call InitSpriteAnimStruct
ld hl, wSpriteAnim1
diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm
index bdf23ec4..6747c0ef 100755
--- a/engine/overworld/player_movement.asm
+++ b/engine/overworld/player_movement.asm
@@ -394,7 +394,7 @@ DoPlayerMovement::
.CheckWarp:
; Bug: Since no case is made for STANDING here, it will check
-; [.edgewarps + $ff]. This resolves to $3e at $8035a.
+; [.edgewarps + $ff]. This resolves to $3e at $1035a.
; This causes wWalkingIntoEdgeWarp to be nonzero when standing on tile $3e,
; making bumps silent.
diff --git a/engine/phone/scripts/bike_shop.asm b/engine/phone/scripts/bike_shop.asm
new file mode 100644
index 00000000..bb10af68
--- /dev/null
+++ b/engine/phone/scripts/bike_shop.asm
@@ -0,0 +1,5 @@
+BikeShopPhoneCallerScript:
+ writetext BikeShopPhoneCallerText
+ clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
+ specialphonecall SPECIALCALL_NONE
+ end
diff --git a/engine/phone/scripts/bill.asm b/engine/phone/scripts/bill.asm
new file mode 100644
index 00000000..7bb2e4d6
--- /dev/null
+++ b/engine/phone/scripts/bill.asm
@@ -0,0 +1,41 @@
+BillPhoneCalleeScript:
+ checktime DAY
+ iftrue .daygreet
+ checktime NITE
+ iftrue .nitegreet
+ writetext BillPhoneMornGreetingText
+ promptbutton
+ sjump .main
+
+.daygreet
+ writetext BillPhoneDayGreetingText
+ promptbutton
+ sjump .main
+
+.nitegreet
+ writetext BillPhoneNiteGreetingText
+ promptbutton
+ sjump .main
+
+.main
+ writetext BillPhoneGenericText
+ promptbutton
+ readvar VAR_BOXSPACE
+ getnum STRING_BUFFER_3
+ ifequal 0, .full
+ ifless PARTY_LENGTH, .nearlyfull
+ writetext BillPhoneNotFullText
+ end
+
+.nearlyfull
+ writetext BillPhoneNearlyFullText
+ end
+
+.full
+ writetext BillPhoneFullText
+ end
+
+BillPhoneCallerScript:
+ writetext BillPhoneNewlyFullText
+ waitbutton
+ end
diff --git a/engine/phone/scripts/elm.asm b/engine/phone/scripts/elm.asm
new file mode 100644
index 00000000..b93bdc22
--- /dev/null
+++ b/engine/phone/scripts/elm.asm
@@ -0,0 +1,101 @@
+ElmPhoneCalleeScript:
+ readvar VAR_SPECIALPHONECALL
+ ifequal SPECIALCALL_POKERUS, .pokerus
+ checkevent EVENT_SHOWED_TOGEPI_TO_ELM
+ iftrue .discovery
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ iffalse .next
+ checkevent EVENT_TOGEPI_HATCHED
+ iftrue .egghatched
+.next
+ checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE
+ iftrue .eggunhatched
+ checkevent EVENT_ELMS_AIDE_IN_LAB
+ iftrue .assistant
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue .checkingegg
+ checkevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
+ iftrue .stolen
+ checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON
+ iftrue .sawmrpokemon
+ writetext ElmPhoneHealYourMonText
+ end
+
+.sawmrpokemon
+ writetext ElmPhoneSawMrPokemonText
+ end
+
+.stolen
+ writetext ElmPhonePokemonStolenText
+ end
+
+.checkingegg
+ writetext ElmPhoneCheckingTheEggText
+ end
+
+.assistant
+ writetext ElmPhoneAssistantText
+ end
+
+.eggunhatched
+ writetext ElmPhoneHowIsTheEggText
+ end
+
+.egghatched
+ writetext ElmPhoneEggHatchedText
+ setevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
+ end
+
+.discovery
+ random 2
+ ifequal 0, .nextdiscovery
+ writetext ElmPhoneDiscoveredHatchTimeText
+ end
+
+.nextdiscovery
+ writetext ElmPhoneInvestigatingEggMovesText
+ end
+
+.pokerus
+ writetext ElmPhoneDiscoveredPokerusText
+ specialphonecall SPECIALCALL_NONE
+ end
+
+ElmPhoneCallerScript:
+ readvar VAR_SPECIALPHONECALL
+ ifequal SPECIALCALL_ROBBED, .disaster
+ ifequal SPECIALCALL_ASSISTANT, .assistant
+ ifequal SPECIALCALL_WEIRDBROADCAST, .rocket
+ ifequal SPECIALCALL_SSTICKET, .gift
+ ifequal SPECIALCALL_MASTERBALL, .gift
+ writetext ElmPhoneDiscoveredPokerusText
+ specialphonecall SPECIALCALL_NONE
+ end
+
+.disaster
+ writetext ElmPhoneDisasterText
+ specialphonecall SPECIALCALL_NONE
+ setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
+ end
+
+.assistant
+ writetext ElmPhoneEggAssistantText
+ specialphonecall SPECIALCALL_NONE
+ clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+ setevent EVENT_ELMS_AIDE_IN_LAB
+ end
+
+.rocket
+ writetext ElmPhoneRadioTowerRocketTakeoverText
+ specialphonecall SPECIALCALL_NONE
+ end
+
+.gift
+ writetext ElmPhoneGiftText
+ specialphonecall SPECIALCALL_NONE
+ end
+
+.unused
+ writetext ElmPhoneGotAholdOfSomethingNeatText
+ specialphonecall SPECIALCALL_NONE
+ end
diff --git a/engine/phone/scripts/generic.asm b/engine/phone/scripts/generic.asm
new file mode 100644
index 00000000..4587c739
--- /dev/null
+++ b/engine/phone/scripts/generic.asm
@@ -0,0 +1,227 @@
+PhoneScript_Random2:
+ random 2
+ end
+
+PhoneScript_Random4:
+ random 4
+ end
+
+PhoneScript_AnswerPhone_Male:
+ checktime DAY
+ iftrue .day
+ checktime NITE
+ iftrue .nite
+ writetext PhoneMaleAnswerMornText
+ promptbutton
+ end
+.day
+ writetext PhoneMaleAnswerDayText
+ promptbutton
+ end
+.nite
+ writetext PhoneMaleAnswerNiteText
+ promptbutton
+ end
+
+PhoneScript_AnswerPhone_Female:
+ checktime DAY
+ iftrue .day
+ checktime NITE
+ iftrue .nite
+ writetext PhoneFemaleAnswerMornText
+ promptbutton
+ end
+.day
+ writetext PhoneFemaleAnswerDayText
+ promptbutton
+ end
+.nite
+ writetext PhoneFemaleAnswerNiteText
+ promptbutton
+ end
+
+PhoneScript_GreetPhone_Male:
+ checktime DAY
+ iftrue .day
+ checktime NITE
+ iftrue .nite
+ writetext PhoneMaleGreetMornText
+ promptbutton
+ end
+.day
+ writetext PhoneMaleGreetDayText
+ promptbutton
+ end
+.nite
+ writetext PhoneMaleGreetNiteText
+ promptbutton
+ end
+
+PhoneScript_GreetPhone_Female:
+ checktime DAY
+ iftrue .day
+ checktime NITE
+ iftrue .nite
+ writetext PhoneFemaleGreetMornText
+ promptbutton
+ end
+.day
+ writetext PhoneFemaleGreetDayText
+ promptbutton
+ end
+.nite
+ writetext PhoneFemaleGreetNiteText
+ promptbutton
+ end
+
+; Huey
+Phone_GenericCall_Male_SkipMon:
+ special RandomPhoneMon
+ scall PhoneScript_Random2
+ ifequal 0, Phone_LookingAwesome_Male_SkipMon
+ writetext PhoneMaleReallyEnergeticText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+; unused
+Phone_GenericCall_Female_SkipMon:
+ special RandomPhoneMon
+ scall PhoneScript_Random2
+ ifequal 0, Phone_DressedUp_Female_SkipMon
+ writetext PhoneFemaleTopShapeText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+; Huey
+Phone_LookingAwesome_Male_SkipMon:
+ writetext PhoneMaleLookingAwesomeText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+; unused
+Phone_DressedUp_Female_SkipMon:
+ writetext PhoneFemaleDressedUpText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+Phone_GenericCall_Male:
+ special RandomPhoneMon
+ scall PhoneScript_Random2
+ ifequal 0, Phone_LookingAwesome_Male
+ writetext PhoneMaleReallyEnergeticText
+ promptbutton
+ sjump Phone_FoundAMon_Male
+
+Phone_GenericCall_Female:
+ special RandomPhoneMon
+ scall PhoneScript_Random2
+ ifequal 0, Phone_DressedUp_Female
+ writetext PhoneFemaleTopShapeText
+ promptbutton
+ sjump Phone_FoundAMon_Female
+
+Phone_LookingAwesome_Male:
+ writetext PhoneMaleLookingAwesomeText
+ promptbutton
+ sjump Phone_FoundAMon_Male
+
+Phone_DressedUp_Female:
+ writetext PhoneFemaleDressedUpText
+ promptbutton
+ sjump Phone_FoundAMon_Female
+
+Phone_FoundAMon_Male:
+ special RandomPhoneWildMon
+ scall PhoneScript_Random2
+ ifequal 0, PhoneScript_AlmostCaught_Male
+ writetext PhoneMaleManagedToBeatText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+Phone_FoundAMon_Female:
+ special RandomPhoneWildMon
+ scall PhoneScript_Random2
+ ifequal 0, PhoneScript_MissedCatching_Female
+ writetext PhoneFemaleTypeAdvantageText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+PhoneScript_AlmostCaught_Male:
+ writetext PhoneMaleAlmostCaughtText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+PhoneScript_MissedCatching_Female:
+ writetext PhoneFemaleMissedCatchingText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+PhoneScript_WantsToBattle_Male:
+ writetext PhoneMaleWantsToBattleText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+PhoneScript_WantsToBattle_Female:
+ writetext PhoneFemaleWantsToBattleText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+Phone_WrongNumber_JoseBrent:
+ writetext PhoneWrongNumberKazText
+ end
+
+Phone_WrongNumber_Tiffany:
+ writetext PhoneWrongNumberAudreyText
+ end
+
+PhoneScript_SeeYouLater:
+ writetext PhoneSeeYouLaterText
+ end
+
+PhoneScript_ByeBye:
+ writetext PhoneByeByeText
+ end
+
+PhoneScript_SwarmGrass:
+ writetext PhoneSwarmGrassText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+PhoneScript_SwarmFish:
+ writetext PhoneSwarmFishText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+PhoneScript_SwarmCave:
+ writetext PhoneSwarmCaveText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+PhoneScript_BugCatchingContest:
+ writetext PhoneBugCatchingContestText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+IrwinRocketRumorScript:
+ writetext IrwinRocketTakeoverRumorText
+ promptbutton
+ sjump PhoneScript_SeeYouLater
+
+GinaRocketRumorScript:
+ writetext GinaRocketTakeoverRumorText
+ promptbutton
+ sjump PhoneScript_ByeBye
+
+Phone_CheckIfUnseenRare_Male:
+ scall PhoneScriptRareWildMon
+ iffalse PhoneScript_SeeYouLater
+ sjump Phone_GenericCall_Male
+
+Phone_CheckIfUnseenRare_Female:
+ scall PhoneScriptRareWildMon
+ iffalse PhoneScript_ByeBye
+ sjump Phone_GenericCall_Female
+
+PhoneScriptRareWildMon:
+ special RandomUnseenWildMon
+ end
diff --git a/engine/phone/scripts/mom.asm b/engine/phone/scripts/mom.asm
new file mode 100644
index 00000000..ec0e5113
--- /dev/null
+++ b/engine/phone/scripts/mom.asm
@@ -0,0 +1,150 @@
+MomPhoneCalleeScript:
+ checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+ iftrue .script_10401f
+ checkevent EVENT_DUDE_TALKED_TO_YOU
+ iftrue MomPhoneLectureScript
+ checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM
+ iftrue MomPhoneNoGymQuestScript
+ checkevent EVENT_GOT_A_POKEMON_FROM_ELM
+ iftrue MomPhoneNoPokedexScript
+ sjump MomPhoneNoPokemonScript
+
+.script_10401f
+ checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_8
+ iftrue MomPhoneHangUpScript
+ writetext MomPhoneGreetingText
+ promptbutton
+ getcurlandmarkname STRING_BUFFER_3
+ readvar VAR_ROOFPALETTE
+ ifequal 1, MomPhonePalette1
+ ifequal 2, MomPhonePalette2
+ sjump MomPhoneOther
+
+MomPhoneLandmark:
+ writetext MomPhoneLandmarkText
+ promptbutton
+ sjump MomSavingMoney
+
+MomPhonePalette1:
+ readvar VAR_MAPGROUP
+ ifequal GROUP_NEW_BARK_TOWN, .newbark
+ ifequal GROUP_CHERRYGROVE_CITY, .cherrygrove
+ ifequal GROUP_VIOLET_CITY, .violet
+ ifequal GROUP_AZALEA_TOWN, .azalea
+ ifequal GROUP_GOLDENROD_CITY, .goldenrod
+ writetext MomPhoneGenericAreaText
+ promptbutton
+ sjump MomSavingMoney
+
+.newbark
+ writetext MomPhoneNewBarkText
+ promptbutton
+ sjump MomSavingMoney
+
+.cherrygrove
+ writetext MomPhoneCherrygroveText
+ promptbutton
+ sjump MomSavingMoney
+
+.violet
+ getstring STRING_BUFFER_4, .text_sprout_tower
+ sjump MomPhoneLandmark
+.text_sprout_tower
+ db "SPROUT TOWER@"
+
+.azalea
+ getstring STRING_BUFFER_4, .text_slowpoke_well
+ sjump MomPhoneLandmark
+.text_slowpoke_well
+ db "SLOWPOKE WELL@"
+
+.goldenrod
+ getstring STRING_BUFFER_4, .text_radio_tower
+ sjump MomPhoneLandmark
+.text_radio_tower
+ db "RADIO TOWER@"
+
+MomPhonePalette2:
+ writetext MomOtherAreaText
+ promptbutton
+ sjump MomSavingMoney
+
+MomPhoneOther:
+ writetext MomDeterminedText
+ promptbutton
+ sjump MomSavingMoney
+
+MomSavingMoney:
+ checkflag ENGINE_MOM_SAVING_MONEY
+ iffalse .NotSaving
+ checkmoney MOMS_MONEY, 0
+ ifequal HAVE_MORE, .SavingHasMoney
+ sjump .SavingNoMoney
+
+.NotSaving:
+ checkmoney MOMS_MONEY, 0
+ ifequal HAVE_MORE, .HasMoney
+ sjump .NoMoney
+
+.SavingHasMoney:
+ getmoney STRING_BUFFER_3, MOMS_MONEY
+ writetext MomCheckBalanceText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ sjump MomPhoneStopSavingMoneyScript
+
+.SavingNoMoney:
+ writetext MomImportantToSaveText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ sjump MomPhoneStopSavingMoneyScript
+
+.NoMoney:
+ writetext MomYoureNotSavingText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ sjump MomPhoneStopSavingMoneyScript
+
+.HasMoney:
+ getmoney STRING_BUFFER_3, MOMS_MONEY
+ writetext MomYouveSavedText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ sjump MomPhoneStopSavingMoneyScript
+
+MomPhoneSaveMoneyScript:
+ setflag ENGINE_MOM_SAVING_MONEY
+ writetext MomOKIllSaveText
+ promptbutton
+ sjump MomPhoneHangUpScript
+
+MomPhoneStopSavingMoneyScript:
+ clearflag ENGINE_MOM_SAVING_MONEY
+ writetext MomPhoneStopSavingMoneyText
+ promptbutton
+ sjump MomPhoneHangUpScript
+
+MomPhoneHangUpScript:
+ writetext MomPhoneHangUpText
+ end
+
+MomPhoneNoPokemonScript:
+ writetext MomPhoneNoPokemonText
+ end
+
+MomPhoneNoPokedexScript:
+ writetext MomPhoneNoPokedexText
+ end
+
+MomPhoneNoGymQuestScript:
+ writetext MomPhoneNoGymQuestText
+ end
+
+MomPhoneLectureScript:
+ setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+ setflag ENGINE_MOM_ACTIVE
+ specialphonecall SPECIALCALL_NONE
+ writetext MomPhoneLectureText
+ yesorno
+ iftrue MomPhoneSaveMoneyScript
+ sjump MomPhoneStopSavingMoneyScript
diff --git a/engine/phone/scripts/trainers.asm b/engine/phone/scripts/trainers.asm
new file mode 100644
index 00000000..8c22df62
--- /dev/null
+++ b/engine/phone/scripts/trainers.asm
@@ -0,0 +1,677 @@
+JackPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, JACK1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+JackPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, JACK1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneNationalParkText
+ setevent EVENT_JACK_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+BeverlyPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, POKEFANF, BEVERLY1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+BeverlyPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, POKEFANF, BEVERLY1
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneNationalParkText
+ setevent EVENT_BEVERLY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+HueyPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, SAILOR, HUEY1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male_SkipMon
+
+HueyPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, SAILOR, HUEY1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ sjump Phone_GenericCall_Male_SkipMon
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneLighthouseText
+ setevent EVENT_HUEY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+GavenPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERM, GAVEN3
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+GavenPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERM, GAVEN3
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute26Text
+ setevent EVENT_GAVEN_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+BethPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERF, BETH1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+BethPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERF, BETH1
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute26Text
+ setevent EVENT_BETH_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+JosePhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, BIRD_KEEPER, JOSE2
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+JosePhoneCallerScript:
+ gettrainername STRING_BUFFER_3, BIRD_KEEPER, JOSE2
+ scall PhoneScript_Random4
+ ifequal 0, Phone_WrongNumber_JoseBrent
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute27Text
+ setevent EVENT_JOSE_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+ReenaPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERF, REENA1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+ReenaPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, COOLTRAINERF, REENA1
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute27Text
+ setevent EVENT_REENA_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+JoeyPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, YOUNGSTER, JOEY1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+JoeyPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, YOUNGSTER, JOEY1
+ scall PhoneScript_GreetPhone_Male
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute30Text
+ setevent EVENT_JOEY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+WadePhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, BUG_CATCHER, WADE1
+ scall PhoneScript_AnswerPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .Generic
+ checkflag ENGINE_DAILY_BUG_CONTEST
+ iftrue .Generic
+ readvar VAR_WEEKDAY
+ ifequal TUESDAY, PhoneScript_BugCatchingContest
+ ifequal THURSDAY, PhoneScript_BugCatchingContest
+ ifequal SATURDAY, PhoneScript_BugCatchingContest
+
+.Generic:
+ sjump Phone_GenericCall_Male
+
+WadePhoneCallerScript:
+ gettrainername STRING_BUFFER_3, BUG_CATCHER, WADE1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .NoContest
+ checkflag ENGINE_DAILY_BUG_CONTEST
+ iftrue .NoContest
+ readvar VAR_WEEKDAY
+ ifequal TUESDAY, PhoneScript_BugCatchingContest
+ ifequal THURSDAY, PhoneScript_BugCatchingContest
+ ifequal SATURDAY, PhoneScript_BugCatchingContest
+
+.NoContest:
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute31Text
+ setevent EVENT_WADE_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+RalphPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, FISHER, RALPH1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+RalphPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, FISHER, RALPH1
+ scall PhoneScript_GreetPhone_Male
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, .QwilfishSwarm
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute32Text
+ setevent EVENT_RALPH_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+.QwilfishSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, QWILFISH
+ getstring STRING_BUFFER_5, PhoneRoute32Text
+ setval FISHSWARM_QWILFISH
+ special ActivateFishingSwarm
+ sjump PhoneScript_SwarmFish
+
+LizPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, LIZ1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+LizPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, LIZ1
+ scall PhoneScript_GreetPhone_Female
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute32Text
+ setevent EVENT_LIZ_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+AnthonyPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, HIKER, ANTHONY2
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+AnthonyPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, HIKER, ANTHONY2
+ scall PhoneScript_GreetPhone_Male
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, .DunsparceSwarm
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute33Text
+ setevent EVENT_ANTHONY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+.DunsparceSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, DUNSPARCE
+ getstring STRING_BUFFER_5, PhoneDarkCaveText
+ swarm DARK_CAVE_VIOLET_ENTRANCE
+ sjump PhoneScript_SwarmCave
+
+ToddPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, CAMPER, TODD1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+ToddPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, CAMPER, TODD1
+ scall PhoneScript_GreetPhone_Male
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute34Text
+ setevent EVENT_TODD_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+GinaPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, GINA1
+ scall PhoneScript_AnswerPhone_Female
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue GinaRocketRumorScript
+ sjump Phone_GenericCall_Female
+
+GinaPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, GINA1
+ scall PhoneScript_GreetPhone_Female
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue GinaRocketRumorScript
+ checkflag ENGINE_FLYPOINT_GOLDENROD
+ iffalse .NoBattle
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+
+.NoBattle:
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute34Text
+ setevent EVENT_GINA_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+IrwinPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, JUGGLER, IRWIN1
+ scall PhoneScript_AnswerPhone_Male
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue IrwinRocketRumorScript
+ sjump Phone_GenericCall_Male
+
+IrwinPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, JUGGLER, IRWIN1
+ scall PhoneScript_GreetPhone_Male
+ checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+ iftrue IrwinRocketRumorScript
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute35Text
+ setevent EVENT_IRWIN_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+ArniePhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, BUG_CATCHER, ARNIE1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+ArniePhoneCallerScript:
+ gettrainername STRING_BUFFER_3, BUG_CATCHER, ARNIE1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, .YanmaSwarm
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute35Text
+ setevent EVENT_ARNIE_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+.YanmaSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, YANMA
+ getstring STRING_BUFFER_5, PhoneRoute35Text
+ swarm ROUTE_35
+ sjump PhoneScript_SwarmGrass
+
+AlanPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, ALAN1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+AlanPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, ALAN1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute36Text
+ setevent EVENT_ALAN_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+DanaPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, LASS, DANA1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+DanaPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, LASS, DANA1
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute38Text
+ setevent EVENT_DANA_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+ChadPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, CHAD1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+ChadPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, SCHOOLBOY, CHAD1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .SnubbullSwarm
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.SnubbullSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, SNUBBULL
+ getstring STRING_BUFFER_5, PhoneRoute38Text
+ swarm ROUTE_38
+ sjump PhoneScript_SwarmGrass
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute38Text
+ setevent EVENT_CHAD_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+DerekPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, POKEFANM, DEREK1
+ scall PhoneScript_AnswerPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .Generic
+ checkflag ENGINE_DAILY_BUG_CONTEST
+ iftrue .Generic
+ readvar VAR_WEEKDAY
+ ifequal TUESDAY, PhoneScript_BugCatchingContest
+ ifequal THURSDAY, PhoneScript_BugCatchingContest
+ ifequal SATURDAY, PhoneScript_BugCatchingContest
+
+.Generic:
+ sjump Phone_GenericCall_Male
+
+DerekPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, POKEFANM, DEREK1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .NoContest
+ checkflag ENGINE_DAILY_BUG_CONTEST
+ iftrue .NoContest
+ readvar VAR_WEEKDAY
+ ifequal TUESDAY, PhoneScript_BugCatchingContest
+ ifequal THURSDAY, PhoneScript_BugCatchingContest
+ ifequal SATURDAY, PhoneScript_BugCatchingContest
+
+.NoContest:
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute39Text
+ setevent EVENT_DEREK_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+ChrisPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, FISHER, CHRIS1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+ChrisPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, FISHER, CHRIS1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute42Text
+ setevent EVENT_CHRIS_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+BrentPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, POKEMANIAC, BRENT1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+BrentPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, POKEMANIAC, BRENT1
+ scall PhoneScript_Random4
+ ifequal 0, Phone_WrongNumber_JoseBrent
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute43Text
+ setevent EVENT_BRENT_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+TiffanyPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, TIFFANY3
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+TiffanyPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, TIFFANY3
+ scall PhoneScript_Random4
+ ifequal 0, Phone_WrongNumber_Tiffany
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute43Text
+ setevent EVENT_TIFFANY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+VancePhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, BIRD_KEEPER, VANCE1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+VancePhoneCallerScript:
+ gettrainername STRING_BUFFER_3, BIRD_KEEPER, VANCE1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute44Text
+ setevent EVENT_VANCE_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+WiltonPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, FISHER, WILTON1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+WiltonPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, FISHER, WILTON1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .RemoraidSwarm
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.RemoraidSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, REMORAID
+ getstring STRING_BUFFER_5, PhoneRoute44Text
+ setval FISHSWARM_REMORAID
+ special ActivateFishingSwarm
+ sjump PhoneScript_SwarmFish
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute44Text
+ setevent EVENT_WILTON_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+KenjiPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, BLACKBELT_T, KENJI3
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+KenjiPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, BLACKBELT_T, KENJI3
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute45Text
+ setevent EVENT_KENJI_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+ParryPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, HIKER, PARRY1
+ scall PhoneScript_AnswerPhone_Male
+ sjump Phone_GenericCall_Male
+
+ParryPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, HIKER, PARRY1
+ scall PhoneScript_GreetPhone_Male
+ scall PhoneScript_Random2
+ ifequal 0, .MarillSwarm
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Male
+ sjump Phone_GenericCall_Male
+
+.MarillSwarm:
+ checkflag ENGINE_SWARM
+ iftrue Phone_GenericCall_Male
+ getmonname STRING_BUFFER_4, MARILL
+ getstring STRING_BUFFER_5, PhoneMtMortarText
+ swarm MOUNT_MORTAR_1F_OUTSIDE
+ sjump PhoneScript_SwarmCave
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute45Text
+ setevent EVENT_PARRY_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Male
+
+ErinPhoneCalleeScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, ERIN1
+ scall PhoneScript_AnswerPhone_Female
+ sjump Phone_GenericCall_Female
+
+ErinPhoneCallerScript:
+ gettrainername STRING_BUFFER_3, PICNICKER, ERIN1
+ scall PhoneScript_GreetPhone_Female
+ scall PhoneScript_Random2
+ ifequal 0, .WantsBattle
+ scall PhoneScript_Random2
+ ifequal 0, Phone_CheckIfUnseenRare_Female
+ sjump Phone_GenericCall_Female
+
+.WantsBattle:
+ getstring STRING_BUFFER_5, PhoneRoute46Text
+ setevent EVENT_ERIN_READY_FOR_REMATCH
+ sjump PhoneScript_WantsToBattle_Female
+
+INCLUDE "engine/phone/scripts/generic.asm"
+
+INCLUDE "data/phone/text/landmarks.asm"
diff --git a/engine/phone/scripts/unused.asm b/engine/phone/scripts/unused.asm
new file mode 100644
index 00000000..08d67f60
--- /dev/null
+++ b/engine/phone/scripts/unused.asm
@@ -0,0 +1,3 @@
+UnusedPhoneScript:
+ writetext UnusedPhoneText
+ end
diff --git a/gfx/pokedex/pokedex.2bpp b/gfx/pokedex/pokedex.2bpp
deleted file mode 100644
index ace4e25e..00000000
--- a/gfx/pokedex/pokedex.2bpp
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/slowpoke.2bpp b/gfx/pokedex/slowpoke.2bpp
deleted file mode 100644
index 959020dc..00000000
--- a/gfx/pokedex/slowpoke.2bpp
+++ /dev/null
Binary files differ
diff --git a/home/print_num.asm b/home/print_num.asm
index d37ebe1d..5bea7696 100755
--- a/home/print_num.asm
+++ b/home/print_num.asm
@@ -25,39 +25,38 @@ PrintNum::
.main
xor a
- ldh [$ffb5], a
- ldh [$ffb6], a
- ldh [$ffb7], a
+ ldh [hPrintNumBuffer + 0], a
+ ldh [hPrintNumBuffer + 1], a
+ ldh [hPrintNumBuffer + 2], a
ld a, b
and $f
cp 1
jr z, .byte
cp 2
jr z, .word
-
; maximum 3 bytes
.long
ld a, [de]
- ldh [$ffb6], a
+ ldh [hPrintNumBuffer + 1], a
inc de
ld a, [de]
- ldh [$ffb7], a
+ ldh [hPrintNumBuffer + 2], a
inc de
ld a, [de]
- ldh [$ffb8], a
+ ldh [hPrintNumBuffer + 3], a
jr .start
.word
ld a, [de]
- ldh [$ffb7], a
+ ldh [hPrintNumBuffer + 2], a
inc de
ld a, [de]
- ldh [$ffb8], a
+ ldh [hPrintNumBuffer + 3], a
jr .start
.byte
ld a, [de]
- ldh [$ffb8], a
+ ldh [hPrintNumBuffer + 3], a
.start
push de
@@ -84,51 +83,51 @@ PrintNum::
.seven
ld a, HIGH(1000000 >> 8)
- ldh [$ffb9], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(1000000) ; mid
- ldh [$ffba], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(1000000)
- ldh [$ffbb], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.six
ld a, HIGH(100000 >> 8)
- ldh [$ffb9], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(100000) ; mid
- ldh [$ffba], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(100000)
- ldh [$ffbb], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.five
xor a ; HIGH(10000 >> 8)
- ldh [$ffb9], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(10000) ; mid
- ldh [$ffba], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(10000)
- ldh [$ffbb], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.four
xor a ; HIGH(1000 >> 8)
- ldh [$ffb9], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(1000) ; mid
- ldh [$ffba], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(1000)
- ldh [$ffbb], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.three
xor a ; HIGH(100 >> 8)
- ldh [$ffb9], a
+ ldh [hPrintNumBuffer + 4], a
xor a ; HIGH(100) ; mid
- ldh [$ffba], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(100)
- ldh [$ffbb], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
@@ -136,22 +135,21 @@ PrintNum::
dec e
jr nz, .two_skip
ld a, "0"
- ldh [$ffb5], a
-
+ ldh [hPrintNumBuffer + 0], a
.two_skip
- ld c, 0
- ldh a, [$ffb8]
+ ld c, 0
+ ldh a, [hPrintNumBuffer + 3]
.mod_10
cp 10
jr c, .modded_10
sub 10
inc c
jr .mod_10
-
.modded_10
+
ld b, a
- ldh a, [$ffb5]
+ ldh a, [hPrintNumBuffer + 0]
or c
jr nz, .money
call .PrintLeadingZero
@@ -164,12 +162,12 @@ PrintNum::
add c
ld [hl], a
pop af
- ldh [$ffb5], a
+ ldh [hPrintNumBuffer + 0], a
inc e
dec e
jr nz, .money_leading_zero
inc hl
- ld [hl], $e8
+ ld [hl], "."
.money_leading_zero
call .AdvancePointer
@@ -184,7 +182,7 @@ PrintNum::
.PrintYen:
push af
- ldh a, [$ffb5]
+ ldh a, [hPrintNumBuffer + 0]
and a
jr nz, .stop
bit 5, d
@@ -201,68 +199,68 @@ PrintNum::
dec e
jr nz, .ok
ld a, "0"
- ldh [$ffb5], a
+ ldh [hPrintNumBuffer + 0], a
.ok
ld c, 0
.loop
- ldh a, [$ffb9]
+ ldh a, [hPrintNumBuffer + 4]
ld b, a
- ldh a, [$ffb6]
- ldh [$ffbc], a
+ ldh a, [hPrintNumBuffer + 1]
+ ldh [hPrintNumBuffer + 7], a
cp b
jr c, .skip1
sub b
- ldh [$ffb6], a
- ldh a, [$ffba]
+ ldh [hPrintNumBuffer + 1], a
+ ldh a, [hPrintNumBuffer + 5]
ld b, a
- ldh a, [$ffb7]
- ldh [$ffbd], a
+ ldh a, [hPrintNumBuffer + 2]
+ ldh [hPrintNumBuffer + 8], a
cp b
jr nc, .skip2
- ldh a, [$ffb6]
+ ldh a, [hPrintNumBuffer + 1]
or 0
jr z, .skip3
dec a
- ldh [$ffb6], a
- ldh a, [$ffb7]
+ ldh [hPrintNumBuffer + 1], a
+ ldh a, [hPrintNumBuffer + 2]
.skip2
sub b
- ldh [$ffb7], a
- ldh a, [$ffbb]
+ ldh [hPrintNumBuffer + 2], a
+ ldh a, [hPrintNumBuffer + 6]
ld b, a
- ldh a, [$ffb8]
- ldh [$ffbe], a
+ ldh a, [hPrintNumBuffer + 3]
+ ldh [hPrintNumBuffer + 9], a
cp b
jr nc, .skip4
- ldh a, [$ffb7]
+ ldh a, [hPrintNumBuffer + 2]
and a
jr nz, .skip5
- ldh a, [$ffb6]
+ ldh a, [hPrintNumBuffer + 1]
and a
jr z, .skip6
dec a
- ldh [$ffb6], a
+ ldh [hPrintNumBuffer + 1], a
xor a
.skip5
dec a
- ldh [$ffb7], a
- ldh a, [$ffb8]
+ ldh [hPrintNumBuffer + 2], a
+ ldh a, [hPrintNumBuffer + 3]
.skip4
sub b
- ldh [$ffb8], a
+ ldh [hPrintNumBuffer + 3], a
inc c
jr .loop
.skip6
- ldh a, [$ffbd]
- ldh [$ffb7], a
+ ldh a, [hPrintNumBuffer + 8]
+ ldh [hPrintNumBuffer + 2], a
.skip3
- ldh a, [$ffbc]
- ldh [$ffb6], a
+ ldh a, [hPrintNumBuffer + 7]
+ ldh [hPrintNumBuffer + 1], a
.skip1
- ldh a, [$ffb5]
+ ldh a, [hPrintNumBuffer + 0]
or c
jr z, .PrintLeadingZero
- ldh a, [$ffb5]
+ ldh a, [hPrintNumBuffer + 0]
and a
jr nz, .done
bit 5, d
@@ -274,12 +272,12 @@ PrintNum::
ld a, "0"
add c
ld [hl], a
- ldh [$ffb5], a
+ ldh [hPrintNumBuffer + 0], a
inc e
dec e
ret nz
inc hl
- ld [hl], $e8
+ ld [hl], "."
ret
.PrintLeadingZero:
@@ -296,7 +294,7 @@ PrintNum::
jr nz, .inc
bit 6, d ; left alignment or right alignment?
jr z, .inc
- ldh a, [$ffb5]
+ ldh a, [hPrintNumBuffer + 0]
and a
ret z
.inc
diff --git a/layout.link b/layout.link
index 984869b6..a527bdb5 100644
--- a/layout.link
+++ b/layout.link
@@ -154,9 +154,9 @@ ROMX $3e
ROMX $3f
"bank3f"
ROMX $40
- "bank40"
+ "Standard Scripts"
ROMX $41
- "bank41"
+ "Phone Scripts"
ROMX $42
"Map Scripts 1"
ROMX $43
diff --git a/main.asm b/main.asm
index 6b929c3a..126e6bfa 100644
--- a/main.asm
+++ b/main.asm
@@ -824,144 +824,27 @@ InitMysteryGiftLayout::
dr $fcfb2, $fde20
-SECTION "bank40", ROMX
+SECTION "Standard Scripts", ROMX
-StdScripts::
- dr $100000, $10110c
+INCLUDE "engine/events/std_scripts.asm"
+INCLUDE "data/text/std_text.asm"
INCLUDE "data/text/battle.asm"
-SECTION "bank41", ROMX
-
-; Phone scripts and text
-UnusedPhoneScript::
- dr $104000, $104004
-MomPhoneCalleeScript::
- dr $104004, $104124
-MomPhoneLectureScript::
- dr $104124, $104137
-BillPhoneCalleeScript::
- dr $104137, $104172
-BillPhoneCallerScript::
- dr $104172, $104177
-ElmPhoneCalleeScript::
- dr $104177, $1041e1
-ElmPhoneCallerScript::
- dr $1041e1, $10422a
-JackPhoneCalleeScript::
- dr $10422a, $104234
-JackPhoneCallerScript::
- dr $104234, $104256
-BeverlyPhoneCalleeScript::
- dr $104256, $104260
-BeverlyPhoneCallerScript::
- dr $104260, $104282
-HueyPhoneCalleeScript::
- dr $104282, $10428c
-HueyPhoneCallerScript::
- dr $10428c, $1042a7
-GavenPhoneCalleeScript::
- dr $1042a7, $1042b1
-GavenPhoneCallerScript::
- dr $1042b1, $1042d3
-BethPhoneCalleeScript::
- dr $1042d3, $1042dd
-BethPhoneCallerScript::
- dr $1042dd, $1042ff
-JosePhoneCalleeScript::
- dr $1042ff, $104309
-JosePhoneCallerScript::
- dr $104309, $104332
-ReenaPhoneCalleeScript::
- dr $104332, $10433c
-ReenaPhoneCallerScript::
- dr $10433c, $10435e
-JoeyPhoneCalleeScript::
- dr $10435e, $104368
-JoeyPhoneCallerScript::
- dr $104368, $104390
-WadePhoneCalleeScript::
- dr $104390, $1043b5
-WadePhoneCallerScript::
- dr $1043b5, $1043f8
-RalphPhoneCalleeScript::
- dr $1043f8, $104402
-RalphPhoneCallerScript::
- dr $104402, $104446
-LizPhoneCalleeScript::
- dr $104446, $104450
-LizPhoneCallerScript::
- dr $104450, $104478
-AnthonyPhoneCalleeScript::
- dr $104478, $104482
-AnthonyPhoneCallerScript::
- dr $104482, $1044c4
-ToddPhoneCalleeScript::
- dr $1044c4, $1044ce
-ToddPhoneCallerScript::
- dr $1044ce, $1044f6
-GinaPhoneCalleeScript::
- dr $1044f6, $104506
-GinaPhoneCallerScript::
- dr $104506, $104534
-IrwinPhoneCalleeScript::
- dr $104534, $104544
-IrwinPhoneCallerScript::
- dr $104544, $10456c
-ArniePhoneCalleeScript::
- dr $10456c, $104576
-ArniePhoneCallerScript::
- dr $104576, $1045b2
-AlanPhoneCalleeScript::
- dr $1045b2, $1045bc
-AlanPhoneCallerScript::
- dr $1045bc, $1045de
-DanaPhoneCalleeScript::
- dr $1045de, $1045e8
-DanaPhoneCallerScript::
- dr $1045e8, $10460a
-ChadPhoneCalleeScript::
- dr $10460a, $104614
-ChadPhoneCallerScript::
- dr $104614, $104650
-DerekPhoneCalleeScript::
- dr $104650, $104675
-DerekPhoneCallerScript::
- dr $104675, $1046b2
-ChrisPhoneCalleeScript::
- dr $1046b2, $1046bc
-ChrisPhoneCallerScript::
- dr $1046bc, $1046de
-BrentPhoneCalleeScript::
- dr $1046de, $1046e8
-BrentPhoneCallerScript::
- dr $1046e8, $104711
-TiffanyPhoneCalleeScript::
- dr $104711, $10471b
-TiffanyPhoneCallerScript::
- dr $10471b, $104744
-VancePhoneCalleeScript::
- dr $104744, $10474e
-VancePhoneCallerScript::
- dr $10474e, $104770
-WiltonPhoneCalleeScript::
- dr $104770, $10477a
-WiltonPhoneCallerScript::
- dr $10477a, $1047b8
-KenjiPhoneCalleeScript::
- dr $1047b8, $1047c2
-KenjiPhoneCallerScript::
- dr $1047c2, $1047e4
-ParryPhoneCalleeScript::
- dr $1047e4, $1047ee
-ParryPhoneCallerScript::
- dr $1047ee, $10482a
-ErinPhoneCalleeScript::
- dr $10482a, $104834
-ErinPhoneCallerScript::
- dr $104834, $104a80
-BikeShopPhoneCallerScript::
- dr $104a80, $10614d
+SECTION "Phone Scripts", ROMX
+
+INCLUDE "engine/phone/scripts/unused.asm"
+INCLUDE "engine/phone/scripts/mom.asm"
+INCLUDE "engine/phone/scripts/bill.asm"
+INCLUDE "engine/phone/scripts/elm.asm"
+INCLUDE "engine/phone/scripts/trainers.asm"
+INCLUDE "engine/phone/scripts/bike_shop.asm"
+INCLUDE "data/phone/text/unused.asm"
+INCLUDE "data/phone/text/mom.asm"
+INCLUDE "data/phone/text/bill.asm"
+INCLUDE "data/phone/text/elm.asm"
+INCLUDE "data/phone/text/trainers.asm"
+INCLUDE "data/phone/text/bike_shop.asm"
SECTION "Names", ROMX