shithub: pokecrystal

Download patch

ref: c883ab4d34ecb4890010e808d6b6d533f5d8ad56
parent: cb5aa29228871f27752860a3d036bec013e7db6e
author: surskitty <surskitty@gmail.com>
date: Fri Dec 15 18:06:53 EST 2017

Reorganising phone stuff.

--- a/engine/buena_phone_scripts.asm
+++ /dev/null
@@ -1,170 +1,0 @@
-BuenaPhoneScript1:
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue BuenaPhoneScript_Rocket
-	checkcode VAR_HOUR
-	if_greater_than 17, BuenaPhoneScript_AfterMidnight1
-	scall BuenaPhoneScript_CheckTimeOfDay1
-	jump BuenaPhoneScript_Random1
-
-BuenaPhoneScript2:
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue BuenaPhoneScript_Rocket
-	scall BuenaPhoneScript_CheckTimeOfDay2
-	jump BuenaPhoneScript_Random2
-
-BuenaPhoneScript_CheckTimeOfDay1:
-	checkmorn
-	iftrue .morn
-	checkday
-	iftrue .day
-	writetext UnknownText_0xa0d42
-	buttonsound
-	end
-
-.morn
-	writetext UnknownText_0xa0c28
-	buttonsound
-	end
-
-.day
-	writetext UnknownText_0xa0c72
-	buttonsound
-	end
-
-BuenaPhoneScript_AfterMidnight1:
-	writetext UnknownText_0xa0caf
-	end
-
-BuenaPhoneScript_CheckTimeOfDay2:
-	checkcode VAR_HOUR
-	if_greater_than 17, BuenaPhoneScript_AfterMidnight2
-	checkmorn
-	iftrue .morn
-	checkday
-	iftrue .day
-	writetext UnknownText_0xa0e29
-	buttonsound
-	end
-
-.morn
-	writetext UnknownText_0xa0d96
-	buttonsound
-	end
-
-.day
-	writetext UnknownText_0xa0dcf
-	buttonsound
-	end
-
-BuenaPhoneScript_AfterMidnight2:
-	writetext UnknownText_0xa0e01
-	buttonsound
-	end
-
-BuenaPhoneScript_Rocket:
-	writetext UnknownText_0xa0e5e
-	end
-
-BuenaPhoneScript_Random2:
-	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue .PostE4
-	random 11
-	jump .Jumptable
-
-.PostE4:
-	random 14
-
-.Jumptable:
-	if_equal 0, .zero
-	if_equal 1, .one
-	if_equal 2, .two
-	if_equal 3, .three
-	if_equal 4, .four
-	if_equal 5, .five
-	if_equal 6, .six
-	if_equal 7, .seven
-	if_equal 8, .eight
-	if_equal 9, .nine
-	if_equal 10, .ten
-	if_equal 11, .eleven
-	if_equal 12, .twelve
-	if_equal 13, .thirteen
-
-.zero
-	writetext UnknownText_0xa0efb
-	jump .finish
-
-.one
-	writetext UnknownText_0xa0fcf
-	jump .finish
-
-.two
-	writetext UnknownText_0xa109d
-	jump .finish
-
-.three
-	writetext UnknownText_0xa1143
-	jump .finish
-
-.four
-	writetext UnknownText_0xa1244
-	jump .finish
-
-.five
-	writetext UnknownText_0xa1318
-	jump .finish
-
-.six
-	writetext UnknownText_0xa13d8
-	jump .finish
-
-.seven
-	writetext UnknownText_0xa1488
-	jump .finish
-
-.eight
-	writetext UnknownText_0xa15de
-	jump .finish
-
-.nine
-	writetext UnknownText_0xa1717
-	jump .finish
-
-.ten
-	writetext UnknownText_0xa183d
-	jump .finish
-
-.eleven
-	writetext UnknownText_0xa19b1
-	jump .finish
-
-.twelve
-	writetext UnknownText_0xa1ac0
-	jump .finish
-
-.thirteen
-	writetext UnknownText_0xa1bed
-
-.finish
-	end
-
-BuenaPhoneScript_Random1:
-	random 3
-	if_equal 0, .zero
-	if_equal 1, .one
-	if_equal 2, .two
-
-.zero
-	writetext UnknownText_0xa1c88
-	end
-
-.one
-	writetext UnknownText_0xa1d5f
-	end
-
-.two
-	writetext UnknownText_0xa1e2f
-	end
-; a0c28
-
-INCLUDE "text/phone/buena.asm"
--- a/engine/phone.asm
+++ /dev/null
@@ -1,800 +1,0 @@
-AddPhoneNumber:: ; 90000
-	call _CheckCellNum
-	jr c, .cant_add
-	call Phone_FindOpenSlot
-	jr nc, .cant_add
-	ld [hl], c
-	xor a
-	ret
-
-.cant_add
-	scf
-	ret
-; 9000f
-
-
-DelCellNum:: ; 9000f
-	call _CheckCellNum
-	jr nc, .not_in_list
-	xor a
-	ld [hl], a
-	ret
-
-.not_in_list
-	scf
-	ret
-; 90019
-
-CheckCellNum:: ; 90019
-	jp _CheckCellNum ; wtf
-; 9001c
-
-_CheckCellNum: ; 9001c
-	ld hl, wPhoneList
-	ld b, CONTACT_LIST_SIZE
-.loop
-	ld a, [hli]
-	cp c
-	jr z, .got_it
-	dec b
-	jr nz, .loop
-	xor a
-	ret
-
-.got_it
-	dec hl
-	scf
-	ret
-; 9002d
-
-Phone_FindOpenSlot: ; 9002d
-	call GetRemainingSpaceInPhoneList
-	ld b, a
-	ld hl, wPhoneList
-.loop
-	ld a, [hli]
-	and a
-	jr z, .FoundOpenSpace
-	dec b
-	jr nz, .loop
-	xor a
-	ret
-
-.FoundOpenSpace:
-	dec hl
-	scf
-	ret
-; 90040
-
-GetRemainingSpaceInPhoneList: ; 90040
-	xor a
-	ld [Buffer1], a
-	ld hl, PermanentNumbers
-.loop
-	ld a, [hli]
-	cp -1
-	jr z, .done
-	cp c
-	jr z, .elm_or_mom
-	push bc
-	push hl
-	ld c, a
-	call _CheckCellNum
-	jr c, .elm_or_mom_in_list
-	ld hl, Buffer1
-	inc [hl]
-
-.elm_or_mom_in_list
-	pop hl
-	pop bc
-
-.elm_or_mom
-	jr .loop
-
-.done
-	ld a, CONTACT_LIST_SIZE
-	ld hl, Buffer1
-	sub [hl]
-	ret
-; 90066
-
-PermanentNumbers: ; 90066
-	db PHONECONTACT_MOM, PHONECONTACT_ELM, -1
-; 90069
-
-
-FarPlaceString: ; 90069
-	ld a, [hROMBank]
-	push af
-	ld a, b
-	rst Bankswitch
-
-	call PlaceString
-
-	pop af
-	rst Bankswitch
-	ret
-; 90074
-
-
-CheckPhoneCall:: ; 90074 (24:4074)
-; Check if the phone is ringing in the overworld.
-
-	call CheckStandingOnEntrance
-	jr z, .no_call
-
-	call .timecheck
-	nop
-	jr nc, .no_call
-
-	call Random
-	ld b, a
-	and 50 percent
-	cp b
-	jr nz, .no_call
-
-	call GetMapHeaderPhoneServiceNybble
-	and a
-	jr nz, .no_call
-
-	call GetAvailableCallers
-	call ChooseRandomCaller
-	jr nc, .no_call
-
-	ld e, a
-	call LoadCallerScript
-	ld a, BANK(Script_ReceivePhoneCall)
-	ld hl, Script_ReceivePhoneCall
-	call CallScript
-	scf
-	ret
-
-.no_call
-	xor a
-	ret
-
-.timecheck ; 900a6 (24:40a6)
-	callba CheckReceiveCallTimer
-	ret
-
-CheckPhoneContactTimeOfDay: ; 900ad (24:40ad)
-	push hl
-	push bc
-	push de
-	push af
-
-	callba CheckTime
-	pop af
-	and MORN | DAY | NITE
-	and c
-
-	pop de
-	pop bc
-	pop hl
-	ret
-
-ChooseRandomCaller: ; 900bf (24:40bf)
-; If no one is available to call, don't return anything.
-	ld a, [EngineBuffer3]
-	and a
-	jr z, .NothingToSample
-
-; Sample a random number between 0 and 31.
-	ld c, a
-	call Random
-	ld a, [hRandomAdd]
-	swap a
-	and $1f
-; Compute that number modulo the number of available callers.
-	call SimpleDivide
-; Return the caller ID you just sampled.
-	ld c, a
-	ld b, 0
-	ld hl, EngineBuffer4
-	add hl, bc
-	ld a, [hl]
-	scf
-	ret
-
-.NothingToSample:
-	xor a
-	ret
-
-GetAvailableCallers: ; 900de (24:40de)
-	callba CheckTime
-	ld a, c
-	ld [EngineBuffer1], a
-	ld hl, EngineBuffer3
-	ld bc, 11
-	xor a
-	call ByteFill
-	ld de, wPhoneList
-	ld a, CONTACT_LIST_SIZE
-
-.loop
-	ld [EngineBuffer2], a
-	ld a, [de]
-	and a
-	jr z, .not_good_for_call
-	ld hl, PhoneContacts + PHONE_CONTACT_SCRIPT2_TIME
-	ld bc, PHONE_TABLE_WIDTH
-	call AddNTimes
-	ld a, [EngineBuffer1]
-	and [hl]
-	jr z, .not_good_for_call
-	ld bc, PHONE_CONTACT_MAP_GROUP - PHONE_CONTACT_SCRIPT2_TIME
-	add hl, bc
-	ld a, [MapGroup]
-	cp [hl]
-	jr nz, .different_map
-	inc hl
-	ld a, [MapNumber]
-	cp [hl]
-	jr z, .not_good_for_call
-.different_map
-	ld a, [EngineBuffer3]
-	ld c, a
-	ld b, $0
-	inc a
-	ld [EngineBuffer3], a
-	ld hl, EngineBuffer4
-	add hl, bc
-	ld a, [de]
-	ld [hl], a
-.not_good_for_call
-	inc de
-	ld a, [EngineBuffer2]
-	dec a
-	jr nz, .loop
-	ret
-
-CheckSpecialPhoneCall:: ; 90136 (24:4136)
-	ld a, [wSpecialPhoneCallID]
-	and a
-	jr z, .NoPhoneCall
-
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, SpecialPhoneCallList
-	ld a, 6
-	call AddNTimes
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call _hl_
-	jr nc, .NoPhoneCall
-
-	call .DoSpecialPhoneCall
-	inc hl
-	inc hl
-	ld a, [hli]
-	ld e, a
-	push hl
-	call LoadCallerScript
-	pop hl
-	ld de, wPhoneScriptPointer
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	ld a, BANK(.script)
-	ld hl, .script
-	call CallScript
-	scf
-	ret
-.NoPhoneCall:
-	xor a
-	ret
-; 90173 (24:4173)
-
-.script ; 0x90173
-	pause 30
-	jump Script_ReceivePhoneCall
-; 0x90178
-
-.DoSpecialPhoneCall: ; 90178 (24:4178)
-	ld a, [wSpecialPhoneCallID]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, SpecialPhoneCallList
-	ld a, 6
-	call AddNTimes
-	ret
-
-SpecialCallOnlyWhenOutside: ; 90188
-	ld a, [wPermission]
-	cp TOWN
-	jr z, .outside
-	cp ROUTE
-	jr z, .outside
-	xor a
-	ret
-
-.outside
-	scf
-	ret
-
-SpecialCallWhereverYouAre: ; 90197
-	scf
-	ret
-
-Function90199: ; 90199 (24:4199)
-	; Don't do the call if you're in a link communication
-	ld a, [wLinkMode]
-	and a
-	jr nz, .OutOfArea
-	; If you're in an area without phone service, don't do the call
-	call GetMapHeaderPhoneServiceNybble
-	and a
-	jr nz, .OutOfArea
-	; If the person can't take a call at that time, don't do the call
-	ld a, b
-	ld [wCurrentCaller], a
-	ld hl, PhoneContacts
-	ld bc, PHONE_TABLE_WIDTH
-	call AddNTimes
-	ld d, h
-	ld e, l
-	ld hl, PHONE_CONTACT_SCRIPT1_TIME
-	add hl, de
-	ld a, [hl]
-	call CheckPhoneContactTimeOfDay
-	jr z, .OutOfArea
-	; If we're in the same map as the person we're calling,
-	; use the "Just talk to that person" script.
-	ld hl, PHONE_CONTACT_MAP_GROUP
-	add hl, de
-	ld a, [MapGroup]
-	cp [hl]
-	jr nz, .GetPhoneScript
-	ld hl, PHONE_CONTACT_MAP_NUMBER
-	add hl, de
-	ld a, [MapNumber]
-	cp [hl]
-	jr nz, .GetPhoneScript
-	ld b, BANK(PhoneScript_JustTalkToThem)
-	ld hl, PhoneScript_JustTalkToThem
-	jr .DoPhoneCall
-
-.GetPhoneScript:
-	ld hl, PHONE_CONTACT_SCRIPT1_BANK
-	add hl, de
-	ld b, [hl]
-	ld hl, PHONE_CONTACT_SCRIPT1_ADDR_LO
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jr .DoPhoneCall
-
-.OutOfArea:
-	ld b, BANK(UnknownScript_0x90209)
-	ld de, UnknownScript_0x90209
-	call ExecuteCallbackScript
-	ret
-
-.DoPhoneCall:
-	ld a, b
-	ld [PhoneScriptBank], a
-	ld a, l
-	ld [PhoneCaller], a
-	ld a, h
-	ld [PhoneCaller + 1], a
-	ld b, BANK(UnknownScript_0x90205)
-	ld de, UnknownScript_0x90205
-	call ExecuteCallbackScript
-	ret
-; 90205 (24:4205)
-
-UnknownScript_0x90205: ; 0x90205
-	ptcall wd002
-	return
-; 0x90209
-
-UnknownScript_0x90209: ; 0x90209
-	scall UnknownScript_0x90657
-	return
-; 0x9020d
-
-LoadCallerScript: ; 9020d (24:420d)
-	nop
-	nop
-	ld a, e
-	ld [wCurrentCaller], a
-	and a
-	jr nz, .actualcaller
-	ld a, BANK(WrongNumber)
-	ld hl, WrongNumber
-	jr .proceed
-
-.actualcaller
-	ld hl, PhoneContacts
-	ld bc, 12
-	ld a, e
-	call AddNTimes
-	ld a, BANK(PhoneContacts)
-.proceed
-	ld de, EngineBuffer2
-	ld bc, 12
-	call FarCopyBytes
-	ret
-; 90233 (24:4233)
-
-WrongNumber: ; 90233
-	db TRAINER_NONE, PHONE_00
-	dba .script
-.script
-	writetext .text
-	end
-.text
-	; Huh? Sorry, wrong number!
-	text_jump UnknownText_0x1c5565
-	db "@"
-; 90241
-
-Script_ReceivePhoneCall: ; 0x90241
-	refreshscreen $0
-	callasm RingTwice_StartCall
-	ptcall wPhoneScriptPointer
-	waitbutton
-	callasm HangUp
-	closetext
-	callasm InitCallReceiveDelay
-	end
-; 0x90255
-
-Script_SpecialBillCall:: ; 0x90255
-	callasm .LoadBillScript
-	jump Script_ReceivePhoneCall
-
-.LoadBillScript:
-	ld e, PHONE_BILL
-	jp LoadCallerScript
-; 90261
-
-UnknownScript_0x90261: ; 0x90261
-	callasm .LoadElmScript
-	pause 30
-	jump Script_ReceivePhoneCall
-
-.LoadElmScript:
-	ld e, PHONE_ELM
-	jp LoadCallerScript
-; 9026f
-
-RingTwice_StartCall: ; 9026f
-	call .Ring
-	call .Ring
-	callba TrainerRankings_PhoneCalls
-	ret
-; 9027c
-
-.Ring: ; 9027c (24:427c)
-	call Phone_StartRinging
-	call Phone_Wait20Frames
-	call Phone_CallerTextboxWithName
-	call Phone_Wait20Frames
-	call Phone_CallerTextbox
-	call Phone_Wait20Frames
-	call Phone_CallerTextboxWithName
-	ret
-
-Phone_CallerTextboxWithName: ; 90292 (24:4292)
-	ld a, [wCurrentCaller]
-	ld b, a
-	call Function90363
-	ret
-
-PhoneCall:: ; 9029a
-	ld a, b
-	ld [PhoneScriptBank], a
-	ld a, e
-	ld [PhoneCaller], a
-	ld a, d
-	ld [PhoneCaller + 1], a
-	call Phone_FirstOfTwoRings
-	call Phone_FirstOfTwoRings
-	callba TrainerRankings_PhoneCalls
-	ret
-; 902b3
-
-Phone_FirstOfTwoRings: ; 902b3
-	call Phone_StartRinging
-	call Phone_Wait20Frames
-	call Phone_CallerTextboxWithName2
-	call Phone_Wait20Frames
-	call Phone_CallerTextbox
-	call Phone_Wait20Frames
-	call Phone_CallerTextboxWithName2
-	ret
-; 902c9
-
-Phone_CallerTextboxWithName2: ; 902c9
-	call Phone_CallerTextbox
-	hlcoord 1, 2
-	ld [hl], "<PHONE>"
-	inc hl
-	inc hl
-	ld a, [PhoneScriptBank]
-	ld b, a
-	ld a, [PhoneCaller]
-	ld e, a
-	ld a, [PhoneCaller + 1]
-	ld d, a
-	call FarPlaceString
-	ret
-; 902e3
-
-
-Phone_NoSignal: ; 902e3 (24:42e3)
-	ld de, SFX_NO_SIGNAL
-	call PlaySFX
-	jr Phone_CallEnd
-
-HangUp:: ; 902eb
-	call HangUp_Beep
-	call HangUp_Wait20Frames
-Phone_CallEnd:
-	call HangUp_BoopOn
-	call HangUp_Wait20Frames
-	call HangUp_BoopOff
-	call HangUp_Wait20Frames
-	call HangUp_BoopOn
-	call HangUp_Wait20Frames
-	call HangUp_BoopOff
-	call HangUp_Wait20Frames
-	call HangUp_BoopOn
-	call HangUp_Wait20Frames
-	call HangUp_BoopOff
-	call HangUp_Wait20Frames
-	ret
-; 90316
-
-Function90316: ; 90316
-	ld de, SFX_SHUT_DOWN_PC
-	call PlaySFX
-	ret
-; 9031d
-
-HangUp_Beep: ; 9031d
-	ld hl, UnknownText_0x9032a
-	call PrintText
-	ld de, SFX_HANG_UP
-	call PlaySFX
-	ret
-; 9032a
-
-UnknownText_0x9032a: ; 9032a
-	text_jump UnknownText_0x1c5580
-	db "@"
-; 9032f
-
-
-HangUp_BoopOn: ; 9032f
-	ld hl, UnknownText_0x90336
-	call PrintText
-	ret
-; 90336
-
-UnknownText_0x90336: ; 0x90336
-	text_jump UnknownText_0x1c5588
-	db "@"
-; 0x9033b
-
-
-HangUp_BoopOff: ; 9033b
-	call SpeechTextBox
-	ret
-; 9033f
-
-Phone_StartRinging: ; 9033f
-	call WaitSFX
-	ld de, SFX_CALL
-	call PlaySFX
-	call Phone_CallerTextbox
-	call UpdateSprites
-	callba PhoneRing_LoadEDTile
-	ret
-; 90355
-
-HangUp_Wait20Frames: ; 90355
-	jr Phone_Wait20Frames
-
-Phone_Wait20Frames
-	ld c, 20
-	call DelayFrames
-	callba PhoneRing_LoadEDTile
-	ret
-; 90363
-
-
-Function90363: ; 90363 (24:4363)
-	push bc
-	call Phone_CallerTextbox
-	hlcoord 1, 1
-	ld [hl], "<PHONE>"
-	inc hl
-	inc hl
-	ld d, h
-	ld e, l
-	pop bc
-	call Function90380
-	ret
-
-
-Phone_CallerTextbox: ; 90375
-	hlcoord 0, 0
-	ld b, 2
-	ld c, SCREEN_WIDTH - 2
-	call TextBox
-	ret
-; 90380
-
-
-Function90380: ; 90380 (24:4380)
-	ld h, d
-	ld l, e
-	ld a, b
-	call GetCallerTrainerClass
-	call GetCallerName
-	ret
-
-CheckCanDeletePhoneNumber: ; 9038a (24:438a)
-	ld a, c
-	call GetCallerTrainerClass
-	ld a, c
-	; and a
-	ret nz
-	ld a, b
-	cp PHONECONTACT_MOM
-	ret z
-	cp PHONECONTACT_ELM
-	ret z
-	ld c, $1
-	ret
-
-GetCallerTrainerClass: ; 9039a
-	push hl
-	ld hl, PhoneContacts + PHONE_CONTACT_TRAINER_CLASS
-	ld bc, PHONE_TABLE_WIDTH
-	call AddNTimes
-	ld a, [hli]
-	ld b, [hl]
-	ld c, a
-	pop hl
-	ret
-; 903a9
-
-
-GetCallerName: ; 903a9 (24:43a9)
-	ld a, c
-	and a
-	jr z, .NotTrainer
-
-	call Phone_GetTrainerName
-	push hl
-	push bc
-	call PlaceString
-	ld a, ":"
-	ld [bc], a
-	pop bc
-	pop hl
-	ld de, SCREEN_WIDTH + 3
-	add hl, de
-	call Phone_GetTrainerClassName
-	call PlaceString
-	ret
-
-.NotTrainer:
-	push hl
-	ld c, b
-	ld b, 0
-	ld hl, NonTrainerCallerNames
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld d, [hl]
-	pop hl
-	call PlaceString
-	ret
-; 903d6 (24:43d6)
-
-NonTrainerCallerNames: ; 903d6
-	dw .none
-	dw .mom
-	dw .bikeshop
-	dw .bill
-	dw .elm
-	dw .buena
-
-.none db "----------@"
-.mom db "MOM:@"
-.bill db "BILL:@"
-.elm db "PROF.ELM:@"
-.bikeshop db "BIKE SHOP:@"
-.buena db "BUENA:", $22, "   DISC JOCKEY@"
-; 90423
-
-Phone_GetTrainerName: ; 90423 (24:4423)
-	push hl
-	push bc
-	callba GetTrainerName
-	pop bc
-	pop hl
-	ret
-
-Phone_GetTrainerClassName: ; 9042e (24:442e)
-	push hl
-	push bc
-	callba GetTrainerClassName
-	pop bc
-	pop hl
-	ret
-
-GetCallerLocation: ; 90439
-	ld a, [wCurrentCaller]
-	call GetCallerTrainerClass
-	ld d, c
-	ld e, b
-	push de
-	ld a, [wCurrentCaller]
-	ld hl, PhoneContacts + PHONE_CONTACT_MAP_GROUP
-	ld bc, PHONE_TABLE_WIDTH
-	call AddNTimes
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	push bc
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	pop bc
-	pop de
-	ret
-; 9045f
-
-
-INCLUDE "data/phone_contacts.asm"
-
-INCLUDE "data/phone_special.asm"
-
-
-UnknownScript_0x90657: ; 0x90657
-	writetext UnknownText_0x9065b
-	end
-; 0x9065b
-
-UnknownText_0x9065b: ; 0x9065b
-	; That number is out of the area.
-	text_jump UnknownText_0x1c558b
-	db "@"
-; 0x90660
-
-PhoneScript_JustTalkToThem: ; 0x90660
-	writetext UnknownText_0x90664
-	end
-; 0x90664
-
-UnknownText_0x90664: ; 0x90664
-	; Just go talk to that person!
-	text_jump UnknownText_0x1c55ac
-	db "@"
-; 0x90669
-
-UnknownScript_0x90669: ; 0x90669
-	writetext UnknownText_0x9066d
-	end
-; 0x9066d
-
-UnknownText_0x9066d: ; 0x9066d
-	; Thank you!
-	text_jump UnknownText_0x1c55ca
-	db "@"
-; 0x90672
--- /dev/null
+++ b/engine/phone/buenas_password.asm
@@ -1,0 +1,170 @@
+BuenaPhoneScript1:
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue BuenaPhoneScript_Rocket
+	checkcode VAR_HOUR
+	if_greater_than 17, BuenaPhoneScript_AfterMidnight1
+	scall BuenaPhoneScript_CheckTimeOfDay1
+	jump BuenaPhoneScript_Random1
+
+BuenaPhoneScript2:
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue BuenaPhoneScript_Rocket
+	scall BuenaPhoneScript_CheckTimeOfDay2
+	jump BuenaPhoneScript_Random2
+
+BuenaPhoneScript_CheckTimeOfDay1:
+	checkmorn
+	iftrue .morn
+	checkday
+	iftrue .day
+	writetext UnknownText_0xa0d42
+	buttonsound
+	end
+
+.morn
+	writetext UnknownText_0xa0c28
+	buttonsound
+	end
+
+.day
+	writetext UnknownText_0xa0c72
+	buttonsound
+	end
+
+BuenaPhoneScript_AfterMidnight1:
+	writetext UnknownText_0xa0caf
+	end
+
+BuenaPhoneScript_CheckTimeOfDay2:
+	checkcode VAR_HOUR
+	if_greater_than 17, BuenaPhoneScript_AfterMidnight2
+	checkmorn
+	iftrue .morn
+	checkday
+	iftrue .day
+	writetext UnknownText_0xa0e29
+	buttonsound
+	end
+
+.morn
+	writetext UnknownText_0xa0d96
+	buttonsound
+	end
+
+.day
+	writetext UnknownText_0xa0dcf
+	buttonsound
+	end
+
+BuenaPhoneScript_AfterMidnight2:
+	writetext UnknownText_0xa0e01
+	buttonsound
+	end
+
+BuenaPhoneScript_Rocket:
+	writetext UnknownText_0xa0e5e
+	end
+
+BuenaPhoneScript_Random2:
+	checkevent EVENT_BEAT_ELITE_FOUR
+	iftrue .PostE4
+	random 11
+	jump .Jumptable
+
+.PostE4:
+	random 14
+
+.Jumptable:
+	if_equal 0, .zero
+	if_equal 1, .one
+	if_equal 2, .two
+	if_equal 3, .three
+	if_equal 4, .four
+	if_equal 5, .five
+	if_equal 6, .six
+	if_equal 7, .seven
+	if_equal 8, .eight
+	if_equal 9, .nine
+	if_equal 10, .ten
+	if_equal 11, .eleven
+	if_equal 12, .twelve
+	if_equal 13, .thirteen
+
+.zero
+	writetext UnknownText_0xa0efb
+	jump .finish
+
+.one
+	writetext UnknownText_0xa0fcf
+	jump .finish
+
+.two
+	writetext UnknownText_0xa109d
+	jump .finish
+
+.three
+	writetext UnknownText_0xa1143
+	jump .finish
+
+.four
+	writetext UnknownText_0xa1244
+	jump .finish
+
+.five
+	writetext UnknownText_0xa1318
+	jump .finish
+
+.six
+	writetext UnknownText_0xa13d8
+	jump .finish
+
+.seven
+	writetext UnknownText_0xa1488
+	jump .finish
+
+.eight
+	writetext UnknownText_0xa15de
+	jump .finish
+
+.nine
+	writetext UnknownText_0xa1717
+	jump .finish
+
+.ten
+	writetext UnknownText_0xa183d
+	jump .finish
+
+.eleven
+	writetext UnknownText_0xa19b1
+	jump .finish
+
+.twelve
+	writetext UnknownText_0xa1ac0
+	jump .finish
+
+.thirteen
+	writetext UnknownText_0xa1bed
+
+.finish
+	end
+
+BuenaPhoneScript_Random1:
+	random 3
+	if_equal 0, .zero
+	if_equal 1, .one
+	if_equal 2, .two
+
+.zero
+	writetext UnknownText_0xa1c88
+	end
+
+.one
+	writetext UnknownText_0xa1d5f
+	end
+
+.two
+	writetext UnknownText_0xa1e2f
+	end
+; a0c28
+
+INCLUDE "text/phone/buena.asm"
--- /dev/null
+++ b/engine/phone/generic_calls.asm
@@ -1,0 +1,1266 @@
+PhoneScript_Random2:
+	random 2
+	end
+
+PhoneScript_Random3:
+	random 3
+	end
+
+PhoneScript_Random4:
+	random 4
+	end
+
+PhoneScript_Random5:
+	random 5
+	end
+
+PhoneScript_Random11:
+	random 11
+	end
+
+PhoneScript_AnswerPhone_Male:
+	checkday
+	iftrue PhoneScript_AnswerPhone_Male_Day
+	checknite
+	iftrue PhoneScript_AnswerPhone_Male_Nite
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4dc5
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b5073
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b5270
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b55ae
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b589a
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5a3b
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5c10
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b5f7a
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b60f5
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b638c
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b6454
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b659d
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b67e2
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b69a8
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6b39
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6c96
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7019
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b71d5
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b730b
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b73c7
+	buttonsound
+	end
+
+PhoneScript_AnswerPhone_Male_Day:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4ded
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b509b
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b52a5
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b55da
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b58c2
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5a74
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5c63
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b5f9e
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b611b
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b63a8
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b647e
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b65c7
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b680e
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b69d2
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6b65
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6cc6
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7057
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b71fc
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b7331
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b73ef
+	buttonsound
+	end
+
+PhoneScript_AnswerPhone_Male_Nite:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4e16
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b50c2
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b52cc
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b55fc
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b58ea
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5a9f
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5cb6
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b5fc9
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b6149
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b63c4
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b64a8
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b65e3
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b6836
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b69f8
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6b92
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6cf6
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7092
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b722a
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b7357
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b7417
+	buttonsound
+	end
+
+PhoneScript_AnswerPhone_Female:
+	checkday
+	iftrue PhoneScript_AnswerPhone_Female_Day
+	checknite
+	iftrue PhoneScript_AnswerPhone_Female_Nite
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b4f21
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b53f7
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b5702
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5d9f
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b626a
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b66c8
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6e7c
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b751a
+	buttonsound
+	end
+
+PhoneScript_AnswerPhone_Female_Day:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b4f4d
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b5424
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b572e
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5dcc
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b6296
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b66ec
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6ea6
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b7548
+	buttonsound
+	end
+
+PhoneScript_AnswerPhone_Female_Nite:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b4f75
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b5446
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b575a
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5df8
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b62c5
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b6713
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6ec9
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b756f
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Male:
+	checkday
+	iftrue PhoneScript_GreetPhone_Male_Day
+	checknite
+	iftrue PhoneScript_GreetPhone_Male_Nite
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4e3e
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b50e9
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b5301
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b5628
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b5912
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5ad8
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5d09
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b5ff6
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b616e
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b63e3
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b64d2
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b660d
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b6862
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b6a22
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6bb9
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6d26
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b70e7
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b725c
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b737f
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b743f
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Male_Day:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4e72
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b511a
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b5335
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b564c
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b5948
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5b0b
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5d21
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b6017
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b618f
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b6407
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b6506
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b6624
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b6890
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b6a56
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6bef
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6d57
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7112
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b7283
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b7397
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b746f
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Male_Nite:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4e9e
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1b5154
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b535f
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b5670
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b597c
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5b37
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5d39
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b6041
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b61bd
+	buttonsound
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x1b642c
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b6539
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b663b
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b68ba
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b6a8b
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6c23
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6d88
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7132
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b72a5
+	buttonsound
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x1b73af
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b749b
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Female:
+	checkday
+	iftrue PhoneScript_GreetPhone_Female_Day
+	checknite
+	iftrue PhoneScript_GreetPhone_Female_Nite
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b4fa1
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b5472
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b5786
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5e25
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b62f1
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b6738
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6ef3
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b758f
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Female_Day:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b4fda
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b54a6
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b57b7
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5e59
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b630e
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b6757
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6f1c
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b75ac
+	buttonsound
+	end
+
+PhoneScript_GreetPhone_Female_Nite:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b5004
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b54d4
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b57e8
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5e8e
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b6331
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b6776
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6f37
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b75c9
+	buttonsound
+	end
+
+PhoneScript_Generic_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1b4ecd
+	buttonsound
+	end
+
+.Unknown:
+	farwritetext UnknownText_0x1b518b
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x1b5393
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x1b5694
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x1b59b2
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1b5b68
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x1b5d51
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x1b606f
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x1b61f2
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x1b656c
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x1b6652
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x1b68e8
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x1b6ac2
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x1b6c56
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x1b6db9
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x1b7161
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x1b72d0
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x1b74c8
+	buttonsound
+	end
+
+PhoneScript_Generic_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1b502b
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x1b5510
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1b5819
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x1b5ebe
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1b6352
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x1b6795
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x1b6f60
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x1b75e5
+	buttonsound
+	end
+
+PhoneScript_MonFlavorText:
+	special RandomPhoneMon
+	farscall PhoneScript_Random2
+	if_equal $0, .TooEnergetic
+	farwritetext UnknownText_0x1b518b
+	buttonsound
+	farjump PhoneScript_HangupText_Male
+
+.TooEnergetic:
+	farjump .unnecessary
+
+.unnecessary
+	farwritetext UnknownText_0x1b522b
+	buttonsound
+	farjump PhoneScript_HangupText_Male
+; be643
+
+
+GrandmaString: db "Grandma@"
+GrandpaString: db "Grandpa@"
+MomString: db "Mom@"
+DadString: db "Dad@"
+SisterString: db "Sister@"
+BrotherString: db "Brother@"
+
--- /dev/null
+++ b/engine/phone/phone.asm
@@ -1,0 +1,800 @@
+AddPhoneNumber:: ; 90000
+	call _CheckCellNum
+	jr c, .cant_add
+	call Phone_FindOpenSlot
+	jr nc, .cant_add
+	ld [hl], c
+	xor a
+	ret
+
+.cant_add
+	scf
+	ret
+; 9000f
+
+
+DelCellNum:: ; 9000f
+	call _CheckCellNum
+	jr nc, .not_in_list
+	xor a
+	ld [hl], a
+	ret
+
+.not_in_list
+	scf
+	ret
+; 90019
+
+CheckCellNum:: ; 90019
+	jp _CheckCellNum ; wtf
+; 9001c
+
+_CheckCellNum: ; 9001c
+	ld hl, wPhoneList
+	ld b, CONTACT_LIST_SIZE
+.loop
+	ld a, [hli]
+	cp c
+	jr z, .got_it
+	dec b
+	jr nz, .loop
+	xor a
+	ret
+
+.got_it
+	dec hl
+	scf
+	ret
+; 9002d
+
+Phone_FindOpenSlot: ; 9002d
+	call GetRemainingSpaceInPhoneList
+	ld b, a
+	ld hl, wPhoneList
+.loop
+	ld a, [hli]
+	and a
+	jr z, .FoundOpenSpace
+	dec b
+	jr nz, .loop
+	xor a
+	ret
+
+.FoundOpenSpace:
+	dec hl
+	scf
+	ret
+; 90040
+
+GetRemainingSpaceInPhoneList: ; 90040
+	xor a
+	ld [Buffer1], a
+	ld hl, PermanentNumbers
+.loop
+	ld a, [hli]
+	cp -1
+	jr z, .done
+	cp c
+	jr z, .elm_or_mom
+	push bc
+	push hl
+	ld c, a
+	call _CheckCellNum
+	jr c, .elm_or_mom_in_list
+	ld hl, Buffer1
+	inc [hl]
+
+.elm_or_mom_in_list
+	pop hl
+	pop bc
+
+.elm_or_mom
+	jr .loop
+
+.done
+	ld a, CONTACT_LIST_SIZE
+	ld hl, Buffer1
+	sub [hl]
+	ret
+; 90066
+
+PermanentNumbers: ; 90066
+	db PHONECONTACT_MOM, PHONECONTACT_ELM, -1
+; 90069
+
+
+FarPlaceString: ; 90069
+	ld a, [hROMBank]
+	push af
+	ld a, b
+	rst Bankswitch
+
+	call PlaceString
+
+	pop af
+	rst Bankswitch
+	ret
+; 90074
+
+
+CheckPhoneCall:: ; 90074 (24:4074)
+; Check if the phone is ringing in the overworld.
+
+	call CheckStandingOnEntrance
+	jr z, .no_call
+
+	call .timecheck
+	nop
+	jr nc, .no_call
+
+	call Random
+	ld b, a
+	and 50 percent
+	cp b
+	jr nz, .no_call
+
+	call GetMapHeaderPhoneServiceNybble
+	and a
+	jr nz, .no_call
+
+	call GetAvailableCallers
+	call ChooseRandomCaller
+	jr nc, .no_call
+
+	ld e, a
+	call LoadCallerScript
+	ld a, BANK(Script_ReceivePhoneCall)
+	ld hl, Script_ReceivePhoneCall
+	call CallScript
+	scf
+	ret
+
+.no_call
+	xor a
+	ret
+
+.timecheck ; 900a6 (24:40a6)
+	callba CheckReceiveCallTimer
+	ret
+
+CheckPhoneContactTimeOfDay: ; 900ad (24:40ad)
+	push hl
+	push bc
+	push de
+	push af
+
+	callba CheckTime
+	pop af
+	and MORN | DAY | NITE
+	and c
+
+	pop de
+	pop bc
+	pop hl
+	ret
+
+ChooseRandomCaller: ; 900bf (24:40bf)
+; If no one is available to call, don't return anything.
+	ld a, [EngineBuffer3]
+	and a
+	jr z, .NothingToSample
+
+; Sample a random number between 0 and 31.
+	ld c, a
+	call Random
+	ld a, [hRandomAdd]
+	swap a
+	and $1f
+; Compute that number modulo the number of available callers.
+	call SimpleDivide
+; Return the caller ID you just sampled.
+	ld c, a
+	ld b, 0
+	ld hl, EngineBuffer4
+	add hl, bc
+	ld a, [hl]
+	scf
+	ret
+
+.NothingToSample:
+	xor a
+	ret
+
+GetAvailableCallers: ; 900de (24:40de)
+	callba CheckTime
+	ld a, c
+	ld [EngineBuffer1], a
+	ld hl, EngineBuffer3
+	ld bc, 11
+	xor a
+	call ByteFill
+	ld de, wPhoneList
+	ld a, CONTACT_LIST_SIZE
+
+.loop
+	ld [EngineBuffer2], a
+	ld a, [de]
+	and a
+	jr z, .not_good_for_call
+	ld hl, PhoneContacts + PHONE_CONTACT_SCRIPT2_TIME
+	ld bc, PHONE_TABLE_WIDTH
+	call AddNTimes
+	ld a, [EngineBuffer1]
+	and [hl]
+	jr z, .not_good_for_call
+	ld bc, PHONE_CONTACT_MAP_GROUP - PHONE_CONTACT_SCRIPT2_TIME
+	add hl, bc
+	ld a, [MapGroup]
+	cp [hl]
+	jr nz, .different_map
+	inc hl
+	ld a, [MapNumber]
+	cp [hl]
+	jr z, .not_good_for_call
+.different_map
+	ld a, [EngineBuffer3]
+	ld c, a
+	ld b, $0
+	inc a
+	ld [EngineBuffer3], a
+	ld hl, EngineBuffer4
+	add hl, bc
+	ld a, [de]
+	ld [hl], a
+.not_good_for_call
+	inc de
+	ld a, [EngineBuffer2]
+	dec a
+	jr nz, .loop
+	ret
+
+CheckSpecialPhoneCall:: ; 90136 (24:4136)
+	ld a, [wSpecialPhoneCallID]
+	and a
+	jr z, .NoPhoneCall
+
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, SpecialPhoneCallList
+	ld a, 6
+	call AddNTimes
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call _hl_
+	jr nc, .NoPhoneCall
+
+	call .DoSpecialPhoneCall
+	inc hl
+	inc hl
+	ld a, [hli]
+	ld e, a
+	push hl
+	call LoadCallerScript
+	pop hl
+	ld de, wPhoneScriptPointer
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	ld a, BANK(.script)
+	ld hl, .script
+	call CallScript
+	scf
+	ret
+.NoPhoneCall:
+	xor a
+	ret
+; 90173 (24:4173)
+
+.script ; 0x90173
+	pause 30
+	jump Script_ReceivePhoneCall
+; 0x90178
+
+.DoSpecialPhoneCall: ; 90178 (24:4178)
+	ld a, [wSpecialPhoneCallID]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, SpecialPhoneCallList
+	ld a, 6
+	call AddNTimes
+	ret
+
+SpecialCallOnlyWhenOutside: ; 90188
+	ld a, [wPermission]
+	cp TOWN
+	jr z, .outside
+	cp ROUTE
+	jr z, .outside
+	xor a
+	ret
+
+.outside
+	scf
+	ret
+
+SpecialCallWhereverYouAre: ; 90197
+	scf
+	ret
+
+Function90199: ; 90199 (24:4199)
+	; Don't do the call if you're in a link communication
+	ld a, [wLinkMode]
+	and a
+	jr nz, .OutOfArea
+	; If you're in an area without phone service, don't do the call
+	call GetMapHeaderPhoneServiceNybble
+	and a
+	jr nz, .OutOfArea
+	; If the person can't take a call at that time, don't do the call
+	ld a, b
+	ld [wCurrentCaller], a
+	ld hl, PhoneContacts
+	ld bc, PHONE_TABLE_WIDTH
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld hl, PHONE_CONTACT_SCRIPT1_TIME
+	add hl, de
+	ld a, [hl]
+	call CheckPhoneContactTimeOfDay
+	jr z, .OutOfArea
+	; If we're in the same map as the person we're calling,
+	; use the "Just talk to that person" script.
+	ld hl, PHONE_CONTACT_MAP_GROUP
+	add hl, de
+	ld a, [MapGroup]
+	cp [hl]
+	jr nz, .GetPhoneScript
+	ld hl, PHONE_CONTACT_MAP_NUMBER
+	add hl, de
+	ld a, [MapNumber]
+	cp [hl]
+	jr nz, .GetPhoneScript
+	ld b, BANK(PhoneScript_JustTalkToThem)
+	ld hl, PhoneScript_JustTalkToThem
+	jr .DoPhoneCall
+
+.GetPhoneScript:
+	ld hl, PHONE_CONTACT_SCRIPT1_BANK
+	add hl, de
+	ld b, [hl]
+	ld hl, PHONE_CONTACT_SCRIPT1_ADDR_LO
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jr .DoPhoneCall
+
+.OutOfArea:
+	ld b, BANK(UnknownScript_0x90209)
+	ld de, UnknownScript_0x90209
+	call ExecuteCallbackScript
+	ret
+
+.DoPhoneCall:
+	ld a, b
+	ld [PhoneScriptBank], a
+	ld a, l
+	ld [PhoneCaller], a
+	ld a, h
+	ld [PhoneCaller + 1], a
+	ld b, BANK(UnknownScript_0x90205)
+	ld de, UnknownScript_0x90205
+	call ExecuteCallbackScript
+	ret
+; 90205 (24:4205)
+
+UnknownScript_0x90205: ; 0x90205
+	ptcall wd002
+	return
+; 0x90209
+
+UnknownScript_0x90209: ; 0x90209
+	scall UnknownScript_0x90657
+	return
+; 0x9020d
+
+LoadCallerScript: ; 9020d (24:420d)
+	nop
+	nop
+	ld a, e
+	ld [wCurrentCaller], a
+	and a
+	jr nz, .actualcaller
+	ld a, BANK(WrongNumber)
+	ld hl, WrongNumber
+	jr .proceed
+
+.actualcaller
+	ld hl, PhoneContacts
+	ld bc, 12
+	ld a, e
+	call AddNTimes
+	ld a, BANK(PhoneContacts)
+.proceed
+	ld de, EngineBuffer2
+	ld bc, 12
+	call FarCopyBytes
+	ret
+; 90233 (24:4233)
+
+WrongNumber: ; 90233
+	db TRAINER_NONE, PHONE_00
+	dba .script
+.script
+	writetext .text
+	end
+.text
+	; Huh? Sorry, wrong number!
+	text_jump UnknownText_0x1c5565
+	db "@"
+; 90241
+
+Script_ReceivePhoneCall: ; 0x90241
+	refreshscreen $0
+	callasm RingTwice_StartCall
+	ptcall wPhoneScriptPointer
+	waitbutton
+	callasm HangUp
+	closetext
+	callasm InitCallReceiveDelay
+	end
+; 0x90255
+
+Script_SpecialBillCall:: ; 0x90255
+	callasm .LoadBillScript
+	jump Script_ReceivePhoneCall
+
+.LoadBillScript:
+	ld e, PHONE_BILL
+	jp LoadCallerScript
+; 90261
+
+UnknownScript_0x90261: ; 0x90261
+	callasm .LoadElmScript
+	pause 30
+	jump Script_ReceivePhoneCall
+
+.LoadElmScript:
+	ld e, PHONE_ELM
+	jp LoadCallerScript
+; 9026f
+
+RingTwice_StartCall: ; 9026f
+	call .Ring
+	call .Ring
+	callba TrainerRankings_PhoneCalls
+	ret
+; 9027c
+
+.Ring: ; 9027c (24:427c)
+	call Phone_StartRinging
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName
+	call Phone_Wait20Frames
+	call Phone_CallerTextbox
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName
+	ret
+
+Phone_CallerTextboxWithName: ; 90292 (24:4292)
+	ld a, [wCurrentCaller]
+	ld b, a
+	call Function90363
+	ret
+
+PhoneCall:: ; 9029a
+	ld a, b
+	ld [PhoneScriptBank], a
+	ld a, e
+	ld [PhoneCaller], a
+	ld a, d
+	ld [PhoneCaller + 1], a
+	call Phone_FirstOfTwoRings
+	call Phone_FirstOfTwoRings
+	callba TrainerRankings_PhoneCalls
+	ret
+; 902b3
+
+Phone_FirstOfTwoRings: ; 902b3
+	call Phone_StartRinging
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName2
+	call Phone_Wait20Frames
+	call Phone_CallerTextbox
+	call Phone_Wait20Frames
+	call Phone_CallerTextboxWithName2
+	ret
+; 902c9
+
+Phone_CallerTextboxWithName2: ; 902c9
+	call Phone_CallerTextbox
+	hlcoord 1, 2
+	ld [hl], "<PHONE>"
+	inc hl
+	inc hl
+	ld a, [PhoneScriptBank]
+	ld b, a
+	ld a, [PhoneCaller]
+	ld e, a
+	ld a, [PhoneCaller + 1]
+	ld d, a
+	call FarPlaceString
+	ret
+; 902e3
+
+
+Phone_NoSignal: ; 902e3 (24:42e3)
+	ld de, SFX_NO_SIGNAL
+	call PlaySFX
+	jr Phone_CallEnd
+
+HangUp:: ; 902eb
+	call HangUp_Beep
+	call HangUp_Wait20Frames
+Phone_CallEnd:
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
+	call HangUp_BoopOn
+	call HangUp_Wait20Frames
+	call HangUp_BoopOff
+	call HangUp_Wait20Frames
+	ret
+; 90316
+
+Function90316: ; 90316
+	ld de, SFX_SHUT_DOWN_PC
+	call PlaySFX
+	ret
+; 9031d
+
+HangUp_Beep: ; 9031d
+	ld hl, UnknownText_0x9032a
+	call PrintText
+	ld de, SFX_HANG_UP
+	call PlaySFX
+	ret
+; 9032a
+
+UnknownText_0x9032a: ; 9032a
+	text_jump UnknownText_0x1c5580
+	db "@"
+; 9032f
+
+
+HangUp_BoopOn: ; 9032f
+	ld hl, UnknownText_0x90336
+	call PrintText
+	ret
+; 90336
+
+UnknownText_0x90336: ; 0x90336
+	text_jump UnknownText_0x1c5588
+	db "@"
+; 0x9033b
+
+
+HangUp_BoopOff: ; 9033b
+	call SpeechTextBox
+	ret
+; 9033f
+
+Phone_StartRinging: ; 9033f
+	call WaitSFX
+	ld de, SFX_CALL
+	call PlaySFX
+	call Phone_CallerTextbox
+	call UpdateSprites
+	callba PhoneRing_LoadEDTile
+	ret
+; 90355
+
+HangUp_Wait20Frames: ; 90355
+	jr Phone_Wait20Frames
+
+Phone_Wait20Frames
+	ld c, 20
+	call DelayFrames
+	callba PhoneRing_LoadEDTile
+	ret
+; 90363
+
+
+Function90363: ; 90363 (24:4363)
+	push bc
+	call Phone_CallerTextbox
+	hlcoord 1, 1
+	ld [hl], "<PHONE>"
+	inc hl
+	inc hl
+	ld d, h
+	ld e, l
+	pop bc
+	call Function90380
+	ret
+
+
+Phone_CallerTextbox: ; 90375
+	hlcoord 0, 0
+	ld b, 2
+	ld c, SCREEN_WIDTH - 2
+	call TextBox
+	ret
+; 90380
+
+
+Function90380: ; 90380 (24:4380)
+	ld h, d
+	ld l, e
+	ld a, b
+	call GetCallerTrainerClass
+	call GetCallerName
+	ret
+
+CheckCanDeletePhoneNumber: ; 9038a (24:438a)
+	ld a, c
+	call GetCallerTrainerClass
+	ld a, c
+	; and a
+	ret nz
+	ld a, b
+	cp PHONECONTACT_MOM
+	ret z
+	cp PHONECONTACT_ELM
+	ret z
+	ld c, $1
+	ret
+
+GetCallerTrainerClass: ; 9039a
+	push hl
+	ld hl, PhoneContacts + PHONE_CONTACT_TRAINER_CLASS
+	ld bc, PHONE_TABLE_WIDTH
+	call AddNTimes
+	ld a, [hli]
+	ld b, [hl]
+	ld c, a
+	pop hl
+	ret
+; 903a9
+
+
+GetCallerName: ; 903a9 (24:43a9)
+	ld a, c
+	and a
+	jr z, .NotTrainer
+
+	call Phone_GetTrainerName
+	push hl
+	push bc
+	call PlaceString
+	ld a, ":"
+	ld [bc], a
+	pop bc
+	pop hl
+	ld de, SCREEN_WIDTH + 3
+	add hl, de
+	call Phone_GetTrainerClassName
+	call PlaceString
+	ret
+
+.NotTrainer:
+	push hl
+	ld c, b
+	ld b, 0
+	ld hl, NonTrainerCallerNames
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld d, [hl]
+	pop hl
+	call PlaceString
+	ret
+; 903d6 (24:43d6)
+
+NonTrainerCallerNames: ; 903d6
+	dw .none
+	dw .mom
+	dw .bikeshop
+	dw .bill
+	dw .elm
+	dw .buena
+
+.none db "----------@"
+.mom db "MOM:@"
+.bill db "BILL:@"
+.elm db "PROF.ELM:@"
+.bikeshop db "BIKE SHOP:@"
+.buena db "BUENA:", $22, "   DISC JOCKEY@"
+; 90423
+
+Phone_GetTrainerName: ; 90423 (24:4423)
+	push hl
+	push bc
+	callba GetTrainerName
+	pop bc
+	pop hl
+	ret
+
+Phone_GetTrainerClassName: ; 9042e (24:442e)
+	push hl
+	push bc
+	callba GetTrainerClassName
+	pop bc
+	pop hl
+	ret
+
+GetCallerLocation: ; 90439
+	ld a, [wCurrentCaller]
+	call GetCallerTrainerClass
+	ld d, c
+	ld e, b
+	push de
+	ld a, [wCurrentCaller]
+	ld hl, PhoneContacts + PHONE_CONTACT_MAP_GROUP
+	ld bc, PHONE_TABLE_WIDTH
+	call AddNTimes
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	push bc
+	call GetWorldMapLocation
+	ld e, a
+	callba GetLandmarkName
+	pop bc
+	pop de
+	ret
+; 9045f
+
+
+INCLUDE "data/phone_contacts.asm"
+
+INCLUDE "data/phone_special.asm"
+
+
+UnknownScript_0x90657: ; 0x90657
+	writetext UnknownText_0x9065b
+	end
+; 0x9065b
+
+UnknownText_0x9065b: ; 0x9065b
+	; That number is out of the area.
+	text_jump UnknownText_0x1c558b
+	db "@"
+; 0x90660
+
+PhoneScript_JustTalkToThem: ; 0x90660
+	writetext UnknownText_0x90664
+	end
+; 0x90664
+
+UnknownText_0x90664: ; 0x90664
+	; Just go talk to that person!
+	text_jump UnknownText_0x1c55ac
+	db "@"
+; 0x90669
+
+UnknownScript_0x90669: ; 0x90669
+	writetext UnknownText_0x9066d
+	end
+; 0x9066d
+
+UnknownText_0x9066d: ; 0x9066d
+	; Thank you!
+	text_jump UnknownText_0x1c55ca
+	db "@"
+; 0x90672
--- /dev/null
+++ b/engine/phone/phone_callers.asm
@@ -1,0 +1,961 @@
+Phone_GenericCall_Male:
+	special RandomPhoneMon
+	farscall PhoneScript_Random2
+	if_equal 0, .Bragging
+	farscall PhoneScript_Generic_Male
+	farjump Phone_FoundAMon_Male
+
+.Bragging:
+	farjump Phone_BraggingCall_Male
+
+Phone_GenericCall_Female:
+	special RandomPhoneMon
+	farscall PhoneScript_Random2
+	if_equal 0, .Bragging
+	farscall PhoneScript_Generic_Female
+	farjump Phone_FoundAMon_Female
+
+.Bragging:
+	farjump Phone_BraggingCall_Female
+
+Phone_BraggingCall_Male:
+	farscall Phone_WhosBragging_Male
+	farjump Phone_FoundAMon_Male
+
+Phone_BraggingCall_Female:
+	farscall Phone_WhosBragging_Female
+	farjump Phone_FoundAMon_Female
+
+Phone_FoundAMon_Male:
+	special RandomPhoneWildMon
+	farscall PhoneScript_Random2
+	if_equal 0, .GotAway
+	farscall Phone_WhoDefeatedMon_Male
+	farjump PhoneScript_HangupText_Male
+
+.GotAway:
+	farjump Phone_GotAwayCall_Male
+
+Phone_FoundAMon_Female:
+	special RandomPhoneWildMon
+	farscall PhoneScript_Random2
+	if_equal 0, .GotAway
+	farscall Phone_WhoDefeatedMon_Female
+	farjump PhoneScript_HangupText_Female
+
+.GotAway:
+	farjump Phone_GotAwayCall_Female
+
+Phone_GotAwayCall_Male:
+	farscall Phone_WhoLostAMon_Male
+	farjump PhoneScript_HangupText_Male
+
+Phone_GotAwayCall_Female:
+	farscall Phone_WhoLostAMon_Female
+	farjump PhoneScript_HangupText_Female
+
+Phone_WhosBragging_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext JackIntelligenceText
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext GavenGreaterText
+	buttonsound
+	end
+
+.Jose:
+	farwritetext JoseAromaText
+	buttonsound
+	end
+
+.Joey:
+	farwritetext JoeySharperText
+	buttonsound
+	end
+
+.Wade:
+	farwritetext WadeAreYouGrowingText
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext RalphNeglectingKidsText
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext AnthonyAteBerriesText
+	buttonsound
+	end
+
+.Todd:
+	farwritetext ToddLooksCuteLikeMeText
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext ArnieLovesTheCuteText
+	buttonsound
+	end
+
+.Alan:
+	farwritetext AlanGettingStrongerText
+	buttonsound
+	end
+
+.Chad:
+	farwritetext ChadObservingWildText
+	buttonsound
+	end
+
+.Derek:
+	farwritetext DerekCheekPincherText
+	buttonsound
+	end
+
+.Tully:
+	farwritetext TullyGrownText
+	buttonsound
+	end
+
+.Brent:
+	farwritetext BrentRareTradeText
+	buttonsound
+	end
+
+.Vance:
+	farwritetext VanceLiftoffText
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext WiltonGrownText
+	buttonsound
+	end
+
+.Parry:
+	farwritetext ParryNoMatchText
+	buttonsound
+	end
+
+Phone_WhosBragging_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x174688
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x174c7f
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1752f5
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x175fda
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1771fd
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x64f74
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x665ad
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x6717a
+	buttonsound
+	end
+
+Phone_WhoDefeatedMon_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext JackDefeatedMonText
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x174a80
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x174f90
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x175591
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x175869
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x175c24
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x176aef
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x176e9c
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x64a13
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x64cf3
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x65318
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x65b29
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x65e42
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x6613c
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x669b2
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x66b3e
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x66fc0
+	buttonsound
+	end
+
+Phone_WhoDefeatedMon_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1746c3
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x174cf6
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x17536b
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x17602d
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x177237
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x64fb2
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x66605
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x671a4
+	buttonsound
+	end
+
+Phone_WhoLostAMon_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x174165
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x174b2d
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x174ffd
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x175611
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1758e4
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x175c9f
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x176b45
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x176eee
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x64a71
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x64d4f
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x65399
+	buttonsound
+	end
+
+.Derek:
+	farwritetext UnknownText_0x65bc8
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x65eac
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x6618c
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x669ed
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x66b8f
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x67001
+	buttonsound
+	end
+
+Phone_WhoLostAMon_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x174734
+	buttonsound
+	end
+
+.Beth:
+	farwritetext UnknownText_0x174d86
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x1753c5
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x176095
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x177297
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x6501c
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x66688
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x671eb
+	buttonsound
+	end
+
+PhoneScript_WantsToBattle_Male:
+	farscall PhoneScript_RematchText_Male
+	farjump PhoneScript_HangupText_Male
+
+PhoneScript_WantsToBattle_Female:
+	farscall PhoneScript_RematchText_Female
+	farjump PhoneScript_HangupText_Female
+
+PhoneScript_RematchText_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x1741e1
+	buttonsound
+	end
+
+.Huey:
+	farwritetext UnknownText_0x1748ea
+	buttonsound
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x174bc5
+	buttonsound
+	end
+
+.Jose:
+	farwritetext UnknownText_0x17507d
+	buttonsound
+	end
+
+.Joey:
+	farwritetext UnknownText_0x175693
+	buttonsound
+	end
+
+.Wade:
+	farwritetext UnknownText_0x175976
+	buttonsound
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x175d40
+	buttonsound
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x176bee
+	buttonsound
+	end
+
+.Todd:
+	farwritetext UnknownText_0x176f60
+	buttonsound
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x64ada
+	buttonsound
+	end
+
+.Alan:
+	farwritetext UnknownText_0x64da4
+	buttonsound
+	end
+
+.Chad:
+	farwritetext UnknownText_0x65419
+	buttonsound
+	end
+
+.Tully:
+	farwritetext UnknownText_0x65f17
+	buttonsound
+	end
+
+.Brent:
+	farwritetext UnknownText_0x66214
+	buttonsound
+	end
+
+.Vance:
+	farwritetext UnknownText_0x66a3a
+	buttonsound
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x66bf3
+	buttonsound
+	end
+
+.Parry:
+	farwritetext UnknownText_0x67096
+	buttonsound
+	end
+
+PhoneScript_RematchText_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beth:
+	farwritetext UnknownText_0x174e4e
+	buttonsound
+	end
+
+.Reena:
+	farwritetext UnknownText_0x17543a
+	buttonsound
+	end
+
+.Liz:
+	farwritetext UnknownText_0x17610a
+	buttonsound
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1772e2
+	buttonsound
+	end
+
+.Dana:
+	farwritetext UnknownText_0x65091
+	buttonsound
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x66730
+	buttonsound
+	end
+
+.Erin:
+	farwritetext UnknownText_0x6722e
+	buttonsound
+	end
+
+LizWrongNumberScript:
+	farwritetext LizHiTaniaText
+	end
+
+TiffanyItsAwful:
+	farwritetext TiffanyItsAwfulText
+	end
+
+PhoneScript_HangupText_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_SCHOOLBOY_JACK, .Jack
+	if_equal PHONE_SAILOR_HUEY, .Huey
+	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_YOUNGSTER_JOEY, .Joey
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_FISHER_RALPH, .Ralph
+	if_equal PHONE_HIKER_ANTHONY, .Anthony
+	if_equal PHONE_CAMPER_TODD, .Todd
+	if_equal PHONE_JUGGLER_IRWIN, .Irwin
+	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_POKEMANIAC_BRENT, .Brent
+	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
+	if_equal PHONE_FISHER_WILTON, .Wilton
+	if_equal PHONE_BLACKBELT_KENJI, .Kenji
+	if_equal PHONE_HIKER_PARRY, .Parry
+
+.Jack:
+	farwritetext UnknownText_0x174251
+	end
+
+.Huey:
+	farwritetext UnknownText_0x174962
+	end
+
+.Gaven:
+	farwritetext UnknownText_0x174c0e
+	end
+
+.Jose:
+	farwritetext UnknownText_0x175106
+	end
+
+.Joey:
+	farwritetext UnknownText_0x17570a
+	end
+
+.Wade:
+	farwritetext UnknownText_0x1759e7
+	end
+
+.Ralph:
+	farwritetext UnknownText_0x175db7
+	end
+
+.Anthony:
+	farwritetext UnknownText_0x176c47
+	end
+
+.Todd:
+	farwritetext UnknownText_0x176fdb
+	end
+
+.Irwin:
+	farwritetext UnknownText_0x64000
+	end
+
+.Arnie:
+	farwritetext UnknownText_0x64b48
+	end
+
+.Alan:
+	farwritetext UnknownText_0x64e1f
+	end
+
+.Chad:
+	farwritetext UnknownText_0x65471
+	end
+
+.Derek:
+	farwritetext UnknownText_0x65c4e
+	end
+
+.Tully:
+	farwritetext UnknownText_0x65f6e
+	end
+
+.Brent:
+	farwritetext UnknownText_0x662a9
+	end
+
+.Vance:
+	farwritetext UnknownText_0x66a93
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x66c58
+	end
+
+.Kenji:
+	farwritetext UnknownText_0x66dab
+	end
+
+.Parry:
+	farwritetext UnknownText_0x670eb
+	end
+
+PhoneScript_HangupText_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_COOLTRAINERF_BETH, .Beth
+	if_equal PHONE_COOLTRAINERF_REENA, .Reena
+	if_equal PHONE_PICNICKER_LIZ, .Liz
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+	if_equal PHONE_PICNICKER_ERIN, .Erin
+
+.Beverly:
+	farwritetext UnknownText_0x1747ac
+	end
+
+.Beth:
+	farwritetext UnknownText_0x174eb7
+	end
+
+.Reena:
+	farwritetext UnknownText_0x175488
+	end
+
+.Liz:
+	farwritetext UnknownText_0x17620a
+	end
+
+.Gina:
+	farwritetext UnknownText_0x177361
+	end
+
+.Dana:
+	farwritetext UnknownText_0x650e2
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x667f7
+	end
+
+.Erin:
+	farwritetext UnknownText_0x67281
+	end
+
+Phone_CheckIfUnseenRare_Male:
+	scall PhoneScriptRareWildMon
+	iffalse .HangUp
+	farjump Phone_GenericCall_Male
+
+.HangUp:
+	farjump PhoneScript_HangupText_Male
+
+Phone_CheckIfUnseenRare_Female:
+	scall PhoneScriptRareWildMon
+	iffalse .HangUp
+	farjump Phone_GenericCall_Female
+
+.HangUp:
+	farjump PhoneScript_HangupText_Female
+
+PhoneScriptRareWildMon:
+	special RandomUnseenWildMon
+	end
+
+PhoneScript_BugCatchingContest:
+	checkcode VAR_CALLERID
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+
+.Wade:
+	farwritetext WadeBugCatchingContestText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Derek:
+	farwritetext DerekBugCatchingContestText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinRocketRumor:
+	farwritetext UnknownText_0x64032
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa05c6:
+	farwritetext UnknownText_0x177378
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa05ce:
+	farwritetext UnknownText_0x64b5f
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa05d6:
+	farwritetext UnknownText_0x175dd9
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa05de:
+	farwritetext UnknownText_0x176c61
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+PhoneScript_FoundItem_Male:
+	checkcode VAR_CALLERID
+	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
+	if_equal PHONE_BUG_CATCHER_WADE, .Wade
+	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
+	if_equal PHONE_POKEFANM_DEREK, .Derek
+	if_equal PHONE_FISHER_TULLY, .Tully
+	if_equal PHONE_FISHER_WILTON, .Wilton
+
+.Jose:
+	farwritetext JoseFoundSomethingText
+	end
+
+.Wade:
+	farwritetext WadeFoundBerryText
+	end
+
+.Alan:
+	farwritetext UnknownText_0x64e2f
+	end
+
+.Derek:
+	farwritetext UnknownText_0x65cf9
+	end
+
+.Tully:
+	farwritetext UnknownText_0x65f88
+	end
+
+.Wilton:
+	farwritetext UnknownText_0x66c6b
+	end
+
+PhoneScript_FoundItem_Female:
+	checkcode VAR_CALLERID
+	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
+	if_equal PHONE_PICNICKER_GINA, .Gina
+	if_equal PHONE_LASS_DANA, .Dana
+	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
+
+.Beverly:
+	farwritetext BeverlyFoundNuggetText
+	end
+
+.Gina:
+	farwritetext UnknownText_0x1773e7
+	end
+
+.Dana:
+	farwritetext UnknownText_0x650ec
+	end
+
+.Tiffany:
+	farwritetext UnknownText_0x66801
+	end
+
+UnknownScript_0xa0644:
+	farwritetext UnknownText_0x176feb
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+KenjiCallingPhoneScript:
+	farwritetext UnknownText_0x66dc5
+	buttonsound
+	jump PhoneScript_HangupText_Male
--- /dev/null
+++ b/engine/phone/phone_gossip.asm
@@ -1,0 +1,698 @@
+JackTriviaScript:
+	random 11
+	if_equal  0, .Thunder
+	if_equal  1, .Rollout
+	if_equal  2, .Solarbeam
+	if_equal  3, .Stomp
+	if_equal  4, .Gust
+	if_equal  5, .Twister
+	if_equal  6, .Earthquake
+	if_equal  7, .Magnitude
+	if_equal  8, .Sandstorm
+	if_equal  9, .SunnyDay
+	if_equal 10, .RainDance
+
+.Thunder:
+	farwritetext JackThunderTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Rollout:
+	farwritetext JackRolloutTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Solarbeam:
+	farwritetext JackSolarbeamTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Stomp:
+	farwritetext JackStompTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Gust:
+	farwritetext JackGustTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Twister:
+	farwritetext JackTwisterTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Earthquake:
+	farwritetext JackEarthquakeTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Magnitude:
+	farwritetext JackMagnitudeTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Sandstorm:
+	farwritetext JackSandstormTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.SunnyDay:
+	farwritetext JackSunnyDayTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.RainDance:
+	farwritetext JackRainDanceTriviaText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa06da:
+	random 10
+	if_equal 0, .RuinsOfAlph
+	if_equal 1, .Falkner
+	if_equal 2, .Earl
+	if_equal 3, .SurfPikachu
+	if_equal 4, .MooMooMilk
+	if_equal 5, .Salon
+	if_equal 6, .Whitney
+	if_equal 7, .BugCatchingContest
+	if_equal 8, .BeautifulMon
+	if_equal 9, .Forgot
+
+.RuinsOfAlph:
+	farwritetext UnknownText_0x176223
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.Falkner:
+	farwritetext UnknownText_0x1762c3
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.Earl:
+	farwritetext UnknownText_0x17638a
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.SurfPikachu:
+	farwritetext UnknownText_0x176424
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.MooMooMilk:
+	farwritetext UnknownText_0x1764eb
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.Salon:
+	farwritetext UnknownText_0x176599
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.Whitney:
+	farwritetext UnknownText_0x1766ac
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.BugCatchingContest:
+	farwritetext UnknownText_0x17674f
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.BeautifulMon:
+	farwritetext UnknownText_0x176816
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+.Forgot:
+	farwritetext UnknownText_0x17686d
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+ChadOakGossipScript:
+	random 10
+	if_equal 0, .Blue
+	if_equal 1, .Daisy
+	if_equal 2, .ProfElm
+	if_equal 3, .Dream
+	if_equal 4, .Kurt
+	if_equal 5, .League
+	if_equal 6, .RadioShow
+	if_equal 7, .Battling
+	if_equal 8, .DaisyTea
+	if_equal 9, .Traveled
+
+.Blue:
+	farwritetext ChadBlueGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Daisy:
+	farwritetext ChadDaisyGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.ProfElm:
+	farwritetext ChadProfElmGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Dream:
+	farwritetext ChadDreamGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Kurt:
+	farwritetext ChadKurtGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.League:
+	farwritetext ChadLeagueGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.RadioShow:
+	farwritetext ChadRadioShowGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Battling:
+	farwritetext ChadBattlingGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.DaisyTea:
+	farwritetext ChadDaisyTeaGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Traveled:
+	farwritetext ChadTravelGossipText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+BrentBillTriviaScript:
+	random 10
+	if_equal 0, .Father
+	if_equal 1, .Grandpa
+	if_equal 2, .Goldenrod
+	if_equal 3, .Route25
+	if_equal 4, .Abra
+	if_equal 5, .Sister
+	if_equal 6, .Milk
+	if_equal 7, .Battling
+	if_equal 8, .FlowerShop
+	if_equal 9, .KimonoGirl
+
+.Father:
+	farwritetext UnknownText_0x662bc
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Grandpa:
+	farwritetext UnknownText_0x662fc
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Goldenrod:
+	farwritetext UnknownText_0x66335
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Route25:
+	farwritetext UnknownText_0x66366
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Abra:
+	farwritetext UnknownText_0x663a1
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Sister:
+	farwritetext UnknownText_0x663e6
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Milk:
+	farwritetext UnknownText_0x66421
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Battling:
+	farwritetext UnknownText_0x6645f
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.FlowerShop:
+	farwritetext UnknownText_0x6649b
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.KimonoGirl:
+	farwritetext UnknownText_0x664dd
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinRumorScript:
+	checkevent EVENT_OPENED_MT_SILVER
+	iftrue IrwinMtSilver
+	checkevent EVENT_FOUGHT_SNORLAX
+	iftrue IrwinSnorlax
+	checkevent EVENT_GOT_PASS_FROM_COPYCAT
+	iftrue IrwinTrainPass
+	checkflag ENGINE_MARSHBADGE
+	iftrue IrwinMarshBadge
+	checkflag ENGINE_FLYPOINT_VERMILION
+	iftrue IrwinVermilionCity
+	checkevent EVENT_BEAT_ELITE_FOUR
+	iftrue IrwinEliteFour
+	checkflag ENGINE_RISINGBADGE
+	iftrue IrwinRisingBadge
+	checkevent EVENT_CLEARED_RADIO_TOWER
+	iftrue IrwinRadioTower
+	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
+	iftrue IrwinRocketHideout
+	checkevent EVENT_JASMINE_RETURNED_TO_GYM
+	iftrue IrwinJasmineReturned
+	checkflag ENGINE_FOGBADGE
+	iftrue IrwinFogBadge
+	checkflag ENGINE_PLAINBADGE
+	iftrue IrwinPlainBadge
+	farwritetext IrwinCalledRightAwayText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinPlainBadge:
+	farwritetext UnknownText_0x64099
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinJasmineReturned:
+	farwritetext UnknownText_0x640e6
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinRocketHideout:
+	farwritetext UnknownText_0x6416d
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinRadioTower:
+	farwritetext UnknownText_0x641e8
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinRisingBadge:
+	farwritetext UnknownText_0x64247
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinEliteFour:
+	farwritetext UnknownText_0x642bb
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinVermilionCity:
+	farwritetext UnknownText_0x643d4
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinTrainPass:
+	farwritetext UnknownText_0x64448
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinSnorlax:
+	farwritetext UnknownText_0x6455b
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinMtSilver:
+	farwritetext UnknownText_0x645ff
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinFogBadge:
+	farwritetext UnknownText_0x646df
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+IrwinMarshBadge:
+	farwritetext UnknownText_0x647d8
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+JackPhoneTips:
+	farwritetext UnknownText_0x1745c2
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0900:
+	farwritetext UnknownText_0x17485b
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0908:
+	farwritetext UnknownText_0x17496b
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0910:
+	farwritetext UnknownText_0x174c29
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0918:
+	farwritetext UnknownText_0x174ec5
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0920:
+	farwritetext UnknownText_0x17519b
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0928:
+	farwritetext UnknownText_0x17549b
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0930:
+	farwritetext UnknownText_0x17571d
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0938:
+	farwritetext UnknownText_0x175abe
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0940:
+	farwritetext UnknownText_0x175eaf
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0948:
+	farwritetext UnknownText_0x1768b0
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0950:
+	farwritetext UnknownText_0x176d32
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0958:
+	farwritetext UnknownText_0x1770fb
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0960:
+	farwritetext UnknownText_0x177465
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0968:
+	farwritetext UnknownText_0x64bc6
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0970:
+	farwritetext UnknownText_0x64e90
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0978:
+	farwritetext UnknownText_0x65161
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0980:
+	farwritetext UnknownText_0x65a23
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0988:
+	farwritetext UnknownText_0x65d5c
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0990:
+	farwritetext UnknownText_0x65ff2
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0998:
+	farwritetext UnknownText_0x6651e
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa09a0:
+	farwritetext UnknownText_0x66882
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+VanceLookingForward:
+	farwritetext VanceLookingForwardText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+WiltonHaventFoundAnything:
+	farwritetext WiltonHaventFoundAnythingText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+ParryBattleWithMe:
+	farwritetext ParryBattleWithMeText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+ErinWorkingHardScript:
+	farwritetext ErinWorkingHardText
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa09c8:
+	random 3
+	if_equal 0, UnknownScript_0xa09d6
+	if_equal 1, UnknownScript_0xa09de
+	if_equal 2, UnknownScript_0xa09e6
+
+UnknownScript_0xa09d6:
+	farwritetext UnknownText_0x64846
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa09de:
+	farwritetext UnknownText_0x64881
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa09e6:
+	farwritetext UnknownText_0x648dc
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+KenjiAnswerPhoneScript:
+	checkcode VAR_KENJI_BREAK
+	if_equal 2, .Training
+	if_equal 1, .OnBreak
+	farwritetext UnknownText_0x66e17
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Training:
+	farwritetext UnknownText_0x66e67
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.OnBreak:
+	checkmorn
+	iftrue .Morning
+	checknite
+	iftrue .Night
+	setevent EVENT_KENJI_ON_BREAK
+	farwritetext KenjiBreakText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Morning:
+	farwritetext UnknownText_0x66ed3
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+.Night:
+	farwritetext UnknownText_0x66f52
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+JackWantsBattleScript:
+	farwritetext UnknownText_0x174638
+	end
+
+HueyWantsBattleScript:
+	farwritetext UnknownText_0x1749c7
+	end
+
+UnknownScript_0xa0a37:
+	farwritetext UnknownText_0x174c49
+	end
+
+BethBattleReminderScript:
+	farwritetext BethForgetDealText
+	end
+
+UnknownScript_0xa0a41:
+	farwritetext UnknownText_0x17520a
+	end
+
+UnknownScript_0xa0a46:
+	farwritetext UnknownText_0x1754e5
+	end
+
+UnknownScript_0xa0a4b:
+	farwritetext UnknownText_0x175786
+	end
+
+UnknownScript_0xa0a50:
+	farwritetext UnknownText_0x175b1e
+	end
+
+UnknownScript_0xa0a55:
+	farwritetext UnknownText_0x175f11
+	end
+
+UnknownScript_0xa0a5a:
+	farwritetext UnknownText_0x1769da
+	end
+
+UnknownScript_0xa0a5f:
+	farwritetext UnknownText_0x176d85
+	end
+
+UnknownScript_0xa0a64:
+	farwritetext UnknownText_0x177138
+	end
+
+UnknownScript_0xa0a69:
+	farwritetext UnknownText_0x1774c1
+	end
+
+UnknownScript_0xa0a6e:
+	farwritetext UnknownText_0x64c13
+	end
+
+UnknownScript_0xa0a73:
+	farwritetext UnknownText_0x64ed4
+	end
+
+UnknownScript_0xa0a78:
+	farwritetext UnknownText_0x651bf
+	end
+
+UnknownScript_0xa0a7d:
+	farwritetext UnknownText_0x65a63
+	end
+
+UnknownScript_0xa0a82:
+	farwritetext UnknownText_0x66043
+	end
+
+UnknownScript_0xa0a87:
+	farwritetext UnknownText_0x66579
+	end
+
+UnknownScript_0xa0a8c:
+	farwritetext UnknownText_0x668a3
+	end
+
+VanceHurryHurry:
+	farwritetext VanceHurryHurryText
+	end
+
+WiltonNotBiting:
+	farwritetext WiltonNotBitingText
+	end
+
+ParryHaventYouGottenTo:
+	farwritetext ParryHaventYouGottenToText
+	end
+
+ErinComeBattleScript:
+	farwritetext ErinComeBattleText
+	end
+
+UnknownScript_0xa0aa5:
+	farwritetext UnknownText_0x174895
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0aad:
+	farwritetext UnknownText_0x17529c
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0ab5:
+	farwritetext UnknownText_0x175b6d
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0abd:
+	farwritetext UnknownText_0x17750e
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0ac5:
+	farwritetext UnknownText_0x64f1a
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0acd:
+	farwritetext UnknownText_0x6520f
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+UnknownScript_0xa0ad5:
+	farwritetext UnknownText_0x65da6
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0add:
+	farwritetext UnknownText_0x66087
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0ae5:
+	farwritetext UnknownText_0x6691d
+	buttonsound
+	jump PhoneScript_HangupText_Female
+
+WiltonWantThis:
+	farwritetext WiltonWantThisText
+	buttonsound
+	jump PhoneScript_HangupText_Male
+
+UnknownScript_0xa0af5:
+	farwritetext UnknownText_0x175f70
+	end
+
+UnknownScript_0xa0afa:
+	farwritetext UnknownText_0x176dd1
+	end
+
+UnknownScript_0xa0aff:
+	farwritetext UnknownText_0x64c5a
+	end
+
+UnknownScript_0xa0b04:
+	farwritetext UnknownText_0x17717c
+	end
+
+BikeShopPhoneScript:
+	farwritetext UnknownText_0x174000
+	clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
+	specialphonecall SPECIALCALL_NONE
+	end
--- /dev/null
+++ b/engine/phone/phone_scripts.asm
@@ -1,0 +1,1886 @@
+UnusedPhoneScript: ; 0xbcea5
+	farwritetext UnusedPhoneText
+	end
+
+; Mom
+
+MomPhoneScript: ; 0xbceaa
+	checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+	iftrue .bcec5
+	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
+	jump MomPhoneNoPokemonScript
+
+.bcec5 ; 0xbcec5
+	checkevent EVENT_IN_YOUR_ROOM
+	iftrue MomPhoneHangUpScript
+	farwritetext MomPhoneGreetingText
+	buttonsound
+	mapnametotext $0
+	checkcode VAR_ROOFPALETTE
+	if_equal $1, MomPhonePalette1
+	if_equal $2, MomPhonePalette2
+	jump MomPhoneOther
+
+MomPhoneLandmark: ; 0xbcedf
+	farwritetext MomPhoneLandmarkText
+	buttonsound
+	jump MomSavingMoney
+
+MomPhonePalette1: ; 0xbcee7
+	checkcode VAR_MAPGROUP
+	if_equal GROUP_NEW_BARK_TOWN, .newbark
+	if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
+	if_equal GROUP_VIOLET_CITY, .violet
+	if_equal GROUP_AZALEA_TOWN, .azalea
+	if_equal GROUP_GOLDENROD_CITY, .goldenrod
+	farwritetext MomPhoneGenericAreaText
+	buttonsound
+	jump MomSavingMoney
+
+.newbark ; 0xbcf05
+	farwritetext MomPhoneNewBarkText
+	buttonsound
+	jump MomSavingMoney
+
+.cherrygrove ; 0xbcf0d
+	farwritetext MomPhoneCherrygroveText
+	buttonsound
+	jump MomSavingMoney
+
+.violet ; 0xbcf15
+	landmarktotext SPROUT_TOWER, 1
+	jump MomPhoneLandmark
+.azalea ; 0xbcf1b
+	landmarktotext SLOWPOKE_WELL, 1
+	jump MomPhoneLandmark
+.goldenrod ; 0xbcf21
+	landmarktotext RADIO_TOWER, 1
+	jump MomPhoneLandmark
+
+MomPhonePalette2: ; 0xbcf27
+	farwritetext MomOtherAreaText
+	buttonsound
+	jump MomSavingMoney
+
+MomPhoneOther: ; 0xbcf2f
+	farwritetext MomDeterminedText
+	buttonsound
+	jump MomSavingMoney
+
+MomSavingMoney: ; 0xbcf37
+	checkflag ENGINE_MOM_SAVING_MONEY
+	iffalse MomIsNotSaving
+	checkmoney $1, 0
+	if_equal $0, MomSavingHasMoney
+	jump MomSavingButBroke
+
+MomIsNotSaving: ; 0xbcf49
+	checkmoney $1, 0
+	if_equal $0, MomHasMoney
+	jump MomHasNoMoney
+
+MomSavingHasMoney: ; 0xbcf55
+	readmoney $1, $0
+	farwritetext MomCheckBalanceText
+	yesorno
+	iftrue MomPhoneSaveMoneyScript
+	jump MomPhoneWontSaveMoneyScript
+
+MomSavingButBroke: ; 0xbcf63
+	farwritetext MomImportantToSaveText
+	yesorno
+	iftrue MomPhoneSaveMoneyScript
+	jump MomPhoneWontSaveMoneyScript
+
+MomHasNoMoney: ; 0xbcf6e
+	farwritetext MomYoureNotSavingText
+	yesorno
+	iftrue MomPhoneSaveMoneyScript
+	jump MomPhoneWontSaveMoneyScript
+
+MomHasMoney: ; 0xbcf79
+	readmoney $1, $0
+	farwritetext MomYouveSavedText
+	yesorno
+	iftrue MomPhoneSaveMoneyScript
+	jump MomPhoneWontSaveMoneyScript
+
+MomPhoneSaveMoneyScript: ; 0xbcf87
+	setflag ENGINE_MOM_SAVING_MONEY
+	farwritetext MomOKIllSaveText
+	buttonsound
+	jump MomPhoneHangUpScript
+
+MomPhoneWontSaveMoneyScript: ; 0xbcf92
+	clearflag ENGINE_MOM_SAVING_MONEY
+	farwritetext MomPhoneWontSaveMoneyText
+	buttonsound
+	jump MomPhoneHangUpScript
+
+MomPhoneHangUpScript: ; 0xbcf9d
+	farwritetext MomPhoneHangUpText
+	end
+
+MomPhoneNoPokemonScript: ; 0xbcfa2
+	farwritetext MomPhoneNoPokemonText
+	end
+
+MomPhoneNoPokedexScript: ; 0xbcfa7
+	farwritetext MomPhoneNoPokedexText
+	end
+
+MomPhoneNoGymQuestScript: ; 0xbcfac
+	farwritetext MomPhoneNoGymQuestText
+	end
+
+MomPhoneLectureScript: ; 0xbcfb1
+	setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
+	setflag ENGINE_DST
+	specialphonecall SPECIALCALL_NONE
+	farwritetext MomPhoneLectureText
+	yesorno
+	iftrue MomPhoneSaveMoneyScript
+	jump MomPhoneWontSaveMoneyScript
+
+; Bill
+
+BillPhoneScript1: ; 0xbcfc5
+	checkday
+	iftrue .daygreet
+	checknite
+	iftrue .nitegreet
+	farwritetext BillPhoneMornGreetingText
+	buttonsound
+	jump .main
+
+.daygreet ; 0xbcfd7
+	farwritetext BillPhoneDayGreetingText
+	buttonsound
+	jump .main
+
+.nitegreet ; 0xbcfdf
+	farwritetext BillPhoneNiteGreetingText
+	buttonsound
+	jump .main
+
+.main ; 0xbcfe7
+	farwritetext BillPhoneGeneriText
+	buttonsound
+	checkcode VAR_BOXSPACE
+	RAM2MEM $0
+	if_equal $0, .full
+	if_less_than $6, .nearlyfull
+	farwritetext BillPhoneNotFullText
+	end
+
+.nearlyfull ; 0xbcffd
+	farwritetext BillPhoneNearlyFullText
+	end
+
+.full ; 0xbd002
+	farwritetext BillPhoneFullText
+	end
+
+BillPhoneScript2: ; 0xbd007
+	farwritetext BillPhoneNewlyFullText
+	waitbutton
+	end
+
+; Elm
+
+ElmPhoneScript1: ; 0xbd00d
+	checkcode VAR_SPECIALPHONECALL
+	if_equal $1, .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
+	farwritetext ElmPhoneStartText
+	end
+
+.sawmrpokemon ; 0xbd048
+	farwritetext ElmPhoneSawMrPokemonText
+	end
+
+.stolen ; 0xbd04d
+	farwritetext ElmPhonePokemonStolenText
+	end
+
+.checkingegg ; 0xbd052
+	farwritetext ElmPhoneCheckingEggText
+	end
+
+.assistant ; 0xbd057
+	farwritetext ElmPhoneAssistantText
+	end
+
+.eggunhatched ; 0xbd05c
+	farwritetext ElmPhoneEggUnhatchedText
+	end
+
+.egghatched ; 0xbd061
+	farwritetext ElmPhoneEggHatchedText
+	setevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
+	end
+
+.discovery ; 0xbd069
+	random $2
+	if_equal $0, .nextdiscovery
+	farwritetext ElmPhoneDiscovery1Text
+	end
+
+.nextdiscovery ; 0xbd074
+	farwritetext ElmPhoneDiscovery2Text
+	end
+
+.pokerus ; 0xbd079
+	farwritetext ElmPhonePokerusText
+	specialphonecall SPECIALCALL_NONE
+	end
+
+ElmPhoneScript2: ; 0xbd081
+	checkcode VAR_SPECIALPHONECALL
+	if_equal $2, .disaster
+	if_equal $3, .assistant
+	if_equal $4, .rocket
+	if_equal $5, .gift
+	if_equal $8, .gift
+	farwritetext ElmPhonePokerusText
+	specialphonecall SPECIALCALL_NONE
+	end
+
+.disaster ; 0xbd09f
+	farwritetext ElmPhoneDisasterText
+	specialphonecall SPECIALCALL_NONE
+	setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
+	end
+
+.assistant ; 0xbd0aa
+	farwritetext ElmPhoneEggAssistantText
+	specialphonecall SPECIALCALL_NONE
+	clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
+	setevent EVENT_ELMS_AIDE_IN_LAB
+	end
+
+.rocket ; 0xbd0b8
+	farwritetext ElmPhoneRocketText
+	specialphonecall SPECIALCALL_NONE
+	end
+
+.gift ; 0xbd0c0
+	farwritetext ElmPhoneGiftText
+	specialphonecall SPECIALCALL_NONE
+	end
+
+.unused ; 0xbd0c8
+	farwritetext ElmPhoneUnusedText
+	specialphonecall SPECIALCALL_NONE
+	end
+; bd0d0
+
+; Jack
+
+JackPhoneScript1:
+	trainertotext SCHOOLBOY, JACK1, $0
+	checkflag ENGINE_JACK
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_JACK_MONDAY_MORNING
+	iftrue .NotMonday
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, .NotMonday
+	checkmorn
+	iftrue JackMondayMorning
+
+.NotMonday:
+	farjump JackPhoneTips
+
+.WantsBattle:
+	landmarktotext NATIONAL_PARK, $2
+	farjump JackWantsBattleScript
+
+JackPhoneScript2:
+	trainertotext SCHOOLBOY, JACK1, $0
+	farscall PhoneScript_GreetPhone_Male
+	farscall PhoneScript_Random2
+	if_equal $0, JackBattleTrivia
+	checkflag ENGINE_JACK
+	iftrue .WaitingForBattle
+	checkflag ENGINE_JACK_MONDAY_MORNING
+	iftrue .WaitingForBattle
+	farscall PhoneScript_Random2
+	if_equal $0, JackWantsToBattle
+
+.WaitingForBattle:
+	farscall PhoneScript_Random3
+	if_equal $0, JackFindsRare
+	farjump Phone_GenericCall_Male
+
+JackMondayMorning:
+	setflag ENGINE_JACK_MONDAY_MORNING
+
+JackWantsToBattle:
+	landmarktotext NATIONAL_PARK, $2
+	setflag ENGINE_JACK
+	farjump PhoneScript_WantsToBattle_Male
+
+JackFindsRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+JackBattleTrivia:
+	farjump JackTriviaScript
+
+; Beverly
+
+BeverlyPhoneScript1:
+	trainertotext POKEFANF, BEVERLY1, $0
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_BEVERLY_HAS_NUGGET
+	iftrue .HasNugget
+	farjump UnknownScript_0xa0900
+
+.HasNugget:
+	landmarktotext NATIONAL_PARK, $2
+	farjump UnknownScript_0xa0aa5
+
+BeverlyPhoneScript2:
+	trainertotext POKEFANF, BEVERLY1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_BEVERLY_HAS_NUGGET
+	iftrue .HasNugget
+	farscall PhoneScript_Random4
+	if_equal $0, .FoundNugget
+
+.HasNugget:
+	farjump Phone_GenericCall_Female
+
+.FoundNugget:
+	setflag ENGINE_BEVERLY_HAS_NUGGET
+	landmarktotext NATIONAL_PARK, $2
+	farjump PhoneScript_FoundItem_Female
+
+; Huey
+
+HueyPhoneScript1:
+	trainertotext SAILOR, HUEY1, $0
+	checkflag ENGINE_HUEY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
+	iftrue .NotWednesday
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, .NotWednesday
+	checknite
+	iftrue HueyWednesdayNight
+
+.NotWednesday:
+	special RandomPhoneMon
+	farjump UnknownScript_0xa0908
+
+.WantsBattle:
+	landmarktotext LIGHTHOUSE, $2
+	farjump HueyWantsBattleScript
+
+HueyPhoneScript2:
+	trainertotext SAILOR, HUEY1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_HUEY
+	iftrue .Flavor
+	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
+	iftrue .Flavor
+	farscall PhoneScript_Random3
+	if_equal $0, HueyWantsBattle
+	if_equal $1, HueyWantsBattle
+
+.Flavor:
+	farjump PhoneScript_MonFlavorText
+
+HueyWednesdayNight:
+	setflag ENGINE_HUEY_WEDNESDAY_NIGHT
+
+HueyWantsBattle:
+	landmarktotext LIGHTHOUSE, $2
+	setflag ENGINE_HUEY
+	farjump PhoneScript_WantsToBattle_Male
+
+; Gaven
+
+GavenPhoneScript1:
+	trainertotext COOLTRAINERM, GAVEN3, $0
+	checkflag ENGINE_GAVEN
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_GAVEN_THURSDAY_MORNING
+	iftrue .NotThursday
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, .NotThursday
+	checkmorn
+	iftrue GavenThursdayMorning
+
+.NotThursday:
+	farjump UnknownScript_0xa0910
+
+.WantsBattle:
+	landmarktotext ROUTE_26, $2
+	farjump UnknownScript_0xa0a37
+
+GavenPhoneScript2:
+	trainertotext COOLTRAINERM, GAVEN3, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_GAVEN
+	iftrue .WaitingForBattle
+	checkflag ENGINE_GAVEN_THURSDAY_MORNING
+	iftrue .WaitingForBattle
+	farscall PhoneScript_Random2
+	if_equal $0, GavenWantsRematch
+
+.WaitingForBattle:
+	farscall PhoneScript_Random3
+	if_equal $0, GavenFoundRare
+	farjump Phone_GenericCall_Male
+
+GavenThursdayMorning:
+	setflag ENGINE_GAVEN_THURSDAY_MORNING
+
+GavenWantsRematch:
+	landmarktotext ROUTE_26, $2
+	setflag ENGINE_GAVEN
+	farjump PhoneScript_WantsToBattle_Male
+
+GavenFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+; Beth
+
+BethPhoneScript1:
+	trainertotext COOLTRAINERF, BETH1, $0
+	checkflag ENGINE_BETH
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
+	iftrue .NotFriday
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, .NotFriday
+	checkday
+	iftrue BethFridayAfternoon
+
+.NotFriday:
+	farjump UnknownScript_0xa0918
+
+.WantsBattle:
+	landmarktotext ROUTE_26, $2
+	farjump BethBattleReminderScript
+
+BethPhoneScript2:
+	trainertotext COOLTRAINERF, BETH1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_BETH
+	iftrue .Generic
+	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
+	iftrue .Generic
+	farscall PhoneScript_Random2
+	if_equal $0, BethWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Female
+
+BethFridayAfternoon:
+	setflag ENGINE_BETH_FRIDAY_AFTERNOON
+
+BethWantsBattle:
+	landmarktotext ROUTE_26, $2
+	setflag ENGINE_BETH
+	farjump PhoneScript_WantsToBattle_Female
+
+; Jose
+
+JosePhoneScript1:
+	trainertotext BIRD_KEEPER, JOSE2, $0
+	checkflag ENGINE_JOSE
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_JOSE_SATURDAY_NIGHT
+	iftrue .NotSaturday
+	checkflag ENGINE_JOSE_HAS_STAR_PIECE
+	iftrue .HasItem
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, .NotSaturday
+	checknite
+	iftrue JoseSaturdayNight
+
+.NotSaturday:
+	farjump UnknownScript_0xa0920
+
+.WantsBattle:
+	landmarktotext ROUTE_27, $2
+	farjump UnknownScript_0xa0a41
+
+.HasItem:
+	landmarktotext ROUTE_27, $2
+	farjump UnknownScript_0xa0a41
+
+JosePhoneScript2:
+	trainertotext BIRD_KEEPER, JOSE2, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_JOSE
+	iftrue .Generic
+	checkflag ENGINE_JOSE_SATURDAY_NIGHT
+	iftrue .Generic
+	checkflag ENGINE_JOSE_HAS_STAR_PIECE
+	iftrue .Generic
+	farscall PhoneScript_Random3
+	if_equal $0, JoseWantsBattle
+	farscall PhoneScript_Random3
+	if_equal $0, JoseHasStarPiece
+
+.Generic:
+	farscall PhoneScript_Random3
+	if_equal $0, JoseFoundRare
+	farjump Phone_GenericCall_Male
+
+JoseSaturdayNight:
+	setflag ENGINE_JOSE_SATURDAY_NIGHT
+
+JoseWantsBattle:
+	landmarktotext ROUTE_27, $2
+	setflag ENGINE_JOSE
+	farjump PhoneScript_WantsToBattle_Male
+
+JoseFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+JoseHasStarPiece:
+	setflag ENGINE_JOSE_HAS_STAR_PIECE
+	landmarktotext ROUTE_27, $2
+	farjump PhoneScript_FoundItem_Male
+
+; Reena
+
+ReenaPhoneScript1:
+	trainertotext COOLTRAINERF, REENA1, $0
+	checkflag ENGINE_REENA
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_REENA_SUNDAY_MORNING
+	iftrue .NotSunday
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, .NotSunday
+	checkmorn
+	iftrue ReenaSundayMorning
+
+.NotSunday:
+	farjump UnknownScript_0xa0928
+
+.WantsBattle:
+	landmarktotext ROUTE_27, $2
+	farjump UnknownScript_0xa0a46
+
+ReenaPhoneScript2:
+	trainertotext COOLTRAINERF, REENA1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_REENA
+	iftrue .Generic
+	checkflag ENGINE_REENA_SUNDAY_MORNING
+	iftrue .Generic
+	farscall PhoneScript_Random2
+	if_equal $0, ReenaWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Female
+
+ReenaSundayMorning:
+	setflag ENGINE_REENA_SUNDAY_MORNING
+
+ReenaWantsBattle:
+	landmarktotext ROUTE_27, $2
+	setflag ENGINE_REENA
+	farjump PhoneScript_WantsToBattle_Female
+
+; Joey
+
+JoeyPhoneScript1:
+	trainertotext YOUNGSTER, JOEY1, $0
+	checkflag ENGINE_JOEY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
+	iftrue .NotMonday
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, .NotMonday
+	checkday
+	iftrue JoeyMondayAfternoon
+
+.NotMonday:
+	special RandomPhoneMon
+	farjump UnknownScript_0xa0930
+
+.WantsBattle:
+	landmarktotext ROUTE_30, $2
+	farjump UnknownScript_0xa0a4b
+
+JoeyPhoneScript2:
+	trainertotext YOUNGSTER, JOEY1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_JOEY
+	iftrue .Generic
+	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
+	iftrue .Generic
+	farscall PhoneScript_Random3
+	if_equal $0, JoeyWantsBattle
+	if_equal $1, JoeyWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Male
+
+JoeyMondayAfternoon:
+	setflag ENGINE_JOEY_MONDAY_AFTERNOON
+
+JoeyWantsBattle:
+	landmarktotext ROUTE_30, $2
+	setflag ENGINE_JOEY
+	farjump PhoneScript_WantsToBattle_Male
+
+; Wade
+
+WadePhoneScript1:
+	trainertotext BUG_CATCHER, WADE1, $0
+	checkflag ENGINE_WADE
+	iftrue WadeWantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_WADE_TUESDAY_NIGHT
+	iftrue .NotTuesday
+	checkflag ENGINE_WADE_HAS_ITEM
+	iftrue WadeHasItem
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, .NotTuesday
+	checknite
+	iftrue WadeTuesdayNight
+
+.NotTuesday:
+	farscall PhoneScript_Random2
+	if_equal $0, .NoContest
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue .NoContest
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, WadeContestToday
+	if_equal THURSDAY, WadeContestToday
+	if_equal SATURDAY, WadeContestToday
+
+.NoContest:
+	farjump UnknownScript_0xa0938
+
+WadeContestToday:
+	farjump PhoneScript_BugCatchingContest
+
+WadeWantsBattle:
+	landmarktotext ROUTE_31, $2
+	farjump UnknownScript_0xa0a50
+
+WadeHasItem:
+	landmarktotext ROUTE_31, $2
+	farjump UnknownScript_0xa0ab5
+
+WadePhoneScript2:
+	trainertotext BUG_CATCHER, WADE1, $0
+	farscall PhoneScript_GreetPhone_Male
+	farscall PhoneScript_Random2
+	if_equal $0, .NoContest
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue .NoContest
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, Wade_ContestToday
+	if_equal THURSDAY, Wade_ContestToday
+	if_equal SATURDAY, Wade_ContestToday
+
+.NoContest:
+	checkflag ENGINE_WADE
+	iftrue .next
+	checkflag ENGINE_WADE_TUESDAY_NIGHT
+	iftrue .next
+	checkflag ENGINE_WADE_HAS_ITEM
+	iftrue .next
+	farscall PhoneScript_Random2
+	if_equal $0, WadeHasItem2
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse .next
+	farscall PhoneScript_Random2
+	if_equal $0, WadeWantsBattle2
+
+.next:
+	farscall PhoneScript_Random3
+	if_equal $0, WadeFoundRare
+	farjump Phone_GenericCall_Male
+
+Wade_ContestToday:
+	farjump PhoneScript_BugCatchingContest
+
+WadeTuesdayNight:
+	setflag ENGINE_WADE_TUESDAY_NIGHT
+
+WadeWantsBattle2:
+	landmarktotext ROUTE_31, $2
+	setflag ENGINE_WADE
+	farjump PhoneScript_WantsToBattle_Male
+
+WadeFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+WadeHasItem2:
+	setflag ENGINE_WADE_HAS_ITEM
+	landmarktotext ROUTE_31, $2
+	clearevent EVENT_WADE_HAS_BERRY
+	clearevent EVENT_WADE_HAS_PSNCUREBERRY
+	clearevent EVENT_WADE_HAS_PRZCUREBERRY
+	clearevent EVENT_WADE_HAS_BITTER_BERRY
+	random $4
+	if_equal $0, .Berry
+	if_equal $1, .PsnCureBerry
+	if_equal $2, .PrzCureBerry
+	if_equal $3, .Bitterberry
+
+.Berry:
+	setevent EVENT_WADE_HAS_BERRY
+	jump .FoundBerry
+
+.PsnCureBerry:
+	setevent EVENT_WADE_HAS_PSNCUREBERRY
+	jump .FoundBerry
+
+.PrzCureBerry:
+	setevent EVENT_WADE_HAS_PRZCUREBERRY
+	jump .FoundBerry
+
+.Bitterberry:
+	setevent EVENT_WADE_HAS_BITTER_BERRY
+
+.FoundBerry:
+	farjump PhoneScript_FoundItem_Male
+
+; Ralph
+
+RalphPhoneScript1:
+	trainertotext FISHER, RALPH1, $0
+	checkflag ENGINE_RALPH
+	iftrue Ralph_Rematch
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
+	iftrue Ralph_CheckSwarm
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, Ralph_CheckSwarm
+	checkmorn
+	iftrue Ralph_WednesdayMorning
+Ralph_CheckSwarm:
+	checkflag ENGINE_SPECIAL_WILDDATA
+	iftrue Ralph_ReportSwarm
+	farjump UnknownScript_0xa0940
+
+Ralph_Rematch:
+	landmarktotext ROUTE_32, $2
+	farjump UnknownScript_0xa0a55
+
+Ralph_ReportSwarm:
+	landmarktotext ROUTE_32, $2
+	farjump UnknownScript_0xa0af5
+
+RalphPhoneScript2:
+	trainertotext FISHER, RALPH1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse Ralph_CheckSwarm2
+	checkflag ENGINE_RALPH
+	iftrue Ralph_CheckSwarm2
+	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
+	iftrue Ralph_CheckSwarm2
+	farscall PhoneScript_Random2
+	if_equal $0, Ralph_FightMe
+Ralph_CheckSwarm2:
+	farscall PhoneScript_Random5
+	if_equal $0, Ralph_SetUpSwarm
+	farjump Phone_GenericCall_Male
+
+Ralph_WednesdayMorning:
+	setflag ENGINE_RALPH_WEDNESDAY_MORNING
+Ralph_FightMe:
+	landmarktotext ROUTE_32, $2
+	setflag ENGINE_RALPH
+	farjump PhoneScript_WantsToBattle_Male
+
+Ralph_SetUpSwarm:
+	checkflag ENGINE_SPECIAL_WILDDATA
+	iftrue .Generic
+	setflag ENGINE_SPECIAL_WILDDATA
+	pokenamemem QWILFISH, $1
+	landmarktotext ROUTE_32, $2
+	writebyte FISHSWARM_QWILFISH
+	special Special_ActivateFishingSwarm
+	farjump UnknownScript_0xa05d6
+
+.Generic:
+	farjump Phone_GenericCall_Male
+
+; Liz
+
+LizPhoneScript1:
+	trainertotext PICNICKER, LIZ1, $0
+	checkflag ENGINE_LIZ
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
+	iftrue .NotThursday
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, .NotThursday
+	checkday
+	iftrue LizThursdayAfternoon
+
+.NotThursday:
+	special RandomPhoneMon
+	farjump UnknownScript_0xa0948
+
+.WantsBattle:
+	landmarktotext ROUTE_32, $2
+	farjump UnknownScript_0xa0a5a
+
+LizPhoneScript2:
+	trainertotext PICNICKER, LIZ1, $0
+	farscall PhoneScript_Random4
+	if_equal $0, LizWrongNumber
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_LIZ
+	iftrue .next
+	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
+	iftrue .next
+
+.next:
+	farscall PhoneScript_Random2
+	if_equal $0, LizGossip
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse .Generic
+	farscall PhoneScript_Random2
+	if_equal $0, LizWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Female
+
+LizThursdayAfternoon:
+	setflag ENGINE_LIZ_THURSDAY_AFTERNOON
+
+LizWantsBattle:
+	landmarktotext ROUTE_32, $2
+	setflag ENGINE_LIZ
+	farjump PhoneScript_WantsToBattle_Female
+
+LizWrongNumber:
+	farjump LizWrongNumberScript
+
+LizGossip:
+	random $9
+	if_equal $0, .CoolTrainerM
+	if_equal $1, .Beauty
+	if_equal $2, .Grunt
+	if_equal $3, .Teacher
+	if_equal $4, .SwimmerF
+	if_equal $5, .KimonoGirl
+	if_equal $6, .Skier
+	if_equal $7, .Medium
+	if_equal $8, .PokefanM
+
+.CoolTrainerM:
+	trainerclassname COOLTRAINERM, $1
+	jump LizGossipScript
+
+.Beauty:
+	trainerclassname BEAUTY, $1
+	jump LizGossipScript
+
+.Grunt:
+	trainerclassname GRUNTM, $1
+	jump LizGossipScript
+
+.Teacher:
+	trainerclassname TEACHER, $1
+	jump LizGossipScript
+
+.SwimmerF:
+	trainerclassname SWIMMERF, $1
+	jump LizGossipScript
+
+.KimonoGirl:
+	trainerclassname KIMONO_GIRL, $1
+	jump LizGossipScript
+
+.Skier:
+	trainerclassname SKIER, $1
+	jump LizGossipScript
+
+.Medium:
+	trainerclassname MEDIUM, $1
+	jump LizGossipScript
+
+.PokefanM:
+	trainerclassname POKEFANM, $1
+	jump LizGossipScript
+
+LizGossipScript:
+	farjump UnknownScript_0xa06da
+
+; Anthony
+
+AnthonyPhoneScript1:
+	trainertotext HIKER, ANTHONY2, $0
+	checkflag ENGINE_ANTHONY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
+	iftrue .NotFriday
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, .NotFriday
+	checknite
+	iftrue AnthonyFridayNight
+
+.NotFriday:
+	checkflag ENGINE_DUNSPARCE_SWARM
+	iftrue .AlreadySwarming
+	farjump UnknownScript_0xa0950
+
+.WantsBattle:
+	landmarktotext ROUTE_33, $2
+	farjump UnknownScript_0xa0a5f
+
+.AlreadySwarming:
+	landmarktotext ROUTE_33, $2
+	farjump UnknownScript_0xa0afa
+
+AnthonyPhoneScript2:
+	trainertotext HIKER, ANTHONY2, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse .TriesSwarm
+	checkflag ENGINE_ANTHONY
+	iftrue .TriesSwarm
+	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
+	iftrue .TriesSwarm
+	farscall PhoneScript_Random2
+	if_equal $0, AnthonyWantsBattle
+
+.TriesSwarm:
+	farscall PhoneScript_Random5
+	if_equal $0, AnthonyTriesDunsparceSwarm
+	farjump Phone_GenericCall_Male
+
+AnthonyFridayNight:
+	setflag ENGINE_ANTHONY_FRIDAY_NIGHT
+
+AnthonyWantsBattle:
+	landmarktotext ROUTE_33, $2
+	setflag ENGINE_ANTHONY
+	farjump PhoneScript_WantsToBattle_Male
+
+AnthonyTriesDunsparceSwarm:
+	checkflag ENGINE_DUNSPARCE_SWARM
+	iftrue .Generic
+	setflag ENGINE_DUNSPARCE_SWARM
+	pokenamemem DUNSPARCE, $1
+	swarm SWARM_DUNSPARCE, DARK_CAVE_VIOLET_ENTRANCE
+	landmarktotext DARK_CAVE, $2
+	farjump UnknownScript_0xa05de
+
+.Generic:
+	farjump Phone_GenericCall_Male
+
+; Todd
+
+ToddPhoneScript1:
+	trainertotext CAMPER, TODD1, $0
+	checkflag ENGINE_TODD
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_TODD_SATURDAY_MORNING
+	iftrue .NotSaturday
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, .NotSaturday
+	checkmorn
+	iftrue ToddSaturdayMorning
+
+.NotSaturday:
+	checkflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+	iftrue .SaleOn
+	farjump UnknownScript_0xa0958
+
+.WantsBattle:
+	landmarktotext ROUTE_34, $2
+	farjump UnknownScript_0xa0a64
+
+.SaleOn:
+	farjump UnknownScript_0xa0b04
+
+ToddPhoneScript2:
+	trainertotext CAMPER, TODD1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_TODD
+	iftrue .TryForSale
+	checkflag ENGINE_TODD_SATURDAY_MORNING
+	iftrue .TryForSale
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse ToddNoGoldenrod
+	farscall PhoneScript_Random2
+	if_equal $0, ToddWantsBattle
+
+.TryForSale:
+	farscall PhoneScript_Random2
+	if_equal $0, ToddDeptStoreSale
+
+ToddNoGoldenrod:
+	farscall PhoneScript_Random3
+	if_equal $0, ToddFoundRare
+	farjump Phone_GenericCall_Male
+
+ToddSaturdayMorning:
+	setflag ENGINE_TODD_SATURDAY_MORNING
+
+ToddWantsBattle:
+	landmarktotext ROUTE_34, $2
+	setflag ENGINE_TODD
+	farjump PhoneScript_WantsToBattle_Male
+
+ToddFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+ToddDeptStoreSale:
+	setflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+	farjump UnknownScript_0xa0644
+
+; Gina
+
+GinaPhoneScript1:
+	trainertotext PICNICKER, GINA1, $0
+	checkflag ENGINE_GINA
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
+	iftrue .NotSunday
+	checkflag ENGINE_GINA_HAS_LEAF_STONE
+	iftrue .HasLeafStone
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, .NotSunday
+	checkday
+	iftrue GinaSundayDay
+
+.NotSunday:
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue .Rockets
+	farjump UnknownScript_0xa0960
+
+.Rockets:
+	farjump UnknownScript_0xa05c6
+
+.WantsBattle:
+	landmarktotext ROUTE_34, $2
+	farjump UnknownScript_0xa0a69
+
+.HasLeafStone:
+	landmarktotext ROUTE_34, $2
+	farjump UnknownScript_0xa0abd
+
+GinaPhoneScript2:
+	trainertotext PICNICKER, GINA1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue GinaRockets
+	checkflag ENGINE_GINA
+	iftrue .Generic
+	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
+	iftrue .Generic
+	checkflag ENGINE_GINA_HAS_LEAF_STONE
+	iftrue .Generic
+	checkevent EVENT_GINA_GAVE_LEAF_STONE
+	iftrue .GaveLeafStone
+	farscall PhoneScript_Random2
+	if_equal $0, GinaHasLeafStone
+
+.GaveLeafStone:
+	farscall PhoneScript_Random11
+	if_equal $0, GinaHasLeafStone
+	checkflag ENGINE_FLYPOINT_GOLDENROD
+	iffalse .Generic
+	farscall PhoneScript_Random3
+	if_equal $0, GinaWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Female
+
+GinaSundayDay:
+	setflag ENGINE_GINA_SUNDAY_AFTERNOON
+
+GinaWantsBattle:
+	landmarktotext ROUTE_34, $2
+	setflag ENGINE_GINA
+	farjump PhoneScript_WantsToBattle_Female
+
+GinaRockets:
+	farjump UnknownScript_0xa05c6
+
+GinaHasLeafStone:
+	setflag ENGINE_GINA_HAS_LEAF_STONE
+	landmarktotext ROUTE_34, $2
+	farjump PhoneScript_FoundItem_Female
+
+; Irwin
+
+IrwinPhoneScript1:
+	trainertotext JUGGLER, IRWIN1, $0
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue .Rockets
+	farjump UnknownScript_0xa09c8
+
+.Rockets:
+	farjump IrwinRocketRumor
+
+IrwinPhoneScript2:
+	trainertotext JUGGLER, IRWIN1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	iftrue .Rockets
+	farjump IrwinRumorScript
+
+.Rockets:
+	farjump IrwinRocketRumor
+
+; Arnie
+
+ArniePhoneScript1:
+	trainertotext BUG_CATCHER, ARNIE1, $0
+	checkflag ENGINE_ARNIE
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_ARNIE_TUESDAY_MORNING
+	iftrue .NotTuesday
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, .NotTuesday
+	checkmorn
+	iftrue ArnieTuesdayMorning
+
+.NotTuesday:
+	checkflag ENGINE_YANMA_SWARM
+	iftrue .AlreadySwarming
+	farjump UnknownScript_0xa0968
+
+.WantsBattle:
+	landmarktotext ROUTE_35, $2
+	farjump UnknownScript_0xa0a6e
+
+.AlreadySwarming:
+	landmarktotext ROUTE_35, $2
+	farjump UnknownScript_0xa0aff
+
+ArniePhoneScript2:
+	trainertotext BUG_CATCHER, ARNIE1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_ARNIE
+	iftrue .Swarm
+	checkflag ENGINE_ARNIE_TUESDAY_MORNING
+	iftrue .Swarm
+	farscall PhoneScript_Random2
+	if_equal $0, ArnieWantsBattle
+
+.Swarm:
+	farscall PhoneScript_Random5
+	if_equal $0, ArnieYanmaSwarm
+	farscall PhoneScript_Random3
+	if_equal $0, ArnieFoundRare
+	farjump Phone_GenericCall_Male
+
+ArnieTuesdayMorning:
+	setflag ENGINE_ARNIE_TUESDAY_MORNING
+
+ArnieWantsBattle:
+	landmarktotext ROUTE_35, $2
+	setflag ENGINE_ARNIE
+	farjump PhoneScript_WantsToBattle_Male
+
+ArnieYanmaSwarm: ; start swarm
+	checkflag ENGINE_YANMA_SWARM
+	iftrue ArnieYanmaAlreadySwarming
+	setflag ENGINE_YANMA_SWARM
+	pokenamemem YANMA, $1
+	swarm SWARM_YANMA, ROUTE_35
+	landmarktotext ROUTE_35, $2
+	farjump UnknownScript_0xa05ce
+
+ArnieFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+ArnieYanmaAlreadySwarming:
+	farjump Phone_GenericCall_Male
+
+; Alan
+
+AlanPhoneScript1:
+	trainertotext SCHOOLBOY, ALAN1, $0
+	checkflag ENGINE_ALAN
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
+	iftrue .NotWednesday
+	checkflag ENGINE_ALAN_HAS_FIRE_STONE
+	iftrue .FireStone
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, .NotWednesday
+	checkday
+	iftrue AlanWednesdayDay
+
+.NotWednesday:
+	farjump UnknownScript_0xa0970
+
+.WantsBattle:
+	landmarktotext ROUTE_36, $2
+	farjump UnknownScript_0xa0a73
+
+.FireStone:
+	landmarktotext ROUTE_36, $2
+	farjump UnknownScript_0xa0ac5
+
+AlanPhoneScript2:
+	trainertotext SCHOOLBOY, ALAN1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_ALAN
+	iftrue AlanGenericCall
+	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
+	iftrue AlanGenericCall
+	checkflag ENGINE_ALAN_HAS_FIRE_STONE
+	iftrue AlanGenericCall
+	farscall PhoneScript_Random3
+	if_equal $0, AlanWantsBattle
+	checkevent EVENT_ALAN_GAVE_FIRE_STONE
+	iftrue .FireStone
+	farscall PhoneScript_Random2
+	if_equal $0, AlanHasFireStone
+
+.FireStone:
+	farscall PhoneScript_Random11
+	if_equal $0, AlanHasFireStone
+
+AlanGenericCall:
+	farjump Phone_GenericCall_Male
+
+AlanWednesdayDay:
+	setflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
+
+AlanWantsBattle:
+	landmarktotext ROUTE_36, $2
+	setflag ENGINE_ALAN
+	farjump PhoneScript_WantsToBattle_Male
+
+AlanHasFireStone:
+	setflag ENGINE_ALAN_HAS_FIRE_STONE
+	landmarktotext ROUTE_36, $2
+	farjump PhoneScript_FoundItem_Male
+
+; Dana
+
+DanaPhoneScript1:
+	trainertotext LASS, DANA1, $0
+	checkflag ENGINE_DANA
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_DANA_THURSDAY_NIGHT
+	iftrue .NotThursday
+	checkflag ENGINE_DANA_HAS_THUNDERSTONE
+	iftrue .HasThunderstone
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, .NotThursday
+	checknite
+	iftrue DanaThursdayNight
+
+.NotThursday:
+	farjump UnknownScript_0xa0978
+
+.WantsBattle:
+	landmarktotext ROUTE_38, $2
+	farjump UnknownScript_0xa0a78
+
+.HasThunderstone:
+	landmarktotext ROUTE_38, $2
+	farjump UnknownScript_0xa0acd
+
+DanaPhoneScript2:
+	trainertotext LASS, DANA1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_DANA
+	iftrue .Generic
+	checkflag ENGINE_DANA_THURSDAY_NIGHT
+	iftrue .Generic
+	checkflag ENGINE_DANA_HAS_THUNDERSTONE
+	iftrue .Generic
+	farscall PhoneScript_Random3
+	if_equal $0, DanaWantsBattle
+	checkevent EVENT_DANA_GAVE_THUNDERSTONE
+	iftrue .Thunderstone
+	farscall PhoneScript_Random2
+	if_equal $0, DanaHasThunderstone
+
+.Thunderstone:
+	farscall PhoneScript_Random11
+	if_equal $0, DanaHasThunderstone
+
+.Generic:
+	farscall PhoneScript_Random3
+	if_equal $0, DanaFoundRare
+	farjump Phone_GenericCall_Female
+
+DanaThursdayNight:
+	setflag ENGINE_DANA_THURSDAY_NIGHT
+
+DanaWantsBattle:
+	landmarktotext ROUTE_38, $2
+	setflag ENGINE_DANA
+	farjump PhoneScript_WantsToBattle_Female
+
+DanaFoundRare:
+	farjump Phone_CheckIfUnseenRare_Female
+
+DanaHasThunderstone:
+	setflag ENGINE_DANA_HAS_THUNDERSTONE
+	landmarktotext ROUTE_38, $2
+	farjump PhoneScript_FoundItem_Female
+
+; Chad
+
+ChadPhoneScript1:
+	trainertotext SCHOOLBOY, CHAD1, $0
+	checkflag ENGINE_CHAD
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_CHAD_FRIDAY_MORNING
+	iftrue .NotFriday
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, .NotFriday
+	checkmorn
+	iftrue ChadFridayMorning
+
+.NotFriday:
+	farjump UnknownScript_0xa0980
+
+.WantsBattle:
+	landmarktotext ROUTE_38, $2
+	farjump UnknownScript_0xa0a7d
+
+ChadPhoneScript2:
+	trainertotext SCHOOLBOY, CHAD1, $0
+	farscall PhoneScript_GreetPhone_Male
+	farscall PhoneScript_Random2
+	if_equal $0, ChadOakGossip
+	checkflag ENGINE_CHAD
+	iftrue .Generic
+	checkflag ENGINE_CHAD_FRIDAY_MORNING
+	iftrue .Generic
+	farscall PhoneScript_Random2
+	if_equal $0, ChadWantsBattle
+
+.Generic:
+	farscall PhoneScript_Random3
+	if_equal $0, ChadFoundRare
+	farjump Phone_GenericCall_Male
+
+ChadFridayMorning:
+	setflag ENGINE_CHAD_FRIDAY_MORNING
+
+ChadWantsBattle:
+	landmarktotext ROUTE_38, $2
+	setflag ENGINE_CHAD
+	farjump PhoneScript_WantsToBattle_Male
+
+ChadFoundRare:
+	farjump Phone_CheckIfUnseenRare_Male
+
+ChadOakGossip:
+	farjump ChadOakGossipScript
+
+DerekPhoneScript1:
+	trainertotext POKEFANM, DEREK1, $0
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_DEREK_HAS_NUGGET
+	iftrue .Nugget
+	farscall PhoneScript_Random2
+	if_equal $0, .NoContest
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue .NoContest
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, .ContestToday
+	if_equal THURSDAY, .ContestToday
+	if_equal SATURDAY, .ContestToday
+
+.NoContest:
+	farjump UnknownScript_0xa0988
+
+.ContestToday:
+	farjump PhoneScript_BugCatchingContest
+
+.Nugget:
+	landmarktotext ROUTE_39, $2
+	farjump UnknownScript_0xa0ad5
+
+DerekPhoneScript2:
+	trainertotext POKEFANM, DEREK1, $0
+	farscall PhoneScript_GreetPhone_Male
+	farscall PhoneScript_Random2
+	if_equal $0, .NoContest
+	checkflag ENGINE_DAILY_BUG_CONTEST
+	iftrue .NoContest
+	checkcode VAR_WEEKDAY
+	if_equal TUESDAY, .ContestToday
+	if_equal THURSDAY, .ContestToday
+	if_equal SATURDAY, .ContestToday
+
+.NoContest:
+	farscall PhoneScript_Random4
+	if_equal $0, .Nugget
+	farjump Phone_GenericCall_Male
+
+.ContestToday:
+	farjump PhoneScript_BugCatchingContest
+
+.Nugget:
+	setflag ENGINE_DEREK_HAS_NUGGET
+	landmarktotext ROUTE_39, $2
+	farjump PhoneScript_FoundItem_Male
+
+TullyPhoneScript1:
+	trainertotext FISHER, TULLY1, $0
+	checkflag ENGINE_TULLY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_TULLY_SUNDAY_NIGHT
+	iftrue .NotSunday
+	checkflag ENGINE_TULLY_HAS_WATER_STONE
+	iftrue TullyHasWaterStone
+	checkcode VAR_WEEKDAY
+	if_not_equal SUNDAY, .NotSunday
+	checknite
+	iftrue TullySundayNight
+
+.NotSunday:
+	farjump UnknownScript_0xa0990
+
+.WantsBattle:
+	landmarktotext ROUTE_42, $2
+	farjump UnknownScript_0xa0a82
+
+TullyHasWaterStone:
+	landmarktotext ROUTE_42, $2
+	farjump UnknownScript_0xa0add
+
+TullyPhoneScript2:
+	trainertotext FISHER, TULLY1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_TULLY
+	iftrue .Generic
+	checkflag ENGINE_TULLY_SUNDAY_NIGHT
+	iftrue .Generic
+	checkflag ENGINE_TULLY_HAS_WATER_STONE
+	iftrue .Generic
+	farscall PhoneScript_Random3
+	if_equal $0, TullyWantsBattle
+	checkevent EVENT_TULLY_GAVE_WATER_STONE
+	iftrue .WaterStone
+	farscall PhoneScript_Random2
+	if_equal $0, TullyFoundWaterStone
+
+.WaterStone:
+	farscall PhoneScript_Random11
+	if_equal $0, TullyFoundWaterStone
+
+.Generic:
+	farjump Phone_GenericCall_Male
+
+TullySundayNight:
+	setflag ENGINE_TULLY_SUNDAY_NIGHT
+
+TullyWantsBattle:
+	landmarktotext ROUTE_42, $2
+	setflag ENGINE_TULLY
+	farjump PhoneScript_WantsToBattle_Male
+
+TullyFoundWaterStone:
+	setflag ENGINE_TULLY_HAS_WATER_STONE
+	landmarktotext ROUTE_42, $2
+	farjump PhoneScript_FoundItem_Male
+
+BrentPhoneScript1:
+	trainertotext POKEMANIAC, BRENT1, $0
+	checkflag ENGINE_BRENT
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_BRENT_MONDAY_MORNING
+	iftrue .NotMonday
+	checkcode VAR_WEEKDAY
+	if_not_equal MONDAY, .NotMonday
+	checkmorn
+	iftrue BrentMondayMorning
+
+.NotMonday:
+	farjump UnknownScript_0xa0998
+
+.WantsBattle:
+	landmarktotext ROUTE_43, $2
+	farjump UnknownScript_0xa0a87
+
+BrentPhoneScript2:
+	trainertotext POKEMANIAC, BRENT1, $0
+	farscall PhoneScript_GreetPhone_Male
+	farscall PhoneScript_Random2
+	if_equal $0, BrentBillTrivia
+	checkflag ENGINE_BRENT
+	iftrue .Generic
+	checkflag ENGINE_BRENT_MONDAY_MORNING
+	iftrue .Generic
+	farscall PhoneScript_Random2
+	if_equal $0, BrentWantsBattle
+
+.Generic:
+	farjump Phone_GenericCall_Male
+
+BrentMondayMorning:
+	setflag ENGINE_BRENT_MONDAY_MORNING
+
+BrentWantsBattle:
+	landmarktotext ROUTE_43, $2
+	setflag ENGINE_BRENT
+	farjump PhoneScript_WantsToBattle_Male
+
+BrentBillTrivia:
+	farjump BrentBillTriviaScript
+
+TiffanyPhoneScript1:
+	trainertotext PICNICKER, TIFFANY3, $0
+	checkflag ENGINE_TIFFANY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
+	iftrue .NotTuesday
+	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
+	iftrue .HasItem
+	checkcode VAR_WEEKDAY
+	if_not_equal TUESDAY, .NotTuesday
+	checkday
+	iftrue TiffanyTuesdayAfternoon
+
+.NotTuesday:
+	farjump UnknownScript_0xa09a0
+
+.WantsBattle:
+	landmarktotext ROUTE_43, $2
+	farjump UnknownScript_0xa0a8c
+
+.HasItem:
+	landmarktotext ROUTE_43, $2
+	farjump UnknownScript_0xa0ae5
+
+TiffanyPhoneScript2:
+	trainertotext PICNICKER, TIFFANY3, $0
+	farscall PhoneScript_Random4
+	if_equal $0, TiffanysFamilyMembers
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_TIFFANY
+	iftrue TiffanyGenericCall
+	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
+	iftrue TiffanyGenericCall
+	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
+	iftrue TiffanyGenericCall
+	farscall PhoneScript_Random3
+	if_equal $0, TiffanyWantsBattle
+	checkevent EVENT_TIFFANY_GAVE_PINK_BOW
+	iftrue .PinkBow
+	farscall PhoneScript_Random2
+	if_equal $0, TiffanyHasPinkBow
+
+.PinkBow:
+	farscall PhoneScript_Random11
+	if_equal $0, TiffanyHasPinkBow
+
+TiffanyGenericCall:
+	farjump Phone_GenericCall_Female
+
+TiffanyTuesdayAfternoon:
+	setflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
+
+TiffanyWantsBattle:
+	landmarktotext ROUTE_43, $2
+	setflag ENGINE_TIFFANY
+	farjump PhoneScript_WantsToBattle_Female
+
+TiffanysFamilyMembers:
+	random $6
+	if_equal $0, .Grandma
+	if_equal $1, .Grandpa
+	if_equal $2, .Mom
+	if_equal $3, .Dad
+	if_equal $4, .Sister
+	if_equal $5, .Brother
+
+.Grandma:
+	stringtotext GrandmaString, $1
+	jump TiffanysPoorClefairy
+
+.Grandpa:
+	stringtotext GrandpaString, $1
+	jump TiffanysPoorClefairy
+
+.Mom:
+	stringtotext MomString, $1
+	jump TiffanysPoorClefairy
+
+.Dad:
+	stringtotext DadString, $1
+	jump TiffanysPoorClefairy
+
+.Sister:
+	stringtotext SisterString, $1
+	jump TiffanysPoorClefairy
+
+.Brother:
+	stringtotext BrotherString, $1
+	jump TiffanysPoorClefairy
+
+TiffanysPoorClefairy:
+	farjump TiffanyItsAwful
+
+TiffanyHasPinkBow:
+	setflag ENGINE_TIFFANY_HAS_PINK_BOW
+	landmarktotext ROUTE_43, $2
+	farjump PhoneScript_FoundItem_Female
+
+; Vance
+
+VancePhoneScript1:
+	trainertotext BIRD_KEEPER, VANCE1, $0
+	checkflag ENGINE_VANCE
+	iftrue VanceWantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
+	iftrue .NotWednesday
+	checkcode VAR_WEEKDAY
+	if_not_equal WEDNESDAY, .NotWednesday
+	checknite
+	iftrue VanceWednesdayNight
+
+.NotWednesday:
+	farjump VanceLookingForward
+
+VanceWantsBattle:
+	landmarktotext ROUTE_44, $2
+	farjump VanceHurryHurry
+
+VancePhoneScript2:
+	trainertotext BIRD_KEEPER, VANCE1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_VANCE
+	iftrue .WantsBattle
+	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
+	iftrue .WantsBattle
+	farscall PhoneScript_Random3
+	if_equal $0, VanceWantsRematch
+	if_equal $1, VanceWantsRematch
+
+.WantsBattle:
+	farjump Phone_GenericCall_Male
+
+VanceWednesdayNight:
+	setflag ENGINE_VANCE_WEDNESDAY_NIGHT
+
+VanceWantsRematch:
+	landmarktotext ROUTE_44, $2
+	setflag ENGINE_VANCE
+	farjump PhoneScript_WantsToBattle_Male
+
+WiltonPhoneScript1:
+	trainertotext FISHER, WILTON1, $0
+	checkflag ENGINE_WILTON
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_WILTON_THURSDAY_MORNING
+	iftrue .NotThursday
+	checkflag ENGINE_WILTON_HAS_ITEM
+	iftrue .HasItem
+	checkcode VAR_WEEKDAY
+	if_not_equal THURSDAY, .NotThursday
+	checkmorn
+	iftrue WiltonThursdayMorning
+
+.NotThursday:
+	farjump WiltonHaventFoundAnything
+
+.WantsBattle:
+	landmarktotext ROUTE_44, $2
+	farjump WiltonNotBiting
+
+.HasItem:
+	landmarktotext ROUTE_44, $2
+	farjump WiltonWantThis
+
+WiltonPhoneScript2:
+	trainertotext FISHER, WILTON1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_WILTON
+	iftrue .GenericCall
+	checkflag ENGINE_WILTON_THURSDAY_MORNING
+	iftrue .GenericCall
+	checkflag ENGINE_WILTON_HAS_ITEM
+	iftrue .GenericCall
+	farscall PhoneScript_Random2
+	if_equal $0, WiltonWantsBattle
+	farscall PhoneScript_Random2
+	if_equal $0, WiltonHasItem
+
+.GenericCall:
+	farjump Phone_GenericCall_Male
+
+WiltonThursdayMorning:
+	setflag ENGINE_WILTON_THURSDAY_MORNING
+
+WiltonWantsBattle:
+	landmarktotext ROUTE_44, $2
+	setflag ENGINE_WILTON
+	farjump PhoneScript_WantsToBattle_Male
+
+WiltonHasItem:
+	setflag ENGINE_WILTON_HAS_ITEM
+	landmarktotext ROUTE_44, $2
+	clearevent EVENT_WILTON_HAS_ULTRA_BALL
+	clearevent EVENT_WILTON_HAS_GREAT_BALL
+	clearevent EVENT_WILTON_HAS_POKE_BALL
+	random $5
+	if_equal $0, .UltraBall
+	random $3
+	if_equal $0, .GreatBall
+	jump .PokeBall
+
+.UltraBall:
+	setevent EVENT_WILTON_HAS_ULTRA_BALL
+	jump .FoundItem
+
+.GreatBall:
+	setevent EVENT_WILTON_HAS_GREAT_BALL
+	jump .FoundItem
+
+.PokeBall:
+	setevent EVENT_WILTON_HAS_POKE_BALL
+
+.FoundItem:
+	farjump PhoneScript_FoundItem_Male
+
+; Kenji
+
+KenjiPhoneScript1:
+	trainertotext BLACKBELT_T, KENJI3, $0
+	farscall PhoneScript_AnswerPhone_Male
+	farjump KenjiAnswerPhoneScript
+
+KenjiPhoneScript2:
+	trainertotext BLACKBELT_T, KENJI3, $0
+	farscall PhoneScript_GreetPhone_Male
+	farjump KenjiCallingPhoneScript
+
+; Parry
+
+ParryPhoneScript1:
+	trainertotext HIKER, PARRY1, $0
+	checkflag ENGINE_PARRY
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Male
+	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
+	iftrue .WantsRematch
+	checkcode VAR_WEEKDAY
+	if_not_equal FRIDAY, .WantsRematch
+	checkday
+	iftrue ParryFridayDay
+
+.WantsRematch:
+	farjump ParryBattleWithMe
+
+.WantsBattle:
+	landmarktotext ROUTE_45, $2
+	farjump ParryHaventYouGottenTo
+
+ParryPhoneScript2:
+	trainertotext HIKER, PARRY1, $0
+	farscall PhoneScript_GreetPhone_Male
+	checkflag ENGINE_PARRY
+	iftrue .GenericCall
+	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
+	iftrue .GenericCall
+	farscall PhoneScript_Random2
+	if_equal $0, ParryWantsBattle
+	if_equal $1, ParryWantsBattle
+
+.GenericCall:
+	farjump Phone_GenericCall_Male
+
+ParryFridayDay:
+	setflag ENGINE_PARRY_FRIDAY_AFTERNOON
+
+ParryWantsBattle:
+	landmarktotext ROUTE_45, $2
+	setflag ENGINE_PARRY
+	farjump PhoneScript_WantsToBattle_Male
+
+; Erin
+
+ErinPhoneScript1:
+	trainertotext PICNICKER, ERIN1, $0
+	checkflag ENGINE_ERIN
+	iftrue .WantsBattle
+	farscall PhoneScript_AnswerPhone_Female
+	checkflag ENGINE_ERIN_SATURDAY_NIGHT
+	iftrue .NotSaturday
+	checkcode VAR_WEEKDAY
+	if_not_equal SATURDAY, .NotSaturday
+	checknite
+	iftrue ErinSaturdayNight
+
+.NotSaturday:
+	farjump ErinWorkingHardScript
+
+.WantsBattle:
+	landmarktotext ROUTE_46, $2
+	farjump ErinComeBattleScript
+
+ErinPhoneScript2:
+	trainertotext PICNICKER, ERIN1, $0
+	farscall PhoneScript_GreetPhone_Female
+	checkflag ENGINE_ERIN
+	iftrue .GenericCall
+	checkflag ENGINE_ERIN_SATURDAY_NIGHT
+	iftrue .GenericCall
+	farscall PhoneScript_Random3
+	if_equal $0, ErinWantsBattle
+	if_equal $1, ErinWantsBattle
+
+.GenericCall:
+	farjump Phone_GenericCall_Female
+
+ErinSaturdayNight:
+	setflag ENGINE_ERIN_SATURDAY_NIGHT
+
+ErinWantsBattle:
+	landmarktotext ROUTE_46, $2
+	setflag ENGINE_ERIN
+	farjump PhoneScript_WantsToBattle_Female
--- a/engine/phone_callers.asm
+++ /dev/null
@@ -1,961 +1,0 @@
-Phone_GenericCall_Male:
-	special RandomPhoneMon
-	farscall PhoneScript_Random2
-	if_equal 0, .Bragging
-	farscall PhoneScript_Generic_Male
-	farjump Phone_FoundAMon_Male
-
-.Bragging:
-	farjump Phone_BraggingCall_Male
-
-Phone_GenericCall_Female:
-	special RandomPhoneMon
-	farscall PhoneScript_Random2
-	if_equal 0, .Bragging
-	farscall PhoneScript_Generic_Female
-	farjump Phone_FoundAMon_Female
-
-.Bragging:
-	farjump Phone_BraggingCall_Female
-
-Phone_BraggingCall_Male:
-	farscall Phone_WhosBragging_Male
-	farjump Phone_FoundAMon_Male
-
-Phone_BraggingCall_Female:
-	farscall Phone_WhosBragging_Female
-	farjump Phone_FoundAMon_Female
-
-Phone_FoundAMon_Male:
-	special RandomPhoneWildMon
-	farscall PhoneScript_Random2
-	if_equal 0, .GotAway
-	farscall Phone_WhoDefeatedMon_Male
-	farjump PhoneScript_HangupText_Male
-
-.GotAway:
-	farjump Phone_GotAwayCall_Male
-
-Phone_FoundAMon_Female:
-	special RandomPhoneWildMon
-	farscall PhoneScript_Random2
-	if_equal 0, .GotAway
-	farscall Phone_WhoDefeatedMon_Female
-	farjump PhoneScript_HangupText_Female
-
-.GotAway:
-	farjump Phone_GotAwayCall_Female
-
-Phone_GotAwayCall_Male:
-	farscall Phone_WhoLostAMon_Male
-	farjump PhoneScript_HangupText_Male
-
-Phone_GotAwayCall_Female:
-	farscall Phone_WhoLostAMon_Female
-	farjump PhoneScript_HangupText_Female
-
-Phone_WhosBragging_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext JackIntelligenceText
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext GavenGreaterText
-	buttonsound
-	end
-
-.Jose:
-	farwritetext JoseAromaText
-	buttonsound
-	end
-
-.Joey:
-	farwritetext JoeySharperText
-	buttonsound
-	end
-
-.Wade:
-	farwritetext WadeAreYouGrowingText
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext RalphNeglectingKidsText
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext AnthonyAteBerriesText
-	buttonsound
-	end
-
-.Todd:
-	farwritetext ToddLooksCuteLikeMeText
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext ArnieLovesTheCuteText
-	buttonsound
-	end
-
-.Alan:
-	farwritetext AlanGettingStrongerText
-	buttonsound
-	end
-
-.Chad:
-	farwritetext ChadObservingWildText
-	buttonsound
-	end
-
-.Derek:
-	farwritetext DerekCheekPincherText
-	buttonsound
-	end
-
-.Tully:
-	farwritetext TullyGrownText
-	buttonsound
-	end
-
-.Brent:
-	farwritetext BrentRareTradeText
-	buttonsound
-	end
-
-.Vance:
-	farwritetext VanceLiftoffText
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext WiltonGrownText
-	buttonsound
-	end
-
-.Parry:
-	farwritetext ParryNoMatchText
-	buttonsound
-	end
-
-Phone_WhosBragging_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x174688
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x174c7f
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1752f5
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x175fda
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1771fd
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x64f74
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x665ad
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x6717a
-	buttonsound
-	end
-
-Phone_WhoDefeatedMon_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext JackDefeatedMonText
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x174a80
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x174f90
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x175591
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x175869
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x175c24
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x176aef
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x176e9c
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x64a13
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x64cf3
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x65318
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x65b29
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x65e42
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x6613c
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x669b2
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x66b3e
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x66fc0
-	buttonsound
-	end
-
-Phone_WhoDefeatedMon_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1746c3
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x174cf6
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x17536b
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x17602d
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x177237
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x64fb2
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x66605
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x671a4
-	buttonsound
-	end
-
-Phone_WhoLostAMon_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x174165
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x174b2d
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x174ffd
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x175611
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1758e4
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x175c9f
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x176b45
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x176eee
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x64a71
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x64d4f
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x65399
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x65bc8
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x65eac
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x6618c
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x669ed
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x66b8f
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x67001
-	buttonsound
-	end
-
-Phone_WhoLostAMon_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x174734
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x174d86
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1753c5
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x176095
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x177297
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x6501c
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x66688
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x671eb
-	buttonsound
-	end
-
-PhoneScript_WantsToBattle_Male:
-	farscall PhoneScript_RematchText_Male
-	farjump PhoneScript_HangupText_Male
-
-PhoneScript_WantsToBattle_Female:
-	farscall PhoneScript_RematchText_Female
-	farjump PhoneScript_HangupText_Female
-
-PhoneScript_RematchText_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1741e1
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1748ea
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x174bc5
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x17507d
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x175693
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x175976
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x175d40
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x176bee
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x176f60
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x64ada
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x64da4
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x65419
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x65f17
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x66214
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x66a3a
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x66bf3
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x67096
-	buttonsound
-	end
-
-PhoneScript_RematchText_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beth:
-	farwritetext UnknownText_0x174e4e
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x17543a
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x17610a
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1772e2
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x65091
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x66730
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x6722e
-	buttonsound
-	end
-
-LizWrongNumberScript:
-	farwritetext LizHiTaniaText
-	end
-
-TiffanyItsAwful:
-	farwritetext TiffanyItsAwfulText
-	end
-
-PhoneScript_HangupText_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x174251
-	end
-
-.Huey:
-	farwritetext UnknownText_0x174962
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x174c0e
-	end
-
-.Jose:
-	farwritetext UnknownText_0x175106
-	end
-
-.Joey:
-	farwritetext UnknownText_0x17570a
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1759e7
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x175db7
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x176c47
-	end
-
-.Todd:
-	farwritetext UnknownText_0x176fdb
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x64000
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x64b48
-	end
-
-.Alan:
-	farwritetext UnknownText_0x64e1f
-	end
-
-.Chad:
-	farwritetext UnknownText_0x65471
-	end
-
-.Derek:
-	farwritetext UnknownText_0x65c4e
-	end
-
-.Tully:
-	farwritetext UnknownText_0x65f6e
-	end
-
-.Brent:
-	farwritetext UnknownText_0x662a9
-	end
-
-.Vance:
-	farwritetext UnknownText_0x66a93
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x66c58
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x66dab
-	end
-
-.Parry:
-	farwritetext UnknownText_0x670eb
-	end
-
-PhoneScript_HangupText_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1747ac
-	end
-
-.Beth:
-	farwritetext UnknownText_0x174eb7
-	end
-
-.Reena:
-	farwritetext UnknownText_0x175488
-	end
-
-.Liz:
-	farwritetext UnknownText_0x17620a
-	end
-
-.Gina:
-	farwritetext UnknownText_0x177361
-	end
-
-.Dana:
-	farwritetext UnknownText_0x650e2
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x667f7
-	end
-
-.Erin:
-	farwritetext UnknownText_0x67281
-	end
-
-Phone_CheckIfUnseenRare_Male:
-	scall PhoneScriptRareWildMon
-	iffalse .HangUp
-	farjump Phone_GenericCall_Male
-
-.HangUp:
-	farjump PhoneScript_HangupText_Male
-
-Phone_CheckIfUnseenRare_Female:
-	scall PhoneScriptRareWildMon
-	iffalse .HangUp
-	farjump Phone_GenericCall_Female
-
-.HangUp:
-	farjump PhoneScript_HangupText_Female
-
-PhoneScriptRareWildMon:
-	special RandomUnseenWildMon
-	end
-
-PhoneScript_BugCatchingContest:
-	checkcode VAR_CALLERID
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-
-.Wade:
-	farwritetext WadeBugCatchingContestText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Derek:
-	farwritetext DerekBugCatchingContestText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinRocketRumor:
-	farwritetext UnknownText_0x64032
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa05c6:
-	farwritetext UnknownText_0x177378
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa05ce:
-	farwritetext UnknownText_0x64b5f
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa05d6:
-	farwritetext UnknownText_0x175dd9
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa05de:
-	farwritetext UnknownText_0x176c61
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-PhoneScript_FoundItem_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_FISHER_WILTON, .Wilton
-
-.Jose:
-	farwritetext JoseFoundSomethingText
-	end
-
-.Wade:
-	farwritetext WadeFoundBerryText
-	end
-
-.Alan:
-	farwritetext UnknownText_0x64e2f
-	end
-
-.Derek:
-	farwritetext UnknownText_0x65cf9
-	end
-
-.Tully:
-	farwritetext UnknownText_0x65f88
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x66c6b
-	end
-
-PhoneScript_FoundItem_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-
-.Beverly:
-	farwritetext BeverlyFoundNuggetText
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1773e7
-	end
-
-.Dana:
-	farwritetext UnknownText_0x650ec
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x66801
-	end
-
-UnknownScript_0xa0644:
-	farwritetext UnknownText_0x176feb
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-KenjiCallingPhoneScript:
-	farwritetext UnknownText_0x66dc5
-	buttonsound
-	jump PhoneScript_HangupText_Male
--- a/engine/phone_gossip.asm
+++ /dev/null
@@ -1,698 +1,0 @@
-JackTriviaScript:
-	random 11
-	if_equal  0, .Thunder
-	if_equal  1, .Rollout
-	if_equal  2, .Solarbeam
-	if_equal  3, .Stomp
-	if_equal  4, .Gust
-	if_equal  5, .Twister
-	if_equal  6, .Earthquake
-	if_equal  7, .Magnitude
-	if_equal  8, .Sandstorm
-	if_equal  9, .SunnyDay
-	if_equal 10, .RainDance
-
-.Thunder:
-	farwritetext JackThunderTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Rollout:
-	farwritetext JackRolloutTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Solarbeam:
-	farwritetext JackSolarbeamTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Stomp:
-	farwritetext JackStompTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Gust:
-	farwritetext JackGustTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Twister:
-	farwritetext JackTwisterTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Earthquake:
-	farwritetext JackEarthquakeTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Magnitude:
-	farwritetext JackMagnitudeTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Sandstorm:
-	farwritetext JackSandstormTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.SunnyDay:
-	farwritetext JackSunnyDayTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.RainDance:
-	farwritetext JackRainDanceTriviaText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa06da:
-	random 10
-	if_equal 0, .RuinsOfAlph
-	if_equal 1, .Falkner
-	if_equal 2, .Earl
-	if_equal 3, .SurfPikachu
-	if_equal 4, .MooMooMilk
-	if_equal 5, .Salon
-	if_equal 6, .Whitney
-	if_equal 7, .BugCatchingContest
-	if_equal 8, .BeautifulMon
-	if_equal 9, .Forgot
-
-.RuinsOfAlph:
-	farwritetext UnknownText_0x176223
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.Falkner:
-	farwritetext UnknownText_0x1762c3
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.Earl:
-	farwritetext UnknownText_0x17638a
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.SurfPikachu:
-	farwritetext UnknownText_0x176424
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.MooMooMilk:
-	farwritetext UnknownText_0x1764eb
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.Salon:
-	farwritetext UnknownText_0x176599
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.Whitney:
-	farwritetext UnknownText_0x1766ac
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.BugCatchingContest:
-	farwritetext UnknownText_0x17674f
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.BeautifulMon:
-	farwritetext UnknownText_0x176816
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-.Forgot:
-	farwritetext UnknownText_0x17686d
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-ChadOakGossipScript:
-	random 10
-	if_equal 0, .Blue
-	if_equal 1, .Daisy
-	if_equal 2, .ProfElm
-	if_equal 3, .Dream
-	if_equal 4, .Kurt
-	if_equal 5, .League
-	if_equal 6, .RadioShow
-	if_equal 7, .Battling
-	if_equal 8, .DaisyTea
-	if_equal 9, .Traveled
-
-.Blue:
-	farwritetext ChadBlueGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Daisy:
-	farwritetext ChadDaisyGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.ProfElm:
-	farwritetext ChadProfElmGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Dream:
-	farwritetext ChadDreamGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Kurt:
-	farwritetext ChadKurtGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.League:
-	farwritetext ChadLeagueGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.RadioShow:
-	farwritetext ChadRadioShowGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Battling:
-	farwritetext ChadBattlingGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.DaisyTea:
-	farwritetext ChadDaisyTeaGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Traveled:
-	farwritetext ChadTravelGossipText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-BrentBillTriviaScript:
-	random 10
-	if_equal 0, .Father
-	if_equal 1, .Grandpa
-	if_equal 2, .Goldenrod
-	if_equal 3, .Route25
-	if_equal 4, .Abra
-	if_equal 5, .Sister
-	if_equal 6, .Milk
-	if_equal 7, .Battling
-	if_equal 8, .FlowerShop
-	if_equal 9, .KimonoGirl
-
-.Father:
-	farwritetext UnknownText_0x662bc
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Grandpa:
-	farwritetext UnknownText_0x662fc
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Goldenrod:
-	farwritetext UnknownText_0x66335
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Route25:
-	farwritetext UnknownText_0x66366
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Abra:
-	farwritetext UnknownText_0x663a1
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Sister:
-	farwritetext UnknownText_0x663e6
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Milk:
-	farwritetext UnknownText_0x66421
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Battling:
-	farwritetext UnknownText_0x6645f
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.FlowerShop:
-	farwritetext UnknownText_0x6649b
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.KimonoGirl:
-	farwritetext UnknownText_0x664dd
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinRumorScript:
-	checkevent EVENT_OPENED_MT_SILVER
-	iftrue IrwinMtSilver
-	checkevent EVENT_FOUGHT_SNORLAX
-	iftrue IrwinSnorlax
-	checkevent EVENT_GOT_PASS_FROM_COPYCAT
-	iftrue IrwinTrainPass
-	checkflag ENGINE_MARSHBADGE
-	iftrue IrwinMarshBadge
-	checkflag ENGINE_FLYPOINT_VERMILION
-	iftrue IrwinVermilionCity
-	checkevent EVENT_BEAT_ELITE_FOUR
-	iftrue IrwinEliteFour
-	checkflag ENGINE_RISINGBADGE
-	iftrue IrwinRisingBadge
-	checkevent EVENT_CLEARED_RADIO_TOWER
-	iftrue IrwinRadioTower
-	checkevent EVENT_CLEARED_ROCKET_HIDEOUT
-	iftrue IrwinRocketHideout
-	checkevent EVENT_JASMINE_RETURNED_TO_GYM
-	iftrue IrwinJasmineReturned
-	checkflag ENGINE_FOGBADGE
-	iftrue IrwinFogBadge
-	checkflag ENGINE_PLAINBADGE
-	iftrue IrwinPlainBadge
-	farwritetext IrwinCalledRightAwayText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinPlainBadge:
-	farwritetext UnknownText_0x64099
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinJasmineReturned:
-	farwritetext UnknownText_0x640e6
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinRocketHideout:
-	farwritetext UnknownText_0x6416d
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinRadioTower:
-	farwritetext UnknownText_0x641e8
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinRisingBadge:
-	farwritetext UnknownText_0x64247
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinEliteFour:
-	farwritetext UnknownText_0x642bb
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinVermilionCity:
-	farwritetext UnknownText_0x643d4
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinTrainPass:
-	farwritetext UnknownText_0x64448
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinSnorlax:
-	farwritetext UnknownText_0x6455b
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinMtSilver:
-	farwritetext UnknownText_0x645ff
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinFogBadge:
-	farwritetext UnknownText_0x646df
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-IrwinMarshBadge:
-	farwritetext UnknownText_0x647d8
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-JackPhoneTips:
-	farwritetext UnknownText_0x1745c2
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0900:
-	farwritetext UnknownText_0x17485b
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0908:
-	farwritetext UnknownText_0x17496b
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0910:
-	farwritetext UnknownText_0x174c29
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0918:
-	farwritetext UnknownText_0x174ec5
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0920:
-	farwritetext UnknownText_0x17519b
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0928:
-	farwritetext UnknownText_0x17549b
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0930:
-	farwritetext UnknownText_0x17571d
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0938:
-	farwritetext UnknownText_0x175abe
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0940:
-	farwritetext UnknownText_0x175eaf
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0948:
-	farwritetext UnknownText_0x1768b0
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0950:
-	farwritetext UnknownText_0x176d32
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0958:
-	farwritetext UnknownText_0x1770fb
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0960:
-	farwritetext UnknownText_0x177465
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0968:
-	farwritetext UnknownText_0x64bc6
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0970:
-	farwritetext UnknownText_0x64e90
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0978:
-	farwritetext UnknownText_0x65161
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0980:
-	farwritetext UnknownText_0x65a23
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0988:
-	farwritetext UnknownText_0x65d5c
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0990:
-	farwritetext UnknownText_0x65ff2
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0998:
-	farwritetext UnknownText_0x6651e
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa09a0:
-	farwritetext UnknownText_0x66882
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-VanceLookingForward:
-	farwritetext VanceLookingForwardText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-WiltonHaventFoundAnything:
-	farwritetext WiltonHaventFoundAnythingText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-ParryBattleWithMe:
-	farwritetext ParryBattleWithMeText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-ErinWorkingHardScript:
-	farwritetext ErinWorkingHardText
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa09c8:
-	random 3
-	if_equal 0, UnknownScript_0xa09d6
-	if_equal 1, UnknownScript_0xa09de
-	if_equal 2, UnknownScript_0xa09e6
-
-UnknownScript_0xa09d6:
-	farwritetext UnknownText_0x64846
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa09de:
-	farwritetext UnknownText_0x64881
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa09e6:
-	farwritetext UnknownText_0x648dc
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-KenjiAnswerPhoneScript:
-	checkcode VAR_KENJI_BREAK
-	if_equal 2, .Training
-	if_equal 1, .OnBreak
-	farwritetext UnknownText_0x66e17
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Training:
-	farwritetext UnknownText_0x66e67
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.OnBreak:
-	checkmorn
-	iftrue .Morning
-	checknite
-	iftrue .Night
-	setevent EVENT_KENJI_ON_BREAK
-	farwritetext KenjiBreakText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Morning:
-	farwritetext UnknownText_0x66ed3
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-.Night:
-	farwritetext UnknownText_0x66f52
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-JackWantsBattleScript:
-	farwritetext UnknownText_0x174638
-	end
-
-HueyWantsBattleScript:
-	farwritetext UnknownText_0x1749c7
-	end
-
-UnknownScript_0xa0a37:
-	farwritetext UnknownText_0x174c49
-	end
-
-BethBattleReminderScript:
-	farwritetext BethForgetDealText
-	end
-
-UnknownScript_0xa0a41:
-	farwritetext UnknownText_0x17520a
-	end
-
-UnknownScript_0xa0a46:
-	farwritetext UnknownText_0x1754e5
-	end
-
-UnknownScript_0xa0a4b:
-	farwritetext UnknownText_0x175786
-	end
-
-UnknownScript_0xa0a50:
-	farwritetext UnknownText_0x175b1e
-	end
-
-UnknownScript_0xa0a55:
-	farwritetext UnknownText_0x175f11
-	end
-
-UnknownScript_0xa0a5a:
-	farwritetext UnknownText_0x1769da
-	end
-
-UnknownScript_0xa0a5f:
-	farwritetext UnknownText_0x176d85
-	end
-
-UnknownScript_0xa0a64:
-	farwritetext UnknownText_0x177138
-	end
-
-UnknownScript_0xa0a69:
-	farwritetext UnknownText_0x1774c1
-	end
-
-UnknownScript_0xa0a6e:
-	farwritetext UnknownText_0x64c13
-	end
-
-UnknownScript_0xa0a73:
-	farwritetext UnknownText_0x64ed4
-	end
-
-UnknownScript_0xa0a78:
-	farwritetext UnknownText_0x651bf
-	end
-
-UnknownScript_0xa0a7d:
-	farwritetext UnknownText_0x65a63
-	end
-
-UnknownScript_0xa0a82:
-	farwritetext UnknownText_0x66043
-	end
-
-UnknownScript_0xa0a87:
-	farwritetext UnknownText_0x66579
-	end
-
-UnknownScript_0xa0a8c:
-	farwritetext UnknownText_0x668a3
-	end
-
-VanceHurryHurry:
-	farwritetext VanceHurryHurryText
-	end
-
-WiltonNotBiting:
-	farwritetext WiltonNotBitingText
-	end
-
-ParryHaventYouGottenTo:
-	farwritetext ParryHaventYouGottenToText
-	end
-
-ErinComeBattleScript:
-	farwritetext ErinComeBattleText
-	end
-
-UnknownScript_0xa0aa5:
-	farwritetext UnknownText_0x174895
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0aad:
-	farwritetext UnknownText_0x17529c
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0ab5:
-	farwritetext UnknownText_0x175b6d
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0abd:
-	farwritetext UnknownText_0x17750e
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0ac5:
-	farwritetext UnknownText_0x64f1a
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0acd:
-	farwritetext UnknownText_0x6520f
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-UnknownScript_0xa0ad5:
-	farwritetext UnknownText_0x65da6
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0add:
-	farwritetext UnknownText_0x66087
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0ae5:
-	farwritetext UnknownText_0x6691d
-	buttonsound
-	jump PhoneScript_HangupText_Female
-
-WiltonWantThis:
-	farwritetext WiltonWantThisText
-	buttonsound
-	jump PhoneScript_HangupText_Male
-
-UnknownScript_0xa0af5:
-	farwritetext UnknownText_0x175f70
-	end
-
-UnknownScript_0xa0afa:
-	farwritetext UnknownText_0x176dd1
-	end
-
-UnknownScript_0xa0aff:
-	farwritetext UnknownText_0x64c5a
-	end
-
-UnknownScript_0xa0b04:
-	farwritetext UnknownText_0x17717c
-	end
-
-BikeShopPhoneScript:
-	farwritetext UnknownText_0x174000
-	clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
-	specialphonecall SPECIALCALL_NONE
-	end
--- a/engine/phone_scripts.asm
+++ /dev/null
@@ -1,1886 +1,0 @@
-UnusedPhoneScript: ; 0xbcea5
-	farwritetext UnusedPhoneText
-	end
-
-; Mom
-
-MomPhoneScript: ; 0xbceaa
-	checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
-	iftrue .bcec5
-	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
-	jump MomPhoneNoPokemonScript
-
-.bcec5 ; 0xbcec5
-	checkevent EVENT_IN_YOUR_ROOM
-	iftrue MomPhoneHangUpScript
-	farwritetext MomPhoneGreetingText
-	buttonsound
-	mapnametotext $0
-	checkcode VAR_ROOFPALETTE
-	if_equal $1, MomPhonePalette1
-	if_equal $2, MomPhonePalette2
-	jump MomPhoneOther
-
-MomPhoneLandmark: ; 0xbcedf
-	farwritetext MomPhoneLandmarkText
-	buttonsound
-	jump MomSavingMoney
-
-MomPhonePalette1: ; 0xbcee7
-	checkcode VAR_MAPGROUP
-	if_equal GROUP_NEW_BARK_TOWN, .newbark
-	if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove
-	if_equal GROUP_VIOLET_CITY, .violet
-	if_equal GROUP_AZALEA_TOWN, .azalea
-	if_equal GROUP_GOLDENROD_CITY, .goldenrod
-	farwritetext MomPhoneGenericAreaText
-	buttonsound
-	jump MomSavingMoney
-
-.newbark ; 0xbcf05
-	farwritetext MomPhoneNewBarkText
-	buttonsound
-	jump MomSavingMoney
-
-.cherrygrove ; 0xbcf0d
-	farwritetext MomPhoneCherrygroveText
-	buttonsound
-	jump MomSavingMoney
-
-.violet ; 0xbcf15
-	landmarktotext SPROUT_TOWER, 1
-	jump MomPhoneLandmark
-.azalea ; 0xbcf1b
-	landmarktotext SLOWPOKE_WELL, 1
-	jump MomPhoneLandmark
-.goldenrod ; 0xbcf21
-	landmarktotext RADIO_TOWER, 1
-	jump MomPhoneLandmark
-
-MomPhonePalette2: ; 0xbcf27
-	farwritetext MomOtherAreaText
-	buttonsound
-	jump MomSavingMoney
-
-MomPhoneOther: ; 0xbcf2f
-	farwritetext MomDeterminedText
-	buttonsound
-	jump MomSavingMoney
-
-MomSavingMoney: ; 0xbcf37
-	checkflag ENGINE_MOM_SAVING_MONEY
-	iffalse MomIsNotSaving
-	checkmoney $1, 0
-	if_equal $0, MomSavingHasMoney
-	jump MomSavingButBroke
-
-MomIsNotSaving: ; 0xbcf49
-	checkmoney $1, 0
-	if_equal $0, MomHasMoney
-	jump MomHasNoMoney
-
-MomSavingHasMoney: ; 0xbcf55
-	readmoney $1, $0
-	farwritetext MomCheckBalanceText
-	yesorno
-	iftrue MomPhoneSaveMoneyScript
-	jump MomPhoneWontSaveMoneyScript
-
-MomSavingButBroke: ; 0xbcf63
-	farwritetext MomImportantToSaveText
-	yesorno
-	iftrue MomPhoneSaveMoneyScript
-	jump MomPhoneWontSaveMoneyScript
-
-MomHasNoMoney: ; 0xbcf6e
-	farwritetext MomYoureNotSavingText
-	yesorno
-	iftrue MomPhoneSaveMoneyScript
-	jump MomPhoneWontSaveMoneyScript
-
-MomHasMoney: ; 0xbcf79
-	readmoney $1, $0
-	farwritetext MomYouveSavedText
-	yesorno
-	iftrue MomPhoneSaveMoneyScript
-	jump MomPhoneWontSaveMoneyScript
-
-MomPhoneSaveMoneyScript: ; 0xbcf87
-	setflag ENGINE_MOM_SAVING_MONEY
-	farwritetext MomOKIllSaveText
-	buttonsound
-	jump MomPhoneHangUpScript
-
-MomPhoneWontSaveMoneyScript: ; 0xbcf92
-	clearflag ENGINE_MOM_SAVING_MONEY
-	farwritetext MomPhoneWontSaveMoneyText
-	buttonsound
-	jump MomPhoneHangUpScript
-
-MomPhoneHangUpScript: ; 0xbcf9d
-	farwritetext MomPhoneHangUpText
-	end
-
-MomPhoneNoPokemonScript: ; 0xbcfa2
-	farwritetext MomPhoneNoPokemonText
-	end
-
-MomPhoneNoPokedexScript: ; 0xbcfa7
-	farwritetext MomPhoneNoPokedexText
-	end
-
-MomPhoneNoGymQuestScript: ; 0xbcfac
-	farwritetext MomPhoneNoGymQuestText
-	end
-
-MomPhoneLectureScript: ; 0xbcfb1
-	setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
-	setflag ENGINE_DST
-	specialphonecall SPECIALCALL_NONE
-	farwritetext MomPhoneLectureText
-	yesorno
-	iftrue MomPhoneSaveMoneyScript
-	jump MomPhoneWontSaveMoneyScript
-
-; Bill
-
-BillPhoneScript1: ; 0xbcfc5
-	checkday
-	iftrue .daygreet
-	checknite
-	iftrue .nitegreet
-	farwritetext BillPhoneMornGreetingText
-	buttonsound
-	jump .main
-
-.daygreet ; 0xbcfd7
-	farwritetext BillPhoneDayGreetingText
-	buttonsound
-	jump .main
-
-.nitegreet ; 0xbcfdf
-	farwritetext BillPhoneNiteGreetingText
-	buttonsound
-	jump .main
-
-.main ; 0xbcfe7
-	farwritetext BillPhoneGeneriText
-	buttonsound
-	checkcode VAR_BOXSPACE
-	RAM2MEM $0
-	if_equal $0, .full
-	if_less_than $6, .nearlyfull
-	farwritetext BillPhoneNotFullText
-	end
-
-.nearlyfull ; 0xbcffd
-	farwritetext BillPhoneNearlyFullText
-	end
-
-.full ; 0xbd002
-	farwritetext BillPhoneFullText
-	end
-
-BillPhoneScript2: ; 0xbd007
-	farwritetext BillPhoneNewlyFullText
-	waitbutton
-	end
-
-; Elm
-
-ElmPhoneScript1: ; 0xbd00d
-	checkcode VAR_SPECIALPHONECALL
-	if_equal $1, .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
-	farwritetext ElmPhoneStartText
-	end
-
-.sawmrpokemon ; 0xbd048
-	farwritetext ElmPhoneSawMrPokemonText
-	end
-
-.stolen ; 0xbd04d
-	farwritetext ElmPhonePokemonStolenText
-	end
-
-.checkingegg ; 0xbd052
-	farwritetext ElmPhoneCheckingEggText
-	end
-
-.assistant ; 0xbd057
-	farwritetext ElmPhoneAssistantText
-	end
-
-.eggunhatched ; 0xbd05c
-	farwritetext ElmPhoneEggUnhatchedText
-	end
-
-.egghatched ; 0xbd061
-	farwritetext ElmPhoneEggHatchedText
-	setevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
-	end
-
-.discovery ; 0xbd069
-	random $2
-	if_equal $0, .nextdiscovery
-	farwritetext ElmPhoneDiscovery1Text
-	end
-
-.nextdiscovery ; 0xbd074
-	farwritetext ElmPhoneDiscovery2Text
-	end
-
-.pokerus ; 0xbd079
-	farwritetext ElmPhonePokerusText
-	specialphonecall SPECIALCALL_NONE
-	end
-
-ElmPhoneScript2: ; 0xbd081
-	checkcode VAR_SPECIALPHONECALL
-	if_equal $2, .disaster
-	if_equal $3, .assistant
-	if_equal $4, .rocket
-	if_equal $5, .gift
-	if_equal $8, .gift
-	farwritetext ElmPhonePokerusText
-	specialphonecall SPECIALCALL_NONE
-	end
-
-.disaster ; 0xbd09f
-	farwritetext ElmPhoneDisasterText
-	specialphonecall SPECIALCALL_NONE
-	setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
-	end
-
-.assistant ; 0xbd0aa
-	farwritetext ElmPhoneEggAssistantText
-	specialphonecall SPECIALCALL_NONE
-	clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
-	setevent EVENT_ELMS_AIDE_IN_LAB
-	end
-
-.rocket ; 0xbd0b8
-	farwritetext ElmPhoneRocketText
-	specialphonecall SPECIALCALL_NONE
-	end
-
-.gift ; 0xbd0c0
-	farwritetext ElmPhoneGiftText
-	specialphonecall SPECIALCALL_NONE
-	end
-
-.unused ; 0xbd0c8
-	farwritetext ElmPhoneUnusedText
-	specialphonecall SPECIALCALL_NONE
-	end
-; bd0d0
-
-; Jack
-
-JackPhoneScript1:
-	trainertotext SCHOOLBOY, JACK1, $0
-	checkflag ENGINE_JACK
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_JACK_MONDAY_MORNING
-	iftrue .NotMonday
-	checkcode VAR_WEEKDAY
-	if_not_equal MONDAY, .NotMonday
-	checkmorn
-	iftrue JackMondayMorning
-
-.NotMonday:
-	farjump JackPhoneTips
-
-.WantsBattle:
-	landmarktotext NATIONAL_PARK, $2
-	farjump JackWantsBattleScript
-
-JackPhoneScript2:
-	trainertotext SCHOOLBOY, JACK1, $0
-	farscall PhoneScript_GreetPhone_Male
-	farscall PhoneScript_Random2
-	if_equal $0, JackBattleTrivia
-	checkflag ENGINE_JACK
-	iftrue .WaitingForBattle
-	checkflag ENGINE_JACK_MONDAY_MORNING
-	iftrue .WaitingForBattle
-	farscall PhoneScript_Random2
-	if_equal $0, JackWantsToBattle
-
-.WaitingForBattle:
-	farscall PhoneScript_Random3
-	if_equal $0, JackFindsRare
-	farjump Phone_GenericCall_Male
-
-JackMondayMorning:
-	setflag ENGINE_JACK_MONDAY_MORNING
-
-JackWantsToBattle:
-	landmarktotext NATIONAL_PARK, $2
-	setflag ENGINE_JACK
-	farjump PhoneScript_WantsToBattle_Male
-
-JackFindsRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-JackBattleTrivia:
-	farjump JackTriviaScript
-
-; Beverly
-
-BeverlyPhoneScript1:
-	trainertotext POKEFANF, BEVERLY1, $0
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_BEVERLY_HAS_NUGGET
-	iftrue .HasNugget
-	farjump UnknownScript_0xa0900
-
-.HasNugget:
-	landmarktotext NATIONAL_PARK, $2
-	farjump UnknownScript_0xa0aa5
-
-BeverlyPhoneScript2:
-	trainertotext POKEFANF, BEVERLY1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_BEVERLY_HAS_NUGGET
-	iftrue .HasNugget
-	farscall PhoneScript_Random4
-	if_equal $0, .FoundNugget
-
-.HasNugget:
-	farjump Phone_GenericCall_Female
-
-.FoundNugget:
-	setflag ENGINE_BEVERLY_HAS_NUGGET
-	landmarktotext NATIONAL_PARK, $2
-	farjump PhoneScript_FoundItem_Female
-
-; Huey
-
-HueyPhoneScript1:
-	trainertotext SAILOR, HUEY1, $0
-	checkflag ENGINE_HUEY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
-	iftrue .NotWednesday
-	checkcode VAR_WEEKDAY
-	if_not_equal WEDNESDAY, .NotWednesday
-	checknite
-	iftrue HueyWednesdayNight
-
-.NotWednesday:
-	special RandomPhoneMon
-	farjump UnknownScript_0xa0908
-
-.WantsBattle:
-	landmarktotext LIGHTHOUSE, $2
-	farjump HueyWantsBattleScript
-
-HueyPhoneScript2:
-	trainertotext SAILOR, HUEY1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_HUEY
-	iftrue .Flavor
-	checkflag ENGINE_HUEY_WEDNESDAY_NIGHT
-	iftrue .Flavor
-	farscall PhoneScript_Random3
-	if_equal $0, HueyWantsBattle
-	if_equal $1, HueyWantsBattle
-
-.Flavor:
-	farjump PhoneScript_MonFlavorText
-
-HueyWednesdayNight:
-	setflag ENGINE_HUEY_WEDNESDAY_NIGHT
-
-HueyWantsBattle:
-	landmarktotext LIGHTHOUSE, $2
-	setflag ENGINE_HUEY
-	farjump PhoneScript_WantsToBattle_Male
-
-; Gaven
-
-GavenPhoneScript1:
-	trainertotext COOLTRAINERM, GAVEN3, $0
-	checkflag ENGINE_GAVEN
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_GAVEN_THURSDAY_MORNING
-	iftrue .NotThursday
-	checkcode VAR_WEEKDAY
-	if_not_equal THURSDAY, .NotThursday
-	checkmorn
-	iftrue GavenThursdayMorning
-
-.NotThursday:
-	farjump UnknownScript_0xa0910
-
-.WantsBattle:
-	landmarktotext ROUTE_26, $2
-	farjump UnknownScript_0xa0a37
-
-GavenPhoneScript2:
-	trainertotext COOLTRAINERM, GAVEN3, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_GAVEN
-	iftrue .WaitingForBattle
-	checkflag ENGINE_GAVEN_THURSDAY_MORNING
-	iftrue .WaitingForBattle
-	farscall PhoneScript_Random2
-	if_equal $0, GavenWantsRematch
-
-.WaitingForBattle:
-	farscall PhoneScript_Random3
-	if_equal $0, GavenFoundRare
-	farjump Phone_GenericCall_Male
-
-GavenThursdayMorning:
-	setflag ENGINE_GAVEN_THURSDAY_MORNING
-
-GavenWantsRematch:
-	landmarktotext ROUTE_26, $2
-	setflag ENGINE_GAVEN
-	farjump PhoneScript_WantsToBattle_Male
-
-GavenFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-; Beth
-
-BethPhoneScript1:
-	trainertotext COOLTRAINERF, BETH1, $0
-	checkflag ENGINE_BETH
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
-	iftrue .NotFriday
-	checkcode VAR_WEEKDAY
-	if_not_equal FRIDAY, .NotFriday
-	checkday
-	iftrue BethFridayAfternoon
-
-.NotFriday:
-	farjump UnknownScript_0xa0918
-
-.WantsBattle:
-	landmarktotext ROUTE_26, $2
-	farjump BethBattleReminderScript
-
-BethPhoneScript2:
-	trainertotext COOLTRAINERF, BETH1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_BETH
-	iftrue .Generic
-	checkflag ENGINE_BETH_FRIDAY_AFTERNOON
-	iftrue .Generic
-	farscall PhoneScript_Random2
-	if_equal $0, BethWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Female
-
-BethFridayAfternoon:
-	setflag ENGINE_BETH_FRIDAY_AFTERNOON
-
-BethWantsBattle:
-	landmarktotext ROUTE_26, $2
-	setflag ENGINE_BETH
-	farjump PhoneScript_WantsToBattle_Female
-
-; Jose
-
-JosePhoneScript1:
-	trainertotext BIRD_KEEPER, JOSE2, $0
-	checkflag ENGINE_JOSE
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_JOSE_SATURDAY_NIGHT
-	iftrue .NotSaturday
-	checkflag ENGINE_JOSE_HAS_STAR_PIECE
-	iftrue .HasItem
-	checkcode VAR_WEEKDAY
-	if_not_equal SATURDAY, .NotSaturday
-	checknite
-	iftrue JoseSaturdayNight
-
-.NotSaturday:
-	farjump UnknownScript_0xa0920
-
-.WantsBattle:
-	landmarktotext ROUTE_27, $2
-	farjump UnknownScript_0xa0a41
-
-.HasItem:
-	landmarktotext ROUTE_27, $2
-	farjump UnknownScript_0xa0a41
-
-JosePhoneScript2:
-	trainertotext BIRD_KEEPER, JOSE2, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_JOSE
-	iftrue .Generic
-	checkflag ENGINE_JOSE_SATURDAY_NIGHT
-	iftrue .Generic
-	checkflag ENGINE_JOSE_HAS_STAR_PIECE
-	iftrue .Generic
-	farscall PhoneScript_Random3
-	if_equal $0, JoseWantsBattle
-	farscall PhoneScript_Random3
-	if_equal $0, JoseHasStarPiece
-
-.Generic:
-	farscall PhoneScript_Random3
-	if_equal $0, JoseFoundRare
-	farjump Phone_GenericCall_Male
-
-JoseSaturdayNight:
-	setflag ENGINE_JOSE_SATURDAY_NIGHT
-
-JoseWantsBattle:
-	landmarktotext ROUTE_27, $2
-	setflag ENGINE_JOSE
-	farjump PhoneScript_WantsToBattle_Male
-
-JoseFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-JoseHasStarPiece:
-	setflag ENGINE_JOSE_HAS_STAR_PIECE
-	landmarktotext ROUTE_27, $2
-	farjump PhoneScript_FoundItem_Male
-
-; Reena
-
-ReenaPhoneScript1:
-	trainertotext COOLTRAINERF, REENA1, $0
-	checkflag ENGINE_REENA
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_REENA_SUNDAY_MORNING
-	iftrue .NotSunday
-	checkcode VAR_WEEKDAY
-	if_not_equal SUNDAY, .NotSunday
-	checkmorn
-	iftrue ReenaSundayMorning
-
-.NotSunday:
-	farjump UnknownScript_0xa0928
-
-.WantsBattle:
-	landmarktotext ROUTE_27, $2
-	farjump UnknownScript_0xa0a46
-
-ReenaPhoneScript2:
-	trainertotext COOLTRAINERF, REENA1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_REENA
-	iftrue .Generic
-	checkflag ENGINE_REENA_SUNDAY_MORNING
-	iftrue .Generic
-	farscall PhoneScript_Random2
-	if_equal $0, ReenaWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Female
-
-ReenaSundayMorning:
-	setflag ENGINE_REENA_SUNDAY_MORNING
-
-ReenaWantsBattle:
-	landmarktotext ROUTE_27, $2
-	setflag ENGINE_REENA
-	farjump PhoneScript_WantsToBattle_Female
-
-; Joey
-
-JoeyPhoneScript1:
-	trainertotext YOUNGSTER, JOEY1, $0
-	checkflag ENGINE_JOEY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
-	iftrue .NotMonday
-	checkcode VAR_WEEKDAY
-	if_not_equal MONDAY, .NotMonday
-	checkday
-	iftrue JoeyMondayAfternoon
-
-.NotMonday:
-	special RandomPhoneMon
-	farjump UnknownScript_0xa0930
-
-.WantsBattle:
-	landmarktotext ROUTE_30, $2
-	farjump UnknownScript_0xa0a4b
-
-JoeyPhoneScript2:
-	trainertotext YOUNGSTER, JOEY1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_JOEY
-	iftrue .Generic
-	checkflag ENGINE_JOEY_MONDAY_AFTERNOON
-	iftrue .Generic
-	farscall PhoneScript_Random3
-	if_equal $0, JoeyWantsBattle
-	if_equal $1, JoeyWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Male
-
-JoeyMondayAfternoon:
-	setflag ENGINE_JOEY_MONDAY_AFTERNOON
-
-JoeyWantsBattle:
-	landmarktotext ROUTE_30, $2
-	setflag ENGINE_JOEY
-	farjump PhoneScript_WantsToBattle_Male
-
-; Wade
-
-WadePhoneScript1:
-	trainertotext BUG_CATCHER, WADE1, $0
-	checkflag ENGINE_WADE
-	iftrue WadeWantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_WADE_TUESDAY_NIGHT
-	iftrue .NotTuesday
-	checkflag ENGINE_WADE_HAS_ITEM
-	iftrue WadeHasItem
-	checkcode VAR_WEEKDAY
-	if_not_equal TUESDAY, .NotTuesday
-	checknite
-	iftrue WadeTuesdayNight
-
-.NotTuesday:
-	farscall PhoneScript_Random2
-	if_equal $0, .NoContest
-	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue .NoContest
-	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, WadeContestToday
-	if_equal THURSDAY, WadeContestToday
-	if_equal SATURDAY, WadeContestToday
-
-.NoContest:
-	farjump UnknownScript_0xa0938
-
-WadeContestToday:
-	farjump PhoneScript_BugCatchingContest
-
-WadeWantsBattle:
-	landmarktotext ROUTE_31, $2
-	farjump UnknownScript_0xa0a50
-
-WadeHasItem:
-	landmarktotext ROUTE_31, $2
-	farjump UnknownScript_0xa0ab5
-
-WadePhoneScript2:
-	trainertotext BUG_CATCHER, WADE1, $0
-	farscall PhoneScript_GreetPhone_Male
-	farscall PhoneScript_Random2
-	if_equal $0, .NoContest
-	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue .NoContest
-	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, Wade_ContestToday
-	if_equal THURSDAY, Wade_ContestToday
-	if_equal SATURDAY, Wade_ContestToday
-
-.NoContest:
-	checkflag ENGINE_WADE
-	iftrue .next
-	checkflag ENGINE_WADE_TUESDAY_NIGHT
-	iftrue .next
-	checkflag ENGINE_WADE_HAS_ITEM
-	iftrue .next
-	farscall PhoneScript_Random2
-	if_equal $0, WadeHasItem2
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse .next
-	farscall PhoneScript_Random2
-	if_equal $0, WadeWantsBattle2
-
-.next:
-	farscall PhoneScript_Random3
-	if_equal $0, WadeFoundRare
-	farjump Phone_GenericCall_Male
-
-Wade_ContestToday:
-	farjump PhoneScript_BugCatchingContest
-
-WadeTuesdayNight:
-	setflag ENGINE_WADE_TUESDAY_NIGHT
-
-WadeWantsBattle2:
-	landmarktotext ROUTE_31, $2
-	setflag ENGINE_WADE
-	farjump PhoneScript_WantsToBattle_Male
-
-WadeFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-WadeHasItem2:
-	setflag ENGINE_WADE_HAS_ITEM
-	landmarktotext ROUTE_31, $2
-	clearevent EVENT_WADE_HAS_BERRY
-	clearevent EVENT_WADE_HAS_PSNCUREBERRY
-	clearevent EVENT_WADE_HAS_PRZCUREBERRY
-	clearevent EVENT_WADE_HAS_BITTER_BERRY
-	random $4
-	if_equal $0, .Berry
-	if_equal $1, .PsnCureBerry
-	if_equal $2, .PrzCureBerry
-	if_equal $3, .Bitterberry
-
-.Berry:
-	setevent EVENT_WADE_HAS_BERRY
-	jump .FoundBerry
-
-.PsnCureBerry:
-	setevent EVENT_WADE_HAS_PSNCUREBERRY
-	jump .FoundBerry
-
-.PrzCureBerry:
-	setevent EVENT_WADE_HAS_PRZCUREBERRY
-	jump .FoundBerry
-
-.Bitterberry:
-	setevent EVENT_WADE_HAS_BITTER_BERRY
-
-.FoundBerry:
-	farjump PhoneScript_FoundItem_Male
-
-; Ralph
-
-RalphPhoneScript1:
-	trainertotext FISHER, RALPH1, $0
-	checkflag ENGINE_RALPH
-	iftrue Ralph_Rematch
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
-	iftrue Ralph_CheckSwarm
-	checkcode VAR_WEEKDAY
-	if_not_equal WEDNESDAY, Ralph_CheckSwarm
-	checkmorn
-	iftrue Ralph_WednesdayMorning
-Ralph_CheckSwarm:
-	checkflag ENGINE_SPECIAL_WILDDATA
-	iftrue Ralph_ReportSwarm
-	farjump UnknownScript_0xa0940
-
-Ralph_Rematch:
-	landmarktotext ROUTE_32, $2
-	farjump UnknownScript_0xa0a55
-
-Ralph_ReportSwarm:
-	landmarktotext ROUTE_32, $2
-	farjump UnknownScript_0xa0af5
-
-RalphPhoneScript2:
-	trainertotext FISHER, RALPH1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse Ralph_CheckSwarm2
-	checkflag ENGINE_RALPH
-	iftrue Ralph_CheckSwarm2
-	checkflag ENGINE_RALPH_WEDNESDAY_MORNING
-	iftrue Ralph_CheckSwarm2
-	farscall PhoneScript_Random2
-	if_equal $0, Ralph_FightMe
-Ralph_CheckSwarm2:
-	farscall PhoneScript_Random5
-	if_equal $0, Ralph_SetUpSwarm
-	farjump Phone_GenericCall_Male
-
-Ralph_WednesdayMorning:
-	setflag ENGINE_RALPH_WEDNESDAY_MORNING
-Ralph_FightMe:
-	landmarktotext ROUTE_32, $2
-	setflag ENGINE_RALPH
-	farjump PhoneScript_WantsToBattle_Male
-
-Ralph_SetUpSwarm:
-	checkflag ENGINE_SPECIAL_WILDDATA
-	iftrue .Generic
-	setflag ENGINE_SPECIAL_WILDDATA
-	pokenamemem QWILFISH, $1
-	landmarktotext ROUTE_32, $2
-	writebyte FISHSWARM_QWILFISH
-	special Special_ActivateFishingSwarm
-	farjump UnknownScript_0xa05d6
-
-.Generic:
-	farjump Phone_GenericCall_Male
-
-; Liz
-
-LizPhoneScript1:
-	trainertotext PICNICKER, LIZ1, $0
-	checkflag ENGINE_LIZ
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
-	iftrue .NotThursday
-	checkcode VAR_WEEKDAY
-	if_not_equal THURSDAY, .NotThursday
-	checkday
-	iftrue LizThursdayAfternoon
-
-.NotThursday:
-	special RandomPhoneMon
-	farjump UnknownScript_0xa0948
-
-.WantsBattle:
-	landmarktotext ROUTE_32, $2
-	farjump UnknownScript_0xa0a5a
-
-LizPhoneScript2:
-	trainertotext PICNICKER, LIZ1, $0
-	farscall PhoneScript_Random4
-	if_equal $0, LizWrongNumber
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_LIZ
-	iftrue .next
-	checkflag ENGINE_LIZ_THURSDAY_AFTERNOON
-	iftrue .next
-
-.next:
-	farscall PhoneScript_Random2
-	if_equal $0, LizGossip
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse .Generic
-	farscall PhoneScript_Random2
-	if_equal $0, LizWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Female
-
-LizThursdayAfternoon:
-	setflag ENGINE_LIZ_THURSDAY_AFTERNOON
-
-LizWantsBattle:
-	landmarktotext ROUTE_32, $2
-	setflag ENGINE_LIZ
-	farjump PhoneScript_WantsToBattle_Female
-
-LizWrongNumber:
-	farjump LizWrongNumberScript
-
-LizGossip:
-	random $9
-	if_equal $0, .CoolTrainerM
-	if_equal $1, .Beauty
-	if_equal $2, .Grunt
-	if_equal $3, .Teacher
-	if_equal $4, .SwimmerF
-	if_equal $5, .KimonoGirl
-	if_equal $6, .Skier
-	if_equal $7, .Medium
-	if_equal $8, .PokefanM
-
-.CoolTrainerM:
-	trainerclassname COOLTRAINERM, $1
-	jump LizGossipScript
-
-.Beauty:
-	trainerclassname BEAUTY, $1
-	jump LizGossipScript
-
-.Grunt:
-	trainerclassname GRUNTM, $1
-	jump LizGossipScript
-
-.Teacher:
-	trainerclassname TEACHER, $1
-	jump LizGossipScript
-
-.SwimmerF:
-	trainerclassname SWIMMERF, $1
-	jump LizGossipScript
-
-.KimonoGirl:
-	trainerclassname KIMONO_GIRL, $1
-	jump LizGossipScript
-
-.Skier:
-	trainerclassname SKIER, $1
-	jump LizGossipScript
-
-.Medium:
-	trainerclassname MEDIUM, $1
-	jump LizGossipScript
-
-.PokefanM:
-	trainerclassname POKEFANM, $1
-	jump LizGossipScript
-
-LizGossipScript:
-	farjump UnknownScript_0xa06da
-
-; Anthony
-
-AnthonyPhoneScript1:
-	trainertotext HIKER, ANTHONY2, $0
-	checkflag ENGINE_ANTHONY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
-	iftrue .NotFriday
-	checkcode VAR_WEEKDAY
-	if_not_equal FRIDAY, .NotFriday
-	checknite
-	iftrue AnthonyFridayNight
-
-.NotFriday:
-	checkflag ENGINE_DUNSPARCE_SWARM
-	iftrue .AlreadySwarming
-	farjump UnknownScript_0xa0950
-
-.WantsBattle:
-	landmarktotext ROUTE_33, $2
-	farjump UnknownScript_0xa0a5f
-
-.AlreadySwarming:
-	landmarktotext ROUTE_33, $2
-	farjump UnknownScript_0xa0afa
-
-AnthonyPhoneScript2:
-	trainertotext HIKER, ANTHONY2, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse .TriesSwarm
-	checkflag ENGINE_ANTHONY
-	iftrue .TriesSwarm
-	checkflag ENGINE_ANTHONY_FRIDAY_NIGHT
-	iftrue .TriesSwarm
-	farscall PhoneScript_Random2
-	if_equal $0, AnthonyWantsBattle
-
-.TriesSwarm:
-	farscall PhoneScript_Random5
-	if_equal $0, AnthonyTriesDunsparceSwarm
-	farjump Phone_GenericCall_Male
-
-AnthonyFridayNight:
-	setflag ENGINE_ANTHONY_FRIDAY_NIGHT
-
-AnthonyWantsBattle:
-	landmarktotext ROUTE_33, $2
-	setflag ENGINE_ANTHONY
-	farjump PhoneScript_WantsToBattle_Male
-
-AnthonyTriesDunsparceSwarm:
-	checkflag ENGINE_DUNSPARCE_SWARM
-	iftrue .Generic
-	setflag ENGINE_DUNSPARCE_SWARM
-	pokenamemem DUNSPARCE, $1
-	swarm SWARM_DUNSPARCE, DARK_CAVE_VIOLET_ENTRANCE
-	landmarktotext DARK_CAVE, $2
-	farjump UnknownScript_0xa05de
-
-.Generic:
-	farjump Phone_GenericCall_Male
-
-; Todd
-
-ToddPhoneScript1:
-	trainertotext CAMPER, TODD1, $0
-	checkflag ENGINE_TODD
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_TODD_SATURDAY_MORNING
-	iftrue .NotSaturday
-	checkcode VAR_WEEKDAY
-	if_not_equal SATURDAY, .NotSaturday
-	checkmorn
-	iftrue ToddSaturdayMorning
-
-.NotSaturday:
-	checkflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
-	iftrue .SaleOn
-	farjump UnknownScript_0xa0958
-
-.WantsBattle:
-	landmarktotext ROUTE_34, $2
-	farjump UnknownScript_0xa0a64
-
-.SaleOn:
-	farjump UnknownScript_0xa0b04
-
-ToddPhoneScript2:
-	trainertotext CAMPER, TODD1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_TODD
-	iftrue .TryForSale
-	checkflag ENGINE_TODD_SATURDAY_MORNING
-	iftrue .TryForSale
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse ToddNoGoldenrod
-	farscall PhoneScript_Random2
-	if_equal $0, ToddWantsBattle
-
-.TryForSale:
-	farscall PhoneScript_Random2
-	if_equal $0, ToddDeptStoreSale
-
-ToddNoGoldenrod:
-	farscall PhoneScript_Random3
-	if_equal $0, ToddFoundRare
-	farjump Phone_GenericCall_Male
-
-ToddSaturdayMorning:
-	setflag ENGINE_TODD_SATURDAY_MORNING
-
-ToddWantsBattle:
-	landmarktotext ROUTE_34, $2
-	setflag ENGINE_TODD
-	farjump PhoneScript_WantsToBattle_Male
-
-ToddFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-ToddDeptStoreSale:
-	setflag ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
-	farjump UnknownScript_0xa0644
-
-; Gina
-
-GinaPhoneScript1:
-	trainertotext PICNICKER, GINA1, $0
-	checkflag ENGINE_GINA
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
-	iftrue .NotSunday
-	checkflag ENGINE_GINA_HAS_LEAF_STONE
-	iftrue .HasLeafStone
-	checkcode VAR_WEEKDAY
-	if_not_equal SUNDAY, .NotSunday
-	checkday
-	iftrue GinaSundayDay
-
-.NotSunday:
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue .Rockets
-	farjump UnknownScript_0xa0960
-
-.Rockets:
-	farjump UnknownScript_0xa05c6
-
-.WantsBattle:
-	landmarktotext ROUTE_34, $2
-	farjump UnknownScript_0xa0a69
-
-.HasLeafStone:
-	landmarktotext ROUTE_34, $2
-	farjump UnknownScript_0xa0abd
-
-GinaPhoneScript2:
-	trainertotext PICNICKER, GINA1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue GinaRockets
-	checkflag ENGINE_GINA
-	iftrue .Generic
-	checkflag ENGINE_GINA_SUNDAY_AFTERNOON
-	iftrue .Generic
-	checkflag ENGINE_GINA_HAS_LEAF_STONE
-	iftrue .Generic
-	checkevent EVENT_GINA_GAVE_LEAF_STONE
-	iftrue .GaveLeafStone
-	farscall PhoneScript_Random2
-	if_equal $0, GinaHasLeafStone
-
-.GaveLeafStone:
-	farscall PhoneScript_Random11
-	if_equal $0, GinaHasLeafStone
-	checkflag ENGINE_FLYPOINT_GOLDENROD
-	iffalse .Generic
-	farscall PhoneScript_Random3
-	if_equal $0, GinaWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Female
-
-GinaSundayDay:
-	setflag ENGINE_GINA_SUNDAY_AFTERNOON
-
-GinaWantsBattle:
-	landmarktotext ROUTE_34, $2
-	setflag ENGINE_GINA
-	farjump PhoneScript_WantsToBattle_Female
-
-GinaRockets:
-	farjump UnknownScript_0xa05c6
-
-GinaHasLeafStone:
-	setflag ENGINE_GINA_HAS_LEAF_STONE
-	landmarktotext ROUTE_34, $2
-	farjump PhoneScript_FoundItem_Female
-
-; Irwin
-
-IrwinPhoneScript1:
-	trainertotext JUGGLER, IRWIN1, $0
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue .Rockets
-	farjump UnknownScript_0xa09c8
-
-.Rockets:
-	farjump IrwinRocketRumor
-
-IrwinPhoneScript2:
-	trainertotext JUGGLER, IRWIN1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
-	iftrue .Rockets
-	farjump IrwinRumorScript
-
-.Rockets:
-	farjump IrwinRocketRumor
-
-; Arnie
-
-ArniePhoneScript1:
-	trainertotext BUG_CATCHER, ARNIE1, $0
-	checkflag ENGINE_ARNIE
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_ARNIE_TUESDAY_MORNING
-	iftrue .NotTuesday
-	checkcode VAR_WEEKDAY
-	if_not_equal TUESDAY, .NotTuesday
-	checkmorn
-	iftrue ArnieTuesdayMorning
-
-.NotTuesday:
-	checkflag ENGINE_YANMA_SWARM
-	iftrue .AlreadySwarming
-	farjump UnknownScript_0xa0968
-
-.WantsBattle:
-	landmarktotext ROUTE_35, $2
-	farjump UnknownScript_0xa0a6e
-
-.AlreadySwarming:
-	landmarktotext ROUTE_35, $2
-	farjump UnknownScript_0xa0aff
-
-ArniePhoneScript2:
-	trainertotext BUG_CATCHER, ARNIE1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_ARNIE
-	iftrue .Swarm
-	checkflag ENGINE_ARNIE_TUESDAY_MORNING
-	iftrue .Swarm
-	farscall PhoneScript_Random2
-	if_equal $0, ArnieWantsBattle
-
-.Swarm:
-	farscall PhoneScript_Random5
-	if_equal $0, ArnieYanmaSwarm
-	farscall PhoneScript_Random3
-	if_equal $0, ArnieFoundRare
-	farjump Phone_GenericCall_Male
-
-ArnieTuesdayMorning:
-	setflag ENGINE_ARNIE_TUESDAY_MORNING
-
-ArnieWantsBattle:
-	landmarktotext ROUTE_35, $2
-	setflag ENGINE_ARNIE
-	farjump PhoneScript_WantsToBattle_Male
-
-ArnieYanmaSwarm: ; start swarm
-	checkflag ENGINE_YANMA_SWARM
-	iftrue ArnieYanmaAlreadySwarming
-	setflag ENGINE_YANMA_SWARM
-	pokenamemem YANMA, $1
-	swarm SWARM_YANMA, ROUTE_35
-	landmarktotext ROUTE_35, $2
-	farjump UnknownScript_0xa05ce
-
-ArnieFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-ArnieYanmaAlreadySwarming:
-	farjump Phone_GenericCall_Male
-
-; Alan
-
-AlanPhoneScript1:
-	trainertotext SCHOOLBOY, ALAN1, $0
-	checkflag ENGINE_ALAN
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
-	iftrue .NotWednesday
-	checkflag ENGINE_ALAN_HAS_FIRE_STONE
-	iftrue .FireStone
-	checkcode VAR_WEEKDAY
-	if_not_equal WEDNESDAY, .NotWednesday
-	checkday
-	iftrue AlanWednesdayDay
-
-.NotWednesday:
-	farjump UnknownScript_0xa0970
-
-.WantsBattle:
-	landmarktotext ROUTE_36, $2
-	farjump UnknownScript_0xa0a73
-
-.FireStone:
-	landmarktotext ROUTE_36, $2
-	farjump UnknownScript_0xa0ac5
-
-AlanPhoneScript2:
-	trainertotext SCHOOLBOY, ALAN1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_ALAN
-	iftrue AlanGenericCall
-	checkflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
-	iftrue AlanGenericCall
-	checkflag ENGINE_ALAN_HAS_FIRE_STONE
-	iftrue AlanGenericCall
-	farscall PhoneScript_Random3
-	if_equal $0, AlanWantsBattle
-	checkevent EVENT_ALAN_GAVE_FIRE_STONE
-	iftrue .FireStone
-	farscall PhoneScript_Random2
-	if_equal $0, AlanHasFireStone
-
-.FireStone:
-	farscall PhoneScript_Random11
-	if_equal $0, AlanHasFireStone
-
-AlanGenericCall:
-	farjump Phone_GenericCall_Male
-
-AlanWednesdayDay:
-	setflag ENGINE_ALAN_WEDNESDAY_AFTERNOON
-
-AlanWantsBattle:
-	landmarktotext ROUTE_36, $2
-	setflag ENGINE_ALAN
-	farjump PhoneScript_WantsToBattle_Male
-
-AlanHasFireStone:
-	setflag ENGINE_ALAN_HAS_FIRE_STONE
-	landmarktotext ROUTE_36, $2
-	farjump PhoneScript_FoundItem_Male
-
-; Dana
-
-DanaPhoneScript1:
-	trainertotext LASS, DANA1, $0
-	checkflag ENGINE_DANA
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_DANA_THURSDAY_NIGHT
-	iftrue .NotThursday
-	checkflag ENGINE_DANA_HAS_THUNDERSTONE
-	iftrue .HasThunderstone
-	checkcode VAR_WEEKDAY
-	if_not_equal THURSDAY, .NotThursday
-	checknite
-	iftrue DanaThursdayNight
-
-.NotThursday:
-	farjump UnknownScript_0xa0978
-
-.WantsBattle:
-	landmarktotext ROUTE_38, $2
-	farjump UnknownScript_0xa0a78
-
-.HasThunderstone:
-	landmarktotext ROUTE_38, $2
-	farjump UnknownScript_0xa0acd
-
-DanaPhoneScript2:
-	trainertotext LASS, DANA1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_DANA
-	iftrue .Generic
-	checkflag ENGINE_DANA_THURSDAY_NIGHT
-	iftrue .Generic
-	checkflag ENGINE_DANA_HAS_THUNDERSTONE
-	iftrue .Generic
-	farscall PhoneScript_Random3
-	if_equal $0, DanaWantsBattle
-	checkevent EVENT_DANA_GAVE_THUNDERSTONE
-	iftrue .Thunderstone
-	farscall PhoneScript_Random2
-	if_equal $0, DanaHasThunderstone
-
-.Thunderstone:
-	farscall PhoneScript_Random11
-	if_equal $0, DanaHasThunderstone
-
-.Generic:
-	farscall PhoneScript_Random3
-	if_equal $0, DanaFoundRare
-	farjump Phone_GenericCall_Female
-
-DanaThursdayNight:
-	setflag ENGINE_DANA_THURSDAY_NIGHT
-
-DanaWantsBattle:
-	landmarktotext ROUTE_38, $2
-	setflag ENGINE_DANA
-	farjump PhoneScript_WantsToBattle_Female
-
-DanaFoundRare:
-	farjump Phone_CheckIfUnseenRare_Female
-
-DanaHasThunderstone:
-	setflag ENGINE_DANA_HAS_THUNDERSTONE
-	landmarktotext ROUTE_38, $2
-	farjump PhoneScript_FoundItem_Female
-
-; Chad
-
-ChadPhoneScript1:
-	trainertotext SCHOOLBOY, CHAD1, $0
-	checkflag ENGINE_CHAD
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_CHAD_FRIDAY_MORNING
-	iftrue .NotFriday
-	checkcode VAR_WEEKDAY
-	if_not_equal FRIDAY, .NotFriday
-	checkmorn
-	iftrue ChadFridayMorning
-
-.NotFriday:
-	farjump UnknownScript_0xa0980
-
-.WantsBattle:
-	landmarktotext ROUTE_38, $2
-	farjump UnknownScript_0xa0a7d
-
-ChadPhoneScript2:
-	trainertotext SCHOOLBOY, CHAD1, $0
-	farscall PhoneScript_GreetPhone_Male
-	farscall PhoneScript_Random2
-	if_equal $0, ChadOakGossip
-	checkflag ENGINE_CHAD
-	iftrue .Generic
-	checkflag ENGINE_CHAD_FRIDAY_MORNING
-	iftrue .Generic
-	farscall PhoneScript_Random2
-	if_equal $0, ChadWantsBattle
-
-.Generic:
-	farscall PhoneScript_Random3
-	if_equal $0, ChadFoundRare
-	farjump Phone_GenericCall_Male
-
-ChadFridayMorning:
-	setflag ENGINE_CHAD_FRIDAY_MORNING
-
-ChadWantsBattle:
-	landmarktotext ROUTE_38, $2
-	setflag ENGINE_CHAD
-	farjump PhoneScript_WantsToBattle_Male
-
-ChadFoundRare:
-	farjump Phone_CheckIfUnseenRare_Male
-
-ChadOakGossip:
-	farjump ChadOakGossipScript
-
-DerekPhoneScript1:
-	trainertotext POKEFANM, DEREK1, $0
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_DEREK_HAS_NUGGET
-	iftrue .Nugget
-	farscall PhoneScript_Random2
-	if_equal $0, .NoContest
-	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue .NoContest
-	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, .ContestToday
-	if_equal THURSDAY, .ContestToday
-	if_equal SATURDAY, .ContestToday
-
-.NoContest:
-	farjump UnknownScript_0xa0988
-
-.ContestToday:
-	farjump PhoneScript_BugCatchingContest
-
-.Nugget:
-	landmarktotext ROUTE_39, $2
-	farjump UnknownScript_0xa0ad5
-
-DerekPhoneScript2:
-	trainertotext POKEFANM, DEREK1, $0
-	farscall PhoneScript_GreetPhone_Male
-	farscall PhoneScript_Random2
-	if_equal $0, .NoContest
-	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue .NoContest
-	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, .ContestToday
-	if_equal THURSDAY, .ContestToday
-	if_equal SATURDAY, .ContestToday
-
-.NoContest:
-	farscall PhoneScript_Random4
-	if_equal $0, .Nugget
-	farjump Phone_GenericCall_Male
-
-.ContestToday:
-	farjump PhoneScript_BugCatchingContest
-
-.Nugget:
-	setflag ENGINE_DEREK_HAS_NUGGET
-	landmarktotext ROUTE_39, $2
-	farjump PhoneScript_FoundItem_Male
-
-TullyPhoneScript1:
-	trainertotext FISHER, TULLY1, $0
-	checkflag ENGINE_TULLY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_TULLY_SUNDAY_NIGHT
-	iftrue .NotSunday
-	checkflag ENGINE_TULLY_HAS_WATER_STONE
-	iftrue TullyHasWaterStone
-	checkcode VAR_WEEKDAY
-	if_not_equal SUNDAY, .NotSunday
-	checknite
-	iftrue TullySundayNight
-
-.NotSunday:
-	farjump UnknownScript_0xa0990
-
-.WantsBattle:
-	landmarktotext ROUTE_42, $2
-	farjump UnknownScript_0xa0a82
-
-TullyHasWaterStone:
-	landmarktotext ROUTE_42, $2
-	farjump UnknownScript_0xa0add
-
-TullyPhoneScript2:
-	trainertotext FISHER, TULLY1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_TULLY
-	iftrue .Generic
-	checkflag ENGINE_TULLY_SUNDAY_NIGHT
-	iftrue .Generic
-	checkflag ENGINE_TULLY_HAS_WATER_STONE
-	iftrue .Generic
-	farscall PhoneScript_Random3
-	if_equal $0, TullyWantsBattle
-	checkevent EVENT_TULLY_GAVE_WATER_STONE
-	iftrue .WaterStone
-	farscall PhoneScript_Random2
-	if_equal $0, TullyFoundWaterStone
-
-.WaterStone:
-	farscall PhoneScript_Random11
-	if_equal $0, TullyFoundWaterStone
-
-.Generic:
-	farjump Phone_GenericCall_Male
-
-TullySundayNight:
-	setflag ENGINE_TULLY_SUNDAY_NIGHT
-
-TullyWantsBattle:
-	landmarktotext ROUTE_42, $2
-	setflag ENGINE_TULLY
-	farjump PhoneScript_WantsToBattle_Male
-
-TullyFoundWaterStone:
-	setflag ENGINE_TULLY_HAS_WATER_STONE
-	landmarktotext ROUTE_42, $2
-	farjump PhoneScript_FoundItem_Male
-
-BrentPhoneScript1:
-	trainertotext POKEMANIAC, BRENT1, $0
-	checkflag ENGINE_BRENT
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_BRENT_MONDAY_MORNING
-	iftrue .NotMonday
-	checkcode VAR_WEEKDAY
-	if_not_equal MONDAY, .NotMonday
-	checkmorn
-	iftrue BrentMondayMorning
-
-.NotMonday:
-	farjump UnknownScript_0xa0998
-
-.WantsBattle:
-	landmarktotext ROUTE_43, $2
-	farjump UnknownScript_0xa0a87
-
-BrentPhoneScript2:
-	trainertotext POKEMANIAC, BRENT1, $0
-	farscall PhoneScript_GreetPhone_Male
-	farscall PhoneScript_Random2
-	if_equal $0, BrentBillTrivia
-	checkflag ENGINE_BRENT
-	iftrue .Generic
-	checkflag ENGINE_BRENT_MONDAY_MORNING
-	iftrue .Generic
-	farscall PhoneScript_Random2
-	if_equal $0, BrentWantsBattle
-
-.Generic:
-	farjump Phone_GenericCall_Male
-
-BrentMondayMorning:
-	setflag ENGINE_BRENT_MONDAY_MORNING
-
-BrentWantsBattle:
-	landmarktotext ROUTE_43, $2
-	setflag ENGINE_BRENT
-	farjump PhoneScript_WantsToBattle_Male
-
-BrentBillTrivia:
-	farjump BrentBillTriviaScript
-
-TiffanyPhoneScript1:
-	trainertotext PICNICKER, TIFFANY3, $0
-	checkflag ENGINE_TIFFANY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
-	iftrue .NotTuesday
-	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
-	iftrue .HasItem
-	checkcode VAR_WEEKDAY
-	if_not_equal TUESDAY, .NotTuesday
-	checkday
-	iftrue TiffanyTuesdayAfternoon
-
-.NotTuesday:
-	farjump UnknownScript_0xa09a0
-
-.WantsBattle:
-	landmarktotext ROUTE_43, $2
-	farjump UnknownScript_0xa0a8c
-
-.HasItem:
-	landmarktotext ROUTE_43, $2
-	farjump UnknownScript_0xa0ae5
-
-TiffanyPhoneScript2:
-	trainertotext PICNICKER, TIFFANY3, $0
-	farscall PhoneScript_Random4
-	if_equal $0, TiffanysFamilyMembers
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_TIFFANY
-	iftrue TiffanyGenericCall
-	checkflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
-	iftrue TiffanyGenericCall
-	checkflag ENGINE_TIFFANY_HAS_PINK_BOW
-	iftrue TiffanyGenericCall
-	farscall PhoneScript_Random3
-	if_equal $0, TiffanyWantsBattle
-	checkevent EVENT_TIFFANY_GAVE_PINK_BOW
-	iftrue .PinkBow
-	farscall PhoneScript_Random2
-	if_equal $0, TiffanyHasPinkBow
-
-.PinkBow:
-	farscall PhoneScript_Random11
-	if_equal $0, TiffanyHasPinkBow
-
-TiffanyGenericCall:
-	farjump Phone_GenericCall_Female
-
-TiffanyTuesdayAfternoon:
-	setflag ENGINE_TIFFANY_TUESDAY_AFTERNOON
-
-TiffanyWantsBattle:
-	landmarktotext ROUTE_43, $2
-	setflag ENGINE_TIFFANY
-	farjump PhoneScript_WantsToBattle_Female
-
-TiffanysFamilyMembers:
-	random $6
-	if_equal $0, .Grandma
-	if_equal $1, .Grandpa
-	if_equal $2, .Mom
-	if_equal $3, .Dad
-	if_equal $4, .Sister
-	if_equal $5, .Brother
-
-.Grandma:
-	stringtotext GrandmaString, $1
-	jump TiffanysPoorClefairy
-
-.Grandpa:
-	stringtotext GrandpaString, $1
-	jump TiffanysPoorClefairy
-
-.Mom:
-	stringtotext MomString, $1
-	jump TiffanysPoorClefairy
-
-.Dad:
-	stringtotext DadString, $1
-	jump TiffanysPoorClefairy
-
-.Sister:
-	stringtotext SisterString, $1
-	jump TiffanysPoorClefairy
-
-.Brother:
-	stringtotext BrotherString, $1
-	jump TiffanysPoorClefairy
-
-TiffanysPoorClefairy:
-	farjump TiffanyItsAwful
-
-TiffanyHasPinkBow:
-	setflag ENGINE_TIFFANY_HAS_PINK_BOW
-	landmarktotext ROUTE_43, $2
-	farjump PhoneScript_FoundItem_Female
-
-; Vance
-
-VancePhoneScript1:
-	trainertotext BIRD_KEEPER, VANCE1, $0
-	checkflag ENGINE_VANCE
-	iftrue VanceWantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
-	iftrue .NotWednesday
-	checkcode VAR_WEEKDAY
-	if_not_equal WEDNESDAY, .NotWednesday
-	checknite
-	iftrue VanceWednesdayNight
-
-.NotWednesday:
-	farjump VanceLookingForward
-
-VanceWantsBattle:
-	landmarktotext ROUTE_44, $2
-	farjump VanceHurryHurry
-
-VancePhoneScript2:
-	trainertotext BIRD_KEEPER, VANCE1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_VANCE
-	iftrue .WantsBattle
-	checkflag ENGINE_VANCE_WEDNESDAY_NIGHT
-	iftrue .WantsBattle
-	farscall PhoneScript_Random3
-	if_equal $0, VanceWantsRematch
-	if_equal $1, VanceWantsRematch
-
-.WantsBattle:
-	farjump Phone_GenericCall_Male
-
-VanceWednesdayNight:
-	setflag ENGINE_VANCE_WEDNESDAY_NIGHT
-
-VanceWantsRematch:
-	landmarktotext ROUTE_44, $2
-	setflag ENGINE_VANCE
-	farjump PhoneScript_WantsToBattle_Male
-
-WiltonPhoneScript1:
-	trainertotext FISHER, WILTON1, $0
-	checkflag ENGINE_WILTON
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_WILTON_THURSDAY_MORNING
-	iftrue .NotThursday
-	checkflag ENGINE_WILTON_HAS_ITEM
-	iftrue .HasItem
-	checkcode VAR_WEEKDAY
-	if_not_equal THURSDAY, .NotThursday
-	checkmorn
-	iftrue WiltonThursdayMorning
-
-.NotThursday:
-	farjump WiltonHaventFoundAnything
-
-.WantsBattle:
-	landmarktotext ROUTE_44, $2
-	farjump WiltonNotBiting
-
-.HasItem:
-	landmarktotext ROUTE_44, $2
-	farjump WiltonWantThis
-
-WiltonPhoneScript2:
-	trainertotext FISHER, WILTON1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_WILTON
-	iftrue .GenericCall
-	checkflag ENGINE_WILTON_THURSDAY_MORNING
-	iftrue .GenericCall
-	checkflag ENGINE_WILTON_HAS_ITEM
-	iftrue .GenericCall
-	farscall PhoneScript_Random2
-	if_equal $0, WiltonWantsBattle
-	farscall PhoneScript_Random2
-	if_equal $0, WiltonHasItem
-
-.GenericCall:
-	farjump Phone_GenericCall_Male
-
-WiltonThursdayMorning:
-	setflag ENGINE_WILTON_THURSDAY_MORNING
-
-WiltonWantsBattle:
-	landmarktotext ROUTE_44, $2
-	setflag ENGINE_WILTON
-	farjump PhoneScript_WantsToBattle_Male
-
-WiltonHasItem:
-	setflag ENGINE_WILTON_HAS_ITEM
-	landmarktotext ROUTE_44, $2
-	clearevent EVENT_WILTON_HAS_ULTRA_BALL
-	clearevent EVENT_WILTON_HAS_GREAT_BALL
-	clearevent EVENT_WILTON_HAS_POKE_BALL
-	random $5
-	if_equal $0, .UltraBall
-	random $3
-	if_equal $0, .GreatBall
-	jump .PokeBall
-
-.UltraBall:
-	setevent EVENT_WILTON_HAS_ULTRA_BALL
-	jump .FoundItem
-
-.GreatBall:
-	setevent EVENT_WILTON_HAS_GREAT_BALL
-	jump .FoundItem
-
-.PokeBall:
-	setevent EVENT_WILTON_HAS_POKE_BALL
-
-.FoundItem:
-	farjump PhoneScript_FoundItem_Male
-
-; Kenji
-
-KenjiPhoneScript1:
-	trainertotext BLACKBELT_T, KENJI3, $0
-	farscall PhoneScript_AnswerPhone_Male
-	farjump KenjiAnswerPhoneScript
-
-KenjiPhoneScript2:
-	trainertotext BLACKBELT_T, KENJI3, $0
-	farscall PhoneScript_GreetPhone_Male
-	farjump KenjiCallingPhoneScript
-
-; Parry
-
-ParryPhoneScript1:
-	trainertotext HIKER, PARRY1, $0
-	checkflag ENGINE_PARRY
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Male
-	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
-	iftrue .WantsRematch
-	checkcode VAR_WEEKDAY
-	if_not_equal FRIDAY, .WantsRematch
-	checkday
-	iftrue ParryFridayDay
-
-.WantsRematch:
-	farjump ParryBattleWithMe
-
-.WantsBattle:
-	landmarktotext ROUTE_45, $2
-	farjump ParryHaventYouGottenTo
-
-ParryPhoneScript2:
-	trainertotext HIKER, PARRY1, $0
-	farscall PhoneScript_GreetPhone_Male
-	checkflag ENGINE_PARRY
-	iftrue .GenericCall
-	checkflag ENGINE_PARRY_FRIDAY_AFTERNOON
-	iftrue .GenericCall
-	farscall PhoneScript_Random2
-	if_equal $0, ParryWantsBattle
-	if_equal $1, ParryWantsBattle
-
-.GenericCall:
-	farjump Phone_GenericCall_Male
-
-ParryFridayDay:
-	setflag ENGINE_PARRY_FRIDAY_AFTERNOON
-
-ParryWantsBattle:
-	landmarktotext ROUTE_45, $2
-	setflag ENGINE_PARRY
-	farjump PhoneScript_WantsToBattle_Male
-
-; Erin
-
-ErinPhoneScript1:
-	trainertotext PICNICKER, ERIN1, $0
-	checkflag ENGINE_ERIN
-	iftrue .WantsBattle
-	farscall PhoneScript_AnswerPhone_Female
-	checkflag ENGINE_ERIN_SATURDAY_NIGHT
-	iftrue .NotSaturday
-	checkcode VAR_WEEKDAY
-	if_not_equal SATURDAY, .NotSaturday
-	checknite
-	iftrue ErinSaturdayNight
-
-.NotSaturday:
-	farjump ErinWorkingHardScript
-
-.WantsBattle:
-	landmarktotext ROUTE_46, $2
-	farjump ErinComeBattleScript
-
-ErinPhoneScript2:
-	trainertotext PICNICKER, ERIN1, $0
-	farscall PhoneScript_GreetPhone_Female
-	checkflag ENGINE_ERIN
-	iftrue .GenericCall
-	checkflag ENGINE_ERIN_SATURDAY_NIGHT
-	iftrue .GenericCall
-	farscall PhoneScript_Random3
-	if_equal $0, ErinWantsBattle
-	if_equal $1, ErinWantsBattle
-
-.GenericCall:
-	farjump Phone_GenericCall_Female
-
-ErinSaturdayNight:
-	setflag ENGINE_ERIN_SATURDAY_NIGHT
-
-ErinWantsBattle:
-	landmarktotext ROUTE_46, $2
-	setflag ENGINE_ERIN
-	farjump PhoneScript_WantsToBattle_Female
--- a/engine/phone_scripts_generic.asm
+++ /dev/null
@@ -1,1266 +1,0 @@
-PhoneScript_Random2:
-	random 2
-	end
-
-PhoneScript_Random3:
-	random 3
-	end
-
-PhoneScript_Random4:
-	random 4
-	end
-
-PhoneScript_Random5:
-	random 5
-	end
-
-PhoneScript_Random11:
-	random 11
-	end
-
-PhoneScript_AnswerPhone_Male:
-	checkday
-	iftrue PhoneScript_AnswerPhone_Male_Day
-	checknite
-	iftrue PhoneScript_AnswerPhone_Male_Nite
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4dc5
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b5073
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b5270
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b55ae
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b589a
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5a3b
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5c10
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b5f7a
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b60f5
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b638c
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b6454
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b659d
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b67e2
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b69a8
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6b39
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6c96
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7019
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b71d5
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b730b
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b73c7
-	buttonsound
-	end
-
-PhoneScript_AnswerPhone_Male_Day:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4ded
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b509b
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b52a5
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b55da
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b58c2
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5a74
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5c63
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b5f9e
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b611b
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b63a8
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b647e
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b65c7
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b680e
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b69d2
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6b65
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6cc6
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7057
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b71fc
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b7331
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b73ef
-	buttonsound
-	end
-
-PhoneScript_AnswerPhone_Male_Nite:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4e16
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b50c2
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b52cc
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b55fc
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b58ea
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5a9f
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5cb6
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b5fc9
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b6149
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b63c4
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b64a8
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b65e3
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b6836
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b69f8
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6b92
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6cf6
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7092
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b722a
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b7357
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b7417
-	buttonsound
-	end
-
-PhoneScript_AnswerPhone_Female:
-	checkday
-	iftrue PhoneScript_AnswerPhone_Female_Day
-	checknite
-	iftrue PhoneScript_AnswerPhone_Female_Nite
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b4f21
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b53f7
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b5702
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5d9f
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b626a
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b66c8
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6e7c
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b751a
-	buttonsound
-	end
-
-PhoneScript_AnswerPhone_Female_Day:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b4f4d
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b5424
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b572e
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5dcc
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b6296
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b66ec
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6ea6
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b7548
-	buttonsound
-	end
-
-PhoneScript_AnswerPhone_Female_Nite:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b4f75
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b5446
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b575a
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5df8
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b62c5
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b6713
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6ec9
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b756f
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Male:
-	checkday
-	iftrue PhoneScript_GreetPhone_Male_Day
-	checknite
-	iftrue PhoneScript_GreetPhone_Male_Nite
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4e3e
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b50e9
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b5301
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b5628
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b5912
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5ad8
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5d09
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b5ff6
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b616e
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b63e3
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b64d2
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b660d
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b6862
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b6a22
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6bb9
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6d26
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b70e7
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b725c
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b737f
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b743f
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Male_Day:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4e72
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b511a
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b5335
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b564c
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b5948
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5b0b
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5d21
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b6017
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b618f
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b6407
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b6506
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b6624
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b6890
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b6a56
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6bef
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6d57
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7112
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b7283
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b7397
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b746f
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Male_Nite:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_SAILOR_HUEY, .Huey
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_JUGGLER_IRWIN, .Irwin
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_BLACKBELT_KENJI, .Kenji
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4e9e
-	buttonsound
-	end
-
-.Huey:
-	farwritetext UnknownText_0x1b5154
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b535f
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b5670
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b597c
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5b37
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5d39
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b6041
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b61bd
-	buttonsound
-	end
-
-.Irwin:
-	farwritetext UnknownText_0x1b642c
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b6539
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b663b
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b68ba
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b6a8b
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6c23
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6d88
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7132
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b72a5
-	buttonsound
-	end
-
-.Kenji:
-	farwritetext UnknownText_0x1b73af
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b749b
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Female:
-	checkday
-	iftrue PhoneScript_GreetPhone_Female_Day
-	checknite
-	iftrue PhoneScript_GreetPhone_Female_Nite
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b4fa1
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b5472
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b5786
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5e25
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b62f1
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b6738
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6ef3
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b758f
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Female_Day:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b4fda
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b54a6
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b57b7
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5e59
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b630e
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b6757
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6f1c
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b75ac
-	buttonsound
-	end
-
-PhoneScript_GreetPhone_Female_Nite:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b5004
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b54d4
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b57e8
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5e8e
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b6331
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b6776
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6f37
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b75c9
-	buttonsound
-	end
-
-PhoneScript_Generic_Male:
-	checkcode VAR_CALLERID
-	if_equal PHONE_SCHOOLBOY_JACK, .Jack
-	if_equal PHONE_COOLTRAINERM_GAVEN, .Gaven
-	if_equal PHONE_BIRDKEEPER_JOSE, .Jose
-	if_equal PHONE_YOUNGSTER_JOEY, .Joey
-	if_equal PHONE_BUG_CATCHER_WADE, .Wade
-	if_equal PHONE_FISHER_RALPH, .Ralph
-	if_equal PHONE_HIKER_ANTHONY, .Anthony
-	if_equal PHONE_CAMPER_TODD, .Todd
-	if_equal PHONE_BUG_CATCHER_ARNIE, .Arnie
-	if_equal PHONE_SCHOOLBOY_ALAN, .Alan
-	if_equal PHONE_SCHOOLBOY_CHAD, .Chad
-	if_equal PHONE_POKEFANM_DEREK, .Derek
-	if_equal PHONE_FISHER_TULLY, .Tully
-	if_equal PHONE_POKEMANIAC_BRENT, .Brent
-	if_equal PHONE_BIRDKEEPER_VANCE, .Vance
-	if_equal PHONE_FISHER_WILTON, .Wilton
-	if_equal PHONE_HIKER_PARRY, .Parry
-
-.Jack:
-	farwritetext UnknownText_0x1b4ecd
-	buttonsound
-	end
-
-.Unknown:
-	farwritetext UnknownText_0x1b518b
-	buttonsound
-	end
-
-.Gaven:
-	farwritetext UnknownText_0x1b5393
-	buttonsound
-	end
-
-.Jose:
-	farwritetext UnknownText_0x1b5694
-	buttonsound
-	end
-
-.Joey:
-	farwritetext UnknownText_0x1b59b2
-	buttonsound
-	end
-
-.Wade:
-	farwritetext UnknownText_0x1b5b68
-	buttonsound
-	end
-
-.Ralph:
-	farwritetext UnknownText_0x1b5d51
-	buttonsound
-	end
-
-.Anthony:
-	farwritetext UnknownText_0x1b606f
-	buttonsound
-	end
-
-.Todd:
-	farwritetext UnknownText_0x1b61f2
-	buttonsound
-	end
-
-.Arnie:
-	farwritetext UnknownText_0x1b656c
-	buttonsound
-	end
-
-.Alan:
-	farwritetext UnknownText_0x1b6652
-	buttonsound
-	end
-
-.Chad:
-	farwritetext UnknownText_0x1b68e8
-	buttonsound
-	end
-
-.Derek:
-	farwritetext UnknownText_0x1b6ac2
-	buttonsound
-	end
-
-.Tully:
-	farwritetext UnknownText_0x1b6c56
-	buttonsound
-	end
-
-.Brent:
-	farwritetext UnknownText_0x1b6db9
-	buttonsound
-	end
-
-.Vance:
-	farwritetext UnknownText_0x1b7161
-	buttonsound
-	end
-
-.Wilton:
-	farwritetext UnknownText_0x1b72d0
-	buttonsound
-	end
-
-.Parry:
-	farwritetext UnknownText_0x1b74c8
-	buttonsound
-	end
-
-PhoneScript_Generic_Female:
-	checkcode VAR_CALLERID
-	if_equal PHONE_POKEFAN_BEVERLY, .Beverly
-	if_equal PHONE_COOLTRAINERF_BETH, .Beth
-	if_equal PHONE_COOLTRAINERF_REENA, .Reena
-	if_equal PHONE_PICNICKER_LIZ, .Liz
-	if_equal PHONE_PICNICKER_GINA, .Gina
-	if_equal PHONE_LASS_DANA, .Dana
-	if_equal PHONE_PICNICKER_TIFFANY, .Tiffany
-	if_equal PHONE_PICNICKER_ERIN, .Erin
-
-.Beverly:
-	farwritetext UnknownText_0x1b502b
-	buttonsound
-	end
-
-.Beth:
-	farwritetext UnknownText_0x1b5510
-	buttonsound
-	end
-
-.Reena:
-	farwritetext UnknownText_0x1b5819
-	buttonsound
-	end
-
-.Liz:
-	farwritetext UnknownText_0x1b5ebe
-	buttonsound
-	end
-
-.Gina:
-	farwritetext UnknownText_0x1b6352
-	buttonsound
-	end
-
-.Dana:
-	farwritetext UnknownText_0x1b6795
-	buttonsound
-	end
-
-.Tiffany:
-	farwritetext UnknownText_0x1b6f60
-	buttonsound
-	end
-
-.Erin:
-	farwritetext UnknownText_0x1b75e5
-	buttonsound
-	end
-
-PhoneScript_MonFlavorText:
-	special RandomPhoneMon
-	farscall PhoneScript_Random2
-	if_equal $0, .TooEnergetic
-	farwritetext UnknownText_0x1b518b
-	buttonsound
-	farjump PhoneScript_HangupText_Male
-
-.TooEnergetic:
-	farjump .unnecessary
-
-.unnecessary
-	farwritetext UnknownText_0x1b522b
-	buttonsound
-	farjump PhoneScript_HangupText_Male
-; be643
-
-
-GrandmaString: db "Grandma@"
-GrandpaString: db "Grandpa@"
-MomString: db "Mom@"
-DadString: db "Dad@"
-SisterString: db "Sister@"
-BrotherString: db "Brother@"
-
--- a/main.asm
+++ b/main.asm
@@ -4638,7 +4638,7 @@
 
 SECTION "bank24", ROMX
 
-INCLUDE "engine/phone.asm"
+INCLUDE "engine/phone/phone.asm"
 INCLUDE "engine/timeset.asm"
 INCLUDE "engine/pokegear.asm"
 INCLUDE "engine/fish.asm"
@@ -4647,9 +4647,9 @@
 
 SECTION "Phone Engine", ROMX
 
-INCLUDE "engine/phone_callers.asm"
-INCLUDE "engine/phone_gossip.asm"
-INCLUDE "engine/buena_phone_scripts.asm"
+INCLUDE "engine/phone/phone_callers.asm"
+INCLUDE "engine/phone/phone_gossip.asm"
+INCLUDE "engine/phone/buenas_password.asm"
 
 
 SECTION "Phone Text", ROMX
@@ -4683,8 +4683,8 @@
 SECTION "bank2F", ROMX
 
 INCLUDE "engine/std_scripts.asm"
-INCLUDE "engine/phone_scripts.asm"
-INCLUDE "engine/phone_scripts_generic.asm"
+INCLUDE "engine/phone/phone_scripts.asm"
+INCLUDE "engine/phone/generic_calls.asm"
 
 TalkToTrainerScript:: ; 0xbe66a
 	faceplayer