shithub: pokered

Download patch

ref: 24c01b09bb2b617812bd826d1cf9ab5e3ec6a023
parent: 4e4e72d02a5a202daea3a73363d2a4c3ba34e724
author: U-Fish-PC\Daniel <[email protected]>
date: Sun May 18 10:19:10 EDT 2014

Pull map scripts out of main.asm

--- a/data/hidden_objects.asm
+++ b/data/hidden_objects.asm
@@ -608,7 +608,8 @@
 	db $FF
 Mansion2HiddenObjects: ; 46f38 (11:6f38)
 	db $0b,$02,$04 ; XXX, y, x
-	dbw Bank(Func_52037), Func_52037
+	db Bank(Mansion2Script_52037)
+	dw Mansion2Script_52037
 	db $FF
 Mansion3HiddenObjects: ; 46f3f (11:6f3f)
 	db $09,$01,MAX_REVIVE
--- a/main.asm
+++ b/main.asm
@@ -10333,8 +10333,8 @@
 	ld [$d127], a
 	xor a
 	ld [$cc49], a
-	ld b, BANK(Func_4fda5)
-	ld hl, Func_4fda5
+	ld b, BANK(_GivePokemon)
+	ld hl, _GivePokemon
 	jp Bankswitch
 
 GenRandom:: ; 3e5c (0:3e5c)
@@ -29002,2005 +29002,24 @@
 	ld [H_CURRENTPRESSEDBUTTONS], a
 	ret
 
-PalletTownScript: ; 18e5b (6:4e5b)
-	ld a,[$D74B]
-	bit 4,a
-	jr z,.next
-	ld hl,$D747
-	set 6,[hl]
-.next
-	call EnableAutoTextBoxDrawing
-	ld hl,PalletTownScriptPointers
-	ld a,[W_PALLETTOWNCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/pallettown.asm"
 
-PalletTownScriptPointers: ; 18e73 (6:4e73)
-	dw PalletTownScript0
-	dw PalletTownScript1
-	dw PalletTownScript2
-	dw PalletTownScript3
-	dw PalletTownScript4
-	dw PalletTownScript5
-	dw PalletTownScript6
+INCLUDE "scripts/viridiancity.asm"
 
-PalletTownScript0: ; 18e81 (6:4e81)
-	ld a,[$D747]
-	bit 0,a
-	ret nz
-	ld a,[W_YCOORD]
-	cp 1 ; is player near north exit?
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS],a
-	ld a,4
-	ld [$D528],a
-	ld a,$FF
-	call PlaySound ; stop music
-	ld a, BANK(Music_MeetProfOak)
-	ld c,a ; song bank
-	ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music
-	call PlayMusic ; plays music
-	ld a,$FC
-	ld [wJoypadForbiddenButtonsMask],a
-	ld hl,$D74B
-	set 7,[hl]
+INCLUDE "scripts/pewtercity.asm"
 
-	; trigger the next script
-	ld a,1
-	ld [W_PALLETTOWNCURSCRIPT],a
-	ret
+INCLUDE "scripts/ceruleancity.asm"
 
-PalletTownScript1: ; 18eb2 (6:4eb2)
-	xor a
-	ld [$CF0D],a
-	ld a,1
-	ld [$FF8C],a
-	call DisplayTextID
-	ld a,$FF
-	ld [wJoypadForbiddenButtonsMask],a
-	ld a,0
-	ld [$CC4D],a
-	ld a,$15
-	call Predef
-
-	; trigger the next script
-	ld a,2
-	ld [W_PALLETTOWNCURSCRIPT],a
-	ret
-
-PalletTownScript2: ; 18ed2 (6:4ed2)
-	ld a,1
-	ld [$FF8C],a
-	ld a,4
-	ld [$FF8D],a
-	call Func_34a6
-	call Delay3
-	ld a,1
-	ld [W_YCOORD],a
-	ld a,1
-	ld [$FF9B],a
-	ld a,1
-	swap a
-	ld [$FF95],a
-	ld a,$22
-	call Predef
-	ld hl,$FF95
-	dec [hl]
-	ld a,$20
-	call Predef ; load Oak’s movement into $CC97
-	ld de,$CC97
-	ld a,1 ; oak
-	ld [$FF8C],a
-	call MoveSprite
-	ld a,$FF
-	ld [wJoypadForbiddenButtonsMask],a
-
-	; trigger the next script
-	ld a,3
-	ld [W_PALLETTOWNCURSCRIPT],a
-	ret
-
-PalletTownScript3: ; 18f12 (6:4f12)
-	ld a,[$D730]
-	bit 0,a
-	ret nz
-	xor a
-	ld [$C109],a
-	ld a,1
-	ld [$CF0D],a
-	ld a,$FC
-	ld [wJoypadForbiddenButtonsMask],a
-	ld a,1
-	ld [$FF8C],a
-	call DisplayTextID
-	ld a,$FF
-	ld [wJoypadForbiddenButtonsMask],a
-	ld a,1
-	ld [$CF13],a
-	xor a
-	ld [$CF10],a
-	ld a,1
-	ld [$CC57],a
-	ld a,[H_LOADEDROMBANK]
-	ld [$CC58],a
-
-	; trigger the next script
-	ld a,4
-	ld [W_PALLETTOWNCURSCRIPT],a
-	ret
-
-PalletTownScript4: ; 18f4b (6:4f4b)
-	ld a,[$CC57]
-	and a
-	ret nz
-
-	; trigger the next script
-	ld a,5
-	ld [W_PALLETTOWNCURSCRIPT],a
-	ret
-
-PalletTownScript5: ; 18f56 (6:4f56)
-	ld a,[$D74A]
-	bit 2,a
-	jr nz,.next
-	and 3
-	cp 3
-	jr nz,.next
-	ld hl,$D74A
-	set 2,[hl]
-	ld a,$27
-	ld [$CC4D],a
-	ld a,$11
-	call Predef
-	ld a,$28
-	ld [$CC4D],a
-	ld a,$15
-	jp Predef
-.next
-	ld a,[$D74B]
-	bit 4,a
-	ret z
-	ld hl,$D74B
-	set 6,[hl]
-PalletTownScript6: ; 18f87 (6:4f87)
-	ret
-
-PalletTownTextPointers: ; 18f88 (6:4f88)
-	dw PalletTownText1
-	dw PalletTownText2
-	dw PalletTownText3
-	dw PalletTownText4
-	dw PalletTownText5
-	dw PalletTownText6
-	dw PalletTownText7
-
-PalletTownText1: ; 18f96 (6:4f96)
-	db 8
-	ld a,[$CF0D]
-	and a
-	jr nz,.next
-	ld a,1
-	ld [$CC3C],a
-	ld hl,OakAppearsText
-	jr .done
-.next
-	ld hl,OakWalksUpText
-.done
-	call PrintText
-	jp TextScriptEnd
-
-OakAppearsText: ; 18fb0 (6:4fb0)
-	TX_FAR _OakAppearsText
-	db 8
-	ld c,10
-	call DelayFrames
-	xor a
-	ld [$CD4F],a
-	ld [$CD50],a
-	ld a,$4C
-	call Predef ; display ! over head
-	ld a,4
-	ld [$D528],a
-	jp TextScriptEnd
-
-OakWalksUpText: ; 18fce (6:4fce)
-	TX_FAR _OakWalksUpText
-	db "@"
-
-PalletTownText2: ; 0x18fd3 girl
-	TX_FAR _PalletTownText2
-	db "@"
-
-PalletTownText3: ; 0x18fd8 fat man
-	TX_FAR _PalletTownText3
-	db "@"
-
-PalletTownText4: ; 0x18fdd sign by lab
-	TX_FAR _PalletTownText4
-	db "@"
-
-PalletTownText5: ; 0x18fe2 sign by fence
-	TX_FAR _PalletTownText5
-	db "@"
-
-PalletTownText6: ; 0x18fe7 sign by Red’s house
-	TX_FAR _PalletTownText6
-	db "@"
-
-PalletTownText7: ; 0x18fec sign by Blue’s house
-	TX_FAR _PalletTownText7
-	db "@"
-
-ViridianCityScript: ; 18ff1 (6:4ff1)
-	call EnableAutoTextBoxDrawing
-	ld hl, ViridianCityScriptPointers
-	ld a, [W_VIRIDIANCITYCURSCRIPT]
-	jp CallFunctionInTable
-
-ViridianCityScriptPointers: ; 18ffd (6:4ffd)
-	dw ViridianCityScript0
-	dw ViridianCityScript1
-	dw ViridianCityScript2
-	dw ViridianCityScript3
-
-ViridianCityScript0: ; 19005 (6:5005)
-	call ViridianCityScript_1900b
-	jp ViridianCityScript_1903d
-
-ViridianCityScript_1900b: ; 1900b (6:500b)
-	ld a, [$d74c]
-	bit 0, a
-	ret nz
-	ld a, [W_OBTAINEDBADGES]
-	cp %01111111
-	jr nz, .asm_1901e ; 0x19016 $6
-	ld hl, $d74c
-	set 0, [hl]
-	ret
-.asm_1901e
-	ld a, [W_YCOORD]
-	cp $8
-	ret nz
-	ld a, [W_XCOORD]
-	cp $20
-	ret nz
-	ld a, $e
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	call ViridianCityScript_190cf
-	ld a, $3
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	ret
-
-ViridianCityScript_1903d: ; 1903d (6:503d)
-	ld a, [$d74b]
-	bit 5, a
-	ret nz
-	ld a, [W_YCOORD]
-	cp $9
-	ret nz
-	ld a, [W_XCOORD]
-	cp $13
-	ret nz
-	ld a, $5
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	call ViridianCityScript_190cf
-	ld a, $3
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	ret
-
-ViridianCityScript1: ; 19062 (6:5062)
-	ld a, [$c134]
-	ld [$ffeb], a
-	ld a, [$c136]
-	ld [$ffec], a
-	ld a, [$c234]
-	ld [$ffed], a
-	ld a, [$c235]
-	ld [$ffee], a
-	xor a
-	ld [wListScrollOffset], a
-
-	; set up battle for Old Man
-	ld a, $1
-	ld [W_BATTLETYPE], a
-	ld a, 5
-	ld [W_CURENEMYLVL], a
-	ld a, WEEDLE
-	ld [W_CUROPPONENT], a
-	ld a, $2
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	ret
-
-ViridianCityScript2: ; 1908f (6:508f)
-	ld a, [$ffeb]
-	ld [$c134], a
-	ld a, [$ffec]
-	ld [$c136], a
-	ld a, [$ffed]
-	ld [$c234], a
-	ld a, [$ffee]
-	ld [$c235], a
-	call UpdateSprites
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $f
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [W_BATTLETYPE], a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	ret
-
-ViridianCityScript3: ; 190c1 (6:50c1)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	ld a, 0
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	ret
-
-ViridianCityScript_190cf: ; 190cf (6:50cf)
-	call Func_3486
-	ld a, $1
-	ld [$cd38], a
-	ld a, $80
-	ld [$ccd3], a
-	xor a
-	ld [$c109], a
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-
-ViridianCityTextPointers: ; 190e4 (6:50e4)
-	dw ViridianCityText1
-	dw ViridianCityText2
-	dw ViridianCityText3
-	dw ViridianCityText4
-	dw ViridianCityText5
-	dw ViridianCityText6
-	dw ViridianCityText7
-	dw ViridianCityText8
-	dw ViridianCityText9
-	dw ViridianCityText10
-	dw MartSignText
-	dw PokeCenterSignText
-	dw ViridianCityText13
-	dw ViridianCityText14
-	dw ViridianCityText15
+INCLUDE "scripts/vermilioncity.asm"
 
-ViridianCityText1: ; 19102 (6:5102)
-	TX_FAR _ViridianCityText1
-	db "@"
+INCLUDE "scripts/celadoncity.asm"
 
-ViridianCityText2: ; 19107 (6:5107)
-	db $08 ; asm
-	ld a, [W_OBTAINEDBADGES]
-	cp %01111111
-	ld hl, UnnamedText_19127
-	jr z, .asm_ae9fe ; 0x19110
-	ld a, [$d751]
-	bit 1, a
-	jr nz, .asm_ae9fe ; 0x19117
-	ld hl, UnnamedText_19122
-.asm_ae9fe ; 0x1911c
-	call PrintText
-	jp TextScriptEnd
+INCLUDE "scripts/fuchsiacity.asm"
 
-UnnamedText_19122: ; 19122 (6:5122)
-	TX_FAR _UnnamedText_19122
-	db "@"
-
-UnnamedText_19127: ; 19127 (6:5127)
-	TX_FAR _UnnamedText_19127
-	db "@"
-
-ViridianCityText3: ; 1912c (6:512c)
-	db $08 ; asm
-	ld hl, UnnamedText_1914d
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_6dfea ; 0x1913a
-	ld hl, UnnamedText_19157
-	call PrintText
-	jr .asm_d611f ; 0x19142
-.asm_6dfea ; 0x19144
-	ld hl, UnnamedText_19152
-	call PrintText
-.asm_d611f ; 0x1914a
-	jp TextScriptEnd
-
-UnnamedText_1914d: ; 1914d (6:514d)
-	TX_FAR _UnnamedText_1914d
-	db "@"
-
-UnnamedText_19152: ; 19152 (6:5152)
-	TX_FAR _UnnamedText_19152
-	db "@"
-
-UnnamedText_19157: ; 19157 (6:5157)
-	TX_FAR _UnnamedText_19157
-	db "@"
-
-ViridianCityText4: ; 1915c (6:515c)
-	db $08 ; asm
-	ld a, [$d74b]
-	bit 5, a
-	jr nz, .asm_83894 ; 0x19162
-	ld hl, UnnamedText_19175
-	call PrintText
-	jr .asm_700a6 ; 0x1916a
-.asm_83894 ; 0x1916c
-	ld hl, UnnamedText_1917a
-	call PrintText
-.asm_700a6 ; 0x19172
-	jp TextScriptEnd
-
-UnnamedText_19175: ; 19175 (6:5175)
-	TX_FAR _UnnamedText_19175
-	db "@"
-
-UnnamedText_1917a: ; 1917a (6:517a)
-	TX_FAR _UnnamedText_1917a
-	db "@"
-
-ViridianCityText5: ; 1917f (6:517f)
-	db $08 ; asm
-	ld hl, UnnamedText_19191
-	call PrintText
-	call ViridianCityScript_190cf
-	ld a, $3
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_19191: ; 19191 (6:5191)
-	TX_FAR _UnnamedText_19191
-	db "@"
-
-ViridianCityText6: ; 19196 (6:5196)
-	db $08 ; asm
-	ld a, [$d74c]
-	bit 1, a
-	jr nz, .asm_4e5a0 ; 0x1919c
-	ld hl, UnnamedText_191ca
-	call PrintText
-	ld bc, (TM_42 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM42Text
-	call PrintText
-	ld hl, $d74c
-	set 1, [hl]
-	jr .asm_3c73c ; 0x191b7
-.BagFull
-	ld hl, TM42NoRoomText
-	call PrintText
-	jr .asm_3c73c ; 0x191bf
-.asm_4e5a0 ; 0x191c1
-	ld hl, TM42Explanation
-	call PrintText
-.asm_3c73c ; 0x191c7
-	jp TextScriptEnd
-
-UnnamedText_191ca: ; 191ca (6:51ca)
-	TX_FAR _UnnamedText_191ca
-	db "@"
-
-ReceivedTM42Text: ; 191cf (6:51cf)
-	TX_FAR _ReceivedTM42Text
-	db $10, "@"
-
-TM42Explanation: ; 191d5 (6:51d5)
-	TX_FAR _TM42Explanation
-	db "@"
-
-TM42NoRoomText: ; 191da (6:51da)
-	TX_FAR _TM42NoRoomText
-	db "@"
-
-ViridianCityText7: ; 191df (6:51df)
-	db $08 ; asm
-	ld hl, UnnamedText_1920a
-	call PrintText
-	ld c, $2
-	call DelayFrames
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr z, .asm_42f68 ; 0x191f2
-	ld hl, UnnamedText_1920f
-	call PrintText
-	ld a, $1
-	ld [W_VIRIDIANCITYCURSCRIPT], a
-	jr .asm_2413a ; 0x191ff
-.asm_42f68 ; 0x19201
-	ld hl, UnnamedText_19214
-	call PrintText
-.asm_2413a ; 0x19207
-	jp TextScriptEnd
-
-UnnamedText_1920a: ; 1920a (6:520a)
-	TX_FAR _UnnamedText_1920a
-	db "@"
-
-UnnamedText_1920f: ; 1920f (6:520f)
-	TX_FAR _UnnamedText_1920f
-	db "@"
-
-UnnamedText_19214: ; 19214 (6:5214)
-	TX_FAR _UnnamedText_19214
-	db "@"
-
-ViridianCityText15: ; 19219 (6:5219)
-	TX_FAR _UnnamedText_19219
-	db "@"
-
-ViridianCityText8: ; 1921e (6:521e)
-	TX_FAR _ViridianCityText8
-	db "@"
-
-ViridianCityText9: ; 19223 (6:5223)
-	TX_FAR _ViridianCityText9
-	db "@"
-
-ViridianCityText10: ; 19228 (6:5228)
-	TX_FAR _ViridianCityText10
-	db "@"
-
-ViridianCityText13: ; 1922d (6:522d)
-	TX_FAR _ViridianCityText13
-	db "@"
-
-ViridianCityText14: ; 19232 (6:5232)
-	TX_FAR _ViridianCityText14
-	db "@"
-
-PewterCityScript: ; 19237 (6:5237)
-	call EnableAutoTextBoxDrawing
-	ld hl, PewterCityScriptPointers
-	ld a, [W_PEWTERCITYCURSCRIPT]
-	jp CallFunctionInTable
-
-PewterCityScriptPointers: ; 19243 (6:5243)
-	dw PewterCityScript0
-	dw PewterCityScript1
-	dw PewterCityScript2
-	dw PewterCityScript3
-	dw PewterCityScript4
-	dw PewterCityScript5
-	dw PewterCityScript6
-
-PewterCityScript0: ; 19251 (6:5251)
-	xor a
-	ld [W_MUSEUM1FCURSCRIPT], a
-	ld hl, $d754
-	res 0, [hl]
-	call PewterCityScript_1925e
-	ret
-
-PewterCityScript_1925e: ; 1925e (6:525e)
-	ld a, [$d755]
-	bit 7, a
-	ret nz
-	ld hl, CoordsData_19277
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $5
-	ld [$ff8c], a
-	jp DisplayTextID
-
-CoordsData_19277: ; 19277 (6:5277)
-	db $11,$23
-	db $11,$24
-	db $12,$25
-	db $13,$25
-	db $ff
-
-PewterCityScript1: ; 19280 (6:5280)
-	ld a, [$cc57]
-	and a
-	ret nz
-	ld a, $3
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $34
-	ld [$ff8d], a
-	call Func_34b9
-	call Func_2307
-	ld hl, wFlags_0xcd60
-	set 4, [hl]
-	ld a, $d
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $3c
-	ld [$ffeb], a
-	ld a, $30
-	ld [$ffec], a
-	ld a, $c
-	ld [$ffed], a
-	ld a, $11
-	ld [$ffee], a
-	ld a, $3
-	ld [$cf13], a
-	call Func_32f9
-	ld a, $3
-	ld [$ff8c], a
-	ld de, MovementData_PewterMuseumGuyExit ; $52ce
-	call MoveSprite
-	ld a, $2
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-MovementData_PewterMuseumGuyExit: ; 192ce (6:52ce)
-	db $00,$00,$00,$00,$FF
-
-PewterCityScript2: ; 192d3 (6:52d3)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $3
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $3
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-PewterCityScript3: ; 192e9 (6:52e9)
-	ld a, $3
-	ld [$cf13], a
-	call Func_32fe
-	ld a, $3
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-PewterCityScript4: ; 19305 (6:5305)
-	ld a, [$cc57]
-	and a
-	ret nz
-	ld a, $5
-	ld [$ff8c], a
-	ld a, $8
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $18
-	ld [$ff8d], a
-	call Func_34b9
-	call Func_2307
-	ld hl, wFlags_0xcd60
-	set 4, [hl]
-	ld a, $e
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $3c
-	ld [$ffeb], a
-	ld a, $40
-	ld [$ffec], a
-	ld a, $16
-	ld [$ffed], a
-	ld a, $10
-	ld [$ffee], a
-	ld a, $5
-	ld [$cf13], a
-	call Func_32f9
-	ld a, $5
-	ld [$ff8c], a
-	ld de, MovementData_PewterGymGuyExit
-	call MoveSprite
-	ld a, $5
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-MovementData_PewterGymGuyExit: ; 19353 (6:5353)
-	db $C0,$C0,$C0,$C0,$C0,$FF
-
-PewterCityScript5: ; 19359 (6:5359)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $4
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $6
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-PewterCityScript6: ; 1936f (6:536f)
-	ld a, $5
-	ld [$cf13], a
-	call Func_32fe
-	ld a, $4
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_PEWTERCITYCURSCRIPT], a
-	ret
-
-PewterCityTextPointers: ; 1938b (6:538b)
-	dw PewterCityText1
-	dw PewterCityText2
-	dw PewterCityText3
-	dw PewterCityText4
-	dw PewterCityText5
-	dw PewterCityText6
-	dw PewterCityText7
-	dw MartSignText
-	dw PokeCenterSignText
-	dw PewterCityText10
-	dw PewterCityText11
-	dw PewterCityText12
-	dw PewterCityText13
-	dw PewterCityText14
-
-PewterCityText1: ; 193a7 (6:53a7)
-	TX_FAR _PewterCityText1
-	db "@"
-
-PewterCityText2: ; 193ac (6:53ac)
-	TX_FAR _PewterCityText2
-	db "@"
-
-PewterCityText3: ; 193b1 (6:53b1)
-	db $08 ; asm
-	ld hl, UnnamedText_193f1
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_f46a9 ; 0x193bf
-	ld hl, UnnamedText_193f6
-	call PrintText
-	jr .asm_ac429 ; 0x193c7
-.asm_f46a9 ; 0x193c9
-	ld hl, UnnamedText_193fb
-	call PrintText
-	xor a
-	ldh [$b3], a
-	ldh [$b4], a
-	ld [$cf10], a
-	ld a, $2
-	ld [$cc57], a
-	ldh a, [$b8]
-	ld [$cc58], a
-	ld a, $3
-	ld [$cf13], a
-	call Func_32f4
-	ld a, $1
-	ld [W_PEWTERCITYCURSCRIPT], a
-.asm_ac429 ; 0x193ee
-	jp TextScriptEnd
-
-UnnamedText_193f1: ; 193f1 (6:53f1)
-	TX_FAR _UnnamedText_193f1
-	db "@"
-
-UnnamedText_193f6: ; 193f6 (6:53f6)
-	TX_FAR _UnnamedText_193f6
-	db "@"
-
-UnnamedText_193fb: ; 193fb (6:53fb)
-	TX_FAR _UnnamedText_193fb
-	db "@"
-
-PewterCityText13: ; 19400 (6:5400)
-	TX_FAR _PewterCityText13
-	db "@"
-
-PewterCityText4: ; 19405 (6:5405)
-	db $8
-	ld hl, UnnamedText_19427
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	cp $0
-	jr nz, .asm_e4603
-	ld hl, UnnamedText_1942c
-	call PrintText
-	jr .asm_e4604 ; 0x1941c $6
-.asm_e4603
-	ld hl, UnnamedText_19431
-	call PrintText
-.asm_e4604 ; 0x19424
-	jp TextScriptEnd
-
-UnnamedText_19427: ; 19427 (6:5427)
-	TX_FAR _UnnamedText_19427
-	db "@"
-
-UnnamedText_1942c: ; 1942c (6:542c)
-	TX_FAR _UnnamedText_1942c
-	db "@"
-
-UnnamedText_19431: ; 19431 (6:5431)
-	TX_FAR _UnnamedText_19431
-	db "@"
-
-PewterCityText5: ; 19436 (6:5436)
-	db $08 ; asm
-	ld hl, UnnamedText_1945d
-	call PrintText
-	xor a
-	ldh [$b4], a
-	ld [$cf10], a
-	ld a, $3
-	ld [$cc57], a
-	ldh a, [$b8]
-	ld [$cc58], a
-	ld a, $5
-	ld [$cf13], a
-	call Func_32f4
-	ld a, $4
-	ld [W_PEWTERCITYCURSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_1945d: ; 1945d (6:545d)
-	TX_FAR _UnnamedText_1945d
-	db "@"
-
-PewterCityText14: ; 19462 (6:5462)
-
-UnnamedText_19462: ; 19462 (6:5462)
-	TX_FAR _UnnamedText_19462
-	db "@"
-
-PewterCityText6: ; 19467 (6:5467)
-	TX_FAR _PewterCityText6
-	db "@"
-
-PewterCityText7: ; 1946c (6:546c)
-	TX_FAR _PewterCityText7
-	db "@"
-
-PewterCityText10: ; 19471 (6:5471)
-	TX_FAR _PewterCityText10
-	db "@"
-
-PewterCityText11: ; 19476 (6:5476)
-	TX_FAR _PewterCityText11
-	db "@"
-
-PewterCityText12: ; 1947b (6:547b)
-	TX_FAR _PewterCityText12
-	db "@"
-
-CeruleanCityScript: ; 19480 (6:5480)
-	call EnableAutoTextBoxDrawing
-	ld hl, CeruleanCityScriptPointers
-	ld a, [W_CERULEANCITYCURSCRIPT]
-	jp CallFunctionInTable
-
-CeruleanCityScript_1948c: ; 1948c (6:548c)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ld a, $5
-	ld [$cc4d], a
-	ld a, $11
-	jp Predef
-
-CeruleanCityScriptPointers: ; 1949d (6:549d)
-	dw CeruleanCityScript0
-	dw CeruleanCityScript1
-	dw CeruleanCityScript2
-	dw CeruleanCityScript3
-	dw CeruleanCityScript4
-
-CeruleanCityScript4: ; 194a7 (6:54a7)
-	ld a, [W_ISINBATTLE]
-	cp $ff
-	jp z, CeruleanCityScript_1948c
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d75b
-	set 7, [hl]
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ret
-
-CeruleanCityScript0: ; 194c8 (6:54c8)
-	ld a, [$d75b]
-	bit 7, a
-	jr nz, .asm_194f7 ; 0x194cd $28
-	ld hl, CeruleanCityCoords1
-	call ArePlayerCoordsInArray
-	jr nc, .asm_194f7 ; 0x194d5 $20
-	ld a, [$cd3d]
-	cp $1
-	ld a, $8
-	ld b, $0
-	jr nz, .asm_194e6 ; 0x194e0 $4
-	ld a, $4
-	ld b, $4
-.asm_194e6
-	ld [$d528], a
-	ld a, b
-	ld [$c129], a
-	call Delay3
-	ld a, $2
-	ld [$ff8c], a
-	jp DisplayTextID
-.asm_194f7
-	ld a, [$d75a]
-	bit 0, a
-	ret nz
-	ld hl, CeruleanCityCoords2
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, [$d700]
-	and a
-	jr z, .asm_19512 ; 0x19508 $8
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-.asm_19512
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [W_XCOORD]
-	cp $14
-	jr z, .asm_19535 ; 0x19526 $d
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $5
-	ld [$ff8b], a
-	call Func_3500
-	ld [hl], $19
-.asm_19535
-	ld a, $5
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld de, CeruleanCityMovement1
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $1
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ret
-
-CeruleanCityCoords1: ; 1954f (6:554f)
-	db $07,$1e
-	db $09,$1e
-	db $ff
-
-CeruleanCityCoords2: ; 19554 (6:5554)
-	db $06,$14
-	db $06,$15
-	db $ff
-
-CeruleanCityMovement1: ; 19559 (6:5559)
-	db $00,$00,$00,$FF
-
-CeruleanCityScript_1955d: ; 1955d (6:555d)
-	ld a,1
-	ld [$ff8c],a
-	xor a
-	ld [$ff8d],a
-	jp Func_34a6 ; face object
-
-CeruleanCityScript1: ; 19567 (6:5567)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_1966d
-	ld de, UnnamedText_19672
-	call PreBattleSaveRegisters
-	ld a, SONY1 + $c8
-	ld [W_CUROPPONENT], a
-
-	; select which team to use during the encounter
-	ld a, [W_RIVALSTARTER]
-	cp SQUIRTLE
-	jr nz, .NotSquirtle ; 0x19592 $4
-	ld a, $7
-	jr .done
-.NotSquirtle
-	cp BULBASAUR
-	jr nz, .Charmander ; 0x1959a $4
-	ld a, $8
-	jr .done
-.Charmander
-	ld a, $9
-.done
-	ld [W_TRAINERNO], a
-
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	call CeruleanCityScript_1955d
-	ld a, $2
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ret
-
-CeruleanCityScript2: ; 195b1 (6:55b1)
-	ld a, [$d057]
-	cp $ff
-	jp z, CeruleanCityScript_1948c
-	call CeruleanCityScript_1955d
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d75a
-	set 0, [hl]
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $1
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	ld a, [W_XCOORD]
-	cp $14
-	jr nz, .asm_195f0 ; 0x195e9 $5
-	ld de, CeruleanCityMovement4
-	jr .asm_195f3 ; 0x195ee $3
-.asm_195f0
-	ld de, CeruleanCityMovement3
-.asm_195f3
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $3
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ret
-
-CeruleanCityMovement3: ; 19600 (6:5600)
-	db $80,$00,$00,$00,$00,$00,$00,$FF
-
-CeruleanCityMovement4: ; 19608 (6:5608)
-	db $c0,$00,$00,$00,$00,$00,$00,$FF
-
-CeruleanCityScript3: ; 19610 (6:5610)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $5
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	call Func_2307
-	ld a, $0
-	ld [W_CERULEANCITYCURSCRIPT], a
-	ret
-
-CeruleanCityTextPointers: ; 1962d (6:562d)
-	dw CeruleanCityText1
-	dw CeruleanCityText2
-	dw CeruleanCityText3
-	dw CeruleanCityText4
-	dw CeruleanCityText5
-	dw CeruleanCityText6
-	dw CeruleanCityText7
-	dw CeruleanCityText8
-	dw CeruleanCityText9
-	dw CeruleanCityText10
-	dw CeruleanCityText11
-	dw CeruleanCityText12
-	dw CeruleanCityText13
-	dw MartSignText
-	dw PokeCenterSignText
-	dw CeruleanCityText16
-	dw CeruleanCityText17
-
-CeruleanCityText1: ; 1964f (6:564f)
-	db $08 ; asm
-	ld a, [$d75a] ; rival battle flag
-	bit 0, a
-	; do pre-battle text
-	jr z, .PreBattleText
-	; or talk about bill
-	ld hl, UnnamedText_19677
-	call PrintText
-	jr .end ; 0x1965d
-.PreBattleText ; 0x1965f
-	ld hl, UnnamedText_19668
-	call PrintText
-.end ; 0x19665
-	jp TextScriptEnd
-
-UnnamedText_19668: ; 19668 (6:5668)
-	TX_FAR _UnnamedText_19668
-	db "@"
-
-UnnamedText_1966d: ; 1966d (6:566d)
-	TX_FAR _UnnamedText_1966d
-	db "@"
-
-UnnamedText_19672: ; 19672 (6:5672)
-	TX_FAR _UnnamedText_19672
-	db "@"
-
-UnnamedText_19677: ; 19677 (6:5677)
-	TX_FAR _UnnamedText_19677
-	db "@"
-
-CeruleanCityText2: ; 1967c (6:567c)
-	db $8
-	ld a, [$d75b]
-	bit 7, a
-	jr nz, .asm_4ca20 ; 0x19682 $29
-	ld hl, UnnamedText_196d9
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_196ee
-	ld de, UnnamedText_196ee
-	call PreBattleSaveRegisters
-	ld a, [$ff8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $4
-	ld [W_CERULEANCITYCURSCRIPT], a
-	jp TextScriptEnd
-.asm_4ca20 ; 0x196ad
-	ld hl, UnnamedText_196f3
-	call PrintText
-	ld bc, $e401
-	call GiveItem
-	jr c, .Success
-	ld hl, TM28NoRoomText
-	call PrintText
-	jr .Done
-.Success
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, ReceivedTM28Text
-	call PrintText
-	ld b, BANK(Func_74872)
-	ld hl, Func_74872
-	call Bankswitch
-.Done
-	jp TextScriptEnd
-
-UnnamedText_196d9: ; 196d9 (6:56d9)
-	TX_FAR _UnnamedText_196d9
-	db "@"
-
-ReceivedTM28Text: ; 196de (6:56de)
-	TX_FAR _ReceivedTM28Text
-	db $0B
-	TX_FAR _ReceivedTM28Text2
-	db $0D, "@"
-
-TM28NoRoomText: ; 196e9 (6:56e9)
-	TX_FAR _TM28NoRoomText
-	db "@"
-
-UnnamedText_196ee: ; 196ee (6:56ee)
-	TX_FAR _UnnamedText_196ee
-	db "@"
-
-UnnamedText_196f3: ; 196f3 (6:56f3)
-	TX_FAR _UnnamedText_196f3
-	db "@"
-
-CeruleanCityText3: ; 196f8 (6:56f8)
-	TX_FAR _CeruleanCityText3
-	db "@"
-
-CeruleanCityText4: ; 196fd (6:56fd)
-	TX_FAR _CeruleanCityText4
-	db "@"
-
-CeruleanCityText5: ; 19702 (6:5702)
-	TX_FAR _CeruleanCityText5
-	db "@"
-
-CeruleanCityText11: ; 19707 (6:5707)
-CeruleanCityText6: ; 19707 (6:5707)
-	TX_FAR _CeruleanCityText6
-	db "@"
-
-CeruleanCityText7: ; 1970c (6:570c)
-	db $08 ; asm
-	ldh a, [$d3]
-	cp $b4
-	jr c, .asm_e9fc9 ; 0x19711
-	ld hl, UnnamedText_19730
-	call PrintText
-	jr .asm_d486e ; 0x19719
-.asm_e9fc9 ; 0x1971b
-	cp $64
-	jr c, .asm_df99b ; 0x1971d
-	ld hl, UnnamedText_19735
-	call PrintText
-	jr .asm_d486e ; 0x19725
-.asm_df99b ; 0x19727
-	ld hl, UnnamedText_1973a
-	call PrintText
-.asm_d486e ; 0x1972d
-	jp TextScriptEnd
-
-UnnamedText_19730: ; 19730 (6:5730)
-	TX_FAR _UnnamedText_19730
-	db "@"
-
-UnnamedText_19735: ; 19735 (6:5735)
-	TX_FAR _UnnamedText_19735
-	db "@"
-
-UnnamedText_1973a: ; 1973a (6:573a)
-	TX_FAR _UnnamedText_1973a
-	db "@"
-
-CeruleanCityText8: ; 1973f (6:573f)
-	db $08 ; asm
-	ldh a, [$d3]
-	cp $b4
-	jr c, .asm_e28da ; 0x19744
-	ld hl, UnnamedText_1976f
-	call PrintText
-	jr .asm_f2f38 ; 0x1974c
-.asm_e28da ; 0x1974e
-	cp $78
-	jr c, .asm_15d08 ; 0x19750
-	ld hl, UnnamedText_19774
-	call PrintText
-	jr .asm_f2f38 ; 0x19758
-.asm_15d08 ; 0x1975a
-	cp $3c
-	jr c, .asm_d7fea ; 0x1975c
-	ld hl, UnnamedText_19779
-	call PrintText
-	jr .asm_f2f38 ; 0x19764
-.asm_d7fea ; 0x19766
-	ld hl, UnnamedText_1977e
-	call PrintText
-.asm_f2f38 ; 0x1976c
-	jp TextScriptEnd
-
-UnnamedText_1976f: ; 1976f (6:576f)
-	TX_FAR _UnnamedText_1976f
-	db "@"
-
-UnnamedText_19774: ; 19774 (6:5774)
-	TX_FAR _UnnamedText_19774
-	db "@"
-
-UnnamedText_19779: ; 19779 (6:5779)
-	TX_FAR _UnnamedText_19779
-	db "@"
-
-UnnamedText_1977e: ; 1977e (6:577e)
-	TX_FAR _UnnamedText_1977e
-	db "@"
-
-CeruleanCityText9: ; 19783 (6:5783)
-	TX_FAR _CeruleanCityText9
-	db "@"
-
-CeruleanCityText10: ; 19788 (6:5788)
-	TX_FAR _CeruleanCityText10
-	db "@"
-
-CeruleanCityText12: ; 1978d (6:578d)
-	TX_FAR _CeruleanCityText12
-	db "@"
-
-CeruleanCityText13: ; 19792 (6:5792)
-	TX_FAR _CeruleanCityText13
-	db "@"
-
-CeruleanCityText16: ; 19797 (6:5797)
-	TX_FAR _CeruleanCityText16
-	db "@"
-
-CeruleanCityText17: ; 1979c (6:579c)
-	TX_FAR _CeruleanCityText17
-	db "@"
-
-VermilionCityScript: ; 197a1 (6:57a1)
-	call EnableAutoTextBoxDrawing
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	push hl
-	call nz, VermilionCityScript_197cb
-	pop hl
-	bit 5, [hl]
-	res 5, [hl]
-	call nz, VermilionCityScript_197c0
-	ld hl, VermilionCityScriptPointers
-	ld a, [W_VERMILIONCITYCURSCRIPT]
-	jp CallFunctionInTable
-
-VermilionCityScript_197c0: ; 197c0 (6:57c0)
-	call GenRandom
-	ld a, [$ffd4]
-	and $e
-	ld [$d743], a
-	ret
-
-VermilionCityScript_197cb: ; 197cb (6:57cb)
-	ld hl, $d803
-	bit 2, [hl]
-	ret z
-	bit 3, [hl]
-	set 3, [hl]
-	ret nz
-	ld a, $2
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-VermilionCityScriptPointers: ; 197dc (6:57dc)
-	dw VermilionCityScript0
-	dw VermilionCityScript1
-	dw VermilionCityScript2
-	dw VermilionCityScript3
-	dw VermilionCityScript4
-
-VermilionCityScript0: ; 197e6 (6:57e6)
-	ld a, [$c109]
-	and a
-	ret nz
-	ld hl, CoordsData_19823
-	call ArePlayerCoordsInArray
-	ret nc
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [$cf0d], a
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, [$d803]
-	bit 2, a
-	jr nz, .asm_19810 ; 0x19804 $a
-	ld b, $3f
-	ld a, $1c
-	call Predef
-	ld a, b
-	and a
-	ret nz
-.asm_19810
-	ld a, $40
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	call Func_3486
-	ld a, $1
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-CoordsData_19823: ; 19823 (6:5823)
-	db $1e,$12
-	db $ff
-
-VermilionCityScript4: ; 19826 (6:5826)
-	ld hl, CoordsData_19823
-	call ArePlayerCoordsInArray
-	ret c
-	ld a, $0
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-VermilionCityScript2: ; 19833 (6:5833)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $40
-	ld [$ccd3], a
-	ld [$ccd4], a
-	ld a, $2
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-VermilionCityScript3: ; 1984e (6:584e)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $0
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-VermilionCityScript1: ; 1985f (6:585f)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld c, $a
-	call DelayFrames
-	ld a, $0
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	ret
-
-VermilionCityTextPointers: ; 1986f (6:586f)
-	dw VermilionCityText1
-	dw VermilionCityText2
-	dw VermilionCityText3
-	dw VermilionCityText4
-	dw VermilionCityText5
-	dw VermilionCityText6
-	dw VermilionCityText7
-	dw VermilionCityText8
-	dw MartSignText
-	dw PokeCenterSignText
-	dw VermilionCityText11
-	dw VermilionCityText12
-	dw VermilionCityText13
-
-VermilionCityText1: ; 19889 (6:5889)
-	TX_FAR _VermilionCityText1
-	db "@"
-
-VermilionCityText2: ; 1988e (6:588e)
-	db $08 ; asm
-	ld a, [$d803]
-	bit 2, a
-	jr nz, .asm_359bd ; 0x19894
-	ld hl, UnnamedText_198a7
-	call PrintText
-	jr .asm_735d9 ; 0x1989c
-.asm_359bd ; 0x1989e
-	ld hl, UnnamedText_198ac
-	call PrintText
-.asm_735d9 ; 0x198a4
-	jp TextScriptEnd
-
-UnnamedText_198a7: ; 198a7 (6:58a7)
-	TX_FAR _UnnamedText_198a7
-	db "@"
-
-UnnamedText_198ac: ; 198ac (6:58ac)
-	TX_FAR _UnnamedText_198ac
-	db "@"
-
-VermilionCityText3: ; 198b1 (6:58b1)
-	db $08 ; asm
-	ld a, [$d803]
-	bit 2, a
-	jr nz, .asm_3e0e9 ; 0x198b7
-	ld a, [$c109]
-	cp $c
-	jr z, .asm_07af3 ; 0x198be
-	ld hl, VermilionCityCoords1
-	call ArePlayerCoordsInArray
-	jr nc, .asm_57b73 ; 0x198c6
-.asm_07af3 ; 0x198c8
-	ld hl, SSAnneWelcomeText4
-	call PrintText
-	jr .asm_79bd1 ; 0x198ce
-.asm_57b73 ; 0x198d0
-	ld hl, SSAnneWelcomeText9
-	call PrintText
-	ld b, $3f
-	ld a, $1c
-	call Predef
-	ld a, b
-	and a
-	jr nz, .asm_0419b ; 0x198df
-	ld hl, SSAnneNoTicketText
-	call PrintText
-	jr .asm_79bd1 ; 0x198e7
-.asm_0419b ; 0x198e9
-	ld hl, SSAnneFlashedTicketText
-	call PrintText
-	ld a, $4
-	ld [W_VERMILIONCITYCURSCRIPT], a
-	jr .asm_79bd1 ; 0x198f4
-.asm_3e0e9 ; 0x198f6
-	ld hl, SSAnneNotHereText
-	call PrintText
-.asm_79bd1 ; 0x198fc
-	jp TextScriptEnd
-
-VermilionCityCoords1: ; 198ff (6:58ff)
-	db $1d,$13
-	db $1f,$13
-	db $ff
-
-SSAnneWelcomeText4: ; 19904 (6:5904)
-	TX_FAR _SSAnneWelcomeText4
-	db "@"
-
-SSAnneWelcomeText9: ; 19909 (6:5909)
-	TX_FAR _SSAnneWelcomeText9
-	db "@"
-
-SSAnneFlashedTicketText: ; 1990e (6:590e)
-	TX_FAR _SSAnneFlashedTicketText
-	db "@"
-
-SSAnneNoTicketText: ; 19913 (6:5913)
-	TX_FAR _SSAnneNoTicketText
-	db "@"
-
-SSAnneNotHereText: ; 19918 (6:5918)
-	TX_FAR _SSAnneNotHereText
-	db "@"
-
-VermilionCityText4: ; 1991d (6:591d)
-	TX_FAR _VermilionCityText4
-	db "@"
-
-VermilionCityText5: ; 19922 (6:5922)
-	TX_FAR _VermilionCityText5
-	db $08 ; asm
-	ld a, MACHOP
-	call PlayCry
-	call WaitForSoundToFinish
-	ld hl, VermilionCityText14 ; $5933
-	ret
-
-VermilionCityText14: ; 19933 (6:5933)
-	TX_FAR _VermilionCityText14
-	db "@"
-
-VermilionCityText6: ; 19938 (6:5938)
-	TX_FAR _VermilionCityText6
-	db "@"
-
-VermilionCityText7: ; 1993d (6:593d)
-	TX_FAR _VermilionCityText7
-	db "@"
-
-VermilionCityText8: ; 19942 (6:5942)
-	TX_FAR _VermilionCityText8
-	db "@"
-
-VermilionCityText11: ; 19947 (6:5947)
-	TX_FAR _VermilionCityText11
-	db "@"
-
-VermilionCityText12: ; 1994c (6:594c)
-	TX_FAR _VermilionCityText12
-	db "@"
-
-VermilionCityText13: ; 19951 (6:5951)
-	TX_FAR _VermilionCityText13
-	db "@"
-
-CeladonCityScript: ; 19956 (6:5956)
-	call EnableAutoTextBoxDrawing
-	ld hl, $d77e
-	res 0, [hl]
-	res 7, [hl]
-	ld hl, $d816
-	res 7, [hl]
-	ret
-
-CeladonCityTextPointers: ; 19966 (6:5966)
-	dw CeladonCityText1
-	dw CeladonCityText2
-	dw CeladonCityText3
-	dw CeladonCityText4
-	dw CeladonCityText5
-	dw CeladonCityText6
-	dw CeladonCityText7
-	dw CeladonCityText8
-	dw CeladonCityText9
-	dw CeladonCityText10
-	dw CeladonCityText11
-	dw PokeCenterSignText
-	dw CeladonCityText13
-	dw CeladonCityText14
-	dw CeladonCityText15
-	dw CeladonCityText16
-	dw CeladonCityText17
-	dw CeladonCityText18
-
-CeladonCityText1: ; 1998a (6:598a)
-	TX_FAR _CeladonCityText1
-	db "@"
-
-CeladonCityText2: ; 1998f (6:598f)
-	TX_FAR _CeladonCityText2
-	db "@"
-
-CeladonCityText3: ; 19994 (6:5994)
-	TX_FAR _CeladonCityText3
-	db "@"
-
-CeladonCityText4: ; 19999 (6:5999)
-	TX_FAR _CeladonCityText4
-	db "@"
-
-CeladonCityText5: ; 1999e (6:599e)
-	db $08 ; asm
-	ld a, [$d777]
-	bit 0, a
-	jr nz, .asm_7053f ; 0x199a4
-	ld hl, TM41PreText
-	call PrintText
-	ld bc, (TM_41 << 8) | 1
-	call GiveItem
-	jr c, .Success
-	ld hl, TM41NoRoomText
-	call PrintText
-	jr .Done
-.Success
-	ld hl, ReceivedTM41Text
-	call PrintText
-	ld hl, $d777
-	set 0, [hl]
-	jr .Done
-.asm_7053f ; 0x199c9
-	ld hl, TM41ExplanationText
-	call PrintText
-.Done
-	jp TextScriptEnd
-
-TM41PreText: ; 199d2 (6:59d2)
-	TX_FAR _TM41PreText
-	db "@"
-
-ReceivedTM41Text: ; 199d7 (6:59d7)
-	TX_FAR _ReceivedTM41Text
-	db $0B, "@"
-
-TM41ExplanationText: ; 199dd (6:59dd)
-	TX_FAR _TM41ExplanationText
-	db "@"
-
-TM41NoRoomText: ; 199e2 (6:59e2)
-	TX_FAR _TM41NoRoomText
-	db "@"
-
-CeladonCityText6: ; 199e7 (6:59e7)
-	TX_FAR _CeladonCityText6
-	db "@"
-
-CeladonCityText7: ; 199ec (6:59ec)
-	TX_FAR _CeladonCityText7
-	db $08 ; asm
-	ld a, POLIWRATH
-	call PlayCry
-	jp TextScriptEnd
-
-CeladonCityText8: ; 199f9 (6:59f9)
-	TX_FAR _CeladonCityText8
-	db "@"
-
-CeladonCityText9: ; 199fe (6:59fe)
-	TX_FAR _CeladonCityText9
-	db "@"
-
-CeladonCityText10: ; 19a03 (6:5a03)
-	TX_FAR _CeladonCityText10
-	db "@"
-
-CeladonCityText11: ; 19a08 (6:5a08)
-	TX_FAR _CeladonCityText11
-	db "@"
-
-CeladonCityText13: ; 19a0d (6:5a0d)
-	TX_FAR _CeladonCityText13
-	db "@"
-
-CeladonCityText14: ; 19a12 (6:5a12)
-	TX_FAR _CeladonCityText14
-	db "@"
-
-CeladonCityText15: ; 19a17 (6:5a17)
-	TX_FAR _CeladonCityText15
-	db "@"
-
-CeladonCityText16: ; 19a1c (6:5a1c)
-	TX_FAR _CeladonCityText16
-	db "@"
-
-CeladonCityText17: ; 19a21 (6:5a21)
-	TX_FAR _CeladonCityText17
-	db "@"
-
-CeladonCityText18: ; 19a26 (6:5a26)
-	TX_FAR _CeladonCityText18
-	db "@"
-
-FuchsiaCityScript: ; 19a2b (6:5a2b)
-	jp EnableAutoTextBoxDrawing
-
-FuchsiaCityTextPointers: ; 19a2e (6:5a2e)
-	dw FuchsiaCityText1
-	dw FuchsiaCityText2
-	dw FuchsiaCityText3
-	dw FuchsiaCityText4
-	dw FuchsiaCityText5
-	dw FuchsiaCityText6
-	dw FuchsiaCityText7
-	dw FuchsiaCityText8
-	dw FuchsiaCityText9
-	dw FuchsiaCityText10
-	dw FuchsiaCityText11
-	dw FuchsiaCityText12
-	dw FuchsiaCityText13
-	dw MartSignText
-	dw PokeCenterSignText
-	dw FuchsiaCityText16
-	dw FuchsiaCityText17
-	dw FuchsiaCityText18
-	dw FuchsiaCityText19
-	dw FuchsiaCityText20
-	dw FuchsiaCityText21
-	dw FuchsiaCityText22
-	dw FuchsiaCityText23
-	dw FuchsiaCityText24
-
-FuchsiaCityText1: ; 19a5e (6:5a5e)
-	TX_FAR _FuchsiaCityText1
-	db "@"
-
-FuchsiaCityText2: ; 19a63 (6:5a63)
-	TX_FAR _FuchsiaCityText2
-	db "@"
-
-FuchsiaCityText3: ; 19a68 (6:5a68)
-	TX_FAR _FuchsiaCityText3
-	db "@"
-
-FuchsiaCityText4: ; 19a6d (6:5a6d)
-	TX_FAR _FuchsiaCityText4
-	db "@"
-
-FuchsiaCityText5: ; 19a72 (6:5a72)
-FuchsiaCityText6: ; 19a72 (6:5a72)
-FuchsiaCityText7: ; 19a72 (6:5a72)
-FuchsiaCityText8: ; 19a72 (6:5a72)
-FuchsiaCityText9: ; 19a72 (6:5a72)
-FuchsiaCityText10: ; 19a72 (6:5a72)
-	TX_FAR _FuchsiaCityText5
-	db "@"
-
-FuchsiaCityText12: ; 19a77 (6:5a77)
-FuchsiaCityText11: ; 19a77 (6:5a77)
-	TX_FAR _FuchsiaCityText11
-	db "@"
-
-FuchsiaCityText13: ; 19a7c (6:5a7c)
-	TX_FAR _FuchsiaCityText13
-	db "@"
-
-FuchsiaCityText16: ; 19a81 (6:5a81)
-	TX_FAR _FuchsiaCityText16
-	db "@"
-
-FuchsiaCityText17: ; 19a86 (6:5a86)
-	TX_FAR _FuchsiaCityText17
-	db "@"
-
-FuchsiaCityText18: ; 19a8b (6:5a8b)
-	TX_FAR _FuchsiaCityText18
-	db "@"
-
-FuchsiaCityText19: ; 19a90 (6:5a90)
-	db $08 ; asm
-	ld hl, FuchsiaCityChanseyText
-	call PrintText
-	ld a, CHANSEY
-	call DisplayPokedex
-	jp TextScriptEnd
-
-FuchsiaCityChanseyText: ; 19a9f (6:5a9f)
-	TX_FAR _FuchsiaCityChanseyText
-	db "@"
-
-FuchsiaCityText20: ; 19aa4 (6:5aa4)
-	db $08 ; asm
-	ld hl, FuchsiaCityVoltorbText
-	call PrintText
-	ld a, VOLTORB
-	call DisplayPokedex
-	jp TextScriptEnd
-
-FuchsiaCityVoltorbText: ; 19ab3 (6:5ab3)
-	TX_FAR _FuchsiaCityVoltorbText
-	db "@"
-
-FuchsiaCityText21: ; 19ab8 (6:5ab8)
-	db $08 ; asm
-	ld hl, FuchsiaCityKangaskhanText
-	call PrintText
-	ld a, KANGASKHAN
-	call DisplayPokedex
-	jp TextScriptEnd
-
-FuchsiaCityKangaskhanText: ; 19ac7 (6:5ac7)
-	TX_FAR _FuchsiaCityKangaskhanText
-	db "@"
-
-FuchsiaCityText22: ; 19acc (6:5acc)
-	db $08 ; asm
-	ld hl, FuchsiaCitySlowpokeText
-	call PrintText
-	ld a, SLOWPOKE
-	call DisplayPokedex
-	jp TextScriptEnd
-
-FuchsiaCitySlowpokeText: ; 19adb (6:5adb)
-	TX_FAR _FuchsiaCitySlowpokeText
-	db "@"
-
-FuchsiaCityText23: ; 19ae0 (6:5ae0)
-	db $08 ; asm
-	ld hl, FuchsiaCityLaprasText
-	call PrintText
-	ld a, LAPRAS
-	call DisplayPokedex
-	jp TextScriptEnd
-
-FuchsiaCityLaprasText: ; 19aef (6:5aef)
-	TX_FAR _FuchsiaCityLaprasText
-	db "@"
-
-FuchsiaCityText24: ; 19af4 (6:5af4)
-	db $08 ; asm
-	ld a, [$d7f6]
-	bit 6, a
-	jr nz, .asm_3b4e8 ; 0x19afa
-	bit 7, a
-	jr nz, .asm_667d5 ; 0x19afe
-	ld hl, UnnamedText_19b2a
-	call PrintText
-	jr .asm_4343f ; 0x19b06
-.asm_3b4e8 ; 0x19b08
-	ld hl, FuchsiaCityOmanyteText
-	call PrintText
-	ld a, OMANYTE
-	jr .asm_81556 ; 0x19b10
-.asm_667d5 ; 0x19b12
-	ld hl, FuchsiaCityKabutoText
-	call PrintText
-	ld a, KABUTO
-.asm_81556 ; 0x19b1a
-	call DisplayPokedex
-.asm_4343f ; 0x19b1d
-	jp TextScriptEnd
-
-FuchsiaCityOmanyteText: ; 19b20 (6:5b20)
-	TX_FAR _FuchsiaCityOmanyteText
-	db "@"
-
-FuchsiaCityKabutoText: ; 19b25 (6:5b25)
-	TX_FAR _FuchsiaCityKabutoText
-	db "@"
-
-UnnamedText_19b2a: ; 19b2a (6:5b2a)
-	TX_FAR _UnnamedText_19b2a
-	db "@"
-
 INCLUDE "data/mapHeaders/blueshouse.asm"
 
-BluesHouseScript: ; 19b3b (6:5b3b)
-	call EnableAutoTextBoxDrawing
-	ld hl,BluesHouseScriptPointers
-	ld a,[W_BLUESHOUSECURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/blueshouse.asm"
 
-BluesHouseScriptPointers: ; 19b47 (6:5b47)
-	dw BluesHouseScript0
-	dw BluesHouseScript1
-
-BluesHouseScript0: ; 19b4b (6:5b4b)
-	ld hl,$D74A
-	set 1,[hl]
-
-	; trigger the next script
-	ld a,1
-	ld [W_BLUESHOUSECURSCRIPT],a
-	ret
-
-BluesHouseScript1: ; 19b56 (6:5b56)
-	ret
-
-BluesHouseTextPointers: ; 19b57 (6:5b57)
-	dw BluesHouseText1
-	dw BluesHouseText2
-	dw BluesHouseText3
-
-BluesHouseText1: ; 19b5d (6:5b5d)
-	db 8
-	ld a,[$D74A]
-	bit 0,a
-	jr nz,.GotMap
-	ld a,[$D74B]
-	bit 5,a
-	jr nz,.GiveMap
-	ld hl,DaisyInitialText
-	call PrintText
-	jr .done
-.GiveMap
-	ld hl,DaisyOfferMapText
-	call PrintText
-	ld bc,(TOWN_MAP << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a,$29
-	ld [$CC4D],a
-	ld a,$11
-	call Predef ; hide table map object
-	ld hl,GotMapText
-	call PrintText
-	ld hl,$D74A
-	set 0,[hl]
-	jr .done
-.GotMap
-	ld hl,DaisyUseMapText
-	call PrintText
-	jr .done
-.BagFull
-	ld hl,DaisyBagFullText
-	call PrintText
-.done
-	jp TextScriptEnd
-
-DaisyInitialText: ; 19baa (6:5baa)
-	TX_FAR _DaisyInitialText
-	db "@"
-
-DaisyOfferMapText: ; 19baf (6:5baf)
-	TX_FAR _DaisyOfferMapText
-	db "@"
-
-GotMapText: ; 19bb4 (6:5bb4)
-	TX_FAR _GotMapText
-	db $11,"@"
-
-DaisyBagFullText: ; 19bba (6:5bba)
-	TX_FAR _DaisyBagFullText
-	db "@"
-
-DaisyUseMapText: ; 19bbf (6:5bbf)
-	TX_FAR _DaisyUseMapText
-	db "@"
-
-BluesHouseText2: ; 0x19bc4 Daisy, walking around
-	TX_FAR _BluesHouseText2
-	db "@"
-
-BluesHouseText3: ; 0x19bc9 map on table
-	TX_FAR _BluesHouseText3
-	db "@"
-
 INCLUDE "data/mapObjects/blueshouse.asm"
 
 BluesHouseBlocks: ; 19bf6 (6:5bf6)
@@ -31008,20 +29027,8 @@
 
 INCLUDE "data/mapHeaders/vermilionhouse3.asm"
 
-VermilionHouse3Script: ; 19c12 (6:5c12)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/vermilionhouse3.asm"
 
-VermilionHouse3TextPointers: ; 19c15 (6:5c15)
-	dw VermilionHouse3Text1
-
-VermilionHouse3Text1: ; 19c17 (6:5c17)
-	db $08 ; asm
-	ld a, $4
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/vermilionhouse3.asm"
 
 VermilionHouse3Blocks: ; 19c3f (6:5c3f)
@@ -31029,48 +29036,8 @@
 
 INCLUDE "data/mapHeaders/indigoplateaulobby.asm"
 
-IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
-	call Func_22fa
-	call EnableAutoTextBoxDrawing
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	ret z
-	ld hl, $d869
-	res 7, [hl]
-	ld hl, $d734
-	bit 1, [hl]
-	res 1, [hl]
-	ret z
-	ld hl, $d863
-	xor a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ret
+INCLUDE "scripts/indigoplateaulobby.asm"
 
-IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f)
-	dw IndigoPlateauLobbyText1
-	dw IndigoPlateauLobbyText2
-	dw IndigoPlateauLobbyText3
-	dw IndigoPlateauLobbyText4
-	dw IndigoPlateauLobbyText5
-
-IndigoPlateauLobbyText1: ; 19c89 (6:5c89)
-	db $ff
-
-IndigoPlateauLobbyText2: ; 19c8a (6:5c8a)
-	TX_FAR _IndigoPlateauLobbyText1
-	db "@"
-
-IndigoPlateauLobbyText3: ; 19c8f (6:5c8f)
-	TX_FAR _IndigoPlateauLobbyText3
-	db "@"
-
-IndigoPlateauLobbyText5: ; 19c94 (6:5c94)
-	db $f6
-
 INCLUDE "data/mapObjects/indigoplateaulobby.asm"
 
 IndigoPlateauLobbyBlocks: ; 19ccf (6:5ccf)
@@ -31078,208 +29045,8 @@
 
 INCLUDE "data/mapHeaders/silphco4.asm"
 
-SilphCo4Script: ; 19d0b (6:5d0b)
-	call SilphCo4Script_19d21
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo4TrainerHeaders
-	ld de, SilphCo4ScriptPointers
-	ld a, [W_SILPHCO4CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO4CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco4.asm"
 
-SilphCo4Script_19d21: ; 19d21 (6:5d21)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, SilphCo4Data19d58
-	call SilphCo4Script_19d5d
-	call SilphCo4Script_19d89
-	ld a, [$d82a]
-	bit 0, a
-	jr nz, .asm_19d48
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $0602
-	ld a, $17
-	call Predef
-	pop af
-.asm_19d48
-	bit 1, a
-	ret nz
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $0406
-	ld a, $17
-	jp Predef
-
-SilphCo4Data19d58: ; 19d58 (6:5d58)
-	db $06, $02, $04, $06, $ff
-
-SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_19d69
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_19d85 ; 0x19d6c $17
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_19d7a ; 0x19d75 $3
-	inc hl
-	jr .asm_19d69 ; 0x19d78 $ef
-.asm_19d7a
-	ld a, [hli]
-	cp c
-	jr nz, .asm_19d69 ; 0x19d7c $eb
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_19d85
-	xor a
-	ld [$ffe0], a
-	ret
-
-SilphCo4Script_19d89: ; 19d89 (6:5d89)
-	ld hl, $d82a
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_19d97 ; 0x19d92 $3
-	set 0, [hl]
-	ret
-.asm_19d97
-	set 1, [hl]
-	ret
-
-SilphCo4ScriptPointers: ; 19d9a (6:5d9a)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo4TextPointers: ; 19da0 (6:5da0)
-	dw SilphCo4Text1
-	dw SilphCo4Text2
-	dw SilphCo4Text3
-	dw SilphCo4Text4
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-SilphCo4TrainerHeaders: ; 19dae (6:5dae)
-SilphCo4TrainerHeader0: ; 19dae (6:5dae)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d829 ; flag's byte
-	dw SilphCo4BattleText2 ; 0x5df4 TextBeforeBattle
-	dw SilphCo4AfterBattleText2 ; 0x5dfe TextAfterBattle
-	dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
-	dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
-
-SilphCo4TrainerHeader2: ; 19dba (6:5dba)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d829 ; flag's byte
-	dw SilphCo4BattleText3 ; 0x5e0d TextBeforeBattle
-	dw SilphCo4AfterBattleText3 ; 0x5e17 TextAfterBattle
-	dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
-	dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
-
-SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d829 ; flag's byte
-	dw SilphCo4BattleText4 ; 0x5e26 TextBeforeBattle
-	dw SilphCo4AfterBattleText4 ; 0x5e30 TextAfterBattle
-	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
-	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
-
-	db $ff
-
-SilphCo4Text1: ; 19dd3 (6:5dd3)
-	db $08 ; asm
-	ld hl, UnnamedText_19de0
-	ld de, UnnamedText_19de5
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_19de0: ; 19de0 (6:5de0)
-	TX_FAR _UnnamedText_19de0
-	db "@"
-
-UnnamedText_19de5: ; 19de5 (6:5de5)
-	TX_FAR _UnnamedText_19de5
-	db "@"
-
-SilphCo4Text2: ; 19dea (6:5dea)
-	db $08 ; asm
-	ld hl, SilphCo4TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo4BattleText2: ; 19df4 (6:5df4)
-	TX_FAR _SilphCo4BattleText2
-	db "@"
-
-SilphCo4EndBattleText2: ; 19df9 (6:5df9)
-	TX_FAR _SilphCo4EndBattleText2
-	db "@"
-
-SilphCo4AfterBattleText2: ; 19dfe (6:5dfe)
-	TX_FAR _SilphCo4AfterBattleText2
-	db "@"
-
-SilphCo4Text3: ; 19e03 (6:5e03)
-	db $08 ; asm
-	ld hl, SilphCo4TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo4BattleText3: ; 19e0d (6:5e0d)
-	TX_FAR _SilphCo4BattleText3
-	db "@"
-
-SilphCo4EndBattleText3: ; 19e12 (6:5e12)
-	TX_FAR _SilphCo4EndBattleText3
-	db "@"
-
-SilphCo4AfterBattleText3: ; 19e17 (6:5e17)
-	TX_FAR _SilphCo4AfterBattleText3
-	db "@"
-
-SilphCo4Text4: ; 19e1c (6:5e1c)
-	db $08 ; asm
-	ld hl, SilphCo4TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo4BattleText4: ; 19e26 (6:5e26)
-	TX_FAR _SilphCo4BattleText4
-	db "@"
-
-SilphCo4EndBattleText4: ; 19e2b (6:5e2b)
-	TX_FAR _SilphCo4EndBattleText4
-	db "@"
-
-SilphCo4AfterBattleText4: ; 19e30 (6:5e30)
-	TX_FAR _SilphCo4AfterBattleText4
-	db "@"
-
 INCLUDE "data/mapObjects/silphco4.asm"
 
 SilphCo4Blocks: ; 19ea4 (6:5ea4)
@@ -31287,230 +29054,8 @@
 
 INCLUDE "data/mapHeaders/silphco5.asm"
 
-SilphCo5Script: ; 19f37 (6:5f37)
-	call SilphCo5Script_19f4d
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo5TrainerHeaders
-	ld de, SilphCo5ScriptPointers
-	ld a, [W_SILPHCO5CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO5CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco5.asm"
 
-SilphCo5Script_19f4d: ; 19f4d (6:5f4d)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, SilphCo5Coords
-	call SilphCo4Script_19d5d
-	call SilphCo5Script_19f9e
-	ld a, [$d82c]
-	bit 0, a
-	jr nz, .asm_19f74 ; 0x19f63 $f
-	push af
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $0203
-	ld a, $17
-	call Predef
-	pop af
-.asm_19f74
-	bit 1, a
-	jr nz, .asm_19f87 ; 0x19f76 $f
-	push af
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $0603
-	ld a, $17
-	call Predef
-	pop af
-.asm_19f87
-	bit 2, a
-	ret nz
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $0507
-	ld a, $17
-	jp Predef
-
-SilphCo5Coords: ; 19f97 (6:5f97) ; coords?
-	db $02, $03, $06, $03, $05, $07, $ff
-
-SilphCo5Script_19f9e: ; 19f9e (6:5f9e)
-	ld hl, $d82c
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_19fac ; 0x19fa7 $3
-	set 0, [hl]
-	ret
-.asm_19fac
-	cp $2
-	jr nz, .asm_19fb3 ; 0x19fae $3
-	set 1, [hl]
-	ret
-.asm_19fb3
-	set 2, [hl]
-	ret
-
-SilphCo5ScriptPointers: ; 19fb6 (6:5fb6)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo5TextPointers: ; 19fbc (6:5fbc)
-	dw SilphCo5Text1
-	dw SilphCo5Text2
-	dw SilphCo5Text3
-	dw SilphCo5Text4
-	dw SilphCo5Text5
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw SilphCo5Text9
-	dw SilphCo5Text10
-	dw SilphCo5Text11
-
-SilphCo5TrainerHeaders: ; 19fd2 (6:5fd2)
-Silphco5TrainerHeader0: ; 19fd2 (6:5fd2)
-	db $2 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d82b ; flag's byte
-	dw SilphCo5BattleText2 ; 0x6024 TextBeforeBattle
-	dw SilphCo5AfterBattleText2 ; 0x602e TextAfterBattle
-	dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
-	dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
-
-Silphco5TrainerHeader2: ; 19fde (6:5fde)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d82b ; flag's byte
-	dw SilphCo5BattleText3 ; 0x603d TextBeforeBattle
-	dw SilphCo5AfterBattleText3 ; 0x6047 TextAfterBattle
-	dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
-	dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
-
-Silphco5TrainerHeader3: ; 19fea (6:5fea)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d82b ; flag's byte
-	dw SilphCo5BattleText4 ; 0x6056 TextBeforeBattle
-	dw SilphCo5AfterBattleText4 ; 0x6060 TextAfterBattle
-	dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
-	dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
-
-Silphco5TrainerHeader4: ; 19ff6 (6:5ff6)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d82b ; flag's byte
-	dw SilphCo5BattleText5 ; 0x606f TextBeforeBattle
-	dw SilphCo5AfterBattleText5 ; 0x6079 TextAfterBattle
-	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
-	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
-
-	db $ff
-
-SilphCo5Text1: ; 1a003 (6:6003)
-	db $08 ; asm
-	ld hl, UnnamedText_1a010
-	ld de, UnnamedText_1a015
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a010: ; 1a010 (6:6010)
-	TX_FAR _UnnamedText_1a010
-	db "@"
-
-UnnamedText_1a015: ; 1a015 (6:6015)
-	TX_FAR _UnnamedText_1a015
-	db "@"
-
-SilphCo5Text2: ; 1a01a (6:601a)
-	db $08 ; asm
-	ld hl, Silphco5TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo5BattleText2: ; 1a024 (6:6024)
-	TX_FAR _SilphCo5BattleText2
-	db "@"
-
-SilphCo5EndBattleText2: ; 1a029 (6:6029)
-	TX_FAR _SilphCo5EndBattleText2
-	db "@"
-
-SilphCo5AfterBattleText2: ; 1a02e (6:602e)
-	TX_FAR _SilphCo5AfterBattleText2
-	db "@"
-
-SilphCo5Text3: ; 1a033 (6:6033)
-	db $08 ; asm
-	ld hl, Silphco5TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo5BattleText3: ; 1a03d (6:603d)
-	TX_FAR _SilphCo5BattleText3
-	db "@"
-
-SilphCo5EndBattleText3: ; 1a042 (6:6042)
-	TX_FAR _SilphCo5EndBattleText3
-	db "@"
-
-SilphCo5AfterBattleText3: ; 1a047 (6:6047)
-	TX_FAR _SilphCo5AfterBattleText3
-	db "@"
-
-SilphCo5Text4: ; 1a04c (6:604c)
-	db $08 ; asm
-	ld hl, Silphco5TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo5BattleText4: ; 1a056 (6:6056)
-	TX_FAR _SilphCo5BattleText4
-	db "@"
-
-SilphCo5EndBattleText4: ; 1a05b (6:605b)
-	TX_FAR _SilphCo5EndBattleText4
-	db "@"
-
-SilphCo5AfterBattleText4: ; 1a060 (6:6060)
-	TX_FAR _SilphCo5AfterBattleText4
-	db "@"
-
-SilphCo5Text5: ; 1a065 (6:6065)
-	db $08 ; asm
-	ld hl, Silphco5TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo5BattleText5: ; 1a06f (6:606f)
-	TX_FAR _SilphCo5BattleText5
-	db "@"
-
-SilphCo5EndBattleText5: ; 1a074 (6:6074)
-	TX_FAR _SilphCo5EndBattleText5
-	db "@"
-
-SilphCo5AfterBattleText5: ; 1a079 (6:6079)
-	TX_FAR _SilphCo5AfterBattleText5
-	db "@"
-
-SilphCo5Text9: ; 1a07e (6:607e)
-	TX_FAR _SilphCo5Text9
-	db "@"
-
-SilphCo5Text10: ; 1a083 (6:6083)
-	TX_FAR _SilphCo5Text10
-	db "@"
-
-SilphCo5Text11: ; 1a088 (6:6088)
-	TX_FAR _SilphCo5Text11
-	db "@"
-
 INCLUDE "data/mapObjects/silphco5.asm"
 
 SilphCo5Blocks: ; 1a116 (6:6116)
@@ -31518,232 +29063,8 @@
 
 INCLUDE "data/mapHeaders/silphco6.asm"
 
-SilphCo6Script: ; 1a1a9 (6:61a9)
-	call SilphCo6Script_1a1bf
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo6TrainerHeaders
-	ld de, SilphCo6ScriptPointers
-	ld a, [W_SILPHCO6CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO6CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco6.asm"
 
-SilphCo6Script_1a1bf: ; 1a1bf (6:61bf)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, SilphCo6Coords1
-	call SilphCo4Script_19d5d
-	call SilphCo6Script_1a1e6
-	ld a, [$d82e]
-	bit 7, a
-	ret nz
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $0602
-	ld a, $17
-	jp Predef
-
-SilphCo6Coords1: ; 1a1e3 (6:61e3)
-	db $06, $02
-	db $ff
-
-SilphCo6Script_1a1e6: ; 1a1e6 (6:61e6)
-	ld a, [$ffe0]
-	and a
-	ret z
-	ld hl, $d82e
-	set 7, [hl]
-	ret
-
-SilphCo6ScriptPointers: ; 1a1f0 (6:61f0)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo6TextPointers: ; 1a1f6 (6:61f6)
-	dw SilphCo6Text1
-	dw SilphCo6Text2
-	dw SilphCo6Text3
-	dw SilphCo6Text4
-	dw SilphCo6Text5
-	dw SilphCo6Text6
-	dw SilphCo6Text7
-	dw SilphCo6Text8
-	dw Predef5CText
-	dw Predef5CText
-
-SilphCo6TrainerHeaders: ; 1a20a (6:620a)
-SilphCo6TrainerHeader0: ; 1a20a (6:620a)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d82d ; flag's byte
-	dw SilphCo6BattleText2 ; 0x62ba TextBeforeBattle
-	dw SilphCo6AfterBattleText2 ; 0x62c4 TextAfterBattle
-	dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
-	dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
-
-SilphCo6TrainerHeader2: ; 1a216 (6:6216)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d82d ; flag's byte
-	dw SilphCo6BattleText3 ; 0x62d3 TextBeforeBattle
-	dw SilphCo6AfterBattleText3 ; 0x62dd TextAfterBattle
-	dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
-	dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
-
-SilphCo6TrainerHeader3: ; 1a222 (6:6222)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d82d ; flag's byte
-	dw SilphCo6BattleText4 ; 0x62ec TextBeforeBattle
-	dw SilphCo6AfterBattleText4 ; 0x62f6 TextAfterBattle
-	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
-	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
-
-	db $ff
-
-SilphCo6Script_1a22f: ; 1a22f (6:622f)
-	ld a, [$d838]
-	bit 7, a
-	jr nz, .asm_1a238 ; 0x1a234 $2
-	jr .asm_1a23a ; 0x1a236 $2
-.asm_1a238
-	ld h, d
-	ld l, e
-.asm_1a23a
-	jp PrintText
-
-SilphCo6Text1: ; 1a23d (6:623d)
-	db $08 ; asm
-	ld hl, UnnamedText_1a24a
-	ld de, UnnamedText_1a24f
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a24a: ; 1a24a (6:624a)
-	TX_FAR _UnnamedText_1a24a
-	db "@"
-
-UnnamedText_1a24f: ; 1a24f (6:624f)
-	TX_FAR _UnnamedText_1a24f
-	db "@"
-
-SilphCo6Text2: ; 1a254 (6:6254)
-	db $08 ; asm
-	ld hl, UnnamedText_1a261
-	ld de, UnnamedText_1a266
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a261: ; 1a261 (6:6261)
-	TX_FAR _UnnamedText_1a261
-	db "@"
-
-UnnamedText_1a266: ; 1a266 (6:6266)
-	TX_FAR _UnnamedText_1a266
-	db "@"
-
-SilphCo6Text3: ; 1a26b (6:626b)
-	db $08 ; asm
-	ld hl, UnnamedText_1a278
-	ld de, UnnamedText_1a27d
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a278: ; 1a278 (6:6278)
-	TX_FAR _UnnamedText_1a278
-	db "@"
-
-UnnamedText_1a27d: ; 1a27d (6:627d)
-	TX_FAR _UnnamedText_1a27d
-	db "@"
-
-SilphCo6Text4: ; 1a282 (6:6282)
-	db $08 ; asm
-	ld hl, UnnamedText_1a28f
-	ld de, UnnamedText_1a294
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a28f: ; 1a28f (6:628f)
-	TX_FAR _UnnamedText_1a28f
-	db "@"
-
-UnnamedText_1a294: ; 1a294 (6:6294)
-	TX_FAR _UnnamedText_1a294
-	db "@"
-
-SilphCo6Text5: ; 1a299 (6:6299)
-	db $08 ; asm
-	ld hl, UnnamedText_1a2a6
-	ld de, UnnamedText_1a2ab
-	call SilphCo6Script_1a22f
-	jp TextScriptEnd
-
-UnnamedText_1a2a6: ; 1a2a6 (6:62a6)
-	TX_FAR _UnnamedText_1a2a6
-	db "@"
-
-UnnamedText_1a2ab: ; 1a2ab (6:62ab)
-	TX_FAR _UnnamedText_1a2ab
-	db "@"
-
-SilphCo6Text6: ; 1a2b0 (6:62b0)
-	db $08 ; asm
-	ld hl, SilphCo6TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo6BattleText2: ; 1a2ba (6:62ba)
-	TX_FAR _SilphCo6BattleText2
-	db "@"
-
-SilphCo6EndBattleText2: ; 1a2bf (6:62bf)
-	TX_FAR _SilphCo6EndBattleText2
-	db "@"
-
-SilphCo6AfterBattleText2: ; 1a2c4 (6:62c4)
-	TX_FAR _SilphCo6AfterBattleText2
-	db "@"
-
-SilphCo6Text7: ; 1a2c9 (6:62c9)
-	db $08 ; asm
-	ld hl, SilphCo6TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo6BattleText3: ; 1a2d3 (6:62d3)
-	TX_FAR _SilphCo6BattleText3
-	db "@"
-
-SilphCo6EndBattleText3: ; 1a2d8 (6:62d8)
-	TX_FAR _SilphCo6EndBattleText3
-	db "@"
-
-SilphCo6AfterBattleText3: ; 1a2dd (6:62dd)
-	TX_FAR _SilphCo6AfterBattleText3
-	db "@"
-
-SilphCo6Text8: ; 1a2e2 (6:62e2)
-	db $08 ; asm
-	ld hl, SilphCo6TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo6BattleText4: ; 1a2ec (6:62ec)
-	TX_FAR _SilphCo6BattleText4
-	db "@"
-
-SilphCo6EndBattleText4: ; 1a2f1 (6:62f1)
-	TX_FAR _SilphCo6EndBattleText4
-	db "@"
-
-SilphCo6AfterBattleText4: ; 1a2f6 (6:62f6)
-	TX_FAR _SilphCo6AfterBattleText4
-	db "@"
-
 INCLUDE "data/mapObjects/silphco6.asm"
 
 SilphCo6Blocks: ; 1a36b (6:636b)
@@ -32343,1495 +29664,20 @@
 	TX_FAR _WhichFloorText
 	db "@"
 
-CinnabarIslandScript: ; 1ca19 (7:4a19)
-	call EnableAutoTextBoxDrawing
-	ld hl, $d126
-	set 5, [hl]
-	ld hl, $d796
-	res 0, [hl]
-	ld hl, $d7a3
-	res 1, [hl]
-	ld hl, CinnabarIslandScriptPointers
-	ld a, [W_CINNABARISLANDCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/cinnabarisland.asm"
 
-CinnabarIslandScriptPointers: ; 1ca34 (7:4a34)
-	dw CinnabarIslandScript0
-	dw CinnabarIslandScript1
+INCLUDE "scripts/route1.asm"
 
-CinnabarIslandScript0: ; 1ca38 (7:4a38)
-	ld b, SECRET_KEY
-	call IsItemInBag
-	ret nz
-	ld a, [W_YCOORD]
-	cp $4
-	ret nz
-	ld a, [W_XCOORD]
-	cp $12
-	ret nz
-	ld a, $8
-	ld [$d528], a
-	ld a, $8
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $1
-	ld [$cd38], a
-	ld a, $80
-	ld [$ccd3], a
-	call Func_3486
-	xor a
-	ld [$c109], a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [W_CINNABARISLANDCURSCRIPT], a
-	ret
-
-CinnabarIslandScript1: ; 1ca73 (7:4a73)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	ld a, $0
-	ld [W_CINNABARISLANDCURSCRIPT], a
-	ret
-
-CinnabarIslandTextPointers: ; 1ca81 (7:4a81)
-	dw CinnabarIslandText1
-	dw CinnabarIslandText2
-	dw CinnabarIslandText3
-	dw MartSignText
-	dw PokeCenterSignText
-	dw CinnabarIslandText6
-	dw CinnabarIslandText7
-	dw CinnabarIslandText8
-
-CinnabarIslandText8: ; 1ca91 (7:4a91)
-	TX_FAR _CinnabarIslandText8
-	db "@"
-
-CinnabarIslandText1: ; 1ca96 (7:4a96)
-	TX_FAR _CinnabarIslandText1
-	db "@"
-
-CinnabarIslandText2: ; 1ca9b (7:4a9b)
-	TX_FAR _CinnabarIslandText2
-	db "@"
-
-CinnabarIslandText3: ; 1caa0 (7:4aa0)
-	TX_FAR _CinnabarIslandText3
-	db "@"
-
-CinnabarIslandText6: ; 1caa5 (7:4aa5)
-	TX_FAR _CinnabarIslandText6
-	db "@"
-
-CinnabarIslandText7: ; 1caaa (7:4aaa)
-	TX_FAR _CinnabarIslandText7
-	db "@"
-
-Route1Script: ; 1caaf (7:4aaf)
-	jp EnableAutoTextBoxDrawing
-
-Route1TextPointers: ; 1cab2 (7:4ab2)
-	dw Route1Text1
-	dw Route1Text2
-	dw Route1Text3
-
-Route1Text1: ; 1cab8 (7:4ab8)
-	db $08 ; asm
-	ld hl, $d7bf
-	bit 0, [hl]
-	set 0, [hl]
-	jr nz, .asm_02840 ; 0x1cac0
-	ld hl, Route1ViridianMartSampleText
-	call PrintText
-	ld bc, (POTION << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, UnnamedText_1cae8 ; $4ae8
-	jr .asm_46d43 ; 0x1cad3
-.BagFull
-	ld hl, UnnamedText_1caf3 ; $4af3
-	jr .asm_46d43 ; 0x1cad8
-.asm_02840 ; 0x1cada
-	ld hl, UnnamedText_1caee ; $4aee
-.asm_46d43 ; 0x1cadd
-	call PrintText
-	jp TextScriptEnd
-
-Route1ViridianMartSampleText: ; 1cae3 (7:4ae3)
-	TX_FAR _Route1ViridianMartSampleText
-	db "@"
-
-UnnamedText_1cae8: ; 1cae8 (7:4ae8)
-	TX_FAR _UnnamedText_1cae8
-	db $0b,"@"
-
-UnnamedText_1caee: ; 1caee (7:4aee)
-	TX_FAR _UnnamedText_1caee
-	db "@"
-
-UnnamedText_1caf3: ; 1caf3 (7:4af3)
-	TX_FAR _UnnamedText_1caf3
-	db "@"
-
-Route1Text2: ; 1caf8 (7:4af8)
-	TX_FAR _Route1Text2
-	db "@"
-
-Route1Text3: ; 1cafd (7:4afd)
-	TX_FAR _Route1Text3
-	db "@"
-
 INCLUDE "data/mapHeaders/oakslab.asm"
 
-OaksLabScript: ; 1cb0e (7:4b0e)
-	ld a, [$d74b]
-	bit 6, a
-	call nz, OaksLabScript_1d076
-	ld a, $1
-	ld [$cf0c], a
-	xor a
-	ld [$cc3c], a
-	ld hl, OaksLabScriptPointers
-	ld a, [W_OAKSLABCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/oakslab.asm"
 
-OaksLabScriptPointers: ; 1cb28 (7:4b28)
-	dw OaksLabScript0
-	dw OaksLabScript1
-	dw OaksLabScript2
-	dw OaksLabScript3
-	dw OaksLabScript4
-	dw OaksLabScript5
-	dw OaksLabScript6
-	dw OaksLabScript7
-	dw OaksLabScript8
-	dw OaksLabScript9
-	dw OaksLabScript10
-	dw OaksLabScript11
-	dw OaksLabScript12
-	dw OaksLabScript13
-	dw OaksLabScript14
-	dw OaksLabScript15
-	dw OaksLabScript16
-	dw OaksLabScript17
-	dw OaksLabScript18
-
-OaksLabScript0: ; 1cb4e (7:4b4e)
-	ld a, [$d74b]
-	bit 7, a
-	ret z
-	ld a, [$cf10]
-	and a
-	ret nz
-	ld a, $31
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld hl, $d72e
-	res 4, [hl]
-
-	ld a, $1
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript1: ; 1cb6e (7:4b6e)
-	ld a, $8
-	ld [$ff8c], a
-	ld de, OakEntryMovement
-	call MoveSprite
-
-	ld a, $2
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OakEntryMovement: ; 1cb7e (7:4b7e)
-	db $40,$40,$40,$FF
-
-OaksLabScript2: ; 1cb82 (7:4b82)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $31
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $2e
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-
-	ld a, $3
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript3: ; 1cba2 (7:4ba2)
-	call Delay3
-	ld hl, $ccd3
-	ld de, PlayerEntryMovementRLE
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $1
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $5
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-
-	ld a, $4
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-PlayerEntryMovementRLE: ; 1cbcf (7:4bcf)
-	db $40, $8, $ff
-
-OaksLabScript4: ; 1cbd2 (7:4bd2)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld hl, $d747
-	set 0, [hl]
-	ld hl, $d74b
-	set 0, [hl]
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	call UpdateSprites
-	ld hl, W_FLAGS_D733
-	res 1, [hl]
-	call Func_2307
-
-	ld a, $5
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript5: ; 1cbfd (7:4bfd)
-	ld a, $fc
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $11
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld a, $12
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld a, $13
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld a, $14
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d74b
-	set 1, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-
-	ld a, $6
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript6: ; 1cc36 (7:4c36)
-	ld a, [W_YCOORD]
-	cp $6
-	ret nz
-	ld a, $5
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $1
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	call UpdateSprites
-	ld a, $c
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $1
-	ld [$cd38], a
-	ld a, $40
-	ld [$ccd3], a
-	call Func_3486
-	ld a, $8
-	ld [$d528], a
-
-	ld a, $7
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript7: ; 1cc72 (7:4c72)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-
-	ld a, $6
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript8: ; 1cc80 (7:4c80)
-	ld a, [W_PLAYERSTARTER]
-	cp CHARMANDER
-	jr z, .Charmander ; 0x1cc85 $6
-	cp SQUIRTLE
-	jr z, .Squirtle ; 0x1cc89 $1d
-	jr .Bulbasaur ; 0x1cc8b $38
-.Charmander
-	ld de, .MiddleBallMovement1
-	ld a, [W_YCOORD]
-	cp $4 ; is the player standing below the table?
-	jr z, .asm_1ccf3 ; 0x1cc95 $5c
-	ld de, .MiddleBallMovement2
-	jr .asm_1ccf3 ; 0x1cc9a $57
-
-.MiddleBallMovement1
-	db 0,0,$C0,$C0,$C0,$40,$FF
-.MiddleBallMovement2
-	db 0,$C0,$C0,$C0,$FF
-
-.Squirtle
-	ld de, .RightBallMovement1
-	ld a, [W_YCOORD]
-	cp $4 ; is the player standing below the table?
-	jr z, .asm_1ccf3 ; 0x1ccb0 $41
-	ld de, .RightBallMovement2
-	jr .asm_1ccf3 ; 0x1ccb5 $3c
-
-.RightBallMovement1
-	db 0,0,$C0,$C0,$C0,$C0,$40,$FF
-.RightBallMovement2
-	db 0,$C0,$C0,$C0,$C0,$FF
-
-.Bulbasaur
-	ld de, .LeftBallMovement1
-	ld a, [W_XCOORD]
-	cp $9 ; is the player standing to the right of the table?
-	jr nz, .asm_1ccf3 ; 0x1cccd $24
-	push hl
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8b], a
-	call Func_34fc
-	push hl
-	ld [hl], $4c
-	inc hl
-	inc hl
-	ld [hl], $0
-	pop hl
-	inc h
-	ld [hl], $8
-	inc hl
-	ld [hl], $9
-	ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that
-	pop hl
-	jr .asm_1ccf3 ; 0x1cced $4
-
-.LeftBallMovement1
-	db $00,$C0 ; not yet terminated!
-.LeftBallMovement2
-	db $C0,$FF
-
-.asm_1ccf3
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-
-	ld a, $9
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript9: ; 1cd00 (7:4d00)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $fc
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $d
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, [$cd3e]
-	cp $2
-	jr nz, .asm_1cd28 ; 0x1cd22 $4
-	ld a, $2b
-	jr .asm_1cd32 ; 0x1cd26 $a
-.asm_1cd28
-	cp $3
-	jr nz, .asm_1cd30 ; 0x1cd2a $4
-	ld a, $2c
-	jr .asm_1cd32 ; 0x1cd2e $2
-.asm_1cd30
-	ld a, $2d
-.asm_1cd32
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	call Delay3
-	ld a, [$cd3d]
-	ld [W_RIVALSTARTER], a
-	ld [$cf91], a
-	ld [$d11e], a
-	call GetMonName
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $e
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d74b
-	set 2, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-
-	ld a, $a
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript10: ; 1cd6d (7:4d6d)
-	ld a, [W_YCOORD]
-	cp $6
-	ret nz
-	ld a, $1
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $8
-	ld [$d528], a
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic ; play music
-	ld a, $f
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $1
-	ld [$ff9b], a
-	ld a, $1
-	swap a
-	ld [$ff95], a
-	ld a, $22
-	call Predef
-	ld a, [$ff95]
-	dec a
-	ld [$ff95], a
-	ld a, $20
-	call Predef
-	ld de, $cc97
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-
-	ld a, $b
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript11: ; 1cdb9 (7:4db9)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-
-	; define which team rival uses, and fight it
-	ld a, SONY1 + $C8
-	ld [W_CUROPPONENT], a
-	ld a, [W_RIVALSTARTER]
-	cp SQUIRTLE
-	jr nz, .NotSquirtle ; 0x1cdc9 $4
-	ld a, $1
-	jr .done ; 0x1cdcd $a
-.NotSquirtle
-	cp BULBASAUR
-	jr nz, .Charmander ; 0x1cdd1 $4
-	ld a, $2
-	jr .done ; 0x1cdd5 $2
-.Charmander
-	ld a, $3
-.done
-	ld [W_TRAINERNO], a
-	ld a, $1
-	ld [$cf13], a
-	call Func_32ef
-	ld hl, UnnamedText_1d3be
-	ld de, UnnamedText_1d3c3
-	call PreBattleSaveRegisters
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $8
-	ld [$d528], a
-	ld a, $c
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript12: ; 1ce03 (7:4e03)
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $8
-	ld [$d528], a
-	call UpdateSprites
-	ld a, $1
-	ld [$cf13], a
-	call Func_32f9
-	ld a, $1
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $7
-	call Predef
-	ld hl, $d74b
-	set 3, [hl]
-
-	ld a, $d
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript13: ; 1ce32 (7:4e32)
-	ld c, $14
-	call DelayFrames
-	ld a, $10
-	ld [$ff8c], a
-	call DisplayTextID
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $1
-	ld [$ff8c], a
-	ld de, .RivalExitMovement
-	call MoveSprite
-	ld a, [W_XCOORD]
-	cp $4
-	; move left or right depending on where the player is standing
-	jr nz, .asm_1ce5b ; 0x1ce55 $4
-	ld a, $c0
-	jr .asm_1ce5d ; 0x1ce59 $2
-.asm_1ce5b
-	ld a, $80
-.asm_1ce5d
-	ld [$cc5b], a
-
-	ld a, $e
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-.RivalExitMovement
-	db $E0,$00,$00,$00,$00,$00,$FF
-
-OaksLabScript14: ; 1ce6d (7:4e6d)
-	ld a, [$d730]
-	bit 0, a
-	jr nz, .asm_1ce8c ; 0x1ce72 $18
-	ld a, $2a
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	call Func_2307 ; reset to map music
-	ld a, $12
-	ld [W_OAKSLABCURSCRIPT], a
-	jr .done ; 0x1ce8a $23
-.asm_1ce8c
-	ld a, [$cf0f]
-	cp $5
-	jr nz, .asm_1cea8 ; 0x1ce91 $15
-	ld a, [W_XCOORD]
-	cp $4
-	jr nz, .asm_1cea1 ; 0x1ce98 $7
-	ld a, $c
-	ld [$c109], a
-	jr .done ; 0x1ce9f $e
-.asm_1cea1
-	ld a, $8
-	ld [$c109], a
-	jr .done ; 0x1cea6 $7
-.asm_1cea8
-	cp $4
-	ret nz
-	xor a
-	ld [$c109], a
-.done
-	ret
-
-OaksLabScript15: ; 1ceb0 (7:4eb0)
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	call EnableAutoTextBoxDrawing
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $15
-	ld [$ff8c], a
-	call DisplayTextID
-	call OaksLabScript_1d02b
-	ld a, $2a
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, [$cd37]
-	ld [$d157], a
-	ld b, $0
-	ld c, a
-	ld hl, $cc97
-	ld a, $40
-	call FillMemory
-	ld [hl], $ff
-	ld a, $1
-	ld [$ff8c], a
-	ld de, $cc97
-	call MoveSprite
-
-	ld a, $10
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript_1cefd ; 1cefd (7:4efd)
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $8
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	jp Func_34a6 ; face object
-
-OaksLabScript16: ; 1cf12 (7:4f12)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	call EnableAutoTextBoxDrawing
-	call Func_2307
-	ld a, $fc
-	ld [wJoypadForbiddenButtonsMask], a
-	call OaksLabScript_1cefd
-	ld a, $16
-	ld [$ff8c], a
-	call DisplayTextID
-	call DelayFrame
-	call OaksLabScript_1cefd
-	ld a, $17
-	ld [$ff8c], a
-	call DisplayTextID
-	call DelayFrame
-	call OaksLabScript_1cefd
-	ld a, $18
-	ld [$ff8c], a
-	call DisplayTextID
-	call DelayFrame
-	ld a, $19
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld a, $2f
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $30
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	call OaksLabScript_1cefd
-	ld a, $1a
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $c
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	call Delay3
-	ld a, $1b
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d74b
-	set 5, [hl]
-	ld hl, $d74e
-	set 0, [hl]
-	ld a, $1
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $2
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, [$d157]
-	ld b, $0
-	ld c, a
-	ld hl, $cc97
-	xor a
-	call FillMemory
-	ld [hl], $ff
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $1
-	ld [$ff8c], a
-	ld de, $cc97
-	call MoveSprite
-
-	ld a, $11
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript17: ; 1cfd4 (7:4fd4)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	call Func_2307
-	ld a, $2a
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d7eb
-	set 0, [hl]
-	res 1, [hl]
-	set 7, [hl]
-	ld a, $22
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, $5
-	ld [W_PALLETTOWNCURSCRIPT], a
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-
-	ld a, $12
-	ld [W_OAKSLABCURSCRIPT], a
-	ret
-
-OaksLabScript18: ; 1d009 (7:5009)
-	ret
-
-OaksLabScript_1d00a: ; 1d00a (7:500a)
-	ld hl, wBagItems
-	ld bc, $0000
-.asm_1d010
-	ld a, [hli]
-	cp $ff
-	ret z
-	cp OAKS_PARCEL
-	jr z, .GotParcel ; 0x1d016 $4
-	inc hl
-	inc c
-	jr .asm_1d010 ; 0x1d01a $f4
-.GotParcel
-	ld hl, $d31d
-	ld a, c
-	ld [wWhichPokemon], a
-	ld a, $1
-	ld [$cf96], a
-	jp RemoveItemFromInventory
-
-OaksLabScript_1d02b: ; 1d02b (7:502b)
-	ld a, $7c
-	ld [$ffeb], a
-	ld a, $8
-	ld [$ffee], a
-	ld a, [W_YCOORD]
-	cp $3
-	jr nz, .asm_1d045 ; 0x1d038 $b
-	ld a, $4
-	ld [$cd37], a
-	ld a, $30
-	ld b, $b
-	jr .asm_1d068 ; 0x1d043 $23
-.asm_1d045
-	cp $1
-	jr nz, .asm_1d054 ; 0x1d047 $b
-	ld a, $2
-	ld [$cd37], a
-	ld a, $30
-	ld b, $9
-	jr .asm_1d068 ; 0x1d052 $14
-.asm_1d054
-	ld a, $3
-	ld [$cd37], a
-	ld b, $a
-	ld a, [W_XCOORD]
-	cp $4
-	jr nz, .asm_1d066 ; 0x1d060 $4
-	ld a, $40
-	jr .asm_1d068 ; 0x1d064 $2
-.asm_1d066
-	ld a, $20
-.asm_1d068
-	ld [$ffec], a
-	ld a, b
-	ld [$ffed], a
-	ld a, $1
-	ld [$cf13], a
-	call Func_32f9
-	ret
-
-OaksLabScript_1d076: ; 1d076 (7:5076)
-	ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28
-	ld a, l
-	ld [W_MAPTEXTPTR], a
-	ld a, h
-	ld [W_MAPTEXTPTR+1], a
-	ret
-
-OaksLabTextPointers: ; 1d082 (7:5082)
-	dw OaksLabText1
-	dw OaksLabText2
-	dw OaksLabText3
-	dw OaksLabText4
-	dw OaksLabText5
-	dw OaksLabText6
-	dw OaksLabText7
-	dw OaksLabText8
-	dw OaksLabText9
-	dw OaksLabText10
-	dw OaksLabText11
-	dw OaksLabText12
-	dw OaksLabText13
-	dw OaksLabText14
-	dw OaksLabText15
-	dw OaksLabText16
-	dw OaksLabText17
-	dw OaksLabText18
-	dw OaksLabText19
-	dw OaksLabText20
-	dw OaksLabText21
-	dw OaksLabText22
-	dw OaksLabText23
-	dw OaksLabText24
-	dw OaksLabText25
-	dw OaksLabText26
-	dw OaksLabText27
-	dw OaksLabText28
-	dw OaksLabText29
-	dw OaksLabText30
-	dw OaksLabText31
-	dw OaksLabText32
-	dw OaksLabText33
-	dw OaksLabText34
-	dw OaksLabText35
-	dw OaksLabText36
-	dw OaksLabText37
-	dw OaksLabText38
-
-OaksLabText28: ; 1d0ce (7:50ce)
-OaksLabText1: ; 1d0ce (7:50ce)
-	db $08 ; asm
-	ld a, [$d74b]
-	bit 0, a
-	jr nz, .asm_1d0de ; 0x1d0d4
-	ld hl, OaksLabGaryText1
-	call PrintText
-	jr .asm_1d0f0 ; 0x1d0dc
-.asm_1d0de ; 0x1d0de
-	bit 2, a
-	jr nz, .asm_1d0ea ; 0x1d0e0
-	ld hl, OaksLabText40
-	call PrintText
-	jr .asm_1d0f0 ; 0x1d0e8
-.asm_1d0ea ; 0x1d0ea
-	ld hl, OaksLabText41
-	call PrintText
-.asm_1d0f0 ; 0x1d0f0
-	jp TextScriptEnd
-
-OaksLabGaryText1: ; 1d0f3 (7:50f3)
-	TX_FAR _OaksLabGaryText1
-	db "@"
-
-OaksLabText40: ; 1d0f8 (7:50f8)
-	TX_FAR _OaksLabText40
-	db "@"
-
-OaksLabText41: ; 1d0fd (7:50fd)
-	TX_FAR _OaksLabText41
-	db "@"
-
-OaksLabText29: ; 1d102 (7:5102)
-OaksLabText2: ; 1d102 (7:5102)
-	db $8
-	ld a, SQUIRTLE
-	ld [$cd3d], a
-	ld a, $3
-	ld [$cd3e], a
-	ld a, CHARMANDER
-	ld b, $2
-	jr OaksLabScript_1d133 ; 0x1d111 $20
-
-OaksLabText30: ; 1d113 (7:5113)
-OaksLabText3: ; 1d113 (7:5113)
-	db $8
-	ld a, BULBASAUR
-	ld [$cd3d], a
-	ld a, $4
-	ld [$cd3e], a
-	ld a, SQUIRTLE
-	ld b, $3
-	jr OaksLabScript_1d133 ; 0x1d122 $f
-
-OaksLabText31: ; 1d124 (7:5124)
-OaksLabText4: ; 1d124 (7:5124)
-	db $8
-	ld a, CHARMANDER
-	ld [$cd3d], a
-	ld a, $2
-	ld [$cd3e], a
-	ld a, BULBASAUR
-	ld b, $4
-
-OaksLabScript_1d133: ; 1d133 (7:5133)
-	ld [$cf91], a
-	ld [$d11e], a
-	ld a, b
-	ld [$cf13], a
-	ld a, [$d74b]
-	bit 2, a
-	jp nz, OaksLabScript_1d22d
-	bit 1, a
-	jr nz, OaksLabScript_1d157 ; 0x1d147 $e
-	ld hl, OaksLabText39
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabText39: ; 1d152 (7:5152)
-	TX_FAR _OaksLabText39
-	db "@"
-
-OaksLabScript_1d157: ; 1d157 (7:5157)
-	ld a, $5
-	ld [$ff8c], a
-	ld a, $9
-	ld [$ff8b], a
-	call Func_34fc
-	ld [hl], $0
-	; manually fixed some disassembler issues around here
-	ld a, $1
-	ld [$FF8c], a
-	ld a, $9
-	ld [$ff8b], a
-	call Func_34fc
-	ld [hl], $c
-	ld hl, $d730
-	set 6, [hl]
-	ld a, $46
-	call Predef
-	ld hl, $d730
-	res 6, [hl]
-	call ReloadMapData
-	ld c, $a
-	call DelayFrames
-	ld a, [$cf13]
-	cp $2
-	jr z, OaksLabLookAtCharmander
-	cp $3
-	jr z, OaksLabLookAtSquirtle
-	jr OaksLabLookAtBulbasaur
-
-OaksLabLookAtCharmander ; 0x1d195
-	ld hl, OaksLabCharmanderText
-	jr OaksLabMonChoiceMenu
-OaksLabCharmanderText: ; 1d19a (7:519a)
-	TX_FAR _OaksLabCharmanderText
-	db "@"
-
-OaksLabLookAtSquirtle: ; 1d19f (7:519f)
-	ld hl, OaksLabSquirtleText
-	jr OaksLabMonChoiceMenu
-OaksLabSquirtleText: ; 1d1a4 (7:51a4)
-	TX_FAR _OaksLabSquirtleText
-	db "@"
-
-OaksLabLookAtBulbasaur: ; 1d1a9 (7:51a9)
-	ld hl, OaksLabBulbasaurText
-	jr OaksLabMonChoiceMenu
-OaksLabBulbasaurText: ; 1d1ae (7:51ae)
-	TX_FAR _OaksLabBulbasaurText
-	db "@"
-
-OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
-	call PrintText
-	ld a, $1
-	ld [$cc3c], a
-	call YesNoChoice ; yes/no menu
-	ld a, [$cc26]
-	and a
-	jr nz, OaksLabMonChoiceEnd
-	ld a, [$cf91]
-	ld [$d717], a
-	ld [$d11e], a
-	call GetMonName
-	ld a, [$cf13]
-	cp $2
-	jr nz, asm_1d1db ; 0x1d1d5 $4
-	ld a, $2b
-	jr asm_1d1e5 ; 0x1d1d9 $a
-asm_1d1db: ; 1d1db (7:51db)
-	cp $3
-	jr nz, asm_1d1e3 ; 0x1d1dd $4
-	ld a, $2c
-	jr asm_1d1e5 ; 0x1d1e1 $2
-asm_1d1e3: ; 1d1e3 (7:51e3)
-	ld a, $2d
-asm_1d1e5: ; 1d1e5 (7:51e5)
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, OaksLabMonEnergeticText
-	call PrintText
-	ld hl, OaksLabReceivedMonText
-	call PrintText
-	xor a
-	ld [$cc49], a
-	ld a, $5
-	ld [$d127], a
-	ld a, [$cf91]
-	ld [$d11e], a
-	call AddPokemonToParty
-	ld hl, $d72e
-	set 3, [hl]
-	ld a, $fc
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $8
-	ld [W_OAKSLABCURSCRIPT], a
-OaksLabMonChoiceEnd: ; 1d21f (7:521f)
-	jp TextScriptEnd
-
-OaksLabMonEnergeticText: ; 1d222 (7:5222)
-	TX_FAR _OaksLabMonEnergeticText
-	db "@"
-
-OaksLabReceivedMonText: ; 1d227 (7:5227)
-	TX_FAR _OaksLabReceivedMonText
-	db $11, "@"
-
-OaksLabScript_1d22d: ; 1d22d (7:522d)
-	ld a, $5
-	ld [$ff8c], a
-	ld a, $9
-	ld [$ff8b], a
-	call Func_34fc
-	ld [hl], $0
-	ld hl, OaksLabLastMonText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabLastMonText: ; 1d243 (7:5243)
-	TX_FAR _OaksLabLastMonText
-	db "@"
-
-OaksLabText32: ; 1d248 (7:5248)
-OaksLabText5: ; 1d248 (7:5248)
-	db $08 ; asm
-	ld a, [$d747]
-	bit 6, a
-	jr nz, .asm_50e81 ; 0x1d24e
-	ld hl, $d2f7
-	ld b, $13
-	call CountSetBits
-	ld a, [$d11e]
-	cp $2
-	jr c, .asm_b28b0 ; 0x1d25d
-	ld a, [$d74b]
-	bit 5, a
-	jr z, .asm_b28b0 ; 0x1d264
-.asm_50e81 ; 0x1d266
-	ld hl, UnnamedText_1d31d
-	call PrintText
-	ld a, $1
-	ld [$cc3c], a
-	ld a, $56
-	call Predef
-	jp .asm_0f042
-.asm_b28b0 ; 0x1d279
-	ld b,POKE_BALL
-	call IsItemInBag
-	jr nz, .asm_17c30 ; 0x1d27e
-	ld a, [$d7eb]
-	bit 5, a
-	jr nz, .asm_f1adc ; 0x1d285
-	ld a, [$d74b]
-	bit 5, a
-	jr nz, .asm_333a2 ; 0x1d28c
-	bit 3, a
-	jr nz, .asm_76269 ; 0x1d290
-	ld a, [$d72e]
-	bit 3, a
-	jr nz, .asm_4a5e0 ; 0x1d297
-	ld hl, UnnamedText_1d2f0
-	call PrintText
-	jr .asm_0f042 ; 0x1d29f
-.asm_4a5e0 ; 0x1d2a1
-	ld hl, UnnamedText_1d2f5
-	call PrintText
-	jr .asm_0f042 ; 0x1d2a7
-.asm_76269 ; 0x1d2a9
-	ld b, OAKS_PARCEL
-	call IsItemInBag
-	jr nz, .asm_a8fcf ; 0x1d2ae
-	ld hl, UnnamedText_1d2fa
-	call PrintText
-	jr .asm_0f042 ; 0x1d2b6
-.asm_a8fcf ; 0x1d2b8
-	ld hl, OaksLabDeliverParcelText
-	call PrintText
-	call OaksLabScript_1d00a
-	ld a, $f
-	ld [W_OAKSLABCURSCRIPT], a
-	jr .asm_0f042 ; 0x1d2c6
-.asm_333a2 ; 0x1d2c8
-	ld hl, OaksLabAroundWorldText
-	call PrintText
-	jr .asm_0f042 ; 0x1d2ce
-.asm_f1adc ; 0x1d2d0
-	ld hl, $d74b
-	bit 4, [hl]
-	set 4, [hl]
-	jr nz, .asm_17c30 ; 0x1d2d7
-	ld bc, (POKE_BALL << 8) | 5
-	call GiveItem
-	ld hl, OaksLabGivePokeballsText
-	call PrintText
-	jr .asm_0f042 ; 0x1d2e5
-.asm_17c30 ; 0x1d2e7
-	ld hl, OaksLabPleaseVisitText
-	call PrintText
-.asm_0f042 ; 0x1d2ed
-	jp TextScriptEnd
-
-UnnamedText_1d2f0: ; 1d2f0 (7:52f0)
-	TX_FAR _UnnamedText_1d2f0
-	db "@"
-
-UnnamedText_1d2f5: ; 1d2f5 (7:52f5)
-	TX_FAR _UnnamedText_1d2f5
-	db "@"
-
-UnnamedText_1d2fa: ; 1d2fa (7:52fa)
-	TX_FAR _UnnamedText_1d2fa
-	db "@"
-
-OaksLabDeliverParcelText: ; 1d2ff (7:52ff)
-	TX_FAR _OaksLabDeliverParcelText1
-	db $11
-	TX_FAR _OaksLabDeliverParcelText2
-	db "@"
-
-OaksLabAroundWorldText: ; 1d309 (7:5309)
-	TX_FAR _OaksLabAroundWorldText
-	db "@"
-
-OaksLabGivePokeballsText: ; 1d30e (7:530e)
-	TX_FAR _OaksLabGivePokeballsText1
-	db $11
-	TX_FAR _OaksLabGivePokeballsText2
-	db "@"
-
-OaksLabPleaseVisitText: ; 1d318 (7:5318)
-	TX_FAR _OaksLabPleaseVisitText
-	db "@"
-
-UnnamedText_1d31d: ; 1d31d (7:531d)
-	TX_FAR _UnnamedText_1d31d
-	db "@"
-
-OaksLabText34: ; 1d322 (7:5322)
-OaksLabText33: ; 1d322 (7:5322)
-OaksLabText7: ; 1d322 (7:5322)
-OaksLabText6: ; 1d322 (7:5322)
-	db $08 ; asm
-	ld hl, UnnamedText_1d32c
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1d32c: ; 1d32c (7:532c)
-	TX_FAR _UnnamedText_1d32c
-	db "@"
-
-OaksLabText35: ; 1d331 (7:5331)
-OaksLabText8: ; 1d331 (7:5331)
-	TX_FAR _OaksLabText8
-	db "@"
-
-OaksLabText36: ; 1d336 (7:5336)
-OaksLabText9: ; 1d336 (7:5336)
-	db $08 ; asm
-	ld hl, UnnamedText_1d340
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1d340: ; 1d340 (7:5340)
-	TX_FAR _UnnamedText_1d340
-	db "@"
-
-OaksLabText17: ; 1d345 (7:5345)
-	db $8
-	ld hl, OaksLabRivalWaitingText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalWaitingText: ; 1d34f (7:534f)
-	TX_FAR _OaksLabRivalWaitingText
-	db "@"
-
-OaksLabText18: ; 1d354 (7:5354)
-	db $8
-	ld hl, OaksLabChooseMonText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabChooseMonText: ; 1d35e (7:535e)
-	TX_FAR _OaksLabChooseMonText
-	db "@"
-
-OaksLabText19: ; 1d363 (7:5363)
-	db $8
-	ld hl, OaksLabRivalInterjectionText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalInterjectionText: ; 1d36d (7:536d)
-	TX_FAR _OaksLabRivalInterjectionText
-	db "@"
-
-OaksLabText20: ; 1d372 (7:5372)
-	db $8
-	ld hl, OaksLabBePatientText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabBePatientText: ; 1d37c (7:537c)
-	TX_FAR _OaksLabBePatientText
-	db "@"
-
-OaksLabText12: ; 1d381 (7:5381)
-	db $8
-	ld hl, OaksLabLeavingText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabLeavingText: ; 1d38b (7:538b)
-	TX_FAR _OaksLabLeavingText
-	db "@"
-
-OaksLabText13: ; 1d390 (7:5390)
-	db $8
-	ld hl, OaksLabRivalPickingMonText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalPickingMonText: ; 1d39a (7:539a)
-	TX_FAR _OaksLabRivalPickingMonText
-	db "@"
-
-OaksLabText14: ; 1d39f (7:539f)
-	db $8
-	ld hl, OaksLabRivalReceivedMonText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9)
-	TX_FAR _OaksLabRivalReceivedMonText
-	db $11, "@"
-
-OaksLabText15: ; 1d3af (7:53af)
-	db $8
-	ld hl, OaksLabRivalChallengeText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalChallengeText: ; 1d3b9 (7:53b9)
-	TX_FAR _OaksLabRivalChallengeText
-	db "@"
-
-UnnamedText_1d3be: ; 1d3be (7:53be)
-	TX_FAR _UnnamedText_1d3be
-	db "@"
-
-UnnamedText_1d3c3: ; 1d3c3 (7:53c3)
-	TX_FAR _UnnamedText_1d3c3
-	db "@"
-
-OaksLabText16: ; 1d3c8 (7:53c8)
-	db $8
-	ld hl, OaksLabRivalToughenUpText
-	call PrintText
-	jp TextScriptEnd
-
-OaksLabRivalToughenUpText: ; 1d3d2 (7:53d2)
-	TX_FAR _OaksLabRivalToughenUpText
-	db "@"
-
-OaksLabText21: ; 1d3d7 (7:53d7)
-	TX_FAR _OaksLabText21
-	db "@"
-
-OaksLabText22: ; 1d3dc (7:53dc)
-	TX_FAR _OaksLabText22
-	db "@"
-
-OaksLabText23: ; 1d3e1 (7:53e1)
-	TX_FAR _OaksLabText23
-	db "@"
-
-OaksLabText24: ; 1d3e6 (7:53e6)
-	TX_FAR _OaksLabText24
-	db "@"
-
-OaksLabText25: ; 1d3eb (7:53eb)
-	TX_FAR _OaksLabText25
-	db $11, "@"
-
-OaksLabText26: ; 1d3f1 (7:53f1)
-	TX_FAR _OaksLabText26
-	db "@"
-
-OaksLabText27: ; 1d3f6 (7:53f6)
-	TX_FAR _OaksLabText27
-	db "@"
-
-OaksLabText38: ; 1d3fb (7:53fb)
-OaksLabText37: ; 1d3fb (7:53fb)
-OaksLabText11: ; 1d3fb (7:53fb)
-OaksLabText10: ; 1d3fb (7:53fb)
-	db $08 ; asm
-	ld hl, UnnamedText_1d405
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1d405: ; 1d405 (7:5405)
-	TX_FAR _UnnamedText_1d405
-	db "@"
-
 INCLUDE "data/mapObjects/oakslab.asm"
 
 INCLUDE "data/mapHeaders/viridianmart.asm"
 
-ViridianMartScript: ; 1d46e (7:546e)
-	call ViridianMartScript_1d47d
-	call EnableAutoTextBoxDrawing
-	ld hl, ViridianMartScriptPointers
-	ld a, [W_VIRIDIANMARKETCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/viridianmart.asm"
 
-ViridianMartScript_1d47d: ; 1d47d (7:547d)
-	ld a, [$d74e]
-	bit 0, a
-	jr nz, .asm_1d489 ; 0x1d482 $5
-	ld hl, ViridianMartTextPointers ; $54e0
-	jr .asm_1d48c ; 0x1d487 $3
-.asm_1d489
-	ld hl, ViridianMartTextPointers + $a ; $54ea ; starts at ViridianMartText6
-.asm_1d48c
-	ld a, l
-	ld [W_MAPTEXTPTR], a
-	ld a, h
-	ld [W_MAPTEXTPTR+1], a
-	ret
-
-ViridianMartScriptPointers: ; 1d495 (7:5495)
-	dw ViridianMartScript0
-	dw ViridianMartScript1
-	dw ViridianMartScript2
-
-ViridianMartScript0: ; 1d49b (7:549b)
-	call UpdateSprites
-	ld a, $4
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $ccd3
-	ld de, RLEMovement1d4bb
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $1
-	ld [W_VIRIDIANMARKETCURSCRIPT], a
-	ret
-
-RLEMovement1d4bb: ; 1d4bb (7:54bb)
-	db $20, $01
-	db $40, $02
-	db $ff
-
-ViridianMartScript1: ; 1d4c0 (7:54c0)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	ld a, $5
-	ld [$ff8c], a
-	call DisplayTextID
-	ld bc, (OAKS_PARCEL << 8) + 1
-	call GiveItem
-	ld hl, $d74e
-	set 1, [hl]
-	ld a, $2
-	ld [W_VIRIDIANMARKETCURSCRIPT], a
-	; fallthrough
-ViridianMartScript2: ; 1d4df (7:54df)
-	ret
-
-ViridianMartTextPointers: ; 1d4e0 (7:54e0)
-	dw ViridianMartText1
-	dw ViridianMartText2
-	dw ViridianMartText3
-	dw ViridianMartText4
-	dw ViridianMartText5
-	dw ViridianMartText6
-	dw ViridianMartText2
-	dw ViridianMartText3
-
-ViridianMartText1: ; 1d4f0 (7:54f0)
-	TX_FAR _ViridianMartText1
-	db "@"
-
-ViridianMartText4: ; 1d4f5 (7:54f5)
-	TX_FAR _ViridianMartText4
-	db "@"
-
-ViridianMartText5: ; 1d4fa (7:54fa)
-	TX_FAR ViridianMartParcelQuestText
-	db $11
-	db "@"
-
-ViridianMartText2: ; 1d500 (7:5500)
-	TX_FAR _ViridianMartText2
-	db "@"
-
-ViridianMartText3: ; 1d505 (7:5505)
-	TX_FAR _ViridianMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/viridianmart.asm"
 
 ViridianMartBlocks: ; 1d530 (7:5530)
@@ -33839,332 +29685,44 @@
 
 INCLUDE "data/mapHeaders/school.asm"
 
-SchoolScript: ; 1d54c (7:554c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/school.asm"
 
-SchoolTextPointers: ; 1d54f (7:554f)
-	dw SchoolText1
-	dw SchoolText2
-
-SchoolText1: ; 1d553 (7:5553)
-	TX_FAR _SchoolText1
-	db "@"
-
-SchoolText2: ; 1d558 (7:5558)
-	TX_FAR _SchoolText2
-	db "@"
-
 INCLUDE "data/mapObjects/school.asm"
 
 INCLUDE "data/mapHeaders/viridianhouse.asm"
 
-ViridianHouseScript: ; 1d58a (7:558a)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/viridianhouse.asm"
 
-ViridianHouseTextPointers: ; 1d58d (7:558d)
-	dw ViridianHouseText1
-	dw ViridianHouseText2
-	dw ViridianHouseText3
-	dw ViridianHouseText4
-
-ViridianHouseText1: ; 1d595 (7:5595)
-	TX_FAR _ViridianHouseText1
-	db "@"
-
-ViridianHouseText2: ; 1d59a (7:559a)
-	TX_FAR _ViridianHouseText2
-	db "@"
-
-ViridianHouseText3: ; 1d59f (7:559f)
-	db $08 ; asm
-	ld hl, UnnamedText_1d5b1
-	call PrintText
-	ld a, SPEAROW
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-UnnamedText_1d5b1: ; 1d5b1 (7:55b1)
-	TX_FAR _UnnamedText_1d5b1
-	db "@"
-
-ViridianHouseText4: ; 1d5b6 (7:55b6)
-	TX_FAR _ViridianHouseText4
-	db "@"
-
 INCLUDE "data/mapObjects/viridianhouse.asm"
 
 INCLUDE "data/mapHeaders/pewterhouse1.asm"
 
-PewterHouse1Script: ; 1d5f3 (7:55f3)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/pewterhouse1.asm"
 
-PewterHouse1TextPointers: ; 1d5f6 (7:55f6)
-	dw PewterHouse1Text1
-	dw PewterHouse1Text2
-	dw PewterHouse1Text3
-
-PewterHouse1Text1: ; 1d5fc (7:55fc)
-	TX_FAR _PewterHouse1Text1
-	db $08 ; asm
-	ld a, NIDORAN_M
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-PewterHouse1Text2: ; 1d60c (7:560c)
-	TX_FAR _PewterHouse1Text2
-	db "@"
-
-PewterHouse1Text3: ; 1d611 (7:5611)
-	TX_FAR _PewterHouse1Text3
-	db "@"
-
 INCLUDE "data/mapObjects/pewterhouse1.asm"
 
 INCLUDE "data/mapHeaders/pewterhouse2.asm"
 
-PewterHouse2Script: ; 1d648 (7:5648)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/pewterhouse2.asm"
 
-PewterHouse2TextPointers: ; 1d64b (7:564b)
-	dw PewterHouse2Text1
-	dw PewterHouse2Text2
-
-PewterHouse2Text1: ; 1d64f (7:564f)
-	TX_FAR _PewterHouse2Text1
-	db "@"
-
-PewterHouse2Text2: ; 1d654 (7:5654)
-	TX_FAR _PewterHouse2Text2
-	db "@"
-
 INCLUDE "data/mapObjects/pewterhouse2.asm"
 
 INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm"
 
-CeruleanHouseTrashedScript: ; 1d685 (7:5685)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/ceruleanhousetrashed.asm"
 
-CeruleanHouseTrashedTextPointers: ; 1d689 (7:5689)
-	dw CeruleanHouseTrashedText1
-	dw CeruleanHouseTrashedText2
-	dw CeruleanHouseTrashedText3
-
-CeruleanHouseTrashedText1: ; 1d68f (7:568f)
-	db $08 ; asm
-	ld b, $e4
-	ld a, $1c
-	call Predef
-	and b
-	jr z, .asm_f8734 ; 0x1d698
-	ld hl, UnnamedText_1d6b0
-	call PrintText
-	jr .asm_8dfe9 ; 0x1d6a0
-.asm_f8734 ; 0x1d6a2
-	ld hl, UnnamedText_1d6ab
-	call PrintText
-.asm_8dfe9 ; 0x1d6a8
-	jp TextScriptEnd
-
-UnnamedText_1d6ab: ; 1d6ab (7:56ab)
-	TX_FAR _UnnamedText_1d6ab
-	db "@"
-
-UnnamedText_1d6b0: ; 1d6b0 (7:56b0)
-	TX_FAR _UnnamedText_1d6b0
-	db "@"
-
-CeruleanHouseTrashedText2: ; 1d6b5 (7:56b5)
-	TX_FAR _CeruleanHouseTrashedText2
-	db "@"
-
-CeruleanHouseTrashedText3: ; 1d6ba (7:56ba)
-	TX_FAR _CeruleanHouseTrashedText3
-	db "@"
-
 INCLUDE "data/mapObjects/ceruleanhousetrashed.asm"
 
 INCLUDE "data/mapHeaders/ceruleanhouse1.asm"
 
-CeruleanHouse1Script: ; 1d6f6 (7:56f6)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ceruleanhouse1.asm"
 
-CeruleanHouse1TextPointers: ; 1d6f9 (7:56f9)
-	dw CeruleanHouse1Text1
-	dw CeruleanHouse1Text2
-
-CeruleanHouse1Text1: ; 1d6fd (7:56fd)
-	TX_FAR _CeruleanHouse1Text1
-	db "@"
-
-CeruleanHouse1Text2: ; 1d702 (7:5702)
-	db $08 ; asm
-	ld a, $6
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/ceruleanhouse1.asm"
 
 INCLUDE "data/mapHeaders/bikeshop.asm"
 
-BikeShopScript: ; 1d73c (7:573c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/bikeshop.asm"
 
-BikeShopTextPointers: ; 1d73f (7:573f)
-	dw BikeShopText1
-	dw BikeShopText2
-	dw BikeShopText3
-
-BikeShopText1: ; 1d745 (7:5745)
-	db $08 ; asm
-	ld a, [$d75f]
-	bit 0, a
-	jr z, .asm_260d4 ; 0x1d74b
-	ld hl, UnnamedText_1d82f
-	call PrintText
-	jp .Done
-.asm_260d4 ; 0x1d756
-	ld b, BIKE_VOUCHER
-	call IsItemInBag
-	jr z, .asm_41190 ; 0x1d75b
-	ld hl, UnnamedText_1d81f
-	call PrintText
-	ld bc, (BICYCLE << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, BIKE_VOUCHER
-	ldh [$db], a
-	ld b, BANK(RemoveItemByID)
-	ld hl, RemoveItemByID
-	call Bankswitch
-	ld hl, $d75f
-	set 0, [hl]
-	ld hl, UnnamedText_1d824
-	call PrintText
-	jr .Done
-.BagFull
-	ld hl, UnnamedText_1d834
-	call PrintText
-	jr .Done
-.asm_41190 ; 0x1d78c
-	ld hl, UnnamedText_1d810
-	call PrintText
-	xor a
-	ld [$cc26], a
-	ld [$cc2a], a
-	ld a, $3
-	ld [$cc29], a
-	ld a, $1
-	ld [$cc28], a
-	ld a, $2
-	ld [$cc24], a
-	ld a, $1
-	ld [$cc25], a
-	ld hl, $d730
-	set 6, [hl]
-	ld hl, wTileMap
-	ld b, $4
-	ld c, $f
-	call TextBoxBorder
-	call UpdateSprites
-	FuncCoord 2, 2 ; $c3ca
-	ld hl, Coord
-	ld de, BikeShopMenuText
-	call PlaceString
-	FuncCoord 8, 3 ; $c3e4
-	ld hl, Coord
-	ld de, BikeShopMenuPrice
-	call PlaceString
-	ld hl, UnnamedText_1d815
-	call PrintText
-	call HandleMenuInput
-	bit 1, a
-	jr nz, .asm_b7579 ; 0x1d7dc
-	ld hl, $d730
-	res 6, [hl]
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_b7579 ; 0x1d7e7
-	ld hl, UnnamedText_1d81a
-	call PrintText
-.asm_b7579 ; 0x1d7ef
-	ld hl, UnnamedText_1d82a
-	call PrintText
-.Done
-	jp TextScriptEnd
-
-BikeShopMenuText: ; 1d7f8 (7:57f8)
-	db   "BICYCLE"
-	next "CANCEL@"
-
-BikeShopMenuPrice: ; 1d807 (7:5807)
-	db "¥1000000@"
-
-UnnamedText_1d810: ; 1d810 (7:5810)
-	TX_FAR _UnnamedText_1d810
-	db "@"
-
-UnnamedText_1d815: ; 1d815 (7:5815)
-	TX_FAR _UnnamedText_1d815
-	db "@"
-
-UnnamedText_1d81a: ; 1d81a (7:581a)
-	TX_FAR _UnnamedText_1d81a
-	db "@"
-
-UnnamedText_1d81f: ; 1d81f (7:581f)
-	TX_FAR _UnnamedText_1d81f
-	db "@"
-
-UnnamedText_1d824: ; 1d824 (7:5824)
-	TX_FAR _UnnamedText_1d824 ; 0x98eb2
-	db $11, "@"
-
-UnnamedText_1d82a: ; 1d82a (7:582a)
-	TX_FAR _UnnamedText_1d82a
-	db "@"
-
-UnnamedText_1d82f: ; 1d82f (7:582f)
-	TX_FAR _UnnamedText_1d82f
-	db "@"
-
-UnnamedText_1d834: ; 1d834 (7:5834)
-	TX_FAR _UnnamedText_1d834
-	db "@"
-
-BikeShopText2: ; 1d839 (7:5839)
-	db $08 ; asm
-	ld hl, UnnamedText_1d843
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1d843: ; 1d843 (7:5843)
-	TX_FAR _UnnamedText_1d843
-	db "@"
-
-BikeShopText3: ; 1d848 (7:5848)
-	db $08 ; asm
-	ld a, [$d75f]
-	bit 0, a
-	ld hl, UnnamedText_1d861
-	jr nz, .asm_34d2d ; 0x1d851
-	ld hl, UnnamedText_1d85c
-.asm_34d2d ; 0x1d856
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1d85c: ; 1d85c (7:585c)
-	TX_FAR _UnnamedText_1d85c
-	db "@"
-
-UnnamedText_1d861: ; 1d861 (7:5861)
-	TX_FAR _UnnamedText_1d861
-	db "@"
-
 INCLUDE "data/mapObjects/bikeshop.asm"
 
 BikeShopBlocks: ; 1d88c (7:588c)
@@ -34172,522 +29730,32 @@
 
 INCLUDE "data/mapHeaders/lavenderhouse1.asm"
 
-LavenderHouse1Script: ; 1d8a8 (7:58a8)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/lavenderhouse1.asm"
 
-LavenderHouse1TextPointers: ; 1d8ac (7:58ac)
-	dw LavenderHouse1Text1
-	dw LavenderHouse1Text2
-	dw LavenderHouse1Text3
-	dw LavenderHouse1Text4
-	dw LavenderHouse1Text5
-	dw LavenderHouse1Text6
-
-LavenderHouse1Text1: ; 1d8b8 (7:58b8)
-	db $08 ; asm
-	ld a, [$d7e0]
-	bit 7, a
-	jr nz, .asm_72e5d ; 0x1d8be
-	ld hl, UnnamedText_1d8d1
-	call PrintText
-	jr .asm_6957f ; 0x1d8c6
-.asm_72e5d ; 0x1d8c8
-	ld hl, UnnamedText_1d8d6
-	call PrintText
-.asm_6957f ; 0x1d8ce
-	jp TextScriptEnd
-
-UnnamedText_1d8d1: ; 1d8d1 (7:58d1)
-	TX_FAR _UnnamedText_1d8d1
-	db "@"
-
-UnnamedText_1d8d6: ; 1d8d6 (7:58d6)
-	TX_FAR _UnnamedText_1d8d6
-	db "@"
-
-LavenderHouse1Text2: ; 1d8db (7:58db)
-	db $08 ; asm
-	ld a, [$d7e0]
-	bit 7, a
-	jr nz, .asm_06470 ; 0x1d8e1
-	ld hl, UnnamedText_1d8f4
-	call PrintText
-	jr .asm_3d208 ; 0x1d8e9
-.asm_06470 ; 0x1d8eb
-	ld hl, UnnamedText_1d8f9
-	call PrintText
-.asm_3d208 ; 0x1d8f1
-	jp TextScriptEnd
-
-UnnamedText_1d8f4: ; 1d8f4 (7:58f4)
-	TX_FAR _UnnamedText_1d8f4
-	db "@"
-
-UnnamedText_1d8f9: ; 1d8f9 (7:58f9)
-	TX_FAR _UnnamedText_1d8f9
-	db "@"
-
-LavenderHouse1Text3: ; 1d8fe (7:58fe)
-	TX_FAR _LavenderHouse1Text3
-	db $8
-	ld a, PSYDUCK
-	call PlayCry
-	jp TextScriptEnd
-
-LavenderHouse1Text4: ; 1d90b (7:590b)
-	TX_FAR _LavenderHouse1Text4
-	db $8
-	ld a, NIDORINO
-	call PlayCry
-	jp TextScriptEnd
-
-LavenderHouse1Text5: ; 1d918 (7:5918)
-	db $08 ; asm
-	ld a, [$d76c]
-	bit 0, a
-	jr nz, .asm_15ac2 ; 0x1d91e
-	ld hl, UnnamedText_1d94c
-	call PrintText
-	ld bc, (POKE_FLUTE << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedFluteText
-	call PrintText
-	ld hl, $d76c
-	set 0, [hl]
-	jr .asm_da749 ; 0x1d939
-.BagFull
-	ld hl, FluteNoRoomText
-	call PrintText
-	jr .asm_da749 ; 0x1d941
-.asm_15ac2 ; 0x1d943
-	ld hl, MrFujiAfterFluteText
-	call PrintText
-.asm_da749 ; 0x1d949
-	jp TextScriptEnd
-
-UnnamedText_1d94c: ; 1d94c (7:594c)
-	TX_FAR _UnnamedText_1d94c
-	db "@"
-
-ReceivedFluteText: ; 1d951 (7:5951)
-	TX_FAR _ReceivedFluteText
-	db $11
-	TX_FAR _FluteExplanationText
-	db "@"
-
-FluteNoRoomText: ; 1d95b (7:595b)
-	TX_FAR _FluteNoRoomText
-	db "@"
-
-MrFujiAfterFluteText: ; 1d960 (7:5960)
-	TX_FAR _MrFujiAfterFluteText
-	db "@"
-
-LavenderHouse1Text6: ; 1d965 (7:5965)
-	TX_FAR _LavenderHouse1Text6
-	db "@"
-
 INCLUDE "data/mapObjects/lavenderhouse1.asm"
 
 INCLUDE "data/mapHeaders/lavenderhouse2.asm"
 
-LavenderHouse2Script: ; 1d9ae (7:59ae)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/lavenderhouse2.asm"
 
-LavenderHouse2TextPointers: ; 1d9b2 (7:59b2)
-	dw LavenderHouse2Text1
-	dw LavenderHouse2Text2
-
-LavenderHouse2Text1: ; 1d9b6 (7:59b6)
-	TX_FAR _LavenderHouse2Text1
-	db $8
-	ld a, CUBONE
-	call PlayCry
-	jp TextScriptEnd
-
-LavenderHouse2Text2: ; 1d9c3 (7:59c3)
-	db $08 ; asm
-	ld a, [$d7e0]
-	bit 7, a
-	jr nz, .asm_65711 ; 0x1d9c9
-	ld hl, UnnamedText_1d9dc
-	call PrintText
-	jr .asm_64be1 ; 0x1d9d1
-.asm_65711 ; 0x1d9d3
-	ld hl, UnnamedText_1d9e1
-	call PrintText
-.asm_64be1 ; 0x1d9d9
-	jp TextScriptEnd
-
-UnnamedText_1d9dc: ; 1d9dc (7:59dc)
-	TX_FAR _UnnamedText_1d9dc
-	db "@"
-
-UnnamedText_1d9e1: ; 1d9e1 (7:59e1)
-	TX_FAR _UnnamedText_1d9e1
-	db "@"
-
 INCLUDE "data/mapObjects/lavenderhouse2.asm"
 
 INCLUDE "data/mapHeaders/namerater.asm"
 
-NameRaterScript: ; 1da12 (7:5a12)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/namerater.asm"
 
-Func_1da15: ; 1da15 (7:5a15)
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	ret
-
-Func_1da20: ; 1da20 (7:5a20)
-	ld hl, W_PARTYMON1OT
-	ld bc, $000b
-	ld a, [wWhichPokemon]
-	call AddNTimes
-	ld de, W_PLAYERNAME
-	ld c, $b
-	call .asm_1da47
-	jr c, .asm_1da52 ; 0x1da34 $1c
-	ld hl, $d177
-	ld bc, $002c
-	ld a, [wWhichPokemon]
-	call AddNTimes
-	ld de, $d359
-	ld c, $2
-.asm_1da47
-	ld a, [de]
-	cp [hl]
-	jr nz, .asm_1da52 ; 0x1da49 $7
-	inc hl
-	inc de
-	dec c
-	jr nz, .asm_1da47 ; 0x1da4e $f7
-	and a
-	ret
-.asm_1da52
-	scf
-	ret
-
-NameRaterTextPointers: ; 1da54 (7:5a54)
-	dw NameRaterText1
-
-NameRaterText1: ; 1da56 (7:5a56)
-	db $8
-	call SaveScreenTilesToBuffer2
-	ld hl, UnnamedText_1dab3
-	call Func_1da15
-	jr nz, .asm_1daae ; 0x1da60 $4c
-	ld hl, UnnamedText_1dab8
-	call PrintText
-	xor a
-	ld [$d07d], a
-	ld [$cfcb], a
-	ld [$cc35], a
-	call DisplayPartyMenu
-	push af
-	call GBPalWhiteOutWithDelay3
-	call Func_3dbe
-	call LoadGBPal
-	pop af
-	jr c, .asm_1daae ; 0x1da80 $2c
-	call GetPartyMonName2
-	call Func_1da20
-	ld hl, UnnamedText_1dad1
-	jr c, .asm_1daa8 ; 0x1da8b $1b
-	ld hl, UnnamedText_1dabd
-	call Func_1da15
-	jr nz, .asm_1daae ; 0x1da93 $19
-	ld hl, UnnamedText_1dac2
-	call PrintText
-	ld b, BANK(Func_655c)
-	ld hl, Func_655c
-	call Bankswitch
-	jr c, .asm_1daae ; 0x1daa3 $9
-	ld hl, UnnamedText_1dac7
-.asm_1daa8
-	call PrintText
-	jp TextScriptEnd
-.asm_1daae
-	ld hl, UnnamedText_1dacc
-	jr .asm_1daa8 ; 0x1dab1 $f5
-
-UnnamedText_1dab3: ; 1dab3 (7:5ab3)
-	TX_FAR _UnnamedText_1dab3
-	db "@"
-
-UnnamedText_1dab8: ; 1dab8 (7:5ab8)
-	TX_FAR _UnnamedText_1dab8
-	db "@"
-
-UnnamedText_1dabd: ; 1dabd (7:5abd)
-	TX_FAR _UnnamedText_1dabd
-	db "@"
-
-UnnamedText_1dac2: ; 1dac2 (7:5ac2)
-	TX_FAR _UnnamedText_1dac2
-	db "@"
-
-UnnamedText_1dac7: ; 1dac7 (7:5ac7)
-	TX_FAR _UnnamedText_1dac7
-	db "@"
-
-UnnamedText_1dacc: ; 1dacc (7:5acc)
-	TX_FAR _UnnamedText_1dacc
-	db "@"
-
-UnnamedText_1dad1: ; 1dad1 (7:5ad1)
-	TX_FAR _UnnamedText_1dad1
-	db "@"
-
 INCLUDE "data/mapObjects/namerater.asm"
 
 INCLUDE "data/mapHeaders/vermilionhouse1.asm"
 
-VermilionHouse1Script: ; 1dafc (7:5afc)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/vermilionhouse1.asm"
 
-VermilionHouse1TextPointers: ; 1db00 (7:5b00)
-	dw VermilionHouse1Text1
-	dw VermilionHouse1Text2
-	dw VermilionHouse1Text3
-
-VermilionHouse1Text1: ; 1db06 (7:5b06)
-	TX_FAR _VermilionHouse1Text1
-	db "@"
-
-VermilionHouse1Text2: ; 1db0b (7:5b0b)
-	TX_FAR _VermilionHouse1Text2
-	db $08 ; asm
-	ld a, PIDGEY
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-VermilionHouse1Text3: ; 1db1b (7:5b1b)
-	TX_FAR _VermilionHouse1Text3
-	db "@"
-
 INCLUDE "data/mapObjects/vermilionhouse1.asm"
 
 INCLUDE "data/mapHeaders/vermiliondock.asm"
 
-VermilionDockScript: ; 1db52 (7:5b52)
-	call EnableAutoTextBoxDrawing
-	ld hl, $d803
-	bit 4, [hl]
-	jr nz, .asm_1db8d ; 0x1db5a $31
-	bit 0, [hl]
-	ret z
-	ld a, [$d42f]
-	cp $1
-	ret nz
-	bit 2, [hl]
-	jp z, VermilionDock_1db9b
-	set 4, [hl]
-	call Delay3
-	ld hl, $d730
-	set 7, [hl]
-	ld hl, $ccd3
-	ld a, $40
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld a, $3
-	ld [$cd38], a
-	xor a
-	ld [$c206], a
-	ld [$cd3b], a
-	dec a
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-.asm_1db8d
-	bit 5, [hl]
-	ret nz
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld [wJoypadForbiddenButtonsMask], a
-	set 5, [hl]
-	ret
+INCLUDE "scripts/vermiliondock.asm"
 
-VermilionDock_1db9b: ; 1db9b (7:5b9b)
-	set 2, [hl]
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [$c0ee], a
-	call PlaySound
-	ld c, BANK(Music_Surfing)
-	ld a, MUSIC_SURFING
-	call PlayMusic
-	ld b, BANK(LoadSmokeTileFourTimes)
-	ld hl, LoadSmokeTileFourTimes
-	call Bankswitch
-	xor a
-	ld [$c102], a
-	ld c, $78
-	call DelayFrames
-	ld b, $9c
-	call CopyScreenTileBufferToVRAM
-	FuncCoord 0, 10 ; $c468
-	ld hl, Coord
-	ld bc, $0078
-	ld a, $14
-	call FillMemory
-	ld a, $1
-	ld [$ffba], a
-	call Delay3
-	xor a
-	ld [$ffba], a
-	ld [$cd3d], a
-	ld [$ff49], a
-	ld a, $58
-	ld [$cd3e], a
-	ld hl, $d526
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	push bc
-	push hl
-	ld a, (SFX_02_54 - SFX_Headers_02) / 3
-	call PlaySoundWaitForCurrent
-	ld a, $ff
-	ld [$cfcb], a
-	ld d, $0
-	ld e, $8
-.asm_1dbfa
-	ld hl, $0002
-	add hl, bc
-	ld a, l
-	ld [$d526], a
-	ld a, h
-	ld [$d527], a
-	push hl
-	push de
-	call ScheduleEastColumnRedraw
-	call VermilionDock_1dc59
-	pop de
-	ld b, $10
-.asm_1dc11
-	call VermilionDock_1dc42
-	ld c, $8
-.asm_1dc16
-	call VermilionDock_1dc7c
-	dec c
-	jr nz, .asm_1dc16 ; 0x1dc1a $fa
-	inc d
-	dec b
-	jr nz, .asm_1dc11 ; 0x1dc1e $f1
-	pop bc
-	dec e
-	jr nz, .asm_1dbfa ; 0x1dc22 $d6
-	xor a
-	ld [$ff4a], a
-	ld [$ffb0], a
-	call VermilionDock_1dc94
-	ld a, $90
-	ld [$ffb0], a
-	ld a, $1
-	ld [$cfcb], a
-	pop hl
-	pop bc
-	ld [hl], b
-	dec hl
-	ld [hl], c
-	call LoadPlayerSpriteGraphics
-	ld hl, $d3ae
-	dec [hl]
-	ret
-
-VermilionDock_1dc42: ; 1dc42 (7:5c42)
-	push bc
-	push de
-	ld hl, $c311
-	ld a, [$cd3d]
-	swap a
-	ld c, a
-	ld de, $0004
-.asm_1dc50
-	inc [hl]
-	inc [hl]
-	add hl, de
-	dec c
-	jr nz, .asm_1dc50 ; 0x1dc54 $fa
-	pop de
-	pop bc
-	ret
-
-VermilionDock_1dc59: ; 1dc59 (7:5c59)
-	ld a, [$cd3e]
-	sub $10
-	ld [$cd3e], a
-	ld c, a
-	ld b, $64
-	ld a, [$cd3d]
-	inc a
-	ld [$cd3d], a
-	ld a, $1
-	ld de, VermilionDockOAMBlock
-	call WriteOAMBlock
-	ret
-
-VermilionDockOAMBlock: ; 1dc74 (7:5c74)
-	db $fc, $10
-	db $fd, $10
-	db $fe, $10
-	db $ff, $10
-
-VermilionDock_1dc7c: ; 1dc7c (7:5c7c)
-	ld h, d
-	ld l, $50
-	call .asm_1dc86
-	ld h, $0
-	ld l, $80
-.asm_1dc86
-	ld a, [$ff44]
-	cp l
-	jr nz, .asm_1dc86 ; 0x1dc89 $fb
-	ld a, h
-	ld [$ff43], a
-.asm_1dc8e
-	ld a, [$ff44]
-	cp h
-	jr z, .asm_1dc8e ; 0x1dc91 $fb
-	ret
-
-VermilionDock_1dc94: ; 1dc94 (7:5c94)
-	ld hl, $cc5b
-	ld bc, $00b4
-	ld a, $14
-	call FillMemory
-	ld hl, $9940
-	ld de, $cc5b
-	ld bc, $000c
-	call CopyVideoData
-	ld hl, $c754
-	ld a, $d
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld a, (SFX_02_54 - SFX_Headers_02) / 3
-	call PlaySound
-	ld c, $78
-	call DelayFrames
-	ret
-
-VermilionDockTextPointers: ; 1dcbf (7:5cbf)
-	dw VermilionDockText1
-
-VermilionDockText1: ; 1dcc1 (7:5cc1)
-	TX_FAR _VermilionDockText1
-	db "@"
-
 INCLUDE "data/mapObjects/vermiliondock.asm"
 
 VermilionDockBlocks: ; 1dcda (7:5cda)
@@ -34695,49 +29763,14 @@
 
 INCLUDE "data/mapHeaders/celadonmansion5.asm"
 
-CeladonMansion5Script: ; 1dd3a (7:5d3a)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmansion5.asm"
 
-CeladonMansion5TextPointers: ; 1dd3d (7:5d3d)
-	dw CeladonMansion5Text1
-	dw CeladonMansion5Text2
-
-CeladonMansion5Text1: ; 1dd41 (7:5d41)
-	TX_FAR _CeladonMansion5Text1
-	db "@"
-
-CeladonMansion5Text2: ; 1dd46 (7:5d46)
-	db $08 ; asm
-	ld bc,(EEVEE << 8) | 25
-	call GivePokemon
-	jr nc, .asm_24365 ; 0x1dd4d
-	ld a, $45
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-.asm_24365 ; 0x1dd59
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/celadonmansion5.asm"
 
 INCLUDE "data/mapHeaders/fuchsiamart.asm"
 
-FuchsiaMartScript: ; 1dd88 (7:5d88)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/fuchsiamart.asm"
 
-FuchsiaMartTextPointers: ; 1dd8b (7:5d8b)
-	dw FuchsiaMartText1
-	dw FuchsiaMartText2
-	dw FuchsiaMartText3
-
-FuchsiaMartText2: ; 1dd91 (7:5d91)
-	TX_FAR _FuchsiaMartText2
-	db "@"
-
-FuchsiaMartText3: ; 1dd96 (7:5d96)
-	TX_FAR _FuchsiaMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiamart.asm"
 
 FuchsiaMartBlocks: ; 1ddc1 (7:5dc1)
@@ -34745,250 +29778,32 @@
 
 INCLUDE "data/mapHeaders/saffronhouse1.asm"
 
-SaffronHouse1Script: ; 1dddd (7:5ddd)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/saffronhouse1.asm"
 
-SaffronHouse1TextPointers: ; 1dde0 (7:5de0)
-	dw SaffronHouse1Text1
-	dw SaffronHouse1Text2
-	dw SaffronHouse1Text3
-	dw SaffronHouse1Text4
-
-SaffronHouse1Text1: ; 1dde8 (7:5de8)
-	TX_FAR _SaffronHouse1Text1
-	db "@"
-
-SaffronHouse1Text2: ; 1dded (7:5ded)
-	TX_FAR _SaffronHouse1Text2
-	db $8
-	ld a, PIDGEY
-	call PlayCry
-	jp TextScriptEnd
-
-SaffronHouse1Text3: ; 1ddfa (7:5dfa)
-	TX_FAR _SaffronHouse1Text3
-	db "@"
-
-SaffronHouse1Text4: ; 1ddff (7:5dff)
-	TX_FAR _SaffronHouse1Text4
-	db "@"
-
 INCLUDE "data/mapObjects/saffronhouse1.asm"
 
 INCLUDE "data/mapHeaders/saffronhouse2.asm"
 
-SaffronHouse2Script: ; 1de3c (7:5e3c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/saffronhouse2.asm"
 
-SaffronHouse2TextPointers: ; 1de3f (7:5e3f)
-	dw SaffronHouse2Text1
-
-SaffronHouse2Text1: ; 1de41 (7:5e41)
-	db $08 ; asm
-	ld a, [$d7bd]
-	bit 0, a
-	jr nz, .asm_9e72b ; 0x1de47
-	ld hl, TM29PreReceiveText
-	call PrintText
-	ld bc,(TM_29 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM29Text
-	call PrintText
-	ld hl, $d7bd
-	set 0, [hl]
-	jr .asm_fe4e1 ; 0x1de62
-.BagFull
-	ld hl, TM29NoRoomText
-	call PrintText
-	jr .asm_fe4e1 ; 0x1de6a
-.asm_9e72b ; 0x1de6c
-	ld hl, TM29ExplanationText
-	call PrintText
-.asm_fe4e1 ; 0x1de72
-	jp TextScriptEnd
-
-TM29PreReceiveText: ; 1de75 (7:5e75)
-	TX_FAR _TM29PreReceiveText
-	db "@"
-
-ReceivedTM29Text: ; 1de7a (7:5e7a)
-	TX_FAR _ReceivedTM29Text
-	db $0B, "@"
-
-TM29ExplanationText: ; 1de80 (7:5e80)
-	TX_FAR _TM29ExplanationText
-	db "@"
-
-TM29NoRoomText: ; 1de85 (7:5e85)
-	TX_FAR _TM29NoRoomText
-	db "@"
-
 INCLUDE "data/mapObjects/saffronhouse2.asm"
 
 INCLUDE "data/mapHeaders/diglettscaveroute2.asm"
 
-DiglettsCaveRoute2Script: ; 1deb0 (7:5eb0)
-	ld a, $d
-	ld [$d365], a
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/diglettscaveroute2.asm"
 
-DiglettsCaveRoute2TextPointers: ; 1deb8 (7:5eb8)
-	dw DiglettsCaveRoute2Text1
-
-DiglettsCaveRoute2Text1: ; 1deba (7:5eba)
-	TX_FAR _DiglettsCaveRoute2Text1
-	db "@"
-
 INCLUDE "data/mapObjects/diglettscaveroute2.asm"
 
 INCLUDE "data/mapHeaders/route2house.asm"
 
-Route2HouseScript: ; 1deed (7:5eed)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route2house.asm"
 
-Route2HouseTextPointers: ; 1def0 (7:5ef0)
-	dw Route2HouseText1
-	dw Route2HouseText2
-
-Route2HouseText1: ; 1def4 (7:5ef4)
-	TX_FAR _Route2HouseText1
-	db "@"
-
-Route2HouseText2: ; 1def9 (7:5ef9)
-	db $08 ; asm
-	ld a, $1
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/route2house.asm"
 
 INCLUDE "data/mapHeaders/route5gate.asm"
 
-Route5GateScript: ; 1df33 (7:5f33)
-	call EnableAutoTextBoxDrawing
-	ld a, [W_ROUTE5GATECURSCRIPT]
-	ld hl, Route5GateScriptPointers
-	jp CallFunctionInTable
+INCLUDE "scripts/route5gate.asm"
 
-Route5GateScriptPointers: ; 1df3f (7:5f3f)
-	dw Route5GateScript0
-	dw Route5GateScript1
-
-Route5GateScript_1df43: ; 1df43 (7:5f43)
-	ld a, $40
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	jp Func_3486
-
-Route5GateScript0: ; 1df50 (7:5f50)
-	ld a, [$d728]
-	bit 6, a
-	ret nz
-	ld hl, CoordsData_1df8f
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $2
-	ld [$d528], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld b, BANK(RemoveGuardDrink)
-	ld hl, RemoveGuardDrink
-	call Bankswitch
-	ld a, [$ffdb]
-	and a
-	jr nz, .asm_1df82 ; 0x1df70 $10
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	call Route5GateScript_1df43
-	ld a, $1
-	ld [W_ROUTE5GATECURSCRIPT], a
-	ret
-.asm_1df82
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d728
-	set 6, [hl]
-	ret
-
-CoordsData_1df8f: ; 1df8f (7:5f8f)
-	db 3,3
-	db 3,4
-	db $ff
-
-Route5GateScript1: ; 1df94 (7:5f94)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE5GATECURSCRIPT], a
-	ret
-
-Route5GateTextPointers: ; 1dfa4 (7:5fa4)
-	dw Route5GateText1
-	dw Route5GateText2
-	dw Route5GateText3
-
-Route8GateText1: ; 1dfaa (7:5faa)
-Route7GateText1: ; 1dfaa (7:5faa)
-Route6GateText1: ; 1dfaa (7:5faa)
-Route5GateText1: ; 1dfaa (7:5faa)
-	db $8
-	ld a, [$d728]
-	bit 6, a
-	jr nz, .asm_88856 ; 0x1dfb0 $2c
-	ld b, BANK(RemoveGuardDrink)
-	ld hl, RemoveGuardDrink
-	call Bankswitch
-	ld a, [$ffdb]
-	and a
-	jr nz, .asm_768a2 ; 0x1dfbd $11
-	ld hl, UnnamedText_1dfe7
-	call PrintText
-	call Route5GateScript_1df43
-	ld a, $1
-	ld [W_ROUTE5GATECURSCRIPT], a
-	jp TextScriptEnd
-.asm_768a2 ; 0x1dfd0
-	ld hl, UnnamedText_1dfec
-	call PrintText
-	ld hl, $d728
-	set 6, [hl]
-	jp TextScriptEnd
-.asm_88856 ; 0x1dfde
-	ld hl, UnnamedText_1dff6
-	call PrintText
-	jp TextScriptEnd
-
-Route8GateText2: ; 1dfe7 (7:5fe7)
-Route7GateText2: ; 1dfe7 (7:5fe7)
-Route6GateText2: ; 1dfe7 (7:5fe7)
-Route5GateText2: ; 1dfe7 (7:5fe7)
-UnnamedText_1dfe7: ; 1dfe7 (7:5fe7)
-	TX_FAR _UnnamedText_1dfe7
-	db "@"
-
-Route8GateText3: ; 1dfec (7:5fec)
-Route7GateText3: ; 1dfec (7:5fec)
-Route6GateText3: ; 1dfec (7:5fec)
-Route5GateText3: ; 1dfec (7:5fec)
-UnnamedText_1dfec: ; 1dfec (7:5fec)
-	TX_FAR _UnnamedText_8aaa9 ; 0x8aaa9
-	db $11
-	TX_FAR _UnnamedText_1dff1 ; 0x8aaef
-	db "@"
-
-UnnamedText_1dff6: ; 1dff6 (7:5ff6)
-	TX_FAR _UnnamedText_1dff6
-	db "@"
-
 INCLUDE "data/mapObjects/route5gate.asm"
 
 Route5GateBlocks: ; 1e025 (7:6025)
@@ -34996,79 +29811,8 @@
 
 INCLUDE "data/mapHeaders/route6gate.asm"
 
-Route6GateScript: ; 1e03d (7:603d)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route6GateScriptPointers
-	ld a, [W_ROUTE6GATECURSCRIPT]
-	call CallFunctionInTable
-	ret
+INCLUDE "scripts/route6gate.asm"
 
-Route6GateScriptPointers: ; 1e04a (7:604a)
-	dw Route6GateScript0
-	dw Route6GateScript1
-
-Route6GateScript0: ; 1e04e (7:604e)
-	ld a, [$d728]
-	bit 6, a
-	ret nz
-	ld hl, CoordsData_1e08c
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $1
-	ld [$d528], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld b, BANK(RemoveGuardDrink)
-	ld hl, RemoveGuardDrink
-	call Bankswitch
-	ld a, [$ffdb]
-	and a
-	jr nz, .asm_1e080 ; 0x1e06e $10
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	call Func_1e0a1
-	ld a, $1
-	ld [W_ROUTE6GATECURSCRIPT], a
-	ret
-.asm_1e080
-	ld hl, $d728
-	set 6, [hl]
-	ld a, $3
-	ld [$ff8c], a
-	jp DisplayTextID
-
-CoordsData_1e08c: ; 1e08c (7:608c)
-	db $02,$03
-	db $02,$04,$FF
-
-Route6GateScript1: ; 1e091 (7:6091)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE6GATECURSCRIPT], a
-	ret
-
-Func_1e0a1: ; 1e0a1 (7:60a1)
-	ld hl, $d730
-	set 7, [hl]
-	ld a, $80
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	xor a
-	ld [$c206], a
-	ld [$cd3b], a
-	ret
-
-Route6GateTextPointers: ; 1e0b8 (7:60b8)
-	dw Route6GateText1
-	dw Route6GateText2
-	dw Route6GateText3
-
 INCLUDE "data/mapObjects/route6gate.asm"
 
 Route6GateBlocks: ; 1e0e8 (7:60e8)
@@ -35076,82 +29820,8 @@
 
 INCLUDE "data/mapHeaders/route7gate.asm"
 
-Route7GateScript: ; 1e100 (7:6100)
-	call EnableAutoTextBoxDrawing
-	ld a, [W_ROUTE7GATECURSCRIPT]
-	ld hl, Route7GateScriptPointers
-	call CallFunctionInTable
-	ret
+INCLUDE "scripts/route7gate.asm"
 
-Route7GateScriptPointers: ; 1e10d (7:610d)
-	dw Route7GateScript0
-	dw Route7GateScript1
-
-Route7GateScript_1e111: ; 1e111 (7:6111)
-	ld hl, $d730
-	set 7, [hl]
-	ld a, $20
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	xor a
-	ld [$c206], a
-	ld [$cd3b], a
-	ret
-
-Route7GateScript0: ; 1e128 (7:6128)
-	ld a, [$d728]
-	bit 6, a
-	ret nz
-	ld hl, CoordsData_1e167
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $8
-	ld [$d528], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld b, BANK(RemoveGuardDrink)
-	ld hl, RemoveGuardDrink
-	call Bankswitch
-	ld a, [$ffdb]
-	and a
-	jr nz, .asm_1e15a ; 0x1e148 $10
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	call Route7GateScript_1e111
-	ld a, $1
-	ld [W_ROUTE7GATECURSCRIPT], a
-	ret
-.asm_1e15a
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d728
-	set 6, [hl]
-	ret
-
-CoordsData_1e167: ; 1e167 (7:6167)
-	db 3,3
-	db 4,3
-	db $ff
-
-Route7GateScript1: ; 1e16c (7:616c)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE7GATECURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route7GateTextPointers: ; 1e17f (7:617f)
-	dw Route7GateText1
-	dw Route7GateText2
-	dw Route7GateText3
-
 INCLUDE "data/mapObjects/route7gate.asm"
 
 Route7GateBlocks: ; 1e1af (7:61af)
@@ -35159,79 +29829,8 @@
 
 INCLUDE "data/mapHeaders/route8gate.asm"
 
-Route8GateScript: ; 1e1c7 (7:61c7)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route8GateScriptPointers
-	ld a, [W_ROUTE8GATECURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/route8gate.asm"
 
-Route8GateScriptPointers: ; 1e1d3 (7:61d3)
-	dw Route8GateScript0
-	dw Route8GateScript1
-
-Route8GateScript_1e1d7: ; 1e1d7 (7:61d7)
-	ld hl, $d730
-	set 7, [hl]
-	ld a, $10
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	xor a
-	ld [$c206], a
-	ld [$cd3b], a
-	ret
-
-Route8GateScript0: ; 1e1ee (7:61ee)
-	ld a, [$d728]
-	bit 6, a
-	ret nz
-	ld hl, CoordsData_1e22c
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $2
-	ld [$d528], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld b, BANK(RemoveGuardDrink)
-	ld hl, RemoveGuardDrink
-	call Bankswitch
-	ld a, [$ffdb]
-	and a
-	jr nz, .asm_1e220 ; 0x1e20e $10
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	call Route8GateScript_1e1d7
-	ld a, $1
-	ld [W_ROUTE8GATECURSCRIPT], a
-	ret
-.asm_1e220
-	ld hl, $d728
-	set 6, [hl]
-	ld a, $3
-	ld [$ff8c], a
-	jp DisplayTextID
-
-CoordsData_1e22c: ; 1e22c (7:622c)
-	db 3,2
-	db 4,2
-	db $ff
-
-Route8GateScript1: ; 1e231 (7:6231)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE8GATECURSCRIPT], a
-	ret
-
-Route8GateTextPointers: ; 1e241 (7:6241)
-	dw Route8GateText1
-	dw Route8GateText2
-	dw Route8GateText3
-
 INCLUDE "data/mapObjects/route8gate.asm"
 
 Route8GateBlocks: ; 1e271 (7:6271)
@@ -35239,199 +29838,14 @@
 
 INCLUDE "data/mapHeaders/undergroundpathentranceroute8.asm"
 
-UndergroundPathEntranceRoute8Script: ; 1e289 (7:6289)
-	ld a, $13
-	ld [$d365], a
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/undergroundpathentranceroute8.asm"
 
-UndergroundPathEntranceRoute8TextPointers: ; 1e291 (7:6291)
-	dw UndergroundPathEntranceRoute8Text1
-
-UndergroundPathEntranceRoute8Text1: ; 1e293 (7:6293)
-	TX_FAR _UndergroundPathEntRoute8Text1
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm"
 
 INCLUDE "data/mapHeaders/powerplant.asm"
 
-PowerPlantScript: ; 1e2c6 (7:62c6)
-	call EnableAutoTextBoxDrawing
-	ld hl, PowerPlantTrainerHeaders
-	ld de, PowerPlantScriptPointers
-	ld a, [W_POWERPLANTCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POWERPLANTCURSCRIPT], a
-	ret
+INCLUDE "scripts/powerplant.asm"
 
-PowerPlantScriptPointers: ; 1e2d9 (7:62d9)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-PowerPlantTextPointers: ; 1e2df (7:62df)
-	dw PowerPlantText1
-	dw PowerPlantText2
-	dw PowerPlantText3
-	dw PowerPlantText4
-	dw PowerPlantText5
-	dw PowerPlantText6
-	dw PowerPlantText7
-	dw PowerPlantText8
-	dw PowerPlantText9
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-PowerPlantTrainerHeaders: ; 1e2fb (7:62fb)
-PowerPlantTrainerHeader0: ; 1e2fb (7:62fb)
-	db 1 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader1: ; 1e307 (7:6307)
-	db 2 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader2: ; 1e313 (7:6313)
-	db 3 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader3: ; 1e31f (7:631f)
-	db 4 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader4: ; 1e32b (7:632b)
-	db 5 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader5: ; 1e337 (7:6337)
-	db 6 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader6: ; 1e343 (7:6343)
-	db 7 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader7: ; 1e34f (7:634f)
-	db 8 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw VoltorbBattleText ; TextBeforeBattle
-	dw VoltorbBattleText ; TextAfterBattle
-	dw VoltorbBattleText ; TextEndBattle
-	dw VoltorbBattleText ; TextEndBattle
-
-PowerPlantTrainerHeader8: ; 1e35b (7:635b)
-	db 9 ; flag's bit
-	db 0 ; view range
-	dw $d7d3 ; flag's byte
-	dw ZapdosBattleText ; TextBeforeBattle
-	dw ZapdosBattleText ; TextAfterBattle
-	dw ZapdosBattleText ; TextEndBattle
-	dw ZapdosBattleText ; TextEndBattle
-
-	db $ff
-
-asm_234cc: ; 1e368 (7:6368)
-	call TalkToTrainer
-	ld a, [W_CURMAPSCRIPT]
-	ld [W_POWERPLANTCURSCRIPT], a
-	jp TextScriptEnd
-
-PowerPlantText1: ; 1e374 (7:6374)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader0 ; $62fb
-	jr asm_234cc ; 0x1e378 $ee
-
-PowerPlantText2: ; 1e37a (7:637a)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader1 ; $6307
-	jr asm_234cc ; 0x1e37e $e8
-
-PowerPlantText3: ; 1e380 (7:6380)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader2 ; $6313
-	jr asm_234cc ; 0x1e384 $e2
-
-PowerPlantText4: ; 1e386 (7:6386)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader3 ; $631f
-	jr asm_234cc ; 0x1e38a $dc
-
-PowerPlantText5: ; 1e38c (7:638c)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader4 ; $632b
-	jr asm_234cc ; 0x1e390 $d6
-
-PowerPlantText6: ; 1e392 (7:6392)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader5 ; $6337
-	jr asm_234cc ; 0x1e396 $d0
-
-PowerPlantText7: ; 1e398 (7:6398)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader6 ; $6343
-	jr asm_234cc ; 0x1e39c $ca
-
-PowerPlantText8: ; 1e39e (7:639e)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader7 ; $634f
-	jr asm_234cc ; 0x1e3a2 $c4
-
-PowerPlantText9: ; 1e3a4 (7:63a4)
-	db $8 ; asm
-	ld hl, PowerPlantTrainerHeader8 ; $635b
-	jr asm_234cc ; 0x1e3a8 $be
-
-VoltorbBattleText: ; 1e3aa (7:63aa)
-	TX_FAR _VoltorbBattleText
-	db "@"
-
-ZapdosBattleText: ; 1e3af (7:63af)
-	TX_FAR _ZapdosBattleText
-	db $8
-	ld a, ZAPDOS
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/powerplant.asm"
 
 PowerPlantBlocks: ; 1e446 (7:6446)
@@ -35439,177 +29853,20 @@
 
 INCLUDE "data/mapHeaders/diglettscaveroute11.asm"
 
-DiglettsCaveEntranceRoute11Script: ; 1e5ba (7:65ba)
-	call EnableAutoTextBoxDrawing
-	ld a, $16
-	ld [$d365], a
-	ret
+INCLUDE "scripts/diglettscaveroute11.asm"
 
-DiglettsCaveEntranceRoute11TextPointers: ; 1e5c3 (7:65c3)
-	dw DiglettsCaveEntranceRoute11Text1
-
-DiglettsCaveEntranceRoute11Text1: ; 1e5c5 (7:65c5)
-	TX_FAR _DiglettsCaveEntRoute11Text1
-	db "@"
-
 INCLUDE "data/mapObjects/diglettscaveroute11.asm"
 
 INCLUDE "data/mapHeaders/route16house.asm"
 
-Route16HouseScript: ; 1e5f8 (7:65f8)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route16house.asm"
 
-Route16HouseTextPointers: ; 1e5fb (7:65fb)
-	dw Route16HouseText1
-	dw Route16HouseText2
-
-Route16HouseText1: ; 1e5ff (7:65ff)
-	db $08 ; asm
-	ld a, [$d7e0]
-	bit 6, a
-	ld hl, HM02ExplanationText
-	jr nz, .asm_13616 ; 0x1e608
-	ld hl, Route16HouseText3
-	call PrintText
-	ld bc, (HM_02 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d7e0
-	set 6, [hl]
-	ld hl, ReceivedHM02Text
-	jr .asm_13616 ; 0x1e620
-.BagFull
-	ld hl, HM02NoRoomText
-.asm_13616 ; 0x1e625
-	call PrintText
-	jp TextScriptEnd
-
-Route16HouseText3: ; 1e62b (7:662b)
-	TX_FAR _Route16HouseText3
-	db "@"
-
-ReceivedHM02Text: ; 1e630 (7:6630)
-	TX_FAR _ReceivedHM02Text
-	db $11, "@"
-
-HM02ExplanationText: ; 1e636 (7:6636)
-	TX_FAR _HM02ExplanationText
-	db "@"
-
-HM02NoRoomText: ; 1e63b (7:663b)
-	TX_FAR _HM02NoRoomText
-	db "@"
-
-Route16HouseText2: ; 1e640 (7:6640)
-	db $08 ; asm
-	ld hl, UnnamedText_1e652
-	call PrintText
-	ld a, FEAROW
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-UnnamedText_1e652: ; 1e652 (7:6652)
-	TX_FAR _UnnamedText_1e652
-	db "@"
-
 INCLUDE "data/mapObjects/route16house.asm"
 
 INCLUDE "data/mapHeaders/route22gate.asm"
 
-Route22GateScript: ; 1e683 (7:6683)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route22GateScriptPointers
-	ld a, [W_ROUTE22GATECURSCRIPT]
-	call CallFunctionInTable
-	ld a, [W_YCOORD]
-	cp $4
-	ld a, $22
-	jr c, .asm_1e69a ; 0x1e696 $2
-	ld a, $21
-.asm_1e69a
-	ld [$d365], a
-	ret
+INCLUDE "scripts/route22gate.asm"
 
-Route22GateScriptPointers: ; 1e69e (7:669e)
-	dw Route22GateScript0
-	dw Route22GateScript1
-	dw Route22GateScript2
-
-Route22GateScript0: ; 1e6a4 (7:66a4)
-	ld hl, Route22GateScriptCoords
-	call ArePlayerCoordsInArray
-	ret nc
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $1
-	ld [$ff8c], a
-	jp DisplayTextID
-
-Route22GateScriptCoords: ; 1e6b5 (7:66b5)
-	db 2,4
-	db 2,5
-	db $ff
-
-Func_1e6ba: ; 1e6ba (7:66ba)
-	ld a, $1
-	ld [$cd38], a
-	ld a, $80
-	ld [$ccd3], a
-	ld [$c109], a
-	ld [wJoypadForbiddenButtonsMask], a
-	jp Func_3486
-
-Route22GateScript1: ; 1e6cd (7:66cd)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	call Delay3
-	ld a, $0
-	ld [W_ROUTE22GATECURSCRIPT], a
-Route22GateScript2: ; 1e6de (7:66de)
-	ret
-
-Route22GateTextPointers: ; 1e6df (7:66df)
-	dw Route22GateText1
-
-Route22GateText1: ; 1e6e1 (7:66e1)
-	db $8
-	ld a, [W_OBTAINEDBADGES]
-	bit 0, a
-	jr nz, .asm_8a809 ; 0x1e6e7 $d
-	ld hl, UnnamedText_1e704
-	call PrintText
-	call Func_1e6ba
-	ld a, $1
-	jr .asm_20f7e ; 0x1e6f4 $8
-.asm_8a809 ; 0x1e6f6
-	ld hl, UnnamedText_1e71a
-	call PrintText
-	ld a, $2
-.asm_20f7e ; 0x1e6fe
-	ld [W_ROUTE22GATECURSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_1e704: ; 1e704 (7:6704)
-	TX_FAR _UnnamedText_1e704 ; 0x8cfbb
-	db $8
-	ld a, (SFX_02_51 - SFX_Headers_02) / 3
-	call PlaySoundWaitForCurrent
-	call WaitForSoundToFinish
-	ld hl, UnnamedText_1e715 ; $6715
-	ret
-
-UnnamedText_1e715: ; 1e715 (7:6715)
-	TX_FAR _UnnamedText_1e715
-	db "@"
-
-UnnamedText_1e71a: ; 1e71a (7:671a)
-	TX_FAR _UnnamedText_1e71a ; 0x8d03e
-	db $0B, "@"
-
 INCLUDE "data/mapObjects/route22gate.asm"
 
 Route22GateBlocks: ; 1e74a (7:674a)
@@ -35617,215 +29874,8 @@
 
 INCLUDE "data/mapHeaders/billshouse.asm"
 
-BillsHouseScript: ; 1e76a (7:676a)
-	call EnableAutoTextBoxDrawing
-	ld a, [W_BILLSHOUSECURSCRIPT]
-	ld hl, BillsHouseScriptPointers
-	jp CallFunctionInTable
+INCLUDE "scripts/billshouse.asm"
 
-BillsHouseScriptPointers: ; 1e776 (7:6776)
-	dw BillsHouseScript0
-	dw BillsHouseScript1
-	dw BillsHouseScript2
-	dw BillsHouseScript3
-	dw BillsHouseScript4
-	dw BillsHouseScript5
-
-BillsHouseScript0: ; 1e782 (7:6782)
-	ret
-
-BillsHouseScript1: ; 1e783 (7:6783)
-	ld a, [$c109]
-	and a
-	ld de, MovementData_1e79c
-	jr nz, .asm_1e78f ; 0x1e78a $3
-	ld de, MovementData_1e7a0
-.asm_1e78f
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $2
-	ld [W_BILLSHOUSECURSCRIPT], a
-	ret
-
-MovementData_1e79c: ; 1e79c (7:679c)
-	db $40,$40,$40,$FF
-
-MovementData_1e7a0: ; 1e7a0 (7:67a0)
-	db $C0,$40,$40,$80,$40,$FF
-
-BillsHouseScript2: ; 1e7a6 (7:67a6)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $61
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d7f2
-	set 6, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $3
-	ld [W_BILLSHOUSECURSCRIPT], a
-	ret
-
-BillsHouseScript3: ; 1e7c5 (7:67c5)
-	ld a, [$d7f2]
-	bit 3, a
-	ret z
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $2
-	ld [$cf13], a
-	ld a, $c
-	ld [$ffeb], a
-	ld a, $40
-	ld [$ffec], a
-	ld a, $6
-	ld [$ffed], a
-	ld a, $5
-	ld [$ffee], a
-	call Func_32f9
-	ld a, $62
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld c, $8
-	call DelayFrames
-	ld a, $2
-	ld [$ff8c], a
-	ld de, MovementData_1e807
-	call MoveSprite
-	ld a, $4
-	ld [W_BILLSHOUSECURSCRIPT], a
-	ret
-
-MovementData_1e807: ; 1e807 (7:6807)
-	db $00,$C0,$C0,$C0,$00,$FF
-
-BillsHouseScript4: ; 1e80d (7:680d)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d7f2
-	set 5, [hl]
-	ld hl, $d7f1
-	set 0, [hl]
-	ld a, $0
-	ld [W_BILLSHOUSECURSCRIPT], a
-	ret
-
-BillsHouseScript5: ; 1e827 (7:6827)
-	ld a, $4
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $0
-	ld [W_BILLSHOUSECURSCRIPT], a
-	ret
-
-BillsHouseTextPointers: ; 1e834 (7:6834)
-	dw BillsHouseText1
-	dw BillsHouseText2
-	dw BillsHouseText3
-	dw BillsHouseText4
-
-BillsHouseText4: ; 1e83c (7:683c)
-	db $fd
-
-BillsHouseText1: ; 1e83d (7:683d)
-	db $8
-	ld hl, UnnamedText_1e865
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, asm_6b196 ; 0x1e84b $d
-asm_4d03c: ; 1e84d (7:684d)
-	ld hl, UnnamedText_1e86a
-	call PrintText
-	ld a, $1
-	ld [W_BILLSHOUSECURSCRIPT], a
-	jr asm_fd4e2 ; 0x1e858 $8
-asm_6b196: ; 1e85a (7:685a)
-	ld hl, UnnamedText_1e86f
-	call PrintText
-	jr asm_4d03c ; 0x1e860 $eb
-asm_fd4e2 ; 0x1e862
-	jp TextScriptEnd
-
-UnnamedText_1e865: ; 1e865 (7:6865)
-	TX_FAR _UnnamedText_1e865 ; 0x8d267
-	db "@"
-
-UnnamedText_1e86a: ; 1e86a (7:686a)
-	TX_FAR _UnnamedText_1e86a ; 0x8d345
-	db "@"
-
-UnnamedText_1e86f: ; 1e86f (7:686f)
-	TX_FAR _UnnamedText_1e86f ; 0x8d391
-	db "@"
-
-BillsHouseText2: ; 1e874 (7:6874)
-	db $08 ; asm
-	ld a, [$d7f2]
-	bit 4, a
-	jr nz, .asm_5491f ; 0x1e87a
-	ld hl, BillThankYouText
-	call PrintText
-	ld bc, (S_S__TICKET << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, SSTicketReceivedText
-	call PrintText
-	ld hl, $d7f2
-	set 4, [hl]
-	ld a, $7
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, $9
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-.asm_5491f ; 0x1e8a9
-	ld hl, UnnamedText_1e8cb
-	call PrintText
-	jr .asm_bd408 ; 0x1e8af
-.BagFull
-	ld hl, SSTicketNoRoomText
-	call PrintText
-.asm_bd408 ; 0x1e8b7
-	jp TextScriptEnd
-
-BillThankYouText: ; 1e8ba (7:68ba)
-	TX_FAR _BillThankYouText
-	db "@"
-
-SSTicketReceivedText: ; 1e8bf (7:68bf)
-	TX_FAR _SSTicketReceivedText
-	db $11, $6, "@"
-
-SSTicketNoRoomText: ; 1e8c6 (7:68c6)
-	TX_FAR _SSTicketNoRoomText
-	db "@"
-
-UnnamedText_1e8cb: ; 1e8cb (7:68cb)
-	TX_FAR _UnnamedText_1e8cb
-	db "@"
-
-BillsHouseText3: ; 1e8d0 (7:68d0)
-	db $08 ; asm
-	ld hl, UnnamedText_1e8da
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_1e8da: ; 1e8da (7:68da)
-	TX_FAR _UnnamedText_1e8da
-	db "@"
-
 INCLUDE "data/mapObjects/billshouse.asm"
 
 BillsHouseBlocks: ; 1e905 (7:6905)
@@ -37207,7 +31257,7 @@
 	ld a, [$c102]
 	and $8
 	jr z, .asm_2ff2e
-	ld b, $45
+	ld b, COIN_CASE
 	ld a, $1c
 	call Predef
 	ld a, b
@@ -38128,7 +32178,7 @@
 	inc hl
 	ld [hl], e
 	call Func_3775f
-	ld hl, UnnamedText_37665
+	ld hl, SlotsMachineText_37665
 	call PrintText
 	call WaitForTextScrollButtonPress
 	call Func_3776b
@@ -38137,7 +32187,7 @@
 	ld [$ff48], a
 	jp .loop
 
-UnnamedText_37665: ; 37665 (d:7665)
+SlotsMachineText_37665: ; 37665 (d:7665)
 	db $08 ; asm
 	push bc
 	call Func_37728
@@ -51763,70 +45813,8 @@
 SafariZoneRestHouse4Blocks: ; 440fb (11:40fb)
 	INCBIN "maps/safarizoneresthouse1.blk"
 
-LavenderTownScript: ; 4410b (11:410b)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lavendertown.asm"
 
-LavenderTownTextPointers: ; 4410e (11:410e)
-	dw LavenderTownText1
-	dw LavenderTownText2
-	dw LavenderTownText3
-	dw LavenderTownText4
-	dw LavenderTownText5
-	dw MartSignText
-	dw PokeCenterSignText
-	dw LavenderTownText8
-	dw LavenderTownText9
-
-LavenderTownText1: ; 44120 (11:4120)
-	db $08 ; asm
-	ld hl, UnnamedText_4413c
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	ld hl, UnnamedText_44146
-	jr nz, .asm_40831 ; 0x44131
-	ld hl, UnnamedText_44141
-.asm_40831 ; 0x44136
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_4413c: ; 4413c (11:413c)
-	TX_FAR _UnnamedText_4413c
-	db "@"
-
-UnnamedText_44141: ; 44141 (11:4141)
-	TX_FAR _UnnamedText_44141
-	db "@"
-
-UnnamedText_44146: ; 44146 (11:4146)
-	TX_FAR _UnnamedText_44146
-	db "@"
-
-LavenderTownText2: ; 4414b (11:414b)
-	TX_FAR _LavenderTownText2
-	db "@"
-
-LavenderTownText3: ; 44150 (11:4150)
-	TX_FAR _LavenderTownText3
-	db "@"
-
-LavenderTownText4: ; 44155 (11:4155)
-	TX_FAR _LavenderTownText4
-	db "@"
-
-LavenderTownText5: ; 4415a (11:415a)
-	TX_FAR _LavenderTownText5
-	db "@"
-
-LavenderTownText8: ; 4415f (11:415f)
-	TX_FAR _LavenderTownText8
-	db "@"
-
-LavenderTownText9: ; 44164 (11:4164)
-	TX_FAR _LavenderTownText9
-	db "@"
-
 DisplayDexRating: ; 44169 (11:4169)
 	ld hl, wPokedexSeen
 	ld b, $13
@@ -51858,7 +45846,7 @@
 	ld [$D747], a
 	jr nz, .label3
 	push hl
-	ld hl, UnnamedText_441cc
+	ld hl, PokedexRatingText_441cc
 	call PrintText
 	pop hl
 	call PrintText
@@ -51885,278 +45873,118 @@
 	ld [de], a
 	ret
 
-UnnamedText_441cc: ; 441cc (11:41cc)
-	TX_FAR _UnnamedText_441cc
+PokedexRatingText_441cc: ; 441cc (11:41cc)
+	TX_FAR _OaksLabText_441cc
 	db "@"
 
 DexRatingsTable: ; 441d1 (11:41d1)
 	db 10
-	dw UnnamedText_44201
+	dw PokedexRatingText_44201
 	db 20
-	dw UnnamedText_44206
+	dw PokedexRatingText_44206
 	db 30
-	dw UnnamedText_4420b
+	dw PokedexRatingText_4420b
 	db 40
-	dw UnnamedText_44210
+	dw PokedexRatingText_44210
 	db 50
-	dw UnnamedText_44215
+	dw PokedexRatingText_44215
 	db 60
-	dw UnnamedText_4421a
+	dw PokedexRatingText_4421a
 	db 70
-	dw UnnamedText_4421f
+	dw PokedexRatingText_4421f
 	db 80
-	dw UnnamedText_44224
+	dw PokedexRatingText_44224
 	db 90
-	dw UnnamedText_44229
+	dw PokedexRatingText_44229
 	db 100
-	dw UnnamedText_4422e
+	dw PokedexRatingText_4422e
 	db 110
-	dw UnnamedText_44233
+	dw PokedexRatingText_44233
 	db 120
-	dw UnnamedText_44238
+	dw PokedexRatingText_44238
 	db 130
-	dw UnnamedText_4423d
+	dw PokedexRatingText_4423d
 	db 140
-	dw UnnamedText_44242
+	dw PokedexRatingText_44242
 	db 150
-	dw UnnamedText_44247
+	dw PokedexRatingText_44247
 	db 152
-	dw UnnamedText_4424c
+	dw PokedexRatingText_4424c
 
-UnnamedText_44201: ; 44201 (11:4201)
-	TX_FAR _UnnamedText_44201
+PokedexRatingText_44201: ; 44201 (11:4201)
+	TX_FAR _OaksLabText_44201
 	db "@"
 
-UnnamedText_44206: ; 44206 (11:4206)
-	TX_FAR _UnnamedText_44206
+PokedexRatingText_44206: ; 44206 (11:4206)
+	TX_FAR _OaksLabText_44206
 	db "@"
 
-UnnamedText_4420b: ; 4420b (11:420b)
-	TX_FAR _UnnamedText_4420b
+PokedexRatingText_4420b: ; 4420b (11:420b)
+	TX_FAR _OaksLabText_4420b
 	db "@"
 
-UnnamedText_44210: ; 44210 (11:4210)
-	TX_FAR _UnnamedText_44210
+PokedexRatingText_44210: ; 44210 (11:4210)
+	TX_FAR _OaksLabText_44210
 	db "@"
 
-UnnamedText_44215: ; 44215 (11:4215)
-	TX_FAR _UnnamedText_44215
+PokedexRatingText_44215: ; 44215 (11:4215)
+	TX_FAR _OaksLabText_44215
 	db "@"
 
-UnnamedText_4421a: ; 4421a (11:421a)
-	TX_FAR _UnnamedText_4421a
+PokedexRatingText_4421a: ; 4421a (11:421a)
+	TX_FAR _OaksLabText_4421a
 	db "@"
 
-UnnamedText_4421f: ; 4421f (11:421f)
-	TX_FAR _UnnamedText_4421f
+PokedexRatingText_4421f: ; 4421f (11:421f)
+	TX_FAR _OaksLabText_4421f
 	db "@"
 
-UnnamedText_44224: ; 44224 (11:4224)
-	TX_FAR _UnnamedText_44224
+PokedexRatingText_44224: ; 44224 (11:4224)
+	TX_FAR _OaksLabText_44224
 	db "@"
 
-UnnamedText_44229: ; 44229 (11:4229)
-	TX_FAR _UnnamedText_44229
+PokedexRatingText_44229: ; 44229 (11:4229)
+	TX_FAR _OaksLabText_44229
 	db "@"
 
-UnnamedText_4422e: ; 4422e (11:422e)
-	TX_FAR _UnnamedText_4422e
+PokedexRatingText_4422e: ; 4422e (11:422e)
+	TX_FAR _OaksLabText_4422e
 	db "@"
 
-UnnamedText_44233: ; 44233 (11:4233)
-	TX_FAR _UnnamedText_44233
+PokedexRatingText_44233: ; 44233 (11:4233)
+	TX_FAR _OaksLabText_44233
 	db "@"
 
-UnnamedText_44238: ; 44238 (11:4238)
-	TX_FAR _UnnamedText_44238
+PokedexRatingText_44238: ; 44238 (11:4238)
+	TX_FAR _OaksLabText_44238
 	db "@"
 
-UnnamedText_4423d: ; 4423d (11:423d)
-	TX_FAR _UnnamedText_4423d
+PokedexRatingText_4423d: ; 4423d (11:423d)
+	TX_FAR _OaksLabText_4423d
 	db "@"
 
-UnnamedText_44242: ; 44242 (11:4242)
-	TX_FAR _UnnamedText_44242
+PokedexRatingText_44242: ; 44242 (11:4242)
+	TX_FAR _OaksLabText_44242
 	db "@"
 
-UnnamedText_44247: ; 44247 (11:4247)
-	TX_FAR _UnnamedText_44247
+PokedexRatingText_44247: ; 44247 (11:4247)
+	TX_FAR _OaksLabText_44247
 	db "@"
 
-UnnamedText_4424c: ; 4424c (11:424c)
-	TX_FAR _UnnamedText_4424c
+PokedexRatingText_4424c: ; 4424c (11:424c)
+	TX_FAR _OaksLabText_4424c
 	db "@"
 
 INCLUDE "data/mapHeaders/viridianpokecenter.asm"
 
-ViridianPokeCenterScript: ; 4425d (11:425d)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/viridianpokecenter.asm"
 
-ViridianPokecenterTextPointers: ; 44263 (11:4263)
-	dw ViridianPokeCenterText1
-	dw ViridianPokeCenterText2
-	dw ViridianPokeCenterText3
-	dw ViridianPokeCenterText4
-
-ViridianPokeCenterText1: ; 4426b (11:426b)
-	db $ff
-
-ViridianPokeCenterText2: ; 4426c (11:426c)
-	TX_FAR _ViridianPokeCenterText1
-	db "@"
-
-ViridianPokeCenterText3: ; 44271 (11:4271)
-	TX_FAR _ViridianPokeCenterText3
-	db "@"
-
-ViridianPokeCenterText4: ; 44276 (11:4276)
-	db $f6
-
 INCLUDE "data/mapObjects/viridianpokecenter.asm"
 
 INCLUDE "data/mapHeaders/mansion1.asm"
 
-Mansion1Script: ; 442af (11:42af)
-	call Mansion1Subscript1
-	call EnableAutoTextBoxDrawing
-	ld hl, Mansion1TrainerHeaders
-	ld de, Mansion1ScriptPointers
-	ld a, [W_MANSION1CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MANSION1CURSCRIPT], a
-	ret
+INCLUDE "scripts/mansion1.asm"
 
-Mansion1Subscript1: ; 442c5 (11:42c5)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d796]
-	bit 0, a
-	jr nz, .asm_442ec ; 0x442d2 $18
-	ld bc, $060c
-	call Func_4430b
-	ld bc, $0308
-	call Func_44304
-	ld bc, $080a
-	call Func_44304
-	ld bc, $0d0d
-	jp Func_44304
-.asm_442ec
-	ld bc, $060c
-	call Func_44304
-	ld bc, $0308
-	call Func_4430b
-	ld bc, $080a
-	call Func_4430b
-	ld bc, $0d0d
-	jp Func_4430b
-
-Func_44304: ; 44304 (11:4304)
-	ld a, $2d
-	ld [$d09f], a
-	jr asm_44310
-
-Func_4430b: ; 4430b (11:430b)
-	ld a, $e
-	ld [$d09f], a
-asm_44310: ; 44310 (11:4310)
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	ret
-
-Func_44316: ; 44316 (11:4316)
-	ld a, [$c109]
-	cp $4
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $4
-	ld [H_SPRITEHEIGHT], a
-	jp DisplayTextID
-
-Mansion1ScriptPointers: ; 44326 (11:4326)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Mansion1TextPointers: ; 4432c (11:432c)
-	dw Mansion1Text1
-	dw Predef5CText
-	dw Predef5CText
-	dw Mansion1Text4
-
-Mansion1TrainerHeaders: ; 44334 (11:4334)
-Mansion1TrainerHeader0: ; 44334 (11:4334)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d798 ; flag's byte
-	dw Mansion1BattleText2 ; 0x434b TextBeforeBattle
-	dw Mansion1AfterBattleText2 ; 0x4355 TextAfterBattle
-	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
-	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
-
-	db $ff
-
-Mansion1Text1: ; 44341 (11:4341)
-	db $08 ; asm
-	ld hl, Mansion1TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion1BattleText2: ; 4434b (11:434b)
-	TX_FAR _Mansion1BattleText2
-	db "@"
-
-Mansion1EndBattleText2: ; 44350 (11:4350)
-	TX_FAR _Mansion1EndBattleText2
-	db "@"
-
-Mansion1AfterBattleText2: ; 44355 (11:4355)
-	TX_FAR _Mansion1AfterBattleText2
-	db "@"
-
-Mansion1Text4: ; 4435a (11:435a)
-	db $8
-	ld hl, MansionSwitchText
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_4438c ; 0x44368 $22
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, $d126
-	set 5, [hl]
-	ld hl, MansionSwitchPressedText
-	call PrintText
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	ld hl, $d796
-	bit 0, [hl]
-	set 0, [hl]
-	jr z, .asm_44392 ; 0x44386 $a
-	res 0, [hl]
-	jr .asm_44392 ; 0x4438a $6
-.asm_4438c
-	ld hl, MansionSwitchNotPressedText
-	call PrintText
-.asm_44392
-	jp TextScriptEnd
-
-MansionSwitchText: ; 44395 (11:4395)
-	TX_FAR _MansionSwitchText
-	db "@"
-
-MansionSwitchPressedText: ; 4439a (11:439a)
-	TX_FAR _MansionSwitchPressedText
-	db "@"
-
-MansionSwitchNotPressedText: ; 4439f (11:439f)
-	TX_FAR _MansionSwitchNotPressedText
-	db "@"
-
 INCLUDE "data/mapObjects/mansion1.asm"
 
 Mansion1Blocks: ; 443fe (11:43fe)
@@ -52164,221 +45992,8 @@
 
 INCLUDE "data/mapHeaders/rocktunnel1.asm"
 
-RockTunnel1Script: ; 444dc (11:44dc)
-	call EnableAutoTextBoxDrawing
-	ld hl, RockTunnel1TrainerHeaders
-	ld de, RockTunnel1ScriptPointers
-	ld a, [W_ROCKTUNNEL1CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKTUNNEL1CURSCRIPT], a
-	ret
+INCLUDE "scripts/rocktunnel1.asm"
 
-RockTunnel1ScriptPointers: ; 444ef (11:44ef)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-RockTunnel1TextPointers: ; 444f5 (11:44f5)
-	dw RockTunnel1Text1
-	dw RockTunnel1Text2
-	dw RockTunnel1Text3
-	dw RockTunnel1Text4
-	dw RockTunnel1Text5
-	dw RockTunnel1Text6
-	dw RockTunnel1Text7
-	dw RockTunnel1Text8
-
-RockTunnel1TrainerHeaders: ; 44505 (11:4505)
-RockTunnel1TrainerHeader1: ; 44505 (11:4505)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle
-	dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle
-	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
-	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
-
-RockTunnel1TrainerHeader2: ; 44511 (11:4511)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle
-	dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle
-	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
-	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
-
-RockTunnel1TrainerHeader3: ; 4451d (11:451d)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle
-	dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle
-	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
-	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
-
-RockTunnel1TrainerHeader4: ; 44529 (11:4529)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle
-	dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle
-	dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
-	dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
-
-RockTunnel1TrainerHeader5: ; 44535 (11:4535)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle
-	dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle
-	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
-	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
-
-RockTunnel1TrainerHeader6: ; 44541 (11:4541)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle
-	dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle
-	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
-	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
-
-RockTunnel1TrainerHeader7: ; 4454d (11:454d)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d2 ; flag's byte
-	dw RockTunnel1BattleText7 ; 0x45e2 TextBeforeBattle
-	dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle
-	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
-	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
-
-	db $ff
-
-RockTunnel1Text1: ; 4455a (11:455a)
-	db $8
-	ld hl, RockTunnel1TrainerHeader1 ; $4505
-	jr asm_0c916 ; 0x4455e $22
-
-RockTunnel1Text2: ; 44560 (11:4560)
-	db $8
-	ld hl, RockTunnel1TrainerHeader2 ; $4511
-	jr asm_0c916 ; 0x44564 $1c
-
-RockTunnel1Text3: ; 44566 (11:4566)
-	db $8
-	ld hl, RockTunnel1TrainerHeader3 ; $451d
-	jr asm_0c916 ; 0x4456a $16
-
-RockTunnel1Text4: ; 4456c (11:456c)
-	db $8
-	ld hl, RockTunnel1TrainerHeader4 ; $4529
-	jr asm_0c916 ; 0x44570 $10
-
-RockTunnel1Text5: ; 44572 (11:4572)
-	db $8
-	ld hl, RockTunnel1TrainerHeader5 ; $4535
-	jr asm_0c916 ; 0x44576 $a
-
-RockTunnel1Text6: ; 44578 (11:4578)
-	db $8
-	ld hl, RockTunnel1TrainerHeader6 ; $4541
-	jr asm_0c916 ; 0x4457c $4
-
-RockTunnel1Text7: ; 4457e (11:457e)
-	db $8
-	ld hl, RockTunnel1TrainerHeader7 ; $454d
-asm_0c916: ; 44582 (11:4582)
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel1BattleText1: ; 44588 (11:4588)
-	TX_FAR _RockTunnel1BattleText1
-	db "@"
-
-RockTunnel1EndBattleText1: ; 4458d (11:458d)
-	TX_FAR _RockTunnel1EndBattleText1
-	db "@"
-
-RockTunnel1AfterBattleText1: ; 44592 (11:4592)
-	TX_FAR _RockTunnel1AfterBattleText1
-	db "@"
-
-RockTunnel1BattleText2: ; 44597 (11:4597)
-	TX_FAR _RockTunnel1BattleText2
-	db "@"
-
-RockTunnel1EndBattleText2: ; 4459c (11:459c)
-	TX_FAR _RockTunnel1EndBattleText2
-	db "@"
-
-RockTunnel1AfterBattleText2: ; 445a1 (11:45a1)
-	TX_FAR _RockTunnel1AfterBattleText2
-	db "@"
-
-RockTunnel1BattleText3: ; 445a6 (11:45a6)
-	TX_FAR _RockTunnel1BattleText3
-	db "@"
-
-RockTunnel1EndBattleText3: ; 445ab (11:45ab)
-	TX_FAR _RockTunnel1EndBattleText3
-	db "@"
-
-RockTunnel1AfterBattleText3: ; 445b0 (11:45b0)
-	TX_FAR _RockTunnel1AfterBattleText3
-	db "@"
-
-RockTunnel1BattleText4: ; 445b5 (11:45b5)
-	TX_FAR _RockTunnel1BattleText4
-	db "@"
-
-RockTunnel1EndBattleText4: ; 445ba (11:45ba)
-	TX_FAR _RockTunnel1EndBattleText4
-	db "@"
-
-RockTunnel1AfterBattleText4: ; 445bf (11:45bf)
-	TX_FAR _RockTunnel1AfterBattleText4
-	db "@"
-
-RockTunnel1BattleText5: ; 445c4 (11:45c4)
-	TX_FAR _RockTunnel1BattleText5
-	db "@"
-
-RockTunnel1EndBattleText5: ; 445c9 (11:45c9)
-	TX_FAR _RockTunnel1EndBattleText5
-	db "@"
-
-RockTunnel1AfterBattleText5: ; 445ce (11:45ce)
-	TX_FAR _RockTunnel1AfterBattleText5
-	db "@"
-
-RockTunnel1BattleText6: ; 445d3 (11:45d3)
-	TX_FAR _RockTunnel1BattleText6
-	db "@"
-
-RockTunnel1EndBattleText6: ; 445d8 (11:45d8)
-	TX_FAR _RockTunnel1EndBattleText6
-	db "@"
-
-RockTunnel1AfterBattleText6: ; 445dd (11:45dd)
-	TX_FAR _RockTunnel1AfterBattleText6
-	db "@"
-
-RockTunnel1BattleText7: ; 445e2 (11:45e2)
-	TX_FAR _RockTunnel1BattleText7
-	db "@"
-
-RockTunnel1EndBattleText7: ; 445e7 (11:45e7)
-	TX_FAR _RockTunnel1EndBattleText7
-	db "@"
-
-RockTunnel1AfterBattleText7: ; 445ec (11:45ec)
-	TX_FAR _RockTunnel1AfterBattleText7
-	db "@"
-
-RockTunnel1Text8: ; 445f1 (11:45f1)
-	TX_FAR _RockTunnel1Text8
-	db "@"
-
 INCLUDE "data/mapObjects/rocktunnel1.asm"
 
 RockTunnel1Blocks: ; 44675 (11:4675)
@@ -52386,57 +46001,8 @@
 
 INCLUDE "data/mapHeaders/seafoamislands1.asm"
 
-SeafoamIslands1Script: ; 447e9 (11:47e9)
-	call EnableAutoTextBoxDrawing
-	ld hl, $d7e7
-	set 0, [hl]
-	ld hl, wFlags_0xcd60
-	bit 7, [hl]
-	res 7, [hl]
-	jr z, .asm_4483b ; 0x447f8 $41
-	ld hl, Seafoam1HolesCoords
-	call CheckBoulderCoords
-	ret nc
-	ld hl, $d7e8
-	ld a, [$cd3d]
-	cp $1
-	jr nz, .asm_44819 ; 0x44809 $e
-	set 6, [hl]
-	ld a, $d7
-	ld [$d079], a
-	ld a, $d9
-	ld [$d07a], a
-	jr .asm_44825 ; 0x44817 $c
-.asm_44819
-	set 7, [hl]
-	ld a, $d8
-	ld [$d079], a
-	ld a, $da
-	ld [$d07a], a
-.asm_44825
-	ld a, [$d079]
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, [$d07a]
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef
-.asm_4483b
-	ld a, $9f
-	ld [$d71d], a
-	ld hl, Seafoam1HolesCoords
-	jp Func_46981
+INCLUDE "scripts/seafoamislands1.asm"
 
-Seafoam1HolesCoords: ; 44846 (11:4846)
-	db $06,$11
-	db $06,$18
-	db $ff
-
-SeafoamIslands1TextPointers: ; 4484b (11:484b)
-	dw BoulderText
-	dw BoulderText
-
 INCLUDE "data/mapObjects/seafoamislands1.asm"
 
 SeafoamIslands1Blocks: ; 4489f (11:489f)
@@ -52444,16 +46010,8 @@
 
 INCLUDE "data/mapHeaders/ssanne3.asm"
 
-SSAnne3Script: ; 44932 (11:4932)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ssanne3.asm"
 
-SSAnne3TextPointers: ; 44935 (11:4935)
-	dw SSAnne3Text1
-
-SSAnne3Text1: ; 44937 (11:4937)
-	TX_FAR _SSAnne3Text1
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne3.asm"
 
 SSAnne3Blocks: ; 44956 (11:4956)
@@ -52461,212 +46019,8 @@
 
 INCLUDE "data/mapHeaders/victoryroad3.asm"
 
-VictoryRoad3Script: ; 44980 (11:4980)
-	call VictoryRoad3Script_44996
-	call EnableAutoTextBoxDrawing
-	ld hl, VictoryRoad3TrainerHeaders
-	ld de, VictoryRoad3ScriptPointers
-	ld a, [W_VICTORYROAD3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VICTORYROAD3CURSCRIPT], a
-	ret
+INCLUDE "scripts/victoryroad3.asm"
 
-VictoryRoad3Script_44996: ; 44996 (11:4996)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, $d813
-	bit 0, [hl]
-	ret z
-	ld a, $1d
-	ld [$d09f], a
-	ld bc, $503
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
-	dw VictoryRoad3Script0
-	dw Func_324c
-	dw EndTrainerBattle
-
-VictoryRoad3Script0: ; 449b7 (11:49b7)
-	ld hl, wFlags_0xcd60
-	bit 7, [hl]
-	res 7, [hl]
-	jp z, .asm_449fe
-	ld hl, .coordsData_449f9 ; $49f9
-	call CheckBoulderCoords
-	jp nc, .asm_449fe
-	ld a, [wWhichTrade] ; $cd3d
-	cp $1
-	jr nz, .asm_449dc
-	ld hl, $d126
-	set 5, [hl]
-	ld hl, $d813
-	set 0, [hl]
-	ret
-.asm_449dc
-	ld hl, $d813
-	bit 6, [hl]
-	set 6, [hl]
-	jr nz, .asm_449fe
-	ld a, $7a
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $60
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-
-.coordsData_449f9: ; 449f9 (11:49f9)
-	db $05,$03
-	db $0F,$17
-	db $FF
-
-.asm_449fe
-	ld a, $c2
-	ld [$d71d], a
-	ld hl, .coordsData_449f9 ; $49f9
-	call Func_46981
-	ld a, [wWhichTrade] ; $cd3d
-	cp $1
-	jr nz, .asm_44a1b
-	ld hl, $d72d
-	res 4, [hl]
-	ld hl, $d732
-	res 4, [hl]
-	ret
-.asm_44a1b
-	ld a, [$d72d]
-	bit 4, a
-	jp z, CheckFightingMapTrainers
-	ret
-
-VictoryRoad3TextPointers: ; 44a24 (11:4a24)
-	dw VictoryRoad3Text1
-	dw VictoryRoad3Text2
-	dw VictoryRoad3Text3
-	dw VictoryRoad3Text4
-	dw Predef5CText
-	dw Predef5CText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-
-VictoryRoad3TrainerHeaders: ; 44a38 (11:4a38)
-VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38)
-	db $1 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d813 ; flag's byte
-	dw VictoryRoad3BattleText2 ; 0x4a91 TextBeforeBattle
-	dw VictoryRoad3AfterBattleText2 ; 0x4a9b TextAfterBattle
-	dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
-	dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
-
-VictoryRoad3TrainerHeader2: ; 44a44 (11:4a44)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d813 ; flag's byte
-	dw VictoryRoad3BattleText3 ; 0x4aa0 TextBeforeBattle
-	dw VictoryRoad3AfterBattleText3 ; 0x4aaa TextAfterBattle
-	dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
-	dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
-
-VictoryRoad3TrainerHeader3: ; 44a50 (11:4a50)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d813 ; flag's byte
-	dw VictoryRoad3BattleText4 ; 0x4aaf TextBeforeBattle
-	dw VictoryRoad3AfterBattleText4 ; 0x4ab9 TextAfterBattle
-	dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
-	dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
-
-VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d813 ; flag's byte
-	dw VictoryRoad3BattleText5 ; 0x4abe TextBeforeBattle
-	dw VictoryRoad3AfterBattleText5 ; 0x4ac8 TextAfterBattle
-	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
-	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
-
-	db $ff
-
-VictoryRoad3Text1: ; 44a69 (11:4a69)
-	db $08 ; asm
-	ld hl, VictoryRoad3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad3Text2: ; 44a73 (11:4a73)
-	db $08 ; asm
-	ld hl, VictoryRoad3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad3Text3: ; 44a7d (11:4a7d)
-	db $08 ; asm
-	ld hl, VictoryRoad3TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad3Text4: ; 44a87 (11:4a87)
-	db $08 ; asm
-	ld hl, VictoryRoad3TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad3BattleText2: ; 44a91 (11:4a91)
-	TX_FAR _VictoryRoad3BattleText2
-	db "@"
-
-VictoryRoad3EndBattleText2: ; 44a96 (11:4a96)
-	TX_FAR _VictoryRoad3EndBattleText2
-	db "@"
-
-VictoryRoad3AfterBattleText2: ; 44a9b (11:4a9b)
-	TX_FAR _VictoryRoad3AfterBattleText2
-	db "@"
-
-VictoryRoad3BattleText3: ; 44aa0 (11:4aa0)
-	TX_FAR _VictoryRoad3BattleText3
-	db "@"
-
-VictoryRoad3EndBattleText3: ; 44aa5 (11:4aa5)
-	TX_FAR _VictoryRoad3EndBattleText3
-	db "@"
-
-VictoryRoad3AfterBattleText3: ; 44aaa (11:4aaa)
-	TX_FAR _VictoryRoad3AfterBattleText3
-	db "@"
-
-VictoryRoad3BattleText4: ; 44aaf (11:4aaf)
-	TX_FAR _VictoryRoad3BattleText4
-	db "@"
-
-VictoryRoad3EndBattleText4: ; 44ab4 (11:4ab4)
-	TX_FAR _VictoryRoad3EndBattleText4
-	db "@"
-
-VictoryRoad3AfterBattleText4: ; 44ab9 (11:4ab9)
-	TX_FAR _VictoryRoad3AfterBattleText4
-	db "@"
-
-VictoryRoad3BattleText5: ; 44abe (11:4abe)
-	TX_FAR _VictoryRoad3BattleText5
-	db "@"
-
-VictoryRoad3EndBattleText5: ; 44ac3 (11:4ac3)
-	TX_FAR _VictoryRoad3EndBattleText5
-	db "@"
-
-VictoryRoad3AfterBattleText5: ; 44ac8 (11:4ac8)
-	TX_FAR _VictoryRoad3AfterBattleText5
-	db "@"
-
 INCLUDE "data/mapObjects/victoryroad3.asm"
 
 VictoryRoad3Blocks: ; 44b37 (11:4b37)
@@ -52674,200 +46028,8 @@
 
 INCLUDE "data/mapHeaders/rockethideout1.asm"
 
-RocketHideout1Script: ; 44bca (11:4bca)
-	call Func_44be0
-	call EnableAutoTextBoxDrawing
-	ld hl, RocketHideout1TrainerHeaders
-	ld de, RocketHideout1ScriptPointers
-	ld a, [W_ROCKETHIDEOUT1CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKETHIDEOUT1CURSCRIPT], a
-	ret
+INCLUDE "scripts/rockethideout1.asm"
 
-Func_44be0: ; 44be0 (11:4be0)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d815]
-	bit 7, a
-	jr nz, .asm_44c01
-	bit 5, a
-	jr nz, .asm_44bf7
-	ld a, $54
-	jr .asm_44c03
-.asm_44bf7
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	ld hl, $d815
-	bit 7, [hl]
-.asm_44c01
-	ld a, $e
-.asm_44c03
-	ld [$d09f], a
-	ld bc, $080c
-	ld a, $17
-	jp Predef
-
-RocketHideout1ScriptPointers: ; 44c0e (11:4c0e)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-RocketHideout1TextPointers: ; 44c14 (11:4c14)
-	dw RocketHideout1Text1
-	dw RocketHideout1Text2
-	dw RocketHideout1Text3
-	dw RocketHideout1Text4
-	dw RocketHideout1Text5
-	dw Predef5CText
-	dw Predef5CText
-
-RocketHideout1TrainerHeaders: ; 44c22 (11:4c22)
-RocketHideout1TrainerHeader0: ; 44c22 (11:4c22)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d815 ; flag's byte
-	dw RocketHideout1BattleText2 ; 0x4ca1 TextBeforeBattle
-	dw RocketHideout1AfterBattleTxt2 ; 0x4cab TextAfterBattle
-	dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
-	dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
-
-RocketHideout1TrainerHeader2: ; 44c2e (11:4c2e)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d815 ; flag's byte
-	dw RocketHideout1BattleText3 ; 0x4cb0 TextBeforeBattle
-	dw RocketHideout1AfterBattleTxt3 ; 0x4cba TextAfterBattle
-	dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
-	dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
-
-RocketHideout1TrainerHeader3: ; 44c3a (11:4c3a)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d815 ; flag's byte
-	dw RocketHideout1BattleText4 ; 0x4cbf TextBeforeBattle
-	dw RocketHideout1AfterBattleTxt4 ; 0x4cc9 TextAfterBattle
-	dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
-	dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
-
-RocketHideout1TrainerHeader4: ; 44c46 (11:4c46)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d815 ; flag's byte
-	dw RocketHideout1BattleText5 ; 0x4cce TextBeforeBattle
-	dw RocketHideout1AfterBattleTxt5 ; 0x4cd8 TextAfterBattle
-	dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
-	dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
-
-RocketHideout1TrainerHeader5: ; 44c52 (11:4c52)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d815 ; flag's byte
-	dw RocketHideout1BattleText6 ; 0x4cdd TextBeforeBattle
-	dw RocketHideout1AfterBattleTxt6 ; 0x4ce2 TextAfterBattle
-	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
-	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
-
-	db $ff
-
-RocketHideout1Text1: ; 44c5f (11:4c5f)
-	db $08 ; asm
-	ld hl, RocketHideout1TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout1Text2: ; 44c69 (11:4c69)
-	db $08 ; asm
-	ld hl, RocketHideout1TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout1Text3: ; 44c73 (11:4c73)
-	db $08 ; asm
-	ld hl, RocketHideout1TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout1Text4: ; 44c7d (11:4c7d)
-	db $08 ; asm
-	ld hl, RocketHideout1TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout1Text5: ; 44c87 (11:4c87)
-	db $08 ; asm
-	ld hl, RocketHideout1TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout1EndBattleText6: ; 44c91 (11:4c91)
-	TX_FAR _RocketHideout1EndBattleText6
-	db $8
-	ld hl, $d815
-	set 5, [hl]
-	ld hl, UnnamedText_44c9f
-	ret
-
-UnnamedText_44c9f: ; 44c9f (11:4c9f)
-	db $6, $50
-
-RocketHideout1BattleText2: ; 44ca1 (11:4ca1)
-	TX_FAR _RocketHideout1BattleText2
-	db "@"
-
-RocketHideout1EndBattleText2: ; 44ca6 (11:4ca6)
-	TX_FAR _RocketHideout1EndBattleText2
-	db "@"
-
-RocketHideout1AfterBattleTxt2: ; 44cab (11:4cab)
-	TX_FAR _RocketHideout1AfterBattleTxt2
-	db "@"
-
-RocketHideout1BattleText3: ; 44cb0 (11:4cb0)
-	TX_FAR _RocketHideout1BattleText3
-	db "@"
-
-RocketHideout1EndBattleText3: ; 44cb5 (11:4cb5)
-	TX_FAR _RocketHideout1EndBattleText3
-	db "@"
-
-RocketHideout1AfterBattleTxt3: ; 44cba (11:4cba)
-	TX_FAR _RocketHideout1AfterBattleTxt3
-	db "@"
-
-RocketHideout1BattleText4: ; 44cbf (11:4cbf)
-	TX_FAR _RocketHideout1BattleText4
-	db "@"
-
-RocketHideout1EndBattleText4: ; 44cc4 (11:4cc4)
-	TX_FAR _RocketHideout1EndBattleText4
-	db "@"
-
-RocketHideout1AfterBattleTxt4: ; 44cc9 (11:4cc9)
-	TX_FAR _RocketHideout1AfterBattleTxt4
-	db "@"
-
-RocketHideout1BattleText5: ; 44cce (11:4cce)
-	TX_FAR _RocketHideout1BattleText5
-	db "@"
-
-RocketHideout1EndBattleText5: ; 44cd3 (11:4cd3)
-	TX_FAR _RocketHideout1EndBattleText5
-	db "@"
-
-RocketHideout1AfterBattleTxt5: ; 44cd8 (11:4cd8)
-	TX_FAR _RocketHideout1AfterBattleTxt5
-	db "@"
-
-RocketHideout1BattleText6: ; 44cdd (11:4cdd)
-	TX_FAR _RocketHideout1BattleText6
-	db "@"
-
-RocketHideout1AfterBattleTxt6: ; 44ce2 (11:4ce2)
-	TX_FAR _RocketHideout1AfterBattleTxt6
-	db "@"
-
 INCLUDE "data/mapObjects/rockethideout1.asm"
 
 RocketHideout1Blocks: ; 44d49 (11:4d49)
@@ -52875,508 +46037,8 @@
 
 INCLUDE "data/mapHeaders/rockethideout2.asm"
 
-RocketHideout2Script: ; 44e27 (11:4e27)
-	call EnableAutoTextBoxDrawing
-	ld hl, RocketHideout2TrainerHeaders
-	ld de, RocketHideout2ScriptPointers
-	ld a, [W_ROCKETHIDEOUT2CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKETHIDEOUT2CURSCRIPT], a
-	ret
+INCLUDE "scripts/rockethideout2.asm"
 
-RocketHideout2ScriptPointers: ; 44e3a (11:4e3a)
-	dw RocketHideout2Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw RocketHideout2Script3
-
-RocketHideout2Script0: ; 44e42 (11:4e42)
-	ld a, [W_YCOORD]
-	ld b, a
-	ld a, [W_XCOORD]
-	ld c, a
-	ld hl, RocketHideout2ArrowTilePlayerMovement
-	call Func_3442
-	cp $ff
-	jp z, CheckFightingMapTrainers
-	ld hl, $d736
-	set 7, [hl]
-	call Func_3486
-	ld a, (SFX_02_52 - SFX_Headers_02) / 3
-	call PlaySound
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $3
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-;format:
-;db y,x
-;dw pointer to movement
-RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d)
-	db $9,$4
-	dw RocketHideout2ArrowMovement1
-	db $b,$4
-	dw RocketHideout2ArrowMovement2
-	db $f,$4
-	dw RocketHideout2ArrowMovement3
-	db $10,$4
-	dw RocketHideout2ArrowMovement4
-	db $13,$4
-	dw RocketHideout2ArrowMovement1
-	db $16,$4
-	dw RocketHideout2ArrowMovement5
-	db $e,$5
-	dw RocketHideout2ArrowMovement6
-	db $16,$6
-	dw RocketHideout2ArrowMovement7
-	db $18,$6
-	dw RocketHideout2ArrowMovement8
-	db $9,$8
-	dw RocketHideout2ArrowMovement9
-	db $c,$8
-	dw RocketHideout2ArrowMovement10
-	db $f,$8
-	dw RocketHideout2ArrowMovement8
-	db $13,$8
-	dw RocketHideout2ArrowMovement9
-	db $17,$8
-	dw RocketHideout2ArrowMovement11
-	db $e,$9
-	dw RocketHideout2ArrowMovement12
-	db $16,$9
-	dw RocketHideout2ArrowMovement12
-	db $9,$a
-	dw RocketHideout2ArrowMovement13
-	db $a,$a
-	dw RocketHideout2ArrowMovement14
-	db $f,$a
-	dw RocketHideout2ArrowMovement15
-	db $11,$a
-	dw RocketHideout2ArrowMovement16
-	db $13,$a
-	dw RocketHideout2ArrowMovement17
-	db $19,$a
-	dw RocketHideout2ArrowMovement2
-	db $e,$b
-	dw RocketHideout2ArrowMovement18
-	db $10,$b
-	dw RocketHideout2ArrowMovement19
-	db $12,$b
-	dw RocketHideout2ArrowMovement12
-	db $9,$c
-	dw RocketHideout2ArrowMovement20
-	db $b,$c
-	dw RocketHideout2ArrowMovement21
-	db $d,$c
-	dw RocketHideout2ArrowMovement22
-	db $11,$c
-	dw RocketHideout2ArrowMovement23
-	db $a,$d
-	dw RocketHideout2ArrowMovement24
-	db $c,$d
-	dw RocketHideout2ArrowMovement25
-	db $10,$d
-	dw RocketHideout2ArrowMovement26
-	db $12,$d
-	dw RocketHideout2ArrowMovement27
-	db $13,$d
-	dw RocketHideout2ArrowMovement28
-	db $16,$d
-	dw RocketHideout2ArrowMovement29
-	db $17,$d
-	dw RocketHideout2ArrowMovement30
-	db $11,$e
-	dw RocketHideout2ArrowMovement31
-	db $10,$f
-	dw RocketHideout2ArrowMovement12
-	db $e,$10
-	dw RocketHideout2ArrowMovement32
-	db $10,$10
-	dw RocketHideout2ArrowMovement33
-	db $12,$10
-	dw RocketHideout2ArrowMovement34
-	db $a,$11
-	dw RocketHideout2ArrowMovement35
-	db $b,$11
-	dw RocketHideout2ArrowMovement36
-	db $FF
-
-;format: direction, count
-;right:	$10
-;left:	$20
-;up:	$40
-;down:	$80
-;each list is read starting from the $FF and working backwards
-RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a)
-	db $20,$02
-	db $FF
-
-RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d)
-	db $10,$04
-	db $FF
-
-RocketHideout2ArrowMovement3: ; 44f20 (11:4f20)
-	db $40,$04
-	db $10,$04
-	db $FF
-
-RocketHideout2ArrowMovement4: ; 44f25 (11:4f25)
-	db $40,$04
-	db $10,$04
-	db $40,$01
-	db $FF
-
-RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c)
-	db $20,$02
-	db $40,$03
-	db $FF
-
-RocketHideout2ArrowMovement6: ; 44f31 (11:4f31)
-	db $80,$02
-	db $10,$04
-	db $FF
-
-RocketHideout2ArrowMovement7: ; 44f36 (11:4f36)
-	db $40,$02
-	db $FF
-
-RocketHideout2ArrowMovement8: ; 44f39 (11:4f39)
-	db $40,$04
-	db $FF
-
-RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c)
-	db $20,$06
-	db $FF
-
-RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f)
-	db $40,$01
-	db $FF
-
-RocketHideout2ArrowMovement11: ; 44f42 (11:4f42)
-	db $20,$06
-	db $40,$04
-	db $FF
-
-RocketHideout2ArrowMovement12: ; 44f47 (11:4f47)
-	db $80,$02
-	db $FF
-
-RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a)
-	db $20,$08
-	db $FF
-
-RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d)
-	db $20,$08
-	db $40,$01
-	db $FF
-
-RocketHideout2ArrowMovement15: ; 44f52 (11:4f52)
-	db $20,$08
-	db $40,$06
-	db $FF
-
-RocketHideout2ArrowMovement16: ; 44f57 (11:4f57)
-	db $40,$02
-	db $10,$04
-	db $FF
-
-RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c)
-	db $40,$02
-	db $10,$04
-	db $40,$02
-	db $FF
-
-RocketHideout2ArrowMovement18: ; 44f63 (11:4f63)
-	db $80,$02
-	db $10,$04
-	db $80,$02
-	db $FF
-
-RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a)
-	db $80,$02
-	db $10,$04
-	db $FF
-
-RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f)
-	db $20,$0A
-	db $FF
-
-RocketHideout2ArrowMovement21: ; 44f72 (11:4f72)
-	db $20,$0A
-	db $40,$02
-	db $FF
-
-RocketHideout2ArrowMovement22: ; 44f77 (11:4f77)
-	db $20,$0A
-	db $40,$04
-	db $FF
-
-RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c)
-	db $40,$02
-	db $10,$02
-	db $FF
-
-RocketHideout2ArrowMovement24: ; 44f81 (11:4f81)
-	db $10,$01
-	db $80,$02
-	db $FF
-
-RocketHideout2ArrowMovement25: ; 44f86 (11:4f86)
-	db $10,$01
-	db $FF
-
-RocketHideout2ArrowMovement26: ; 44f89 (11:4f89)
-	db $80,$02
-	db $10,$02
-	db $FF
-
-RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e)
-	db $80,$02
-	db $20,$02
-	db $FF
-
-RocketHideout2ArrowMovement28: ; 44f93 (11:4f93)
-	db $40,$02
-	db $10,$04
-	db $40,$02
-	db $20,$03
-	db $FF
-
-RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c)
-	db $80,$02
-	db $20,$04
-	db $FF
-
-RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1)
-	db $20,$06
-	db $40,$04
-	db $20,$05
-	db $FF
-
-RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8)
-	db $40,$02
-	db $FF
-
-RocketHideout2ArrowMovement32: ; 44fab (11:4fab)
-	db $40,$01
-	db $FF
-
-RocketHideout2ArrowMovement33: ; 44fae (11:4fae)
-	db $40,$03
-	db $FF
-
-RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1)
-	db $40,$05
-	db $FF
-
-RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4)
-	db $10,$01
-	db $80,$02
-	db $20,$04
-	db $FF
-
-RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb)
-	db $20,$0A
-	db $40,$02
-	db $20,$05
-	db $FF
-
-RocketHideout2Script3: ; 44fc2 (11:4fc2)
-	ld a, [$cd38]
-	and a
-	jr nz, LoadSpinnerArrowTiles
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d736
-	res 7, [hl]
-	ld a, $0
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7)
-	ld a, [$c102]
-	srl a
-	srl a
-	ld hl, SpinnerPlayerFacingDirections ; $5083
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hl]
-	ld [$c102], a
-	ld a, [W_CURMAPTILESET] ; $d367
-	cp FACILITY
-	ld hl, SpinnerArrowTilePointers1 ; $5023
-	jr z, .asm_44ff6
-	ld hl, SpinnerArrowTilePointers2 ; $5053
-.asm_44ff6
-	ld a, [$cd38]
-	bit 0, a
-	jr nz, .asm_45001
-	ld de, $18
-	add hl, de
-.asm_45001
-	ld a, $4
-	ld bc, $0
-.asm_45006
-	push af
-	push hl
-	push bc
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call CopyVideoData
-	pop bc
-	ld a, $6
-	add c
-	ld c, a
-	pop hl
-	pop af
-	dec a
-	jr nz, .asm_45006
-	ret
-
-SpinnerArrowTilePointers1: ; 45023 (11:5023)
-	dw SpinnerArrowAnimTiles       ;address from within tileset graphics
-	db 1                           ;number of tiles to copy?
-	db BANK(SpinnerArrowAnimTiles) ;bank of tileset graphics
-	dw $9200                       ;where to load in VRAM
-
-	dw SpinnerArrowAnimTiles + $10
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $9210
-
-	dw SpinnerArrowAnimTiles + $20
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $9300
-
-	dw SpinnerArrowAnimTiles + $30
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $9310
-
-	dw Facility_GFX + $200
-	db 1
-	db BANK(Facility_GFX)
-	dw $9200
-
-	dw Facility_GFX + $210
-	db 1
-	db BANK(Facility_GFX)
-	dw $9210
-
-	dw Facility_GFX + $300
-	db 1
-	db BANK(Facility_GFX)
-	dw $9300
-
-	dw Facility_GFX + $310
-	db 1
-	db BANK(Facility_GFX)
-	dw $9310
-
-SpinnerArrowTilePointers2: ; 45053 (11:5053)
-	dw SpinnerArrowAnimTiles + $10
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $93C0
-
-	dw SpinnerArrowAnimTiles + $30
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $93D0
-
-	dw SpinnerArrowAnimTiles
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $94C0
-
-	dw SpinnerArrowAnimTiles + $20
-	db 1
-	db BANK(SpinnerArrowAnimTiles)
-	dw $94D0
-
-	dw Gym_GFX + $3C0
-	db 1
-	db BANK(Facility_GFX)
-	dw $93C0
-
-	dw Gym_GFX + $3D0
-	db 1
-	db BANK(Facility_GFX)
-	dw $93D0
-
-	dw Gym_GFX + $4C0
-	db 1
-	db BANK(Facility_GFX)
-	dw $94C0
-
-	dw Gym_GFX + $4D0
-	db 1
-	db BANK(Facility_GFX)
-	dw $94D0
-
-SpinnerPlayerFacingDirections: ; 45083 (11:5083)
-; This isn't the order of the facing directions.  Rather, it's a list of
-; the facing directions that come next. For example, when the player is
-; facing down (00), the next facing direction is left (08).
-	db $08 ; down -> left
-	db $0C ; up -> right
-	db $04 ; left -> up
-	db $00 ; right -> down
-
-; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ
-SpinnerArrowAnimTiles: ; 45087 (11:5087)
-	INCBIN "gfx/spinner_arrow.2bpp"
-
-RocketHideout2TextPointers: ; 450c7 (11:50c7)
-	dw RocketHideout2Text1
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-RocketHideout2TrainerHeaders: ; 450d1 (11:50d1)
-RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d817 ; flag's byte
-	dw RocketHideout2BattleText2 ; 0x50e8 TextBeforeBattle
-	dw RocketHideout2AfterBattleTxt2 ; 0x50f2 TextAfterBattle
-	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
-	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
-
-	db $ff
-
-RocketHideout2Text1: ; 450de (11:50de)
-	db $08 ; asm
-	ld hl, RocketHideout2TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout2BattleText2: ; 450e8 (11:50e8)
-	TX_FAR _RocketHideout2BattleText2
-	db "@"
-
-RocketHideout2EndBattleText2: ; 450ed (11:50ed)
-	TX_FAR _RocketHideout2EndBattleText2
-	db "@"
-
-RocketHideout2AfterBattleTxt2: ; 450f2 (11:50f2)
-	TX_FAR _RocketHideout2AfterBattleTxt2
-	db "@"
-
 INCLUDE "data/mapObjects/rockethideout2.asm"
 
 RocketHideout2Blocks: ; 45147 (11:5147)
@@ -53384,218 +46046,8 @@
 
 INCLUDE "data/mapHeaders/rockethideout3.asm"
 
-RocketHideout3Script: ; 45225 (11:5225)
-	call EnableAutoTextBoxDrawing
-	ld hl, RocketHideout3TrainerHeaders
-	ld de, RocketHideout3ScriptPointers
-	ld a, [W_ROCKETHIDEOUT3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKETHIDEOUT3CURSCRIPT], a
-	ret
+INCLUDE "scripts/rockethideout3.asm"
 
-RocketHideout3ScriptPointers: ; 45238 (11:5238)
-	dw RocketHideout3Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw RocketHideout3Script3
-
-RocketHideout3Script0: ; 45240 (11:5240)
-	ld a, [W_YCOORD]
-	ld b, a
-	ld a, [W_XCOORD]
-	ld c, a
-	ld hl, RocketHideout3ArrowTilePlayerMovement
-	call Func_3442
-	cp $ff
-	jp z, CheckFightingMapTrainers
-	ld hl, $d736
-	set 7, [hl]
-	call Func_3486
-	ld a, (SFX_02_52 - SFX_Headers_02) / 3
-	call PlaySound
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $3
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-;format:
-;db y,x
-;dw pointer to movement
-RocketHideout3ArrowTilePlayerMovement: ; 4526b (11:526b)
-	db $d,$a
-	dw RocketHideout3ArrowMovement6
-	db $13,$a
-	dw RocketHideout3ArrowMovement1
-	db $12,$b
-	dw RocketHideout3ArrowMovement2
-	db $b,$c
-	dw RocketHideout3ArrowMovement3
-	db $11,$c
-	dw RocketHideout3ArrowMovement4
-	db $14,$c
-	dw RocketHideout3ArrowMovement5
-	db $10,$d
-	dw RocketHideout3ArrowMovement6
-	db $b,$e
-	dw RocketHideout3ArrowMovement7
-	db $f,$e
-	dw RocketHideout3ArrowMovement6
-	db $11,$e
-	dw RocketHideout3ArrowMovement8
-	db $13,$e
-	dw RocketHideout3ArrowMovement9
-	db $10,$f
-	dw RocketHideout3ArrowMovement7
-	db $12,$f
-	dw RocketHideout3ArrowMovement10
-	db $d,$10
-	dw RocketHideout3ArrowMovement11
-	db $c,$11
-	dw RocketHideout3ArrowMovement10
-	db $10,$12
-	dw RocketHideout3ArrowMovement12
-	db $FF
-
-;format: direction, count
-;right:	$10
-;left:	$20
-;up:	$40
-;down:	$80
-;each list is read starting from the $FF and working backwards
-RocketHideout3ArrowMovement1: ; 452ac (11:52ac)
-	db $10,$04
-	db $40,$04
-	db $10,$04
-	db $FF
-
-RocketHideout3ArrowMovement2: ; 452b3 (11:52b3)
-	db $80,$04
-	db $10,$04
-	db $FF
-
-RocketHideout3ArrowMovement3: ; 452b8 (11:52b8)
-	db $20,$02
-	db $FF
-
-RocketHideout3ArrowMovement4: ; 452bb (11:52bb)
-	db $10,$04
-	db $40,$02
-	db $10,$02
-	db $FF
-
-RocketHideout3ArrowMovement5: ; 452c2 (11:52c2)
-	db $10,$04
-	db $40,$02
-	db $10,$02
-	db $40,$03
-	db $FF
-
-RocketHideout3ArrowMovement6: ; 452cb (11:52cb)
-	db $10,$04
-	db $FF
-
-RocketHideout3ArrowMovement7: ; 452ce (11:52ce)
-	db $10,$02
-	db $FF
-
-RocketHideout3ArrowMovement8: ; 452d1 (11:52d1)
-	db $10,$04
-	db $40,$02
-	db $FF
-
-RocketHideout3ArrowMovement9: ; 452d6 (11:52d6)
-	db $10,$04
-	db $40,$04
-	db $FF
-
-RocketHideout3ArrowMovement10: ; 452db (11:52db)
-	db $80,$04
-	db $FF
-
-RocketHideout3ArrowMovement11: ; 452de (11:52de)
-	db $40,$02
-	db $FF
-
-RocketHideout3ArrowMovement12: ; 452e1 (11:52e1)
-	db $40,$01
-	db $FF
-
-RocketHideout3Script3 ; 452e4 (11:452e4)
-	ld a, [$cd38]
-	and a
-	jp nz, LoadSpinnerArrowTiles
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d736
-	res 7, [hl]
-	ld a, $0
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-RocketHideout3TextPointers: ; 452fa (11:52fa)
-	dw RocketHideout3Text1
-	dw RocketHideout3Text2
-	dw Predef5CText
-	dw Predef5CText
-
-RocketHideout3TrainerHeaders: ; 45302 (11:5302)
-RocketHideout3TrainerHeader0: ; 45302 (11:5302)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d819 ; flag's byte
-	dw RocketHideout3BattleText2 ; 0x5325 TextBeforeBattle
-	dw RocketHideout3AfterBattleTxt2 ; 0x532f TextAfterBattle
-	dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
-	dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
-
-RocketHideout3TrainerHeader2: ; 4530e (11:530e)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d819 ; flag's byte
-	dw RocketHideout3BattleTxt ; 0x533e TextBeforeBattle
-	dw RocketHideout3AfterBattleText3 ; 0x5348 TextAfterBattle
-	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
-	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
-
-	db $ff
-
-RocketHideout3Text1: ; 4531b (11:531b)
-	db $08 ; asm
-	ld hl, RocketHideout3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout3BattleText2: ; 45325 (11:5325)
-	TX_FAR _RocketHideout3BattleText2
-	db "@"
-
-RocketHideout3EndBattleText2: ; 4532a (11:532a)
-	TX_FAR _RocketHideout3EndBattleText2
-	db "@"
-
-RocketHideout3AfterBattleTxt2: ; 4532f (11:532f)
-	TX_FAR _RocketHideout3AfterBattleTxt2
-	db "@"
-
-RocketHideout3Text2: ; 45334 (11:5334)
-	db $08 ; asm
-	ld hl, RocketHideout3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout3BattleTxt: ; 4533e (11:533e)
-	TX_FAR _RocketHideout3BattleTxt
-	db "@"
-
-RocketHideout3EndBattleText3: ; 45343 (11:5343)
-	TX_FAR _RocketHideout3EndBattleText3
-	db "@"
-
-RocketHideout3AfterBattleText3: ; 45348 (11:5348)
-	TX_FAR _RocketHide3AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/rockethideout3.asm"
 
 RocketHideout3Blocks: ; 4537f (11:537f)
@@ -53603,239 +46055,8 @@
 
 INCLUDE "data/mapHeaders/rockethideout4.asm"
 
-RocketHideout4Script: ; 4545d (11:545d)
-	call Func_45473
-	call EnableAutoTextBoxDrawing
-	ld hl, RocketHideout4TrainerHeader0
-	ld de, RocketHideout4ScriptPointers
-	ld a, [W_ROCKETHIDEOUT4CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
-	ret
+INCLUDE "scripts/rockethideout4.asm"
 
-Func_45473: ; 45473 (11:5473)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d81b]
-	bit 5, a
-	jr nz, .asm_45496
-	and $c
-	cp $c
-	jr z, .asm_4548c
-	ld a, $2d
-	jr .asm_45498
-.asm_4548c
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	ld hl, $d81b
-	set 5, [hl]
-.asm_45496
-	ld a, $e
-.asm_45498
-	ld [$d09f], a
-	ld bc, $050c
-	ld a, $17
-	jp Predef
-
-Func_454a3: ; 454a3 (11:54a3)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-RocketHideout4ScriptPointers: ; 454ae (11:54ae)c
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw RocketHideout4Script3
-
-RocketHideout4Script3: ; 454b6 (11:54b6)
-	ld a, [W_ISINBATTLE]
-	cp $ff
-	jp z, Func_454a3
-	call UpdateSprites
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d81b
-	set 7, [hl]
-	ld a, $a
-	ld [H_SPRITEHEIGHT], a
-	call DisplayTextID
-	call GBFadeIn1
-	ld a, $83
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $87
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	call UpdateSprites
-	call GBFadeOut1
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d126
-	set 5, [hl]
-	ld a, $0
-	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-RocketHideout4TextPointers: ; 45501 (11:5501)
-	dw RocketHideout4Text1
-	dw RocketHideout4Text2
-	dw RocketHideout4Text3
-	dw RocketHideout4Text4
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw RocketHideout4Text10
-
-RocketHideout4TrainerHeaders: ; 45515 (11:5515)
-RocketHideout4TrainerHeader0: ; 45515 (11:5515)
-	db $2 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d81b ; flag's byte
-	dw RocketHideout4BattleText2 ; 0x5593 TextBeforeBattle
-	dw RocketHideout4AfterBattleText2 ; 0x559d TextAfterBattle
-	dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
-	dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
-
-RocketHideout4TrainerHeader2: ; 45521 (11:5521)
-	db $3 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d81b ; flag's byte
-	dw RocketHideout4BattleText3 ; 0x55ac TextBeforeBattle
-	dw RocketHideout4AfterBattleText3 ; 0x55b6 TextAfterBattle
-	dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
-	dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
-
-RocketHideout4TrainerHeader3: ; 4552d (11:552d)
-	db $4 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d81b ; flag's byte
-	dw RocketHideout4BattleText4 ; 0x55c5 TextBeforeBattle
-	dw RocketHideout4AfterBattleText4 ; 0x55cf TextAfterBattle
-	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
-	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
-
-	db $ff
-
-RocketHideout4Text1: ; 4553a (11:553a)
-	db $08 ; asm
-	ld a, [$d81b]
-	bit 7, a
-	jp nz, .asm_545571
-	ld hl, UnnamedText_4557a
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_4557f
-	ld de, UnnamedText_4557f
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	xor a
-	ldh [$b4], a
-	ld a, $3
-	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jr .asm_209f0 ; 0x4556f
-.asm_545571
-	ld hl, RocketHideout4Text10
-	call PrintText
-.asm_209f0 ; 0x45577
-	jp TextScriptEnd
-
-UnnamedText_4557a: ; 4557a (11:557a)
-	TX_FAR _UnnamedText_4557a
-	db "@"
-
-UnnamedText_4557f: ; 4557f (11:557f)
-	TX_FAR _UnnamedText_4557f
-	db "@"
-
-RocketHideout4Text10: ; 45584 (11:5584)
-	TX_FAR _UnnamedText_45584
-	db "@"
-
-RocketHideout4Text2: ; 45589 (11:5589)
-	db $08 ; asm
-	ld hl, RocketHideout4TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout4BattleText2: ; 45593 (11:5593)
-	TX_FAR _RocketHideout4BattleText2
-	db "@"
-
-RocketHideout4EndBattleText2: ; 45598 (11:5598)
-	TX_FAR _RocketHideout4EndBattleText2
-	db "@"
-
-RocketHideout4AfterBattleText2: ; 4559d (11:559d)
-	TX_FAR _RocketHide4AfterBattleText2
-	db "@"
-
-RocketHideout4Text3: ; 455a2 (11:55a2)
-	db $08 ; asm
-	ld hl, RocketHideout4TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout4BattleText3: ; 455ac (11:55ac)
-	TX_FAR _RocketHideout4BattleText3
-	db "@"
-
-RocketHideout4EndBattleText3: ; 455b1 (11:55b1)
-	TX_FAR _RocketHideout4EndBattleText3
-	db "@"
-
-RocketHideout4AfterBattleText3: ; 455b6 (11:55b6)
-	TX_FAR _RocketHide4AfterBattleText3
-	db "@"
-
-RocketHideout4Text4: ; 455bb (11:55bb)
-	db $08 ; asm
-	ld hl, RocketHideout4TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RocketHideout4BattleText4: ; 455c5 (11:55c5)
-	TX_FAR _RocketHideout4BattleText4
-	db "@"
-
-RocketHideout4EndBattleText4: ; 455ca (11:55ca)
-	TX_FAR _RocketHideout4EndBattleText4
-	db "@"
-
-RocketHideout4AfterBattleText4: ; 455cf (11:55cf)
-	db $8
-	ld hl, UnnamedText_455ec ; $55ec
-	call PrintText
-	ld hl, $d81b
-	bit 6, [hl]
-	set 6, [hl]
-	jr nz, .asm_455e9 ; 0x455dd $a
-	ld a, $88
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-.asm_455e9
-	jp TextScriptEnd
-
-UnnamedText_455ec: ; 455ec (11:55ec)
-	TX_FAR _UnnamedText_455ec
-	db "@"
-
 INCLUDE "data/mapObjects/rockethideout4.asm"
 
 RocketHideout4Blocks: ; 45650 (11:5650)
@@ -53843,91 +46064,8 @@
 
 INCLUDE "data/mapHeaders/rockethideoutelevator.asm"
 
-RocketHideoutElevatorScript: ; 45710 (11:5710)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	push hl
-	call nz, RocketHideoutElevatorScript_4572c
-	pop hl
-	bit 7, [hl]
-	res 7, [hl]
-	call nz, Func_4575f
-	xor a
-	ld [$cf0c], a
-	inc a
-	ld [$cc3c], a
-	ret
+INCLUDE "scripts/rockethideoutelevator.asm"
 
-RocketHideoutElevatorScript_4572c: ; 4572c (11:572c)
-	ld hl, $d3af
-	ld a, [$d73b]
-	ld b, a
-	ld a, [$d73c]
-	ld c, a
-	call RocketHideoutElevatorScript_4573a
-
-RocketHideoutElevatorScript_4573a: ; 4573a (11:573a)
-	inc hl
-	inc hl
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ret
-
-RocketHideoutElevatorScript_45741: ; 45741 (11:5741)
-	ld hl, RocketHideoutElavatorFloors ; $5754
-	call LoadItemList
-	ld hl, RocketHideoutElevatorWarpMaps ; $5759
-	ld de, $cc5b
-	ld bc, $0006
-	call CopyData
-	ret
-
-RocketHideoutElavatorFloors: ; 45754 (11:5754)
-	db $03 ; num elements in list
-	db $55, $54, $61 ; "B1F", "B2F", "B4F"
-	db $FF ; terminator
-
-RocketHideoutElevatorWarpMaps: ; 45759 (11:5759)
-; first byte is warp number
-; second byte is map number
-; These specify where the player goes after getting out of the elevator.
-	db $04, ROCKET_HIDEOUT_1
-	db $04, ROCKET_HIDEOUT_2
-	db $02, ROCKET_HIDEOUT_4
-
-Func_4575f: ; 4575f (11:575f)
-	call Delay3
-	ld b, BANK(Func_7bf15)
-	ld hl, Func_7bf15
-	call Bankswitch
-	ret
-
-RocketHideoutElevatorTextPointers: ; 4576b (11:576b)
-	dw RocketHideoutElevatorText1
-
-RocketHideoutElevatorText1: ; 4576d (11:576d)
-	db $08 ; asm
-	ld b, LIFT_KEY
-	call IsItemInBag
-	jr z, .asm_8d8f0 ; 0x45773
-	call RocketHideoutElevatorScript_45741
-	ld hl, RocketHideoutElevatorWarpMaps ; $5759
-	ld a, $61
-	call Predef
-	jr .asm_46c43 ; 0x45780
-.asm_8d8f0 ; 0x45782
-	ld hl, UnnamedText_4578b
-	call PrintText
-.asm_46c43 ; 0x45788
-	jp TextScriptEnd
-
-UnnamedText_4578b: ; 4578b (11:578b)
-	TX_FAR _UnnamedText_4578b ; 0x82438
-	db $d, "@"
-
 INCLUDE "data/mapObjects/rockethideoutelevator.asm"
 
 RocketHideoutElevatorBlocks: ; 457a8 (11:57a8)
@@ -53935,87 +46073,8 @@
 
 INCLUDE "data/mapHeaders/silphcoelevator.asm"
 
-SilphCoElevatorScript: ; 457c0 (11:57c0)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	push hl
-	call nz, SilphCoElevatorScript_457dc
-	pop hl
-	bit 7, [hl]
-	res 7, [hl]
-	call nz, Func_45827
-	xor a
-	ld [$cf0c], a
-	inc a
-	ld [$cc3c], a
-	ret
+INCLUDE "scripts/silphcoelevator.asm"
 
-SilphCoElevatorScript_457dc: ; 457dc (11:57dc)
-	ld hl, $d3af
-	ld a, [$d73b]
-	ld b, a
-	ld a, [$d73c]
-	ld c, a
-	call SilphCoElevatorScript_457ea
-
-SilphCoElevatorScript_457ea: ; 457ea (11:57ea)
-	inc hl
-	inc hl
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ret
-
-SilphCoElevatorScript_457f1: ; 457f1 (11:57f1)
-	ld hl, SilphCoElavatorFloors ; $5804
-	call LoadItemList
-	ld hl, SilphCoElevatorWarpMaps ; $5811
-	ld de, $cc5b
-	ld bc, $16
-	call CopyData
-	ret
-
-SilphCoElavatorFloors: ; 45804 (11:45804)
-	db $0B ; num elements in list
-	db $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60 ; "1F", "2F", "3F", "4F", ... , "11F"
-	db $FF ; terminator
-
-SilphCoElevatorWarpMaps: ; 45811 (11:45811)
-; first byte is warp number
-; second byte is map number
-; These specify where the player goes after getting out of the elevator.
-	db $03, SILPH_CO_1F
-	db $02, SILPH_CO_2F
-	db $02, SILPH_CO_3F
-	db $02, SILPH_CO_4F
-	db $02, SILPH_CO_5F
-	db $02, SILPH_CO_6F
-	db $02, SILPH_CO_7F
-	db $02, SILPH_CO_8F
-	db $02, SILPH_CO_9F
-	db $02, SILPH_CO_10F
-	db $01, SILPH_CO_11F
-
-Func_45827: ; 45827 (11:5827)
-	call Delay3
-	ld b, BANK(Func_7bf15)
-	ld hl, Func_7bf15
-	call Bankswitch
-	ret
-
-SilphCoElevatorTextPointers: ; 45833 (11:5833)
-	dw SilphCoElevatorText1
-
-SilphCoElevatorText1: ; 45835 (11:5835)
-	db $08 ; asm
-	call SilphCoElevatorScript_457f1
-	ld hl, SilphCoElevatorWarpMaps ; $5811
-	ld a, $61
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/silphcoelevator.asm"
 
 SilphCoElevatorBlocks: ; 4585b (11:585b)
@@ -54023,30 +46082,8 @@
 
 INCLUDE "data/mapHeaders/safarizoneeast.asm"
 
-SafariZoneEastScript: ; 4586b (11:586b)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizoneeast.asm"
 
-SafariZoneEastTextPointers: ; 4586e (11:586e)
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw SafariZoneEastText5
-	dw SafariZoneEastText6
-	dw SafariZoneEastText7
-
-SafariZoneEastText5: ; 4587c (11:587c)
-	TX_FAR _SafariZoneEastText5
-	db "@"
-
-SafariZoneEastText6: ; 45881 (11:5881)
-	TX_FAR _SafariZoneEastText6
-	db "@"
-
-SafariZoneEastText7: ; 45886 (11:5886)
-	TX_FAR _SafariZoneEastText7
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneeast.asm"
 
 SafariZoneEastBlocks: ; 458dc (11:58dc)
@@ -54054,38 +46091,8 @@
 
 INCLUDE "data/mapHeaders/safarizonenorth.asm"
 
-SafariZoneNorthScript: ; 459ab (11:59ab)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizonenorth.asm"
 
-SafariZoneNorthTextPointers: ; 459ae (11:59ae)
-	dw Predef5CText
-	dw Predef5CText
-	dw SafariZoneNorthText3
-	dw SafariZoneNorthText4
-	dw SafariZoneNorthText5
-	dw SafariZoneNorthText6
-	dw SafariZoneNorthText7
-
-SafariZoneNorthText3: ; 459bc (11:59bc)
-	TX_FAR _SafariZoneNorthText3
-	db "@"
-
-SafariZoneNorthText4: ; 459c1 (11:59c1)
-	TX_FAR _SafariZoneNorthText4
-	db "@"
-
-SafariZoneNorthText5: ; 459c6 (11:59c6)
-	TX_FAR _SafariZoneNorthText5
-	db "@"
-
-SafariZoneNorthText6: ; 459cb (11:59cb)
-	TX_FAR _SafariZoneNorthText6
-	db "@"
-
-SafariZoneNorthText7: ; 459d0 (11:59d0)
-	TX_FAR _SafariZoneNorthText7
-	db "@"
-
 INCLUDE "data/mapObjects/safarizonenorth.asm"
 
 SafariZoneNorthBlocks: ; 45a3e (11:5a3e)
@@ -54093,22 +46100,8 @@
 
 INCLUDE "data/mapHeaders/safarizonecenter.asm"
 
-SafariZoneCenterScript: ; 45bb2 (11:5bb2)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizonecenter.asm"
 
-SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5)
-	dw Predef5CText
-	dw SafariZoneCenterText2
-	dw SafariZoneCenterText3
-
-SafariZoneCenterText2: ; 45bbb (11:5bbb)
-	TX_FAR _SafariZoneCenterText2
-	db "@"
-
-SafariZoneCenterText3: ; 45bc0 (11:5bc0)
-	TX_FAR _SafariZoneCenterText3
-	db "@"
-
 INCLUDE "data/mapObjects/safarizonecenter.asm"
 
 SafariZoneCenterBlocks: ; 45c1e (11:5c1e)
@@ -54116,108 +46109,32 @@
 
 INCLUDE "data/mapHeaders/safarizoneresthouse1.asm"
 
-SafariZoneRestHouse1Script: ; 45ced (11:5ced)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizoneresthouse1.asm"
 
-SafariZoneRestHouse1TextPointers: ; 45cf0 (11:5cf0)
-	dw SafariZoneRestHouse1Text1
-	dw SafariZoneRestHouse1Text2
-
-SafariZoneRestHouse1Text1: ; 45cf4 (11:5cf4)
-	TX_FAR _SafariZoneRestHouse1Text1
-	db "@"
-
-SafariZoneRestHouse1Text2: ; 45cf9 (11:5cf9)
-	TX_FAR _SafariZoneRestHouse1Text2
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneresthouse1.asm"
 
 INCLUDE "data/mapHeaders/safarizoneresthouse2.asm"
 
-SafariZoneRestHouse2Script: ; 45d2a (11:5d2a)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/safarizoneresthouse2.asm"
 
-SafariZoneRestHouse2TextPointers: ; 45d2e (11:5d2e)
-	dw SafariZoneRestHouse2Text1
-	dw SafariZoneRestHouse2Text2
-	dw SafariZoneRestHouse2Text3
-
-SafariZoneRestHouse2Text1: ; 45d34 (11:5d34)
-	TX_FAR _SafariZoneRestHouse2Text1
-	db "@"
-
-SafariZoneRestHouse2Text2: ; 45d39 (11:5d39)
-	TX_FAR _SafariZoneRestHouse2Text2
-	db "@"
-
-SafariZoneRestHouse2Text3: ; 45d3e (11:5d3e)
-	TX_FAR _SafariZoneRestHouse2Text3
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneresthouse2.asm"
 
 INCLUDE "data/mapHeaders/safarizoneresthouse3.asm"
 
-SafariZoneRestHouse3Script: ; 45d75 (11:5d75)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/safarizoneresthouse3.asm"
 
-SafariZoneRestHouse3TextPointers: ; 45d79 (11:5d79)
-	dw SafariZoneRestHouse3Text1
-	dw SafariZoneRestHouse3Text2
-	dw SafariZoneRestHouse3Text3
-
-SafariZoneRestHouse3Text1: ; 45d7f (11:5d7f)
-	TX_FAR _SafariZoneRestHouse3Text1
-	db "@"
-
-SafariZoneRestHouse3Text2: ; 45d84 (11:5d84)
-	TX_FAR _SafariZoneRestHouse3Text2
-	db "@"
-
-SafariZoneRestHouse3Text3: ; 45d89 (11:5d89)
-	TX_FAR _SafariZoneRestHouse3Text3
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneresthouse3.asm"
 
 INCLUDE "data/mapHeaders/safarizoneresthouse4.asm"
 
-SafariZoneRestHouse4Script: ; 45dc0 (11:5dc0)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/safarizoneresthouse4.asm"
 
-SafariZoneRestHouse4TextPointers: ; 45dc4 (11:5dc4)
-	dw SafariZoneRestHouse4Text1
-	dw SafariZoneRestHouse4Text2
-	dw SafariZoneRestHouse4Text3
-
-SafariZoneRestHouse4Text1: ; 45dca (11:5dca)
-	TX_FAR _SafariZoneRestHouse4Text1
-	db "@"
-
-SafariZoneRestHouse4Text2: ; 45dcf (11:5dcf)
-	TX_FAR _SafariZoneRestHouse4Text2
-	db "@"
-
-SafariZoneRestHouse4Text3: ; 45dd4 (11:5dd4)
-	TX_FAR _SafariZoneRestHouse4Text3
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneresthouse4.asm"
 
 INCLUDE "data/mapHeaders/unknowndungeon2.asm"
 
-UnknownDungeon2Script: ; 45e0b (11:5e0b)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/unknowndungeon2.asm"
 
-UnknownDungeon2TextPointers: ; 45e0e (11:5e0e)
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
 INCLUDE "data/mapObjects/unknowndungeon2.asm"
 
 UnknownDungeon2Blocks: ; 45e5d (11:5e5d)
@@ -54225,51 +46142,8 @@
 
 INCLUDE "data/mapHeaders/unknowndungeon3.asm"
 
-UnknownDungeon3Script: ; 45ef0 (11:5ef0)
-	call EnableAutoTextBoxDrawing
-	ld hl, UnknownDungeon3TrainerHeaders
-	ld de, UnknownDungeon3ScriptPointers
-	ld a, [W_UNKNOWNDUNGEON3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_UNKNOWNDUNGEON3CURSCRIPT], a
-	ret
+INCLUDE "scripts/unknowndungeon3.asm"
 
-UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-UnknownDungeon3TextPointers: ; 45f09 (11:5f09)
-	dw UnknownDungeon3Text1
-	dw Predef5CText
-	dw Predef5CText
-
-UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f)
-UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d85f ; flag's byte
-	dw UnknownDungeon3MewtwoText ; 0x5f26 TextBeforeBattle
-	dw UnknownDungeon3MewtwoText ; 0x5f26 TextAfterBattle
-	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
-	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
-
-	db $ff
-
-UnknownDungeon3Text1: ; 45f1c (11:5f1c)
-	db $08 ; asm
-	ld hl, UnknownDungeon3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-UnknownDungeon3MewtwoText: ; 45f26 (11:5f26)
-	TX_FAR _UnknownDungeon3MewtwoText
-	db $8
-	ld a, MEWTWO
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/unknowndungeon3.asm"
 
 UnknownDungeon3Blocks: ; 45f58 (11:5f58)
@@ -54277,249 +46151,8 @@
 
 INCLUDE "data/mapHeaders/rocktunnel2.asm"
 
-RockTunnel2Script: ; 45feb (11:5feb)
-	call EnableAutoTextBoxDrawing
-	ld hl, RockTunnel2TrainerHeaders
-	ld de, RockTunnel2ScriptPointers
-	ld a, [W_ROCKTUNNEL2CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROCKTUNNEL2CURSCRIPT], a
-	ret
+INCLUDE "scripts/rocktunnel2.asm"
 
-RockTunnel2ScriptPointers: ; 45ffe (11:5ffe)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-RockTunnel2TextPointers: ; 46004 (11:6004)
-	dw RockTunnel2Text1
-	dw RockTunnel2Text2
-	dw RockTunnel2Text3
-	dw RockTunnel2Text4
-	dw RockTunnel2Text5
-	dw RockTunnel2Text6
-	dw RockTunnel2Text7
-	dw RockTunnel2Text8
-
-RockTunnel2TrainerHeaders: ; 46014 (11:6014)
-RockTunnel2TrainerHeader0: ; 46014 (11:6014)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText2 ; 0x60c5 TextBeforeBattle
-	dw RockTunnel2AfterBattleText2 ; 0x60cf TextAfterBattle
-	dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
-	dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
-
-RockTunnel2TrainerHeader2: ; 46020 (11:6020)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText3 ; 0x60d4 TextBeforeBattle
-	dw RockTunnel2AfterBattleText3 ; 0x60de TextAfterBattle
-	dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
-	dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
-
-RockTunnel2TrainerHeader3: ; 4602c (11:602c)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText4 ; 0x60e3 TextBeforeBattle
-	dw RockTunnel2AfterBattleText4 ; 0x60ed TextAfterBattle
-	dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
-	dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
-
-RockTunnel2TrainerHeader4: ; 46038 (11:6038)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText5 ; 0x60f2 TextBeforeBattle
-	dw RockTunnel2AfterBattleText5 ; 0x60fc TextAfterBattle
-	dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
-	dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
-
-RockTunnel2TrainerHeader5: ; 46044 (11:6044)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText6 ; 0x6101 TextBeforeBattle
-	dw RockTunnel2AfterBattleText6 ; 0x610b TextAfterBattle
-	dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
-	dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
-
-RockTunnel2TrainerHeader6: ; 46050 (11:6050)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText7 ; 0x6110 TextBeforeBattle
-	dw RockTunnel2AfterBattleText7 ; 0x611a TextAfterBattle
-	dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
-	dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
-
-RockTunnel2TrainerHeader7: ; 4605c (11:605c)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText8 ; 0x611f TextBeforeBattle
-	dw RockTunnel2AfterBattleText8 ; 0x6129 TextAfterBattle
-	dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
-	dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
-
-RockTunnel2TrainerHeader8: ; 46068 (11:6068)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d87d ; flag's byte
-	dw RockTunnel2BattleText9 ; 0x612e TextBeforeBattle
-	dw RockTunnel2AfterBattleText9 ; 0x6138 TextAfterBattle
-	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
-	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
-
-	db $ff
-
-RockTunnel2Text1: ; 46075 (11:6075)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text2: ; 4607f (11:607f)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text3: ; 46089 (11:6089)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text4: ; 46093 (11:6093)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text5: ; 4609d (11:609d)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text6: ; 460a7 (11:60a7)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text7: ; 460b1 (11:60b1)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2Text8: ; 460bb (11:60bb)
-	db $08 ; asm
-	ld hl, RockTunnel2TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-RockTunnel2BattleText2: ; 460c5 (11:60c5)
-	TX_FAR _RockTunnel2BattleText2
-	db "@"
-
-RockTunnel2EndBattleText2: ; 460ca (11:60ca)
-	TX_FAR _RockTunnel2EndBattleText2
-	db "@"
-
-RockTunnel2AfterBattleText2: ; 460cf (11:60cf)
-	TX_FAR _RockTunnel2AfterBattleText2
-	db "@"
-
-RockTunnel2BattleText3: ; 460d4 (11:60d4)
-	TX_FAR _RockTunnel2BattleText3
-	db "@"
-
-RockTunnel2EndBattleText3: ; 460d9 (11:60d9)
-	TX_FAR _RockTunnel2EndBattleText3
-	db "@"
-
-RockTunnel2AfterBattleText3: ; 460de (11:60de)
-	TX_FAR _RockTunnel2AfterBattleText3
-	db "@"
-
-RockTunnel2BattleText4: ; 460e3 (11:60e3)
-	TX_FAR _RockTunnel2BattleText4
-	db "@"
-
-RockTunnel2EndBattleText4: ; 460e8 (11:60e8)
-	TX_FAR _RockTunnel2EndBattleText4
-	db "@"
-
-RockTunnel2AfterBattleText4: ; 460ed (11:60ed)
-	TX_FAR _RockTunnel2AfterBattleText4
-	db "@"
-
-RockTunnel2BattleText5: ; 460f2 (11:60f2)
-	TX_FAR _RockTunnel2BattleText5
-	db "@"
-
-RockTunnel2EndBattleText5: ; 460f7 (11:60f7)
-	TX_FAR _RockTunnel2EndBattleText5
-	db "@"
-
-RockTunnel2AfterBattleText5: ; 460fc (11:60fc)
-	TX_FAR _RockTunnel2AfterBattleText5
-	db "@"
-
-RockTunnel2BattleText6: ; 46101 (11:6101)
-	TX_FAR _RockTunnel2BattleText6
-	db "@"
-
-RockTunnel2EndBattleText6: ; 46106 (11:6106)
-	TX_FAR _RockTunnel2EndBattleText6
-	db "@"
-
-RockTunnel2AfterBattleText6: ; 4610b (11:610b)
-	TX_FAR _RockTunnel2AfterBattleText6
-	db "@"
-
-RockTunnel2BattleText7: ; 46110 (11:6110)
-	TX_FAR _RockTunnel2BattleText7
-	db "@"
-
-RockTunnel2EndBattleText7: ; 46115 (11:6115)
-	TX_FAR _RockTunnel2EndBattleText7
-	db "@"
-
-RockTunnel2AfterBattleText7: ; 4611a (11:611a)
-	TX_FAR _RockTunnel2AfterBattleText7
-	db "@"
-
-RockTunnel2BattleText8: ; 4611f (11:611f)
-	TX_FAR _RockTunnel2BattleText8
-	db "@"
-
-RockTunnel2EndBattleText8: ; 46124 (11:6124)
-	TX_FAR _RockTunnel2EndBattleText8
-	db "@"
-
-RockTunnel2AfterBattleText8: ; 46129 (11:6129)
-	TX_FAR _RockTunnel2AfterBattleText8
-	db "@"
-
-RockTunnel2BattleText9: ; 4612e (11:612e)
-	TX_FAR _RockTunnel2BattleText9
-	db "@"
-
-RockTunnel2EndBattleText9: ; 46133 (11:6133)
-	TX_FAR _RockTunnel2EndBattleText9
-	db "@"
-
-RockTunnel2AfterBattleText9: ; 46138 (11:6138)
-	TX_FAR _RockTunnel2AfterBattleText9
-	db "@"
-
 INCLUDE "data/mapObjects/rocktunnel2.asm"
 
 RockTunnel2Blocks: ; 461a1 (11:61a1)
@@ -54527,55 +46160,8 @@
 
 INCLUDE "data/mapHeaders/seafoamislands2.asm"
 
-SeafoamIslands2Script: ; 46315 (11:6315)
-	call EnableAutoTextBoxDrawing
-	ld hl, wFlags_0xcd60
-	bit 7, [hl]
-	res 7, [hl]
-	jr z, .asm_46362 ; 0x4631f $41
-	ld hl, Seafoam2HolesCoords
-	call CheckBoulderCoords
-	ret nc
-	ld hl, $d87f
-	ld a, [$cd3d]
-	cp $1
-	jr nz, .asm_46340 ; 0x46330 $e
-	set 0, [hl]
-	ld a, $d9
-	ld [$d079], a
-	ld a, $db
-	ld [$d07a], a
-	jr .asm_4634c ; 0x4633e $c
-.asm_46340
-	set 1, [hl]
-	ld a, $da
-	ld [$d079], a
-	ld a, $dc
-	ld [$d07a], a
-.asm_4634c
-	ld a, [$d079]
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, [$d07a]
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef
-.asm_46362
-	ld a, $a0
-	ld [$d71d], a
-	ld hl, Seafoam2HolesCoords
-	jp Func_46981
+INCLUDE "scripts/seafoamislands2.asm"
 
-Seafoam2HolesCoords: ; 4636d (11:636d)
-	db $06,$12
-	db $06,$17
-	db $ff
-
-SeafoamIslands2TextPointers: ; 46372 (11:6372)
-	dw BoulderText
-	dw BoulderText
-
 INCLUDE "data/mapObjects/seafoamislands2.asm"
 
 SeafoamIslands2Blocks: ; 463be (11:63be)
@@ -54583,55 +46169,8 @@
 
 INCLUDE "data/mapHeaders/seafoamislands3.asm"
 
-SeafoamIslands3Script: ; 46451 (11:6451)
-	call EnableAutoTextBoxDrawing
-	ld hl, wFlags_0xcd60
-	bit 7, [hl]
-	res 7, [hl]
-	jr z, .asm_4649e ; 0x4645b $41
-	ld hl, Seafoam3HolesCoords
-	call CheckBoulderCoords
-	ret nc
-	ld hl, $d880
-	ld a, [$cd3d]
-	cp $1
-	jr nz, .asm_4647c ; 0x4646c $e
-	set 0, [hl]
-	ld a, $db
-	ld [$d079], a
-	ld a, $df
-	ld [$d07a], a
-	jr .asm_46488 ; 0x4647a $c
-.asm_4647c
-	set 1, [hl]
-	ld a, $dc
-	ld [$d079], a
-	ld a, $e0
-	ld [$d07a], a
-.asm_46488
-	ld a, [$d079]
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, [$d07a]
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef
-.asm_4649e
-	ld a, $a1
-	ld [$d71d], a
-	ld hl, Seafoam3HolesCoords
-	jp Func_46981
+INCLUDE "scripts/seafoamislands3.asm"
 
-Seafoam3HolesCoords: ; 464a9 (11:64a9)
-	db $06,$13
-	db $06,$16
-	db $ff
-
-SeafoamIslands3TextPointers: ; 464ae (11:64ae)
-	dw BoulderText
-	dw BoulderText
-
 INCLUDE "data/mapObjects/seafoamislands3.asm"
 
 SeafoamIslands3Blocks: ; 464fa (11:64fa)
@@ -54639,155 +46178,8 @@
 
 INCLUDE "data/mapHeaders/seafoamislands4.asm"
 
-SeafoamIslands4Script: ; 4658d (11:658d)
-	call EnableAutoTextBoxDrawing
-	ld hl, wFlags_0xcd60
-	bit 7, [hl]
-	res 7, [hl]
-	jr z, .asm_465dc ; 0x46597 $43
-	ld hl, Seafoam4HolesCoords
-	call CheckBoulderCoords
-	ret nc
-	ld hl, $d881
-	ld a, [$cd3d]
-	cp $1
-	jr nz, .asm_465b8 ; 0x465a8 $e
-	set 0, [hl]
-	ld a, $dd
-	ld [$d079], a
-	ld a, $e1
-	ld [$d07a], a
-	jr .asm_465c4 ; 0x465b6 $c
-.asm_465b8
-	set 1, [hl]
-	ld a, $de
-	ld [$d079], a
-	ld a, $e2
-	ld [$d07a], a
-.asm_465c4
-	ld a, [$d079]
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, [$d07a]
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	jr .asm_465ed ; 0x465da $11
-.asm_465dc
-	ld a, $a2
-	ld [$d71d], a
-	ld hl, Seafoam4HolesCoords
-	call Func_46981
-	ld a, [$d732]
-	bit 4, a
-	ret nz
-.asm_465ed
-	ld hl, SeafoamIslands4ScriptPointers
-	ld a, [W_SEAFOAMISLANDS4CURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/seafoamislands4.asm"
 
-Seafoam4HolesCoords: ; 465f6 (11:65f6)
-	db $10,$03
-	db $10,$06
-	db $ff
-
-SeafoamIslands4ScriptPointers: ; 465fb (11:65fb)
-	dw SeafoamIslands4Script0
-	dw SeafoamIslands4Script1
-	dw SeafoamIslands4Script2
-	dw SeafoamIslands4Script3
-
-SeafoamIslands4Script0: ; 46603 (11:6603)
-	ld a, [$d880]
-	and $3
-	cp $3
-	ret z
-	ld a, [W_YCOORD]
-	cp $8
-	ret nz
-	ld a, [W_XCOORD]
-	cp $f
-	ret nz
-	ld hl, $ccd3
-	ld de, RLEMovement46632
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld hl, W_FLAGS_D733
-	set 2, [hl]
-	ld a, $1
-	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
-	ret
-
-RLEMovement46632: ; 46632 (11:6632)
-	db $80,6
-	db $10,5
-	db $80,3
-	db $ff
-
-SeafoamIslands4Script1: ; 46639 (11:6639)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld a, $0
-	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
-	ret
-
-SeafoamIslands4Script2: ; 46644 (11:6644)
-	ld a, [$d880]
-	and $3
-	cp $3
-	ret z
-	ld a, [W_XCOORD]
-	cp $12
-	jr z, .asm_4665e
-	cp $13
-	ld a, $0
-	jr nz, .asm_4667b
-	ld de, RLEData_4667f
-	jr .asm_46661
-.asm_4665e
-	ld de, RLEData_46688
-.asm_46661
-	ld hl, $ccd3
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	xor a
-	ld [$c206], a
-	ld hl, $d730
-	set 7, [hl]
-	ld hl, W_FLAGS_D733
-	set 2, [hl]
-	ld a, $3
-.asm_4667b
-	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
-	ret
-
-RLEData_4667f: ; 4667f (11:667f)
-	db $80,$06,$10,$02,$80,$04,$20,$01,$FF
-
-RLEData_46688: ; 46688 (11:6688)
-	db $80,$06,$10,$02,$80,$04,$FF
-
-SeafoamIslands4Script3: ; 4668f (11:668f)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld a, $0
-	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
-	ret
-
-SeafoamIslands4TextPointers: ; 4669a (11:669a)
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-
 INCLUDE "data/mapObjects/seafoamislands4.asm"
 
 SeafoamIslands4Blocks: ; 46706 (11:6706)
@@ -54795,185 +46187,8 @@
 
 INCLUDE "data/mapHeaders/seafoamislands5.asm"
 
-SeafoamIslands5Script: ; 46799 (11:6799)
-	call EnableAutoTextBoxDrawing
-	ld a, [W_SEAFOAMISLANDS5CURSCRIPT]
-	ld hl, SeafoamIslands5ScriptPointers
-	jp CallFunctionInTable
+INCLUDE "scripts/seafoamislands5.asm"
 
-SeafoamIslands5Script_467a5: ; 467a5 (11:67a5)
-	xor a
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-
-SeafoamIslands5ScriptPointers: ; 467ad (11:67ad)
-	dw SeafoamIslands5Script0
-	dw SeafoamIslands5Script1
-	dw SeafoamIslands5Script2
-	dw SeafoamIslands5Script3
-	dw SeafoamIslands5Script4
-
-SeafoamIslands5Script4: ; 467b7 (11:67b7)
-	ld a, [W_ISINBATTLE]
-	cp $ff
-	jr z, SeafoamIslands5Script_467a5
-	call EndTrainerBattle
-	ld a, $0
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ret
-
-SeafoamIslands5Script0: ; 467c7 (11:67c7)
-	ld a, [$d880]
-	and $3
-	cp $3
-	ret z
-	ld hl, CoordsData_467fe
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, [$cd3d]
-	cp $3
-	jr nc, .asm_467e6
-	ld a, $40
-	ld [$ccd4], a
-	ld a, $2
-	jr .asm_467e8
-.asm_467e6
-	ld a, $1
-.asm_467e8
-	ld [$cd38], a
-	ld a, $40
-	ld [$ccd3], a
-	call Func_3486
-	ld hl, W_FLAGS_D733
-	res 2, [hl]
-	ld a, $1
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ret
-
-CoordsData_467fe: ; 467fe (11:67fe)
-	db $11,$14
-	db $11,$15
-	db $10,$14
-	db $10,$15
-	db $FF
-
-SeafoamIslands5Script1: ; 46807 (11:6807)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ret
-
-SeafoamIslands5Script2: ; 46816 (11:6816)
-	ld a, [$d881]
-	and $3
-	cp $3
-	ld a, $0
-	jr z, .asm_46849
-	ld hl, CoordsData_4684d
-	call ArePlayerCoordsInArray
-	ld a, $0
-	jr nc, .asm_46849
-	ld a, [$cd3d]
-	cp $1
-	jr nz, .asm_46837
-	ld de, RLEMovementData_46859
-	jr .asm_4683a
-.asm_46837
-	ld de, RLEMovementData_46852
-.asm_4683a
-	ld hl, $ccd3
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-.asm_46849
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ret
-
-CoordsData_4684d: ; 4684d (11:684d)
-	db $0E,$04
-	db $0E,$05
-	db $FF
-
-RLEMovementData_46852: ; 46852 (11:6852)
-	db $40,$03
-	db $10,$02
-	db $40,$01
-	db $FF
-
-RLEMovementData_46859: ; 46859 (11:6859)
-	db $40,$03
-	db $10,$03
-	db $40,$01
-	db $FF
-
-SeafoamIslands5Script3: ; 46860 (11:6860)
-	ld a, [$cd38]
-	ld b, a
-	cp $1
-	call z, SeaFoamIslands5Script_46872
-	ld a, b
-	and a
-	ret nz
-	ld a, $0
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	ret
-
-SeaFoamIslands5Script_46872: ; 46872 (11:6872)
-	xor a
-	ld [$d700], a
-	ld [$d11a], a
-	jp ForceBikeOrSurf
-
-SeafoamIslands5TextPointers: ; 4687c (11:687c)
-	dw BoulderText
-	dw BoulderText
-	dw SeafoamIslands5Text3
-	dw SeafoamIslands5Text4
-	dw SeafoamIslands5Text5
-
-SeafoamIslands5TrainerHeaders: ; 46886 (11:6886)
-SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
-	db $2 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d882 ; flag's byte
-	dw SeafoamIslands5BattleText2 ; 0x68a2 TextBeforeBattle
-	dw SeafoamIslands5BattleText2 ; 0x68a2 TextAfterBattle
-	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
-	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
-
-	db $ff
-
-SeafoamIslands5Text3: ; 46893 (11:6893)
-	db $08 ; asm
-	ld hl, SeafoamIslands5TrainerHeader0
-	call TalkToTrainer
-	ld a, $4
-	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
-	jp TextScriptEnd
-
-SeafoamIslands5BattleText2: ; 468a2 (11:68a2)
-	TX_FAR _SeafoamIslands5BattleText2
-	db $8
-	ld a, ARTICUNO
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-SeafoamIslands5Text4: ; 468b2 (11:68b2)
-	TX_FAR _SeafoamIslands5Text4
-	db "@"
-
-SeafoamIslands5Text5: ; 468b7 (11:68b7)
-	TX_FAR _SeafoamIslands5Text5
-	db "@"
-
 INCLUDE "data/mapObjects/seafoamislands5.asm"
 
 SeafoamIslands5Blocks: ; 468fa (11:68fa)
@@ -55200,88 +46415,12 @@
 	ld c, $4
 	jp DelayFrames
 
-Route7Script: ; 48152 (12:4152)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route7.asm"
 
-Route7TextPointers: ; 48155 (12:4155)
-	dw Route7Text1
-
-Route7Text1: ; 48157 (12:4157)
-	TX_FAR _Route7Text1
-	db "@"
-
 INCLUDE "data/mapHeaders/redshouse1f.asm"
 
-RedsHouse1FScript: ; 48168 (12:4168)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/redshouse1f.asm"
 
-RedsHouse1FTextPointers: ; 4816b (12:416b)
-	dw RedsHouse1FText1
-	dw RedsHouse1FText2
-
-RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom
-	db 8
-	ld a, [$D72E]
-	bit 3, a
-	jr nz, .heal ; if player has received a Pokémon from Oak, heal team
-	ld hl, MomWakeUpText
-	call PrintText
-	jr .done
-.heal
-	call MomHealPokemon
-.done
-	jp TextScriptEnd
-
-MomWakeUpText: ; 48185 (12:4185)
-	TX_FAR _MomWakeUpText
-	db "@"
-
-MomHealPokemon: ; 4818a (12:418a)
-	ld hl, MomHealText1
-	call PrintText
-	call GBFadeOut2
-	call ReloadMapData
-	PREDEF HealPartyPredef
-	ld a, MUSIC_PKMN_HEALED
-	ld [$C0EE], a
-	call PlaySound ; play sound?
-.next
-	ld a, [$C026]
-	cp MUSIC_PKMN_HEALED
-	jr z, .next
-	ld a, [$D35B]
-	ld [$C0EE], a
-	call PlaySound
-	call GBFadeIn2
-	ld hl, MomHealText2
-	jp PrintText
-
-MomHealText1: ; 481bc (12:41bc)
-	TX_FAR _MomHealText1
-	db "@"
-MomHealText2: ; 481c1 (12:41c1)
-	TX_FAR _MomHealText2
-	db "@"
-
-RedsHouse1FText2: ; 0x481c6 TV
-	db 8
-	ld a,[$C109]
-	cp 4
-	ld hl,TVWrongSideText
-	jr nz,.done ; if player is not facing up
-	ld hl,StandByMeText
-.done
-	call PrintText
-	jp TextScriptEnd
-
-StandByMeText: ; 481da (12:41da)
-	TX_FAR _StandByMeText
-	db "@"
-
-TVWrongSideText: ; 481df (12:41df)
-	TX_FAR _TVWrongSideText
-	db "@"
-
 INCLUDE "data/mapObjects/redshouse1f.asm"
 
 RedsHouse1FBlocks: ; 48209 (12:4209)
@@ -55289,116 +46428,8 @@
 
 INCLUDE "data/mapHeaders/celadonmart3.asm"
 
-CeladonMart3Script: ; 48225 (12:4225)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmart3.asm"
 
-CeladonMart3TextPointers: ; 48228 (12:4228)
-	dw CeladonMart3Text1
-	dw CeladonMart3Text2
-	dw CeladonMart3Text3
-	dw CeladonMart3Text4
-	dw CeladonMart3Text5
-	dw CeladonMart3Text6
-	dw CeladonMart3Text7
-	dw CeladonMart3Text8
-	dw CeladonMart3Text9
-	dw CeladonMart3Text10
-	dw CeladonMart3Text11
-	dw CeladonMart3Text12
-	dw CeladonMart3Text13
-	dw CeladonMart3Text14
-	dw CeladonMart3Text15
-	dw CeladonMart3Text16
-	dw CeladonMart3Text17
-
-CeladonMart3Text1: ; 4824a (12:424a)
-	db $08 ; asm
-	ld a, [$d778]
-	bit 7, a
-	jr nz, .asm_a5463 ; 0x48250
-	ld hl, TM18PreReceiveText
-	call PrintText
-	ld bc, (TM_18 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d778
-	set 7, [hl]
-	ld hl, ReceivedTM18Text
-	jr .asm_81359 ; 0x48268
-.BagFull
-	ld hl, TM18NoRoomText
-	jr .asm_81359 ; 0x4826d
-.asm_a5463 ; 0x4826f
-	ld hl, TM18ExplanationText
-.asm_81359 ; 0x48272
-	call PrintText
-	jp TextScriptEnd
-
-TM18PreReceiveText: ; 48278 (12:4278)
-	TX_FAR _TM18PreReceiveText
-	db "@"
-
-ReceivedTM18Text: ; 4827d (12:427d)
-	TX_FAR _ReceivedTM18Text
-	db $0B, "@"
-
-TM18ExplanationText: ; 48283 (12:4283)
-	TX_FAR _TM18ExplanationText
-	db "@"
-
-TM18NoRoomText: ; 48288 (12:4288)
-	TX_FAR _TM18NoRoomText
-	db "@"
-
-CeladonMart3Text2: ; 4828d (12:428d)
-	TX_FAR _CeladonMart3Text2
-	db "@"
-
-CeladonMart3Text3: ; 48292 (12:4292)
-	TX_FAR _CeladonMart3Text3
-	db "@"
-
-CeladonMart3Text4: ; 48297 (12:4297)
-	TX_FAR _CeladonMart3Text4
-	db "@"
-
-CeladonMart3Text5: ; 4829c (12:429c)
-	TX_FAR _CeladonMart3Text5
-	db "@"
-
-CeladonMart3Text12
-CeladonMart3Text10: ; 482a1 (12:42a1)
-CeladonMart3Text8: ; 482a1 (12:42a1)
-CeladonMart3Text6: ; 482a1 (12:42a1)
-	TX_FAR _CeladonMart3Text6
-	db "@"
-
-CeladonMart3Text7: ; 482a6 (12:42a6)
-	TX_FAR _CeladonMart3Text7
-	db "@"
-
-CeladonMart3Text9: ; 482ab (12:42ab)
-	TX_FAR _CeladonMart3Text9
-	db "@"
-
-CeladonMart3Text11: ; 482b0 (12:42b0)
-	TX_FAR _CeladonMart3Text11
-	db "@"
-
-CeladonMart3Text13: ; 482b5 (12:42b5)
-	TX_FAR _CeladonMart3Text13
-	db "@"
-
-CeladonMart3Text14: ; 482ba (12:42ba)
-	TX_FAR _CeladonMart3Text14
-	db "@"
-
-CeladonMart3Text17: ; 482bf (12:42bf)
-CeladonMart3Text16: ; 482bf (12:42bf)
-CeladonMart3Text15: ; 482bf (12:42bf)
-	TX_FAR _CeladonMart3Text15
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmart3.asm"
 
 CeladonMart3Blocks: ; 48322 (12:4322)
@@ -55406,27 +46437,8 @@
 
 INCLUDE "data/mapHeaders/celadonmart4.asm"
 
-CeladonMart4Script: ; 48356 (12:4356)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmart4.asm"
 
-CeladonMart4TextPointers: ; 48359 (12:4359)
-	dw CeladonMart4Text1
-	dw CeladonMart4Text2
-	dw CeladonMart4Text3
-	dw CeladonMart4Text4
-
-CeladonMart4Text2: ; 48361 (12:4361)
-	TX_FAR _CeladonMart4Text2
-	db "@"
-
-CeladonMart4Text3: ; 48366 (12:4366)
-	TX_FAR _CeladonMart4Text3
-	db "@"
-
-CeladonMart4Text4: ; 4836b (12:436b)
-	TX_FAR _CeladonMart4Text4
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmart4.asm"
 
 CeladonMart4Blocks: ; 483a1 (12:43a1)
@@ -55434,270 +46446,8 @@
 
 INCLUDE "data/mapHeaders/celadonmartroof.asm"
 
-CeladonMartRoofScript: ; 483d5 (12:43d5)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmartroof.asm"
 
-CeladonMartRoofScript_483d8: ; 483d8 (12:43d8)
-	xor a
-	ld [$cd37], a
-	ld de, $cc5b
-	ld hl, CeladonMartRoofDrinkList ; $4408
-.asm_483e2
-	ld a, [hli]
-	and a
-	jr z, .asm_48404
-	push hl
-	push de
-	ld [$d11e], a
-	ld b, a
-	ld a, $1c
-	call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
-	pop de
-	pop hl
-	ld a, b
-	and a
-	jr z, .asm_483e2
-	ld a, [$d11e]
-	ld [de], a
-	inc de
-	push hl
-	ld hl, $cd37
-	inc [hl]
-	pop hl
-	jr .asm_483e2
-.asm_48404
-	ld a, $ff
-	ld [de], a
-	ret
-
-CeladonMartRoofDrinkList: ; 48408 (12:4408)
-	db FRESH_WATER
-	db SODA_POP
-	db LEMONADE
-	db $00
-
-CeladonMartRoofScript_4840c: ; 4840c (12:440c)
-	ld hl, $d730
-	set 6, [hl]
-	ld hl, UnnamedText_484ee ; $44ee
-	call PrintText
-	xor a
-	ld [wCurrentMenuItem], a ; $cc26
-	ld a, $3
-	ld [wMenuWatchedKeys], a ; $cc29
-	ld a, [$cd37]
-	dec a
-	ld [wMaxMenuItem], a ; $cc28
-	ld a, $2
-	ld [wTopMenuItemY], a ; $cc24
-	ld a, $1
-	ld [wTopMenuItemX], a ; $cc25
-	ld a, [$cd37]
-	dec a
-	ld bc, $2
-	ld hl, $3
-	call AddNTimes
-	dec l
-	ld b, l
-	ld c, $c
-	ld hl, wTileMap
-	call TextBoxBorder
-	call UpdateSprites
-	call CeladonMartRoofScript_48532
-	ld hl, $d730
-	res 6, [hl]
-	call HandleMenuInput
-	bit 1, a
-	ret nz
-	ld hl, $cc5b
-	ld a, [wCurrentMenuItem] ; $cc26
-	ld d, $0
-	ld e, a
-	add hl, de
-	ld a, [hl]
-	ld [$ffdb], a
-	cp FRESH_WATER
-	jr z, .asm_484b6
-	cp SODA_POP
-	jr z, .asm_48492
-	ld a, [$d778]
-	bit 6, a
-	jr nz, .asm_484e0
-	ld hl, UnnamedText_48515 ; $4515
-	call PrintText
-	call RemoveItemByIDBank12
-	ld bc, (TM_49 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM49Text
-	call PrintText
-	ld hl, $d778
-	set 6, [hl]
-	ret
-.asm_48492
-	ld a, [$d778]
-	bit 5, a
-	jr nz, .asm_484e0
-	ld hl, UnnamedText_48504 ; $4504
-	call PrintText
-	call RemoveItemByIDBank12
-	ld bc, (TM_48 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, UnnamedText_4850a ; $450a
-	call PrintText
-	ld hl, $d778
-	set 5, [hl]
-	ret
-.asm_484b6
-	ld a, [$d778]
-	bit 4, a
-	jr nz, .asm_484e0
-	ld hl, UnnamedText_484f3 ; $44f3
-	call PrintText
-	call RemoveItemByIDBank12
-	ld bc, (TM_13 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, UnnamedText_484f9 ; $44f9
-	call PrintText
-	ld hl, $d778
-	set 4, [hl]
-	ret
-.BagFull
-	ld hl, UnnamedText_48526 ; $4526
-	jp PrintText
-.asm_484e0
-	ld hl, UnnamedText_4852c ; $452c
-	jp PrintText
-
-RemoveItemByIDBank12: ; 484e6 (12:44e6)
-	ld b, BANK(RemoveItemByID)
-	ld hl, RemoveItemByID
-	jp Bankswitch
-
-UnnamedText_484ee: ; 484ee (12:44ee)
-	TX_FAR _UnnamedText_484ee
-	db "@"
-
-UnnamedText_484f3: ; 484f3 (12:44f3)
-	TX_FAR _UnnamedText_484f3
-	db $0d
-	db "@"
-
-UnnamedText_484f9: ; 484f9 (12:44f9)
-	TX_FAR _UnnamedText_484f9
-	db $0b
-	TX_FAR _UnnamedText_484fe
-	db $0d
-	db "@"
-
-UnnamedText_48504: ; 48504 (12:4504)
-	TX_FAR _UnnamedText_48504
-	db $0d
-	db "@"
-
-UnnamedText_4850a: ; 4850a (12:450a)
-	TX_FAR _UnnamedText_4850a
-	db $0b
-	TX_FAR _UnnamedText_4850f
-	db $0d
-	db "@"
-
-UnnamedText_48515: ; 48515 (12:4515)
-	TX_FAR _UnnamedText_48515
-	db $0d
-	db "@"
-
-ReceivedTM49Text: ; 4851b (12:451b)
-	TX_FAR _ReceivedTM49Text
-	db $0b
-	TX_FAR _UnnamedText_48520
-	db $0d
-	db "@"
-
-UnnamedText_48526: ; 48526 (12:4526)
-	TX_FAR _UnnamedText_48526
-	db $0d
-	db "@"
-
-UnnamedText_4852c: ; 4852c (12:452c)
-	TX_FAR _UnnamedText_4852c
-	db $0d
-	db "@"
-
-CeladonMartRoofScript_48532: ; 48532 (12:4532)
-	ld hl, $cc5b
-	xor a
-	ld [$ffdb], a
-.asm_48538
-	ld a, [hli]
-	cp $ff
-	ret z
-	push hl
-	ld [$d11e], a
-	call GetItemName
-	FuncCoord 2, 2 ; $c3ca
-	ld hl, Coord
-	ld a, [$ffdb]
-	ld bc, $28
-	call AddNTimes
-	ld de, $cd6d
-	call PlaceString
-	ld hl, $ffdb
-	inc [hl]
-	pop hl
-	jr .asm_48538
-
-CeladonMartRoofTextPointers: ; 4855b (12:455b)
-	dw CeladonMartRoofText1
-	dw CeladonMartRoofText2
-	dw CeladonMartRoofText5
-	dw CeladonMartRoofText5
-	dw CeladonMartRoofText5
-	dw CeladonMartRoofText6
-
-CeladonMartRoofText1: ; 48567 (12:4567)
-	TX_FAR _CeladonMartRoofText1
-	db "@"
-
-CeladonMartRoofText2: ; 4856c (12:456c)
-	db $08 ; asm
-	call CeladonMartRoofScript_483d8
-	ld a, [$cd37]
-	and a
-	jr z, .asm_914b9 ; 0x48574
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, CeladonMartRoofText4
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_05aa4 ; 0x48588
-	call CeladonMartRoofScript_4840c
-	jr .asm_05aa4 ; 0x4858d
-.asm_914b9 ; 0x4858f
-	ld hl, CeladonMartRoofText3
-	call PrintText
-.asm_05aa4 ; 0x48595
-	jp TextScriptEnd
-
-CeladonMartRoofText3: ; 48598 (12:4598)
-	TX_FAR _UnnamedText_48598
-	db "@"
-
-CeladonMartRoofText4: ; 4859d (12:459d)
-	TX_FAR _CeladonMartRoofText4
-	db "@"
-
-CeladonMartRoofText5: ; 485a2 (12:45a2)
-	db $f5
-
-CeladonMartRoofText6: ; 485a3 (12:45a3)
-	TX_FAR _CeladonMartRoofText6
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmartroof.asm"
 
 CeladonMartRoofBlocks: ; 485cc (12:45cc)
@@ -55705,78 +46455,8 @@
 
 INCLUDE "data/mapHeaders/celadonmartelevator.asm"
 
-CeladonMartElevatorScript: ; 48600 (12:4600)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	push hl
-	call nz, CeladonMartElevatorScript_4861c
-	pop hl
-	bit 7, [hl]
-	res 7, [hl]
-	call nz, Func_48654
-	xor a
-	ld [$cf0c], a
-	inc a
-	ld [$cc3c], a
-	ret
+INCLUDE "scripts/celadonmartelevator.asm"
 
-CeladonMartElevatorScript_4861c: ; 4861c (12:461c)
-	ld hl, $d3af
-	ld a, [$d73b]
-	ld b, a
-	ld a, [$d73c]
-	ld c, a
-	call CeladonMartElevatorScript_4862a
-
-CeladonMartElevatorScript_4862a: ; 4862a (12:462a)
-	inc hl
-	inc hl
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ret
-
-CeladonMartElevatorScript_48631: ; 48631 (12:4631)
-	ld hl, CeladonMartElavatorFloors ; $4643
-	call LoadItemList
-	ld hl, CeldaonMartElevatorWarpMaps ; $464a
-	ld de, $cc5b
-	ld bc, $000a
-	jp CopyData
-
-CeladonMartElavatorFloors: ; 48643 (12:4643)
-	db $05 ; num elements in list
-	db $56, $57, $58, $59, $5A ; "1F", "2F", "3F", "4F, "5F"
-	db $FF ; terminator
-
-CeldaonMartElevatorWarpMaps: ; 4864a (12:464a)
-; first byte is warp number
-; second byte is map number
-; These specify where the player goes after getting out of the elevator.
-	db $05, CELADON_MART_1
-	db $02, CELADON_MART_2
-	db $02, CELADON_MART_3
-	db $02, CELADON_MART_4
-	db $02, CELADON_MART_5
-
-Func_48654: ; 48654 (12:4654)
-	ld b, BANK(Func_7bf15)
-	ld hl, Func_7bf15
-	jp Bankswitch
-
-CeladonMartElevatorTextPointers: ; 4865c (12:465c)
-	dw CeladonMartElevatorText1
-
-CeladonMartElevatorText1: ; 4865e (12:465e)
-	db $08 ; asm
-	call CeladonMartElevatorScript_48631
-	ld hl, CeldaonMartElevatorWarpMaps ; $464a
-	ld a, $61
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/celadonmartelevator.asm"
 
 CeladonMartElevatorBlocks: ; 48684 (12:4684)
@@ -55784,46 +46464,8 @@
 
 INCLUDE "data/mapHeaders/celadonmansion1.asm"
 
-CeladonMansion1Script: ; 48694 (12:4694)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmansion1.asm"
 
-CeladonMansion1TextPointers: ; 48697 (12:4697)
-	dw CeladonMansion1Text1
-	dw CeladonMansion1Text2
-	dw CeladonMansion1Text3
-	dw CeladonMansion1Text4
-	dw CeladonMansion1Text5
-
-Func_486a1: ; 486a1 (12:46a1)
-	call PlayCry
-	jp TextScriptEnd
-
-CeladonMansion1Text1: ; 486a7 (12:46a7)
-	TX_FAR _CeladonMansion1Text1
-	db $08 ; asm
-	ld a, $4d
-	jp Func_486a1
-
-CeladonMansion1Text2: ; 486b1 (12:46b1)
-	TX_FAR _CeladonMansion1Text2
-	db "@"
-
-CeladonMansion1Text3: ; 486b6 (12:46b6)
-	TX_FAR _CeladonMansion1Text3
-	db $8
-	ld a, $4
-	jp Func_486a1
-
-CeladonMansion1Text4: ; 486c0 (12:46c0)
-	TX_FAR _CeladonMansion1Text4
-	db $8
-	ld a, $f
-	jp Func_486a1
-
-CeladonMansion1Text5: ; 486ca (12:46ca)
-	TX_FAR _CeladonMansion1Text5
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmansion1.asm"
 
 CeladonMansion1Blocks: ; 48716 (12:4716)
@@ -55831,17 +46473,8 @@
 
 INCLUDE "data/mapHeaders/celadonmansion2.asm"
 
-CeladonMansion2Script: ; 4873a (12:473a)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/celadonmansion2.asm"
 
-CeladonMansion2TextPointers: ; 4873e (12:473e)
-	dw CeladonMansion2Text1
-
-CeladonMansion2Text1: ; 48740 (12:4740)
-	TX_FAR _CeladonMansion2Text1
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmansion2.asm"
 
 CeladonMansion2Blocks: ; 4876c (12:476c)
@@ -55849,80 +46482,8 @@
 
 INCLUDE "data/mapHeaders/celadonmansion3.asm"
 
-CeladonMansion3Script: ; 48790 (12:4790)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmansion3.asm"
 
-CeladonMansion3TextPointers: ; 48793 (12:4793)
-	dw ProgrammerText
-	dw GraphicArtistText
-	dw WriterText
-	dw DirectorText
-	dw GameFreakPCText1
-	dw GameFreakPCText2
-	dw GameFreakPCText3
-	dw GameFreakSignText
-
-ProgrammerText: ; 487a3 (12:47a3)
-	TX_FAR _ProgrammerText
-	db "@"
-
-GraphicArtistText: ; 487a8 (12:47a8)
-	TX_FAR _GraphicArtistText
-	db "@"
-
-WriterText: ; 487ad (12:47ad)
-	TX_FAR _WriterText
-	db "@"
-
-DirectorText: ; 487b2 (12:47b2)
-	db $08 ; asm
-
-	; check pokédex
-	ld hl, wPokedexOwned
-	ld b, wPokedexOwnedEnd - wPokedexOwned
-	call CountSetBits
-	ld a, [$d11e]
-	cp 150
-	jr nc, .CompletedDex
-	ld hl, .GameDesigner
-	jr .done
-.CompletedDex
-	ld hl, .CompletedDexText
-.done
-	call PrintText
-	jp TextScriptEnd
-
-.GameDesigner ; 487d0 (12:47d0)
-	TX_FAR _GameDesignerText
-	db "@"
-
-.CompletedDexText
-	TX_FAR _CompletedDexText
-	db $6
-	db $8 ; asm
-	ld hl, DisplayDiploma
-	ld b, BANK(DisplayDiploma)
-	call Bankswitch
-	ld a, $1
-	ld [$cc3c], a
-	jp TextScriptEnd
-
-GameFreakPCText1: ; 487eb (12:47eb)
-	TX_FAR _CeladonMansion3Text5
-	db "@"
-
-GameFreakPCText2: ; 487f0 (12:47f0)
-	TX_FAR _CeladonMansion3Text6
-	db "@"
-
-GameFreakPCText3: ; 487f5 (12:47f5)
-	TX_FAR _CeladonMansion3Text7
-	db "@"
-
-GameFreakSignText: ; 487fa (12:47fa)
-	TX_FAR _CeladonMansion3Text8
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmansion3.asm"
 
 CeladonMansion3Blocks: ; 48847 (12:4847)
@@ -55930,16 +46491,8 @@
 
 INCLUDE "data/mapHeaders/celadonmansion4.asm"
 
-CeladonMansion4Script: ; 4886b (12:486b)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmansion4.asm"
 
-CeladonMansion4TextPointers: ; 4886e (12:486e)
-	dw CeladonMansion4Text1
-
-CeladonMansion4Text1: ; 48870 (12:4870)
-	TX_FAR _CeladonMansion4Text1
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmansion4.asm"
 
 CeladonMansion4Blocks: ; 48894 (12:4894)
@@ -55947,379 +46500,14 @@
 
 INCLUDE "data/mapHeaders/celadonpokecenter.asm"
 
-CeladonPokecenterScript: ; 488b8 (12:48b8)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonpokecenter.asm"
 
-CeladonPokecenterTextPointers: ; 488be (12:48be)
-	dw CeladonPokecenterText1
-	dw CeladonPokecenterText2
-	dw CeladonPokecenterText3
-	dw CeladonPokecenterText4
-
-CeladonPokecenterText4: ; 488c6 (12:48c6)
-	db $f6
-
-CeladonPokecenterText1: ; 488c7 (12:48c7)
-	db $ff
-
-CeladonPokecenterText2: ; 488c8 (12:48c8)
-	TX_FAR _CeladonPokecenterText2
-	db "@"
-
-CeladonPokecenterText3: ; 488cd (12:48cd)
-	TX_FAR _CeladonPokecenterText3
-	db "@"
-
 INCLUDE "data/mapObjects/celadonpokecenter.asm"
 
 INCLUDE "data/mapHeaders/celadongym.asm"
 
-CeladonGymScript: ; 4890a (12:490a)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, CeladonGymScript_48927
-	call EnableAutoTextBoxDrawing
-	ld hl, CeladonGymTrainerHeaders
-	ld de, CeladonGymScriptPointers
-	ld a, [W_CELADONGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_CELADONGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/celadongym.asm"
 
-CeladonGymScript_48927: ; 48927 (12:4927)
-	ld hl, Gym4CityName ; $4930
-	ld de, Gym4LeaderName ; $493d
-	jp LoadGymLeaderAndCityName
-
-Gym4CityName: ; 48930 (12:4930)
-	db "CELADON CITY@"
-
-Gym4LeaderName: ; 4893d (12:493d)
-	db "ERIKA@"
-
-Func_48943: ; 48943 (12:4943)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CELADONGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CeladonGymScriptPointers: ; 4894e (12:494e)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw CeladonGymScript3
-
-CeladonGymScript3: ; 48956 (12:4956)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_48943
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_48963: ; 48963 (12:4963)
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d77c
-	set 1, [hl]
-	ld bc, (TM_21 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $a
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d77c
-	set 0, [hl]
-	jr .asm_4898c
-.BagFull
-	ld a, $b
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_4898c
-	ld hl, W_OBTAINEDBADGES
-	set 3, [hl]
-	ld hl, $d72a
-	set 3, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d77c]
-	or %11111100
-	ld [$d77c], a
-	ld hl, $d77d
-	set 0, [hl]
-
-	jp Func_48943
-
-CeladonGymTextPointers: ; 489a6 (12:49a6)
-	dw CeladonGymText1
-	dw CeladonGymText2
-	dw CeladonGymText3
-	dw CeladonGymText4
-	dw CeladonGymText5
-	dw CeladonGymText6
-	dw CeladonGymText7
-	dw CeladonGymText8
-	dw CeladonGymText9
-	dw TM21Text
-	dw TM21NoRoomText
-
-CeladonGymTrainerHeaders: ; 489bc (12:49bc)
-CeladonGymTrainerHeader0: ; 489bc (12:49bc)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText2 ; 0x4a8b TextBeforeBattle
-	dw CeladonGymAfterBattleText2 ; 0x4a95 TextAfterBattle
-	dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
-	dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
-
-CeladonGymTrainerHeader2: ; 489c8 (12:49c8)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText3 ; 0x4aa4 TextBeforeBattle
-	dw CeladonGymAfterBattleText3 ; 0x4aae TextAfterBattle
-	dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
-	dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
-
-CeladonGymTrainerHeader3: ; 489d4 (12:49d4)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText4 ; 0x4abd TextBeforeBattle
-	dw CeladonGymAfterBattleText4 ; 0x4ac7 TextAfterBattle
-	dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
-	dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
-
-CeladonGymTrainerHeader4: ; 489e0 (12:49e0)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText5 ; 0x4ad6 TextBeforeBattle
-	dw CeladonGymAfterBattleText5 ; 0x4ae0 TextAfterBattle
-	dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
-	dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
-
-CeladonGymTrainerHeader5: ; 489ec (12:49ec)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText6 ; 0x4aef TextBeforeBattle
-	dw CeladonGymAfterBattleText6 ; 0x4af9 TextAfterBattle
-	dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
-	dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
-
-CeladonGymTrainerHeader6: ; 489f8 (12:49f8)
-	db $7 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText7 ; 0x4b08 TextBeforeBattle
-	dw CeladonGymAfterBattleText7 ; 0x4b12 TextAfterBattle
-	dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
-	dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
-
-CeladonGymTrainerHeader7: ; 48a04 (12:4a04)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d77c ; flag's byte
-	dw CeladonGymBattleText8 ; 0x4b21 TextBeforeBattle
-	dw CeladonGymAfterBattleText8 ; 0x4b2b TextAfterBattle
-	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
-	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
-
-	db $ff
-
-CeladonGymText1: ; 48a11 (12:4a11)
-	db $08 ; asm
-	ld a, [$d77c]
-	bit 1, a
-	jr z, .asm_16064 ; 0x48a17
-	bit 0, a
-	jr nz, .asm_3b22c ; 0x48a1b
-	call z, Func_48963
-	call DisableWaitingAfterTextDisplay
-	jr .asm_96252 ; 0x48a23
-.asm_3b22c ; 0x48a25
-	ld hl, UnnamedText_48a68
-	call PrintText
-	jr .asm_96252 ; 0x48a2b
-.asm_16064 ; 0x48a2d
-	ld hl, UnnamedText_48a5e
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_48a63
-	ld de, UnnamedText_48a63
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $4
-	ld [$d05c], a
-	ld a, $3
-	ld [W_CELADONGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_96252 ; 0x48a5b
-	jp TextScriptEnd
-
-UnnamedText_48a5e: ; 48a5e (12:4a5e)
-	TX_FAR _UnnamedText_48a5e
-	db "@"
-
-UnnamedText_48a63: ; 48a63 (12:4a63)
-	TX_FAR _UnnamedText_48a63
-	db "@"
-
-UnnamedText_48a68: ; 48a68 (12:4a68)
-	TX_FAR _UnnamedText_48a68
-	db "@"
-
-CeladonGymText9: ; 48a6d (12:4a6d)
-UnnamedText_48a6d: ; 48a6d (12:4a6d)
-	TX_FAR _UnnamedText_48a6d
-	db "@"
-
-TM21Text: ; 48a72 (12:4a72)
-	TX_FAR _ReceivedTM21Text
-	db $0B
-	TX_FAR _TM21ExplanationText
-	db "@"
-
-TM21NoRoomText: ; 48a7c (12:4a7c)
-	TX_FAR _TM21NoRoomText
-	db "@"
-
-CeladonGymText2: ; 48a81 (12:4a81)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText2: ; 48a8b (12:4a8b)
-	TX_FAR _CeladonGymBattleText2
-	db "@"
-
-CeladonGymEndBattleText2: ; 48a90 (12:4a90)
-	TX_FAR _CeladonGymEndBattleText2
-	db "@"
-
-CeladonGymAfterBattleText2: ; 48a95 (12:4a95)
-	TX_FAR _CeladonGymAfterBattleText2
-	db "@"
-
-CeladonGymText3: ; 48a9a (12:4a9a)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText3: ; 48aa4 (12:4aa4)
-	TX_FAR _CeladonGymBattleText3
-	db "@"
-
-CeladonGymEndBattleText3: ; 48aa9 (12:4aa9)
-	TX_FAR _CeladonGymEndBattleText3
-	db "@"
-
-CeladonGymAfterBattleText3: ; 48aae (12:4aae)
-	TX_FAR _CeladonGymAfterBattleText3
-	db "@"
-
-CeladonGymText4: ; 48ab3 (12:4ab3)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText4: ; 48abd (12:4abd)
-	TX_FAR _CeladonGymBattleText4
-	db "@"
-
-CeladonGymEndBattleText4: ; 48ac2 (12:4ac2)
-	TX_FAR _CeladonGymEndBattleText4
-	db "@"
-
-CeladonGymAfterBattleText4: ; 48ac7 (12:4ac7)
-	TX_FAR _CeladonGymAfterBattleText4
-	db "@"
-
-CeladonGymText5: ; 48acc (12:4acc)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText5: ; 48ad6 (12:4ad6)
-	TX_FAR _CeladonGymBattleText5
-	db "@"
-
-CeladonGymEndBattleText5: ; 48adb (12:4adb)
-	TX_FAR _CeladonGymEndBattleText5
-	db "@"
-
-CeladonGymAfterBattleText5: ; 48ae0 (12:4ae0)
-	TX_FAR _CeladonGymAfterBattleText5
-	db "@"
-
-CeladonGymText6: ; 48ae5 (12:4ae5)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText6: ; 48aef (12:4aef)
-	TX_FAR _CeladonGymBattleText6
-	db "@"
-
-CeladonGymEndBattleText6: ; 48af4 (12:4af4)
-	TX_FAR _CeladonGymEndBattleText6
-	db "@"
-
-CeladonGymAfterBattleText6: ; 48af9 (12:4af9)
-	TX_FAR _CeladonGymAfterBattleText6
-	db "@"
-
-CeladonGymText7: ; 48afe (12:4afe)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText7: ; 48b08 (12:4b08)
-	TX_FAR _CeladonGymBattleText7
-	db "@"
-
-CeladonGymEndBattleText7: ; 48b0d (12:4b0d)
-	TX_FAR _CeladonGymEndBattleText7
-	db "@"
-
-CeladonGymAfterBattleText7: ; 48b12 (12:4b12)
-	TX_FAR _CeladonGymAfterBattleText7
-	db "@"
-
-CeladonGymText8: ; 48b17 (12:4b17)
-	db $08 ; asm
-	ld hl, CeladonGymTrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeladonGymBattleText8: ; 48b21 (12:4b21)
-	TX_FAR _CeladonGymBattleText8
-	db "@"
-
-CeladonGymEndBattleText8: ; 48b26 (12:4b26)
-	TX_FAR _CeladonGymEndBattleText8
-	db "@"
-
-CeladonGymAfterBattleText8: ; 48b2b (12:4b2b)
-	TX_FAR _CeladonGymAfterBattleText8
-	db "@"
-
 INCLUDE "data/mapObjects/celadongym.asm"
 
 CeladonGymBlocks: ; 48b84 (12:4b84)
@@ -56327,543 +46515,8 @@
 
 INCLUDE "data/mapHeaders/celadongamecorner.asm"
 
-CeladonGameCornerScript: ; 48bbd (12:4bbd)
-	call CeladonGameCornerScript_48bcf
-	call Func_48bec
-	call EnableAutoTextBoxDrawing
-	ld hl, CeladonGameCornerScriptPointers
-	ld a, [W_CELADONGAMECORNERCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/celadongamecorner.asm"
 
-CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	ret z
-	call GenRandom
-	ld a, [$ffd3]
-	cp $7
-	jr nc, .asm_48be2
-	ld a, $8
-.asm_48be2
-	srl a
-	srl a
-	srl a
-	ld [$cd05], a
-	ret
-
-Func_48bec: ; 48bec (12:4bec)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d77e]
-	bit 1, a
-	ret nz
-	ld a, $2a
-	ld [$d09f], a
-	ld bc, $0208
-	ld a, $17
-	jp Predef
-
-CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CELADONGAMECORNERCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CeladonGameCornerScriptPointers: ; 48c12 (12:4c12)
-	dw CeladonGameCornerScript0
-	dw CeladonGameCornerScript1
-	dw CeladonGameCornerScript2
-
-CeladonGameCornerScript0: ; 48c18 (12:4c18)
-	ret
-
-CeladonGameCornerScript1: ; 48c19 (12:4c19)
-	ld a, [W_ISINBATTLE]
-	cp $ff
-	jp z, CeladonGameCornerScript_48c07
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $d
-	ld [H_SPRITEHEIGHT], a
-	call DisplayTextID
-	ld a, $b
-	ld [H_SPRITEHEIGHT], a
-	call SetSpriteMovementBytesToFF
-	ld de, MovementData_48c5a
-	ld a, [W_YCOORD]
-	cp $6
-	jr nz, .asm_48c43
-	ld de, MovementData_48c63
-	jr .asm_48c4d
-.asm_48c43
-	ld a, [W_XCOORD]
-	cp $8
-	jr nz, .asm_48c4d
-	ld de, MovementData_48c63
-.asm_48c4d
-	ld a, $b
-	ld [H_DOWNARROWBLINKCNT2], a
-	call MoveSprite
-	ld a, $2
-	ld [W_CELADONGAMECORNERCURSCRIPT], a
-	ret
-
-MovementData_48c5a: ; 48c5a (12:4c5a)
-	db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF
-
-MovementData_48c63: ; 48c63 (12:4c63)
-	db $C0,$C0,$C0,$C0,$C0,$FF
-
-CeladonGameCornerScript2: ; 48c69 (12:4c69)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $46
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d126
-	set 5, [hl]
-	set 6, [hl]
-	ld a, $0
-	ld [W_CELADONGAMECORNERCURSCRIPT], a
-	ret
-
-CeladonGameCornerTextPointers: ; 48c8a (12:4c8a)
-	dw CeladonGameCornerText1
-	dw CeladonGameCornerText2
-	dw CeladonGameCornerText3
-	dw CeladonGameCornerText4
-	dw CeladonGameCornerText5
-	dw CeladonGameCornerText6
-	dw CeladonGameCornerText7
-	dw CeladonGameCornerText8
-	dw CeladonGameCornerText9
-	dw CeladonGameCornerText10
-	dw CeladonGameCornerText11
-	dw CeladonGameCornerText12
-	dw CeladonGameCornerText13
-
-CeladonGameCornerText1: ; 48ca4 (12:4ca4)
-	TX_FAR _CeladonGameCornerText1
-	db "@"
-
-CeladonGameCornerText2: ; 48ca9 (12:4ca9)
-	db $08 ; asm
-	call Func_48f1e
-	ld hl, UnnamedText_48d22
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_c650b ; 0x48cba
-	ld b,COIN_CASE
-	call IsItemInBag
-	jr z, .asm_ed086 ; 0x48cc1
-	call Has9990Coins
-	jr nc, .asm_31338 ; 0x48cc6
-	xor a
-	ldh [$9f], a
-	ldh [$a1], a
-	ld a, $10
-	ldh [$a0], a
-	call HasEnoughMoney
-	jr nc, .asm_b6ef0 ; 0x48cd4
-	ld hl, UnnamedText_48d31 ; $4d31
-	jr .asm_e2afd ; 0x48cd9
-.asm_b6ef0 ; 0x48cdb
-	xor a
-	ldh [$9f], a
-	ldh [$a1], a
-	ld a, $10
-	ldh [$a0], a
-	ld hl, $ffa1
-	ld de, $d349
-	ld c, $3
-	ld a, $c
-	call Predef
-	xor a
-	ldh [$9f], a
-	ldh [$a0], a
-	ld a, $50
-	ldh [$a1], a
-	ld de, $d5a5
-	ld hl, $ffa1
-	ld c, $2
-	ld a, $b
-	call Predef
-	call Func_48f1e
-	ld hl, UnnamedText_48d27
-	jr .asm_e2afd ; 0x48d0d
-.asm_c650b ; 0x48d0f
-	ld hl, UnnamedText_48d2c
-	jr .asm_e2afd ; 0x48d12
-.asm_31338 ; 0x48d14
-	ld hl, UnnamedText_48d36
-	jr .asm_e2afd ; 0x48d17
-.asm_ed086 ; 0x48d19
-	ld hl, UnnamedText_48d3b
-.asm_e2afd ; 0x48d1c
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_48d22: ; 48d22 (12:4d22)
-	TX_FAR _UnnamedText_48d22
-	db "@"
-
-UnnamedText_48d27: ; 48d27 (12:4d27)
-	TX_FAR _UnnamedText_48d27
-	db "@"
-
-UnnamedText_48d2c: ; 48d2c (12:4d2c)
-	TX_FAR _UnnamedText_48d2c
-	db "@"
-
-UnnamedText_48d31: ; 48d31 (12:4d31)
-	TX_FAR _UnnamedText_48d31
-	db "@"
-
-UnnamedText_48d36: ; 48d36 (12:4d36)
-	TX_FAR _UnnamedText_48d36
-	db "@"
-
-UnnamedText_48d3b: ; 48d3b (12:4d3b)
-	TX_FAR _UnnamedText_48d3b
-	db "@"
-
-CeladonGameCornerText3: ; 48d40 (12:4d40)
-	TX_FAR _CeladonGameCornerText3
-	db "@"
-
-CeladonGameCornerText4: ; 48d45 (12:4d45)
-	TX_FAR _CeladonGameCornerText4
-	db "@"
-
-CeladonGameCornerText5: ; 48d4a (12:4d4a)
-	db $08 ; asm
-	ld a, [$d77e]
-	bit 2, a
-	jr nz, .asm_d0957 ; 0x48d50
-	ld hl, UnnamedText_48d9c
-	call PrintText
-	ld b, COIN_CASE
-	call IsItemInBag
-	jr z, .asm_5aef9 ; 0x48d5d
-	call Has9990Coins
-	jr nc, .asm_98546 ; 0x48d62
-	xor a
-	ldh [$9f], a
-	ldh [$a0], a
-	ld a, $10
-	ldh [$a1], a
-	ld de, $d5a5
-	ld hl, $ffa1
-	ld c, $2
-	ld a, $b
-	call Predef
-	ld hl, $d77e
-	set 2, [hl]
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, Received10CoinsText
-	jr .asm_c7d1a ; 0x48d87
-.asm_d0957 ; 0x48d89
-	ld hl, UnnamedText_48dac
-	jr .asm_c7d1a ; 0x48d8c
-.asm_98546 ; 0x48d8e
-	ld hl, UnnamedText_48da7
-	jr .asm_c7d1a ; 0x48d91
-.asm_5aef9 ; 0x48d93
-	ld hl, UnnamedText_48f19
-.asm_c7d1a ; 0x48d96
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_48d9c: ; 48d9c (12:4d9c)
-	TX_FAR _UnnamedText_48d9c
-	db "@"
-
-Received10CoinsText: ; 48da1 (12:4da1)
-	TX_FAR _Received10CoinsText
-	db $0B, "@"
-
-UnnamedText_48da7: ; 48da7 (12:4da7)
-	TX_FAR _UnnamedText_48da7
-	db "@"
-
-UnnamedText_48dac: ; 48dac (12:4dac)
-	TX_FAR _UnnamedText_48dac
-	db "@"
-
-CeladonGameCornerText6: ; 48db1 (12:4db1)
-	TX_FAR _CeladonGameCornerText6
-	db "@"
-
-CeladonGameCornerText7: ; 48db6 (12:4db6)
-	db $08 ; asm
-	ld a, [$d77c]
-	bit 1, a
-	ld hl, UnnamedText_48dca ; $4dca
-	jr z, .asm_be3fd ; 0x48dbf
-	ld hl, UnnamedText_48dcf ; $4dcf
-.asm_be3fd ; 0x48dc4
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_48dca: ; 48dca (12:4dca)
-	TX_FAR _UnnamedText_48dca
-	db "@"
-
-UnnamedText_48dcf: ; 48dcf (12:4dcf)
-	TX_FAR _UnnamedText_48dcf
-	db "@"
-
-CeladonGameCornerText8: ; 48dd4 (12:4dd4)
-	TX_FAR _CeladonGameCornerText8
-	db "@"
-
-CeladonGameCornerText9: ; 48dd9 (12:4dd9)
-	db $08 ; asm
-	ld a, [$d77e]
-	bit 4, a
-	jr nz, .asm_ed8bc ; 0x48ddf
-	ld hl, UnnamedText_48e26
-	call PrintText
-	ld b, COIN_CASE
-	call IsItemInBag
-	jr z, .asm_df794 ; 0x48dec
-	call Has9990Coins
-	jr nc, .asm_f17c3 ; 0x48df1
-	xor a
-	ldh [$9f], a
-	ldh [$a0], a
-	ld a, $20
-	ldh [$a1], a
-	ld de, $d5a5
-	ld hl, $ffa1
-	ld c, $2
-	ld a, $b
-	call Predef
-	ld hl, $d77e
-	set 4, [hl]
-	ld hl, Received20CoinsText
-	jr .asm_0ddc2 ; 0x48e11
-.asm_ed8bc ; 0x48e13
-	ld hl, UnnamedText_48e36
-	jr .asm_0ddc2 ; 0x48e16
-.asm_f17c3 ; 0x48e18
-	ld hl, UnnamedText_48e31
-	jr .asm_0ddc2 ; 0x48e1b
-.asm_df794 ; 0x48e1d
-	ld hl, UnnamedText_48f19
-.asm_0ddc2 ; 0x48e20
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_48e26: ; 48e26 (12:4e26)
-	TX_FAR _UnnamedText_48e26
-	db "@"
-
-Received20CoinsText: ; 48e2b (12:4e2b)
-	TX_FAR _Received20CoinsText
-	db $0B, "@"
-
-UnnamedText_48e31: ; 48e31 (12:4e31)
-	TX_FAR _UnnamedText_48e31
-	db "@"
-
-UnnamedText_48e36: ; 48e36 (12:4e36)
-	TX_FAR _UnnamedText_48e36
-	db "@"
-
-CeladonGameCornerText10: ; 48e3b (12:4e3b)
-	db $08 ; asm
-	ld a, [$d77e]
-	bit 3, a
-	jr nz, .asm_ff080 ; 0x48e41
-	ld hl, UnnamedText_48e88 ; $4e88
-	call PrintText
-	ld b,COIN_CASE
-	call IsItemInBag
-	jr z, .asm_4fb0c ; 0x48e4e
-	call Has9990Coins
-	jr z, .asm_9505a ; 0x48e53
-	xor a
-	ldh [$9f], a
-	ldh [$a0], a
-	ld a, $20
-	ldh [$a1], a
-	ld de, $d5a5
-	ld hl, $ffa1
-	ld c, $2
-	ld a, $b
-	call Predef
-	ld hl, $d77e
-	set 3, [hl]
-	ld hl, UnnamedText_48e8d
-	jr .asm_78d65 ; 0x48e73
-.asm_ff080 ; 0x48e75
-	ld hl, UnnamedText_48e98
-	jr .asm_78d65 ; 0x48e78
-.asm_9505a ; 0x48e7a
-	ld hl, UnnamedText_48e93
-	jr .asm_78d65 ; 0x48e7d
-.asm_4fb0c ; 0x48e7f
-	ld hl, UnnamedText_48f19
-.asm_78d65 ; 0x48e82
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_48e88: ; 48e88 (12:4e88)
-	TX_FAR _UnnamedText_48e88
-	db "@"
-
-UnnamedText_48e8d: ; 48e8d (12:4e8d)
-	TX_FAR _UnnamedText_48e8d ; 0x9dceb
-	db $0B, "@"
-
-UnnamedText_48e93: ; 48e93 (12:4e93)
-	TX_FAR _UnnamedText_48e93
-	db "@"
-
-UnnamedText_48e98: ; 48e98 (12:4e98)
-	TX_FAR _UnnamedText_48e98
-	db "@"
-
-CeladonGameCornerText11: ; 48e9d (12:4e9d)
-	db $08 ; asm
-	ld hl, UnnamedText_48ece
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_48ed3
-	ld de, UnnamedText_48ed3
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	xor a
-	ldh [$b4], a
-	ldh [$b3], a
-	ldh [$b2], a
-	ld a, $1
-	ld [W_CELADONGAMECORNERCURSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_48ece: ; 48ece (12:4ece)
-	TX_FAR _UnnamedText_48ece
-	db "@"
-
-UnnamedText_48ed3: ; 48ed3 (12:4ed3)
-	TX_FAR _UnnamedText_48ed3
-	db "@"
-
-CeladonGameCornerText13: ; 48ed8 (12:4ed8)
-	TX_FAR _UnnamedText_48ed8
-	db "@"
-
-CeladonGameCornerText12: ; 48edd (12:4edd)
-	db $08 ; asm
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, UnnamedText_48f09
-	call PrintText
-	call WaitForSoundToFinish
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	call WaitForSoundToFinish
-	ld hl, $d77e
-	set 1, [hl]
-	ld a, $43
-	ld [$d09f], a
-	ld bc, $0208
-	ld a, $17
-	call Predef
-	jp TextScriptEnd
-
-UnnamedText_48f09: ; 48f09 (12:4f09)
-	TX_FAR _UnnamedText_48f09 ; 0x9ddb0
-	db $8
-	ld a, (SFX_02_49 - SFX_Headers_02) / 3
-	call PlaySound
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-UnnamedText_48f19: ; 48f19 (12:4f19)
-	TX_FAR _UnnamedText_48f19
-	db "@"
-
-Func_48f1e: ; 48f1e (12:4f1e)
-	ld hl, $d730
-	set 6, [hl]
-	FuncCoord 11, 0 ; $c3ab
-	ld hl, Coord
-	ld b, $5
-	ld c, $7
-	call TextBoxBorder
-	call UpdateSprites
-	FuncCoord 12, 1 ; $c3c0
-	ld hl, Coord
-	ld b, $4
-	ld c, $7
-	call ClearScreenArea
-	FuncCoord 12, 2 ; $c3d4
-	ld hl, Coord
-	ld de, GameCornerMoneyText
-	call PlaceString
-	FuncCoord 12, 3 ; $c3e8
-	ld hl, Coord
-	ld de, GameCornerBlankText1
-	call PlaceString
-	FuncCoord 12, 3 ; $c3e8
-	ld hl, Coord
-	ld de, $d347
-	ld c, $a3
-	call PrintBCDNumber
-	FuncCoord 12, 4 ; $c3fc
-	ld hl, Coord
-	ld de, GameCornerCoinText
-	call PlaceString
-	FuncCoord 12, 5 ; $c410
-	ld hl, Coord
-	ld de, GameCornerBlankText2
-	call PlaceString
-	FuncCoord 15, 5 ; $c413
-	ld hl, Coord
-	ld de, $d5a4
-	ld c, $82
-	call PrintBCDNumber
-	ld hl, $d730
-	res 6, [hl]
-	ret
-
-GameCornerMoneyText: ; 48f7a (12:4f7a)
-	db "MONEY@"
-
-GameCornerCoinText: ; 48f80 (12:4f80)
-	db "COIN@"
-
-GameCornerBlankText1: ; 48f85 (12:4f85)
-	db "       @"
-
-GameCornerBlankText2: ; 48f8d (12:4f8d)
-	db "       @"
-
-Has9990Coins: ; 48f95 (12:4f95)
-	ld a, $99
-	ld [$ffa0], a
-	ld a, $90
-	ld [$ffa1], a
-	jp HasEnoughCoins
-
 INCLUDE "data/mapObjects/celadongamecorner.asm"
 
 CeladonGameCornerBlocks: ; 49003 (12:5003)
@@ -56871,28 +46524,8 @@
 
 INCLUDE "data/mapHeaders/celadonmart5.asm"
 
-CeladonMart5Script: ; 49069 (12:5069)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmart5.asm"
 
-CeladonMart5TextPointers: ; 4906c (12:506c)
-	dw CeladonMart5Text1
-	dw CeladonMart5Text2
-	dw CeladonMart5Text3
-	dw CeladonMart5Text4
-	dw CeladonMart5Text5
-
-CeladonMart5Text1: ; 49076 (12:5076)
-	TX_FAR _CeladonMart5Text1
-	db "@"
-
-CeladonMart5Text2: ; 4907b (12:507b)
-	TX_FAR _CeladonMart5Text2
-	db "@"
-
-CeladonMart5Text5: ; 49080 (12:5080)
-	TX_FAR _CeladonMart5Text5
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmart5.asm"
 
 CeladonMart5Blocks: ; 490bc (12:50bc)
@@ -56900,27 +46533,8 @@
 
 INCLUDE "data/mapHeaders/celadonprizeroom.asm"
 
-CeladonPrizeRoomScript: ; 490f0 (12:50f0)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonprizeroom.asm"
 
-CeladonPrizeRoomTextPointers: ; 490f3 (12:50f3)
-	dw CeladonPrizeRoomText1
-	dw CeladonPrizeRoomText2
-	dw CeladonPrizeRoomText3
-	dw CeladonPrizeRoomText3
-	dw CeladonPrizeRoomText3
-
-CeladonPrizeRoomText1: ; 490fd (12:50fd)
-	TX_FAR _CeladonPrizeRoomText1
-	db "@"
-
-CeladonPrizeRoomText2: ; 49102 (12:5102)
-	TX_FAR _CeladonPrizeRoomText2
-	db "@"
-
-CeladonPrizeRoomText3: ; 49107 (12:5107)
-	db $f7
-
 INCLUDE "data/mapObjects/celadonprizeroom.asm"
 
 CeladonPrizeRoomBlocks: ; 49131 (12:5131)
@@ -56928,74 +46542,8 @@
 
 INCLUDE "data/mapHeaders/celadondiner.asm"
 
-CeladonDinerScript: ; 49151 (12:5151)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/celadondiner.asm"
 
-CeladonDinerTextPointers: ; 49155 (12:5155)
-	dw CeladonDinerText1
-	dw CeladonDinerText2
-	dw CeladonDinerText3
-	dw CeladonDinerText4
-	dw CeladonDinerText5
-
-CeladonDinerText1: ; 4915f (12:515f)
-	TX_FAR _CeladonDinerText1
-	db "@"
-
-CeladonDinerText2: ; 49164 (12:5164)
-	TX_FAR _CeladonDinerText2
-	db "@"
-
-CeladonDinerText3: ; 49169 (12:5169)
-	TX_FAR _CeladonDinerText3
-	db "@"
-
-CeladonDinerText4: ; 4916e (12:516e)
-	TX_FAR _CeladonDinerText4
-	db "@"
-
-CeladonDinerText5: ; 49173 (12:5173)
-	db $08 ; asm
-	ld a, [$d783]
-	bit 0, a
-	jr nz, .asm_eb14d ; 0x49179
-	ld hl, UnnamedText_491a7
-	call PrintText
-	ld bc, (COIN_CASE << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d783
-	set 0, [hl]
-	ld hl, ReceivedCoinCaseText
-	call PrintText
-	jr .asm_68b61 ; 0x49194
-.BagFull
-	ld hl, CoinCaseNoRoomText
-	call PrintText
-	jr .asm_68b61 ; 0x4919c
-.asm_eb14d ; 0x4919e
-	ld hl, UnnamedText_491b7
-	call PrintText
-.asm_68b61 ; 0x491a4
-	jp TextScriptEnd
-
-UnnamedText_491a7: ; 491a7 (12:51a7)
-	TX_FAR _UnnamedText_491a7
-	db "@"
-
-ReceivedCoinCaseText: ; 491ac (12:51ac)
-	TX_FAR _ReceivedCoinCaseText
-	db $11, "@"
-
-CoinCaseNoRoomText: ; 491b2 (12:51b2)
-	TX_FAR _CoinCaseNoRoomText
-	db "@"
-
-UnnamedText_491b7: ; 491b7 (12:51b7)
-	TX_FAR _UnnamedText_491b7
-	db "@"
-
 INCLUDE "data/mapObjects/celadondiner.asm"
 
 CeladonDinerBlocks: ; 491ee (12:51ee)
@@ -57003,27 +46551,8 @@
 
 INCLUDE "data/mapHeaders/celadonhouse.asm"
 
-CeladonHouseScript: ; 4920e (12:520e)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/celadonhouse.asm"
 
-CeladonHouseTextPointers: ; 49212 (12:5212)
-	dw CeladonHouseText1
-	dw CeladonHouseText2
-	dw CeladonHouseText3
-
-CeladonHouseText1: ; 49218 (12:5218)
-	TX_FAR _CeladonHouseText1
-	db "@"
-
-CeladonHouseText2: ; 4921d (12:521d)
-	TX_FAR _CeladonHouseText2
-	db "@"
-
-CeladonHouseText3: ; 49222 (12:5222)
-	TX_FAR _CeladonHouseText3
-	db "@"
-
 INCLUDE "data/mapObjects/celadonhouse.asm"
 
 CeladonHouseBlocks: ; 4924d (12:524d)
@@ -57031,26 +46560,8 @@
 
 INCLUDE "data/mapHeaders/celadonhotel.asm"
 
-CeladonHotelScript: ; 49269 (12:5269)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonhotel.asm"
 
-CeladonHotelTextPointers: ; 4926c (12:526c)
-	dw CeladonHotelText1
-	dw CeladonHotelText2
-	dw CeladonHotelText3
-
-CeladonHotelText1: ; 49272 (12:5272)
-	TX_FAR _CeladonHotelText1
-	db "@"
-
-CeladonHotelText2: ; 49277 (12:5277)
-	TX_FAR _CeladonHotelText2
-	db "@"
-
-CeladonHotelText3: ; 4927c (12:527c)
-	TX_FAR _CeladonHotelText3
-	db "@"
-
 INCLUDE "data/mapObjects/celadonhotel.asm"
 
 CeladonHotelBlocks: ; 492a7 (12:52a7)
@@ -57058,246 +46569,32 @@
 
 INCLUDE "data/mapHeaders/mtmoonpokecenter.asm"
 
-MtMoonPokecenterScript: ; 492cf (12:52cf)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/mtmoonpokecenter.asm"
 
-MtMoonPokecenterTextPointers: ; 492d5 (12:52d5)
-	dw MtMoonPokecenterText1
-	dw MtMoonPokecenterText2
-	dw MtMoonPokecenterText3
-	dw MtMoonPokecenterText4
-	dw MtMoonPokecenterText5
-	dw MtMoonPokecenterText6
-
-MtMoonPokecenterText1: ; 492e1 (12:52e1)
-	db $ff
-
-MtMoonPokecenterText2: ; 492e2 (12:52e2)
-	TX_FAR _MtMoonPokecenterText1
-	db "@"
-
-MtMoonPokecenterText3: ; 492e7 (12:52e7)
-	TX_FAR _MtMoonPokecenterText3
-	db "@"
-
-MtMoonPokecenterText4: ; 492ec (12:52ec)
-	db $08 ; asm
-	ld a, [$d7c6]
-	add a
-	jp c, .asm_49353
-	ld hl, UnnamedText_4935c
-	call PrintText
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jp nz, .asm_4934e
-	ldh [$9f], a
-	ldh [$a1], a
-	ld a, $5
-	ldh [$a0], a
-	call HasEnoughMoney
-	jr nc, .asm_faa09 ; 0x49317
-	ld hl, UnnamedText_49366
-	jr .asm_49356 ; 0x4931c
-.asm_faa09 ; 0x4931e
-	ld bc,(MAGIKARP << 8) | 5
-	call GivePokemon
-	jr nc, .asm_49359 ; 0x49324
-	xor a
-	ld [wWhichTrade], a
-	ld [$cd3f], a
-	ld a, $5
-	ld [$cd3e], a
-	ld hl, $cd3f
-	ld de, $d349
-	ld c, $3
-	ld a, $c
-	call Predef
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	ld hl, $d7c6
-	set 7, [hl]
-	jr .asm_49359 ; 0x4934c
-.asm_4934e ; 0x4934e
-	ld hl, UnnamedText_49361
-	jr .asm_49356 ; 0x49351
-.asm_49353 ; 0x49353
-	ld hl, UnnamedText_4936b
-.asm_49356 ; 0x49356
-	call PrintText
-.asm_49359 ; 0x49359
-	jp TextScriptEnd
-
-UnnamedText_4935c: ; 4935c (12:535c)
-	TX_FAR _UnnamedText_4935c
-	db "@"
-
-UnnamedText_49361: ; 49361 (12:5361)
-	TX_FAR _UnnamedText_49361
-	db "@"
-
-UnnamedText_49366: ; 49366 (12:5366)
-	TX_FAR _UnnamedText_49366
-	db "@"
-
-UnnamedText_4936b: ; 4936b (12:536b)
-	TX_FAR _UnnamedText_4936b
-	db "@"
-
-MtMoonPokecenterText5: ; 49370 (12:5370)
-	TX_FAR _MtMoonPokecenterText5
-	db "@"
-
-MtMoonPokecenterText6: ; 49375 (12:5375)
-	db $f6
-
 INCLUDE "data/mapObjects/mtmoonpokecenter.asm"
 
 INCLUDE "data/mapHeaders/rocktunnelpokecenter.asm"
 
-RockTunnelPokecenterScript: ; 493ba (12:53ba)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/rocktunnelpokecenter.asm"
 
-RockTunnelPokecenterTextPointers: ; 493c0 (12:53c0)
-	dw RockTunnelPokecenterText1
-	dw RockTunnelPokecenterText2
-	dw RockTunnelPokecenterText3
-	dw RockTunnelPokecenterText4
-
-RockTunnelPokecenterText1: ; 493c8 (12:53c8)
-	db $ff
-
-RockTunnelPokecenterText2: ; 493c9 (12:53c9)
-	TX_FAR _RockTunnelPokecenterText1
-	db "@"
-
-RockTunnelPokecenterText3: ; 493ce (12:53ce)
-	TX_FAR _RockTunnelPokecenterText3
-	db "@"
-
-RockTunnelPokecenterText4: ; 493d3 (12:53d3)
-	db $f6
-
 INCLUDE "data/mapObjects/rocktunnelpokecenter.asm"
 
 INCLUDE "data/mapHeaders/route11gate.asm"
 
-Route11GateScript: ; 4940c (12:540c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route11gate.asm"
 
-Route11GateTextPointers: ; 4940f (12:540f)
-	dw Route11GateText1
-
-Route11GateText1: ; 49411 (12:5411)
-	TX_FAR _Route11GateText1
-	db "@"
-
 INCLUDE "data/mapObjects/route11gate.asm"
 
 INCLUDE "data/mapHeaders/route11gateupstairs.asm"
 
-Route11GateUpstairsScript: ; 49454 (12:5454)
-	jp DisableAutoTextBoxDrawing
+INCLUDE "scripts/route11gateupstairs.asm"
 
-Route11GateUpstairsTextPointers: ; 49457 (12:5457)
-	dw Route11GateUpstairsText1
-	dw Route11GateUpstairsText2
-	dw Route11GateUpstairsText3
-	dw Route11GateUpstairsText4
-
-Route11GateUpstairsText1: ; 4945f (12:545f)
-	db $08 ; asm
-	xor a
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-asm_49469: ; 49469 (12:5469)
-	jp TextScriptEnd
-
-Route11GateUpstairsText2: ; 4946c (12:546c)
-	db $8
-	ld a, [$d7d6]
-	add a
-	jr c, .asm_4949b ; 0x49471 $28
-	ld a, $1e
-	ld [$ffdb], a
-	ld a, $47
-	ld [$ffdc], a
-	ld [$d11e], a
-	call GetItemName
-	ld h, d
-	ld l, e
-	ld de, $cc5b
-	ld bc, $000d
-	call CopyData
-	ld a, $62
-	call Predef
-	ld a, [$ffdb]
-	dec a
-	jr nz, .asm_494a1 ; 0x49494 $b
-	ld hl, $d7d6
-	set 7, [hl]
-.asm_4949b
-	ld hl, UnnamedText_494a3
-	call PrintText
-.asm_494a1
-	jr asm_49469 ; 0x494a1 $c6
-
-UnnamedText_494a3: ; 494a3 (12:54a3)
-	TX_FAR _UnnamedText_494a3
-	db "@"
-
-Route11GateUpstairsText3: ; 494a8 (12:54a8)
-	db $08 ; asm
-	ld a, [$c109]
-	cp $4
-	jp nz, Func_55c9
-	ld a, [$d7d8]
-	bit 7, a ; fought snorlax?
-	ld hl, BinocularsSnorlaxText
-	jr z, .print
-	ld hl, BinocularsNoSnorlaxText
-.print
-	call PrintText
-	jp TextScriptEnd
-
-BinocularsSnorlaxText:
-	TX_FAR _BinocularsSnorlaxText
-	db "@"
-
-BinocularsNoSnorlaxText:
-	TX_FAR _BinocularsNoSnorlaxText
-	db "@"
-
-Route11GateUpstairsText4: ; 494ce (12:54ce)
-	db $8
-	ld hl, UnnamedText_494d5 ; $54d5
-	jp Func_55c9
-
-UnnamedText_494d5: ; 494d5 (12:54d5)
-	TX_FAR _UnnamedText_494d5
-	db "@"
-
 INCLUDE "data/mapObjects/route11gateupstairs.asm"
 
 INCLUDE "data/mapHeaders/route12gate.asm"
 
-Route12GateScript: ; 49504 (12:5504)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route12gate.asm"
 
-Route12GateTextPointers: ; 49507 (12:5507)
-	dw Route12GateText1
-
-Route12GateText1: ; 49509 (12:5509)
-	TX_FAR _Route12GateText1
-	db "@"
-
 INCLUDE "data/mapObjects/route12gate.asm"
 
 Route12GateBlocks: ; 49540 (12:5540)
@@ -57305,278 +46602,26 @@
 
 INCLUDE "data/mapHeaders/route12gateupstairs.asm"
 
-Route12GateUpstairsScript: ; 49560 (12:5560)
-	jp DisableAutoTextBoxDrawing
+INCLUDE "scripts/route12gateupstairs.asm"
 
-Route12GateUpstairsTextPointers: ; 49563 (12:5563)
-	dw Route12GateUpstairsText1
-	dw Route12GateUpstairsText2
-	dw Route12GateUpstairsText3
-
-Route12GateUpstairsText1: ; 49569 (12:5569)
-	db $08 ; asm
-	ld a, [$d7d7]
-	rrca
-	jr c, .asm_0ad3c ; 0x4956e
-	ld hl, TM39PreReceiveText
-	call PrintText
-	ld bc, (TM_39 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM39Text
-	call PrintText
-	ld hl, $d7d7
-	set 0, [hl]
-	jr .asm_4ba56 ; 0x49589
-.BagFull
-	ld hl, TM39NoRoomText
-	call PrintText
-	jr .asm_4ba56 ; 0x49591
-.asm_0ad3c ; 0x49593
-	ld hl, TM39ExplanationText
-	call PrintText
-.asm_4ba56 ; 0x49599
-	jp TextScriptEnd
-
-TM39PreReceiveText: ; 4959c (12:559c)
-	TX_FAR _TM39PreReceiveText
-	db "@"
-
-ReceivedTM39Text: ; 495a1 (12:55a1)
-	TX_FAR _ReceivedTM39Text
-	db $0B, "@"
-
-TM39ExplanationText: ; 495a7 (12:55a7)
-	TX_FAR _TM39ExplanationText
-	db "@"
-
-TM39NoRoomText: ; 495ac (12:55ac)
-	TX_FAR _TM39NoRoomText
-	db "@"
-
-Route12GateUpstairsText2: ; 495b1 (12:55b1)
-	db $08 ; asm
-	ld hl, UnnamedText_495b8
-	jp Func_55c9
-
-UnnamedText_495b8: ; 495b8 (12:55b8)
-	TX_FAR _UnnamedText_495b8
-	db "@"
-
-Route12GateUpstairsText3: ; 495bd (12:55bd)
-	db $8
-	ld hl, UnnamedText_495c4
-	jp Func_55c9
-
-UnnamedText_495c4: ; 495c4 (12:55c4)
-	TX_FAR _UnnamedText_495c4
-	db "@"
-
-Func_55c9: ; 495c9 (12:55c9)
-	ld a, [$c109]
-	cp $4
-	jr z, .asm_495d4 ; 0x495ce $4
-	ld a, $1
-	jr .asm_495d8 ; 0x495d2 $4
-.asm_495d4
-	call PrintText
-	xor a
-.asm_495d8
-	ld [$cc3c], a
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/route12gateupstairs.asm"
 
 INCLUDE "data/mapHeaders/route15gate.asm"
 
-Route15GateScript: ; 49602 (12:5602)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route15gate.asm"
 
-Route15GateTextPointers: ; 49605 (12:5605)
-	dw Route15GateText1
-
-Route15GateText1: ; 49607 (12:5607)
-	TX_FAR _Route15GateText1
-	db "@"
-
 INCLUDE "data/mapObjects/route15gate.asm"
 
 INCLUDE "data/mapHeaders/route15gateupstairs.asm"
 
-Route15GateUpstairsScript: ; 4964a (12:564a)
-	jp DisableAutoTextBoxDrawing
+INCLUDE "scripts/route15gateupstairs.asm"
 
-Route15GateUpstairsTextPointers: ; 4964d (12:564d)
-	dw Route15GateUpstairsText1
-	dw Route15GateUpstairsText2
-
-Route15GateUpstairsText1: ; 49651 (12:5651)
-	db $8
-	ld a, [$d7dd]
-	bit 0, a
-	jr nz, .asm_49683 ; 0x49657 $2a
-	ld a, $32
-	ld [$ffdb], a
-	ld a, $4b
-	ld [$ffdc], a
-	ld [$d11e], a
-	call GetItemName
-	ld hl, $cd6d
-	ld de, $cc5b
-	ld bc, $000d
-	call CopyData
-	ld a, $62
-	call Predef
-	ld a, [$ffdb]
-	cp $1
-	jr nz, .asm_49689 ; 0x4967c $b
-	ld hl, $d7dd
-	set 0, [hl]
-.asm_49683
-	ld hl, UnnamedText_4968c
-	call PrintText
-.asm_49689
-	jp TextScriptEnd
-
-UnnamedText_4968c: ; 4968c (12:568c)
-	TX_FAR _UnnamedText_4968c
-	db "@"
-
-Route15GateUpstairsText2: ; 49691 (12:5691)
-	db $8
-	ld hl, UnnamedText_49698
-	jp Func_55c9
-
-UnnamedText_49698: ; 49698 (12:5698)
-	TX_FAR _UnnamedText_49698
-	db "@"
-
 INCLUDE "data/mapObjects/route15gateupstairs.asm"
 
 INCLUDE "data/mapHeaders/route16gate.asm"
 
-Route16GateScript: ; 496be (12:56be)
-	ld hl, $d732
-	res 5, [hl]
-	call EnableAutoTextBoxDrawing
-	ld a, [W_ROUTE16GATECURSCRIPT]
-	ld hl, Route16GateScriptPointers
-	jp CallFunctionInTable
+INCLUDE "scripts/route16gate.asm"
 
-Route16GateScriptPointers: ; 496cf (12:56cf)
-	dw Route16GateScript0
-	dw Route16GateScript1
-	dw Route16GateScript2
-	dw Route16GateScript3
-
-Route16GateScript0: ; 496d7 (12:56d7)
-	call Func_49755
-	ret nz
-	ld hl, CoordsData_49714
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, [$cd3d]
-	cp $1
-	jr z, .asm_4970e ; 0x496f1 $1b
-	ld a, [$cd3d]
-	dec a
-	ld [$cd38], a
-	ld b, $0
-	ld c, a
-	ld a, $40
-	ld hl, $ccd3
-	call FillMemory
-	call Func_3486
-	ld a, $1
-	ld [W_ROUTE16GATECURSCRIPT], a
-	ret
-.asm_4970e
-	ld a, $2
-	ld [W_ROUTE16GATECURSCRIPT], a
-	ret
-
-CoordsData_49714: ; 49714 (12:5714)
-	db $07,$04
-	db $08,$04
-	db $09,$04
-	db $0A,$04
-	db $FF
-
-Route16GateScript1: ; 4971d (12:571d)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Route16GateScript2: ; 49727 (12:5727)
-	ld a, $1
-	ld [H_SPRITEHEIGHT], a
-	call DisplayTextID
-	ld a, $1
-	ld [$cd38], a
-	ld a, $10
-	ld [$ccd3], a
-	call Func_3486
-	ld a, $3
-	ld [W_ROUTE16GATECURSCRIPT], a
-	ret
-
-Route16GateScript3: ; 49741 (12:5741)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d730
-	res 7, [hl]
-	ld a, $0
-	ld [W_ROUTE16GATECURSCRIPT], a
-	ret
-
-Func_49755: ; 49755 (12:5755)
-	ld b, BICYCLE
-	jp IsItemInBag
-
-Route16GateTextPointers: ; 4975a (12:575a)
-	dw Route16GateText1
-	dw Route16GateText2
-	dw Route16GateText3
-
-Route16GateText1: ; 49760 (12:5760)
-	db $08 ; asm
-	call Func_49755
-	jr z, .asm_0bdf3 ; 0x49764
-	ld hl, UnnamedText_4977c
-	call PrintText
-	jr .asm_56c9d ; 0x4976c
-.asm_0bdf3 ; 0x4976e
-	ld hl, UnnamedText_49777
-	call PrintText
-.asm_56c9d ; 0x49774
-	jp TextScriptEnd
-
-UnnamedText_49777: ; 49777 (12:5777)
-	TX_FAR _UnnamedText_49777
-	db "@"
-
-UnnamedText_4977c: ; 4977c (12:577c)
-	TX_FAR _UnnamedText_4977c
-	db "@"
-
-Route16GateText3: ; 49781 (12:5781)
-	TX_FAR _UnnamedText_49781
-	db "@"
-
-Route16GateText2: ; 49786 (12:5786)
-	TX_FAR _Route16GateText2
-	db "@"
-
 INCLUDE "data/mapObjects/route16gate.asm"
 
 Route16GateBlocks: ; 497e3 (12:57e3)
@@ -57584,438 +46629,26 @@
 
 INCLUDE "data/mapHeaders/route16gateupstairs.asm"
 
-Route16GateUpstairsScript: ; 4980b (12:580b)
-	jp DisableAutoTextBoxDrawing
+INCLUDE "scripts/route16gateupstairs.asm"
 
-Route16GateUpstairsTextPointers: ; 4980e (12:580e)
-	dw Route16GateUpstairsText1
-	dw Route16GateUpstairsText2
-	dw Route16GateUpstairsText3
-	dw Route16GateUpstairsText4
-
-Route16GateUpstairsText1: ; 49816 (12:5816)
-	db $08 ; asm
-	ld hl, UnnamedText_49820
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_49820: ; 49820 (12:5820)
-	TX_FAR _UnnamedText_49820
-	db "@"
-
-Route16GateUpstairsText2: ; 49825 (12:5825)
-	db $08 ; asm
-	ld hl, UnnamedText_4982f
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_4982f: ; 4982f (12:582f)
-	TX_FAR _UnnamedText_4982f
-	db "@"
-
-Route16GateUpstairsText3: ; 49834 (12:5834)
-	db $8
-	ld hl, UnnamedText_4983b
-	jp Func_55c9
-
-UnnamedText_4983b: ; 4983b (12:583b)
-	TX_FAR _UnnamedText_4983b
-	db "@"
-
-Route16GateUpstairsText4: ; 49840 (12:5840)
-	db $8
-	ld hl, UnnamedText_49847 ; $5847
-	jp Func_55c9
-
-UnnamedText_49847: ; 49847 (12:5847)
-	TX_FAR _UnnamedText_49847
-	db "@"
-
 INCLUDE "data/mapObjects/route16gateupstairs.asm"
 
 INCLUDE "data/mapHeaders/route18gate.asm"
 
-Route18GateScript: ; 49876 (12:5876)
-	ld hl, $d732
-	res 5, [hl]
-	call EnableAutoTextBoxDrawing
-	ld a, [W_ROUTE18GATECURSCRIPT]
-	ld hl, Route18GateScriptPointers
-	jp CallFunctionInTable
+INCLUDE "scripts/route18gate.asm"
 
-Route18GateScriptPointers: ; 49887 (12:5887)
-	dw Route18GateScript0
-	dw Route18GateScript1
-	dw Route18GateScript2
-	dw Route18GateScript3
-
-Route18GateScript0: ; 4988f (12:588f)
-	call Func_49755
-	ret nz
-	ld hl, CoordsData_498cc
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, [$cd3d]
-	cp $1
-	jr z, .asm_498c6 ; 0x498a9 $1b
-	ld a, [$cd3d]
-	dec a
-	ld [$cd38], a
-	ld b, $0
-	ld c, a
-	ld a, $40
-	ld hl, $ccd3
-	call FillMemory
-	call Func_3486
-	ld a, $1
-	ld [W_ROUTE18GATECURSCRIPT], a
-	ret
-.asm_498c6
-	ld a, $2
-	ld [W_ROUTE18GATECURSCRIPT], a
-	ret
-
-CoordsData_498cc: ; 498cc (12:58cc)
-	db $03,$04
-	db $04,$04
-	db $05,$04
-	db $06,$04
-	db $FF
-
-Route18GateScript1: ; 498d5 (12:58d5)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Route18GateScript2: ; 498df (12:58df)
-	ld a, $1
-	ld [H_SPRITEHEIGHT], a
-	call DisplayTextID
-	ld a, $1
-	ld [$cd38], a
-	ld a, $10
-	ld [$ccd3], a
-	call Func_3486
-	ld a, $3
-	ld [W_ROUTE18GATECURSCRIPT], a
-	ret
-
-Route18GateScript3: ; 498f9 (12:58f9)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d730
-	res 7, [hl]
-	ld a, $0
-	ld [W_ROUTE18GATECURSCRIPT], a
-	ret
-
-Route18GateTextPointers: ; 4990d (12:590d)
-	dw Route18GateText1
-	dw Route18GateText2
-
-Route18GateText1: ; 49911 (12:5911)
-	db $08 ; asm
-	call Func_49755
-	jr z, .asm_3c84d ; 0x49915
-	ld hl, UnnamedText_4992d
-	call PrintText
-	jr .asm_a8410 ; 0x4991d
-.asm_3c84d ; 0x4991f
-	ld hl, UnnamedText_49928
-	call PrintText
-.asm_a8410 ; 0x49925
-	jp TextScriptEnd
-
-UnnamedText_49928: ; 49928 (12:5928)
-	TX_FAR _UnnamedText_49928
-	db "@"
-
-UnnamedText_4992d: ; 4992d (12:592d)
-	TX_FAR _UnnamedText_4992d
-	db "@"
-
-Route18GateText2: ; 49932 (12:5932)
-	TX_FAR _UnnamedText_49932
-	db "@"
-
 INCLUDE "data/mapObjects/route18gate.asm"
 
 INCLUDE "data/mapHeaders/route18gateupstairs.asm"
 
-Route18GateUpstairsScript: ; 49975 (12:5975)
-	jp DisableAutoTextBoxDrawing
+INCLUDE "scripts/route18gateupstairs.asm"
 
-Route18GateUpstairsTextPointers: ; 49978 (12:5978)
-	dw Route18GateUpstairsText1
-	dw Route18GateUpstairsText2
-	dw Route18GateUpstairsText3
-
-Route18GateUpstairsText1: ; 4997e (12:597e)
-	db $08 ; asm
-	ld a, $5
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
-Route18GateUpstairsText2: ; 4998c (12:598c)
-	db $8
-	ld hl, UnnamedText_49993 ; $5993
-	jp Func_55c9
-
-UnnamedText_49993: ; 49993 (12:5993)
-	TX_FAR _UnnamedText_49993
-	db "@"
-
-Route18GateUpstairsText3: ; 49998 (12:5998)
-	db $8
-	ld hl, UnnamedText_4999f ; $599f
-	jp Func_55c9
-
-UnnamedText_4999f: ; 4999f (12:599f)
-	TX_FAR _UnnamedText_4999f
-	db "@"
-
 INCLUDE "data/mapObjects/route18gateupstairs.asm"
 
 INCLUDE "data/mapHeaders/mtmoon1.asm"
 
-MtMoon1Script: ; 499c8 (12:59c8)
-	call EnableAutoTextBoxDrawing
-	ld hl, MtMoon1TrainerHeader0
-	ld de, MtMoon1ScriptPointers
-	ld a, [W_MTMOON1CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MTMOON1CURSCRIPT], a
-	ret
+INCLUDE "scripts/mtmoon1.asm"
 
-MtMoon1ScriptPointers: ; 499db (12:59db)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-MtMoon1TextPointers: ; 499e1 (12:59e1)
-	dw MtMoon1Text1
-	dw MtMoon1Text2
-	dw MtMoon1Text3
-	dw MtMoon1Text4
-	dw MtMoon1Text5
-	dw MtMoon1Text6
-	dw MtMoon1Text7
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw MtMoon1Text14
-
-MtMoon1TrainerHeaders: ; 499fd (12:59fd)
-MtMoon1TrainerHeader0: ; 499fd (12:59fd)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText2 ; 0x5a98 TextBeforeBattle
-	dw MtMoon1AfterBattleText2 ; 0x5aa2 TextAfterBattle
-	dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
-	dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
-
-MtMoon1TrainerHeader2: ; 49a09 (12:5a09)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText3 ; 0x5aa7 TextBeforeBattle
-	dw MtMoon1AfterBattleText3 ; 0x5ab1 TextAfterBattle
-	dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
-	dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
-
-MtMoon1TrainerHeader3: ; 49a15 (12:5a15)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText4 ; 0x5ab6 TextBeforeBattle
-	dw MtMoon1AfterBattleText4 ; 0x5ac0 TextAfterBattle
-	dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
-	dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
-
-MtMoon1TrainerHeader4: ; 49a21 (12:5a21)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText5 ; 0x5ac5 TextBeforeBattle
-	dw MtMoon1AfterBattleText5 ; 0x5acf TextAfterBattle
-	dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
-	dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
-
-MtMoon1TrainerHeader5: ; 49a2d (12:5a2d)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText6 ; 0x5ad4 TextBeforeBattle
-	dw MtMoon1AfterBattleText6 ; 0x5ade TextAfterBattle
-	dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
-	dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
-
-MtMoon1TrainerHeader6: ; 49a39 (12:5a39)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText7 ; 0x5ae3 TextBeforeBattle
-	dw MtMoon1AfterBattleText7 ; 0x5aed TextAfterBattle
-	dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
-	dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
-
-MtMoon1TrainerHeader7: ; 49a45 (12:5a45)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f5 ; flag's byte
-	dw MtMoon1BattleText8 ; 0x5af2 TextBeforeBattle
-	dw MtMoon1AfterBattleText8 ; 0x5afc TextAfterBattle
-	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
-	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
-
-	db $ff
-
-MtMoon1Text1: ; 49a52 (12:5a52)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text2: ; 49a5c (12:5a5c)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text3: ; 49a66 (12:5a66)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text4: ; 49a70 (12:5a70)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text5: ; 49a7a (12:5a7a)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text6: ; 49a84 (12:5a84)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1Text7: ; 49a8e (12:5a8e)
-	db $08 ; asm
-	ld hl, MtMoon1TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon1BattleText2: ; 49a98 (12:5a98)
-	TX_FAR _MtMoon1BattleText2
-	db "@"
-
-MtMoon1EndBattleText2: ; 49a9d (12:5a9d)
-	TX_FAR _MtMoon1EndBattleText2
-	db "@"
-
-MtMoon1AfterBattleText2: ; 49aa2 (12:5aa2)
-	TX_FAR _MtMoon1AfterBattleText2
-	db "@"
-
-MtMoon1BattleText3: ; 49aa7 (12:5aa7)
-	TX_FAR _MtMoon1BattleText3
-	db "@"
-
-MtMoon1EndBattleText3: ; 49aac (12:5aac)
-	TX_FAR _MtMoon1EndBattleText3
-	db "@"
-
-MtMoon1AfterBattleText3: ; 49ab1 (12:5ab1)
-	TX_FAR _MtMoon1AfterBattleText3
-	db "@"
-
-MtMoon1BattleText4: ; 49ab6 (12:5ab6)
-	TX_FAR _MtMoon1BattleText4
-	db "@"
-
-MtMoon1EndBattleText4: ; 49abb (12:5abb)
-	TX_FAR _MtMoon1EndBattleText4
-	db "@"
-
-MtMoon1AfterBattleText4: ; 49ac0 (12:5ac0)
-	TX_FAR _MtMoon1AfterBattleText4
-	db "@"
-
-MtMoon1BattleText5: ; 49ac5 (12:5ac5)
-	TX_FAR _MtMoon1BattleText5
-	db "@"
-
-MtMoon1EndBattleText5: ; 49aca (12:5aca)
-	TX_FAR _MtMoon1EndBattleText5
-	db "@"
-
-MtMoon1AfterBattleText5: ; 49acf (12:5acf)
-	TX_FAR _MtMoon1AfterBattleText5
-	db "@"
-
-MtMoon1BattleText6: ; 49ad4 (12:5ad4)
-	TX_FAR _MtMoon1BattleText6
-	db "@"
-
-MtMoon1EndBattleText6: ; 49ad9 (12:5ad9)
-	TX_FAR _MtMoon1EndBattleText6
-	db "@"
-
-MtMoon1AfterBattleText6: ; 49ade (12:5ade)
-	TX_FAR _MtMoon1AfterBattleText6
-	db "@"
-
-MtMoon1BattleText7: ; 49ae3 (12:5ae3)
-	TX_FAR _MtMoon1BattleText7
-	db "@"
-
-MtMoon1EndBattleText7: ; 49ae8 (12:5ae8)
-	TX_FAR _MtMoon1EndBattleText7
-	db "@"
-
-MtMoon1AfterBattleText7: ; 49aed (12:5aed)
-	TX_FAR _MtMoon1AfterBattleText7
-	db "@"
-
-MtMoon1BattleText8: ; 49af2 (12:5af2)
-	TX_FAR _MtMoon1BattleText8
-	db "@"
-
-MtMoon1EndBattleText8: ; 49af7 (12:5af7)
-	TX_FAR _MtMoon1EndBattleText8
-	db "@"
-
-MtMoon1AfterBattleText8: ; 49afc (12:5afc)
-	TX_FAR _MtMoon1AfterBattleText8
-	db "@"
-
-MtMoon1Text14: ; 49b01 (12:5b01)
-	TX_FAR _MtMoon1Text14
-	db "@"
-
 INCLUDE "data/mapObjects/mtmoon1.asm"
 
 MtMoon1Blocks: ; 49b97 (12:5b97)
@@ -58023,421 +46656,8 @@
 
 INCLUDE "data/mapHeaders/mtmoon3.asm"
 
-MtMoon3Script: ; 49d0b (12:5d0b)
-	call EnableAutoTextBoxDrawing
-	ld hl, MtMoon3TrainerHeader0 ; $5e48
-	ld de, MtMoon3ScriptPointers
-	ld a, [W_MTMOON3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MTMOON3CURSCRIPT], a
-	ld a, [$d7f6]
-	bit 1, a
-	ret z
-	ld hl, CoordsData_49d37
-	call ArePlayerCoordsInArray
-	jr nc, .asm_49d31 ; 0x49d29 $6
-	ld hl, $d72e
-	set 4, [hl]
-	ret
-.asm_49d31
-	ld hl, $d72e
-	res 4, [hl]
-	ret
+INCLUDE "scripts/mtmoon3.asm"
 
-CoordsData_49d37: ; 49d37 (12:5d37)
-	db $05,$0B
-	db $05,$0C
-	db $05,$0D
-	db $05,$0E
-	db $06,$0B
-	db $06,$0C
-	db $06,$0D
-	db $06,$0E
-	db $07,$0B
-	db $07,$0C
-	db $07,$0D
-	db $07,$0E
-	db $08,$0B
-	db $08,$0C
-	db $08,$0D
-	db $08,$0E
-	db $FF
-
-Func_49d58: ; 49d58 (12:5d58)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-MtMoon3ScriptPointers: ; 49d63 (12:5d63)
-	dw MtMoon3Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw MtMoon3Script3
-	dw MtMoon3Script4
-	dw MtMoon3Script5
-
-MtMoon3Script0: ; 49d6f (12:5d6f)
-	ld a, [$d7f6]
-	bit 1, a
-	jp nz, Func_49d91
-	ld a, [W_YCOORD] ; $d361
-	cp $8
-	jp nz, Func_49d91
-	ld a, [W_XCOORD] ; $d362
-	cp $d
-	jp nz, Func_49d91
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-Func_49d91: ; 49d91 (12:5d91)
-	ld a, [$d7f6]
-	and $c0
-	jp z, CheckFightingMapTrainers
-	ret
-
-MtMoon3Script3: ; 49d9a (12:5d9a)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_49d58
-	call UpdateSprites
-	call Delay3
-	ld hl, $d7f6
-	set 1, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-MtMoon3Script4: ; 49dba (12:5dba)
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call SetSpriteMovementBytesToFF
-	ld hl, CoordsData_49dea
-	call ArePlayerCoordsInArray
-	jr c, .asm_49dd7
-	ld hl, CoordsData_49df1
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	ld de, MovementData_49df9
-	jr .asm_49dda
-.asm_49dd7
-	ld de, MovementData_49df8
-.asm_49dda
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call MoveSprite
-	ld a, $5
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_49dea: ; 49dea (12:5dea)
-	db $07,$0C
-	db $06,$0B
-	db $05,$0C
-	db $FF
-
-CoordsData_49df1: ; 49df1 (12:5df1)
-	db $07,$0D
-	db $06,$0E
-	db $05,$0E
-	db $FF
-
-MovementData_49df8: ; 49df8 (12:5df8)
-	db $C0
-
-MovementData_49df9: ; 49df9 (12:5df9)
-	db $40,$FF
-
-MtMoon3Script5: ; 49dfb (12:5dfb)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [$cc3c], a
-	ld a, $a
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, [$d7f6]
-	bit 6, a
-	jr z, .asm_49e1d
-	ld a, $6e
-	jr .asm_49e1f
-.asm_49e1d
-	ld a, $6d
-.asm_49e1f
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-MtMoon3TextPointers: ; 49e34 (12:5e34)
-	dw MtMoon3Text1
-	dw MtMoon3Text2
-	dw MtMoon3Text3
-	dw MtMoon3Text4
-	dw MtMoon3Text5
-	dw MtMoon3Text6
-	dw MtMoon3Text7
-	dw Predef5CText
-	dw Predef5CText
-	dw UnnamedText_49f99
-
-MtMoon3TrainerHeaders: ; 49e48 (12:5e48)
-MtMoon3TrainerHeader0: ; 49e48 (12:5e48)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f6 ; flag's byte
-	dw MtMoon3BattleText2 ; 0x5f9f TextBeforeBattle
-	dw MtMoon3AfterBattleText2 ; 0x5fa9 TextAfterBattle
-	dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
-	dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
-
-MtMoon3TrainerHeader2: ; 49e54 (12:5e54)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f6 ; flag's byte
-	dw MtMoon3BattleText3 ; 0x5fae TextBeforeBattle
-	dw MtMoon3AfterBattleText3 ; 0x5fb8 TextAfterBattle
-	dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
-	dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
-
-MtMoon3TrainerHeader3: ; 49e60 (12:5e60)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f6 ; flag's byte
-	dw MtMoon3BattleText4 ; 0x5fbd TextBeforeBattle
-	dw MtMoon3AfterBattleText4 ; 0x5fc7 TextAfterBattle
-	dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
-	dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
-
-MtMoon3TrainerHeader4: ; 49e6c (12:5e6c)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f6 ; flag's byte
-	dw MtMoon3BattleText5 ; 0x5fcc TextBeforeBattle
-	dw MtMoon3AfterBattleText5 ; 0x5fd6 TextAfterBattle
-	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
-	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
-
-	db $ff
-
-MtMoon3Text1: ; 49e79 (12:5e79)
-	db $08 ; asm
-	ld a, [$d7f6]
-	bit 1, a
-	jr z, .asm_be1e0 ; 0x49e7f
-	and $c0
-	jr nz, .asm_f8cd4 ; 0x49e83
-	ld hl, UnnamedText_49f8f
-	call PrintText
-	jr .asm_f1fba ; 0x49e8b
-.asm_be1e0 ; 0x49e8d
-	ld hl, UnnamedText_49f85
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_49f8a
-	ld de, UnnamedText_49f8a
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $3
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jr .asm_f1fba ; 0x49eb6
-.asm_f8cd4 ; 0x49eb8
-	ld hl, UnnamedText_49f94
-	call PrintText
-.asm_f1fba ; 0x49ebe
-	jp TextScriptEnd
-
-MtMoon3Text2: ; 49ec1 (12:5ec1)
-	db $08 ; asm
-	ld hl, MtMoon3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon3Text3: ; 49ecb (12:5ecb)
-	db $08 ; asm
-	ld hl, MtMoon3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon3Text4: ; 49ed5 (12:5ed5)
-	db $08 ; asm
-	ld hl, MtMoon3TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon3Text5: ; 49edf (12:5edf)
-	db $08 ; asm
-	ld hl, MtMoon3TrainerHeader4 ; $5e6c
-	call TalkToTrainer
-	jp TextScriptEnd
-
-MtMoon3Text6: ; 49ee9 (12:5ee9)
-	db $08 ; asm
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, UnnamedText_49f24
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_1fa5e ; 0x49efc
-	ld bc,(DOME_FOSSIL << 8) | 1
-	call GiveItem
-	jp nc, Func_49f76
-	call Func_49f69
-	ld a, $6d
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d7f6
-	set 6, [hl]
-	ld a, $4
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_1fa5e ; 0x49f21
-	jp TextScriptEnd
-
-UnnamedText_49f24: ; 49f24 (12:5f24)
-	TX_FAR _UnnamedText_49f24
-	db "@"
-
-MtMoon3Text7: ; 49f29 (12:5f29)
-	db $08 ; asm
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, UnnamedText_49f64
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_8e988 ; 0x49f3c
-	ld bc, (HELIX_FOSSIL << 8) | 1
-	call GiveItem
-	jp nc, Func_49f76
-	call Func_49f69
-	ld a, $6e
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d7f6
-	set 7, [hl]
-	ld a, $4
-	ld [W_MTMOON3CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_8e988 ; 0x49f61
-	jp TextScriptEnd
-
-UnnamedText_49f64: ; 49f64 (12:5f64)
-	TX_FAR _UnnamedText_49f64
-	db "@"
-
-Func_49f69: ; 49f69 (12:5f69)
-	ld hl, UnnamedText_49f6f
-	jp PrintText
-
-UnnamedText_49f6f: ; 49f6f (12:5f6f)
-	TX_FAR _UnnamedText_49f6f ; 0x80995
-	db $11, $d, "@"
-
-Func_49f76: ; 49f76 (12:5f76)
-	ld hl, UnnamedText_49f7f
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_49f7f: ; 49f7f (12:5f7f)
-	TX_FAR _UnnamedText_49f7f ; 0x809a8
-	db $d, "@"
-
-UnnamedText_49f85: ; 49f85 (12:5f85)
-	TX_FAR _UnnamedText_49f85
-	db "@"
-
-UnnamedText_49f8a: ; 49f8a (12:5f8a)
-	TX_FAR _UnnamedText_49f8a
-	db "@"
-
-UnnamedText_49f8f: ; 49f8f (12:5f8f)
-	TX_FAR _UnnamedText_49f8f
-	db "@"
-
-UnnamedText_49f94: ; 49f94 (12:5f94)
-	TX_FAR _UnnamedText_49f94
-	db "@"
-
-UnnamedText_49f99: ; 49f99 (12:5f99)
-	TX_FAR _UnnamedText_49f99
-	db $11, "@"
-
-MtMoon3BattleText2: ; 49f9f (12:5f9f)
-	TX_FAR _MtMoon3BattleText2
-	db "@"
-
-MtMoon3EndBattleText2: ; 49fa4 (12:5fa4)
-	TX_FAR _MtMoon3EndBattleText2
-	db "@"
-
-MtMoon3AfterBattleText2: ; 49fa9 (12:5fa9)
-	TX_FAR _MtMoon3AfterBattleText2
-	db "@"
-
-MtMoon3BattleText3: ; 49fae (12:5fae)
-	TX_FAR _MtMoon3BattleText3
-	db "@"
-
-MtMoon3EndBattleText3: ; 49fb3 (12:5fb3)
-	TX_FAR _MtMoon3EndBattleText3
-	db "@"
-
-MtMoon3AfterBattleText3: ; 49fb8 (12:5fb8)
-	TX_FAR _MtMoon3AfterBattleText3
-	db "@"
-
-MtMoon3BattleText4: ; 49fbd (12:5fbd)
-	TX_FAR _MtMoon3BattleText4
-	db "@"
-
-MtMoon3EndBattleText4: ; 49fc2 (12:5fc2)
-	TX_FAR _MtMoon3EndBattleText4
-	db "@"
-
-MtMoon3AfterBattleText4: ; 49fc7 (12:5fc7)
-	TX_FAR _MtMoon3AfterBattleText4
-	db "@"
-
-MtMoon3BattleText5: ; 49fcc (12:5fcc)
-	TX_FAR _MtMoon3BattleText5
-	db "@"
-
-MtMoon3EndBattleText5: ; 49fd1 (12:5fd1)
-	TX_FAR _MtMoon3EndBattleText5
-	db "@"
-
-MtMoon3AfterBattleText5: ; 49fd6 (12:5fd6)
-	TX_FAR _MtMoon3AfterBattleText5
-	db "@"
-
 INCLUDE "data/mapObjects/mtmoon3.asm"
 
 MtMoon3Blocks: ; 4a041 (12:6041)
@@ -58445,35 +46665,8 @@
 
 INCLUDE "data/mapHeaders/safarizonewest.asm"
 
-SafariZoneWestScript: ; 4a1b5 (12:61b5)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizonewest.asm"
 
-SafariZoneWestTextPointers: ; 4a1b8 (12:61b8)
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw SafariZoneWestText5
-	dw SafariZoneWestText6
-	dw SafariZoneWestText7
-	dw SafariZoneWestText8
-
-SafariZoneWestText5: ; 4a1c8 (12:61c8)
-	TX_FAR _SafariZoneWestText5
-	db "@"
-
-SafariZoneWestText6: ; 4a1cd (12:61cd)
-	TX_FAR _SafariZoneWestText6
-	db "@"
-
-SafariZoneWestText7: ; 4a1d2 (12:61d2)
-	TX_FAR _SafariZoneWestText7
-	db "@"
-
-SafariZoneWestText8: ; 4a1d7 (12:61d7)
-	TX_FAR _SafariZoneWestText8
-	db "@"
-
 INCLUDE "data/mapObjects/safarizonewest.asm"
 
 SafariZoneWestBlocks: ; 4a248 (12:6248)
@@ -58481,53 +46674,8 @@
 
 INCLUDE "data/mapHeaders/safarizonesecrethouse.asm"
 
-SafariZoneSecretHouseScript: ; 4a317 (12:6317)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/safarizonesecrethouse.asm"
 
-SafariZoneSecretHouseTextPointers: ; 4a31a (12:631a)
-	dw SafariZoneSecretHouseText1
-
-SafariZoneSecretHouseText1: ; 4a31c (12:631c)
-	db $08 ; asm
-	ld a, [$d857]
-	bit 0, a
-	jr nz, .asm_20a9b ; 0x4a322
-	ld hl, UnnamedText_4a350
-	call PrintText
-	ld bc, (HM_03 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedHM03Text
-	call PrintText
-	ld hl, $d857
-	set 0, [hl]
-	jr .asm_8f1fc ; 0x4a33d
-.BagFull
-	ld hl, HM03NoRoomText
-	call PrintText
-	jr .asm_8f1fc ; 0x4a345
-.asm_20a9b ; 0x4a347
-	ld hl, HM03ExplanationText
-	call PrintText
-.asm_8f1fc ; 0x4a34d
-	jp TextScriptEnd
-
-UnnamedText_4a350: ; 4a350 (12:6350)
-	TX_FAR _UnnamedText_4a350
-	db "@"
-
-ReceivedHM03Text: ; 4a355 (12:6355)
-	TX_FAR _ReceivedHM03Text
-	db $0B, "@"
-
-HM03ExplanationText: ; 4a35b (12:635b)
-	TX_FAR _HM03ExplanationText
-	db "@"
-
-HM03NoRoomText: ; 4a360 (12:6360)
-	TX_FAR _HM03NoRoomText
-	db "@"
-
 INCLUDE "data/mapObjects/safarizonesecrethouse.asm"
 
 SafariZoneSecretHouseBlocks: ; 4a37f (12:637f)
@@ -58631,45 +46779,8 @@
 
 INCLUDE "data/mapHeaders/battlecenterm.asm"
 
-BattleCenterMScript: ; 4fd10 (13:7d10)
-	call EnableAutoTextBoxDrawing
-	ld a, [$ffaa]
-	cp $2
-	ld a, $8
-	jr z, .asm_4fd1d ; 0x4fd19 $2
-	ld a, $c
-.asm_4fd1d
-	ld [$ff8d], a
-	ld a, $1
-	ld [$ff8c], a
-	call Func_34ae
-	ld hl, $d72d
-	bit 0, [hl]
-	set 0, [hl]
-	ret nz
-	ld hl, $c214
-	ld a, $8
-	ld [hli], a
-	ld a, $a
-	ld [hl], a
-	ld a, $8
-	ld [$c119], a
-	ld a, [$ffaa]
-	cp $2
-	ret z
-	ld a, $7
-	ld [$c215], a
-	ld a, $c
-	ld [$c119], a
-	ret
+INCLUDE "scripts/battlecenterm.asm"
 
-BattleCenterMTextPointers: ; 4fd4c (13:7d4c)
-	dw BattleCenterMText1
-
-BattleCenterMText1: ; 4fd4e (13:7d4e)
-	TX_FAR _BattleCenterMText1
-	db "@"
-
 INCLUDE "data/mapObjects/battlecenterm.asm"
 
 BattleCenterMBlocks: ; 4fd5d (13:7d5d)
@@ -58677,22 +46788,14 @@
 
 INCLUDE "data/mapHeaders/tradecenterm.asm"
 
-TradeCenterMScript: ; 4fd7d (13:7d7d)
-	jp BattleCenterMScript
+INCLUDE "scripts/tradecenterm.asm"
 
-TradeCenterMTextPointers: ; 4fd80 (13:7d80)
-	dw TradeCenterMText1
-
-TradeCenterMText1: ; 4fd82 (13:7d82)
-	TX_FAR _TradeCenterMText1
-	db "@"
-
 INCLUDE "data/mapObjects/tradecenterm.asm"
 
 TradeCenterMBlocks: ; 4fd91 (13:7d91)
 	INCBIN "maps/tradecenterm.blk"
 
-Func_4fda5: ; 4fda5 (13:7da5)
+_GivePokemon: ; 4fda5 (13:7da5)
 	call EnableAutoTextBoxDrawing
 	xor a
 	ld [$ccd3], a
@@ -58997,10 +47100,8 @@
 
 INCLUDE "data/mapHeaders/indigoplateau.asm"
 
-IndigoPlateauScript: ; 50935 (14:4935)
-	ret
+INCLUDE "scripts/indigoplateau.asm"
 
-IndigoPlateauTextPointers: ; 50936 (14:4936)
 INCLUDE "data/mapObjects/indigoplateau.asm"
 
 IndigoPlateauBlocks: ; 5094a (14:494a)
@@ -59013,2060 +47114,22 @@
 SaffronCityBlocks: ; 50a98 (14:4a98)
 	INCBIN "maps/saffroncity.blk"
 
-SaffronCityScript: ; 50c00 (14:4c00)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/saffroncity.asm"
 
-SaffronCityTextPointers: ; 50c03 (14:4c03)
-	dw SaffronCityText1
-	dw SaffronCityText2
-	dw SaffronCityText3
-	dw SaffronCityText4
-	dw SaffronCityText5
-	dw SaffronCityText6
-	dw SaffronCityText7
-	dw SaffronCityText8
-	dw SaffronCityText9
-	dw SaffronCityText10
-	dw SaffronCityText11
-	dw SaffronCityText12
-	dw SaffronCityText13
-	dw SaffronCityText14
-	dw SaffronCityText15
-	dw SaffronCityText16
-	dw SaffronCityText17
-	dw SaffronCityText18
-	dw MartSignText
-	dw SaffronCityText20
-	dw SaffronCityText21
-	dw SaffronCityText22
-	dw PokeCenterSignText
-	dw SaffronCityText24
-	dw SaffronCityText25
+INCLUDE "scripts/route20.asm"
 
-SaffronCityText1: ; 50c35 (14:4c35)
-	TX_FAR _SaffronCityText1
-	db "@"
+INCLUDE "scripts/route22.asm"
 
-SaffronCityText2: ; 50c3a (14:4c3a)
-	TX_FAR _SaffronCityText2
-	db "@"
+INCLUDE "scripts/route23.asm"
 
-SaffronCityText3: ; 50c3f (14:4c3f)
-	TX_FAR _SaffronCityText3
-	db "@"
+INCLUDE "scripts/route24.asm"
 
-SaffronCityText4: ; 50c44 (14:4c44)
-	TX_FAR _SaffronCityText4
-	db "@"
+INCLUDE "scripts/route25.asm"
 
-SaffronCityText5: ; 50c49 (14:4c49)
-	TX_FAR _SaffronCityText5
-	db "@"
-
-SaffronCityText6: ; 50c4e (14:4c4e)
-	TX_FAR _SaffronCityText6
-	db "@"
-
-SaffronCityText7: ; 50c53 (14:4c53)
-	TX_FAR _SaffronCityText7
-	db "@"
-
-SaffronCityText8: ; 50c58 (14:4c58)
-	TX_FAR _SaffronCityText8
-	db "@"
-
-SaffronCityText9: ; 50c5d (14:4c5d)
-	TX_FAR _SaffronCityText9
-	db "@"
-
-SaffronCityText10: ; 50c62 (14:4c62)
-	TX_FAR _SaffronCityText10
-	db "@"
-
-SaffronCityText11: ; 50c67 (14:4c67)
-	TX_FAR _SaffronCityText11
-	db "@"
-
-SaffronCityText12: ; 50c6c (14:4c6c)
-	TX_FAR _SaffronCityText12
-	db $15, "@"
-
-SaffronCityText13: ; 50c72 (14:4c72)
-	TX_FAR _SaffronCityText13
-	db "@"
-
-SaffronCityText14: ; 50c77 (14:4c77)
-	TX_FAR _SaffronCityText14
-	db "@"
-
-SaffronCityText15: ; 50c7c (14:4c7c)
-	TX_FAR _SaffronCityText15
-	db "@"
-
-SaffronCityText16: ; 50c81 (14:4c81)
-	TX_FAR _SaffronCityText16
-	db "@"
-
-SaffronCityText17: ; 50c86 (14:4c86)
-	TX_FAR _SaffronCityText17
-	db "@"
-
-SaffronCityText18: ; 50c8b (14:4c8b)
-	TX_FAR _SaffronCityText18
-	db "@"
-
-SaffronCityText20: ; 50c90 (14:4c90)
-	TX_FAR _SaffronCityText20
-	db "@"
-
-SaffronCityText21: ; 50c95 (14:4c95)
-	TX_FAR _SaffronCityText21
-	db "@"
-
-SaffronCityText22: ; 50c9a (14:4c9a)
-	TX_FAR _SaffronCityText22
-	db "@"
-
-SaffronCityText24: ; 50c9f (14:4c9f)
-	TX_FAR _SaffronCityText24
-	db "@"
-
-SaffronCityText25: ; 50ca4 (14:4ca4)
-	TX_FAR _SaffronCityText25
-	db "@"
-
-Route20Script: ; 50ca9 (14:4ca9)
-	ld hl, $d7e7
-	bit 0, [hl]
-	res 0, [hl]
-	call nz, Func_50cc6
-	call EnableAutoTextBoxDrawing
-	ld hl, Route20TrainerHeader0 ; $4d3a
-	ld de, Route20ScriptPointers
-	ld a, [W_ROUTE20CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE20CURSCRIPT], a
-	ret
-
-Func_50cc6: ; 50cc6 (14:4cc6)
-	ld a, [$d880]
-	and $3
-	cp $3
-	jr z, .asm_50cef
-	ld a, $d7
-	call Func_50d0c
-	ld a, $d8
-	call Func_50d0c
-	ld hl, .MissableObjectIDs ; $4ce8
-.asm_50cdc
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_50cef
-	push hl
-	call Func_50d14
-	pop hl
-	jr .asm_50cdc
-
-.MissableObjectIDs: ; 50ce8 (14:4ce8)
-	db $D9,$DA,$DB,$DC,$DF,$E0,$FF
-
-.asm_50cef
-	ld a, [$d881]
-	and $3
-	cp $3
-	ret z
-	ld a, $dd
-	call Func_50d0c
-	ld a, $de
-	call Func_50d0c
-	ld a, $e1
-	call Func_50d14
-	ld a, $e2
-	call Func_50d14
-	ret
-
-Func_50d0c: ; 50d0c (14:4d0c)
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-
-Func_50d14: ; 50d14 (14:4d14)
-	ld [$cc4d], a
-	ld a, $11
-	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-
-Route20ScriptPointers: ; 50d1c (14:4d1c)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route20TextPointers: ; 50d22 (14:4d22)
-	dw Route20Text1
-	dw Route20Text2
-	dw Route20Text3
-	dw Route20Text4
-	dw Route20Text5
-	dw Route20Text6
-	dw Route20Text7
-	dw Route20Text8
-	dw Route20Text9
-	dw Route20Text10
-	dw Route20Text11
-	dw Route20Text12
-
-Route20TrainerHeaders: ; 50d3a (14:4d3a)
-Route20TrainerHeader0: ; 50d3a (14:4d3a)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText1 ; 0x4e17 TextBeforeBattle
-	dw Route20AfterBattleText1 ; 0x4e21 TextAfterBattle
-	dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
-	dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
-
-Route20TrainerHeader2: ; 50d46 (14:4d46)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText2 ; 0x4e26 TextBeforeBattle
-	dw Route20AfterBattleText2 ; 0x4e30 TextAfterBattle
-	dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
-	dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
-
-Route20TrainerHeader3: ; 50d52 (14:4d52)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText3 ; 0x4e35 TextBeforeBattle
-	dw Route20AfterBattleText3 ; 0x4e3f TextAfterBattle
-	dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
-	dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
-
-Route20TrainerHeader4: ; 50d5e (14:4d5e)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText4 ; 0x4e44 TextBeforeBattle
-	dw Route20AfterBattleText4 ; 0x4e4e TextAfterBattle
-	dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
-	dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
-
-Route20TrainerHeader5: ; 50d6a (14:4d6a)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText5 ; 0x4e53 TextBeforeBattle
-	dw Route20AfterBattleText5 ; 0x4e5d TextAfterBattle
-	dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
-	dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
-
-Route20TrainerHeader6: ; 50d76 (14:4d76)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText6 ; 0x4e62 TextBeforeBattle
-	dw Route20AfterBattleText6 ; 0x4e6c TextAfterBattle
-	dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
-	dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
-
-Route20TrainerHeader7: ; 50d82 (14:4d82)
-	db $7 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText7 ; 0x4e71 TextBeforeBattle
-	dw Route20AfterBattleText7 ; 0x4e7b TextAfterBattle
-	dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
-	dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
-
-Route20TrainerHeader8: ; 50d8e (14:4d8e)
-	db $8 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText8 ; 0x4e80 TextBeforeBattle
-	dw Route20AfterBattleText8 ; 0x4e8a TextAfterBattle
-	dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
-	dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
-
-Route20TrainerHeader9: ; 50d9a (14:4d9a)
-	db $9 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText9 ; 0x4e8f TextBeforeBattle
-	dw Route20AfterBattleText9 ; 0x4e99 TextAfterBattle
-	dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
-	dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
-
-Route20TrainerHeader10: ; 50da6 (14:4da6)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e7 ; flag's byte
-	dw Route20BattleText10 ; 0x4e9e TextBeforeBattle
-	dw Route20AfterBattleText10 ; 0x4ea8 TextAfterBattle
-	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
-	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
-
-	db $ff
-
-Route20Text1: ; 50db3 (14:4db3)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text2: ; 50dbd (14:4dbd)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text3: ; 50dc7 (14:4dc7)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text4: ; 50dd1 (14:4dd1)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text5: ; 50ddb (14:4ddb)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text6: ; 50de5 (14:4de5)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text7: ; 50def (14:4def)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text8: ; 50df9 (14:4df9)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text9: ; 50e03 (14:4e03)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20Text10: ; 50e0d (14:4e0d)
-	db $08 ; asm
-	ld hl, Route20TrainerHeader10
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route20BattleText1: ; 50e17 (14:4e17)
-	TX_FAR _Route20BattleText1
-	db "@"
-
-Route20EndBattleText1: ; 50e1c (14:4e1c)
-	TX_FAR _Route20EndBattleText1
-	db "@"
-
-Route20AfterBattleText1: ; 50e21 (14:4e21)
-	TX_FAR _Route20AfterBattleText1
-	db "@"
-
-Route20BattleText2: ; 50e26 (14:4e26)
-	TX_FAR _Route20BattleText2
-	db "@"
-
-Route20EndBattleText2: ; 50e2b (14:4e2b)
-	TX_FAR _Route20EndBattleText2
-	db "@"
-
-Route20AfterBattleText2: ; 50e30 (14:4e30)
-	TX_FAR _Route20AfterBattleText2
-	db "@"
-
-Route20BattleText3: ; 50e35 (14:4e35)
-	TX_FAR _Route20BattleText3
-	db "@"
-
-Route20EndBattleText3: ; 50e3a (14:4e3a)
-	TX_FAR _Route20EndBattleText3
-	db "@"
-
-Route20AfterBattleText3: ; 50e3f (14:4e3f)
-	TX_FAR _Route20AfterBattleText3
-	db "@"
-
-Route20BattleText4: ; 50e44 (14:4e44)
-	TX_FAR _Route20BattleText4
-	db "@"
-
-Route20EndBattleText4: ; 50e49 (14:4e49)
-	TX_FAR _Route20EndBattleText4
-	db "@"
-
-Route20AfterBattleText4: ; 50e4e (14:4e4e)
-	TX_FAR _Route20AfterBattleText4
-	db "@"
-
-Route20BattleText5: ; 50e53 (14:4e53)
-	TX_FAR _Route20BattleText5
-	db "@"
-
-Route20EndBattleText5: ; 50e58 (14:4e58)
-	TX_FAR _Route20EndBattleText5
-	db "@"
-
-Route20AfterBattleText5: ; 50e5d (14:4e5d)
-	TX_FAR _Route20AfterBattleText5
-	db "@"
-
-Route20BattleText6: ; 50e62 (14:4e62)
-	TX_FAR _Route20BattleText6
-	db "@"
-
-Route20EndBattleText6: ; 50e67 (14:4e67)
-	TX_FAR _Route20EndBattleText6
-	db "@"
-
-Route20AfterBattleText6: ; 50e6c (14:4e6c)
-	TX_FAR _Route20AfterBattleText6
-	db "@"
-
-Route20BattleText7: ; 50e71 (14:4e71)
-	TX_FAR _Route20BattleText7
-	db "@"
-
-Route20EndBattleText7: ; 50e76 (14:4e76)
-	TX_FAR _Route20EndBattleText7
-	db "@"
-
-Route20AfterBattleText7: ; 50e7b (14:4e7b)
-	TX_FAR _Route20AfterBattleText7
-	db "@"
-
-Route20BattleText8: ; 50e80 (14:4e80)
-	TX_FAR _Route20BattleText8
-	db "@"
-
-Route20EndBattleText8: ; 50e85 (14:4e85)
-	TX_FAR _Route20EndBattleText8
-	db "@"
-
-Route20AfterBattleText8: ; 50e8a (14:4e8a)
-	TX_FAR _Route20AfterBattleText8
-	db "@"
-
-Route20BattleText9: ; 50e8f (14:4e8f)
-	TX_FAR _Route20BattleText9
-	db "@"
-
-Route20EndBattleText9: ; 50e94 (14:4e94)
-	TX_FAR _Route20EndBattleText9
-	db "@"
-
-Route20AfterBattleText9: ; 50e99 (14:4e99)
-	TX_FAR _Route20AfterBattleText9
-	db "@"
-
-Route20BattleText10: ; 50e9e (14:4e9e)
-	TX_FAR _Route20BattleText10
-	db "@"
-
-Route20EndBattleText10: ; 50ea3 (14:4ea3)
-	TX_FAR _Route20EndBattleText10
-	db "@"
-
-Route20AfterBattleText10: ; 50ea8 (14:4ea8)
-	TX_FAR _Route20AfterBattleText10
-	db "@"
-
-Route20Text12: ; 50ead (14:4ead)
-Route20Text11: ; 50ead (14:4ead)
-	TX_FAR _Route20Text11
-	db "@"
-
-Route22Script: ; 50eb2 (14:4eb2)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route22ScriptPointers
-	ld a, [W_ROUTE22CURSCRIPT]
-	jp CallFunctionInTable
-
-Route22ScriptPointers: ; 50ebe (14:4ebe)
-	dw Route22Script0
-	dw Route22Script1
-	dw Route22Script2
-	dw Route22Script3
-	dw Route22Script4
-	dw Route22Script5
-	dw Route22Script6
-	dw Route22Script7
-
-Func_50ece: ; 50ece (14:4ece)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE22CURSCRIPT], a
-Route22Script7: ; 50ed5 (14:4ed5)
-	ret
-
-Func_50ed6: ; 50ed6 (14:4ed6)
-	ld a, [W_RIVALSTARTER] ; $d715
-	ld b, a
-.asm_50eda
-	ld a, [hli]
-	cp b
-	jr z, .asm_50ee1
-	inc hl
-	jr .asm_50eda
-.asm_50ee1
-	ld a, [hl]
-	ld [W_TRAINERNO], a ; $d05d
-	ret
-
-Func_50ee6: ; 50ee6 (14:4ee6)
-	ld de, MovementData_50efb ; $4efb
-	ld a, [$cf0d]
-	cp $1
-	jr z, .asm_50ef1
-	inc de
-.asm_50ef1
-	call MoveSprite
-	ld a, $c
-	ld [$ff8d], a
-	jp Func_34a6
-
-MovementData_50efb: ; 50efb (14:4efb)
-	db $C0,$C0,$C0,$C0,$FF
-
-Route22Script0: ; 50f00 (14:4f00)
-	ld a, [$d7eb]
-	bit 7, a
-	ret z
-	ld hl, .CoordsData_50f2d ; $4f2d
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, [$cd3d]
-	ld [$cf0d], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $2
-	ld [$d528], a
-	ld a, [$d7eb]
-	bit 0, a
-	jr nz, .asm_50f32 ; 0x50f25 $b
-	bit 1, a
-	jp nz, Func_5104e
-	ret
-
-.CoordsData_50f2d
-	db $04, $1D
-	db $05, $1D
-	db $FF
-
-.asm_50f32
-	ld a, $1
-	ld [$cd4f], a
-	xor a
-	ld [$cd50], a
-	ld a, $4c
-	call Predef
-	ld a, [$d700]
-	and a
-	jr z, .asm_50f4e ; 0x50f44 $8
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-.asm_50f4e
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic
-	ld a, $1
-	ld [$ff8c], a
-	call Func_50ee6
-	ld a, $1
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Route22Script1: ; 50f62 (14:4f62)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_50f78 ; 0x50f6d $9
-	ld a, $4
-	ld [$d528], a
-	ld a, $4
-	jr .asm_50f7a ; 0x50f76 $2
-.asm_50f78
-	ld a, $c
-.asm_50f7a
-	ld [$ff8d], a
-	ld a, $1
-	ld [$ff8c], a
-	call Func_34a6
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_511b7
-	ld de, UnnamedText_511bc
-	call PreBattleSaveRegisters
-	ld a, SONY1 + $c8
-	ld [W_CUROPPONENT], a
-	ld hl, StarterMons_50faf ; $4faf
-	call Func_50ed6
-	ld a, $2
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-StarterMons_50faf: ; 50faf (14:4faf)
-	db SQUIRTLE,$04
-	db BULBASAUR,$05
-	db CHARMANDER,$06
-
-Route22Script2: ; 50fb5 (14:4fb5)
-	ld a, [$d057]
-	cp $ff
-	jp z, Func_50ece
-	ld a, [$c109]
-	and a
-	jr nz, .asm_50fc7 ; 0x50fc1 $4
-	ld a, $4
-	jr .asm_50fc9 ; 0x50fc5 $2
-.asm_50fc7
-	ld a, $c
-.asm_50fc9
-	ld [$ff8d], a
-	ld a, $1
-	ld [$ff8c], a
-	call Func_34a6
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d7eb
-	set 5, [hl]
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_50fff ; 0x50ff8 $5
-	call Func_51008
-	jr .asm_51002 ; 0x50ffd $3
-.asm_50fff
-	call Func_5100d
-.asm_51002
-	ld a, $3
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Func_51008: ; 51008 (14:5008)
-	ld de, MovementData_51017 ; $5017
-	jr asm_51010
-
-Func_5100d: ; 5100d (14:500d)
-	ld de, MovementData_5101f ; $501f
-asm_51010
-	ld a, $1
-	ld [H_SPRITEHEIGHT], a
-	jp MoveSprite
-
-MovementData_51017: ; 51017 (14:5017)
-	db $C0,$C0,$00,$00,$00,$00,$00,$FF
-
-MovementData_5101f: ; 5101f (14:501f)
-	db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
-
-Route22Script3: ; 5102a (14:502a)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $22
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	call Func_2307
-	ld hl, $d7eb
-	res 0, [hl]
-	res 7, [hl]
-	ld a, $0
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Func_5104e: ; 5104e (14:504e)
-	ld a, $2
-	ld [$cd4f], a
-	xor a
-	ld [$cd50], a
-	ld a, $4c
-	call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
-	ld a, [$d700]
-	and a
-	jr z, .skipYVisibilityTesta
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-.skipYVisibilityTesta
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateTempo)
-	ld hl, Music_RivalAlternateTempo
-	call Bankswitch
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call Func_50ee6
-	ld a, $4
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Route22Script4: ; 51087 (14:5087)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_510a1
-	ld a, $4
-	ld [$d528], a
-	ld a, $4
-	jr .asm_510a8
-.asm_510a1
-	ld a, $2
-	ld [$d528], a
-	ld a, $c
-.asm_510a8
-	ld [$ff8d], a
-	call Func_34a6
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_511cb ; $51cb
-	ld de, UnnamedText_511d0 ; $51d0
-	call PreBattleSaveRegisters
-	ld a, SONY2 + $c8
-	ld [W_CUROPPONENT], a ; $d059
-	ld hl, StarterMons_510d9 ; $50d9
-	call Func_50ed6
-	ld a, $5
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-StarterMons_510d9: ; 510d9 (14:50d9)
-	db SQUIRTLE,$0a
-	db BULBASAUR,$0b
-	db CHARMANDER,$0c
-
-Route22Script5: ; 510df (14:50df)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_50ece
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_510fb
-	ld a, $4
-	ld [$d528], a
-	ld a, $4
-	jr .asm_51102
-.asm_510fb
-	ld a, $2
-	ld [$d528], a
-	ld a, $c
-.asm_51102
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d7eb
-	set 6, [hl]
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStartAndTempo)
-	ld hl, Music_RivalAlternateStartAndTempo
-	call Bankswitch
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_51134
-	call Func_5113d
-	jr .asm_51137
-.asm_51134
-	call Func_51142
-.asm_51137
-	ld a, $6
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Func_5113d: ; 5113d (14:513d)
-	ld de, MovementData_5114c ; $514c
-	jr asm_51145
-
-Func_51142: ; 51142 (14:5142)
-	ld de, MovementData_5114d ; $514d
-asm_51145: ; 51145 (14:5145)
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp MoveSprite
-
-MovementData_5114c: ; 5114c (14:514c)
-	db $80
-
-MovementData_5114d: ; 5114d (14:514d)
-	db $80,$80,$80,$FF
-
-Route22Script6: ; 51151 (14:5151)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $23
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	call Func_2307
-	ld hl, $d7eb
-	res 1, [hl]
-	res 7, [hl]
-	ld a, $7
-	ld [W_ROUTE22CURSCRIPT], a
-	ret
-
-Route22TextPointers: ; 51175 (14:5175)
-	dw Route22Text1
-	dw Route22Text2
-	dw Route22Text3
-
-Route22Text1: ; 5117b (14:517b)
-	db $08 ; asm
-	ld a, [$d7eb]
-	bit 5, a
-	jr z, .asm_a88cf ; 0x51181
-	ld hl, UnnamedText_511b2
-	call PrintText
-	jr .asm_48088 ; 0x51189
-.asm_a88cf ; 0x5118b
-	ld hl, UnnamedText_511ad
-	call PrintText
-.asm_48088 ; 0x51191
-	jp TextScriptEnd
-
-Route22Text2: ; 51194 (14:5194)
-	db $08 ; asm
-	ld a, [$d7eb]
-	bit 6, a
-	jr z, .asm_58c0a ; 0x5119a
-	ld hl, UnnamedText_511c6
-	call PrintText
-	jr .asm_673ee ; 0x511a2
-.asm_58c0a ; 0x511a4
-	ld hl, UnnamedText_511c1
-	call PrintText
-.asm_673ee ; 0x511aa
-	jp TextScriptEnd
-
-UnnamedText_511ad: ; 511ad (14:51ad)
-	TX_FAR _UnnamedText_511ad
-	db "@"
-
-UnnamedText_511b2: ; 511b2 (14:51b2)
-	TX_FAR _UnnamedText_511b2
-	db "@"
-
-UnnamedText_511b7: ; 511b7 (14:51b7)
-	TX_FAR _UnnamedText_511b7
-	db "@"
-
-UnnamedText_511bc: ; 511bc (14:51bc)
-	TX_FAR _UnnamedText_511bc
-	db "@"
-
-UnnamedText_511c1: ; 511c1 (14:51c1)
-	TX_FAR _UnnamedText_511c1
-	db "@"
-
-UnnamedText_511c6: ; 511c6 (14:51c6)
-	TX_FAR _UnnamedText_511c6
-	db "@"
-
-UnnamedText_511cb: ; 511cb (14:51cb)
-	TX_FAR _UnnamedText_511cb
-	db "@"
-
-UnnamedText_511d0: ; 511d0 (14:51d0)
-	TX_FAR _UnnamedText_511d0
-	db "@"
-
-Route22Text3: ; 511d5 (14:51d5)
-	TX_FAR _Route22Text3
-	db "@"
-
-Route23Script: ; 511da (14:51da)
-	call Func_511e9
-	call EnableAutoTextBoxDrawing
-	ld hl, Route23ScriptPointers
-	ld a, [W_ROUTE23CURSCRIPT]
-	jp CallFunctionInTable
-
-Func_511e9: ; 511e9 (14:51e9)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	ret z
-	ld hl, $d7ee
-	res 0, [hl]
-	res 7, [hl]
-	ld hl, $d813
-	res 0, [hl]
-	res 6, [hl]
-	ld a, $7a
-	ld [$cc4d], a
-	ld a, $15
-	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-	ld a, $60
-	ld [$cc4d], a
-	ld a, $11
-	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-
-Route23ScriptPointers: ; 51213 (14:5213)
-	dw Route23Script0
-	dw Route23Script1
-	dw Route23Script2
-
-Route23Script0: ; 51219 (14:5219)
-	ld hl, YCoordsData_51255 ; $5255
-	ld a, [W_YCOORD]
-	ld b, a
-	ld e, $0
-	ld c, $7
-.asm_51224
-	ld a, [hli]
-	cp $ff
-	ret z
-	inc e
-	dec c
-	cp b
-	jr nz, .asm_51224 ; 0x5122b $f7
-	cp $23
-	jr nz, .asm_51237 ; 0x5122f $6
-	ld a, [W_XCOORD]
-	cp $e
-	ret nc
-.asm_51237
-	ld a, e
-	ld [$ff8c], a
-	ld a, c
-	ld [$cd3d], a
-	ld b, $2
-	ld hl, $d7ed
-	ld a, $10
-	call Predef
-	ld a, c
-	and a
-	ret nz
-	call Func_5125d
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ret
-
-YCoordsData_51255: ; 51255 (14:5255)
-	db $23,$38,$55,$60,$69,$77,$88,$FF
-
-Func_5125d: ; 5125d (14:525d)
-	ld hl, BadgeTextPointers ; $5276
-	ld a, [wWhichTrade] ; $cd3d
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld de, $cd6d
-.asm_5126e
-	ld a, [hli]
-	ld [de], a
-	inc de
-	cp $50
-	jr nz, .asm_5126e
-	ret
-
-BadgeTextPointers: ; 51276 (14:5276)
-	dw CascadeBadgeText
-	dw ThunderBadgeText
-	dw RainbowBadgeText
-	dw SoulBadgeText
-	dw MarshBadgeText
-	dw VolcanoBadgeText
-	dw EarthBadgeText
-
-EarthBadgeText: ; 51284 (14:5284)
-	db "EARTHBADGE@"
-
-VolcanoBadgeText: ; 5128f (14:528f)
-	db "VOLCANOBADGE@"
-
-MarshBadgeText: ; 5129c (14:529c)
-	db "MARSHBADGE@"
-
-SoulBadgeText: ; 512a7 (14:52a7)
-	db "SOULBADGE@"
-
-RainbowBadgeText: ; 512b1 (14:52b1)
-	db "RAINBOWBADGE@"
-
-ThunderBadgeText: ; 512be (14:52be)
-	db "THUNDERBADGE@"
-
-CascadeBadgeText: ; 512cb (14:52cb)
-	db "CASCADEBADGE@"
-
-Func_512d8: ; 512d8 (14:52d8)
-	ld a, $1
-	ld [$cd38], a
-	ld a, $80
-	ld [$ccd3], a
-	xor a
-	ld [$c109], a
-	ld [wJoypadForbiddenButtonsMask], a
-	jp Func_3486
-
-Route23Script1: ; 512ec (14:52ec)
-	ld a, [$cd38]
-	and a
-	ret nz
-Route23Script2: ; 512f1 (14:52f1)
-	ld a, $0
-	ld [W_ROUTE23CURSCRIPT], a
-	ret
-
-Route23TextPointers: ; 512f7 (14:52f7)
-	dw Route23Text1
-	dw Route23Text2
-	dw Route23Text3
-	dw Route23Text4
-	dw Route23Text5
-	dw Route23Text6
-	dw Route23Text7
-	dw Route23Text8
-
-Route23Text1: ; 51307 (14:5307)
-	db $08 ; asm
-	ld a, $6
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text2: ; 51310 (14:5310)
-	db $08 ; asm
-	ld a, $5
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text3: ; 51319 (14:5319)
-	db $08 ; asm
-	ld a, $4
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text4: ; 51322 (14:5322)
-	db $08 ; asm
-	ld a, $3
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text5: ; 5132b (14:532b)
-	db $08 ; asm
-	ld a, $2
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text6: ; 51334 (14:5334)
-	db $08 ; asm
-	ld a, $1
-	call Func_51346
-	jp TextScriptEnd
-
-Route23Text7: ; 5133d (14:533d)
-	db $8
-	ld a, $0
-	call Func_51346
-	jp TextScriptEnd
-
-Func_51346: ; 51346 (14:5346)
-	ld [wWhichTrade], a ; $cd3d
-	call Func_5125d
-	ld a, [wWhichTrade] ; $cd3d
-	inc a
-	ld c, a
-	ld b, $2
-	ld hl, W_OBTAINEDBADGES
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
-	ld a, c
-	and a
-	jr nz, .asm_5136e
-	ld hl, VictoryRoadGuardText1
-	call PrintText
-	call Func_512d8
-	ld a, $1
-	ld [W_ROUTE23CURSCRIPT], a
-	ret
-.asm_5136e
-	ld hl, VictoryRoadGuardText2
-	call PrintText
-	ld a, [wWhichTrade] ; $cd3d
-	ld c, a
-	ld b, $1
-	ld hl, $d7ed
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
-	ld a, $2
-	ld [W_ROUTE23CURSCRIPT], a
-	ret
-
-Func_51388: ; 51388 (14:5388)
-	ld hl, VictoryRoadGuardText2
-	jp PrintText
-
-VictoryRoadGuardText1: ; 5138e (14:538e)
-	TX_FAR _VictoryRoadGuardText1
-	db $08 ; asm
-	ld a, (SFX_02_51 - SFX_Headers_02) / 3
-	call PlaySoundWaitForCurrent
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-VictoryRoadGuardText2: ; 5139e (14:539e)
-	TX_FAR _VictoryRoadGuardText2
-	db $b
-	TX_FAR _UnnamedText_513a3
-	db "@"
-
-Route23Text8: ; 513a8 (14:53a8)
-	TX_FAR _Route23Text8
-	db "@"
-
-Route24Script: ; 513ad (14:53ad)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route24TrainerHeaders
-	ld de, Route24ScriptPointers
-	ld a, [W_ROUTE24CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE24CURSCRIPT], a
-	ret
-
-Func_513c0: ; 513c0 (14:53c0)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE24CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route24ScriptPointers: ; 513cb (14:53cb)
-	dw Route24Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw Route24Script3
-	dw Route24Script4
-
-Route24Script0: ; 513d5 (14:53d5)
-	ld a, [$d7ef]
-	bit 0, a
-	jp nz, CheckFightingMapTrainers
-	ld hl, CoordsData_5140e ; $540e
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d7f0
-	bit 1, [hl]
-	res 1, [hl]
-	ret z
-	ld a, $80
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	call Func_3486
-	ld a, $4
-	ld [W_ROUTE24CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_5140e: ; 5140e (14:540e)
-	db $0F,$0A,$FF
-
-Route24Script4: ; 51411 (14:5411)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	ld a, $0
-	ld [W_ROUTE24CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route24Script3: ; 51422 (14:5422)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_513c0
-	call UpdateSprites
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d7ef
-	set 1, [hl]
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_ROUTE24CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route24TextPointers: ; 5144b (14:544b)
-	dw Route24Text1
-	dw Route24Text2
-	dw Route24Text3
-	dw Route24Text4
-	dw Route24Text5
-	dw Route24Text6
-	dw Route24Text7
-	dw Predef5CText
-
-Route24TrainerHeaders: ; 5145b (14:545b)
-Route24TrainerHeader0: ; 5145b (14:545b)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText1 ; 0x5571 TextBeforeBattle
-	dw Route24AfterBattleText1 ; 0x557b TextAfterBattle
-	dw Route24EndBattleText1 ; 0x5576 TextEndBattle
-	dw Route24EndBattleText1 ; 0x5576 TextEndBattle
-
-Route24TrainerHeader2: ; 51467 (14:5467)
-	db $3 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText2 ; 0x5580 TextBeforeBattle
-	dw Route24AfterBattleText2 ; 0x558a TextAfterBattle
-	dw Route24EndBattleText2 ; 0x5585 TextEndBattle
-	dw Route24EndBattleText2 ; 0x5585 TextEndBattle
-
-Route24TrainerHeader3: ; 51473 (14:5473)
-	db $4 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText3 ; 0x558f TextBeforeBattle
-	dw Route24AfterBattleText3 ; 0x5599 TextAfterBattle
-	dw Route24EndBattleText3 ; 0x5594 TextEndBattle
-	dw Route24EndBattleText3 ; 0x5594 TextEndBattle
-
-Route24TrainerHeader4: ; 5147f (14:547f)
-	db $5 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText4 ; 0x559e TextBeforeBattle
-	dw Route24AfterBattleText4 ; 0x55a8 TextAfterBattle
-	dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
-	dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
-
-Route24TrainerHeader5: ; 5148b (14:548b)
-	db $6 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText5 ; 0x55ad TextBeforeBattle
-	dw Route24AfterBattleText5 ; 0x55b7 TextAfterBattle
-	dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
-	dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
-
-Route24TrainerHeader6: ; 51497 (14:5497)
-	db $7 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ef ; flag's byte
-	dw Route24BattleText6 ; 0x55bc TextBeforeBattle
-	dw Route24AfterBattleText6 ; 0x55c6 TextAfterBattle
-	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
-	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
-
-	db $ff
-
-Route24Text1: ; 514a4 (14:54a4)
-	db $8
-	ld hl, $d7f0
-	res 1, [hl]
-	ld a, [$d7ef]
-	bit 0, a
-	jr nz, .asm_a03f5 ; 0x514af $48
-	ld hl, UnnamedText_51510
-	call PrintText
-	ld bc, (NUGGET << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d7ef
-	set 0, [hl]
-	ld hl, UnnamedText_5151a
-	call PrintText
-	ld hl, UnnamedText_51526
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_5152b
-	ld de, UnnamedText_5152b
-	call PreBattleSaveRegisters
-	ld a, [$ff8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $3
-	ld [W_ROUTE24CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jp TextScriptEnd
-.asm_a03f5 ; 0x514f9
-	ld hl, UnnamedText_51530
-	call PrintText
-	jp TextScriptEnd
-.BagFull
-	ld hl, UnnamedText_51521
-	call PrintText
-	ld hl, $d7f0
-	set 1, [hl]
-	jp TextScriptEnd
-
-UnnamedText_51510: ; 51510 (14:5510)
-	TX_FAR _UnnamedText_51510 ; 0x92721
-	db $0B
-	TX_FAR _UnnamedText_51515 ; 0x92755
-	db "@"
-
-UnnamedText_5151a: ; 5151a (14:551a)
-	TX_FAR _UnnamedText_5151a ; 0x92779
-	db $0B, $6, "@"
-
-UnnamedText_51521: ; 51521 (14:5521)
-	TX_FAR _UnnamedText_51521
-	db "@"
-
-UnnamedText_51526: ; 51526 (14:5526)
-	TX_FAR _UnnamedText_51526
-	db "@"
-
-UnnamedText_5152b: ; 5152b (14:552b)
-	TX_FAR _UnnamedText_5152b
-	db "@"
-
-UnnamedText_51530: ; 51530 (14:5530)
-	TX_FAR _UnnamedText_51530
-	db "@"
-
-Route24Text2: ; 51535 (14:5535)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24Text3: ; 5153f (14:553f)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24Text4: ; 51549 (14:5549)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24Text5: ; 51553 (14:5553)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24Text6: ; 5155d (14:555d)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24Text7: ; 51567 (14:5567)
-	db $08 ; asm
-	ld hl, Route24TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route24BattleText1: ; 51571 (14:5571)
-	TX_FAR _Route24BattleText1
-	db "@"
-
-Route24EndBattleText1: ; 51576 (14:5576)
-	TX_FAR _Route24EndBattleText1
-	db "@"
-
-Route24AfterBattleText1: ; 5157b (14:557b)
-	TX_FAR _Route24AfterBattleText1
-	db "@"
-
-Route24BattleText2: ; 51580 (14:5580)
-	TX_FAR _Route24BattleText2
-	db "@"
-
-Route24EndBattleText2: ; 51585 (14:5585)
-	TX_FAR _Route24EndBattleText2
-	db "@"
-
-Route24AfterBattleText2: ; 5158a (14:558a)
-	TX_FAR _Route24AfterBattleText2
-	db "@"
-
-Route24BattleText3: ; 5158f (14:558f)
-	TX_FAR _Route24BattleText3
-	db "@"
-
-Route24EndBattleText3: ; 51594 (14:5594)
-	TX_FAR _Route24EndBattleText3
-	db "@"
-
-Route24AfterBattleText3: ; 51599 (14:5599)
-	TX_FAR _Route24AfterBattleText3
-	db "@"
-
-Route24BattleText4: ; 5159e (14:559e)
-	TX_FAR _Route24BattleText4
-	db "@"
-
-Route24EndBattleText4: ; 515a3 (14:55a3)
-	TX_FAR _Route24EndBattleText4
-	db "@"
-
-Route24AfterBattleText4: ; 515a8 (14:55a8)
-	TX_FAR _Route24AfterBattleText4
-	db "@"
-
-Route24BattleText5: ; 515ad (14:55ad)
-	TX_FAR _Route24BattleText5
-	db "@"
-
-Route24EndBattleText5: ; 515b2 (14:55b2)
-	TX_FAR _Route24EndBattleText5
-	db "@"
-
-Route24AfterBattleText5: ; 515b7 (14:55b7)
-	TX_FAR _Route24AfterBattleText5
-	db "@"
-
-Route24BattleText6: ; 515bc (14:55bc)
-	TX_FAR _Route24BattleText6
-	db "@"
-
-Route24EndBattleText6: ; 515c1 (14:55c1)
-	TX_FAR _Route24EndBattleText6
-	db "@"
-
-Route24AfterBattleText6: ; 515c6 (14:55c6)
-	TX_FAR _Route24AfterBattleText6
-	db "@"
-
-Route25Script: ; 515cb (14:55cb)
-	call Route25Script_515e1
-	call EnableAutoTextBoxDrawing
-	ld hl, Route25TrainerHeaders
-	ld de, Route25ScriptPointers
-	ld a, [W_ROUTE25CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE25CURSCRIPT], a
-	ret
-
-Route25Script_515e1: ; 515e1 (14:55e1)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	ret z
-	ld hl, $d7f2
-	bit 7, [hl]
-	ret nz
-	bit 5, [hl]
-	jr nz, .asm_515ff
-	res 6, [hl]
-	ld a, $61
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-.asm_515ff
-	bit 4, [hl]
-	ret z
-	set 7, [hl]
-	ld a, $24
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $62
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $63
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-
-Route25ScriptPointers: ; 51622 (14:5622)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route25TextPointers: ; 51628 (14:5628)
-	dw Route25Text1
-	dw Route25Text2
-	dw Route25Text3
-	dw Route25Text4
-	dw Route25Text5
-	dw Route25Text6
-	dw Route25Text7
-	dw Route25Text8
-	dw Route25Text9
-	dw Predef5CText
-	dw Route25Text11
-
-Route25TrainerHeaders: ; 5163e (14:563e)
-Route25TrainerHeader0: ; 5163e (14:563e)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText1 ; 0x5705 TextBeforeBattle
-	dw Route25AfterBattleText1 ; 0x570f TextAfterBattle
-	dw Route25EndBattleText1 ; 0x570a TextEndBattle
-	dw Route25EndBattleText1 ; 0x570a TextEndBattle
-
-Route25TrainerHeader2: ; 5164a (14:564a)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText2 ; 0x5714 TextBeforeBattle
-	dw Route25AfterBattleText2 ; 0x571e TextAfterBattle
-	dw Route25EndBattleText2 ; 0x5719 TextEndBattle
-	dw Route25EndBattleText2 ; 0x5719 TextEndBattle
-
-Route25TrainerHeader3: ; 51656 (14:5656)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText3 ; 0x5723 TextBeforeBattle
-	dw Route25AfterBattleText3 ; 0x572d TextAfterBattle
-	dw Route25EndBattleText3 ; 0x5728 TextEndBattle
-	dw Route25EndBattleText3 ; 0x5728 TextEndBattle
-
-Route25TrainerHeader4: ; 51662 (14:5662)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText4 ; 0x5732 TextBeforeBattle
-	dw Route25AfterBattleText4 ; 0x573c TextAfterBattle
-	dw Route25EndBattleText4 ; 0x5737 TextEndBattle
-	dw Route25EndBattleText4 ; 0x5737 TextEndBattle
-
-Route25TrainerHeader5: ; 5166e (14:566e)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText5 ; 0x5741 TextBeforeBattle
-	dw Route25AfterBattleText5 ; 0x574b TextAfterBattle
-	dw Route25EndBattleText5 ; 0x5746 TextEndBattle
-	dw Route25EndBattleText5 ; 0x5746 TextEndBattle
-
-Route25TrainerHeader6: ; 5167a (14:567a)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText6 ; 0x5750 TextBeforeBattle
-	dw Route25AfterBattleText6 ; 0x575a TextAfterBattle
-	dw Route25EndBattleText6 ; 0x5755 TextEndBattle
-	dw Route25EndBattleText6 ; 0x5755 TextEndBattle
-
-Route25TrainerHeader7: ; 51686 (14:5686)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText7 ; 0x575f TextBeforeBattle
-	dw Route25AfterBattleText7 ; 0x5769 TextAfterBattle
-	dw Route25EndBattleText7 ; 0x5764 TextEndBattle
-	dw Route25EndBattleText7 ; 0x5764 TextEndBattle
-
-Route25TrainerHeader8: ; 51692 (14:5692)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText8 ; 0x576e TextBeforeBattle
-	dw Route25AfterBattleText8 ; 0x5778 TextAfterBattle
-	dw Route25EndBattleText8 ; 0x5773 TextEndBattle
-	dw Route25EndBattleText8 ; 0x5773 TextEndBattle
-
-Route25TrainerHeader9: ; 5169e (14:569e)
-	db $9 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7f1 ; flag's byte
-	dw Route25BattleText9 ; 0x577d TextBeforeBattle
-	dw Route25AfterBattleText9 ; 0x5787 TextAfterBattle
-	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
-	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
-
-	db $ff
-
-Route25Text1: ; 516ab (14:56ab)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text2: ; 516b5 (14:56b5)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text3: ; 516bf (14:56bf)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text4: ; 516c9 (14:56c9)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text5: ; 516d3 (14:56d3)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text6: ; 516dd (14:56dd)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text7: ; 516e7 (14:56e7)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text8: ; 516f1 (14:56f1)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25Text9: ; 516fb (14:56fb)
-	db $08 ; asm
-	ld hl, Route25TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route25BattleText1: ; 51705 (14:5705)
-	TX_FAR _Route25BattleText1
-	db "@"
-
-Route25EndBattleText1: ; 5170a (14:570a)
-	TX_FAR _Route25EndBattleText1
-	db "@"
-
-Route25AfterBattleText1: ; 5170f (14:570f)
-	TX_FAR _Route25AfterBattleText1
-	db "@"
-
-Route25BattleText2: ; 51714 (14:5714)
-	TX_FAR _Route25BattleText2
-	db "@"
-
-Route25EndBattleText2: ; 51719 (14:5719)
-	TX_FAR _Route25EndBattleText2
-	db "@"
-
-Route25AfterBattleText2: ; 5171e (14:571e)
-	TX_FAR _Route25AfterBattleText2
-	db "@"
-
-Route25BattleText3: ; 51723 (14:5723)
-	TX_FAR _Route25BattleText3
-	db "@"
-
-Route25EndBattleText3: ; 51728 (14:5728)
-	TX_FAR _Route25EndBattleText3
-	db "@"
-
-Route25AfterBattleText3: ; 5172d (14:572d)
-	TX_FAR _Route25AfterBattleText3
-	db "@"
-
-Route25BattleText4: ; 51732 (14:5732)
-	TX_FAR _Route25BattleText4
-	db "@"
-
-Route25EndBattleText4: ; 51737 (14:5737)
-	TX_FAR _Route25EndBattleText4
-	db "@"
-
-Route25AfterBattleText4: ; 5173c (14:573c)
-	TX_FAR _Route25AfterBattleText4
-	db "@"
-
-Route25BattleText5: ; 51741 (14:5741)
-	TX_FAR _Route25BattleText5
-	db "@"
-
-Route25EndBattleText5: ; 51746 (14:5746)
-	TX_FAR _Route25EndBattleText5
-	db "@"
-
-Route25AfterBattleText5: ; 5174b (14:574b)
-	TX_FAR _Route25AfterBattleText5
-	db "@"
-
-Route25BattleText6: ; 51750 (14:5750)
-	TX_FAR _Route25BattleText6
-	db "@"
-
-Route25EndBattleText6: ; 51755 (14:5755)
-	TX_FAR _Route25EndBattleText6
-	db "@"
-
-Route25AfterBattleText6: ; 5175a (14:575a)
-	TX_FAR _Route25AfterBattleText6
-	db "@"
-
-Route25BattleText7: ; 5175f (14:575f)
-	TX_FAR _Route25BattleText7
-	db "@"
-
-Route25EndBattleText7: ; 51764 (14:5764)
-	TX_FAR _Route25EndBattleText7
-	db "@"
-
-Route25AfterBattleText7: ; 51769 (14:5769)
-	TX_FAR _Route25AfterBattleText7
-	db "@"
-
-Route25BattleText8: ; 5176e (14:576e)
-	TX_FAR _Route25BattleText8
-	db "@"
-
-Route25EndBattleText8: ; 51773 (14:5773)
-	TX_FAR _Route25EndBattleText8
-	db "@"
-
-Route25AfterBattleText8: ; 51778 (14:5778)
-	TX_FAR _Route25AfterBattleText8
-	db "@"
-
-Route25BattleText9: ; 5177d (14:577d)
-	TX_FAR _Route25BattleText9
-	db "@"
-
-Route25EndBattleText9: ; 51782 (14:5782)
-	TX_FAR _Route25EndBattleText9
-	db "@"
-
-Route25AfterBattleText9: ; 51787 (14:5787)
-	TX_FAR _Route25AfterBattleText9
-	db "@"
-
-Route25Text11: ; 5178c (14:578c)
-	TX_FAR _Route25Text11
-	db "@"
-
 INCLUDE "data/mapHeaders/victoryroad2.asm"
 
-VictoryRoad2Script: ; 5179d (14:579d)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, VictoryRoad2Script_517c4
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	call nz, Func_517c9
-	call EnableAutoTextBoxDrawing
-	ld hl, VictoryRoad2TrainerHeaders
-	ld de, VictoryRoad2ScriptPointers
-	ld a, [W_VICTORYROAD2CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VICTORYROAD2CURSCRIPT], a
-	ret
+INCLUDE "scripts/victoryroad2.asm"
 
-VictoryRoad2Script_517c4: ; 517c4 (14:57c4)
-	ld hl, $d869
-	res 7, [hl]
-
-Func_517c9: ; 517c9 (14:57c9)
-	ld a, [$d7ee]
-	bit 0, a
-	jr z, .asm_517da
-	push af
-	ld a, $15
-	ld bc, $403
-	call Func_517e2
-	pop af
-.asm_517da
-	bit 7, a
-	ret z
-	ld a, $1d
-	ld bc, $70b
-
-Func_517e2: ; 517e2 (14:57e2)
-	ld [$d09f], a
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	ret
-
-VictoryRoad2ScriptPointers: ; 517eb (14:57eb)
-	dw VictoryRoad2Script0
-	dw Func_324c
-	dw EndTrainerBattle
-
-VictoryRoad2Script0: ; 517f1 (14:57f1)
-	ld hl, CoordsData_51816 ; $5816
-	call CheckBoulderCoords
-	jp nc, CheckFightingMapTrainers
-	ld hl, $d7ee
-	ld a, [wWhichTrade] ; $cd3d
-	cp $2
-	jr z, .asm_5180b
-	bit 0, [hl]
-	set 0, [hl]
-	ret nz
-	jr .asm_51810
-.asm_5180b
-	bit 7, [hl]
-	set 7, [hl]
-	ret nz
-.asm_51810
-	ld hl, $d126
-	set 5, [hl]
-	ret
-
-CoordsData_51816: ; 51816 (14:5816)
-	db $10,$01
-	db $10,$09
-	db $FF
-
-VictoryRoad2TextPointers: ; 5181b (14:581b)
-	dw VictoryRoad2Text1
-	dw VictoryRoad2Text2
-	dw VictoryRoad2Text3
-	dw VictoryRoad2Text4
-	dw VictoryRoad2Text5
-	dw VictoryRoad2Text6
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-
-VictoryRoad2TrainerHeaders: ; 51835 (14:5835)
-VictoryRoad2TrainerHeader0: ; 51835 (14:5835)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText1 ; 0x58ca TextBeforeBattle
-	dw VictoryRoad2AfterBattleText1 ; 0x58d4 TextAfterBattle
-	dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
-	dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
-
-VictoryRoad2TrainerHeader2: ; 51841 (14:5841)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText2 ; 0x58d9 TextBeforeBattle
-	dw VictoryRoad2AfterBattleText2 ; 0x58e3 TextAfterBattle
-	dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
-	dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
-
-VictoryRoad2TrainerHeader3: ; 5184d (14:584d)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText3 ; 0x58e8 TextBeforeBattle
-	dw VictoryRoad2AfterBattleText3 ; 0x58f2 TextAfterBattle
-	dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
-	dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
-
-VictoryRoad2TrainerHeader4: ; 51859 (14:5859)
-	db $4 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText4 ; 0x58f7 TextBeforeBattle
-	dw VictoryRoad2AfterBattleText4 ; 0x5901 TextAfterBattle
-	dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
-	dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
-
-VictoryRoad2TrainerHeader5: ; 51865 (14:5865)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText5 ; 0x5906 TextBeforeBattle
-	dw VictoryRoad2AfterBattleText5 ; 0x5910 TextAfterBattle
-	dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
-	dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
-
-VictoryRoad2TrainerHeader6: ; 51871 (14:5871)
-	db $6 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7ee ; flag's byte
-	dw VictoryRoad2BattleText6 ; 0x58ba TextBeforeBattle
-	dw VictoryRoad2BattleText6 ; 0x58ba TextAfterBattle
-	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
-	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
-
-	db $ff
-
-VictoryRoad2Text1: ; 5187e (14:587e)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2Text2: ; 51888 (14:5888)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2Text3: ; 51892 (14:5892)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2Text4: ; 5189c (14:589c)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2Text5: ; 518a6 (14:58a6)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2Text6: ; 518b0 (14:58b0)
-	db $08 ; asm
-	ld hl, VictoryRoad2TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad2BattleText6: ; 518ba (14:58ba)
-	TX_FAR _VictoryRoad2BattleText6
-	db $8
-	ld a, MOLTRES
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-VictoryRoad2BattleText1: ; 518ca (14:58ca)
-	TX_FAR _VictoryRoad2BattleText1
-	db "@"
-
-VictoryRoad2EndBattleText1: ; 518cf (14:58cf)
-	TX_FAR _VictoryRoad2EndBattleText1
-	db "@"
-
-VictoryRoad2AfterBattleText1: ; 518d4 (14:58d4)
-	TX_FAR _VictoryRoad2AfterBattleText1
-	db "@"
-
-VictoryRoad2BattleText2: ; 518d9 (14:58d9)
-	TX_FAR _VictoryRoad2BattleText2
-	db "@"
-
-VictoryRoad2EndBattleText2: ; 518de (14:58de)
-	TX_FAR _VictoryRoad2EndBattleText2
-	db "@"
-
-VictoryRoad2AfterBattleText2: ; 518e3 (14:58e3)
-	TX_FAR _VictoryRoad2AfterBattleText2
-	db "@"
-
-VictoryRoad2BattleText3: ; 518e8 (14:58e8)
-	TX_FAR _VictoryRoad2BattleText3
-	db "@"
-
-VictoryRoad2EndBattleText3: ; 518ed (14:58ed)
-	TX_FAR _VictoryRoad2EndBattleText3
-	db "@"
-
-VictoryRoad2AfterBattleText3: ; 518f2 (14:58f2)
-	TX_FAR _VictoryRoad2AfterBattleText3
-	db "@"
-
-VictoryRoad2BattleText4: ; 518f7 (14:58f7)
-	TX_FAR _VictoryRoad2BattleText4
-	db "@"
-
-VictoryRoad2EndBattleText4: ; 518fc (14:58fc)
-	TX_FAR _VictoryRoad2EndBattleText4
-	db "@"
-
-VictoryRoad2AfterBattleText4: ; 51901 (14:5901)
-	TX_FAR _VictoryRoad2AfterBattleText4
-	db "@"
-
-VictoryRoad2BattleText5: ; 51906 (14:5906)
-	TX_FAR _VictoryRoad2BattleText5
-	db "@"
-
-VictoryRoad2EndBattleText5: ; 5190b (14:590b)
-	TX_FAR _VictoryRoad2EndBattleText5
-	db "@"
-
-VictoryRoad2AfterBattleText5: ; 51910 (14:5910)
-	TX_FAR _VictoryRoad2AfterBattleText5
-	db "@"
-
 INCLUDE "data/mapObjects/victoryroad2.asm"
 
 VictoryRoad2Blocks: ; 519af (14:59af)
@@ -61074,17 +47137,8 @@
 
 INCLUDE "data/mapHeaders/mtmoon2.asm"
 
-MtMoon2Script: ; 51a42 (14:5a42)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/mtmoon2.asm"
 
-MtMoon2TextPointers: ; 51a46 (14:5a46)
-	dw MtMoonText1
-
-MtMoonText1: ; 51a48 (14:5a48)
-	TX_FAR _UnnamedText_51a48
-	db "@"
-
 INCLUDE "data/mapObjects/mtmoon2.asm"
 
 MtMoon2Blocks: ; 51a91 (14:5a91)
@@ -61092,532 +47146,8 @@
 
 INCLUDE "data/mapHeaders/silphco7.asm"
 
-SilphCo7Script: ; 51b61 (14:5b61)
-	call SilphCo7Script_51b77
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo7TrainerHeaders
-	ld de, SilphCo7ScriptPointers
-	ld a, [W_SILPHCO7CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO7CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco7.asm"
 
-SilphCo7Script_51b77: ; 51b77 (14:5b77)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_51bc1 ; $5bc1
-	call Func_51bc8
-	call Func_51bf4
-	ld a, [$d830]
-	bit 4, a
-	jr nz, .asm_51b9e
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $305
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_51b9e
-	bit 5, a
-	jr nz, .asm_51bb1
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $20a
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_51bb1
-	bit 6, a
-	ret nz
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $60a
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_51bc1: ; 51bc1 (14:5bc1)
-	db $03,$05,$02,$0A,$06,$0A,$FF
-
-Func_51bc8: ; 51bc8 (14:5bc8)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_51bd4
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_51bf0
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_51be5
-	inc hl
-	jr .asm_51bd4
-.asm_51be5
-	ld a, [hli]
-	cp c
-	jr nz, .asm_51bd4
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_51bf0
-	xor a
-	ld [$ffe0], a
-	ret
-
-Func_51bf4: ; 51bf4 (14:5bf4)
-	ld hl, $d830
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_51c02
-	set 4, [hl]
-	ret
-.asm_51c02
-	cp $2
-	jr nz, .asm_51c09
-	set 5, [hl]
-	ret
-.asm_51c09
-	set 6, [hl]
-	ret
-
-Func_51c0c: ; 51c0c (14:5c0c)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_51c10: ; 51c10 (14:5c10)
-	ld [W_SILPHCO7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-SilphCo7ScriptPointers: ; 51c17 (14:5c17)
-	dw SilphCo7Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw SilphCo7Script3
-	dw SilphCo7Script4
-	dw SilphCo7Script5
-
-SilphCo7Script0: ; 51c23 (14:5c23)
-	ld a, [$d82f]
-	bit 0, a
-	jp nz, CheckFightingMapTrainers
-	ld hl, CoordsData_51c78
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $4
-	ld [$d528], a
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call SetSpriteMovementBytesToFF
-	ld de, MovementData_51c7d
-	ld a, [wWhichTrade] ; $cd3d
-	ld [$cf0d], a
-	cp $1
-	jr z, .asm_51c6c
-	inc de
-.asm_51c6c
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call MoveSprite
-	ld a, $3
-	jp Func_51c10
-
-CoordsData_51c78: ; 51c78 (14:5c78)
-	db $02,$03
-	db $03,$03
-	db $FF
-
-MovementData_51c7d: ; 51c7d (14:5c7d)
-	db $40,$40,$40,$40,$FF
-
-SilphCo7Script3: ; 51c82 (14:5c82)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $d
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	call Delay3
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, SilphCo7Text14 ; $5ec8
-	ld de, UnnamedText_51ecd ; $5ecd
-	call PreBattleSaveRegisters
-	ld a, SONY2 + $c8
-	ld [W_CUROPPONENT], a ; $d059
-	ld a, [W_RIVALSTARTER] ; $d715
-	cp SQUIRTLE
-	jr nz, .asm_51cb6
-	ld a, $7
-	jr .asm_51cc0
-.asm_51cb6
-	cp BULBASAUR
-	jr nz, .asm_51cbe
-	ld a, $8
-	jr .asm_51cc0
-.asm_51cbe
-	ld a, $9
-.asm_51cc0
-	ld [W_TRAINERNO], a ; $d05d
-	ld a, $4
-	jp Func_51c10
-
-SilphCo7Script4: ; 51cc8 (14:5cc8)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_51c0c
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d82f
-	set 0, [hl]
-	ld a, $4
-	ld [$d528], a
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	ld a, $4
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $f
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld de, MovementData_51d1d
-	ld a, [$cf0d]
-	cp $1
-	jr nz, .asm_51d0e
-	ld de, MovementData_51d1a
-.asm_51d0e
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call MoveSprite
-	ld a, $5
-	jp Func_51c10
-
-MovementData_51d1a: ; 51d1a (14:5d1a)
-	db $C0,$C0,$FF
-
-MovementData_51d1d: ; 51d1d (14:5d1d)
-	db $80,$40,$40,$C0,$C0,$C0,$00,$FF
-
-SilphCo7Script5: ; 51d25 (14:5d25)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $a7
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	call Func_2307
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	jp Func_51c10
-
-SilphCo7TextPointers: ; 51d3f (14:5d3f)
-	dw SilphCo7Text1
-	dw SilphCo7Text2
-	dw SilphCo7Text3
-	dw SilphCo7Text4
-	dw SilphCo7Text5
-	dw SilphCo7Text6
-	dw SilphCo7Text7
-	dw SilphCo7Text8
-	dw SilphCo7Text9
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw SilphCo7Text13
-	dw SilphCo7Text14
-	dw SilphCo7Text15
-
-SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
-SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d82f ; flag's byte
-	dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle
-	dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle
-	dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
-	dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
-
-SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d82f ; flag's byte
-	dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle
-	dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle
-	dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
-	dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
-
-SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d82f ; flag's byte
-	dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle
-	dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle
-	dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
-	dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
-
-SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
-	db $8 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d82f ; flag's byte
-	dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle
-	dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle
-	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
-	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
-
-	db $ff
-
-SilphCo7Text1:
-; lapras guy
-	db $08 ; asm
-	ld a, [$d72e]
-	bit 0, a ; got lapras?
-	jr z, .givelapras
-	ld a, [$d838]
-	bit 7, a ; saved silph?
-	jr nz, .savedsilph
-	ld hl, .LaprasGuyText
-	call PrintText
-	jr .done
-.givelapras
-	ld hl, .MeetLaprasGuyText
-	call PrintText
-	ld bc, (LAPRAS << 8) | 15
-	call GivePokemon
-	jr nc, .done
-	ld a, [$ccd3]
-	and a
-	call z, WaitForTextScrollButtonPress
-	call EnableAutoTextBoxDrawing
-	ld hl, .HeresYourLaprasText
-	call PrintText
-	ld hl, $d72e
-	set 0, [hl]
-	jr .done
-.savedsilph
-	ld hl, .LaprasGuySavedText
-	call PrintText
-.done
-	jp TextScriptEnd
-
-.MeetLaprasGuyText
-	TX_FAR _MeetLaprasGuyText
-	db "@"
-
-.HeresYourLaprasText
-	TX_FAR _HeresYourLaprasText
-	db "@"
-
-.LaprasGuyText
-	TX_FAR _LaprasGuyText
-	db "@"
-
-.LaprasGuySavedText
-	TX_FAR _LaprasGuySavedText
-	db "@"
-
-SilphCo7Text2:
-	db $8
-	ld a, [$d838]
-	bit 7, a ; saved silph?
-	jr nz, .savedsilph
-	ld hl, .rockettext
-	call PrintText
-	jr .done
-.savedsilph
-	ld hl, .savedtext
-	call PrintText
-.done
-	jp TextScriptEnd
-
-.rockettext
-	TX_FAR _UnnamedText_51e00
-	db "@"
-
-.savedtext
-	TX_FAR _CanceledMasterBallText
-	db "@"
-
-SilphCo7Text3:
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a ; saved silph?
-	jr nz, .savedsilph
-	ld hl, .rockettext
-	call PrintText
-	jr .done
-.savedsilph
-	ld hl, .savedtext
-	call PrintText
-.done
-	jp TextScriptEnd
-
-.rockettext
-	TX_FAR _UnnamedText_51e23
-	db "@"
-
-.savedtext
-	TX_FAR _UnnamedText_51e28
-	db "@"
-
-SilphCo7Text4:
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a ; saved silph?
-	jr nz, .savedsilph
-	ld hl, .rockettext
-	call PrintText
-	jr .done
-.savedsilph
-	ld hl, .savedtext
-	call PrintText
-.done
-	jp TextScriptEnd
-
-.rockettext
-	TX_FAR _UnnamedText_51e46
-	db "@"
-
-.savedtext
-	TX_FAR _UnnamedText_51e4b
-	db "@"
-
-SilphCo7Text5: ; 51e50 (14:5e50)
-	db $08 ; asm
-	ld hl, SilphCo7TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo7BattleText1: ; 51e5a (14:5e5a)
-	TX_FAR _SilphCo7BattleText1
-	db "@"
-
-SilphCo7EndBattleText1: ; 51e5f (14:5e5f)
-	TX_FAR _SilphCo7EndBattleText1
-	db "@"
-
-SilphCo7AfterBattleText1: ; 51e64 (14:5e64)
-	TX_FAR _SilphCo7AfterBattleText1
-	db "@"
-
-SilphCo7Text6: ; 51e69 (14:5e69)
-	db $08 ; asm
-	ld hl, SilphCo7TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo7BattleText2: ; 51e73 (14:5e73)
-	TX_FAR _SilphCo7BattleText2
-	db "@"
-
-SilphCo7EndBattleText2: ; 51e78 (14:5e78)
-	TX_FAR _SilphCo7EndBattleText2
-	db "@"
-
-SilphCo7AfterBattleText2: ; 51e7d (14:5e7d)
-	TX_FAR _SilphCo7AfterBattleText2
-	db "@"
-
-SilphCo7Text7: ; 51e82 (14:5e82)
-	db $08 ; asm
-	ld hl, SilphCo7TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo7BattleText3: ; 51e8c (14:5e8c)
-	TX_FAR _SilphCo7BattleText3
-	db "@"
-
-SilphCo7EndBattleText3: ; 51e91 (14:5e91)
-	TX_FAR _SilphCo7EndBattleText3
-	db "@"
-
-SilphCo7AfterBattleText3: ; 51e96 (14:5e96)
-	TX_FAR _SilphCo7AfterBattleText3
-	db "@"
-
-SilphCo7Text8: ; 51e9b (14:5e9b)
-	db $08 ; asm
-	ld hl, SilphCo7TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo7BattleText4: ; 51ea5 (14:5ea5)
-	TX_FAR _SilphCo7BattleText4
-	db "@"
-
-SilphCo7EndBattleText4: ; 51eaa (14:5eaa)
-	TX_FAR _SilphCo7EndBattleText4
-	db "@"
-
-SilphCo7AfterBattleText4: ; 51eaf (14:5eaf)
-	TX_FAR _SilphCo7AfterBattleText4
-	db "@"
-
-SilphCo7Text9: ; 51eb4 (14:5eb4)
-	db $08 ; asm
-	ld hl, UnnamedText_51ebe
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_51ebe: ; 51ebe (14:5ebe)
-	TX_FAR _UnnamedText_51ebe
-	db "@"
-
-SilphCo7Text13: ; 51ec3 (14:5ec3)
-	TX_FAR _UnnamedText_51ec3
-	db "@"
-
-SilphCo7Text14: ; 51ec8 (14:5ec8)
-	TX_FAR _UnnamedText_51ec8
-	db "@"
-
-UnnamedText_51ecd: ; 51ecd (14:5ecd)
-	TX_FAR _UnnamedText_51ecd
-	db "@"
-
-SilphCo7Text15: ; 51ed2 (14:5ed2)
-	TX_FAR _UnnamedText_51ed2
-	db "@"
-
 INCLUDE "data/mapObjects/silphco7.asm"
 
 SilphCo7Blocks: ; 51f57 (14:5f57)
@@ -61625,152 +47155,8 @@
 
 INCLUDE "data/mapHeaders/mansion2.asm"
 
-Mansion2Script: ; 51fd8 (14:5fd8)
-	call Mansion2Script_51fee
-	call EnableAutoTextBoxDrawing
-	ld hl, Mansion2TrainerHeaders
-	ld de, Mansion2ScriptPointers
-	ld a, [W_MANSION2CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MANSION2CURSCRIPT], a
-	ret
+INCLUDE "scripts/mansion2.asm"
 
-Mansion2Script_51fee: ; 51fee (14:5fee)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d796]
-	bit 0, a
-	jr nz, .asm_52016
-	ld a, $e
-	ld bc, $204
-	call Func_5202f
-	ld a, $54
-	ld bc, $409
-	call Func_5202f
-	ld a, $5f
-	ld bc, $b03
-	call Func_5202f
-	ret
-.asm_52016
-	ld a, $5f
-	ld bc, $204
-	call Func_5202f
-	ld a, $e
-	ld bc, $409
-	call Func_5202f
-	ld a, $e
-	ld bc, $b03
-	call Func_5202f
-	ret
-
-Func_5202f: ; 5202f (14:602f)
-	ld [$d09f], a
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-Func_52037: ; 52037 (14:6037)
-	ld a, [$c109]
-	cp $4
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $5
-	ld [H_SPRITEHEIGHT], a
-	jp DisplayTextID
-
-Mansion2ScriptPointers: ; 52047 (14:6047)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Mansion2TextPointers: ; 5204d (14:604d)
-	dw Mansion2Text1
-	dw Predef5CText
-	dw Mansion2Text3
-	dw Mansion2Text4
-	dw Mansion2Text5
-
-Mansion2TrainerHeaders: ; 52057 (14:6057)
-Mansion2TrainerHeader0: ; 52057 (14:6057)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d847 ; flag's byte
-	dw Mansion2BattleText1 ; 0x606e TextBeforeBattle
-	dw Mansion2AfterBattleText1 ; 0x6078 TextAfterBattle
-	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
-	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
-
-	db $ff
-
-Mansion2Text1: ; 52064 (14:6064)
-	db $08 ; asm
-	ld hl, Mansion2TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion2BattleText1: ; 5206e (14:606e)
-	TX_FAR _Mansion2BattleText1
-	db "@"
-
-Mansion2EndBattleText1: ; 52073 (14:6073)
-	TX_FAR _Mansion2EndBattleText1
-	db "@"
-
-Mansion2AfterBattleText1: ; 52078 (14:6078)
-	TX_FAR _Mansion2AfterBattleText1
-	db "@"
-
-Mansion2Text3: ; 5207d (14:607d)
-	TX_FAR _Mansion2Text3
-	db "@"
-
-Mansion2Text4: ; 52082 (14:6082)
-	TX_FAR _Mansion2Text4
-	db "@"
-
-Mansion3Text6: ; 52087 (14:6087)
-Mansion2Text5: ; 52087 (14:6087)
-	db $8
-	ld hl, UnnamedText_520c2
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_520b9 ; 0x52095 $22
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, $d126
-	set 5, [hl]
-	ld hl, UnnamedText_520c7
-	call PrintText
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	ld hl, $d796
-	bit 0, [hl]
-	set 0, [hl]
-	jr z, .asm_520bf ; 0x520b3 $a
-	res 0, [hl]
-	jr .asm_520bf ; 0x520b7 $6
-.asm_520b9
-	ld hl, UnnamedText_520cc
-	call PrintText
-.asm_520bf
-	jp TextScriptEnd
-
-UnnamedText_520c2: ; 520c2 (14:60c2)
-	TX_FAR _UnnamedText_520c2
-	db "@"
-
-UnnamedText_520c7: ; 520c7 (14:60c7)
-	TX_FAR _UnnamedText_520c7
-	db "@"
-
-UnnamedText_520cc: ; 520cc (14:60cc)
-	TX_FAR _UnnamedText_520cc
-	db "@"
-
 INCLUDE "data/mapObjects/mansion2.asm"
 
 Mansion2Blocks: ; 52110 (14:6110)
@@ -61778,160 +47164,8 @@
 
 INCLUDE "data/mapHeaders/mansion3.asm"
 
-Mansion3Script: ; 521ee (14:61ee)
-	call Mansion3Script_52204
-	call EnableAutoTextBoxDrawing
-	ld hl, Mansion3TrainerHeader0
-	ld de, Mansion3ScriptPointers
-	ld a, [W_MANSION3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MANSION3CURSCRIPT], a
-	ret
+INCLUDE "scripts/mansion3.asm"
 
-Mansion3Script_52204: ; 52204 (14:6204)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d796]
-	bit 0, a
-	jr nz, .asm_52224
-	ld a, $e
-	ld bc, $207
-	call Func_5202f
-	ld a, $5f
-	ld bc, $507
-	call Func_5202f
-	ret
-.asm_52224
-	ld a, $5f
-	ld bc, $207
-	call Func_5202f
-	ld a, $e
-	ld bc, $507
-	call Func_5202f
-	ret
-
-Mansion3ScriptPointers: ; 52235 (14:6235)
-	dw Mansion3Script0
-	dw Func_324c
-	dw EndTrainerBattle
-
-Mansion3Script0: ; 5223b (14:623b)
-	ld hl, CoordsData_52254
-	call Func_5225b
-	ld a, [$d71e]
-	and a
-	jp z, CheckFightingMapTrainers
-	cp $3
-	ld a, $a5
-	jr nz, .asm_52250
-	ld a, $d6
-.asm_52250
-	ld [$d71d], a
-	ret
-
-CoordsData_52254: ; 52254 (14:6254)
-	db $0E,$10
-	db $0E,$11
-	db $0E,$13
-	db $FF
-
-Func_5225b: ; 5225b (14:625b)
-	xor a
-	ld [$d71e], a
-	ld a, [$d72d]
-	bit 4, a
-	ret nz
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, [wWhichTrade] ; $cd3d
-	ld [$d71e], a
-	ld hl, $d72d
-	set 4, [hl]
-	ld hl, $d732
-	set 4, [hl]
-	ret
-
-Func_5227a: ; 5227a (14:627a)
-	ld a, [$c109]
-	cp $4
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-Mansion3TextPointers: ; 5228a (14:628a)
-	dw Mansion3Text1
-	dw Mansion3Text2
-	dw Predef5CText
-	dw Predef5CText
-	dw Mansion3Text5
-	dw Mansion3Text6
-
-Mansion3TrainerHeaders: ; 52296 (14:6296)
-Mansion3TrainerHeader0: ; 52296 (14:6296)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d849 ; flag's byte
-	dw Mansion3BattleText1 ; 0x62c3 TextBeforeBattle
-	dw Mansion3AfterBattleText1 ; 0x62cd TextAfterBattle
-	dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
-	dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
-
-Mansion3TrainerHeader2: ; 522a2 (14:62a2)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d849 ; flag's byte
-	dw Mansion3BattleText2 ; 0x62d2 TextBeforeBattle
-	dw Mansion3AfterBattleText2 ; 0x62dc TextAfterBattle
-	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
-	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
-
-	db $ff
-
-Mansion3Text1: ; 522af (14:62af)
-	db $08 ; asm
-	ld hl, Mansion3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion3Text2: ; 522b9 (14:62b9)
-	db $08 ; asm
-	ld hl, Mansion3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion3BattleText1: ; 522c3 (14:62c3)
-	TX_FAR _Mansion3BattleText1
-	db "@"
-
-Mansion3EndBattleText1: ; 522c8 (14:62c8)
-	TX_FAR _Mansion3EndBattleText1
-	db "@"
-
-Mansion3AfterBattleText1: ; 522cd (14:62cd)
-	TX_FAR _Mansion3AfterBattleText1
-	db "@"
-
-Mansion3BattleText2: ; 522d2 (14:62d2)
-	TX_FAR _Mansion3BattleText2
-	db "@"
-
-Mansion3EndBattleText2: ; 522d7 (14:62d7)
-	TX_FAR _Mansion3EndBattleText2
-	db "@"
-
-Mansion3AfterBattleText2: ; 522dc (14:62dc)
-	TX_FAR _Mansion3AfterBattleText2
-	db "@"
-
-Mansion3Text5: ; 522e1 (14:62e1)
-	TX_FAR _Mansion3Text5
-	db "@"
-
 INCLUDE "data/mapObjects/mansion3.asm"
 
 Mansion3Blocks: ; 52326 (14:6326)
@@ -61939,139 +47173,8 @@
 
 INCLUDE "data/mapHeaders/mansion4.asm"
 
-Mansion4Script: ; 523b9 (14:63b9)
-	call Mansion4Script_523cf
-	call EnableAutoTextBoxDrawing
-	ld hl, Mansion4TrainerHeader0
-	ld de, Mansion4ScriptPointers
-	ld a, [W_MANSION4CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_MANSION4CURSCRIPT], a
-	ret
+INCLUDE "scripts/mansion4.asm"
 
-Mansion4Script_523cf: ; 523cf (14:63cf)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d796]
-	bit 0, a
-	jr nz, .asm_523ff
-	ld a, $e
-	ld bc, $80d
-	call Func_5202f
-	ld a, $e
-	ld bc, $b06
-	call Func_5202f
-	ld a, $5f
-	ld bc, $304
-	call Func_5202f
-	ld a, $54
-	ld bc, $808
-	call Func_5202f
-	ret
-.asm_523ff
-	ld a, $2d
-	ld bc, $80d
-	call Func_5202f
-	ld a, $5f
-	ld bc, $b06
-	call Func_5202f
-	ld a, $e
-	ld bc, $304
-	call Func_5202f
-	ld a, $e
-	ld bc, $808
-	call Func_5202f
-	ret
-
-Func_52420: ; 52420 (14:6420)
-	ld a, [$c109]
-	cp $4
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-Mansion4ScriptPointers: ; 52430 (14:6430)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Mansion4TextPointers: ; 52436 (14:6436)
-	dw Mansion4Text1
-	dw Mansion4Text2
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw Mansion4Text7
-	dw Predef5CText
-	dw Mansion3Text6
-
-Mansion4TrainerHeaders: ; 52448 (14:6448)
-Mansion4TrainerHeader0: ; 52448 (14:6448)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d84b ; flag's byte
-	dw Mansion4BattleText1 ; 0x6475 TextBeforeBattle
-	dw Mansion4AfterBattleText1 ; 0x647f TextAfterBattle
-	dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
-	dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
-
-Mansion4TrainerHeader2: ; 52454 (14:6454)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d84b ; flag's byte
-	dw Mansion4BattleText2 ; 0x6484 TextBeforeBattle
-	dw Mansion4AfterBattleText2 ; 0x648e TextAfterBattle
-	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
-	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
-
-	db $ff
-
-Mansion4Text1: ; 52461 (14:6461)
-	db $08 ; asm
-	ld hl, Mansion4TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion4Text2: ; 5246b (14:646b)
-	db $08 ; asm
-	ld hl, Mansion4TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Mansion4BattleText1: ; 52475 (14:6475)
-	TX_FAR _Mansion4BattleText1
-	db "@"
-
-Mansion4EndBattleText1: ; 5247a (14:647a)
-	TX_FAR _Mansion4EndBattleText1
-	db "@"
-
-Mansion4AfterBattleText1: ; 5247f (14:647f)
-	TX_FAR _Mansion4AfterBattleText1
-	db "@"
-
-Mansion4BattleText2: ; 52484 (14:6484)
-	TX_FAR _Mansion4BattleText2
-	db "@"
-
-Mansion4EndBattleText2: ; 52489 (14:6489)
-	TX_FAR _Mansion4EndBattleText2
-	db "@"
-
-Mansion4AfterBattleText2: ; 5248e (14:648e)
-	TX_FAR _Mansion4AfterBattleText2
-	db "@"
-
-Mansion4Text7: ; 52493 (14:6493)
-	TX_FAR _Mansion4Text7
-	db "@"
-
 INCLUDE "data/mapObjects/mansion4.asm"
 
 Mansion4Blocks: ; 524dd (14:64dd)
@@ -63190,2228 +48293,36 @@
 	db $0b
 	db "@"
 
-Route2Script: ; 554e3 (15:54e3)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route2.asm"
 
-Route2TextPointers: ; 554e6 (15:54e6)
-	dw Predef5CText
-	dw Predef5CText
-	dw Route2Text3
-	dw Route2Text4
+INCLUDE "scripts/route3.asm"
 
-Route2Text3: ; 554ee (15:54ee)
-	TX_FAR _Route2Text3
-	db "@"
+INCLUDE "scripts/route4.asm"
 
-Route2Text4: ; 554f3 (15:54f3)
-	TX_FAR _Route2Text4
-	db "@"
+INCLUDE "scripts/route5.asm"
 
-Route3Script: ; 554f8 (15:54f8)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route3TrainerHeader0
-	ld de, Route3ScriptPointers
-	ld a, [W_ROUTE3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE3CURSCRIPT], a
-	ret
+INCLUDE "scripts/route9.asm"
 
-Route3ScriptPointers: ; 5550b (15:550b)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
+INCLUDE "scripts/route13.asm"
 
-Route3TextPointers: ; 55511 (15:5511)
-	dw Route3Text1
-	dw Route3Text2
-	dw Route3Text3
-	dw Route3Text4
-	dw Route3Text5
-	dw Route3Text6
-	dw Route3Text7
-	dw Route3Text8
-	dw Route3Text9
-	dw Route3Text10
+INCLUDE "scripts/route14.asm"
 
-Route3TrainerHeaders: ; 55525 (15:5525)
-Route3TrainerHeader0: ; 55525 (15:5525)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText1 ; 0x5595 TextBeforeBattle
-	dw Route3AfterBattleText1 ; 0x559f TextAfterBattle
-	dw Route3EndBattleText1 ; 0x559a TextEndBattle
-	dw Route3EndBattleText1 ; 0x559a TextEndBattle
+INCLUDE "scripts/route17.asm"
 
-Route3TrainerHeader2: ; 55531 (15:5531)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText2 ; 0x55ae TextBeforeBattle
-	dw Route3AfterBattleText2 ; 0x55b8 TextAfterBattle
-	dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
-	dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
+INCLUDE "scripts/route19.asm"
 
-Route3TrainerHeader3: ; 5553d (15:553d)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText3 ; 0x55c7 TextBeforeBattle
-	dw Route3AfterBattleText3 ; 0x55d1 TextAfterBattle
-	dw Route3EndBattleText3 ; 0x55cc TextEndBattle
-	dw Route3EndBattleText3 ; 0x55cc TextEndBattle
+INCLUDE "scripts/route21.asm"
 
-Route3TrainerHeader4: ; 55549 (15:5549)
-	db $5 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText4 ; 0x55e0 TextBeforeBattle
-	dw Route3AfterBattleText4 ; 0x55ea TextAfterBattle
-	dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
-	dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
-
-Route3TrainerHeader5: ; 55555 (15:5555)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText5 ; 0x55f9 TextBeforeBattle
-	dw Route3AfterBattleText5 ; 0x5603 TextAfterBattle
-	dw Route3EndBattleText5 ; 0x55fe TextEndBattle
-	dw Route3EndBattleText5 ; 0x55fe TextEndBattle
-
-Route3TrainerHeader6: ; 55561 (15:5561)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText6 ; 0x5612 TextBeforeBattle
-	dw Route3AfterBattleText6 ; 0x561c TextAfterBattle
-	dw Route3EndBattleText6 ; 0x5617 TextEndBattle
-	dw Route3EndBattleText6 ; 0x5617 TextEndBattle
-
-Route3TrainerHeader7: ; 5556d (15:556d)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText7 ; 0x562b TextBeforeBattle
-	dw Route3AfterBattleText7 ; 0x5635 TextAfterBattle
-	dw Route3EndBattleText7 ; 0x5630 TextEndBattle
-	dw Route3EndBattleText7 ; 0x5630 TextEndBattle
-
-Route3TrainerHeader8: ; 55579 (15:5579)
-	db $9 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7c3 ; flag's byte
-	dw Route3BattleText8 ; 0x5644 TextBeforeBattle
-	dw Route3AfterBattleText8 ; 0x564e TextAfterBattle
-	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
-	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
-
-	db $ff
-
-Route3Text1: ; 55586 (15:5586)
-	TX_FAR _Route3Text1
-	db "@"
-
-Route3Text2: ; 5558b (15:558b)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText1: ; 55595 (15:5595)
-	TX_FAR _Route3BattleText1
-	db "@"
-
-Route3EndBattleText1: ; 5559a (15:559a)
-	TX_FAR _Route3EndBattleText1
-	db "@"
-
-Route3AfterBattleText1: ; 5559f (15:559f)
-	TX_FAR _Route3AfterBattleText1
-	db "@"
-
-Route3Text3: ; 555a4 (15:55a4)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText2: ; 555ae (15:55ae)
-	TX_FAR _Route3BattleText2
-	db "@"
-
-Route3EndBattleText2: ; 555b3 (15:55b3)
-	TX_FAR _Route3EndBattleText2
-	db "@"
-
-Route3AfterBattleText2: ; 555b8 (15:55b8)
-	TX_FAR _Route3AfterBattleText2
-	db "@"
-
-Route3Text4: ; 555bd (15:55bd)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText3: ; 555c7 (15:55c7)
-	TX_FAR _Route3BattleText3
-	db "@"
-
-Route3EndBattleText3: ; 555cc (15:55cc)
-	TX_FAR _Route3EndBattleText3
-	db "@"
-
-Route3AfterBattleText3: ; 555d1 (15:55d1)
-	TX_FAR _Route3AfterBattleText3
-	db "@"
-
-Route3Text5: ; 555d6 (15:55d6)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText4: ; 555e0 (15:55e0)
-	TX_FAR _Route3BattleText4
-	db "@"
-
-Route3EndBattleText4: ; 555e5 (15:55e5)
-	TX_FAR _Route3EndBattleText4
-	db "@"
-
-Route3AfterBattleText4: ; 555ea (15:55ea)
-	TX_FAR _Route3AfterBattleText4
-	db "@"
-
-Route3Text6: ; 555ef (15:55ef)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText5: ; 555f9 (15:55f9)
-	TX_FAR _Route3BattleText5
-	db "@"
-
-Route3EndBattleText5: ; 555fe (15:55fe)
-	TX_FAR _Route3EndBattleText5
-	db "@"
-
-Route3AfterBattleText5: ; 55603 (15:5603)
-	TX_FAR _Route3AfterBattleText5
-	db "@"
-
-Route3Text7: ; 55608 (15:5608)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText6: ; 55612 (15:5612)
-	TX_FAR _Route3BattleText6
-	db "@"
-
-Route3EndBattleText6: ; 55617 (15:5617)
-	TX_FAR _Route3EndBattleText6
-	db "@"
-
-Route3AfterBattleText6: ; 5561c (15:561c)
-	TX_FAR _Route3AfterBattleText6
-	db "@"
-
-Route3Text8: ; 55621 (15:5621)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText7: ; 5562b (15:562b)
-	TX_FAR _Route3BattleText7
-	db "@"
-
-Route3EndBattleText7: ; 55630 (15:5630)
-	TX_FAR _Route3EndBattleText7
-	db "@"
-
-Route3AfterBattleText7: ; 55635 (15:5635)
-	TX_FAR _Route3AfterBattleText7
-	db "@"
-
-Route3Text9: ; 5563a (15:563a)
-	db $08 ; asm
-	ld hl, Route3TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route3BattleText8: ; 55644 (15:5644)
-	TX_FAR _Route3BattleText8
-	db "@"
-
-Route3EndBattleText8: ; 55649 (15:5649)
-	TX_FAR _Route3EndBattleText8
-	db "@"
-
-Route3AfterBattleText8: ; 5564e (15:564e)
-	TX_FAR _Route3AfterBattleText8
-	db "@"
-
-Route3Text10: ; 55653 (15:5653)
-	TX_FAR _Route3Text10
-	db "@"
-
-Route4Script: ; 55658 (15:5658)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route4TrainerHeaders
-	ld de, Route4ScriptPointers
-	ld a, [W_ROUTE4CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE4CURSCRIPT], a
-	ret
-
-Route4ScriptPointers: ; 5566b (15:566b)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route4TextPointers: ; 55671 (15:5671)
-	dw Route4Text1
-	dw Route4Text2
-	dw Predef5CText
-	dw PokeCenterSignText
-	dw Route4Text5
-	dw Route4Text6
-
-Route4TrainerHeaders: ; 5567d (15:567d)
-Route4TrainerHeader0: ; 5567d (15:567d)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c5 ; flag's byte
-	dw Route4BattleText1 ; 0x5699 TextBeforeBattle
-	dw Route4AfterBattleText1 ; 0x56a3 TextAfterBattle
-	dw Route4EndBattleText1 ; 0x569e TextEndBattle
-	dw Route4EndBattleText1 ; 0x569e TextEndBattle
-
-	db $ff
-
-Route4Text1: ; 5568a (15:568a)
-	TX_FAR _Route4Text1
-	db "@"
-
-Route4Text2: ; 5568f (15:568f)
-	db $08 ; asm
-	ld hl, Route4TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route4BattleText1: ; 55699 (15:5699)
-	TX_FAR _Route4BattleText1
-	db "@"
-
-Route4EndBattleText1: ; 5569e (15:569e)
-	TX_FAR _Route4EndBattleText1
-	db "@"
-
-Route4AfterBattleText1: ; 556a3 (15:56a3)
-	TX_FAR _Route4AfterBattleText1
-	db "@"
-
-Route4Text5: ; 556a8 (15:56a8)
-	TX_FAR _Route4Text5
-	db "@"
-
-Route4Text6: ; 556ad (15:56ad)
-	TX_FAR _Route4Text6
-	db "@"
-
-Route5Script: ; 556b2 (15:56b2)
-	jp EnableAutoTextBoxDrawing
-
-Route5TextPointers: ; 556b5 (15:56b5)
-	dw Route5Text1
-
-Route5Text1: ; 556b7 (15:56b7)
-	TX_FAR _Route5Text1
-	db "@"
-
-Route9Script: ; 556bc (15:56bc)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route9TrainerHeaders
-	ld de, Route9ScriptPointers
-	ld a, [W_ROUTE9CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE9CURSCRIPT], a
-	ret
-
-Route9ScriptPointers: ; 556cf (15:56cf)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route9TextPointers: ; 556d5 (15:56d5)
-	dw Route9Text1
-	dw Route9Text2
-	dw Route9Text3
-	dw Route9Text4
-	dw Route9Text5
-	dw Route9Text6
-	dw Route9Text7
-	dw Route9Text8
-	dw Route9Text9
-	dw Predef5CText
-	dw Route9Text11
-
-Route9TrainerHeaders: ; 556eb (15:56eb)
-Route9TrainerHeader0: ; 556eb (15:56eb)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText1 ; 0x5792 TextBeforeBattle
-	dw Route9AfterBattleText1 ; 0x579c TextAfterBattle
-	dw Route9EndBattleText1 ; 0x5797 TextEndBattle
-	dw Route9EndBattleText1 ; 0x5797 TextEndBattle
-
-Route9TrainerHeader2: ; 556f7 (15:56f7)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText2 ; 0x57a1 TextBeforeBattle
-	dw Route9AfterBattleText2 ; 0x57ab TextAfterBattle
-	dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
-	dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
-
-Route9TrainerHeader3: ; 55703 (15:5703)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText3 ; 0x57b0 TextBeforeBattle
-	dw Route9AfterBattleText3 ; 0x57ba TextAfterBattle
-	dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
-	dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
-
-Route9TrainerHeader4: ; 5570f (15:570f)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText4 ; 0x57bf TextBeforeBattle
-	dw Route9AfterBattleText4 ; 0x57c9 TextAfterBattle
-	dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
-	dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
-
-Route9TrainerHeader5: ; 5571b (15:571b)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText5 ; 0x57ce TextBeforeBattle
-	dw Route9AfterBattleText5 ; 0x57d8 TextAfterBattle
-	dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
-	dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
-
-Route9TrainerHeader6: ; 55727 (15:5727)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText6 ; 0x57dd TextBeforeBattle
-	dw Route9AfterBattleText6 ; 0x57e7 TextAfterBattle
-	dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
-	dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
-
-Route9TrainerHeader7: ; 55733 (15:5733)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText7 ; 0x57ec TextBeforeBattle
-	dw Route9AfterBattleText7 ; 0x57f6 TextAfterBattle
-	dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
-	dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
-
-Route9TrainerHeader8: ; 5573f (15:573f)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText8 ; 0x57fb TextBeforeBattle
-	dw Route9AfterBattleText8 ; 0x5805 TextAfterBattle
-	dw Route9EndBattleText8 ; 0x5800 TextEndBattle
-	dw Route9EndBattleText8 ; 0x5800 TextEndBattle
-
-Route9TrainerHeader9: ; 5574b (15:574b)
-	db $9 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cf ; flag's byte
-	dw Route9BattleText9 ; 0x580a TextBeforeBattle
-	dw Route9AfterBattleText9 ; 0x5814 TextAfterBattle
-	dw Route9EndBattleText9 ; 0x580f TextEndBattle
-	dw Route9EndBattleText9 ; 0x580f TextEndBattle
-
-	db $ff
-
-Route9Text1: ; 55758 (15:5758)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader0
-	jr asm_8be3d ; 0x5575c $2e
-
-Route9Text2: ; 5575e (15:575e)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader2
-	jr asm_8be3d ; 0x55762 $28
-
-Route9Text3: ; 55764 (15:5764)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader3
-	jr asm_8be3d ; 0x55768 $22
-
-Route9Text4: ; 5576a (15:576a)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader4
-	jr asm_8be3d ; 0x5576e $1c
-
-Route9Text5: ; 55770 (15:5770)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader5
-	jr asm_8be3d ; 0x55774 $16
-
-Route9Text6: ; 55776 (15:5776)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader6
-	jr asm_8be3d ; 0x5577a $10
-
-Route9Text7: ; 5577c (15:577c)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader7
-	jr asm_8be3d ; 0x55780 $a
-
-Route9Text8: ; 55782 (15:5782)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader8
-	jr asm_8be3d ; 0x55786 $4
-
-Route9Text9: ; 55788 (15:5788)
-	db $8 ; asm
-	ld hl, Route9TrainerHeader9
-asm_8be3d: ; 5578c (15:578c)
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route9BattleText1: ; 55792 (15:5792)
-	TX_FAR _Route9BattleText1
-	db "@"
-
-Route9EndBattleText1: ; 55797 (15:5797)
-	TX_FAR _Route9EndBattleText1
-	db "@"
-
-Route9AfterBattleText1: ; 5579c (15:579c)
-	TX_FAR _Route9AfterBattleText1
-	db "@"
-
-Route9BattleText2: ; 557a1 (15:57a1)
-	TX_FAR _Route9BattleText2
-	db "@"
-
-Route9EndBattleText2: ; 557a6 (15:57a6)
-	TX_FAR _Route9EndBattleText2
-	db "@"
-
-Route9AfterBattleText2: ; 557ab (15:57ab)
-	TX_FAR _Route9AfterBattleText2
-	db "@"
-
-Route9BattleText3: ; 557b0 (15:57b0)
-	TX_FAR _Route9BattleText3
-	db "@"
-
-Route9EndBattleText3: ; 557b5 (15:57b5)
-	TX_FAR _Route9EndBattleText3
-	db "@"
-
-Route9AfterBattleText3: ; 557ba (15:57ba)
-	TX_FAR _Route9AfterBattleText3
-	db "@"
-
-Route9BattleText4: ; 557bf (15:57bf)
-	TX_FAR _Route9BattleText4
-	db "@"
-
-Route9EndBattleText4: ; 557c4 (15:57c4)
-	TX_FAR _Route9EndBattleText4
-	db "@"
-
-Route9AfterBattleText4: ; 557c9 (15:57c9)
-	TX_FAR _Route9AfterBattleText4
-	db "@"
-
-Route9BattleText5: ; 557ce (15:57ce)
-	TX_FAR _Route9BattleText5
-	db "@"
-
-Route9EndBattleText5: ; 557d3 (15:57d3)
-	TX_FAR _Route9EndBattleText5
-	db "@"
-
-Route9AfterBattleText5: ; 557d8 (15:57d8)
-	TX_FAR _Route9AfterBattleText5
-	db "@"
-
-Route9BattleText6: ; 557dd (15:57dd)
-	TX_FAR _Route9BattleText6
-	db "@"
-
-Route9EndBattleText6: ; 557e2 (15:57e2)
-	TX_FAR _Route9EndBattleText6
-	db "@"
-
-Route9AfterBattleText6: ; 557e7 (15:57e7)
-	TX_FAR _Route9AfterBattleText6
-	db "@"
-
-Route9BattleText7: ; 557ec (15:57ec)
-	TX_FAR _Route9BattleText7
-	db "@"
-
-Route9EndBattleText7: ; 557f1 (15:57f1)
-	TX_FAR _Route9EndBattleText7
-	db "@"
-
-Route9AfterBattleText7: ; 557f6 (15:57f6)
-	TX_FAR _Route9AfterBattleText7
-	db "@"
-
-Route9BattleText8: ; 557fb (15:57fb)
-	TX_FAR _Route9BattleText8
-	db "@"
-
-Route9EndBattleText8: ; 55800 (15:5800)
-	TX_FAR _Route9EndBattleText8
-	db "@"
-
-Route9AfterBattleText8: ; 55805 (15:5805)
-	TX_FAR _Route9AfterBattleText8
-	db "@"
-
-Route9BattleText9: ; 5580a (15:580a)
-	TX_FAR _Route9BattleText9
-	db "@"
-
-Route9EndBattleText9: ; 5580f (15:580f)
-	TX_FAR _Route9EndBattleText9
-	db "@"
-
-Route9AfterBattleText9: ; 55814 (15:5814)
-	TX_FAR _Route9AfterBattleText9
-	db "@"
-
-Route9Text11: ; 55819 (15:5819)
-	TX_FAR _Route9Text11
-	db "@"
-
-Route13Script: ; 5581e (15:581e)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route13TrainerHeaders
-	ld de, Route13ScriptPointers
-	ld a, [W_ROUTE13CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE13CURSCRIPT], a
-	ret
-
-Route13ScriptPointers: ; 55831 (15:5831)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route13TextPointers: ; 55837 (15:5837)
-	dw Route13Text1
-	dw Route13Text2
-	dw Route13Text3
-	dw Route13Text4
-	dw Route13Text5
-	dw Route13Text6
-	dw Route13Text7
-	dw Route13Text8
-	dw Route13Text9
-	dw Route13Text10
-	dw Route13Text11
-	dw Route13Text12
-	dw Route13Text13
-
-Route13TrainerHeaders: ; 55851 (15:5851)
-Route13TrainerHeader0: ; 55851 (15:5851)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText2 ; 0x58d4 TextBeforeBattle
-	dw Route13AfterBattleText2 ; 0x58de TextAfterBattle
-	dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
-	dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
-
-Route13TrainerHeader2: ; 5585d (15:585d)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText3 ; 0x58ed TextBeforeBattle
-	dw Route13AfterBattleText3 ; 0x58f7 TextAfterBattle
-	dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
-	dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
-
-Route13TrainerHeader3: ; 55869 (15:5869)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText4 ; 0x5906 TextBeforeBattle
-	dw Route13AfterBattleText4 ; 0x5910 TextAfterBattle
-	dw Route13EndBattleText4 ; 0x590b TextEndBattle
-	dw Route13EndBattleText4 ; 0x590b TextEndBattle
-
-Route13TrainerHeader4: ; 55875 (15:5875)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText5 ; 0x591f TextBeforeBattle
-	dw Route13AfterBattleText5 ; 0x5929 TextAfterBattle
-	dw Route13EndBattleText5 ; 0x5924 TextEndBattle
-	dw Route13EndBattleText5 ; 0x5924 TextEndBattle
-
-Route13TrainerHeader5: ; 55881 (15:5881)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText6 ; 0x5938 TextBeforeBattle
-	dw Route13AfterBattleText6 ; 0x5942 TextAfterBattle
-	dw Route13EndBattleText6 ; 0x593d TextEndBattle
-	dw Route13EndBattleText6 ; 0x593d TextEndBattle
-
-Route13TrainerHeader6: ; 5588d (15:588d)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText7 ; 0x5951 TextBeforeBattle
-	dw Route13AfterBattleText7 ; 0x595b TextAfterBattle
-	dw Route13EndBattleText7 ; 0x5956 TextEndBattle
-	dw Route13EndBattleText7 ; 0x5956 TextEndBattle
-
-Route13TrainerHeader7: ; 55899 (15:5899)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText8 ; 0x596a TextBeforeBattle
-	dw Route13AfterBattleText8 ; 0x5974 TextAfterBattle
-	dw Route13EndBattleText8 ; 0x596f TextEndBattle
-	dw Route13EndBattleText8 ; 0x596f TextEndBattle
-
-Route13TrainerHeader8: ; 558a5 (15:58a5)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText9 ; 0x5983 TextBeforeBattle
-	dw Route13AfterBattleText9 ; 0x598d TextAfterBattle
-	dw Route13EndBattleText9 ; 0x5988 TextEndBattle
-	dw Route13EndBattleText9 ; 0x5988 TextEndBattle
-
-Route13TrainerHeader9: ; 558b1 (15:58b1)
-	db $9 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText10 ; 0x599c TextBeforeBattle
-	dw Route13AfterBattleText10 ; 0x59a6 TextAfterBattle
-	dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
-	dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
-
-Route13TrainerHeader10: ; 558bd (15:58bd)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d9 ; flag's byte
-	dw Route13BattleText11 ; 0x59b5 TextBeforeBattle
-	dw Route13AfterBattleText11 ; 0x59bf TextAfterBattle
-	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
-	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
-
-	db $ff
-
-Route13Text1: ; 558ca (15:58ca)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText2: ; 558d4 (15:58d4)
-	TX_FAR _Route13BattleText2
-	db "@"
-
-Route13EndBattleText2: ; 558d9 (15:58d9)
-	TX_FAR _Route13EndBattleText2
-	db "@"
-
-Route13AfterBattleText2: ; 558de (15:58de)
-	TX_FAR _Route13AfterBattleText2
-	db "@"
-
-Route13Text2: ; 558e3 (15:58e3)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText3: ; 558ed (15:58ed)
-	TX_FAR _Route13BattleText3
-	db "@"
-
-Route13EndBattleText3: ; 558f2 (15:58f2)
-	TX_FAR _Route13EndBattleText3
-	db "@"
-
-Route13AfterBattleText3: ; 558f7 (15:58f7)
-	TX_FAR _Route13AfterBattleText3
-	db "@"
-
-Route13Text3: ; 558fc (15:58fc)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText4: ; 55906 (15:5906)
-	TX_FAR _Route13BattleText4
-	db "@"
-
-Route13EndBattleText4: ; 5590b (15:590b)
-	TX_FAR _Route13EndBattleText4
-	db "@"
-
-Route13AfterBattleText4: ; 55910 (15:5910)
-	TX_FAR _Route13AfterBattleText4
-	db "@"
-
-Route13Text4: ; 55915 (15:5915)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText5: ; 5591f (15:591f)
-	TX_FAR _Route13BattleText5
-	db "@"
-
-Route13EndBattleText5: ; 55924 (15:5924)
-	TX_FAR _Route13EndBattleText5
-	db "@"
-
-Route13AfterBattleText5: ; 55929 (15:5929)
-	TX_FAR _Route13AfterBattleText5
-	db "@"
-
-Route13Text5: ; 5592e (15:592e)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText6: ; 55938 (15:5938)
-	TX_FAR _Route13BattleText6
-	db "@"
-
-Route13EndBattleText6: ; 5593d (15:593d)
-	TX_FAR _Route13EndBattleText6
-	db "@"
-
-Route13AfterBattleText6: ; 55942 (15:5942)
-	TX_FAR _Route13AfterBattleText6
-	db "@"
-
-Route13Text6: ; 55947 (15:5947)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText7: ; 55951 (15:5951)
-	TX_FAR _Route13BattleText7
-	db "@"
-
-Route13EndBattleText7: ; 55956 (15:5956)
-	TX_FAR _Route13EndBattleText7
-	db "@"
-
-Route13AfterBattleText7: ; 5595b (15:595b)
-	TX_FAR _Route13AfterBattleText7
-	db "@"
-
-Route13Text7: ; 55960 (15:5960)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText8: ; 5596a (15:596a)
-	TX_FAR _Route13BattleText8
-	db "@"
-
-Route13EndBattleText8: ; 5596f (15:596f)
-	TX_FAR _Route13EndBattleText8
-	db "@"
-
-Route13AfterBattleText8: ; 55974 (15:5974)
-	TX_FAR _Route13AfterBattleText8
-	db "@"
-
-Route13Text8: ; 55979 (15:5979)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText9: ; 55983 (15:5983)
-	TX_FAR _Route13BattleText9
-	db "@"
-
-Route13EndBattleText9: ; 55988 (15:5988)
-	TX_FAR _Route13EndBattleText9
-	db "@"
-
-Route13AfterBattleText9: ; 5598d (15:598d)
-	TX_FAR _Route13AfterBattleText9
-	db "@"
-
-Route13Text9: ; 55992 (15:5992)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText10: ; 5599c (15:599c)
-	TX_FAR _Route13BattleText10
-	db "@"
-
-Route13EndBattleText10: ; 559a1 (15:59a1)
-	TX_FAR _Route13EndBattleText10
-	db "@"
-
-Route13AfterBattleText10: ; 559a6 (15:59a6)
-	TX_FAR _Route13AfterBattleText10
-	db "@"
-
-Route13Text10: ; 559ab (15:59ab)
-	db $08 ; asm
-	ld hl, Route13TrainerHeader10
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route13BattleText11: ; 559b5 (15:59b5)
-	TX_FAR _Route13BattleText11
-	db "@"
-
-Route13EndBattleText11: ; 559ba (15:59ba)
-	TX_FAR _Route13EndBattleText11
-	db "@"
-
-Route13AfterBattleText11: ; 559bf (15:59bf)
-	TX_FAR _Route13AfterBattleText11
-	db "@"
-
-Route13Text11: ; 559c4 (15:59c4)
-	TX_FAR _Route13Text11
-	db "@"
-
-Route13Text12: ; 559c9 (15:59c9)
-	TX_FAR _Route13Text12
-	db "@"
-
-Route13Text13: ; 559ce (15:59ce)
-	TX_FAR _Route13Text13
-	db "@"
-
-Route14Script: ; 559d3 (15:59d3)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route14TrainerHeaders
-	ld de, Route14ScriptPointers
-	ld a, [W_ROUTE14CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE14CURSCRIPT], a
-	ret
-
-Route14ScriptPointers: ; 559e6 (15:59e6)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route14TextPointers: ; 559ec (15:59ec)
-	dw Route14Text1
-	dw Route14Text2
-	dw Route14Text3
-	dw Route14Text4
-	dw Route14Text5
-	dw Route14Text6
-	dw Route14Text7
-	dw Route14Text8
-	dw Route14Text9
-	dw Route14Text10
-	dw Route14Text11
-
-Route14TrainerHeaders: ; 55a02 (15:5a02)
-Route14TrainerHeader0: ; 55a02 (15:5a02)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText1 ; 0x5a85 TextBeforeBattle
-	dw Route14AfterBattleText1 ; 0x5a8f TextAfterBattle
-	dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
-	dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
-
-Route14TrainerHeader1: ; 55a0e (15:5a0e)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText2 ; 0x5a9e TextBeforeBattle
-	dw Route14AfterBattleText2 ; 0x5aa8 TextAfterBattle
-	dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
-	dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
-
-Route14TrainerHeader2: ; 55a1a (15:5a1a)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText3 ; 0x5ab7 TextBeforeBattle
-	dw Route14AfterBattleText3 ; 0x5ac1 TextAfterBattle
-	dw Route14EndBattleText3 ; 0x5abc TextEndBattle
-	dw Route14EndBattleText3 ; 0x5abc TextEndBattle
-
-Route14TrainerHeader3: ; 55a26 (15:5a26)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText4 ; 0x5ad0 TextBeforeBattle
-	dw Route14AfterBattleText4 ; 0x5ada TextAfterBattle
-	dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
-	dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
-
-Route14TrainerHeader4: ; 55a32 (15:5a32)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText5 ; 0x5ae9 TextBeforeBattle
-	dw Route14AfterBattleText5 ; 0x5af3 TextAfterBattle
-	dw Route14EndBattleText5 ; 0x5aee TextEndBattle
-	dw Route14EndBattleText5 ; 0x5aee TextEndBattle
-
-Route14TrainerHeader5: ; 55a3e (15:5a3e)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText6 ; 0x5b02 TextBeforeBattle
-	dw Route14AfterBattleText6 ; 0x5b0c TextAfterBattle
-	dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
-	dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
-
-Route14TrainerHeader6: ; 55a4a (15:5a4a)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText7 ; 0x5b1b TextBeforeBattle
-	dw Route14AfterBattleText7 ; 0x5b25 TextAfterBattle
-	dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
-	dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
-
-Route14TrainerHeader7: ; 55a56 (15:5a56)
-	db $8 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText8 ; 0x5b34 TextBeforeBattle
-	dw Route14AfterBattleText8 ; 0x5b3e TextAfterBattle
-	dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
-	dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
-
-Route14TrainerHeader8: ; 55a62 (15:5a62)
-	db $9 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText9 ; 0x5b4d TextBeforeBattle
-	dw Route14AfterBattleText9 ; 0x5b57 TextAfterBattle
-	dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
-	dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
-
-Route14TrainerHeader9: ; 55a6e (15:5a6e)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7db ; flag's byte
-	dw Route14BattleText10 ; 0x5b66 TextBeforeBattle
-	dw Route14AfterBattleText10 ; 0x5b70 TextAfterBattle
-	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
-	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
-
-	db $ff
-
-Route14Text1: ; 55a7b (15:5a7b)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText1: ; 55a85 (15:5a85)
-	TX_FAR _Route14BattleText1
-	db "@"
-
-Route14EndBattleText1: ; 55a8a (15:5a8a)
-	TX_FAR _Route14EndBattleText1
-	db "@"
-
-Route14AfterBattleText1: ; 55a8f (15:5a8f)
-	TX_FAR _Route14AfterBattleText1
-	db "@"
-
-Route14Text2: ; 55a94 (15:5a94)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText2: ; 55a9e (15:5a9e)
-	TX_FAR _Route14BattleText2
-	db "@"
-
-Route14EndBattleText2: ; 55aa3 (15:5aa3)
-	TX_FAR _Route14EndBattleText2
-	db "@"
-
-Route14AfterBattleText2: ; 55aa8 (15:5aa8)
-	TX_FAR _Route14AfterBattleText2
-	db "@"
-
-Route14Text3: ; 55aad (15:5aad)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText3: ; 55ab7 (15:5ab7)
-	TX_FAR _Route14BattleText3
-	db "@"
-
-Route14EndBattleText3: ; 55abc (15:5abc)
-	TX_FAR _Route14EndBattleText3
-	db "@"
-
-Route14AfterBattleText3: ; 55ac1 (15:5ac1)
-	TX_FAR _Route14AfterBattleText3
-	db "@"
-
-Route14Text4: ; 55ac6 (15:5ac6)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText4: ; 55ad0 (15:5ad0)
-	TX_FAR _Route14BattleText4
-	db "@"
-
-Route14EndBattleText4: ; 55ad5 (15:5ad5)
-	TX_FAR _Route14EndBattleText4
-	db "@"
-
-Route14AfterBattleText4: ; 55ada (15:5ada)
-	TX_FAR _Route14AfterBattleText4
-	db "@"
-
-Route14Text5: ; 55adf (15:5adf)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText5: ; 55ae9 (15:5ae9)
-	TX_FAR _Route14BattleText5
-	db "@"
-
-Route14EndBattleText5: ; 55aee (15:5aee)
-	TX_FAR _Route14EndBattleText5
-	db "@"
-
-Route14AfterBattleText5: ; 55af3 (15:5af3)
-	TX_FAR _Route14AfterBattleText5
-	db "@"
-
-Route14Text6: ; 55af8 (15:5af8)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText6: ; 55b02 (15:5b02)
-	TX_FAR _Route14BattleText6
-	db "@"
-
-Route14EndBattleText6: ; 55b07 (15:5b07)
-	TX_FAR _Route14EndBattleText6
-	db "@"
-
-Route14AfterBattleText6: ; 55b0c (15:5b0c)
-	TX_FAR _Route14AfterBattleText6
-	db "@"
-
-Route14Text7: ; 55b11 (15:5b11)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText7: ; 55b1b (15:5b1b)
-	TX_FAR _Route14BattleText7
-	db "@"
-
-Route14EndBattleText7: ; 55b20 (15:5b20)
-	TX_FAR _Route14EndBattleText7
-	db "@"
-
-Route14AfterBattleText7: ; 55b25 (15:5b25)
-	TX_FAR _Route14AfterBattleText7
-	db "@"
-
-Route14Text8: ; 55b2a (15:5b2a)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText8: ; 55b34 (15:5b34)
-	TX_FAR _Route14BattleText8
-	db "@"
-
-Route14EndBattleText8: ; 55b39 (15:5b39)
-	TX_FAR _Route14EndBattleText8
-	db "@"
-
-Route14AfterBattleText8: ; 55b3e (15:5b3e)
-	TX_FAR _Route14AfterBattleText8
-	db "@"
-
-Route14Text9: ; 55b43 (15:5b43)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText9: ; 55b4d (15:5b4d)
-	TX_FAR _Route14BattleText9
-	db "@"
-
-Route14EndBattleText9: ; 55b52 (15:5b52)
-	TX_FAR _Route14EndBattleText9
-	db "@"
-
-Route14AfterBattleText9: ; 55b57 (15:5b57)
-	TX_FAR _Route14AfterBattleText9
-	db "@"
-
-Route14Text10: ; 55b5c (15:5b5c)
-	db $08 ; asm
-	ld hl, Route14TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route14BattleText10: ; 55b66 (15:5b66)
-	TX_FAR _Route14BattleText10
-	db "@"
-
-Route14EndBattleText10: ; 55b6b (15:5b6b)
-	TX_FAR _Route14EndBattleText10
-	db "@"
-
-Route14AfterBattleText10: ; 55b70 (15:5b70)
-	TX_FAR _Route14AfterBattleText10
-	db "@"
-
-Route14Text11: ; 55b75 (15:5b75)
-	TX_FAR _Route14Text11
-	db "@"
-
-Route17Script: ; 55b7a (15:5b7a)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route17TrainerHeaders
-	ld de, Route17ScriptPointers
-	ld a, [W_ROUTE17CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE17CURSCRIPT], a
-	ret
-
-Route17ScriptPointers: ; 55b8d (15:5b8d)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route17TextPointers: ; 55b93 (15:5b93)
-	dw Route17Text1
-	dw Route17Text2
-	dw Route17Text3
-	dw Route17Text4
-	dw Route17Text5
-	dw Route17Text6
-	dw Route17Text7
-	dw Route17Text8
-	dw Route17Text9
-	dw Route17Text10
-	dw Route17Text11
-	dw Route17Text12
-	dw Route17Text13
-	dw Route17Text14
-	dw Route17Text15
-	dw Route17Text16
-
-Route17TrainerHeaders: ; 55bb3 (15:5bb3)
-Route17TrainerHeader0: ; 55bb3 (15:5bb3)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText1 ; 0x5c36 TextBeforeBattle
-	dw Route17AfterBattleText1 ; 0x5c40 TextAfterBattle
-	dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
-	dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
-
-Route17TrainerHeader1: ; 55bbf (15:5bbf)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText2 ; 0x5c4f TextBeforeBattle
-	dw Route17AfterBattleText2 ; 0x5c59 TextAfterBattle
-	dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
-	dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
-
-Route17TrainerHeader2: ; 55bcb (15:5bcb)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText3 ; 0x5c68 TextBeforeBattle
-	dw Route17AfterBattleText3 ; 0x5c72 TextAfterBattle
-	dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
-	dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
-
-Route17TrainerHeader3: ; 55bd7 (15:5bd7)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText4 ; 0x5c81 TextBeforeBattle
-	dw Route17AfterBattleText4 ; 0x5c8b TextAfterBattle
-	dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
-	dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
-
-Route17TrainerHeader4: ; 55be3 (15:5be3)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText5 ; 0x5c9a TextBeforeBattle
-	dw Route17AfterBattleText5 ; 0x5ca4 TextAfterBattle
-	dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
-	dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
-
-Route17TrainerHeader5: ; 55bef (15:5bef)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText6 ; 0x5cb3 TextBeforeBattle
-	dw Route17AfterBattleText6 ; 0x5cbd TextAfterBattle
-	dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
-	dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
-
-Route17TrainerHeader6: ; 55bfb (15:5bfb)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText7 ; 0x5ccc TextBeforeBattle
-	dw Route17AfterBattleText7 ; 0x5cd6 TextAfterBattle
-	dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
-	dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
-
-Route17TrainerHeader7: ; 55c07 (15:5c07)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText8 ; 0x5ce5 TextBeforeBattle
-	dw Route17AfterBattleText8 ; 0x5cef TextAfterBattle
-	dw Route17EndBattleText8 ; 0x5cea TextEndBattle
-	dw Route17EndBattleText8 ; 0x5cea TextEndBattle
-
-Route17TrainerHeader8: ; 55c13 (15:5c13)
-	db $9 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText9 ; 0x5cfe TextBeforeBattle
-	dw Route17AfterBattleText9 ; 0x5d08 TextAfterBattle
-	dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
-	dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
-
-Route17TrainerHeader9: ; 55c1f (15:5c1f)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e1 ; flag's byte
-	dw Route17BattleText10 ; 0x5d17 TextBeforeBattle
-	dw Route17AfterBattleText10 ; 0x5d21 TextAfterBattle
-	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
-	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
-
-	db $ff
-
-Route17Text1: ; 55c2c (15:5c2c)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText1: ; 55c36 (15:5c36)
-	TX_FAR _Route17BattleText1
-	db "@"
-
-Route17EndBattleText1: ; 55c3b (15:5c3b)
-	TX_FAR _Route17EndBattleText1
-	db "@"
-
-Route17AfterBattleText1: ; 55c40 (15:5c40)
-	TX_FAR _Route17AfterBattleText1
-	db "@"
-
-Route17Text2: ; 55c45 (15:5c45)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText2: ; 55c4f (15:5c4f)
-	TX_FAR _Route17BattleText2
-	db "@"
-
-Route17EndBattleText2: ; 55c54 (15:5c54)
-	TX_FAR _Route17EndBattleText2
-	db "@"
-
-Route17AfterBattleText2: ; 55c59 (15:5c59)
-	TX_FAR _Route17AfterBattleText2
-	db "@"
-
-Route17Text3: ; 55c5e (15:5c5e)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText3: ; 55c68 (15:5c68)
-	TX_FAR _Route17BattleText3
-	db "@"
-
-Route17EndBattleText3: ; 55c6d (15:5c6d)
-	TX_FAR _Route17EndBattleText3
-	db "@"
-
-Route17AfterBattleText3: ; 55c72 (15:5c72)
-	TX_FAR _Route17AfterBattleText3
-	db "@"
-
-Route17Text4: ; 55c77 (15:5c77)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText4: ; 55c81 (15:5c81)
-	TX_FAR _Route17BattleText4
-	db "@"
-
-Route17EndBattleText4: ; 55c86 (15:5c86)
-	TX_FAR _Route17EndBattleText4
-	db "@"
-
-Route17AfterBattleText4: ; 55c8b (15:5c8b)
-	TX_FAR _Route17AfterBattleText4
-	db "@"
-
-Route17Text5: ; 55c90 (15:5c90)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText5: ; 55c9a (15:5c9a)
-	TX_FAR _Route17BattleText5
-	db "@"
-
-Route17EndBattleText5: ; 55c9f (15:5c9f)
-	TX_FAR _Route17EndBattleText5
-	db "@"
-
-Route17AfterBattleText5: ; 55ca4 (15:5ca4)
-	TX_FAR _Route17AfterBattleText5
-	db "@"
-
-Route17Text6: ; 55ca9 (15:5ca9)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText6: ; 55cb3 (15:5cb3)
-	TX_FAR _Route17BattleText6
-	db "@"
-
-Route17EndBattleText6: ; 55cb8 (15:5cb8)
-	TX_FAR _Route17EndBattleText6
-	db "@"
-
-Route17AfterBattleText6: ; 55cbd (15:5cbd)
-	TX_FAR _Route17AfterBattleText6
-	db "@"
-
-Route17Text7: ; 55cc2 (15:5cc2)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText7: ; 55ccc (15:5ccc)
-	TX_FAR _Route17BattleText7
-	db "@"
-
-Route17EndBattleText7: ; 55cd1 (15:5cd1)
-	TX_FAR _Route17EndBattleText7
-	db "@"
-
-Route17AfterBattleText7: ; 55cd6 (15:5cd6)
-	TX_FAR _Route17AfterBattleText7
-	db "@"
-
-Route17Text8: ; 55cdb (15:5cdb)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText8: ; 55ce5 (15:5ce5)
-	TX_FAR _Route17BattleText8
-	db "@"
-
-Route17EndBattleText8: ; 55cea (15:5cea)
-	TX_FAR _Route17EndBattleText8
-	db "@"
-
-Route17AfterBattleText8: ; 55cef (15:5cef)
-	TX_FAR _Route17AfterBattleText8
-	db "@"
-
-Route17Text9: ; 55cf4 (15:5cf4)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText9: ; 55cfe (15:5cfe)
-	TX_FAR _Route17BattleText9
-	db "@"
-
-Route17EndBattleText9: ; 55d03 (15:5d03)
-	TX_FAR _Route17EndBattleText9
-	db "@"
-
-Route17AfterBattleText9: ; 55d08 (15:5d08)
-	TX_FAR _Route17AfterBattleText9
-	db "@"
-
-Route17Text10: ; 55d0d (15:5d0d)
-	db $08 ; asm
-	ld hl, Route17TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route17BattleText10: ; 55d17 (15:5d17)
-	TX_FAR _Route17BattleText10
-	db "@"
-
-Route17EndBattleText10: ; 55d1c (15:5d1c)
-	TX_FAR _Route17EndBattleText10
-	db "@"
-
-Route17AfterBattleText10: ; 55d21 (15:5d21)
-	TX_FAR _Route17AfterBattleText10
-	db "@"
-
-Route17Text11: ; 55d26 (15:5d26)
-	TX_FAR _Route17Text11
-	db "@"
-
-Route17Text12: ; 55d2b (15:5d2b)
-	TX_FAR _Route17Text12
-	db "@"
-
-Route17Text13: ; 55d30 (15:5d30)
-	TX_FAR _Route17Text13
-	db "@"
-
-Route17Text14: ; 55d35 (15:5d35)
-	TX_FAR _Route17Text14
-	db "@"
-
-Route17Text15: ; 55d3a (15:5d3a)
-	TX_FAR _Route17Text15
-	db "@"
-
-Route17Text16: ; 55d3f (15:5d3f)
-	TX_FAR _Route17Text16
-	db "@"
-
-Route19Script: ; 55d44 (15:5d44)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route19TrainerHeaders
-	ld de, Route19ScriptPointers
-	ld a, [W_ROUTE19CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE19CURSCRIPT], a
-	ret
-
-Route19ScriptPointers: ; 55d57 (15:5d57)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route19TextPointers: ; 55d5d (15:5d5d)
-	dw Route19Text1
-	dw Route19Text2
-	dw Route19Text3
-	dw Route19Text4
-	dw Route19Text5
-	dw Route19Text6
-	dw Route19Text7
-	dw Route19Text8
-	dw Route19Text9
-	dw Route19Text10
-	dw Route19Text11
-
-Route19TrainerHeaders: ; 55d73 (15:5d73)
-Route19TrainerHeader0: ; 55d73 (15:5d73)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText1 ; 0x5e50 TextBeforeBattle
-	dw Route19AfterBattleText1 ; 0x5e5a TextAfterBattle
-	dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
-	dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
-
-Route19TrainerHeader1: ; 55d7f (15:5d7f)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText2 ; 0x5e5f TextBeforeBattle
-	dw Route19AfterBattleText2 ; 0x5e69 TextAfterBattle
-	dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
-	dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
-
-Route19TrainerHeader2: ; 55d8b (15:5d8b)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText3 ; 0x5e6e TextBeforeBattle
-	dw Route19AfterBattleText3 ; 0x5e78 TextAfterBattle
-	dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
-	dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
-
-Route19TrainerHeader3: ; 55d97 (15:5d97)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText4 ; 0x5e7d TextBeforeBattle
-	dw Route19AfterBattleText4 ; 0x5e87 TextAfterBattle
-	dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
-	dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
-
-Route19TrainerHeader4: ; 55da3 (15:5da3)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText5 ; 0x5e8c TextBeforeBattle
-	dw Route19AfterBattleText5 ; 0x5e96 TextAfterBattle
-	dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
-	dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
-
-Route19TrainerHeader5: ; 55daf (15:5daf)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText6 ; 0x5e9b TextBeforeBattle
-	dw Route19AfterBattleText6 ; 0x5ea5 TextAfterBattle
-	dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
-	dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
-
-Route19TrainerHeader6: ; 55dbb (15:5dbb)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText7 ; 0x5eaa TextBeforeBattle
-	dw Route19AfterBattleText7 ; 0x5eb4 TextAfterBattle
-	dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
-	dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
-
-Route19TrainerHeader7: ; 55dc7 (15:5dc7)
-	db $8 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText8 ; 0x5eb9 TextBeforeBattle
-	dw Route19AfterBattleText8 ; 0x5ec3 TextAfterBattle
-	dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
-	dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
-
-Route19TrainerHeader8: ; 55dd3 (15:5dd3)
-	db $9 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText9 ; 0x5ec8 TextBeforeBattle
-	dw Route19AfterBattleText9 ; 0x5ed2 TextAfterBattle
-	dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
-	dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
-
-Route19TrainerHeader9: ; 55ddf (15:5ddf)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e5 ; flag's byte
-	dw Route19BattleText10 ; 0x5ed7 TextBeforeBattle
-	dw Route19AfterBattleText10 ; 0x5ee1 TextAfterBattle
-	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
-	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
-
-	db $ff
-
-Route19Text1: ; 55dec (15:5dec)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text2: ; 55df6 (15:5df6)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text3: ; 55e00 (15:5e00)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text4: ; 55e0a (15:5e0a)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text5: ; 55e14 (15:5e14)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text6: ; 55e1e (15:5e1e)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text7: ; 55e28 (15:5e28)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text8: ; 55e32 (15:5e32)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text9: ; 55e3c (15:5e3c)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19Text10: ; 55e46 (15:5e46)
-	db $08 ; asm
-	ld hl, Route19TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route19BattleText1: ; 55e50 (15:5e50)
-	TX_FAR _Route19BattleText1
-	db "@"
-
-Route19EndBattleText1: ; 55e55 (15:5e55)
-	TX_FAR _Route19EndBattleText1
-	db "@"
-
-Route19AfterBattleText1: ; 55e5a (15:5e5a)
-	TX_FAR _Route19AfterBattleText1
-	db "@"
-
-Route19BattleText2: ; 55e5f (15:5e5f)
-	TX_FAR _Route19BattleText2
-	db "@"
-
-Route19EndBattleText2: ; 55e64 (15:5e64)
-	TX_FAR _Route19EndBattleText2
-	db "@"
-
-Route19AfterBattleText2: ; 55e69 (15:5e69)
-	TX_FAR _Route19AfterBattleText2
-	db "@"
-
-Route19BattleText3: ; 55e6e (15:5e6e)
-	TX_FAR _Route19BattleText3
-	db "@"
-
-Route19EndBattleText3: ; 55e73 (15:5e73)
-	TX_FAR _Route19EndBattleText3
-	db "@"
-
-Route19AfterBattleText3: ; 55e78 (15:5e78)
-	TX_FAR _Route19AfterBattleText3
-	db "@"
-
-Route19BattleText4: ; 55e7d (15:5e7d)
-	TX_FAR _Route19BattleText4
-	db "@"
-
-Route19EndBattleText4: ; 55e82 (15:5e82)
-	TX_FAR _Route19EndBattleText4
-	db "@"
-
-Route19AfterBattleText4: ; 55e87 (15:5e87)
-	TX_FAR _Route19AfterBattleText4
-	db "@"
-
-Route19BattleText5: ; 55e8c (15:5e8c)
-	TX_FAR _Route19BattleText5
-	db "@"
-
-Route19EndBattleText5: ; 55e91 (15:5e91)
-	TX_FAR _Route19EndBattleText5
-	db "@"
-
-Route19AfterBattleText5: ; 55e96 (15:5e96)
-	TX_FAR _Route19AfterBattleText5
-	db "@"
-
-Route19BattleText6: ; 55e9b (15:5e9b)
-	TX_FAR _Route19BattleText6
-	db "@"
-
-Route19EndBattleText6: ; 55ea0 (15:5ea0)
-	TX_FAR _Route19EndBattleText6
-	db "@"
-
-Route19AfterBattleText6: ; 55ea5 (15:5ea5)
-	TX_FAR _Route19AfterBattleText6
-	db "@"
-
-Route19BattleText7: ; 55eaa (15:5eaa)
-	TX_FAR _Route19BattleText7
-	db "@"
-
-Route19EndBattleText7: ; 55eaf (15:5eaf)
-	TX_FAR _Route19EndBattleText7
-	db "@"
-
-Route19AfterBattleText7: ; 55eb4 (15:5eb4)
-	TX_FAR _Route19AfterBattleText7
-	db "@"
-
-Route19BattleText8: ; 55eb9 (15:5eb9)
-	TX_FAR _Route19BattleText8
-	db "@"
-
-Route19EndBattleText8: ; 55ebe (15:5ebe)
-	TX_FAR _Route19EndBattleText8
-	db "@"
-
-Route19AfterBattleText8: ; 55ec3 (15:5ec3)
-	TX_FAR _Route19AfterBattleText8
-	db "@"
-
-Route19BattleText9: ; 55ec8 (15:5ec8)
-	TX_FAR _Route19BattleText9
-	db "@"
-
-Route19EndBattleText9: ; 55ecd (15:5ecd)
-	TX_FAR _Route19EndBattleText9
-	db "@"
-
-Route19AfterBattleText9: ; 55ed2 (15:5ed2)
-	TX_FAR _Route19AfterBattleText9
-	db "@"
-
-Route19BattleText10: ; 55ed7 (15:5ed7)
-	TX_FAR _Route19BattleText10
-	db "@"
-
-Route19EndBattleText10: ; 55edc (15:5edc)
-	TX_FAR _Route19EndBattleText10
-	db "@"
-
-Route19AfterBattleText10: ; 55ee1 (15:5ee1)
-	TX_FAR _Route19AfterBattleText10
-	db "@"
-
-Route19Text11: ; 55ee6 (15:5ee6)
-	TX_FAR _Route19Text11
-	db "@"
-
-Route21Script: ; 55eeb (15:5eeb)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route21TrainerHeaders
-	ld de, Route21ScriptPointers
-	ld a, [W_ROUTE21CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE21CURSCRIPT], a
-	ret
-
-Route21ScriptPointers: ; 55efe (15:5efe)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route21TextPointers: ; 55f04 (15:5f04)
-	dw Route21Text1
-	dw Route21Text2
-	dw Route21Text3
-	dw Route21Text4
-	dw Route21Text5
-	dw Route21Text6
-	dw Route21Text7
-	dw Route21Text8
-	dw Route21Text9
-
-Route21TrainerHeaders: ; 55f16 (15:5f16)
-Route21TrainerHeader0: ; 55f16 (15:5f16)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText1 ; 0x5fdd TextBeforeBattle
-	dw Route21AfterBattleText1 ; 0x5fe7 TextAfterBattle
-	dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
-	dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
-
-Route21TrainerHeader1: ; 55f22 (15:5f22)
-	db $2 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText2 ; 0x5fec TextBeforeBattle
-	dw Route21AfterBattleText2 ; 0x5ff6 TextAfterBattle
-	dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
-	dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
-
-Route21TrainerHeader2: ; 55f2e (15:5f2e)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText3 ; 0x5ffb TextBeforeBattle
-	dw Route21AfterBattleText3 ; 0x6005 TextAfterBattle
-	dw Route21EndBattleText3 ; 0x6000 TextEndBattle
-	dw Route21EndBattleText3 ; 0x6000 TextEndBattle
-
-Route21TrainerHeader3: ; 55f3a (15:5f3a)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText4 ; 0x600a TextBeforeBattle
-	dw Route21AfterBattleText4 ; 0x6014 TextAfterBattle
-	dw Route21EndBattleText4 ; 0x600f TextEndBattle
-	dw Route21EndBattleText4 ; 0x600f TextEndBattle
-
-Route21TrainerHeader4: ; 55f46 (15:5f46)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText5 ; 0x6019 TextBeforeBattle
-	dw Route21AfterBattleText5 ; 0x6023 TextAfterBattle
-	dw Route21EndBattleText5 ; 0x601e TextEndBattle
-	dw Route21EndBattleText5 ; 0x601e TextEndBattle
-
-Route21TrainerHeader5: ; 55f52 (15:5f52)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText6 ; 0x6028 TextBeforeBattle
-	dw Route21AfterBattleText6 ; 0x6032 TextAfterBattle
-	dw Route21EndBattleText6 ; 0x602d TextEndBattle
-	dw Route21EndBattleText6 ; 0x602d TextEndBattle
-
-Route21TrainerHeader6: ; 55f5e (15:5f5e)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText7 ; 0x6037 TextBeforeBattle
-	dw Route21AfterBattleText7 ; 0x6041 TextAfterBattle
-	dw Route21EndBattleText7 ; 0x603c TextEndBattle
-	dw Route21EndBattleText7 ; 0x603c TextEndBattle
-
-Route21TrainerHeader7: ; 55f6a (15:5f6a)
-	db $8 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText8 ; 0x6046 TextBeforeBattle
-	dw Route21AfterBattleText8 ; 0x6050 TextAfterBattle
-	dw Route21EndBattleText8 ; 0x604b TextEndBattle
-	dw Route21EndBattleText8 ; 0x604b TextEndBattle
-
-Route21TrainerHeader8: ; 55f76 (15:5f76)
-	db $9 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7e9 ; flag's byte
-	dw Route21BattleText9 ; 0x6055 TextBeforeBattle
-	dw Route21AfterBattleText9 ; 0x605f TextAfterBattle
-	dw Route21EndBattleText9 ; 0x605a TextEndBattle
-	dw Route21EndBattleText9 ; 0x605a TextEndBattle
-
-	db $ff
-
-Route21Text1: ; 55f83 (15:5f83)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text2: ; 55f8d (15:5f8d)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text3: ; 55f97 (15:5f97)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text4: ; 55fa1 (15:5fa1)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text5: ; 55fab (15:5fab)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text6: ; 55fb5 (15:5fb5)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text7: ; 55fbf (15:5fbf)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text8: ; 55fc9 (15:5fc9)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21Text9: ; 55fd3 (15:5fd3)
-	db $08 ; asm
-	ld hl, Route21TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route21BattleText1: ; 55fdd (15:5fdd)
-	TX_FAR _Route21BattleText1
-	db "@"
-
-Route21EndBattleText1: ; 55fe2 (15:5fe2)
-	TX_FAR _Route21EndBattleText1
-	db "@"
-
-Route21AfterBattleText1: ; 55fe7 (15:5fe7)
-	TX_FAR _Route21AfterBattleText1
-	db "@"
-
-Route21BattleText2: ; 55fec (15:5fec)
-	TX_FAR _Route21BattleText2
-	db "@"
-
-Route21EndBattleText2: ; 55ff1 (15:5ff1)
-	TX_FAR _Route21EndBattleText2
-	db "@"
-
-Route21AfterBattleText2: ; 55ff6 (15:5ff6)
-	TX_FAR _Route21AfterBattleText2
-	db "@"
-
-Route21BattleText3: ; 55ffb (15:5ffb)
-	TX_FAR _Route21BattleText3
-	db "@"
-
-Route21EndBattleText3: ; 56000 (15:6000)
-	TX_FAR _Route21EndBattleText3
-	db "@"
-
-Route21AfterBattleText3: ; 56005 (15:6005)
-	TX_FAR _Route21AfterBattleText3
-	db "@"
-
-Route21BattleText4: ; 5600a (15:600a)
-	TX_FAR _Route21BattleText4
-	db "@"
-
-Route21EndBattleText4: ; 5600f (15:600f)
-	TX_FAR _Route21EndBattleText4
-	db "@"
-
-Route21AfterBattleText4: ; 56014 (15:6014)
-	TX_FAR _Route21AfterBattleText4
-	db "@"
-
-Route21BattleText5: ; 56019 (15:6019)
-	TX_FAR _Route21BattleText5
-	db "@"
-
-Route21EndBattleText5: ; 5601e (15:601e)
-	TX_FAR _Route21EndBattleText5
-	db "@"
-
-Route21AfterBattleText5: ; 56023 (15:6023)
-	TX_FAR _Route21AfterBattleText5
-	db "@"
-
-Route21BattleText6: ; 56028 (15:6028)
-	TX_FAR _Route21BattleText6
-	db "@"
-
-Route21EndBattleText6: ; 5602d (15:602d)
-	TX_FAR _Route21EndBattleText6
-	db "@"
-
-Route21AfterBattleText6: ; 56032 (15:6032)
-	TX_FAR _Route21AfterBattleText6
-	db "@"
-
-Route21BattleText7: ; 56037 (15:6037)
-	TX_FAR _Route21BattleText7
-	db "@"
-
-Route21EndBattleText7: ; 5603c (15:603c)
-	TX_FAR _Route21EndBattleText7
-	db "@"
-
-Route21AfterBattleText7: ; 56041 (15:6041)
-	TX_FAR _Route21AfterBattleText7
-	db "@"
-
-Route21BattleText8: ; 56046 (15:6046)
-	TX_FAR _Route21BattleText8
-	db "@"
-
-Route21EndBattleText8: ; 5604b (15:604b)
-	TX_FAR _Route21EndBattleText8
-	db "@"
-
-Route21AfterBattleText8: ; 56050 (15:6050)
-	TX_FAR _Route21AfterBattleText8
-	db "@"
-
-Route21BattleText9: ; 56055 (15:6055)
-	TX_FAR _Route21BattleText9
-	db "@"
-
-Route21EndBattleText9: ; 5605a (15:605a)
-	TX_FAR _Route21EndBattleText9
-	db "@"
-
-Route21AfterBattleText9: ; 5605f (15:605f)
-	TX_FAR _Route21AfterBattleText9
-	db "@"
-
 INCLUDE "data/mapHeaders/vermilionhouse2.asm"
 
-VermilionHouse2Script: ; 56070 (15:6070)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/vermilionhouse2.asm"
 
-VermilionHouse2TextPointers: ; 56073 (15:6073)
-	dw VermilionHouse2Text1
-
-VermilionHouse2Text1: ; 56075 (15:6075)
-	db $08 ; asm
-	ld a, [$d728]
-	bit 3, a
-	jr nz, asm_03ef5 ; 0x5607b
-	ld hl, UnnamedText_560b1
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, asm_eb1b7 ; 0x5608a
-	ld bc, (OLD_ROD << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d728
-	set 3, [hl]
-	ld hl, UnnamedText_560b6
-	jr asm_5dd95 ; 0x5609c
-.BagFull
-	ld hl, UnnamedText_560ca
-	jr asm_5dd95 ; 0x560a1
-asm_eb1b7 ; 0x560a3
-	ld hl, UnnamedText_560c0
-	jr asm_5dd95 ; 0x560a6
-asm_03ef5 ; 0x560a8
-	ld hl, UnnamedText_560c5
-asm_5dd95 ; 0x560ab
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_560b1: ; 560b1 (15:60b1)
-	TX_FAR _UnnamedText_560b1
-	db "@"
-
-UnnamedText_560b6: ; 560b6 (15:60b6)
-	TX_FAR _UnnamedText_560b6 ; 0x9c554
-	db $0B
-	TX_FAR _UnnamedText_560bb ; 0x9c5a4
-	db "@"
-
-UnnamedText_560c0: ; 560c0 (15:60c0)
-	TX_FAR _UnnamedText_560c0
-	db "@"
-
-UnnamedText_560c5: ; 560c5 (15:60c5)
-	TX_FAR _UnnamedText_560c5
-	db "@"
-
-UnnamedText_560ca: ; 560ca (15:60ca)
-	TX_FAR _UnnamedText_560ca
-	db "@"
-
 INCLUDE "data/mapObjects/vermilionhouse2.asm"
 
 INCLUDE "data/mapHeaders/celadonmart2.asm"
 
-CeladonMart2Script: ; 560f5 (15:60f5)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmart2.asm"
 
-CeladonMart2TextPointers: ; 560f8 (15:60f8)
-	dw CeladonMart2Text1
-	dw CeladonMart2Text2
-	dw CeladonMart2Text3
-	dw CeladonMart2Text4
-	dw CeladonMart2Text5
-
-CeladonMart2Text3: ; 56102 (15:6102)
-	TX_FAR _CeladonMart2Text3
-	db "@"
-
-CeladonMart2Text4: ; 56107 (15:6107)
-	TX_FAR _CeladonMart2Text4
-	db "@"
-
-CeladonMart2Text5: ; 5610c (15:610c)
-	TX_FAR _CeladonMart2Text5
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmart2.asm"
 
 CeladonMart2Blocks: ; 56148 (15:6148)
@@ -65419,615 +48330,26 @@
 
 INCLUDE "data/mapHeaders/fuchsiahouse3.asm"
 
-FuchsiaHouse3Script: ; 5617c (15:617c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/fuchsiahouse3.asm"
 
-FuchsiaHouse3TextPointers: ; 5617f (15:617f)
-	dw FuchsiaHouse3Text1
-
-FuchsiaHouse3Text1: ; 56181 (15:6181)
-	db $08 ; asm
-	ld a, [$d728]
-	bit 4, a
-	jr nz, .after
-
-	ld hl, UnnamedText_561bd
-	call PrintText
-
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .refused
-
-	ld bc, (GOOD_ROD << 8) | 1
-	call GiveItem
-	jr nc, .full
-
-	ld hl, $d728
-	set 4, [hl]
-
-	ld hl, UnnamedText_561c2
-	jr .talk
-
-.full
-	ld hl, UnnamedText_5621c
-	jr .talk
-
-.refused
-	ld hl, UnnamedText_56212
-	jr .talk
-
-.after
-	ld hl, UnnamedText_56217
-
-.talk
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_561bd: ; 561bd (15:61bd)
-	TX_FAR _UnnamedText_561bd
-	db "@"
-
-UnnamedText_561c2: ; 561c2 (15:61c2)
-	TX_FAR _UnnamedText_561c2 ; 0xa06e8
-	db $0B
-	db "@"
-
-UnnamedText_561c8: ; 561c8
-	para "つり こそ"
-	line "おとこの ロマン だ!"
-
-	para "へぼいつりざおは"
-	line "コイキングしか つれ なんだが"
-	line "この いいつりざおなら"
-	line "もっと いいもんが つれるんじゃ!"
-	done
-
-UnnamedText_56212: ; 56212 (15:6212)
-	TX_FAR _UnnamedText_56212
-	db "@"
-
-UnnamedText_56217: ; 56217 (15:6217)
-	TX_FAR _UnnamedText_56217
-	db "@"
-
-UnnamedText_5621c: ; 5621c (15:621c)
-	TX_FAR _UnnamedText_5621c
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiahouse3.asm"
 
 INCLUDE "data/mapHeaders/daycarem.asm"
 
-DayCareMScript: ; 5624f (15:624f)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/daycarem.asm"
 
-DayCareMTextPointers: ; 56252 (15:6252)
-	dw DayCareMText1
-
-DayCareMText1: ; 56254 (15:6254)
-	db $8
-	call SaveScreenTilesToBuffer2
-	ld a, [W_DAYCARE_IN_USE]
-	and a
-	jp nz, Func_562e1
-	ld hl, UnnamedText_5640f
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	ld hl, UnnamedText_5643b
-	jp nz, Func_56409
-	ld a, [$d163]
-	dec a
-	ld hl, UnnamedText_56445
-	jp z, Func_56409
-	ld hl, UnnamedText_56414
-	call PrintText
-	xor a
-	ld [$cfcb], a
-	ld [$d07d], a
-	ld [$cc35], a
-	call DisplayPartyMenu
-	push af
-	call GBPalWhiteOutWithDelay3
-	call Func_3dbe
-	call LoadGBPal
-	pop af
-	ld hl, UnnamedText_56437
-	jp c, Func_56409
-	ld hl, Func_2171b
-	ld b, BANK(Func_2171b)
-	call Bankswitch
-	ld hl, UnnamedText_5644a
-	jp c, Func_56409
-	xor a
-	ld [$cc2b], a
-	ld a, [wWhichPokemon]
-	ld hl, $d2b5
-	call GetPartyMonName
-	ld hl, UnnamedText_56419
-	call PrintText
-	ld a, $1
-	ld [W_DAYCARE_IN_USE], a
-	ld a, $3
-	ld [$cf95], a
-	call Func_3a68
-	xor a
-	ld [$cf95], a
-	call RemovePokemon
-	ld a, [$cf91]
-	call PlayCry
-	ld hl, UnnamedText_5641e
-	jp Func_56409
-
-Func_562e1: ; 562e1 (15:62e1)
-	xor a
-	ld hl, W_DAYCAREMONNAME
-	call GetPartyMonName
-	ld a, $3
-	ld [$cc49], a
-	call LoadMonData
-	ld hl, Func_58f43
-	ld b, BANK(Func_58f43)
-	call Bankswitch
-	ld a, d
-	cp $64
-	jr c, .asm_56315
-	ld d, $64
-	ld hl, CalcExperience
-	ld b, BANK(CalcExperience)
-	call Bankswitch
-	ld hl, $da6d
-	ld a, [H_NUMTOPRINT]
-	ld [hli], a
-	ld a, [$ff97]
-	ld [hli], a
-	ld a, [$ff98]
-	ld [hl], a
-	ld d, $64
-
-.asm_56315
-	xor a
-	ld [wTrainerEngageDistance], a
-	ld hl, $da62
-	ld a, [hl]
-	ld [wTrainerSpriteOffset], a
-	cp d
-	ld [hl], d
-	ld hl, UnnamedText_56432
-	jr z, .asm_56333
-	ld a, [wTrainerSpriteOffset]
-	ld b, a
-	ld a, d
-	sub b
-	ld [wTrainerEngageDistance], a
-	ld hl, UnnamedText_56423
-
-.asm_56333
-	call PrintText
-	ld a, [W_NUMINPARTY]
-	cp $6
-	ld hl, UnnamedText_56440
-	jp z, .asm_56403
-	ld de, wTrainerFacingDirection
-	xor a
-	ld [de], a
-	inc de
-	ld [de], a
-	ld hl, wTrainerScreenX
-	ld a, $1
-	ld [hli], a
-	ld [hl], $0
-	ld a, [wTrainerEngageDistance]
-	inc a
-	ld b, a
-	ld c, $2
-.asm_56357
-	push hl
-	push de
-	push bc
-	ld a, $b
-	call Predef
-	pop bc
-	pop de
-	pop hl
-	dec b
-	jr nz, .asm_56357
-	ld hl, UnnamedText_56428
-	call PrintText
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	call YesNoChoice
-	ld hl, UnnamedText_56437
-	ld a, [wCurrentMenuItem]
-	and a
-	jp nz, .asm_56403
-	ld hl, wTrainerFacingDirection
-	ld [$ff9f], a
-	ld a, [hli]
-	ld [$ffa0], a
-	ld a, [hl]
-	ld [$ffa1], a
-	call HasEnoughMoney
-	jr nc, .asm_56396
-	ld hl, UnnamedText_56454
-	jp .asm_56403
-
-.asm_56396
-	xor a
-	ld [W_DAYCARE_IN_USE], a
-	ld hl, wTrainerEngageDistance
-	ld [hli], a
-	inc hl
-	ld de, $d349
-	ld c, $3
-	ld a, $c
-	call Predef
-	ld a, (SFX_02_5a - SFX_Headers_02) / 3
-	call PlaySoundWaitForCurrent
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	ld hl, UnnamedText_5644f
-	call PrintText
-	ld a, $2
-	ld [$cf95], a
-	call Func_3a68
-	ld a, [W_DAYCAREMONDATA]
-	ld [$cf91], a
-	ld a, [W_NUMINPARTY]
-	dec a
-	push af
-	ld bc, $002c
-	push bc
-	ld hl, W_PARTYMON1_MOVE1
-	call AddNTimes
-	ld d, h
-	ld e, l
-	ld a, $1
-	ld [wHPBarMaxHP], a
-	ld a, $3e
-	call Predef
-	pop bc
-	pop af
-	ld hl, W_PARTYMON1_HP
-	call AddNTimes
-	ld d, h
-	ld e, l
-	ld bc, $0021
-	add hl, bc
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hl]
-	ld [de], a
-	ld a, [$cf91]
-	call PlayCry
-	ld hl, UnnamedText_5642d
-	jr Func_56409
-
-.asm_56403
-	ld a, [wTrainerSpriteOffset]
-	ld [$da62], a
-
-Func_56409: ; 56409 (15:6409)
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5640f: ; 5640f (15:640f)
-	TX_FAR _UnnamedText_5640f
-	db "@"
-
-UnnamedText_56414: ; 56414 (15:6414)
-	TX_FAR _UnnamedText_56414
-	db "@"
-
-UnnamedText_56419: ; 56419 (15:6419)
-	TX_FAR _UnnamedText_56419
-	db "@"
-
-UnnamedText_5641e: ; 5641e (15:641e)
-	TX_FAR _UnnamedText_5641e
-	db "@"
-
-UnnamedText_56423: ; 56423 (15:6423)
-	TX_FAR _UnnamedText_56423
-	db "@"
-
-UnnamedText_56428: ; 56428 (15:6428)
-	TX_FAR _UnnamedText_56428
-	db "@"
-
-UnnamedText_5642d: ; 5642d (15:642d)
-	TX_FAR _UnnamedText_5642d
-	db "@"
-
-UnnamedText_56432: ; 56432 (15:6432)
-	TX_FAR _UnnamedText_56432
-	db "@"
-
-UnnamedText_56437: ; 56437 (15:6437)
-	TX_FAR _UnnamedText_56437 ; 0x8c000
-UnnamedText_5643b: ; 5643b (15:643b)
-	TX_FAR _UnnamedText_5643b ; 0x8c013
-	db "@"
-
-UnnamedText_56440: ; 56440 (15:6440)
-	TX_FAR _UnnamedText_56440
-	db "@"
-
-UnnamedText_56445: ; 56445 (15:6445)
-	TX_FAR _UnnamedText_56445
-	db "@"
-
-UnnamedText_5644a: ; 5644a (15:644a)
-	TX_FAR _UnnamedText_5644a
-	db "@"
-
-UnnamedText_5644f: ; 5644f (15:644f)
-	TX_FAR _UnnamedText_5644f
-	db "@"
-
-UnnamedText_56454: ; 56454 (15:6454)
-	TX_FAR _UnnamedText_56454
-	db "@"
-
 INCLUDE "data/mapObjects/daycarem.asm"
 
 INCLUDE "data/mapHeaders/route12house.asm"
 
-Route12HouseScript: ; 5647f (15:647f)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route12house.asm"
 
-Route12HouseTextPointers: ; 56482 (15:6482)
-	dw Route12HouseText1
-
-Route12HouseText1: ; 56484 (15:6484)
-	db $08 ; asm
-	ld a, [$d728]
-	bit 5, a
-	jr nz, asm_b4cad ; 0x5648a
-	ld hl, UnnamedText_564c0
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, asm_a2d76 ; 0x56499
-	ld bc, (SUPER_ROD << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d728
-	set 5, [hl]
-	ld hl, UnnamedText_564c5
-	jr asm_df984 ; 0x564ab
-.BagFull
-	ld hl, UnnamedText_564d9
-	jr asm_df984 ; 0x564b0
-asm_a2d76 ; 0x564b2
-	ld hl, UnnamedText_564cf
-	jr asm_df984 ; 0x564b5
-asm_b4cad ; 0x564b7
-	ld hl, UnnamedText_564d4
-asm_df984 ; 0x564ba
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_564c0: ; 564c0 (15:64c0)
-	TX_FAR _UnnamedText_564c0
-	db "@"
-
-UnnamedText_564c5: ; 564c5 (15:64c5)
-	TX_FAR _UnnamedText_564c5 ; 0x8ca00
-	db $0B
-	TX_FAR _UnnamedText_564ca ; 0x8ca4f
-	db "@"
-
-UnnamedText_564cf: ; 564cf (15:64cf)
-	TX_FAR _UnnamedText_564cf
-	db "@"
-
-UnnamedText_564d4: ; 564d4 (15:64d4)
-	TX_FAR _UnnamedText_564d4
-	db "@"
-
-UnnamedText_564d9: ; 564d9 (15:64d9)
-	TX_FAR _UnnamedText_564d9
-	db "@"
-
 INCLUDE "data/mapObjects/route12house.asm"
 
 INCLUDE "data/mapHeaders/silphco8.asm"
 
-SilphCo8Script: ; 56504 (15:6504)
-	call SilphCo8Script_5651a
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo8TrainerHeader0
-	ld de, SilphCo8ScriptPointers
-	ld a, [W_SILPHCO8CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO8CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco8.asm"
 
-SilphCo8Script_5651a: ; 5651a (15:651a)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_5653e ; $653e
-	call Func_56541
-	call Func_5656d
-	ld a, [$d832]
-	bit 0, a
-	ret nz
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $403
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_5653e: ; 5653e (15:653e)
-	db $04,$03,$FF
-
-Func_56541: ; 56541 (15:6541)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_5654d
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_56569
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_5655e
-	inc hl
-	jr .asm_5654d
-.asm_5655e
-	ld a, [hli]
-	cp c
-	jr nz, .asm_5654d
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_56569
-	xor a
-	ld [$ffe0], a
-	ret
-
-Func_5656d: ; 5656d (15:656d)
-	ld a, [$ffe0]
-	and a
-	ret z
-	ld hl, $d832
-	set 0, [hl]
-	ret
-
-SilphCo8ScriptPointers: ; 56577 (15:6577)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo8TextPointers: ; 5657d (15:657d)
-	dw SilphCo8Text1
-	dw SilphCo8Text2
-	dw SilphCo8Text3
-	dw SilphCo8Text4
-
-SilphCo8TrainerHeaders: ; 56585 (15:6585)
-SilphCo8TrainerHeader0: ; 56585 (15:6585)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d831 ; flag's byte
-	dw SilphCo8BattleText1 ; 0x65e6 TextBeforeBattle
-	dw SilphCo8AfterBattleText1 ; 0x65f0 TextAfterBattle
-	dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
-	dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
-
-SilphCo8TrainerHeader1: ; 56591 (15:6591)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d831 ; flag's byte
-	dw SilphCo8BattleText2 ; 0x65f5 TextBeforeBattle
-	dw SilphCo8AfterBattleText2 ; 0x65ff TextAfterBattle
-	dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
-	dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
-
-SilphCo8TrainerHeader2: ; 5659d (15:659d)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d831 ; flag's byte
-	dw SilphCo8BattleText3 ; 0x6604 TextBeforeBattle
-	dw SilphCo8AfterBattleText3 ; 0x660e TextAfterBattle
-	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
-	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
-
-	db $ff
-
-SilphCo8Text1: ; 565aa (15:65aa)
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a
-	ld hl, UnnamedText_565c3
-	jr nz, asm_a468f ; 0x565b3
-	ld hl, UnnamedText_565be
-asm_a468f ; 0x565b8
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_565be: ; 565be (15:65be)
-	TX_FAR _UnnamedText_565be
-	db "@"
-
-UnnamedText_565c3: ; 565c3 (15:65c3)
-	TX_FAR _UnnamedText_565c3
-	db "@"
-
-SilphCo8Text2: ; 565c8 (15:65c8)
-	db $08 ; asm
-	ld hl, SilphCo8TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo8Text3: ; 565d2 (15:65d2)
-	db $08 ; asm
-	ld hl, SilphCo8TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo8Text4: ; 565dc (15:65dc)
-	db $08 ; asm
-	ld hl, SilphCo8TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo8BattleText1: ; 565e6 (15:65e6)
-	TX_FAR _SilphCo8BattleText1
-	db "@"
-
-SilphCo8EndBattleText1: ; 565eb (15:65eb)
-	TX_FAR _SilphCo8EndBattleText1
-	db "@"
-
-SilphCo8AfterBattleText1: ; 565f0 (15:65f0)
-	TX_FAR _SilphCo8AfterBattleText1
-	db "@"
-
-SilphCo8BattleText2: ; 565f5 (15:65f5)
-	TX_FAR _SilphCo8BattleText2
-	db "@"
-
-SilphCo8EndBattleText2: ; 565fa (15:65fa)
-	TX_FAR _SilphCo8EndBattleText2
-	db "@"
-
-SilphCo8AfterBattleText2: ; 565ff (15:65ff)
-	TX_FAR _SilphCo8AfterBattleText2
-	db "@"
-
-SilphCo8BattleText3: ; 56604 (15:6604)
-	TX_FAR _SilphCo8BattleText3
-	db "@"
-
-SilphCo8EndBattleText3: ; 56609 (15:6609)
-	TX_FAR _SilphCo8EndBattleText3
-	db "@"
-
-SilphCo8AfterBattleText3: ; 5660e (15:660e)
-	TX_FAR _SilphCo8AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/silphco8.asm"
 
 SilphCo8Blocks: ; 5666d (15:666d)
@@ -67029,2127 +49351,26 @@
 	TX_FAR _OaksAideNoRoomText
 	db "@"
 
-Route6Script: ; 590b0 (16:50b0)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route6TrainerHeaders
-	ld de, Route6ScriptPointers
-	ld a, [W_ROUTE6CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE6CURSCRIPT], a
-	ret
+INCLUDE "scripts/route6.asm"
 
-Route6ScriptPointers: ; 590c3 (16:50c3)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
+INCLUDE "scripts/route8.asm"
 
-Route6TextPointers: ; 590c9 (16:50c9)
-	dw Route6Text1
-	dw Route6Text2
-	dw Route6Text3
-	dw Route6Text4
-	dw Route6Text5
-	dw Route6Text6
-	dw Route6Text7
+INCLUDE "scripts/route10.asm"
 
-Route6TrainerHeaders: ; 590d7 (16:50d7)
-Route6TrainerHeader0: ; 590d7 (16:50d7)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText1 ; 0x512a TextBeforeBattle
-	dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
-	dw Route6EndBattleText1 ; 0x512f TextEndBattle
-	dw Route6EndBattleText1 ; 0x512f TextEndBattle
+INCLUDE "scripts/route11.asm"
 
-Route6TrainerHeader1: ; 590e3 (16:50e3)
-	db $2 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText2 ; 0x5143 TextBeforeBattle
-	dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
-	dw Route6EndBattleText2 ; 0x5148 TextEndBattle
-	dw Route6EndBattleText2 ; 0x5148 TextEndBattle
+INCLUDE "scripts/route12.asm"
 
-Route6TrainerHeader2: ; 590ef (16:50ef)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText3 ; 0x5157 TextBeforeBattle
-	dw Route6AfterBattleText3 ; 0x5161 TextAfterBattle
-	dw Route6EndBattleText3 ; 0x515c TextEndBattle
-	dw Route6EndBattleText3 ; 0x515c TextEndBattle
+INCLUDE "scripts/route15.asm"
 
-Route6TrainerHeader3: ; 590fb (16:50fb)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText4 ; 0x5170 TextBeforeBattle
-	dw Route6AfterBattleText4 ; 0x517a TextAfterBattle
-	dw Route6EndBattleText4 ; 0x5175 TextEndBattle
-	dw Route6EndBattleText4 ; 0x5175 TextEndBattle
+INCLUDE "scripts/route16.asm"
 
-Route6TrainerHeader4: ; 59107 (16:5107)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText5 ; 0x5189 TextBeforeBattle
-	dw Route6AfterBattleText5 ; 0x5193 TextAfterBattle
-	dw Route6EndBattleText5 ; 0x518e TextEndBattle
-	dw Route6EndBattleText5 ; 0x518e TextEndBattle
+INCLUDE "scripts/route18.asm"
 
-Route6TrainerHeader5: ; 59113 (16:5113)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7c9 ; flag's byte
-	dw Route6BattleText6 ; 0x51a2 TextBeforeBattle
-	dw Route6AfterBattleText6 ; 0x51ac TextAfterBattle
-	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
-	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
-
-	db $ff
-
-Route6Text1: ; 59120 (16:5120)
-	db $8
-	ld hl, Route6TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText1: ; 5912a (16:512a)
-	TX_FAR _Route6BattleText1
-	db "@"
-
-Route6EndBattleText1: ; 5912f (16:512f)
-	TX_FAR _Route6EndBattleText1
-	db "@"
-
-Route6AfterBattleText1: ; 59134 (16:5134)
-	TX_FAR _Route6AfterBattleText1
-	db "@"
-
-Route6Text2: ; 59139 (16:5139)
-	db $08 ; asm
-	ld hl, Route6TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText2: ; 59143 (16:5143)
-	TX_FAR _Route6BattleText2
-	db "@"
-
-Route6EndBattleText2: ; 59148 (16:5148)
-	TX_FAR _Route6EndBattleText2
-	db "@"
-
-Route6Text3: ; 5914d (16:514d)
-	db $08 ; asm
-	ld hl, Route6TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText3: ; 59157 (16:5157)
-	TX_FAR _Route6BattleText3
-	db "@"
-
-Route6EndBattleText3: ; 5915c (16:515c)
-	TX_FAR _Route6EndBattleText3
-	db "@"
-
-Route6AfterBattleText3: ; 59161 (16:5161)
-	TX_FAR _Route6AfterBattleText3
-	db "@"
-
-Route6Text4: ; 59166 (16:5166)
-	db $08 ; asm
-	ld hl, Route6TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText4: ; 59170 (16:5170)
-	TX_FAR _Route6BattleText4
-	db "@"
-
-Route6EndBattleText4: ; 59175 (16:5175)
-	TX_FAR _Route6EndBattleText4
-	db "@"
-
-Route6AfterBattleText4: ; 5917a (16:517a)
-	TX_FAR _Route6AfterBattleText4
-	db "@"
-
-Route6Text5: ; 5917f (16:517f)
-	db $08 ; asm
-	ld hl, Route6TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText5: ; 59189 (16:5189)
-	TX_FAR _Route6BattleText5
-	db "@"
-
-Route6EndBattleText5: ; 5918e (16:518e)
-	TX_FAR _Route6EndBattleText5
-	db "@"
-
-Route6AfterBattleText5: ; 59193 (16:5193)
-	TX_FAR _Route6AfterBattleText5
-	db "@"
-
-Route6Text6: ; 59198 (16:5198)
-	db $08 ; asm
-	ld hl, Route6TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route6BattleText6: ; 591a2 (16:51a2)
-	TX_FAR _Route6BattleText6
-	db "@"
-
-Route6EndBattleText6: ; 591a7 (16:51a7)
-	TX_FAR _Route6EndBattleText6
-	db "@"
-
-Route6AfterBattleText6: ; 591ac (16:51ac)
-	TX_FAR _Route6AfterBattleText6
-	db "@"
-
-Route6Text7: ; 591b1 (16:51b1)
-	TX_FAR _Route6Text7
-	db "@"
-
-Route8Script: ; 591b6 (16:51b6)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route8TrainerHeaders
-	ld de, Route8ScriptPointers
-	ld a, [W_ROUTE8CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE8CURSCRIPT], a
-	ret
-
-Route8ScriptPointers: ; 591c9 (16:51c9)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route8TextPointers: ; 591cf (16:51cf)
-	dw Route8Text1
-	dw Route8Text2
-	dw Route8Text3
-	dw Route8Text4
-	dw Route8Text5
-	dw Route8Text6
-	dw Route8Text7
-	dw Route8Text8
-	dw Route8Text9
-	dw Route8Text10
-
-Route8TrainerHeaders: ; 591e3 (16:51e3)
-Route8TrainerHeader0: ; 591e3 (16:51e3)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText1 ; 0x525a TextBeforeBattle
-	dw Route8AfterBattleText1 ; 0x5264 TextAfterBattle
-	dw Route8EndBattleText1 ; 0x525f TextEndBattle
-	dw Route8EndBattleText1 ; 0x525f TextEndBattle
-
-Route8TrainerHeader1: ; 591ef (16:51ef)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText2 ; 0x5273 TextBeforeBattle
-	dw Route8AfterBattleText2 ; 0x527d TextAfterBattle
-	dw Route8EndBattleText2 ; 0x5278 TextEndBattle
-	dw Route8EndBattleText2 ; 0x5278 TextEndBattle
-
-Route8TrainerHeader2: ; 591fb (16:51fb)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText3 ; 0x528c TextBeforeBattle
-	dw Route8AfterBattleText3 ; 0x5296 TextAfterBattle
-	dw Route8EndBattleText3 ; 0x5291 TextEndBattle
-	dw Route8EndBattleText3 ; 0x5291 TextEndBattle
-
-Route8TrainerHeader3: ; 59207 (16:5207)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText4 ; 0x52a5 TextBeforeBattle
-	dw Route8AfterBattleText4 ; 0x52af TextAfterBattle
-	dw Route8EndBattleText4 ; 0x52aa TextEndBattle
-	dw Route8EndBattleText4 ; 0x52aa TextEndBattle
-
-Route8TrainerHeader4: ; 59213 (16:5213)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText5 ; 0x52be TextBeforeBattle
-	dw Route8AfterBattleText5 ; 0x52c8 TextAfterBattle
-	dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
-	dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
-
-Route8TrainerHeader5: ; 5921f (16:521f)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText6 ; 0x52d7 TextBeforeBattle
-	dw Route8AfterBattleText6 ; 0x52e1 TextAfterBattle
-	dw Route8EndBattleText6 ; 0x52dc TextEndBattle
-	dw Route8EndBattleText6 ; 0x52dc TextEndBattle
-
-Route8TrainerHeader6: ; 5922b (16:522b)
-	db $7 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText7 ; 0x52f0 TextBeforeBattle
-	dw Route8AfterBattleText7 ; 0x52fa TextAfterBattle
-	dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
-	dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
-
-Route8TrainerHeader7: ; 59237 (16:5237)
-	db $8 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText8 ; 0x5309 TextBeforeBattle
-	dw Route8AfterBattleText8 ; 0x5313 TextAfterBattle
-	dw Route8EndBattleText8 ; 0x530e TextEndBattle
-	dw Route8EndBattleText8 ; 0x530e TextEndBattle
-
-Route8TrainerHeader8: ; 59243 (16:5243)
-	db $9 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7cd ; flag's byte
-	dw Route8BattleText9 ; 0x5322 TextBeforeBattle
-	dw Route8AfterBattleText9 ; 0x532c TextAfterBattle
-	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
-	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
-
-	db $ff
-
-Route8Text1: ; 59250 (16:5250)
-	db $8
-	ld hl, Route8TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText1: ; 5925a (16:525a)
-	TX_FAR _Route8BattleText1
-	db "@"
-
-Route8EndBattleText1: ; 5925f (16:525f)
-	TX_FAR _Route8EndBattleText1
-	db "@"
-
-Route8AfterBattleText1: ; 59264 (16:5264)
-	TX_FAR _Route8AfterBattleText1
-	db "@"
-
-Route8Text2: ; 59269 (16:5269)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText2: ; 59273 (16:5273)
-	TX_FAR _Route8BattleText2
-	db "@"
-
-Route8EndBattleText2: ; 59278 (16:5278)
-	TX_FAR _Route8EndBattleText2
-	db "@"
-
-Route8AfterBattleText2: ; 5927d (16:527d)
-	TX_FAR _Route8AfterBattleText2
-	db "@"
-
-Route8Text3: ; 59282 (16:5282)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText3: ; 5928c (16:528c)
-	TX_FAR _Route8BattleText3
-	db "@"
-
-Route8EndBattleText3: ; 59291 (16:5291)
-	TX_FAR _Route8EndBattleText3
-	db "@"
-
-Route8AfterBattleText3: ; 59296 (16:5296)
-	TX_FAR _Route8AfterBattleText3
-	db "@"
-
-Route8Text4: ; 5929b (16:529b)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText4: ; 592a5 (16:52a5)
-	TX_FAR _Route8BattleText4
-	db "@"
-
-Route8EndBattleText4: ; 592aa (16:52aa)
-	TX_FAR _Route8EndBattleText4
-	db "@"
-
-Route8AfterBattleText4: ; 592af (16:52af)
-	TX_FAR _Route8AfterBattleText4
-	db "@"
-
-Route8Text5: ; 592b4 (16:52b4)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText5: ; 592be (16:52be)
-	TX_FAR _Route8BattleText5
-	db "@"
-
-Route8EndBattleText5: ; 592c3 (16:52c3)
-	TX_FAR _Route8EndBattleText5
-	db "@"
-
-Route8AfterBattleText5: ; 592c8 (16:52c8)
-	TX_FAR _Route8AfterBattleText5
-	db "@"
-
-Route8Text6: ; 592cd (16:52cd)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText6: ; 592d7 (16:52d7)
-	TX_FAR _Route8BattleText6
-	db "@"
-
-Route8EndBattleText6: ; 592dc (16:52dc)
-	TX_FAR _Route8EndBattleText6
-	db "@"
-
-Route8AfterBattleText6: ; 592e1 (16:52e1)
-	TX_FAR _Route8AfterBattleText6
-	db "@"
-
-Route8Text7: ; 592e6 (16:52e6)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText7: ; 592f0 (16:52f0)
-	TX_FAR _Route8BattleText7
-	db "@"
-
-Route8EndBattleText7: ; 592f5 (16:52f5)
-	TX_FAR _Route8EndBattleText7
-	db "@"
-
-Route8AfterBattleText7: ; 592fa (16:52fa)
-	TX_FAR _Route8AfterBattleText7
-	db "@"
-
-Route8Text8: ; 592ff (16:52ff)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText8: ; 59309 (16:5309)
-	TX_FAR _Route8BattleText8
-	db "@"
-
-Route8EndBattleText8: ; 5930e (16:530e)
-	TX_FAR _Route8EndBattleText8
-	db "@"
-
-Route8AfterBattleText8: ; 59313 (16:5313)
-	TX_FAR _Route8AfterBattleText8
-	db "@"
-
-Route8Text9: ; 59318 (16:5318)
-	db $08 ; asm
-	ld hl, Route8TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route8BattleText9: ; 59322 (16:5322)
-	TX_FAR _Route8BattleText9
-	db "@"
-
-Route8EndBattleText9: ; 59327 (16:5327)
-	TX_FAR _Route8EndBattleText9
-	db "@"
-
-Route8AfterBattleText9: ; 5932c (16:532c)
-	TX_FAR _Route8AfterBattleText9
-	db "@"
-
-Route8Text10: ; 59331 (16:5331)
-	TX_FAR _Route8Text10
-	db "@"
-
-Route10Script: ; 59336 (16:5336)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route10TrainerHeaders
-	ld de, Route10ScriptPointers
-	ld a, [W_ROUTE10CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE10CURSCRIPT], a
-	ret
-
-Route10ScriptPointers: ; 59349 (16:5349)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route10TextPointers: ; 5934f (16:534f)
-	dw Route10Text1
-	dw Route10Text2
-	dw Route10Text3
-	dw Route10Text4
-	dw Route10Text5
-	dw Route10Text6
-	dw Route10Text7
-	dw PokeCenterSignText
-	dw Route10Text9
-	dw Route10Text10
-
-Route10TrainerHeaders: ; 59363 (16:5363)
-Route10TrainerHeader0: ; 59363 (16:5363)
-	db $1 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText1 ; 0x53b6 TextBeforeBattle
-	dw Route10AfterBattleText1 ; 0x53c0 TextAfterBattle
-	dw Route10EndBattleText1 ; 0x53bb TextEndBattle
-	dw Route10EndBattleText1 ; 0x53bb TextEndBattle
-
-Route10TrainerHeader1: ; 5936f (16:536f)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText2 ; 0x53cf TextBeforeBattle
-	dw Route10AfterBattleText2 ; 0x53d9 TextAfterBattle
-	dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
-	dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
-
-Route10TrainerHeader2: ; 5937b (16:537b)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText3 ; 0x53e8 TextBeforeBattle
-	dw Route10AfterBattleText3 ; 0x53f2 TextAfterBattle
-	dw Route10EndBattleText3 ; 0x53ed TextEndBattle
-	dw Route10EndBattleText3 ; 0x53ed TextEndBattle
-
-Route10TrainerHeader3: ; 59387 (16:5387)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText4 ; 0x5401 TextBeforeBattle
-	dw Route10AfterBattleText4 ; 0x540b TextAfterBattle
-	dw Route10EndBattleText4 ; 0x5406 TextEndBattle
-	dw Route10EndBattleText4 ; 0x5406 TextEndBattle
-
-Route10TrainerHeader4: ; 59393 (16:5393)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText5 ; 0x541a TextBeforeBattle
-	dw Route10AfterBattleText5 ; 0x5424 TextAfterBattle
-	dw Route10EndBattleText5 ; 0x541f TextEndBattle
-	dw Route10EndBattleText5 ; 0x541f TextEndBattle
-
-Route10TrainerHeader5: ; 5939f (16:539f)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d1 ; flag's byte
-	dw Route10BattleText6 ; 0x5433 TextBeforeBattle
-	dw Route10AfterBattleText6 ; 0x543d TextAfterBattle
-	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
-	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
-
-	db $ff
-
-Route10Text1: ; 593ac (16:53ac)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText1: ; 593b6 (16:53b6)
-	TX_FAR _Route10BattleText1
-	db "@"
-
-Route10EndBattleText1: ; 593bb (16:53bb)
-	TX_FAR _Route10EndBattleText1
-	db "@"
-
-Route10AfterBattleText1: ; 593c0 (16:53c0)
-	TX_FAR _Route10AfterBattleText1
-	db "@"
-
-Route10Text2: ; 593c5 (16:53c5)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText2: ; 593cf (16:53cf)
-	TX_FAR _Route10BattleText2
-	db "@"
-
-Route10EndBattleText2: ; 593d4 (16:53d4)
-	TX_FAR _Route10EndBattleText2
-	db "@"
-
-Route10AfterBattleText2: ; 593d9 (16:53d9)
-	TX_FAR _Route10AfterBattleText2
-	db "@"
-
-Route10Text3: ; 593de (16:53de)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText3: ; 593e8 (16:53e8)
-	TX_FAR _Route10BattleText3
-	db "@"
-
-Route10EndBattleText3: ; 593ed (16:53ed)
-	TX_FAR _Route10EndBattleText3
-	db "@"
-
-Route10AfterBattleText3: ; 593f2 (16:53f2)
-	TX_FAR _Route10AfterBattleText3
-	db "@"
-
-Route10Text4: ; 593f7 (16:53f7)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText4: ; 59401 (16:5401)
-	TX_FAR _Route10BattleText4
-	db "@"
-
-Route10EndBattleText4: ; 59406 (16:5406)
-	TX_FAR _Route10EndBattleText4
-	db "@"
-
-Route10AfterBattleText4: ; 5940b (16:540b)
-	TX_FAR _Route10AfterBattleText4
-	db "@"
-
-Route10Text5: ; 59410 (16:5410)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText5: ; 5941a (16:541a)
-	TX_FAR _Route10BattleText5
-	db "@"
-
-Route10EndBattleText5: ; 5941f (16:541f)
-	TX_FAR _Route10EndBattleText5
-	db "@"
-
-Route10AfterBattleText5: ; 59424 (16:5424)
-	TX_FAR _Route10AfterBattleText5
-	db "@"
-
-Route10Text6: ; 59429 (16:5429)
-	db $08 ; asm
-	ld hl, Route10TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route10BattleText6: ; 59433 (16:5433)
-	TX_FAR _Route10BattleText6
-	db "@"
-
-Route10EndBattleText6: ; 59438 (16:5438)
-	TX_FAR _Route10EndBattleText6
-	db "@"
-
-Route10AfterBattleText6: ; 5943d (16:543d)
-	TX_FAR _Route10AfterBattleText6
-	db "@"
-
-Route10Text9: ; 59442 (16:5442)
-Route10Text7: ; 59442 (16:5442)
-	TX_FAR _Route10Text7 ; _Route10Text9
-	db "@"
-
-Route10Text10: ; 59447 (16:5447)
-	TX_FAR _Route10Text10
-	db "@"
-
-Route11Script: ; 5944c (16:544c)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route11TrainerHeaders
-	ld de, Route11ScriptPointers
-	ld a, [W_ROUTE11CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE11CURSCRIPT], a
-	ret
-
-Route11ScriptPointers: ; 5945f (16:545f)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route11TextPointers: ; 59465 (16:5465)
-	dw Route11Text1
-	dw Route11Text2
-	dw Route11Text3
-	dw Route11Text4
-	dw Route11Text5
-	dw Route11Text6
-	dw Route11Text7
-	dw Route11Text8
-	dw Route11Text9
-	dw Route11Text10
-	dw Route11Text11
-
-Route11TrainerHeaders: ; 5947b (16:547b)
-Route11TrainerHeader0: ; 5947b (16:547b)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText1 ; 0x54fe TextBeforeBattle
-	dw Route11AfterBattleText1 ; 0x5508 TextAfterBattle
-	dw Route11EndBattleText1 ; 0x5503 TextEndBattle
-	dw Route11EndBattleText1 ; 0x5503 TextEndBattle
-
-Route11TrainerHeader1: ; 59487 (16:5487)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText2 ; 0x5517 TextBeforeBattle
-	dw Route11AfterBattleText2 ; 0x5521 TextAfterBattle
-	dw Route11EndBattleText2 ; 0x551c TextEndBattle
-	dw Route11EndBattleText2 ; 0x551c TextEndBattle
-
-Route11TrainerHeader2: ; 59493 (16:5493)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText3 ; 0x5530 TextBeforeBattle
-	dw Route11AfterBattleText3 ; 0x553a TextAfterBattle
-	dw Route11EndBattleText3 ; 0x5535 TextEndBattle
-	dw Route11EndBattleText3 ; 0x5535 TextEndBattle
-
-Route11TrainerHeader3: ; 5949f (16:549f)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText4 ; 0x5549 TextBeforeBattle
-	dw Route11AfterBattleText4 ; 0x5553 TextAfterBattle
-	dw Route11EndBattleText4 ; 0x554e TextEndBattle
-	dw Route11EndBattleText4 ; 0x554e TextEndBattle
-
-Route11TrainerHeader4: ; 594ab (16:54ab)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText5 ; 0x5562 TextBeforeBattle
-	dw Route11AfterBattleText5 ; 0x556c TextAfterBattle
-	dw Route11EndBattleText5 ; 0x5567 TextEndBattle
-	dw Route11EndBattleText5 ; 0x5567 TextEndBattle
-
-Route11TrainerHeader5: ; 594b7 (16:54b7)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText6 ; 0x557b TextBeforeBattle
-	dw Route11AfterBattleText6 ; 0x5585 TextAfterBattle
-	dw Route11EndBattleText6 ; 0x5580 TextEndBattle
-	dw Route11EndBattleText6 ; 0x5580 TextEndBattle
-
-Route11TrainerHeader6: ; 594c3 (16:54c3)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText7 ; 0x5594 TextBeforeBattle
-	dw Route11AfterBattleText7 ; 0x559e TextAfterBattle
-	dw Route11EndBattleText7 ; 0x5599 TextEndBattle
-	dw Route11EndBattleText7 ; 0x5599 TextEndBattle
-
-Route11TrainerHeader7: ; 594cf (16:54cf)
-	db $8 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText8 ; 0x55ad TextBeforeBattle
-	dw Route11AfterBattleText8 ; 0x55b7 TextAfterBattle
-	dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
-	dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
-
-Route11TrainerHeader8: ; 594db (16:54db)
-	db $9 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText9 ; 0x55c6 TextBeforeBattle
-	dw Route11AfterBattleText9 ; 0x55d0 TextAfterBattle
-	dw Route11EndBattleText9 ; 0x55cb TextEndBattle
-	dw Route11EndBattleText9 ; 0x55cb TextEndBattle
-
-Route11TrainerHeader9: ; 594e7 (16:54e7)
-	db $a ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d5 ; flag's byte
-	dw Route11BattleText10 ; 0x55df TextBeforeBattle
-	dw Route11AfterBattleText10 ; 0x55e9 TextAfterBattle
-	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
-	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
-
-	db $ff
-
-Route11Text1: ; 594f4 (16:54f4)
-	db $8
-	ld hl, Route11TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText1: ; 594fe (16:54fe)
-	TX_FAR _Route11BattleText1
-	db "@"
-
-Route11EndBattleText1: ; 59503 (16:5503)
-	TX_FAR _Route11EndBattleText1
-	db "@"
-
-Route11AfterBattleText1: ; 59508 (16:5508)
-	TX_FAR _Route11AfterBattleText1
-	db "@"
-
-Route11Text2: ; 5950d (16:550d)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText2: ; 59517 (16:5517)
-	TX_FAR _Route11BattleText2
-	db "@"
-
-Route11EndBattleText2: ; 5951c (16:551c)
-	TX_FAR _Route11EndBattleText2
-	db "@"
-
-Route11AfterBattleText2: ; 59521 (16:5521)
-	TX_FAR _Route11AfterBattleText2
-	db "@"
-
-Route11Text3: ; 59526 (16:5526)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText3: ; 59530 (16:5530)
-	TX_FAR _Route11BattleText3
-	db "@"
-
-Route11EndBattleText3: ; 59535 (16:5535)
-	TX_FAR _Route11EndBattleText3
-	db "@"
-
-Route11AfterBattleText3: ; 5953a (16:553a)
-	TX_FAR _Route11AfterBattleText3
-	db "@"
-
-Route11Text4: ; 5953f (16:553f)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText4: ; 59549 (16:5549)
-	TX_FAR _Route11BattleText4
-	db "@"
-
-Route11EndBattleText4: ; 5954e (16:554e)
-	TX_FAR _Route11EndBattleText4
-	db "@"
-
-Route11AfterBattleText4: ; 59553 (16:5553)
-	TX_FAR _Route11AfterBattleText4
-	db "@"
-
-Route11Text5: ; 59558 (16:5558)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText5: ; 59562 (16:5562)
-	TX_FAR _Route11BattleText5
-	db "@"
-
-Route11EndBattleText5: ; 59567 (16:5567)
-	TX_FAR _Route11EndBattleText5
-	db "@"
-
-Route11AfterBattleText5: ; 5956c (16:556c)
-	TX_FAR _Route11AfterBattleText5
-	db "@"
-
-Route11Text6: ; 59571 (16:5571)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText6: ; 5957b (16:557b)
-	TX_FAR _Route11BattleText6
-	db "@"
-
-Route11EndBattleText6: ; 59580 (16:5580)
-	TX_FAR _Route11EndBattleText6
-	db "@"
-
-Route11AfterBattleText6: ; 59585 (16:5585)
-	TX_FAR _Route11AfterBattleText6
-	db "@"
-
-Route11Text7: ; 5958a (16:558a)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText7: ; 59594 (16:5594)
-	TX_FAR _Route11BattleText7
-	db "@"
-
-Route11EndBattleText7: ; 59599 (16:5599)
-	TX_FAR _Route11EndBattleText7
-	db "@"
-
-Route11AfterBattleText7: ; 5959e (16:559e)
-	TX_FAR _Route11AfterBattleText7
-	db "@"
-
-Route11Text8: ; 595a3 (16:55a3)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText8: ; 595ad (16:55ad)
-	TX_FAR _Route11BattleText8
-	db "@"
-
-Route11EndBattleText8: ; 595b2 (16:55b2)
-	TX_FAR _Route11EndBattleText8
-	db "@"
-
-Route11AfterBattleText8: ; 595b7 (16:55b7)
-	TX_FAR _Route11AfterBattleText8
-	db "@"
-
-Route11Text9: ; 595bc (16:55bc)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader8
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText9: ; 595c6 (16:55c6)
-	TX_FAR _Route11BattleText9
-	db "@"
-
-Route11EndBattleText9: ; 595cb (16:55cb)
-	TX_FAR _Route11EndBattleText9
-	db "@"
-
-Route11AfterBattleText9: ; 595d0 (16:55d0)
-	TX_FAR _Route11AfterBattleText9
-	db "@"
-
-Route11Text10: ; 595d5 (16:55d5)
-	db $08 ; asm
-	ld hl, Route11TrainerHeader9
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route11BattleText10: ; 595df (16:55df)
-	TX_FAR _Route11BattleText10
-	db "@"
-
-Route11EndBattleText10: ; 595e4 (16:55e4)
-	TX_FAR _Route11EndBattleText10
-	db "@"
-
-Route11AfterBattleText10: ; 595e9 (16:55e9)
-	TX_FAR _Route11AfterBattleText10
-	db "@"
-
-Route11Text11: ; 595ee (16:55ee)
-	TX_FAR _Route11Text11
-	db "@"
-
-Route12Script: ; 595f3 (16:55f3)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route12TrainerHeaders
-	ld de, Route12ScriptPointers
-	ld a, [W_ROUTE12CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE12CURSCRIPT], a
-	ret
-
-Route12Script_59606: ; 59606 (16:5606)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE12CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route12ScriptPointers: ; 59611 (16:5611)
-	dw Route12Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw Route12Script3
-
-Route12Script0: ; 59619 (16:5619)
-	ld hl, $d7d8
-	bit 7, [hl]
-	jp nz, CheckFightingMapTrainers
-	bit 6, [hl]
-	res 6, [hl]
-	jp z, CheckFightingMapTrainers
-	ld a, $d
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, SNORLAX
-	ld [W_CUROPPONENT], a ; $d059
-	ld a, 30
-	ld [W_CURENEMYLVL], a ; $d127
-	ld a, $1d
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $3
-	ld [W_ROUTE12CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route12Script3: ; 5964c (16:564c)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jr z, Route12Script_59606
-	call UpdateSprites
-	ld a, [$cf0b]
-	cp $2
-	jr z, .asm_59664
-	ld a, $e
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_59664
-	ld hl, $d7d8
-	set 7, [hl]
-	call Delay3
-	ld a, $0
-	ld [W_ROUTE12CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route12TextPointers: ; 59675 (16:5675)
-	dw Route12Text1
-	dw Route12Text2
-	dw Route12Text3
-	dw Route12Text4
-	dw Route12Text5
-	dw Route12Text6
-	dw Route12Text7
-	dw Route12Text8
-	dw Predef5CText
-	dw Predef5CText
-	dw Route12Text11
-	dw Route12Text12
-	dw Route12Text13
-	dw Route12Text14
-
-Route12TrainerHeaders: ; 59691 (16:5691)
-Route12TrainerHeader0: ; 59691 (16:5691)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText1 ; 0x56ff TextBeforeBattle
-	dw Route12AfterBattleText1 ; 0x5709 TextAfterBattle
-	dw Route12EndBattleText1 ; 0x5704 TextEndBattle
-	dw Route12EndBattleText1 ; 0x5704 TextEndBattle
-
-Route12TrainerHeader1: ; 5969d (16:569d)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText2 ; 0x5718 TextBeforeBattle
-	dw Route12AfterBattleText2 ; 0x5722 TextAfterBattle
-	dw Route12EndBattleText2 ; 0x571d TextEndBattle
-	dw Route12EndBattleText2 ; 0x571d TextEndBattle
-
-Route12TrainerHeader2: ; 596a9 (16:56a9)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText3 ; 0x5731 TextBeforeBattle
-	dw Route12AfterBattleText3 ; 0x573b TextAfterBattle
-	dw Route12EndBattleText3 ; 0x5736 TextEndBattle
-	dw Route12EndBattleText3 ; 0x5736 TextEndBattle
-
-Route12TrainerHeader3: ; 596b5 (16:56b5)
-	db $5 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText4 ; 0x574a TextBeforeBattle
-	dw Route12AfterBattleText4 ; 0x5754 TextAfterBattle
-	dw Route12EndBattleText4 ; 0x574f TextEndBattle
-	dw Route12EndBattleText4 ; 0x574f TextEndBattle
-
-Route12TrainerHeader4: ; 596c1 (16:56c1)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText5 ; 0x5763 TextBeforeBattle
-	dw Route12AfterBattleText5 ; 0x576d TextAfterBattle
-	dw Route12EndBattleText5 ; 0x5768 TextEndBattle
-	dw Route12EndBattleText5 ; 0x5768 TextEndBattle
-
-Route12TrainerHeader5: ; 596cd (16:56cd)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText6 ; 0x577c TextBeforeBattle
-	dw Route12AfterBattleText6 ; 0x5786 TextAfterBattle
-	dw Route12EndBattleText6 ; 0x5781 TextEndBattle
-	dw Route12EndBattleText6 ; 0x5781 TextEndBattle
-
-Route12TrainerHeader6: ; 596d9 (16:56d9)
-	db $8 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7d7 ; flag's byte
-	dw Route12BattleText7 ; 0x5795 TextBeforeBattle
-	dw Route12AfterBattleText7 ; 0x579f TextAfterBattle
-	dw Route12EndBattleText7 ; 0x579a TextEndBattle
-	dw Route12EndBattleText7 ; 0x579a TextEndBattle
-
-	db $ff
-
-Route12Text1: ; 596e6 (16:56e6)
-	TX_FAR _Route12Text1
-	db "@"
-
-Route12Text13: ; 596eb (16:56eb)
-UnnamedText_596eb: ; 596eb (16:56eb)
-	TX_FAR _UnnamedText_596eb
-	db "@"
-
-Route12Text14: ; 596f0 (16:56f0)
-UnnamedText_596f0: ; 596f0 (16:56f0)
-	TX_FAR _UnnamedText_596f0
-	db "@"
-
-Route12Text2: ; 596f5 (16:56f5)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText1: ; 596ff (16:56ff)
-	TX_FAR _Route12BattleText1
-	db "@"
-
-Route12EndBattleText1: ; 59704 (16:5704)
-	TX_FAR _Route12EndBattleText1
-	db "@"
-
-Route12AfterBattleText1: ; 59709 (16:5709)
-	TX_FAR _Route12AfterBattleText1
-	db "@"
-
-Route12Text3: ; 5970e (16:570e)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText2: ; 59718 (16:5718)
-	TX_FAR _Route12BattleText2
-	db "@"
-
-Route12EndBattleText2: ; 5971d (16:571d)
-	TX_FAR _Route12EndBattleText2
-	db "@"
-
-Route12AfterBattleText2: ; 59722 (16:5722)
-	TX_FAR _Route12AfterBattleText2
-	db "@"
-
-Route12Text4: ; 59727 (16:5727)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText3: ; 59731 (16:5731)
-	TX_FAR _Route12BattleText3
-	db "@"
-
-Route12EndBattleText3: ; 59736 (16:5736)
-	TX_FAR _Route12EndBattleText3
-	db "@"
-
-Route12AfterBattleText3: ; 5973b (16:573b)
-	TX_FAR _Route12AfterBattleText3
-	db "@"
-
-Route12Text5: ; 59740 (16:5740)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText4: ; 5974a (16:574a)
-	TX_FAR _Route12BattleText4
-	db "@"
-
-Route12EndBattleText4: ; 5974f (16:574f)
-	TX_FAR _Route12EndBattleText4
-	db "@"
-
-Route12AfterBattleText4: ; 59754 (16:5754)
-	TX_FAR _Route12AfterBattleText4
-	db "@"
-
-Route12Text6: ; 59759 (16:5759)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText5: ; 59763 (16:5763)
-	TX_FAR _Route12BattleText5
-	db "@"
-
-Route12EndBattleText5: ; 59768 (16:5768)
-	TX_FAR _Route12EndBattleText5
-	db "@"
-
-Route12AfterBattleText5: ; 5976d (16:576d)
-	TX_FAR _Route12AfterBattleText5
-	db "@"
-
-Route12Text7: ; 59772 (16:5772)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText6: ; 5977c (16:577c)
-	TX_FAR _Route12BattleText6
-	db "@"
-
-Route12EndBattleText6: ; 59781 (16:5781)
-	TX_FAR _Route12EndBattleText6
-	db "@"
-
-Route12AfterBattleText6: ; 59786 (16:5786)
-	TX_FAR _Route12AfterBattleText6
-	db "@"
-
-Route12Text8: ; 5978b (16:578b)
-	db $08 ; asm
-	ld hl, Route12TrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route12BattleText7: ; 59795 (16:5795)
-	TX_FAR _Route12BattleText7
-	db "@"
-
-Route12EndBattleText7: ; 5979a (16:579a)
-	TX_FAR _Route12EndBattleText7
-	db "@"
-
-Route12AfterBattleText7: ; 5979f (16:579f)
-	TX_FAR _Route12AfterBattleText7
-	db "@"
-
-Route12Text11: ; 597a4 (16:57a4)
-	TX_FAR _Route12Text11
-	db "@"
-
-Route12Text12: ; 597a9 (16:57a9)
-	TX_FAR _Route12Text12
-	db "@"
-
-Route15Script: ; 597ae (16:57ae)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route15TrainerHeaders
-	ld de, Route15ScriptPointers
-	ld a, [W_ROUTE15CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE15CURSCRIPT], a
-	ret
-
-Route15ScriptPointers: ; 597c1 (16:57c1)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route15TextPointers: ; 597c7 (16:57c7)
-	dw Route15Text1
-	dw Route15Text2
-	dw Route15Text3
-	dw Route15Text4
-	dw Route15Text5
-	dw Route15Text6
-	dw Route15Text7
-	dw Route15Text8
-	dw Route15Text9
-	dw Route15Text10
-	dw Predef5CText
-	dw Route15Text12
-
-Route15TrainerHeaders: ; 597df (16:57df)
-Route15TrainerHeader0: ; 597df (16:57df)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText1 ; 0x5898 TextBeforeBattle
-	dw Route15AfterBattleText1 ; 0x58a2 TextAfterBattle
-	dw Route15EndBattleText1 ; 0x589d TextEndBattle
-	dw Route15EndBattleText1 ; 0x589d TextEndBattle
-
-Route15TrainerHeader1: ; 597eb (16:57eb)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText2 ; 0x58a7 TextBeforeBattle
-	dw Route15AfterBattleText2 ; 0x58b1 TextAfterBattle
-	dw Route15EndBattleText2 ; 0x58ac TextEndBattle
-	dw Route15EndBattleText2 ; 0x58ac TextEndBattle
-
-Route15TrainerHeader2: ; 597f7 (16:57f7)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText3 ; 0x58b6 TextBeforeBattle
-	dw Route15AfterBattleText3 ; 0x58c0 TextAfterBattle
-	dw Route15EndBattleText3 ; 0x58bb TextEndBattle
-	dw Route15EndBattleText3 ; 0x58bb TextEndBattle
-
-Route15TrainerHeader3: ; 59803 (16:5803)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText4 ; 0x58c5 TextBeforeBattle
-	dw Route15AfterBattleText4 ; 0x58cf TextAfterBattle
-	dw Route15EndBattleText4 ; 0x58ca TextEndBattle
-	dw Route15EndBattleText4 ; 0x58ca TextEndBattle
-
-Route15TrainerHeader4: ; 5980f (16:580f)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText5 ; 0x58d4 TextBeforeBattle
-	dw Route15AfterBattleText5 ; 0x58de TextAfterBattle
-	dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
-	dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
-
-Route15TrainerHeader5: ; 5981b (16:581b)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText6 ; 0x58e3 TextBeforeBattle
-	dw Route15AfterBattleText6 ; 0x58ed TextAfterBattle
-	dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
-	dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
-
-Route15TrainerHeader6: ; 59827 (16:5827)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText7 ; 0x58f2 TextBeforeBattle
-	dw Route15AfterBattleText7 ; 0x58fc TextAfterBattle
-	dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
-	dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
-
-Route15TrainerHeader7: ; 59833 (16:5833)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText8 ; 0x5901 TextBeforeBattle
-	dw Route15AfterBattleText8 ; 0x590b TextAfterBattle
-	dw Route15EndBattleText8 ; 0x5906 TextEndBattle
-	dw Route15EndBattleText8 ; 0x5906 TextEndBattle
-
-Route15TrainerHeader8: ; 5983f (16:583f)
-	db $9 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText9 ; 0x5910 TextBeforeBattle
-	dw Route15AfterBattleText9 ; 0x591a TextAfterBattle
-	dw Route15EndBattleText9 ; 0x5915 TextEndBattle
-	dw Route15EndBattleText9 ; 0x5915 TextEndBattle
-
-Route15TrainerHeader9: ; 5984b (16:584b)
-	db $a ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7dd ; flag's byte
-	dw Route15BattleText10 ; 0x591f TextBeforeBattle
-	dw Route15AfterBattleText10 ; 0x5929 TextAfterBattle
-	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
-	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
-
-	db $ff
-
-Route15Text1: ; 59858 (16:5858)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader0
-	jr asm_33cb7 ; 0x5985c $34
-
-Route15Text2: ; 5985e (16:585e)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader1
-	jr asm_33cb7 ; 0x59862 $2e
-
-Route15Text3: ; 59864 (16:5864)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader2
-	jr asm_33cb7 ; 0x59868 $28
-
-Route15Text4: ; 5986a (16:586a)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader3
-	jr asm_33cb7 ; 0x5986e $22
-
-Route15Text5: ; 59870 (16:5870)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader4
-	jr asm_33cb7 ; 0x59874 $1c
-
-Route15Text6: ; 59876 (16:5876)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader5
-	jr asm_33cb7 ; 0x5987a $16
-
-Route15Text7: ; 5987c (16:587c)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader6
-	jr asm_33cb7 ; 0x59880 $10
-
-Route15Text8: ; 59882 (16:5882)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader7
-	jr asm_33cb7 ; 0x59886 $a
-
-Route15Text9: ; 59888 (16:5888)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader8
-	jr asm_33cb7 ; 0x5988c $4
-
-Route15Text10: ; 5988e (16:588e)
-	db $8 ; asm
-	ld hl, Route15TrainerHeader9
-asm_33cb7: ; 59892 (16:5892)
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route15BattleText1: ; 59898 (16:5898)
-	TX_FAR _Route15BattleText1
-	db "@"
-
-Route15EndBattleText1: ; 5989d (16:589d)
-	TX_FAR _Route15EndBattleText1
-	db "@"
-
-Route15AfterBattleText1: ; 598a2 (16:58a2)
-	TX_FAR _Route15AfterBattleText1
-	db "@"
-
-Route15BattleText2: ; 598a7 (16:58a7)
-	TX_FAR _Route15BattleText2
-	db "@"
-
-Route15EndBattleText2: ; 598ac (16:58ac)
-	TX_FAR _Route15EndBattleText2
-	db "@"
-
-Route15AfterBattleText2: ; 598b1 (16:58b1)
-	TX_FAR _Route15AfterBattleText2
-	db "@"
-
-Route15BattleText3: ; 598b6 (16:58b6)
-	TX_FAR _Route15BattleText3
-	db "@"
-
-Route15EndBattleText3: ; 598bb (16:58bb)
-	TX_FAR _Route15EndBattleText3
-	db "@"
-
-Route15AfterBattleText3: ; 598c0 (16:58c0)
-	TX_FAR _Route15AfterBattleText3
-	db "@"
-
-Route15BattleText4: ; 598c5 (16:58c5)
-	TX_FAR _Route15BattleText4
-	db "@"
-
-Route15EndBattleText4: ; 598ca (16:58ca)
-	TX_FAR _Route15EndBattleText4
-	db "@"
-
-Route15AfterBattleText4: ; 598cf (16:58cf)
-	TX_FAR _Route15AfterBattleText4
-	db "@"
-
-Route15BattleText5: ; 598d4 (16:58d4)
-	TX_FAR _Route15BattleText5
-	db "@"
-
-Route15EndBattleText5: ; 598d9 (16:58d9)
-	TX_FAR _Route15EndBattleText5
-	db "@"
-
-Route15AfterBattleText5: ; 598de (16:58de)
-	TX_FAR _Route15AfterBattleText5
-	db "@"
-
-Route15BattleText6: ; 598e3 (16:58e3)
-	TX_FAR _Route15BattleText6
-	db "@"
-
-Route15EndBattleText6: ; 598e8 (16:58e8)
-	TX_FAR _Route15EndBattleText6
-	db "@"
-
-Route15AfterBattleText6: ; 598ed (16:58ed)
-	TX_FAR _Route15AfterBattleText6
-	db "@"
-
-Route15BattleText7: ; 598f2 (16:58f2)
-	TX_FAR _Route15BattleText7
-	db "@"
-
-Route15EndBattleText7: ; 598f7 (16:58f7)
-	TX_FAR _Route15EndBattleText7
-	db "@"
-
-Route15AfterBattleText7: ; 598fc (16:58fc)
-	TX_FAR _Route15AfterBattleText7
-	db "@"
-
-Route15BattleText8: ; 59901 (16:5901)
-	TX_FAR _Route15BattleText8
-	db "@"
-
-Route15EndBattleText8: ; 59906 (16:5906)
-	TX_FAR _Route15EndBattleText8
-	db "@"
-
-Route15AfterBattleText8: ; 5990b (16:590b)
-	TX_FAR _Route15AfterBattleText8
-	db "@"
-
-Route15BattleText9: ; 59910 (16:5910)
-	TX_FAR _Route15BattleText9
-	db "@"
-
-Route15EndBattleText9: ; 59915 (16:5915)
-	TX_FAR _Route15EndBattleText9
-	db "@"
-
-Route15AfterBattleText9: ; 5991a (16:591a)
-	TX_FAR _Route15AfterBattleText9
-	db "@"
-
-Route15BattleText10: ; 5991f (16:591f)
-	TX_FAR _Route15BattleText10
-	db "@"
-
-Route15EndBattleText10: ; 59924 (16:5924)
-	TX_FAR _Route15EndBattleText10
-	db "@"
-
-Route15AfterBattleText10: ; 59929 (16:5929)
-	TX_FAR _Route15AfterBattleText10
-	db "@"
-
-Route15Text12: ; 5992e (16:592e)
-	TX_FAR _Route15Text12
-	db "@"
-
-Route16Script: ; 59933 (16:5933)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route16TrainerHeaders
-	ld de, Route16ScriptPointers
-	ld a, [W_ROUTE16CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE16CURSCRIPT], a
-	ret
-
-Func_59946: ; 59946 (16:5946)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_ROUTE16CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route16ScriptPointers: ; 59951 (16:5951)
-	dw Route16Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw Route16Script3
-
-Route16Script0: ; 59959 (16:5959)
-	ld hl, $d7e0
-	bit 1, [hl]
-	jp nz, CheckFightingMapTrainers
-	bit 0, [hl]
-	res 0, [hl]
-	jp z, CheckFightingMapTrainers
-	ld a, $a
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, SNORLAX
-	ld [W_CUROPPONENT], a ; $d059
-	ld a, 30
-	ld [W_CURENEMYLVL], a ; $d127
-	ld a, $21
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	call UpdateSprites
-	ld a, $3
-	ld [W_ROUTE16CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route16Script3: ; 5998f (16:598f)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_59946
-	call UpdateSprites
-	ld a, [$cf0b]
-	cp $2
-	jr z, .asm_599a8
-	ld a, $b
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_599a8
-	ld hl, $d7e0
-	set 1, [hl]
-	call Delay3
-	ld a, $0
-	ld [W_ROUTE16CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Route16TextPointers: ; 599b9 (16:59b9)
-	dw Route16Text1
-	dw Route16Text2
-	dw Route16Text3
-	dw Route16Text4
-	dw Route16Text5
-	dw Route16Text6
-	dw Route16Text7
-	dw Route16Text8
-	dw Route16Text9
-	dw Route16Text10
-	dw Route16Text11
-
-Route16TrainerHeaders: ; 599cf (16:59cf)
-Route16TrainerHeader0: ; 599cf (16:59cf)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText1 ; 0x5a22 TextBeforeBattle
-	dw Route16AfterBattleText1 ; 0x5a2c TextAfterBattle
-	dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
-	dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
-
-Route16TrainerHeader1: ; 599db (16:59db)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText2 ; 0x5a3b TextBeforeBattle
-	dw Route16AfterBattleText2 ; 0x5a45 TextAfterBattle
-	dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
-	dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
-
-Route16TrainerHeader2: ; 599e7 (16:59e7)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText3 ; 0x5a54 TextBeforeBattle
-	dw Route16AfterBattleText3 ; 0x5a5e TextAfterBattle
-	dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
-	dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
-
-Route16TrainerHeader3: ; 599f3 (16:59f3)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText4 ; 0x5a6d TextBeforeBattle
-	dw Route16AfterBattleText4 ; 0x5a77 TextAfterBattle
-	dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
-	dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
-
-Route16TrainerHeader4: ; 599ff (16:59ff)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText5 ; 0x5a86 TextBeforeBattle
-	dw Route16AfterBattleText5 ; 0x5a90 TextAfterBattle
-	dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
-	dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
-
-Route16TrainerHeader5: ; 59a0b (16:5a0b)
-	db $6 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7df ; flag's byte
-	dw Route16BattleText6 ; 0x5a9f TextBeforeBattle
-	dw Route16AfterBattleText6 ; 0x5aa9 TextAfterBattle
-	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
-	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
-
-	db $ff
-
-Route16Text1: ; 59a18 (16:5a18)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText1: ; 59a22 (16:5a22)
-	TX_FAR _Route16BattleText1
-	db "@"
-
-Route16EndBattleText1: ; 59a27 (16:5a27)
-	TX_FAR _Route16EndBattleText1
-	db "@"
-
-Route16AfterBattleText1: ; 59a2c (16:5a2c)
-	TX_FAR _Route16AfterBattleText1
-	db "@"
-
-Route16Text2: ; 59a31 (16:5a31)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText2: ; 59a3b (16:5a3b)
-	TX_FAR _Route16BattleText2
-	db "@"
-
-Route16EndBattleText2: ; 59a40 (16:5a40)
-	TX_FAR _Route16EndBattleText2
-	db "@"
-
-Route16AfterBattleText2: ; 59a45 (16:5a45)
-	TX_FAR _Route16AfterBattleText2
-	db "@"
-
-Route16Text3: ; 59a4a (16:5a4a)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText3: ; 59a54 (16:5a54)
-	TX_FAR _Route16BattleText3
-	db "@"
-
-Route16EndBattleText3: ; 59a59 (16:5a59)
-	TX_FAR _Route16EndBattleText3
-	db "@"
-
-Route16AfterBattleText3: ; 59a5e (16:5a5e)
-	TX_FAR _Route16AfterBattleText3
-	db "@"
-
-Route16Text4: ; 59a63 (16:5a63)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText4: ; 59a6d (16:5a6d)
-	TX_FAR _Route16BattleText4
-	db "@"
-
-Route16EndBattleText4: ; 59a72 (16:5a72)
-	TX_FAR _Route16EndBattleText4
-	db "@"
-
-Route16AfterBattleText4: ; 59a77 (16:5a77)
-	TX_FAR _Route16AfterBattleText4
-	db "@"
-
-Route16Text5: ; 59a7c (16:5a7c)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText5: ; 59a86 (16:5a86)
-	TX_FAR _Route16BattleText5
-	db "@"
-
-Route16EndBattleText5: ; 59a8b (16:5a8b)
-	TX_FAR _Route16EndBattleText5
-	db "@"
-
-Route16AfterBattleText5: ; 59a90 (16:5a90)
-	TX_FAR _Route16AfterBattleText5
-	db "@"
-
-Route16Text6: ; 59a95 (16:5a95)
-	db $08 ; asm
-	ld hl, Route16TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route16BattleText6: ; 59a9f (16:5a9f)
-	TX_FAR _Route16BattleText6
-	db "@"
-
-Route16EndBattleText6: ; 59aa4 (16:5aa4)
-	TX_FAR _Route16EndBattleText6
-	db "@"
-
-Route16AfterBattleText6: ; 59aa9 (16:5aa9)
-	TX_FAR _Route16AfterBattleText6
-	db "@"
-
-Route16Text7: ; 59aae (16:5aae)
-	TX_FAR _Route16Text7
-	db "@"
-
-Route16Text10: ; 59ab3 (16:5ab3)
-	TX_FAR _UnnamedText_59ab3
-	db "@"
-
-Route16Text11: ; 59ab8 (16:5ab8)
-	TX_FAR _UnnamedText_59ab8
-	db "@"
-
-Route16Text8: ; 59abd (16:5abd)
-	TX_FAR _Route16Text8
-	db "@"
-
-Route16Text9: ; 59ac2 (16:5ac2)
-	TX_FAR _Route16Text9
-	db "@"
-
-Route18Script: ; 59ac7 (16:5ac7)
-	call EnableAutoTextBoxDrawing
-	ld hl, Route18TrainerHeaders
-	ld de, Route18ScriptPointers
-	ld a, [W_ROUTE18CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_ROUTE18CURSCRIPT], a
-	ret
-
-Route18ScriptPointers: ; 59ada (16:5ada)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-Route18TextPointers: ; 59ae0 (16:5ae0)
-	dw Route18Text1
-	dw Route18Text2
-	dw Route18Text3
-	dw Route18Text4
-	dw Route18Text5
-
-Route18TrainerHeaders: ; 59aea (16:5aea)
-Route18TrainerHeader0: ; 59aea (16:5aea)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e3 ; flag's byte
-	dw Route18BattleText1 ; 0x5b19 TextBeforeBattle
-	dw Route18AfterBattleText1 ; 0x5b23 TextAfterBattle
-	dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
-	dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
-
-Route18TrainerHeader1: ; 59af6 (16:5af6)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7e3 ; flag's byte
-	dw Route18BattleText2 ; 0x5b32 TextBeforeBattle
-	dw Route18AfterBattleText2 ; 0x5b3c TextAfterBattle
-	dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
-	dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
-
-Route18TrainerHeader2: ; 59b02 (16:5b02)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7e3 ; flag's byte
-	dw Route18BattleText3 ; 0x5b4b TextBeforeBattle
-	dw Route18AfterBattleText3 ; 0x5b55 TextAfterBattle
-	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
-	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
-
-	db $ff
-
-Route18Text1: ; 59b0f (16:5b0f)
-	db $08 ; asm
-	ld hl, Route18TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route18BattleText1: ; 59b19 (16:5b19)
-	TX_FAR _Route18BattleText1
-	db "@"
-
-Route18EndBattleText1: ; 59b1e (16:5b1e)
-	TX_FAR _Route18EndBattleText1
-	db "@"
-
-Route18AfterBattleText1: ; 59b23 (16:5b23)
-	TX_FAR _Route18AfterBattleText1
-	db "@"
-
-Route18Text2: ; 59b28 (16:5b28)
-	db $08 ; asm
-	ld hl, Route18TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route18BattleText2: ; 59b32 (16:5b32)
-	TX_FAR _Route18BattleText2
-	db "@"
-
-Route18EndBattleText2: ; 59b37 (16:5b37)
-	TX_FAR _Route18EndBattleText2
-	db "@"
-
-Route18AfterBattleText2: ; 59b3c (16:5b3c)
-	TX_FAR _Route18AfterBattleText2
-	db "@"
-
-Route18Text3: ; 59b41 (16:5b41)
-	db $08 ; asm
-	ld hl, Route18TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-Route18BattleText3: ; 59b4b (16:5b4b)
-	TX_FAR _Route18BattleText3
-	db "@"
-
-Route18EndBattleText3: ; 59b50 (16:5b50)
-	TX_FAR _Route18EndBattleText3
-	db "@"
-
-Route18AfterBattleText3: ; 59b55 (16:5b55)
-	TX_FAR _Route18AfterBattleText3
-	db "@"
-
-Route18Text4: ; 59b5a (16:5b5a)
-	TX_FAR _Route18Text4
-	db "@"
-
-Route18Text5: ; 59b5f (16:5b5f)
-	TX_FAR _Route18Text5
-	db "@"
-
 INCLUDE "data/mapHeaders/fanclub.asm"
 
-FanClubScript: ; 59b70 (16:5b70)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/fanclub.asm"
 
-FanClubBikeInBag:
-; check if any bike paraphernalia in bag
-	ld a, [$d771]
-	bit 1, a ; got bike voucher?
-	ret nz
-	ld b, BICYCLE
-	call IsItemInBag
-	ret nz
-	ld b, BIKE_VOUCHER
-	jp IsItemInBag
-
-FanClubTextPointers: ; 59b84 (16:5b84)
-	dw FanClubText1
-	dw FanClubText2
-	dw FanClubText3
-	dw FanClubText4
-	dw FanClubText5
-	dw FanClubText6
-	dw FanClubText7
-	dw FanClubText8
-
-FanClubText1:
-; pikachu fan
-	db $08 ; asm
-	ld a, [$d771]
-	bit 7, a
-	jr nz, .mineisbetter
-	ld hl, .normaltext
-	call PrintText
-	ld hl, $d771
-	set 6, [hl]
-	jr .done
-.mineisbetter
-	ld hl, .bettertext
-	call PrintText
-	ld hl, $d771
-	res 7, [hl]
-.done
-	jp TextScriptEnd
-
-.normaltext
-	TX_FAR PikachuFanText
-	db "@"
-
-.bettertext
-	TX_FAR PikachuFanBetterText
-	db "@"
-
-FanClubText2:
-; seel fan
-	db $08 ; asm
-	ld a, [$d771]
-	bit 6, a
-	jr nz, .mineisbetter
-	ld hl, .normaltext
-	call PrintText
-	ld hl, $d771
-	set 7, [hl]
-	jr .done
-.mineisbetter
-	ld hl, .bettertext
-	call PrintText
-	ld hl, $d771
-	res 6, [hl]
-.done
-	jp TextScriptEnd
-
-.normaltext
-	TX_FAR SeelFanText
-	db "@"
-
-.bettertext
-	TX_FAR SeelFanBetterText
-	db "@"
-
-FanClubText3:
-; pikachu
-	db $8
-	ld hl, .text
-	call PrintText
-	ld a, PIKACHU
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-.text
-	TX_FAR FanClubPikachuText
-	db "@"
-
-FanClubText4:
-; seel
-	db $08 ; asm
-	ld hl, .text
-	call PrintText
-	ld a, SEEL
-	call PlayCry
-	call WaitForSoundToFinish
-	jp TextScriptEnd
-
-.text
-	TX_FAR FanClubSeelText
-	db "@"
-
-FanClubText5:
-; chair
-	db $08 ; asm
-	call FanClubBikeInBag
-	jr nz, .nothingleft
-
-	ld hl, .meetchairtext
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .nothanks
-
-	; tell the story
-	ld hl, .storytext
-	call PrintText
-	ld bc, (BIKE_VOUCHER << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, .receivedvouchertext
-	call PrintText
-	ld hl, $d771
-	set 1, [hl]
-	jr .done
-.BagFull
-	ld hl, .bagfulltext
-	call PrintText
-	jr .done
-.nothanks
-	ld hl, .nostorytext
-	call PrintText
-	jr .done
-.nothingleft
-	ld hl, .finaltext
-	call PrintText
-.done
-	jp TextScriptEnd
-
-.meetchairtext
-	TX_FAR FanClubMeetChairText
-	db "@"
-
-.storytext
-	TX_FAR FanClubChairStoryText
-	db "@"
-
-.receivedvouchertext
-	TX_FAR ReceivedBikeVoucherText
-	db $11
-	TX_FAR ExplainBikeVoucherText
-	db "@"
-
-.nostorytext
-	TX_FAR FanClubNoStoryText
-	db "@"
-
-.finaltext
-	TX_FAR FanClubChairFinalText
-	db "@"
-
-.bagfulltext
-	TX_FAR FanClubBagFullText
-	db "@"
-
-FanClubText6: ; 59c88 (16:5c88)
-	TX_FAR _FanClubText6
-	db "@"
-
-FanClubText7: ; 59c8d (16:5c8d)
-	TX_FAR _FanClubText7
-	db "@"
-
-FanClubText8: ; 59c92 (16:5c92)
-	TX_FAR _FanClubText8
-	db "@"
-
 INCLUDE "data/mapObjects/fanclub.asm"
 
 FanClubBlocks: ; 59cd5 (16:5cd5)
@@ -69157,255 +49378,8 @@
 
 INCLUDE "data/mapHeaders/silphco2.asm"
 
-SilphCo2Script: ; 59cf1 (16:5cf1)
-	call SilphCo2Script_59d07
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo2TrainerHeaders
-	ld de, SilphCo2ScriptPointers
-	ld a, [W_SILPHCO2CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO2CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco2.asm"
 
-SilphCo2Script_59d07: ; 59d07 (16:5d07)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_59d3e
-	call Func_59d43
-	call Func_59d6f
-	ld a, [$d826]
-	bit 5, a
-	jr nz, .asm_59d2e
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $0202
-	ld a, $17
-	call Predef
-	pop af
-.asm_59d2e
-	bit 6, a
-	ret nz
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $0502
-	ld a, $17
-	jp Predef
-
-DataTable_59d3e: ; 59d3e (16:5d3e)
-	db $02,$02,$05,$02,$FF
-
-Func_59d43: ; 59d43 (16:5d43)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_59d4f
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_59d6b
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_59d60
-	inc hl
-	jr .asm_59d4f
-.asm_59d60
-	ld a, [hli]
-	cp c
-	jr nz, .asm_59d4f
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_59d6b
-	xor a
-	ld [$ffe0], a
-	ret
-
-Func_59d6f: ; 59d6f (16:5d6f)
-	ld hl, $d826
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_59d7d
-	set 5, [hl]
-	ret
-.asm_59d7d
-	set 6, [hl]
-	ret
-
-SilphCo2ScriptPointers: ; 59d80 (16:5d80)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo2TextPointers: ; 59d86 (16:5d86)
-	dw SilphCo2Text1
-	dw SilphCo2Text2
-	dw SilphCo2Text3
-	dw SilphCo2Text4
-	dw SilphCo2Text5
-
-SilphCo2TrainerHeaders: ; 59d90 (16:5d90)
-SilphCo2TrainerHeader0: ; 59d90 (16:5d90)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d825 ; flag's byte
-	dw SilphCo2BattleText1 ; 0x5e2a TextBeforeBattle
-	dw SilphCo2AfterBattleText1 ; 0x5e34 TextAfterBattle
-	dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
-	dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
-
-SilphCo2TrainerHeader1: ; 59d9c (16:5d9c)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d825 ; flag's byte
-	dw SilphCo2BattleText2 ; 0x5e39 TextBeforeBattle
-	dw SilphCo2AfterBattleText2 ; 0x5e43 TextAfterBattle
-	dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
-	dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
-
-SilphCo2TrainerHeader2: ; 59da8 (16:5da8)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d825 ; flag's byte
-	dw SilphCo2BattleText3 ; 0x5e48 TextBeforeBattle
-	dw SilphCo2AfterBattleText3 ; 0x5e52 TextAfterBattle
-	dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
-	dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
-
-SilphCo2TrainerHeader3: ; 59db4 (16:5db4)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d825 ; flag's byte
-	dw SilphCo2BattleText4 ; 0x5e57 TextBeforeBattle
-	dw SilphCo2AfterBattleText4 ; 0x5e61 TextAfterBattle
-	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
-	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
-
-	db $ff
-
-SilphCo2Text1: ; 59dc1 (16:5dc1)
-	db $08 ; asm
-	ld a, [$d826]
-	bit 7, a
-	jr nz, asm_b8a0d ; 0x59dc7
-	ld hl, UnnamedText_59ded
-	call PrintText
-	ld bc, (TM_36 << 8) | 1
-	call GiveItem
-	ld hl, TM36NoRoomText
-	jr nc, asm_2c1e0 ; 0x59dd8
-	ld hl, $d826
-	set 7, [hl]
-	ld hl, ReceivedTM36Text
-	jr asm_2c1e0 ; 0x59de2
-asm_b8a0d ; 0x59de4
-	ld hl, TM36ExplanationText
-asm_2c1e0 ; 0x59de7
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_59ded: ; 59ded (16:5ded)
-	TX_FAR _UnnamedText_59ded
-	db "@"
-
-ReceivedTM36Text: ; 59df2 (16:5df2)
-	TX_FAR _ReceivedTM36Text
-	db $0B, "@"
-
-TM36ExplanationText: ; 59df8 (16:5df8)
-	TX_FAR _TM36ExplanationText
-	db "@"
-
-TM36NoRoomText: ; 59dfd (16:5dfd)
-	TX_FAR _TM36NoRoomText
-	db "@"
-
-SilphCo2Text2: ; 59e02 (16:5e02)
-	db $08 ; asm
-	ld hl, SilphCo2TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo2Text3: ; 59e0c (16:5e0c)
-	db $08 ; asm
-	ld hl, SilphCo2TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo2Text4: ; 59e16 (16:5e16)
-	db $08 ; asm
-	ld hl, SilphCo2TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo2Text5: ; 59e20 (16:5e20)
-	db $08 ; asm
-	ld hl, SilphCo2TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo2BattleText1: ; 59e2a (16:5e2a)
-	TX_FAR _SilphCo2BattleText1
-	db "@"
-
-SilphCo2EndBattleText1: ; 59e2f (16:5e2f)
-	TX_FAR _SilphCo2EndBattleText1
-	db "@"
-
-SilphCo2AfterBattleText1: ; 59e34 (16:5e34)
-	TX_FAR _SilphCo2AfterBattleText1
-	db "@"
-
-SilphCo2BattleText2: ; 59e39 (16:5e39)
-	TX_FAR _SilphCo2BattleText2
-	db "@"
-
-SilphCo2EndBattleText2: ; 59e3e (16:5e3e)
-	TX_FAR _SilphCo2EndBattleText2
-	db "@"
-
-SilphCo2AfterBattleText2: ; 59e43 (16:5e43)
-	TX_FAR _SilphCo2AfterBattleText2
-	db "@"
-
-SilphCo2BattleText3: ; 59e48 (16:5e48)
-	TX_FAR _SilphCo2BattleText3
-	db "@"
-
-SilphCo2EndBattleText3: ; 59e4d (16:5e4d)
-	TX_FAR _SilphCo2EndBattleText3
-	db "@"
-
-SilphCo2AfterBattleText3: ; 59e52 (16:5e52)
-	TX_FAR _SilphCo2AfterBattleText3
-	db "@"
-
-SilphCo2BattleText4: ; 59e57 (16:5e57)
-	TX_FAR _SilphCo2BattleText4
-	db "@"
-
-SilphCo2EndBattleText4: ; 59e5c (16:5e5c)
-	TX_FAR _SilphCo2EndBattleText4
-	db "@"
-
-SilphCo2AfterBattleText4: ; 59e61 (16:5e61)
-	TX_FAR _SilphCo2AfterBattleText4
-	db "@"
-
 INCLUDE "data/mapObjects/silphco2.asm"
 
 SilphCo2Blocks: ; 59ec8 (16:5ec8)
@@ -69413,146 +49387,8 @@
 
 INCLUDE "data/mapHeaders/silphco3.asm"
 
-SilphCo3Script: ; 59f5b (16:5f5b)
-	call SilphCo3Script_59f71
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo3TrainerHeaders
-	ld de, SilphCo3ScriptPointers
-	ld a, [W_SILPHCO3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO3CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco3.asm"
 
-SilphCo3Script_59f71: ; 59f71 (16:5f71)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_59fa8 ; $5fa8
-	call Func_59d43
-	call Func_59fad
-	ld a, [$d828]
-	bit 0, a
-	jr nz, .asm_59f98
-	push af
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $404
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_59f98
-	bit 1, a
-	ret nz
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $408
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_59fa8: ; 59fa8 (16:5fa8)
-	db $04,$04,$04,$08,$FF
-
-Func_59fad: ; 59fad (16:5fad)
-	ld hl, $d828
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_59fbb
-	set 0, [hl]
-	ret
-.asm_59fbb
-	set 1, [hl]
-	ret
-
-SilphCo3ScriptPointers: ; 59fbe (16:5fbe)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo3TextPointers: ; 59fc4 (16:5fc4)
-	dw SilphCo3Text1
-	dw SilphCo3Text2
-	dw SilphCo3Text3
-	dw Predef5CText
-
-SilphCo3TrainerHeaders: ; 59fcc (16:5fcc)
-SilphCo3TrainerHeader0: ; 59fcc (16:5fcc)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d827 ; flag's byte
-	dw SilphCo3BattleText1 ; 0x600d TextBeforeBattle
-	dw SilphCo3AfterBattleText1 ; 0x6017 TextAfterBattle
-	dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
-	dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
-
-SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d827 ; flag's byte
-	dw SilphCo3BattleText2 ; 0x6026 TextBeforeBattle
-	dw SilphCo3AfterBattleText2 ; 0x6030 TextAfterBattle
-	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
-	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
-
-	db $ff
-
-SilphCo3Text1: ; 59fe5 (16:5fe5)
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a
-	ld hl, UnnamedText_59ffe
-	jr nz, asm_8c56f ; 0x59fee
-	ld hl, UnnamedText_59ff9
-asm_8c56f ; 0x59ff3
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_59ff9: ; 59ff9 (16:5ff9)
-	TX_FAR _UnnamedText_59ff9
-	db "@"
-
-UnnamedText_59ffe: ; 59ffe (16:5ffe)
-	TX_FAR _UnnamedText_59ffe
-	db "@"
-
-SilphCo3Text2: ; 5a003 (16:6003)
-	db $08 ; asm
-	ld hl, SilphCo3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo3BattleText1: ; 5a00d (16:600d)
-	TX_FAR _SilphCo3BattleText1
-	db "@"
-
-SilphCo3EndBattleText1: ; 5a012 (16:6012)
-	TX_FAR _SilphCo3EndBattleText1
-	db "@"
-
-SilphCo3AfterBattleText1: ; 5a017 (16:6017)
-	TX_FAR _SilphCo3AfterBattleText1
-	db "@"
-
-SilphCo3Text3: ; 5a01c (16:601c)
-	db $08 ; asm
-	ld hl, SilphCo3TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo3BattleText2: ; 5a026 (16:6026)
-	TX_FAR _SilphCo3BattleText2
-	db "@"
-
-SilphCo3EndBattleText2: ; 5a02b (16:602b)
-	TX_FAR _SilphCo3EndBattleText2
-	db "@"
-
-SilphCo3AfterBattleText2: ; 5a030 (16:6030)
-	TX_FAR _SilphCo3AfterBattleText2
-	db "@"
-
 INCLUDE "data/mapObjects/silphco3.asm"
 
 SilphCo3Blocks: ; 5a0a6 (16:60a6)
@@ -69560,133 +49396,8 @@
 
 INCLUDE "data/mapHeaders/silphco10.asm"
 
-SilphCo10Script: ; 5a139 (16:6139)
-	call SilphCo10Script_5a14f
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo10TrainerHeaders
-	ld de, SilphCo10ScriptPointers
-	ld a, [W_SILPHCO10CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO10CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco10.asm"
 
-SilphCo10Script_5a14f: ; 5a14f (16:614f)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_5a173 ; $6173
-	call Func_59d43
-	call Func_5a176
-	ld a, [$d836]
-	bit 0, a
-	ret nz
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $405
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_5a173: ; 5a173 (16:6173)
-	db $04,$05,$FF
-
-Func_5a176: ; 5a176 (16:6176)
-	ld a, [$ffe0]
-	and a
-	ret z
-	ld hl, $d836
-	set 0, [hl]
-	ret
-
-SilphCo10ScriptPointers: ; 5a180 (16:6180)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo10TextPointers: ; 5a186 (16:6186)
-	dw SilphCo10Text1
-	dw SilphCo10Text2
-	dw SilphCo10Text3
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-SilphCo10TrainerHeaders: ; 5a192 (16:6192)
-SilphCo10TrainerHeader0: ; 5a192 (16:6192)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d835 ; flag's byte
-	dw SilphCo10BattleText1 ; 0x61dd TextBeforeBattle
-	dw SilphCo10AfterBattleText1 ; 0x61e7 TextAfterBattle
-	dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
-	dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
-
-SilphCo10TrainerHeader1: ; 5a19e (16:619e)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d835 ; flag's byte
-	dw SilphCo10BattleText2 ; 0x61ec TextBeforeBattle
-	dw SilphCo10AfterBattleText2 ; 0x61f6 TextAfterBattle
-	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
-	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
-
-	db $ff
-
-SilphCo10Text1: ; 5a1ab (16:61ab)
-	db $08 ; asm
-	ld hl, SilphCo10TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo10Text2: ; 5a1b5 (16:61b5)
-	db $08 ; asm
-	ld hl, SilphCo10TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo10Text3: ; 5a1bf (16:61bf)
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a
-	ld hl, UnnamedText_5a1d8
-	jr nz, .asm_cf85f
-	ld hl, UnnamedText_5a1d3
-.asm_cf85f
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5a1d3: ; 5a1d3 (16:61d3)
-	TX_FAR _UnnamedText_5a1d3
-	db "@"
-
-UnnamedText_5a1d8: ; 5a1d8 (16:61d8)
-	TX_FAR _UnnamedText_5a1d8
-	db "@"
-
-SilphCo10BattleText1: ; 5a1dd (16:61dd)
-	TX_FAR _SilphCo10BattleText1
-	db "@"
-
-SilphCo10EndBattleText1: ; 5a1e2 (16:61e2)
-	TX_FAR _SilphCo10EndBattleText1
-	db "@"
-
-SilphCo10AfterBattleText1: ; 5a1e7 (16:61e7)
-	TX_FAR _SilphCo10AfterBattleText1
-	db "@"
-
-SilphCo10BattleText2: ; 5a1ec (16:61ec)
-	TX_FAR _SilphCo10BattleText2
-	db "@"
-
-SilphCo10EndBattleText2: ; 5a1f1 (16:61f1)
-	TX_FAR _SilphCo10EndBattleText2
-	db "@"
-
-SilphCo10AfterBattleText2: ; 5a1f6 (16:61f6)
-	TX_FAR _SilphCo10AfterBattleText2
-	db "@"
-
 INCLUDE "data/mapObjects/silphco10.asm"
 
 SilphCo10Blocks: ; 5a25a (16:625a)
@@ -69694,173 +49405,8 @@
 
 INCLUDE "data/mapHeaders/lance.asm"
 
-LanceScript: ; 5a2ae (16:62ae)
-	call LanceScript_5a2c4
-	call EnableAutoTextBoxDrawing
-	ld hl, LanceTrainerHeaders
-	ld de, LanceScriptPointers
-	ld a, [W_LANCECURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_LANCECURSCRIPT], a
-	ret
+INCLUDE "scripts/lance.asm"
 
-LanceScript_5a2c4: ; 5a2c4 (16:62c4)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d866]
-	bit 7, a
-	jr nz, .asm_5a2da
-	ld a, $31
-	ld b, $32
-	jp Func_5a2de
-.asm_5a2da
-	ld a, $72
-	ld b, $73
-
-Func_5a2de: ; 5a2de (16:62de)
-	push bc
-	ld [$d09f], a
-	ld bc, $602
-	call Func_5a2f0
-	pop bc
-	ld a, b
-	ld [$d09f], a
-	ld bc, $603
-
-Func_5a2f0: ; 5a2f0 (16:62f0)
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-Func_5a2f5: ; 5a2f5 (16:62f5)
-	xor a
-	ld [W_LANCECURSCRIPT], a
-	ret
-
-LanceScriptPointers: ; 5a2fa (16:62fa)
-	dw LanceScript0
-	dw Func_324c
-	dw LanceScript2
-	dw LanceScript3
-	dw LanceScript4
-
-LanceScript4: ; 5a304 (16:6304)
-	ret
-
-LanceScript0: ; 5a305 (16:6305)
-	ld a, [$d866]
-	bit 6, a
-	ret nz
-	ld hl, CoordsData_5a33e
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, [wWhichTrade] ; $cd3d
-	cp $3
-	jr nc, .asm_5a325
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-.asm_5a325
-	cp $5
-	jr z, Func_5a35b
-	ld hl, $d866
-	bit 7, [hl]
-	set 7, [hl]
-	ret nz
-	ld hl, $d126
-	set 5, [hl]
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	jp LanceScript_5a2c4
-
-CoordsData_5a33e: ; 5a33e (16:633e)
-	db $01,$05
-	db $02,$06
-	db $0B,$05
-	db $0B,$06
-	db $10,$18
-	db $FF
-
-LanceScript2: ; 5a349 (16:6349)
-	call EndTrainerBattle
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_5a2f5
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-Func_5a35b: ; 5a35b (16:635b)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $ccd3
-	ld de, RLEList_5a379
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_LANCECURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-RLEList_5a379: ; 5a379 (16:6379)
-	db $40, $0C
-	db $20, $0C
-	db $80, $07
-	db $20, $06
-	db $FF
-
-LanceScript3: ; 5a382 (16:6382)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_LANCECURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-LanceTextPointers: ; 5a395 (16:6395)
-	dw LanceText1
-
-LanceTrainerHeaders: ; 5a397 (16:6397)
-LanceTrainerHeader0: ; 5a397 (16:6397)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d866 ; flag's byte
-	dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle
-	dw LanceAfterBattleText ; 0x63b8 TextAfterBattle
-	dw LanceEndBattleText ; 0x63b3 TextEndBattle
-	dw LanceEndBattleText ; 0x63b3 TextEndBattle
-
-	db $ff
-
-LanceText1: ; 5a3a4 (16:63a4)
-	db $08 ; asm
-	ld hl, LanceTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-LanceBeforeBattleText: ; 5a3ae (16:63ae)
-	TX_FAR _LanceBeforeBattleText
-	db "@"
-
-LanceEndBattleText: ; 5a3b3 (16:63b3)
-	TX_FAR _LanceEndBattleText
-	db "@"
-
-LanceAfterBattleText: ; 5a3b8 (16:63b8)
-	TX_FAR _LanceAfterBattleText
-	db $8
-	ld hl, $d866
-	set 6, [hl]
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/lance.asm"
 
 LanceBlocks: ; 5a3e9 (16:63e9)
@@ -69868,124 +49414,8 @@
 
 INCLUDE "data/mapHeaders/halloffameroom.asm"
 
-HallofFameRoomScript: ; 5a49e (16:649e)
-	call EnableAutoTextBoxDrawing
-	ld hl, HallofFameRoomScriptPointers
-	ld a, [W_HALLOFFAMEROOMCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/halloffameroom.asm"
 
-Func_5a4aa: ; 5a4aa (16:64aa)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_HALLOFFAMEROOMCURSCRIPT], a
-	ret
-
-HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2)
-	dw HallofFameRoomScript0
-	dw HallofFameRoomScript1
-	dw HallofFameRoomScript2
-	dw HallofFameRoomScript3
-
-HallofFameRoomScript3: ; 5a4ba (16:64ba)
-	ret
-
-HallofFameRoomScript2: ; 5a4bb (16:64bb)
-	call Delay3
-	ld a, [$d358]
-	push af
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $55
-	call Predef
-	pop af
-	ld [$d358], a
-	ld hl, W_FLAGS_D733
-	res 1, [hl]
-	inc hl
-	set 0, [hl]
-	xor a
-	ld hl, W_LORELEICURSCRIPT
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld [W_LANCECURSCRIPT], a
-	ld [W_HALLOFFAMEROOMCURSCRIPT], a
-	ld hl, $d863
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	xor a
-	ld [W_HALLOFFAMEROOMCURSCRIPT], a
-	ld a, $0
-	ld [$d719], a
-	ld b, BANK(SaveSAVtoSRAM)
-	ld hl, SaveSAVtoSRAM
-	call Bankswitch
-	ld b, $5
-.asm_5a4ff
-	ld c, $78
-	call DelayFrames
-	dec b
-	jr nz, .asm_5a4ff ; 0x5a505 $f8
-	call WaitForTextScrollButtonPress
-	jp InitGame
-
-HallofFameRoomScript0: ; 5a50d (16:650d)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $ccd3
-	ld de, RLEMovement5a528
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $1
-	ld [W_HALLOFFAMEROOMCURSCRIPT], a
-	ret
-
-RLEMovement5a528: ; 5a528 (16:6528)
-	db $40,$5
-	db $ff
-
-HallofFameRoomScript1: ; 5a52b (16:652b)
-	ld a, [$cd38]
-	and a
-	ret nz
-	ld a, $1
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	ld a, $8
-	ld [$ff8d], a
-	call Func_34a6
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	inc a
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $8
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $2
-	ld [W_HALLOFFAMEROOMCURSCRIPT], a
-	ret
-
-HallofFameRoomTextPointers: ; 5a56a (16:656a)
-	dw HallofFameRoomText1
-
-HallofFameRoomText1: ; 5a56c (16:656c)
-	TX_FAR _HallofFameRoomText1
-	db "@"
-
 INCLUDE "data/mapObjects/halloffameroom.asm"
 
 HallofFameRoomBlocks: ; 5a58b (16:658b)
@@ -70047,31 +49477,8 @@
 
 INCLUDE "data/mapHeaders/redshouse2f.asm"
 
-RedsHouse2FScript: ; 5c0b0 (17:40b0)
-	call EnableAutoTextBoxDrawing
-	ld hl,RedsHouse2FScriptPointers
-	ld a,[W_REDSHOUSE2CURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/redshouse2f.asm"
 
-RedsHouse2FScriptPointers: ; 5c0bc (17:40bc)
-	dw RedsHouse2FScript0
-	dw RedsHouse2FScript1
-
-RedsHouse2FScript0: ; 5c0c0 (17:40c0)
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS],a
-	ld a,8
-	ld [$D528],a
-	ld a,1
-	ld [W_REDSHOUSE2CURSCRIPT],a
-	ret
-
-RedsHouse2FScript1: ; 5c0ce (17:40ce)
-	ret
-
-RedsHouse2FTextPointers: ; 5c0cf (17:40cf)
-	db "@"
-
 INCLUDE "data/mapObjects/redshouse2f.asm"
 
 Func_5c0dc: ; 5c0dc (17:40dc)
@@ -70085,546 +49492,20 @@
 
 INCLUDE "data/mapHeaders/museum1f.asm"
 
-Museum1FScript: ; 5c0f7 (17:40f7)
-	ld a, $1
-	ld [$cf0c], a
-	xor a
-	ld [$cc3c], a
-	ld hl, Museum1FScriptPointers
-	ld a, [W_MUSEUM1FCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/museum1f.asm"
 
-Museum1FScriptPointers: ; 5c109 (17:4109)
-	dw Museum1FScript0
-	dw Museum1FScript1
-
-Museum1FScript0: ; 5c10d (17:410d)
-	ld a, [W_YCOORD]
-	cp $4
-	ret nz
-	ld a, [W_XCOORD]
-	cp $9
-	jr z, .asm_5c120 ; 0x5c118 $6
-	ld a, [W_XCOORD]
-	cp $a
-	ret nz
-.asm_5c120
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $1
-	ld [$ff8c], a
-	jp DisplayTextID
-
-Museum1FScript1: ; 5c12a (17:412a)
-	ret
-
-Museum1FTextPointers: ; 5c12b (17:412b)
-	dw Museum1FText1
-	dw Museum1FText2
-	dw Museum1FText3
-	dw Museum1FText4
-	dw Museum1FText5
-
-Museum1FText1: ; 5c135 (17:4135)
-	db $8
-	ld a, [W_YCOORD]
-	cp $4
-	jr nz, asm_8774b ; 0x5c13b $a
-	ld a, [W_XCOORD]
-	cp $d
-	jp z, Func_5c1f9
-	jr asm_b8709 ; 0x5c145 $1c
-asm_8774b: ; 5c147 (17:4147)
-	cp $3
-	jr nz, asm_d49e7 ; 0x5c149 $8
-	ld a, [W_XCOORD]
-	cp $c
-	jp z, Func_5c1f9
-asm_d49e7: ; 5c153 (17:4153)
-	ld a, [$d754]
-	bit 0, a
-	jr nz, asm_31a16 ; 0x5c158 $10
-	ld hl, UnnamedText_5c23d
-	call PrintText
-	jp asm_d1145
-asm_b8709: ; 5c163 (17:4163)
-	ld a, [$d754]
-	bit 0, a
-	jr z, asm_3ded4 ; 0x5c168 $9
-asm_31a16: ; 5c16a (17:416a)
-	ld hl, UnnamedText_5c242
-	call PrintText
-	jp asm_d1145
-asm_3ded4: ; 5c173 (17:4173)
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld hl, UnnamedText_5c21f
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, asm_de133 ; 0x5c18b $4d
-	xor a
-	ld [$ff9f], a
-	ld [$ffa0], a
-	ld a, $50
-	ld [$ffa1], a
-	call HasEnoughMoney
-	jr nc, asm_0f3e3 ; 0x5c199 $9
-	ld hl, UnnamedText_5c229
-	call PrintText
-	jp asm_de133
-asm_0f3e3: ; 5c1a4 (17:41a4)
-	ld hl, UnnamedText_5c224
-	call PrintText
-	ld hl, $d754
-	set 0, [hl]
-	xor a
-	ld [$cd3d], a
-	ld [$cd3e], a
-	ld a, $50
-	ld [$cd3f], a
-	ld hl, $cd3f
-	ld de, $d349
-	ld c, $3
-	ld a, $c
-	call Predef
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	ld a, (SFX_02_5a - SFX_Headers_02) / 3
-	call PlaySoundWaitForCurrent
-	call WaitForSoundToFinish
-	jr asm_0b094 ; 0x5c1d8 $18
-asm_de133: ; 5c1da (17:41da)
-	ld hl, UnnamedText_5c21a ; $421a
-	call PrintText
-	ld a, $1
-	ld [$cd38], a
-	ld a, $80
-	ld [$ccd3], a
-	call Func_3486
-	call UpdateSprites
-	jr asm_d1145 ; 0x5c1f0 $25
-asm_0b094: ; 5c1f2 (17:41f2)
-	ld a, $1
-	ld [W_MUSEUM1FCURSCRIPT], a
-	jr asm_d1145 ; 0x5c1f7 $1e
-
-Func_5c1f9: ; 5c1f9 (17:41f9)
-	ld hl, UnnamedText_5c22e
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	cp $0
-	jr nz, asm_d1144
-	ld hl, UnnamedText_5c233
-	call PrintText
-	jr asm_d1145 ; 0x5c20f $6
-asm_d1144: ; 5c211 (17:4211)
-	ld hl, UnnamedText_5c238
-	call PrintText
-asm_d1145: ; 5c217 (17:4217)
-	jp TextScriptEnd
-
-UnnamedText_5c21a: ; 5c21a (17:421a)
-	TX_FAR _UnnamedText_5c21a
-	db "@"
-
-UnnamedText_5c21f: ; 5c21f (17:421f)
-	TX_FAR _UnnamedText_5c21f
-	db "@"
-
-UnnamedText_5c224: ; 5c224 (17:4224)
-	TX_FAR _UnnamedText_5c224
-	db "@"
-
-UnnamedText_5c229: ; 5c229 (17:4229)
-	TX_FAR _UnnamedText_5c229
-	db "@"
-
-UnnamedText_5c22e: ; 5c22e (17:422e)
-	TX_FAR _UnnamedText_5c22e
-	db "@"
-
-UnnamedText_5c233: ; 5c233 (17:4233)
-	TX_FAR _UnnamedText_5c233
-	db "@"
-
-UnnamedText_5c238: ; 5c238 (17:4238)
-	TX_FAR _UnnamedText_5c238
-	db "@"
-
-UnnamedText_5c23d: ; 5c23d (17:423d)
-	TX_FAR _UnnamedText_5c23d
-	db "@"
-
-UnnamedText_5c242: ; 5c242 (17:4242)
-	TX_FAR _UnnamedText_5c242
-	db "@"
-
-Museum1FText2: ; 5c247 (17:4247)
-	db $08 ; asm
-	ld hl, UnnamedText_5c251
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5c251: ; 5c251 (17:4251)
-	TX_FAR _UnnamedText_5c251
-	db "@"
-
-Museum1FText3: ; 5c256 (17:4256)
-	db $08 ; asm
-	ld a, [$d754]
-	bit 1, a
-	jr nz, .asm_16599 ; 0x5c25c
-	ld hl, UnnamedText_5c28e
-	call PrintText
-	ld bc, (OLD_AMBER << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, $d754
-	set 1, [hl]
-	ld a, $34
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, ReceivedOldAmberText
-	jr .asm_52e0f ; 0x5c27e
-.BagFull
-	ld hl, UnnamedText_5c29e
-	jr .asm_52e0f ; 0x5c283
-.asm_16599 ; 0x5c285
-	ld hl, UnnamedText_5c299
-.asm_52e0f ; 0x5c288
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5c28e: ; 5c28e (17:428e)
-	TX_FAR _UnnamedText_5c28e
-	db "@"
-
-ReceivedOldAmberText: ; 5c293 (17:4293)
-	TX_FAR _ReceivedOldAmberText
-	db $0B, "@"
-
-UnnamedText_5c299: ; 5c299 (17:4299)
-	TX_FAR _UnnamedText_5c299
-	db "@"
-
-UnnamedText_5c29e: ; 5c29e (17:429e)
-	TX_FAR _UnnamedText_5c29e
-	db "@"
-
-Museum1FText4: ; 5c2a3 (17:42a3)
-	db $08 ; asm
-	ld hl, UnnamedText_5c2ad
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5c2ad: ; 5c2ad (17:42ad)
-	TX_FAR _UnnamedText_5c2ad
-	db "@"
-
-Museum1FText5: ; 5c2b2 (17:42b2)
-	db $08 ; asm
-	ld hl, UnnamedText_5c2bc
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5c2bc: ; 5c2bc (17:42bc)
-	TX_FAR _UnnamedText_5c2bc
-	db "@"
-
 INCLUDE "data/mapObjects/museum1f.asm"
 
 INCLUDE "data/mapHeaders/museum2f.asm"
 
-Museum2FScript: ; 5c317 (17:4317)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/museum2f.asm"
 
-Museum2FTextPointers: ; 5c31a (17:431a)
-	dw Museum2FText1
-	dw Museum2FText2
-	dw Museum2FText3
-	dw Museum2FText4
-	dw Museum2FText5
-	dw Museum2FText6
-	dw Museum2FText7
-
-Museum2FText1: ; 5c328 (17:4328)
-	TX_FAR _Museum2FText1
-	db "@"
-
-Museum2FText2: ; 5c32d (17:432d)
-	TX_FAR _Museum2FText2
-	db "@"
-
-Museum2FText3: ; 5c332 (17:4332)
-	TX_FAR _Museum2FText3
-	db "@"
-
-Museum2FText4: ; 5c337 (17:4337)
-	TX_FAR _Museum2FText4
-	db "@"
-
-Museum2FText5: ; 5c33c (17:433c)
-	TX_FAR _Museum2FText5
-	db "@"
-
-Museum2FText6: ; 5c341 (17:4341)
-	TX_FAR _Museum2FText6
-	db "@"
-
-Museum2FText7: ; 5c346 (17:4346)
-	TX_FAR _Museum2FText7
-	db "@"
-
 INCLUDE "data/mapObjects/museum2f.asm"
 
 INCLUDE "data/mapHeaders/pewtergym.asm"
 
-PewterGymScript: ; 5c387 (17:4387)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, PewterGymScript_5c3a4
-	call EnableAutoTextBoxDrawing
-	ld hl, PewterGymTrainerHeaders
-	ld de, PewterGymScriptPointers
-	ld a, [W_PEWTERGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_PEWTERGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/pewtergym.asm"
 
-PewterGymScript_5c3a4: ; 5c3a4 (17:43a4)
-	ld hl, Gym1CityName ; $43ad
-	ld de, Gym1LeaderName ; $43b9
-	jp LoadGymLeaderAndCityName
-
-Gym1CityName: ; 5c3ad (17:43ad)
-	db "PEWTER CITY@"
-
-Gym1LeaderName: ; 5c3b9 (17:43b9)
-	db "BROCK@"
-
-Func_5c3bf: ; 5c3bf (17:43bf)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_PEWTERGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PewterGymScriptPointers: ; 5c3ca (17:43ca)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw PewterGymScript3
-
-PewterGymScript3: ; 5c3d2 (17:43d2)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_5c3bf
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_5c3df: ; 5c3df (17:43df)
-	ld a, $4
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d755
-	set 7, [hl]
-	ld bc, (TM_34 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $5
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d755
-	set 6, [hl]
-	jr .asm_5c408
-.BagFull
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_5c408
-	ld hl, W_OBTAINEDBADGES
-	set 0, [hl]
-	ld hl, $d72a
-	set 0, [hl]
-
-	ld a, $4
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $22
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-
-	ld hl, $d7eb
-	res 0, [hl]
-	res 7, [hl]
-
-	; deactivate gym trainers
-	ld hl, $d755
-	set 2, [hl]
-
-	jp Func_5c3bf
-
-PewterGymTextPointers: ; 5c435 (17:4435)
-	dw PewterGymText1
-	dw PewterGymText2
-	dw PewterGymText3
-	dw PewterGymText4
-	dw PewterGymText5
-	dw PewterGymText6
-
-PewterGymTrainerHeaders: ; 5c441 (17:4441)
-PewterGymTrainerHeader0: ; 5c441 (17:4441)
-	db $2 ; flag's bit
-	db ($5 << 4) ; trainer's view range
-	dw $d755 ; flag's byte
-	dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle
-	dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle
-	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
-	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
-
-	db $ff
-
-PewterGymText1: ; 5c44e (17:444e)
-	db $08 ; asm
-	ld a, [$d755]
-	bit 7, a
-	jr z, .asm_4a735 ; 0x5c454
-	bit 6, a
-	jr nz, .asm_ff7d0 ; 0x5c458
-	call z, Func_5c3df
-	call DisableWaitingAfterTextDisplay
-	jr .asm_e0ffb ; 0x5c460
-.asm_ff7d0 ; 0x5c462
-	ld hl, UnnamedText_5c4a3
-	call PrintText
-	jr .asm_e0ffb ; 0x5c468
-.asm_4a735 ; 0x5c46a
-	ld hl, UnnamedText_5c49e
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_5c4bc
-	ld de, UnnamedText_5c4bc
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $1
-	ld [$d05c], a
-	xor a
-	ldh [$b4], a
-	ld a, $3
-	ld [W_PEWTERGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_e0ffb ; 0x5c49b
-	jp TextScriptEnd
-
-UnnamedText_5c49e: ; 5c49e (17:449e)
-	TX_FAR _UnnamedText_5c49e
-	db "@"
-
-UnnamedText_5c4a3: ; 5c4a3 (17:44a3)
-	TX_FAR _UnnamedText_5c4a3
-	db "@"
-
-PewterGymText4: ; 5c4a8 (17:44a8)
-	TX_FAR _TM34PreReceiveText
-	db "@"
-
-PewterGymText5: ; 5c4ad (17:44ad)
-	TX_FAR _ReceivedTM34Text
-	db $0B
-	TX_FAR _TM34ExplanationText
-	db "@"
-
-PewterGymText6: ; 5c4b7 (17:44b7)
-	TX_FAR _TM34NoRoomText
-	db "@"
-
-UnnamedText_5c4bc: ; 5c4bc (17:44bc)
-	TX_FAR _UnnamedText_5c4bc
-	db $0B
-	TX_FAR _UnnamedText_5c4c1
-	db "@"
-
-PewterGymText2: ; 5c4c6 (17:44c6)
-	db $08 ; asm
-	ld hl, PewterGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PewterGymBattleText1: ; 5c4d0 (17:44d0)
-	TX_FAR _PewterGymBattleText1
-	db "@"
-
-PewterGymEndBattleText1: ; 5c4d5 (17:44d5)
-	TX_FAR _PewterGymEndBattleText1
-	db "@"
-
-PewterGymAfterBattleText1: ; 5c4da (17:44da)
-	TX_FAR _PewterGymAfterBattleText1
-	db "@"
-
-PewterGymText3: ; 5c4df (17:44df)
-	db $08 ; asm
-	ld a, [$d72a]
-	bit 0, a
-	jr nz, .asm_71369 ; 0x5c4e5
-	ld hl, UnnamedText_5c515
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_6123a ; 0x5c4f4
-	ld hl, UnnamedText_5c51a
-	call PrintText
-	jr .asm_d1578 ; 0x5c4fc
-.asm_6123a ; 0x5c4fe
-	ld hl, UnnamedText_5c524
-	call PrintText
-.asm_d1578 ; 0x5c504
-	ld hl, UnnamedText_5c51f
-	call PrintText
-	jr .asm_07013 ; 0x5c50a
-.asm_71369 ; 0x5c50c
-	ld hl, UnnamedText_5c529
-	call PrintText
-.asm_07013 ; 0x5c512
-	jp TextScriptEnd
-
-UnnamedText_5c515: ; 5c515 (17:4515)
-	TX_FAR _UnnamedText_5c515
-	db "@"
-
-UnnamedText_5c51a: ; 5c51a (17:451a)
-	TX_FAR _UnnamedText_5c51a
-	db "@"
-
-UnnamedText_5c51f: ; 5c51f (17:451f)
-	TX_FAR _UnnamedText_5c51f
-	db "@"
-
-UnnamedText_5c524: ; 5c524 (17:4524)
-	TX_FAR _UnnamedText_5c524
-	db "@"
-
-UnnamedText_5c529: ; 5c529 (17:4529)
-	TX_FAR _UnnamedText_5c529
-	db "@"
-
 INCLUDE "data/mapObjects/pewtergym.asm"
 
 PewterGymBlocks: ; 5c558 (17:4558)
@@ -70632,110 +49513,14 @@
 
 INCLUDE "data/mapHeaders/pewterpokecenter.asm"
 
-PewterPokecenterScript: ; 5c587 (17:4587)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/pewterpokecenter.asm"
 
-PewterPokecenterTextPointers: ; 5c58d (17:458d)
-	dw PewterPokecenterText1
-	dw PewterPokecenterText2
-	dw PewterPokecenterText3
-	dw PewterPokecenterText4
-
-PewterPokecenterText1: ; 5c595 (17:4595)
-	db $ff
-
-PewterPokecenterText2: ; 5c596 (17:4596)
-	TX_FAR _PewterPokecenterText1
-	db "@"
-
-PewterPokecenterText3: ; 5c59b (17:459b)
-	db $8
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, PewterPokecenterText5
-	call PrintText
-	ld a, $ff
-	call PlaySound
-	ld c, $20
-	call DelayFrames
-	ld hl, Unknown_5c608 ; $4608
-	ld de, $cd3f
-	ld bc, $0004
-	call CopyData
-	ld a, [$c132]
-	ld hl, $cd3f
-.asm_5c5c3
-	cp [hl]
-	inc hl
-	jr nz, .asm_5c5c3 ; 0x5c5c5 $fc
-	dec hl
-	push hl
-	ld c, BANK(Music_JigglypuffSong)
-	ld a, MUSIC_JIGGLYPUFF_SONG
-	call PlayMusic
-	pop hl
-.asm_5c5d1
-	ld a, [hl]
-	ld [$c132], a
-	push hl
-	ld hl, $cd3f
-	ld de, $cd3e
-	ld bc, $0004
-	call CopyData
-	ld a, [$cd3e]
-	ld [$cd42], a
-	pop hl
-	ld c, $18
-	call DelayFrames
-	ld a, [$c026]
-	ld b, a
-	ld a, [$c027]
-	or b
-	jr nz, .asm_5c5d1 ; 0x5c5f6 $d9
-	ld c, $30
-	call DelayFrames
-	call Func_2307
-	jp TextScriptEnd
-
-PewterPokecenterText5: ; 5c603 (17:4603)
-	TX_FAR _PewterPokecenterText5
-	db "@"
-
-Unknown_5c608: ; 5c608 (17:4608)
-	db $30, $38, $34, $3c
-
-PewterPokecenterText4: ; 5c60c (17:460c)
-	db $f6
-
 INCLUDE "data/mapObjects/pewterpokecenter.asm"
 
 INCLUDE "data/mapHeaders/ceruleanpokecenter.asm"
 
-CeruleanPokecenterScript: ; 5c645 (17:4645)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ceruleanpokecenter.asm"
 
-CeruleanPokecenterTextPointers: ; 5c64b (17:464b)
-	dw CeruleanPokecenterText1
-	dw CeruleanPokecenterText2
-	dw CeruleanPokecenterText3
-	dw CeruleanPokecenterText4
-
-CeruleanPokecenterText4: ; 5c653 (17:4653)
-	db $f6
-
-CeruleanPokecenterText1: ; 5c654 (17:4654)
-	db $ff
-
-CeruleanPokecenterText2: ; 5c655 (17:4655)
-	TX_FAR _CeruleanPokecenterText1
-	db "@"
-
-CeruleanPokecenterText3: ; 5c65a (17:465a)
-	TX_FAR _CeruleanPokecenterText3
-	db "@"
-
 INCLUDE "data/mapObjects/ceruleanpokecenter.asm"
 
 CeruleanPokecenterBlocks: ; 5c68b (17:468b)
@@ -70743,231 +49528,8 @@
 
 INCLUDE "data/mapHeaders/ceruleangym.asm"
 
-CeruleanGymScript: ; 5c6b3 (17:46b3)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, CeruleanGymScript_5c6d0
-	call EnableAutoTextBoxDrawing
-	ld hl, CeruleanGymTrainerHeaders
-	ld de, CeruleanGymScriptPointers
-	ld a, [W_CERULEANGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_CERULEANGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/ceruleangym.asm"
 
-CeruleanGymScript_5c6d0: ; 5c6d0 (17:46d0)
-	ld hl, Gym2CityName ; $46d9
-	ld de, Gym2LeaderName ; $46e7
-	jp LoadGymLeaderAndCityName
-
-Gym2CityName: ; 5c6d9 (17:46d9)
-	db "CERULEAN CITY@"
-
-Gym2LeaderName: ; 5c6e7 (17:46e7)
-	db "MISTY@"
-
-Func_5c6ed: ; 5c6ed (17:46ed)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CERULEANGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CeruleanGymScriptPointers: ; 5c6f8 (17:46f8)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw CeruleanGymScript3
-
-CeruleanGymScript3: ; 5c700 (17:4700)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_5c6ed
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_5c70d: ; 5c70d (17:470d)
-	ld a, $5
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d75e
-	set 7, [hl]
-	ld bc, (TM_11 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d75e
-	set 6, [hl]
-	jr .asm_5c736
-.BagFull
-	ld a, $7
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_5c736
-	ld hl, W_OBTAINEDBADGES
-	set 1, [hl]
-	ld hl, $d72a
-	set 1, [hl]
-
-	; deactivate gym trainers
-	ld hl, $d75e
-	set 2, [hl]
-	set 3, [hl]
-
-	jp Func_5c6ed
-
-CeruleanGymTextPointers: ; 5c74a (17:474a)
-	dw CeruleanGymText1
-	dw CeruleanGymText2
-	dw CeruleanGymText3
-	dw CeruleanGymText4
-	dw CeruleanGymText5
-	dw CeruleanGymText6
-	dw CeruleanGymText7
-
-CeruleanGymTrainerHeaders: ; 5c758 (17:4758)
-CeruleanGymTrainerHeader0: ; 5c758 (17:4758)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d75e ; flag's byte
-	dw CeruleanGymBattleText1 ; 0x47e9 TextBeforeBattle
-	dw CeruleanGymAfterBattleText1 ; 0x47f3 TextAfterBattle
-	dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
-	dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
-
-CeruleanGymTrainerHeader1: ; 5c764 (17:4764)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d75e ; flag's byte
-	dw CeruleanGymBattleText2 ; 0x4802 TextBeforeBattle
-	dw CeruleanGymAfterBattleText2 ; 0x480c TextAfterBattle
-	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
-	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
-
-	db $ff
-
-CeruleanGymText1: ; 5c771 (17:4771)
-	db $08 ; asm
-	ld a, [$d75e]
-	bit 7, a
-	jr z, .asm_10854 ; 0x5c777
-	bit 6, a
-	jr nz, .asm_37a1b ; 0x5c77b
-	call z, Func_5c70d
-	call DisableWaitingAfterTextDisplay
-	jr .asm_95b04 ; 0x5c783
-.asm_37a1b ; 0x5c785
-	ld hl, UnnamedText_5c7c3
-	call PrintText
-	jr .asm_95b04 ; 0x5c78b
-.asm_10854 ; 0x5c78d
-	ld hl, UnnamedText_5c7be
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_5c7d8
-	ld de, UnnamedText_5c7d8
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $2
-	ld [$d05c], a
-	xor a
-	ldh [$b4], a
-	ld a, $3
-	ld [W_CERULEANGYMCURSCRIPT], a
-.asm_95b04 ; 0x5c7bb
-	jp TextScriptEnd
-
-UnnamedText_5c7be: ; 5c7be (17:47be)
-	TX_FAR _UnnamedText_5c7be
-	db "@"
-
-UnnamedText_5c7c3: ; 5c7c3 (17:47c3)
-	TX_FAR _UnnamedText_5c7c3
-	db "@"
-
-CeruleanGymText5: ; 5c7c8 (17:47c8)
-	TX_FAR _UnnamedText_5c7c8
-	db "@"
-
-CeruleanGymText6: ; 5c7cd (17:47cd)
-ReceivedTM11Text: ; 5c7cd (17:47cd)
-	TX_FAR _ReceivedTM11Text
-	db $0B, "@"
-
-CeruleanGymText7: ; 5c7d3 (17:47d3)
-	TX_FAR _UnnamedText_5c7d3
-	db "@"
-
-UnnamedText_5c7d8: ; 5c7d8 (17:47d8)
-	TX_FAR _UnnamedText_5c7d8
-	db $11, $6, "@"
-
-CeruleanGymText2: ; 5c7df (17:47df)
-	db $08 ; asm
-	ld hl, CeruleanGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeruleanGymBattleText1: ; 5c7e9 (17:47e9)
-	TX_FAR _CeruleanGymBattleText1
-	db "@"
-
-CeruleanGymEndBattleText1: ; 5c7ee (17:47ee)
-	TX_FAR _CeruleanGymEndBattleText1
-	db "@"
-
-CeruleanGymAfterBattleText1: ; 5c7f3 (17:47f3)
-	TX_FAR _CeruleanGymAfterBattleText1
-	db "@"
-
-CeruleanGymText3: ; 5c7f8 (17:47f8)
-	db $08 ; asm
-	ld hl, CeruleanGymTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-CeruleanGymBattleText2: ; 5c802 (17:4802)
-	TX_FAR _CeruleanGymBattleText2
-	db "@"
-
-CeruleanGymEndBattleText2: ; 5c807 (17:4807)
-	TX_FAR _CeruleanGymEndBattleText2
-	db "@"
-
-CeruleanGymAfterBattleText2: ; 5c80c (17:480c)
-	TX_FAR _CeruleanGymAfterBattleText2
-	db "@"
-
-CeruleanGymText4: ; 5c811 (17:4811)
-	db $08 ; asm
-	ld a, [$d75e]
-	bit 7, a
-	jr nz, .asm_f80ce ; 0x5c817
-	ld hl, UnnamedText_5c82a
-	call PrintText
-	jr .asm_18a31 ; 0x5c81f
-.asm_f80ce ; 0x5c821
-	ld hl, UnnamedText_5c82f
-	call PrintText
-.asm_18a31 ; 0x5c827
-	jp TextScriptEnd
-
-UnnamedText_5c82a: ; 5c82a (17:482a)
-	TX_FAR _UnnamedText_5c82a
-	db "@"
-
-UnnamedText_5c82f: ; 5c82f (17:482f)
-	TX_FAR _UnnamedText_5c82f
-	db "@"
-
 INCLUDE "data/mapObjects/ceruleangym.asm"
 
 CeruleanGymBlocks: ; 5c866 (17:4866)
@@ -70975,416 +49537,38 @@
 
 INCLUDE "data/mapHeaders/ceruleanmart.asm"
 
-CeruleanMartScript: ; 5c895 (17:4895)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ceruleanmart.asm"
 
-CeruleanMartTextPointers: ; 5c898 (17:4898)
-	dw CeruleanMartText1
-	dw CeruleanMartText2
-	dw CeruleanMartText3
-
-CeruleanMartText2: ; 5c89e (17:489e)
-	TX_FAR _CeruleanMartText2
-	db "@"
-
-CeruleanMartText3: ; 5c8a3 (17:48a3)
-	TX_FAR _CeruleanMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/ceruleanmart.asm"
 
 INCLUDE "data/mapHeaders/lavenderpokecenter.asm"
 
-LavenderPokecenterScript: ; 5c8da (17:48da)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lavenderpokecenter.asm"
 
-LavenderPokecenterTextPointers: ; 5c8e0 (17:48e0)
-	dw LavenderPokecenterText1
-	dw LavenderPokecenterText2
-	dw LavenderPokecenterText3
-	dw LavenderPokecenterText4
-
-LavenderPokecenterText4: ; 5c8e8 (17:48e8)
-	db $f6
-
-LavenderPokecenterText1: ; 5c8e9 (17:48e9)
-	db $ff
-
-LavenderPokecenterText2: ; 5c8ea (17:48ea)
-	TX_FAR _LavenderPokecenterText1
-	db "@"
-
-LavenderPokecenterText3: ; 5c8ef (17:48ef)
-	TX_FAR _LavenderPokecenterText3
-	db "@"
-
 INCLUDE "data/mapObjects/lavenderpokecenter.asm"
 
 INCLUDE "data/mapHeaders/lavendermart.asm"
 
-LavenderMartScript: ; 5c92c (17:492c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lavendermart.asm"
 
-LavenderMartTextPointers: ; 5c92f (17:492f)
-	dw LavenderMartText1
-	dw LavenderMartText2
-	dw LavenderMartText3
-
-LavenderMartText2: ; 5c935 (17:4935)
-	TX_FAR _LavenderMartText2
-	db "@"
-
-LavenderMartText3: ; 5c93a (17:493a)
-	db $08 ; asm
-	ld a, [$d7e0]
-	bit 7, a
-	jr nz, .asm_c88d4 ; 0x5c940
-	ld hl, UnnamedText_5c953
-	call PrintText
-	jr .asm_6d225 ; 0x5c948
-.asm_c88d4 ; 0x5c94a
-	ld hl, UnnamedText_5c958
-	call PrintText
-.asm_6d225 ; 0x5c950
-	jp TextScriptEnd
-
-UnnamedText_5c953: ; 5c953 (17:4953)
-	TX_FAR _UnnamedText_5c953
-	db "@"
-
-UnnamedText_5c958: ; 5c958 (17:4958)
-	TX_FAR _UnnamedText_5c958
-	db "@"
-
 INCLUDE "data/mapObjects/lavendermart.asm"
 
 INCLUDE "data/mapHeaders/vermilionpokecenter.asm"
 
-VermilionPokecenterScript: ; 5c98f (17:498f)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/vermilionpokecenter.asm"
 
-VermilionPokecenterTextPointers: ; 5c995 (17:4995)
-	dw VermilionPokecenterText1
-	dw VermilionPokecenterText2
-	dw VermilionPokecenterText3
-	dw VermilionPokecenterText4
-
-VermilionPokecenterText1: ; 5c99d (17:499d)
-	db $ff
-
-VermilionPokecenterText2: ; 5c99e (17:499e)
-	TX_FAR _VermilionPokecenterText1
-	db "@"
-
-VermilionPokecenterText3: ; 5c9a3 (17:49a3)
-	TX_FAR _VermilionPokecenterText3
-	db "@"
-
-VermilionPokecenterText4: ; 5c9a8 (17:49a8)
-	db $f6
-
 INCLUDE "data/mapObjects/vermilionpokecenter.asm"
 
 INCLUDE "data/mapHeaders/vermilionmart.asm"
 
-VermilionMartScript: ; 5c9e1 (17:49e1)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/vermilionmart.asm"
 
-VermilionMartTextPointers: ; 5c9e4 (17:49e4)
-	dw VermilionMartText1
-	dw VermilionMartText2
-	dw VermilionMartText3
-
-VermilionMartText2: ; 5c9ea (17:49ea)
-	TX_FAR _VermilionMartText2
-	db "@"
-
-VermilionMartText3: ; 5c9ef (17:49ef)
-	TX_FAR _VermilionMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/vermilionmart.asm"
 
 INCLUDE "data/mapHeaders/vermiliongym.asm"
 
-VermilionGymScript: ; 5ca26 (17:4a26)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	push hl
-	call nz, VermilionGymScript_5ca4c
-	pop hl
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, VermilionGymScript_5ca6d
-	call EnableAutoTextBoxDrawing
-	ld hl, VermilionGymTrainerHeader0
-	ld de, VermilionGymScriptPointers
-	ld a, [W_VERMILIONGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VERMILIONGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/vermiliongym.asm"
 
-VermilionGymScript_5ca4c: ; 5ca4c (17:4a4c)
-	ld hl, Gym3CityName ; $4a55
-	ld de, Gym3LeaderName ; $4a64
-	jp LoadGymLeaderAndCityName
-
-Gym3CityName: ; 5ca55 (17:4a55)
-	db "VERMILION CITY@"
-
-Gym3LeaderName: ; 5ca64 (17:4a64)
-	db "LT.SURGE@"
-
-VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
-	ld a, [$d773]
-	bit 0, a
-	jr nz, .asm_5ca78
-	ld a, $24
-	jr .asm_5ca7f
-.asm_5ca78
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	ld a, $5
-.asm_5ca7f
-	ld [$d09f], a
-	ld bc, $202
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_VERMILIONGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-VermilionGymScriptPointers: ; 5ca95 (17:4a95)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw VermilionGymScript3
-
-VermilionGymScript3: ; 5ca9d (17:4a9d)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, VermilionGymScript_5ca8a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_5caaa: ; 5caaa (17:4aaa)
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d773
-	set 7, [hl]
-	ld bc, (TM_24 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $7
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d773
-	set 6, [hl]
-	jr .asm_5cad3
-.BagFull
-	ld a, $8
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_5cad3
-	ld hl, W_OBTAINEDBADGES
-	set 2, [hl]
-	ld hl, $d72a
-	set 2, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d773]
-	or %00011100
-	ld [$d773], a
-
-	jp VermilionGymScript_5ca8a
-
-VermilionGymTextPointers: ; 5cae8 (17:4ae8)
-	dw VermilionGymText1
-	dw VermilionGymText2
-	dw VermilionGymText3
-	dw VermilionGymText4
-	dw VermilionGymText5
-	dw VermilionGymText6
-	dw VermilionGymText7
-	dw VermilionGymText8
-
-VermilionGymTrainerHeaders: ; 5caf8 (17:4af8)
-VermilionGymTrainerHeader0: ; 5caf8 (17:4af8)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d773 ; flag's byte
-	dw VermilionGymBattleText1 ; 0x4b9a TextBeforeBattle
-	dw VermilionGymAfterBattleText1 ; 0x4ba4 TextAfterBattle
-	dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
-	dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
-
-VermilionGymTrainerHeader1: ; 5cb04 (17:4b04)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d773 ; flag's byte
-	dw VermilionGymBattleText2 ; 0x4bb3 TextBeforeBattle
-	dw VermilionGymAfterBattleText2 ; 0x4bbd TextAfterBattle
-	dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
-	dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
-
-VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d773 ; flag's byte
-	dw VermilionGymBattleText3 ; 0x4bcc TextBeforeBattle
-	dw VermilionGymAfterBattleText3 ; 0x4bd6 TextAfterBattle
-	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
-	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
-
-	db $ff
-
-VermilionGymText1: ; 5cb1d (17:4b1d)
-	db $08 ; asm
-	ld a, [$d773]
-	bit 7, a
-	jr z, .asm_7cc29 ; 0x5cb23
-	bit 6, a
-	jr nz, .asm_41203 ; 0x5cb27
-	call z, Func_5caaa
-	call DisableWaitingAfterTextDisplay
-	jr .asm_23621 ; 0x5cb2f
-.asm_41203 ; 0x5cb31
-	ld hl, UnnamedText_5cb72
-	call PrintText
-	jr .asm_23621 ; 0x5cb37
-.asm_7cc29 ; 0x5cb39
-	ld hl, UnnamedText_5cb6d
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, ReceivedThunderbadgeText
-	ld de, ReceivedThunderbadgeText
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $3
-	ld [$d05c], a
-	xor a
-	ldh [$b4], a
-	ld a, $3
-	ld [W_VERMILIONGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_23621 ; 0x5cb6a
-	jp TextScriptEnd
-
-UnnamedText_5cb6d: ; 5cb6d (17:4b6d)
-	TX_FAR _UnnamedText_5cb6d
-	db "@"
-
-UnnamedText_5cb72: ; 5cb72 (17:4b72)
-	TX_FAR _UnnamedText_5cb72
-	db "@"
-
-VermilionGymText6: ; 5cb77 (17:4b77)
-	TX_FAR _UnnamedText_5cb77
-	db "@"
-
-VermilionGymText7: ; 5cb7c (17:4b7c)
-	TX_FAR _ReceivedTM24Text
-	db $11
-	TX_FAR _TM24ExplanationText
-	db "@"
-
-VermilionGymText8: ; 5cb86 (17:4b86)
-	TX_FAR _TM24NoRoomText
-	db "@"
-
-ReceivedThunderbadgeText: ; 5cb8b (17:4b8b)
-	TX_FAR _ReceivedThunderbadgeText
-	db "@"
-
-VermilionGymText2: ; 5cb90 (17:4b90)
-	db $08 ; asm
-	ld hl, VermilionGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VermilionGymBattleText1: ; 5cb9a (17:4b9a)
-	TX_FAR _VermilionGymBattleText1
-	db "@"
-
-VermilionGymEndBattleText1: ; 5cb9f (17:4b9f)
-	TX_FAR _VermilionGymEndBattleText1
-	db "@"
-
-VermilionGymAfterBattleText1: ; 5cba4 (17:4ba4)
-	TX_FAR _VermilionGymAfterBattleText1
-	db "@"
-
-VermilionGymText3: ; 5cba9 (17:4ba9)
-	db $08 ; asm
-	ld hl, VermilionGymTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VermilionGymBattleText2: ; 5cbb3 (17:4bb3)
-	TX_FAR _VermilionGymBattleText2
-	db "@"
-
-VermilionGymEndBattleText2: ; 5cbb8 (17:4bb8)
-	TX_FAR _VermilionGymEndBattleText2
-	db "@"
-
-VermilionGymAfterBattleText2: ; 5cbbd (17:4bbd)
-	TX_FAR _VermilionGymAfterBattleText2
-	db "@"
-
-VermilionGymText4: ; 5cbc2 (17:4bc2)
-	db $08 ; asm
-	ld hl, VermilionGymTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VermilionGymBattleText3: ; 5cbcc (17:4bcc)
-	TX_FAR _VermilionGymBattleText3
-	db "@"
-
-VermilionGymEndBattleText3: ; 5cbd1 (17:4bd1)
-	TX_FAR _VermilionGymEndBattleText3
-	db "@"
-
-VermilionGymAfterBattleText3: ; 5cbd6 (17:4bd6)
-	TX_FAR _VermilionGymAfterBattleText3
-	db "@"
-
-VermilionGymText5: ; 5cbdb (17:4bdb)
-	db $08 ; asm
-	ld a, [$d72a]
-	bit 2, a
-	jr nz, .asm_13b67 ; 0x5cbe1
-	ld hl, UnnamedText_5cbf4
-	call PrintText
-	jr .asm_c2b38 ; 0x5cbe9
-.asm_13b67 ; 0x5cbeb
-	ld hl, UnnamedText_5cbf9
-	call PrintText
-.asm_c2b38 ; 0x5cbf1
-	jp TextScriptEnd
-
-UnnamedText_5cbf4: ; 5cbf4 (17:4bf4)
-	TX_FAR _UnnamedText_5cbf4
-	db "@"
-
-UnnamedText_5cbf9: ; 5cbf9 (17:4bf9)
-	TX_FAR _UnnamedText_5cbf9
-	db "@"
-
 INCLUDE "data/mapObjects/vermiliongym.asm"
 
 VermilionGymBlocks: ; 5cc38 (17:4c38)
@@ -71392,453 +49576,14 @@
 
 INCLUDE "data/mapHeaders/copycatshouse2f.asm"
 
-CopycatsHouse2FScript: ; 5cc71 (17:4c71)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/copycatshouse2f.asm"
 
-CopycatsHouse2FTextPointers: ; 5cc74 (17:4c74)
-	dw CopycatsHouse2FText1
-	dw CopycatsHouse2FText2
-	dw CopycatsHouse2FText3
-	dw CopycatsHouse2FText4
-	dw CopycatsHouse2FText5
-	dw CopycatsHouse2FText6
-	dw CopycatsHouse2FText7
-
-CopycatsHouse2FText1: ; 5cc82 (17:4c82)
-	db $08 ; asm
-	ld a, [$d7af]
-	bit 0, a
-	jr nz, .asm_7ccf3 ; 0x5cc88
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, UnnamedText_5ccd4
-	call PrintText
-	ld b, POKE_DOLL
-	call IsItemInBag
-	jr z, .asm_62ecd ; 0x5cc9a
-	ld hl, TM31PreReceiveText
-	call PrintText
-	ld bc, (TM_31 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM31Text
-	call PrintText
-	ld a, POKE_DOLL
-	ldh [$db], a
-	ld b, BANK(RemoveItemByID)
-	ld hl, RemoveItemByID
-	call Bankswitch
-	ld hl, $d7af
-	set 0, [hl]
-	jr .asm_62ecd ; 0x5ccc1
-.BagFull
-	ld hl, TM31NoRoomText
-	call PrintText
-	jr .asm_62ecd ; 0x5ccc9
-.asm_7ccf3 ; 0x5cccb
-	ld hl, TM31ExplanationText2
-	call PrintText
-.asm_62ecd ; 0x5ccd1
-	jp TextScriptEnd
-
-UnnamedText_5ccd4: ; 5ccd4 (17:4cd4)
-	TX_FAR _UnnamedText_5ccd4
-	db "@"
-
-TM31PreReceiveText: ; 5ccd9 (17:4cd9)
-	TX_FAR _TM31PreReceiveText
-	db "@"
-
-ReceivedTM31Text: ; 5ccde (17:4cde)
-	TX_FAR _ReceivedTM31Text
-	db $0B
-TM31ExplanationText1: ; 5cce3 (17:4ce3)
-	TX_FAR _TM31ExplanationText1
-	db $d, "@"
-
-TM31ExplanationText2: ; 5cce9 (17:4ce9)
-	TX_FAR _TM31ExplanationText2
-	db "@"
-
-TM31NoRoomText: ; 5ccee (17:4cee)
-	TX_FAR _TM31NoRoomText
-	db $d, "@"
-
-CopycatsHouse2FText2: ; 5ccf4 (17:4cf4)
-	TX_FAR _CopycatsHouse2FText2
-	db "@"
-
-CopycatsHouse2FText5: ; 5ccf9 (17:4cf9)
-CopycatsHouse2FText4: ; 5ccf9 (17:4cf9)
-CopycatsHouse2FText3: ; 5ccf9 (17:4cf9)
-	TX_FAR _CopycatsHouse2FText3
-	db "@"
-
-CopycatsHouse2FText6: ; 5ccfe (17:4cfe)
-	TX_FAR _CopycatsHouse2FText6
-	db "@"
-
-CopycatsHouse2FText7: ; 5cd03 (17:4d03)
-	db $08 ; asm
-	ld a, [$c109]
-	cp $4
-	ld hl, UnnamedText_5cd1c
-	jr nz, .asm_399a4 ; 0x5cd0c
-	ld hl, UnnamedText_5cd17
-.asm_399a4 ; 0x5cd11
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_5cd17: ; 5cd17 (17:4d17)
-	TX_FAR _UnnamedText_5cd17
-	db "@"
-
-UnnamedText_5cd1c: ; 5cd1c (17:4d1c)
-	TX_FAR _UnnamedText_5cd1c
-	db "@"
-
 INCLUDE "data/mapObjects/copycatshouse2f.asm"
 
 INCLUDE "data/mapHeaders/fightingdojo.asm"
 
-FightingDojoScript: ; 5cd5d (17:4d5d)
-	call EnableAutoTextBoxDrawing
-	ld hl, FightingDojoTrainerHeaders
-	ld de, FightingDojoScriptPointers
-	ld a, [W_FIGHTINGDOJOCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_FIGHTINGDOJOCURSCRIPT], a
-	ret
+INCLUDE "scripts/fightingdojo.asm"
 
-FightingDojoScript_5cd70: ; 5cd70 (17:4d70)
-	xor a
-	ld [$cd6b], a
-	ld [$d642], a
-	ld [$da39], a
-	ret
-
-FightingDojoScriptPointers: ; 5cd7b (17:4d7b)
-	dw FightingDojoScript1
-	dw Func_324c
-	dw EndTrainerBattle
-	dw FightingDojoScript3
-
-FightingDojoScript1: ; 5cd83 (17:4d83)
-	ld a, [$d7b1]
-	bit 0, a
-	ret nz
-	call CheckFightingMapTrainers
-	ld a, [wTrainerHeaderFlagBit]
-	and a
-	ret nz
-	ld a, [$d7b1]
-	bit 1, a
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [$cf0d], a
-	ld a, [W_YCOORD]
-	cp $3
-	ret nz
-	ld a, [W_XCOORD]
-	cp $4
-	ret nz
-	ld a, $1
-	ld [$cf0d], a
-	ld a, $1
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $8
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ret
-
-FightingDojoScript3: ; 5cdc6 (17:4dc6)
-	ld a, [$d057]
-	cp $ff
-	jp z, FightingDojoScript_5cd70
-	ld a, [$cf0d]
-	and a
-	jr z, .asm_5cde4
-	ld a, $1
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $8
-	ld [$ff8d], a
-	call Func_34a6
-
-.asm_5cde4
-	ld a, $f0
-	ld [$cd6b], a
-	ld a, [$d7b1]
-	or $3e
-	ld [$d7b1], a
-	ld a, $8
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [$cd6b], a
-	ld [$d642], a
-	ld [$da39], a
-	ret
-
-FightingDojoTextPointers: ; 5ce03 (17:4e03)
-	dw FightingDojoText1
-	dw FightingDojoText2
-	dw FightingDojoText3
-	dw FightingDojoText4
-	dw FightingDojoText5
-	dw FightingDojoText6
-	dw FightingDojoText7
-	dw FightingDojoText8
-
-FightingDojoTrainerHeaders: ; 5ce13 (17:4e13)
-FightingDojoTrainerHeader0: ; 5ce13 (17:4e13)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7b1 ; flag's byte
-	dw FightingDojoBattleText1 ; 0x4eac TextBeforeBattle
-	dw FightingDojoAfterBattleText1 ; 0x4eb6 TextAfterBattle
-	dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
-	dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
-
-FightingDojoTrainerHeader1: ; 5ce1f (17:4e1f)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7b1 ; flag's byte
-	dw FightingDojoBattleText2 ; 0x4ec5 TextBeforeBattle
-	dw FightingDojoAfterBattleText2 ; 0x4ecf TextAfterBattle
-	dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
-	dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
-
-FightingDojoTrainerHeader2: ; 5ce2b (17:4e2b)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b1 ; flag's byte
-	dw FightingDojoBattleText3 ; 0x4ede TextBeforeBattle
-	dw FightingDojoAfterBattleText3 ; 0x4ee8 TextAfterBattle
-	dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
-	dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
-
-FightingDojoTrainerHeader3: ; 5ce37 (17:4e37)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b1 ; flag's byte
-	dw FightingDojoBattleText4 ; 0x4ef7 TextBeforeBattle
-	dw FightingDojoAfterBattleText4 ; 0x4f01 TextAfterBattle
-	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
-	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
-
-	db $ff
-
-FightingDojoText1: ; 5ce44 (17:4e44)
-	db $08 ; asm
-	ld a, [$d7b1]
-	bit 0, a
-	jp nz, .continue1
-	bit 1, a
-	jp nz, .continue2
-	ld hl, UnnamedText_5ce8e
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_5ce93
-	ld de, UnnamedText_5ce93
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $3
-	ld [W_FIGHTINGDOJOCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jr .asm_9dba4 ; 0x5ce7b
-.continue1 ; 0x5ce7d
-	ld hl, UnnamedText_5ce9d
-	call PrintText
-	jr .asm_9dba4 ; 0x5ce83
-.continue2 ; 0x5ce85f
-	ld hl, FightingDojoText8
-	call PrintText
-.asm_9dba4 ; 0x5ce8b
-	jp TextScriptEnd
-
-UnnamedText_5ce8e: ; 5ce8e (17:4e8e)
-	TX_FAR _UnnamedText_5ce8e
-	db "@"
-
-UnnamedText_5ce93: ; 5ce93 (17:4e93)
-	TX_FAR _UnnamedText_5ce93
-	db "@"
-
-FightingDojoText8: ; 5ce98 (17:4e98)
-	TX_FAR _UnnamedText_5ce98
-	db "@"
-
-UnnamedText_5ce9d: ; 5ce9d (17:4e9d)
-	TX_FAR _UnnamedText_5ce9d
-	db "@"
-
-FightingDojoText2: ; 5cea2 (17:4ea2)
-	db $08 ; asm
-	ld hl, FightingDojoTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FightingDojoBattleText1: ; 5ceac (17:4eac)
-	TX_FAR _FightingDojoBattleText1
-	db "@"
-
-FightingDojoEndBattleText1: ; 5ceb1 (17:4eb1)
-	TX_FAR _FightingDojoEndBattleText1
-	db "@"
-
-FightingDojoAfterBattleText1: ; 5ceb6 (17:4eb6)
-	TX_FAR _FightingDojoAfterBattleText1
-	db "@"
-
-FightingDojoText3: ; 5cebb (17:4ebb)
-	db $08 ; asm
-	ld hl, FightingDojoTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FightingDojoBattleText2: ; 5cec5 (17:4ec5)
-	TX_FAR _FightingDojoBattleText2
-	db "@"
-
-FightingDojoEndBattleText2: ; 5ceca (17:4eca)
-	TX_FAR _FightingDojoEndBattleText2
-	db "@"
-
-FightingDojoAfterBattleText2: ; 5cecf (17:4ecf)
-	TX_FAR _FightingDojoAfterBattleText2
-	db "@"
-
-FightingDojoText4: ; 5ced4 (17:4ed4)
-	db $08 ; asm
-	ld hl, FightingDojoTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FightingDojoBattleText3: ; 5cede (17:4ede)
-	TX_FAR _FightingDojoBattleText3
-	db "@"
-
-FightingDojoEndBattleText3: ; 5cee3 (17:4ee3)
-	TX_FAR _FightingDojoEndBattleText3
-	db "@"
-
-FightingDojoAfterBattleText3: ; 5cee8 (17:4ee8)
-	TX_FAR _FightingDojoAfterBattleText3
-	db "@"
-
-FightingDojoText5: ; 5ceed (17:4eed)
-	db $08 ; asm
-	ld hl, FightingDojoTrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FightingDojoBattleText4: ; 5cef7 (17:4ef7)
-	TX_FAR _FightingDojoBattleText4
-	db "@"
-
-FightingDojoEndBattleText4: ; 5cefc (17:4efc)
-	TX_FAR _FightingDojoEndBattleText4
-	db "@"
-
-FightingDojoAfterBattleText4: ; 5cf01 (17:4f01)
-	TX_FAR _FightingDojoAfterBattleText4
-	db "@"
-
-FightingDojoText6: ; 5cf06 (17:4f06)
-; Hitmonlee Poké Ball
-	db $08 ; asm
-	ld a, [$d7b1]
-	and %11000000
-	jr z, .GetMon
-	ld hl, OtherHitmonText
-	call PrintText
-	jr .done
-.GetMon
-	ld a, HITMONLEE
-	call DisplayPokedex
-	ld hl, WantHitmonleeText
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .done
-	ld a, [$cf91]
-	ld b, a
-	ld c, 30
-	call GivePokemon
-	jr nc, .done
-
-	; once Poké Ball is taken, hide sprite
-	ld a, $4a
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld hl, $d7b1
-	set 6, [hl]
-	set 0, [hl]
-.done
-	jp TextScriptEnd
-
-WantHitmonleeText: ; 5cf49 (17:4f49)
-	TX_FAR _WantHitmonleeText
-	db "@"
-
-FightingDojoText7: ; 5cf4e (17:4f4e)
-; Hitmonchan Poké Ball
-	db $08 ; asm
-	ld a, [$d7b1]
-	and %11000000
-	jr z, .GetMon
-	ld hl, OtherHitmonText
-	call PrintText
-	jr .done
-.GetMon
-	ld a, HITMONCHAN
-	call DisplayPokedex
-	ld hl, WantHitmonchanText
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .done
-	ld a, [$cf91]
-	ld b, a
-	ld c,30
-	call GivePokemon
-	jr nc, .done
-	ld hl, $d7b1
-	set 7, [hl]
-	set 0, [hl]
-
-	; once Poké Ball is taken, hide sprite
-	ld a, $4b
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-.done
-	jp TextScriptEnd
-
-WantHitmonchanText: ; 5cf91 (17:4f91)
-	TX_FAR _WantHitmonchanText
-	db "@"
-
-OtherHitmonText: ; 5cf96 (17:4f96)
-	TX_FAR _OtherHitmonText
-	db "@"
-
 INCLUDE "data/mapObjects/fightingdojo.asm"
 
 FightingDojoBlocks: ; 5cfe3 (17:4fe3)
@@ -71846,374 +49591,8 @@
 
 INCLUDE "data/mapHeaders/saffrongym.asm"
 
-SaffronGymScript: ; 5d00d (17:500d)
-	ld hl, $d126
-	bit 6, [hl]
-	res 6, [hl]
-	call nz, .extra
-	call EnableAutoTextBoxDrawing
-	ld hl, SaffronGymTrainerHeader0
-	ld de, SaffronGymScriptPointers
-	ld a, [W_SAFFRONGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SAFFRONGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/saffrongym.asm"
 
-.extra
-	ld hl, Gym6CityName ; $5033
-	ld de, Gym6LeaderName ; $5040
-	jp LoadGymLeaderAndCityName
-
-Gym6CityName: ; 5d033 (17:5033)
-	db "SAFFRON CITY@"
-
-Gym6LeaderName: ; 5d040 (17:5040)
-	db "SABRINA@"
-
-Func_5d048: ; 5d048 (17:5048)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_SAFFRONGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-SaffronGymScriptPointers: ; 5d053 (17:5053)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw SaffronGymScript3
-
-SaffronGymScript3: ; 5d05b (17:505b)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_5d048
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-
-Func_5d068: ; 5d068 (17:5068)
-	ld a, $a
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d7b3
-	set 1, [hl]
-	ld bc, (TM_46 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $b
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d7b3
-	set 0, [hl]
-	jr .asm_5d091
-.BagFull
-	ld a, $c
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_5d091
-	ld hl, W_OBTAINEDBADGES
-	set 5, [hl]
-	ld hl, $d72a
-	set 5, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d7b3]
-	or %11111100
-	ld [$d7b3], a
-	ld hl, $d7b4
-	set 0, [hl]
-
-	jp Func_5d048
-
-SaffronGymTextPointers: ; 5d0ab (17:50ab)
-	dw SaffronGymText1
-	dw SaffronGymText2
-	dw SaffronGymText3
-	dw SaffronGymText4
-	dw SaffronGymText5
-	dw SaffronGymText6
-	dw SaffronGymText7
-	dw SaffronGymText8
-	dw SaffronGymText9
-	dw SaffronGymText10
-	dw SaffronGymText11
-	dw SaffronGymText12
-
-SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3)
-SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle
-	dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle
-	dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
-	dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
-
-SaffronGymTrainerHeader1: ; 5d0cf (17:50cf)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle
-	dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle
-	dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
-	dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
-
-SaffronGymTrainerHeader2: ; 5d0db (17:50db)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle
-	dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle
-	dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
-	dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
-
-SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle
-	dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle
-	dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
-	dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
-
-SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle
-	dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle
-	dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
-	dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
-
-SaffronGymTrainerHeader5: ; 5d0ff (17:50ff)
-	db $7 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle
-	dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle
-	dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
-	dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
-
-SaffronGymTrainerHeader6: ; 5d10b (17:510b)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7b3 ; flag's byte
-	dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle
-	dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle
-	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
-	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
-
-	db $ff
-
-SaffronGymText1: ; 5d118 (17:5118)
-	db $08 ; asm
-	ld a, [$d7b3]
-	bit 1, a
-	jr z, .asm_e3544 ; 0x5d11e
-	bit 0, a
-	jr nz, .asm_8d2f6 ; 0x5d122
-	call z, Func_5d068
-	call DisableWaitingAfterTextDisplay
-	jr .asm_34c2c ; 0x5d12a
-.asm_8d2f6 ; 0x5d12c
-	ld hl, UnnamedText_5d16e
-	call PrintText
-	jr .asm_34c2c ; 0x5d132
-.asm_e3544 ; 0x5d134
-	ld hl, UnnamedText_5d162
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_5d167
-	ld de, UnnamedText_5d167
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $6
-	ld [$d05c], a
-	ld a, $3
-	ld [W_SAFFRONGYMCURSCRIPT], a
-.asm_34c2c ; 0x5d15f
-	jp TextScriptEnd
-
-UnnamedText_5d162: ; 5d162 (17:5162)
-	TX_FAR _UnnamedText_5d162
-	db "@"
-
-UnnamedText_5d167: ; 5d167 (17:5167)
-	TX_FAR _UnnamedText_5d167 ; 0xa1c73
-	db $11 ; play same sound as red giving oak parcel
-	db $6 ; wait for keypress
-	db "@"
-
-UnnamedText_5d16e: ; 5d16e (17:516e)
-	TX_FAR _UnnamedText_5d16e
-	db "@"
-
-SaffronGymText10: ; 5d173 (17:5173)
-	TX_FAR _UnnamedText_5d173
-	db "@"
-
-SaffronGymText11: ; 5d178 (17:5178)
-	TX_FAR ReceivedTM46Text
-	db $b
-	TX_FAR _TM46ExplanationText
-	db "@"
-
-SaffronGymText12: ; 5d182 (17:5182)
-	TX_FAR _TM46NoRoomText
-	db "@"
-
-SaffronGymText2: ; 5d187 (17:5187)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText3: ; 5d191 (17:5191)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText4: ; 5d19b (17:519b)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText5: ; 5d1a5 (17:51a5)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText6: ; 5d1af (17:51af)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText7: ; 5d1b9 (17:51b9)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText8: ; 5d1c3 (17:51c3)
-	db $08 ; asm
-	ld hl, SaffronGymTrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SaffronGymText9: ; 5d1cd (17:51cd)
-	db $08 ; asm
-	ld a, [$d7b3]
-	bit 1, a
-	jr nz, .asm_13f3c ; 0x5d1d3
-	ld hl, UnnamedText_5d1e6
-	call PrintText
-	jr .asm_e9907 ; 0x5d1db
-.asm_13f3c ; 0x5d1dd
-	ld hl, UnnamedText_5d1eb
-	call PrintText
-.asm_e9907 ; 0x5d1e3
-	jp TextScriptEnd
-
-UnnamedText_5d1e6: ; 5d1e6 (17:51e6)
-	TX_FAR _UnnamedText_5d1e6
-	db "@"
-
-UnnamedText_5d1eb: ; 5d1eb (17:51eb)
-	TX_FAR _UnnamedText_5d1eb
-	db "@"
-
-SaffronGymBattleText1: ; 5d1f0 (17:51f0)
-	TX_FAR _SaffronGymBattleText1
-	db "@"
-
-SaffronGymEndBattleText1: ; 5d1f5 (17:51f5)
-	TX_FAR _SaffronGymEndBattleText1
-	db "@"
-
-SaffronGymAfterBattleText1: ; 5d1fa (17:51fa)
-	TX_FAR _SaffronGymAfterBattleText1
-	db "@"
-
-SaffronGymBattleText2: ; 5d1ff (17:51ff)
-	TX_FAR _SaffronGymBattleText2
-	db "@"
-
-SaffronGymEndBattleText2: ; 5d204 (17:5204)
-	TX_FAR _SaffronGymEndBattleText2
-	db "@"
-
-SaffronGymAfterBattleText2: ; 5d209 (17:5209)
-	TX_FAR _SaffronGymAfterBattleText2
-	db "@"
-
-SaffronGymBattleText3: ; 5d20e (17:520e)
-	TX_FAR _SaffronGymBattleText3
-	db "@"
-
-SaffronGymEndBattleText3: ; 5d213 (17:5213)
-	TX_FAR _SaffronGymEndBattleText3
-	db "@"
-
-SaffronGymAfterBattleText3: ; 5d218 (17:5218)
-	TX_FAR _SaffronGymAfterBattleText3
-	db "@"
-
-SaffronGymBattleText4: ; 5d21d (17:521d)
-	TX_FAR _SaffronGymBattleText4
-	db "@"
-
-SaffronGymEndBattleText4: ; 5d222 (17:5222)
-	TX_FAR _SaffronGymEndBattleText4
-	db "@"
-
-SaffronGymAfterBattleText4: ; 5d227 (17:5227)
-	TX_FAR _SaffronGymAfterBattleText4
-	db "@"
-
-SaffronGymBattleText5: ; 5d22c (17:522c)
-	TX_FAR _SaffronGymBattleText5
-	db "@"
-
-SaffronGymEndBattleText5: ; 5d231 (17:5231)
-	TX_FAR _SaffronGymEndBattleText5
-	db "@"
-
-SaffronGymAfterBattleText5: ; 5d236 (17:5236)
-	TX_FAR _SaffronGymAfterBattleText5
-	db "@"
-
-SaffronGymBattleText6: ; 5d23b (17:523b)
-	TX_FAR _SaffronGymBattleText6
-	db "@"
-
-SaffronGymEndBattleText6: ; 5d240 (17:5240)
-	TX_FAR _SaffronGymEndBattleText6
-	db "@"
-
-SaffronGymAfterBattleText6: ; 5d245 (17:5245)
-	TX_FAR _SaffronGymAfterBattleText6
-	db "@"
-
-SaffronGymBattleText7: ; 5d24a (17:524a)
-	TX_FAR _SaffronGymBattleText7
-	db "@"
-
-SaffronGymEndBattleText7: ; 5d24f (17:524f)
-	TX_FAR _SaffronGymEndBattleText7
-	db "@"
-
-SaffronGymAfterBattleText7: ; 5d254 (17:5254)
-	TX_FAR _SaffronGymAfterBattleText7
-	db "@"
-
 INCLUDE "data/mapObjects/saffrongym.asm"
 
 SaffronGymBlocks: ; 5d3a3 (17:53a3)
@@ -72221,47 +49600,14 @@
 
 INCLUDE "data/mapHeaders/saffronmart.asm"
 
-SaffronMartScript: ; 5d409 (17:5409)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/saffronmart.asm"
 
-SaffronMartTextPointers: ; 5d40c (17:540c)
-	dw SaffronMartText1
-	dw SaffronMartText2
-	dw SaffronMartText3
-
-SaffronMartText2: ; 5d412 (17:5412)
-	TX_FAR _SaffronMartText2
-	db "@"
-
-SaffronMartText3: ; 5d417 (17:5417)
-	TX_FAR _SaffronMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/saffronmart.asm"
 
 INCLUDE "data/mapHeaders/silphco1.asm"
 
-SilphCo1Script: ; 5d44e (17:544e)
-	call EnableAutoTextBoxDrawing
-	ld a, [$d838]
-	bit 7, a
-	ret z
-	ld hl, $d7b9
-	bit 7, [hl]
-	set 7, [hl]
-	ret nz
-	ld a, $4c
-	ld [$cc4d], a
-	ld a, $15
-	jp Predef
+INCLUDE "scripts/silphco1.asm"
 
-SilphCo1TextPointers: ; 5d469 (17:5469)
-	dw SilphCo1Text1
-
-SilphCo1Text1: ; 5d46b (17:546b)
-	TX_FAR _SilphCo1Text1
-	db "@"
-
 INCLUDE "data/mapObjects/silphco1.asm"
 
 SilphCo1Blocks: ; 5d4a2 (17:54a2)
@@ -72269,453 +49615,56 @@
 
 INCLUDE "data/mapHeaders/saffronpokecenter.asm"
 
-SaffronPokecenterScript: ; 5d535 (17:5535)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/saffronpokecenter.asm"
 
-SaffronPokecenterTextPointers: ; 5d53b (17:553b)
-	dw SaffronPokecenterText1
-	dw SaffronPokecenterText2
-	dw SaffronPokecenterText3
-	dw SaffronPokecenterText4
-
-SaffronPokecenterText1: ; 5d543 (17:5543)
-	db $ff
-
-SaffronPokecenterText2: ; 5d544 (17:5544)
-	TX_FAR _SaffronPokecenterText1
-	db "@"
-
-SaffronPokecenterText3: ; 5d549 (17:5549)
-	TX_FAR _SaffronPokecenterText3
-	db "@"
-
-SaffronPokecenterText4: ; 5d54e (17:554e)
-	db $f6
-
 INCLUDE "data/mapObjects/saffronpokecenter.asm"
 
 INCLUDE "data/mapHeaders/viridianforestexit.asm"
 
-ViridianForestExitScript: ; 5d587 (17:5587)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/viridianforestexit.asm"
 
-ViridianForestExitTextPointers: ; 5d58a (17:558a)
-	dw ViridianForestExitText1
-	dw ViridianForestExitText2
-
-ViridianForestExitText1: ; 5d58e (17:558e)
-	TX_FAR _ViridianForestExitText1
-	db "@"
-
-ViridianForestExitText2: ; 5d593 (17:5593)
-	TX_FAR _ViridianForestExitText2
-	db "@"
-
 INCLUDE "data/mapObjects/viridianforestexit.asm"
 
 INCLUDE "data/mapHeaders/route2gate.asm"
 
-Route2GateScript: ; 5d5d4 (17:55d4)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/route2gate.asm"
 
-Route2GateTextPointers: ; 5d5d7 (17:55d7)
-	dw Route2GateText1
-	dw Route2GateText2
-
-Route2GateText1: ; 5d5db (17:55db)
-	db $08 ; asm
-	ld a, [$d7c2]
-	bit 0, a
-	jr nz, .asm_6592c ; 0x5d5e1
-	ld a, $a
-	ldh [$db], a
-	ld a, $c8
-	ldh [$dc], a
-	ld [$d11e], a
-	call GetItemName ; $2fcf
-	ld hl, $cd6d
-	ld de, $cc5b
-	ld bc, $000d
-	call CopyData
-	ld a, $62
-	call Predef
-	ldh a, [$db]
-	cp $1
-	jr nz, .asm_ad646 ; 0x5d606
-	ld hl, $d7c2
-	set 0, [hl]
-.asm_6592c ; 0x5d60d
-	ld hl, UnnamedText_5d616
-	call PrintText
-.asm_ad646 ; 0x5d613
-	jp TextScriptEnd
-
-UnnamedText_5d616: ; 5d616 (17:5616)
-	TX_FAR _UnnamedText_5d616
-	db "@"
-
-Route2GateText2: ; 5d61b (17:561b)
-	TX_FAR _Route2GateText2
-	db "@"
-
 INCLUDE "data/mapObjects/route2gate.asm"
 
 INCLUDE "data/mapHeaders/viridianforestentrance.asm"
 
-ViridianForestEntranceScript: ; 5d65c (17:565c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/viridianforestentrance.asm"
 
-ViridianForestEntranceTextPointers: ; 5d65f (17:565f)
-	dw ViridianForestEntranceText1
-	dw ViridianForestEntranceText2
-
-ViridianForestEntranceText1: ; 5d663 (17:5663)
-	TX_FAR _ViridianForestEntranceText1
-	db "@"
-
-ViridianForestEntranceText2: ; 5d668 (17:5668)
-	TX_FAR _ViridianForestEntranceText2
-	db "@"
-
 INCLUDE "data/mapObjects/viridianforestentrance.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathentranceroute5.asm"
 
-UndergroundPathEntranceRoute5Script: ; 5d6a9 (17:56a9)
-	ld a, $10
-	ld [$d365], a
-	ret
+INCLUDE "scripts/undergroundpathentranceroute5.asm"
 
-UndergroundPathEntranceRoute5_5d6af: ; 5d6af (17:56af)
-	db $50
-
-UndergroundPathEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
-	dw UndergroundPathEntranceRoute5Text1
-
-UndergroundPathEntranceRoute5Text1: ; 5d6b2 (17:56b2)
-	db $08 ; asm
-	ld a, $9
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	ld hl, UndergroundPathEntranceRoute5_5d6af
-	ret
-
 INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathentranceroute6.asm"
 
-UndergroundPathEntranceRoute6Script: ; 5d6ef (17:56ef)
-	ld a, $11
-	ld [$d365], a
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/undergroundpathentranceroute6.asm"
 
-UndergroundPathEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
-	dw UndergroundPathEntranceRoute6Text1
-
-UndergroundPathEntranceRoute6Text1: ; 5d6f9 (17:56f9)
-	TX_FAR _UndergrdTunnelEntRoute6Text1
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathentranceroute7.asm"
 
-UndergroundPathEntranceRoute7Script: ; 5d72c (17:572c)
-	ld a, $12
-	ld [$d365], a
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/undergroundpathentranceroute7.asm"
 
-UndergroundPathEntranceRoute7TextPointers: ; 5d734 (17:5734)
-	dw UndergroundPathEntranceRoute7Text1
-
-UndergroundPathEntranceRoute7Text1: ; 5d736 (17:5736)
-	TX_FAR _UndergroundPathEntRoute7Text1
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathentranceroute7.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathentranceroute7copy.asm"
 
-UndergroundPathEntranceRoute7CopyScript: ; 5d769 (17:5769)
-	ld a, $12
-	ld [$d365], a
-	ret
+INCLUDE "scripts/undergroundpathentranceroute7copy.asm"
 
-UndergroundPathEntranceRoute7CopyTextPointers: ; 5d76f (17:576f)
-	dw UnnamedText_5d773
-	dw UnnamedText_5d77d
-
-UnnamedText_5d773: ; 5d773 (17:5773)
-	TX_FAR _UnnamedText_5d773
-	db "@"
-
-UnnamedText_5d778: ; 5d778 (17:5778)
-	TX_FAR _UnnamedText_5d778
-	db "@"
-
-UnnamedText_5d77d: ; 5d77d (17:577d)
-	TX_FAR _UnnamedText_5d77d
-	db "@"
-
-UnnamedText_5d782: ; 5d782 (17:5782)
-	TX_FAR _UnnamedText_5d782
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathentranceroute7copy.asm"
 
 INCLUDE "data/mapHeaders/silphco9.asm"
 
-SilphCo9Script: ; 5d7bb (17:57bb)
-	call SilphCo9Script_5d7d1
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo9TrainerHeaders
-	ld de, SilphCo9ScriptPointers
-	ld a, [W_SILPHCO9CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO9CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco9.asm"
 
-SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_5d82e ; $582e
-	call Func_5d837
-	call Func_5d863
-	ld a, [$d834]
-	bit 0, a
-	jr nz, .asm_5d7f8
-	push af
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $401
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_5d7f8
-	bit 1, a
-	jr nz, .asm_5d80b
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $209
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_5d80b
-	bit 2, a
-	jr nz, .asm_5d81e
-	push af
-	ld a, $54
-	ld [$d09f], a
-	ld bc, $509
-	ld a, $17
-	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-	pop af
-.asm_5d81e
-	bit 3, a
-	ret nz
-	ld a, $5f
-	ld [$d09f], a
-	ld bc, $605
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_5d82e: ; 5d82e (17:582e)
-	db $04,$01,$02,$09,$05,$09,$06,$05,$FF
-
-Func_5d837: ; 5d837 (17:5837)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_5d843
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_5d85f
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_5d854
-	inc hl
-	jr .asm_5d843
-.asm_5d854
-	ld a, [hli]
-	cp c
-	jr nz, .asm_5d843
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_5d85f
-	xor a
-	ld [$ffe0], a
-	ret
-
-Func_5d863: ; 5d863 (17:5863)
-	ld hl, $d834
-	ld a, [$ffe0]
-	and a
-	ret z
-	cp $1
-	jr nz, .asm_5d871
-	set 0, [hl]
-	ret
-.asm_5d871
-	cp $2
-	jr nz, .asm_5d878
-	set 1, [hl]
-	ret
-.asm_5d878
-	cp $3
-	jr nz, .asm_5d87f
-	set 2, [hl]
-	ret
-.asm_5d87f
-	cp $4
-	ret nz
-	set 3, [hl]
-	ret
-
-SilphCo9ScriptPointers: ; 5d885 (17:5885)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SilphCo9TextPointers: ; 5d88b (17:588b)
-	dw SilphCo9Text1
-	dw SilphCo9Text2
-	dw SilphCo9Text3
-	dw SilphCo9Text4
-
-SilphCo9TrainerHeaders: ; 5d893 (17:5893)
-SilphCo9TrainerHeader0: ; 5d893 (17:5893)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d833 ; flag's byte
-	dw SilphCo9BattleText1 ; 0x5912 TextBeforeBattle
-	dw SilphCo9AfterBattleText1 ; 0x591c TextAfterBattle
-	dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
-	dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
-
-SilphCo9TrainerHeader1: ; 5d89f (17:589f)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d833 ; flag's byte
-	dw SilphCo9BattleText2 ; 0x5921 TextBeforeBattle
-	dw SilphCo9AfterBattleText2 ; 0x592b TextAfterBattle
-	dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
-	dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
-
-SilphCo9TrainerHeader2: ; 5d8ab (17:58ab)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d833 ; flag's byte
-	dw SilphCo9BattleText3 ; 0x5930 TextBeforeBattle
-	dw SilphCo9AfterBattleText3 ; 0x593a TextAfterBattle
-	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
-	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
-
-	db $ff
-
-SilphCo9Text1: ; 5d8b8 (17:58b8)
-	db $08 ; asm
-	ld a, [$d838]
-	bit 7, a
-	jr nz, .asm_a14c3 ; 0x5d8be
-	ld hl, UnnamedText_5d8e5
-	call PrintText
-	ld a, $7
-	call Predef
-	call GBFadeOut2
-	call Delay3
-	call GBFadeIn2
-	ld hl, UnnamedText_5d8ea
-	call PrintText
-	jr .asm_b6e28 ; 0x5d8da
-.asm_a14c3 ; 0x5d8dc
-	ld hl, UnnamedText_5d8ef
-	call PrintText
-.asm_b6e28 ; 0x5d8e2
-	jp TextScriptEnd
-
-UnnamedText_5d8e5: ; 5d8e5 (17:58e5)
-	TX_FAR _UnnamedText_5d8e5
-	db "@"
-
-UnnamedText_5d8ea: ; 5d8ea (17:58ea)
-	TX_FAR _UnnamedText_5d8ea
-	db "@"
-
-UnnamedText_5d8ef: ; 5d8ef (17:58ef)
-	TX_FAR _UnnamedText_5d8ef
-	db "@"
-
-SilphCo9Text2: ; 5d8f4 (17:58f4)
-	db $08 ; asm
-	ld hl, SilphCo9TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo9Text3: ; 5d8fe (17:58fe)
-	db $08 ; asm
-	ld hl, SilphCo9TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo9Text4: ; 5d908 (17:5908)
-	db $08 ; asm
-	ld hl, SilphCo9TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo9BattleText1: ; 5d912 (17:5912)
-	TX_FAR _SilphCo9BattleText1
-	db "@"
-
-SilphCo9EndBattleText1: ; 5d917 (17:5917)
-	TX_FAR _SilphCo9EndBattleText1
-	db "@"
-
-SilphCo9AfterBattleText1: ; 5d91c (17:591c)
-	TX_FAR _SilphCo9AfterBattleText1
-	db "@"
-
-SilphCo9BattleText2: ; 5d921 (17:5921)
-	TX_FAR _SilphCo9BattleText2
-	db "@"
-
-SilphCo9EndBattleText2: ; 5d926 (17:5926)
-	TX_FAR _SilphCo9EndBattleText2
-	db "@"
-
-SilphCo9AfterBattleText2: ; 5d92b (17:592b)
-	TX_FAR _SilphCo9AfterBattleText2
-	db "@"
-
-SilphCo9BattleText3: ; 5d930 (17:5930)
-	TX_FAR _SilphCo9BattleText3
-	db "@"
-
-SilphCo9EndBattleText3: ; 5d935 (17:5935)
-	TX_FAR _SilphCo9EndBattleText3
-	db "@"
-
-SilphCo9AfterBattleText3: ; 5d93a (17:593a)
-	TX_FAR _SilphCo9AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/silphco9.asm"
 
 SilphCo9Blocks: ; 5d989 (17:5989)
@@ -72723,115 +49672,8 @@
 
 INCLUDE "data/mapHeaders/victoryroad1.asm"
 
-VictoryRoad1Script: ; 5da0a (17:5a0a)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	call nz, .next
-	call EnableAutoTextBoxDrawing
-	ld hl, VictoryRoad1TrainerHeaders
-	ld de, VictoryRoad1ScriptPointers
-	ld a, [W_VICTORYROAD1CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VICTORYROAD1CURSCRIPT], a
-	ret
-.next
-	ld a, [$d869]
-	bit 7, a
-	ret z
-	ld a, $1d
-	ld [$d09f], a
-	ld bc, $604
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+INCLUDE "scripts/victoryroad1.asm"
 
-VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
-	dw VictoryRoad1Script0
-	dw Func_324c
-	dw EndTrainerBattle
-
-VictoryRoad1Script0: ; 5da40 (17:5a40)
-	ld a, [$d869]
-	bit 7, a
-	jp nz, CheckFightingMapTrainers
-	ld hl, CoordsData_5da5c ; $5a5c
-	call CheckBoulderCoords
-	jp nc, CheckFightingMapTrainers
-	ld hl, $d126
-	set 5, [hl]
-	ld hl, $d869
-	set 7, [hl]
-	ret
-
-CoordsData_5da5c: ; 5da5c (17:5a5c)
-	db $0D,$11,$FF
-
-VictoryRoad1TextPointers: ; 5da5f (17:5a5f)
-	dw VictoryRoad1Text1
-	dw VictoryRoad1Text2
-	dw Predef5CText
-	dw Predef5CText
-	dw BoulderText
-	dw BoulderText
-	dw BoulderText
-
-VictoryRoad1TrainerHeaders: ; 5da6d (17:5a6d)
-VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d869 ; flag's byte
-	dw VictoryRoad1BattleText1 ; 0x5a9a TextBeforeBattle
-	dw VictoryRoad1AfterBattleText1 ; 0x5aa4 TextAfterBattle
-	dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
-	dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
-
-VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d869 ; flag's byte
-	dw VictoryRoad1BattleText2 ; 0x5aa9 TextBeforeBattle
-	dw VictoryRoad1AfterBattleText2 ; 0x5ab3 TextAfterBattle
-	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
-	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
-
-	db $ff
-
-VictoryRoad1Text1: ; 5da86 (17:5a86)
-	db $08 ; asm
-	ld hl, VictoryRoad1TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad1Text2: ; 5da90 (17:5a90)
-	db $08 ; asm
-	ld hl, VictoryRoad1TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-VictoryRoad1BattleText1: ; 5da9a (17:5a9a)
-	TX_FAR _VictoryRoad1BattleText1
-	db "@"
-
-VictoryRoad1EndBattleText1: ; 5da9f (17:5a9f)
-	TX_FAR _VictoryRoad1EndBattleText1
-	db "@"
-
-VictoryRoad1AfterBattleText1: ; 5daa4 (17:5aa4)
-	TX_FAR _VictoryRoad1AfterBattleText1
-	db "@"
-
-VictoryRoad1BattleText2: ; 5daa9 (17:5aa9)
-	TX_FAR _VictoryRoad1BattleText2
-	db "@"
-
-VictoryRoad1EndBattleText2: ; 5daae (17:5aae)
-	TX_FAR _VictoryRoad1EndBattleText2
-	db "@"
-
-VictoryRoad1AfterBattleText2: ; 5dab3 (17:5ab3)
-	TX_FAR _VictoryRoad1AfterBattleText2
-	db "@"
-
 INCLUDE "data/mapObjects/victoryroad1.asm"
 
 VictoryRoad1Blocks: ; 5db04 (17:5b04)
@@ -73340,36 +50182,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower1.asm"
 
-PokemonTower1Script: ; 6042c (18:442c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/pokemontower1.asm"
 
-PokemonTower1TextPointers: ; 6042f (18:442f)
-	dw PokemonTower1Text1
-	dw PokemonTower1Text2
-	dw PokemonTower1Text3
-	dw PokemonTower1Text4
-	dw PokemonTower1Text5
-
-PokemonTower1Text1: ; 60439 (18:4439)
-	TX_FAR _PokemonTower1Text1
-	db "@"
-
-PokemonTower1Text2: ; 6043e (18:443e)
-	TX_FAR _PokemonTower1Text2
-	db "@"
-
-PokemonTower1Text3: ; 60443 (18:4443)
-	TX_FAR _PokemonTower1Text3
-	db "@"
-
-PokemonTower1Text4: ; 60448 (18:4448)
-	TX_FAR _PokemonTower1Text4
-	db "@"
-
-PokemonTower1Text5: ; 6044d (18:444d)
-	TX_FAR _PokemonTower1Text5
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower1.asm"
 
 PokemonTower1Blocks: ; 6048c (18:448c)
@@ -73377,187 +50191,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower2.asm"
 
-PokemonTower2Script: ; 604f2 (18:44f2)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower2ScriptPointers
-	ld a, [W_POKEMONTOWER2CURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/pokemontower2.asm"
 
-Func_604fe: ; 604fe (18:44fe)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_POKEMONTOWER2CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower2ScriptPointers: ; 60509 (18:4509)
-	dw PokemonTower2Script0
-	dw PokemonTower2Script1
-	dw PokemonTower2Script2
-
-PokemonTower2Script0: ; 6050f (18:450f)
-	ld a, [$d764]
-	bit 7, a
-	ret nz
-	ld hl, CoordsData_6055e ; $455e
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic
-	ld hl, $d764
-	res 6, [hl]
-	ld a, [$cd3d]
-	cp $1
-	ld a, $8
-	ld b, $0
-	jr nz, .asm_60544 ; 0x60539 $9
-	ld hl, $d764
-	set 6, [hl]
-	ld a, $2
-	ld b, $c
-.asm_60544
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	ld a, b
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [H_NEWLYPRESSEDBUTTONS], a
-	ret
-
-CoordsData_6055e: ; 6055e (18:455e)
-	db $05,$0F
-	db $06,$0E
-	db $0F ; isn't this supposed to end in $ff?
-
-PokemonTower2Script1: ; 60563 (18:4563)
-	ld a, [$d057]
-	cp $ff
-	jp z, Func_604fe
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d764
-	set 7, [hl]
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	ld de, MovementData_605b2
-	ld a, [$d764]
-	bit 6, a
-	jr nz, .asm_60589 ; 0x60584 $3
-	ld de, MovementData_605a9
-.asm_60589
-	ld a, $1
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $2
-	ld [W_POKEMONTOWER2CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-MovementData_605a9: ; 605a9 (18:45a9)
-	db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF
-
-MovementData_605b2: ; 605b2 (18:45b2)
-	db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
-
-PokemonTower2Script2: ; 605bb (18:45bb)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $38
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	call Func_2307
-	ld a, $0
-	ld [W_POKEMONTOWER2CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower2TextPointers: ; 605db (18:45db)
-	dw PokemonTower2Text1
-	dw PokemonTower2Text2
-
-PokemonTower2Text1: ; 605df (18:45df)
-	db $08 ; asm
-	ld a, [$d764]
-	bit 7, a
-	jr z, .asm_16f24 ; 0x605e5
-	ld hl, UnnamedText_6063c
-	call PrintText
-	jr .asm_41852 ; 0x605ed
-.asm_16f24 ; 0x605ef
-	ld hl, UnnamedText_6062d
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_60632
-	ld de, UnnamedText_60637 ; XXX $4637
-	call PreBattleSaveRegisters
-	ld a, SONY2 + $c8
-	ld [W_CUROPPONENT], a
-
-	; select which team to use during the encounter
-	ld a, [W_RIVALSTARTER]
-	cp SQUIRTLE
-	jr nz, .NotSquirtle ; 0x6060f
-	ld a, $4
-	jr .done
-.NotSquirtle ; 0x60615
-	cp BULBASAUR
-	jr nz, .Charmander ; 0x60617
-	ld a, $5
-	jr .done
-.Charmander ; 0x6061d
-	ld a, $6
-.done
-	ld [W_TRAINERNO], a
-
-	ld a, $1
-	ld [W_POKEMONTOWER2CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-.asm_41852 ; 0x6062a
-	jp TextScriptEnd
-
-UnnamedText_6062d: ; 6062d (18:462d)
-	TX_FAR _UnnamedText_6062d
-	db "@"
-
-UnnamedText_60632: ; 60632 (18:4632)
-	TX_FAR _UnnamedText_60632
-	db "@"
-
-UnnamedText_60637: ; 60637 (18:4637)
-	TX_FAR _UnnamedText_60637
-	db "@"
-
-UnnamedText_6063c: ; 6063c (18:463c)
-	TX_FAR _UnnamedText_6063c
-	db "@"
-
-PokemonTower2Text2: ; 60641 (18:4641)
-	TX_FAR _PokemonTower2Text2
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower2.asm"
 
 PokemonTower2Blocks: ; 60666 (18:4666)
@@ -73565,109 +50200,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower3.asm"
 
-PokemonTower3Script: ; 606cc (18:46cc)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower3TrainerHeaders
-	ld de, PokemonTower3ScriptPointers
-	ld a, [W_POKEMONTOWER3CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POKEMONTOWER3CURSCRIPT], a
-	ret
+INCLUDE "scripts/pokemontower3.asm"
 
-PokemonTower3ScriptPointers: ; 606df (18:46df)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-PokemonTower3TextPointers: ; 606e5 (18:46e5)
-	dw PokemonTower3Text1
-	dw PokemonTower3Text2
-	dw PokemonTower3Text3
-	dw Predef5CText
-
-PokemonTower3TrainerHeaders: ; 606ed (18:46ed)
-PokemonTower3TrainerHeader0: ; 606ed (18:46ed)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d765 ; flag's byte
-	dw PokemonTower3BattleText1 ; 0x4730 TextBeforeBattle
-	dw PokemonTower3AfterBattleText1 ; 0x473a TextAfterBattle
-	dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
-	dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
-
-PokemonTower3TrainerHeader1: ; 606f9 (18:46f9)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d765 ; flag's byte
-	dw PokemonTower3BattleText2 ; 0x473f TextBeforeBattle
-	dw PokemonTower3AfterBattleText2 ; 0x4749 TextAfterBattle
-	dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
-	dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
-
-PokemonTower3TrainerHeader2: ; 60705 (18:4705)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d765 ; flag's byte
-	dw PokemonTower3BattleText3 ; 0x474e TextBeforeBattle
-	dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle
-	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
-	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
-	db $ff
-
-PokemonTower3Text1: ; 60712 (18:4712)
-	db $08 ; asm
-	ld hl, PokemonTower3TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower3Text2: ; 6071c (18:471c)
-	db $08 ; asm
-	ld hl, PokemonTower3TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower3Text3: ; 60726 (18:4726)
-	db $08 ; asm
-	ld hl, PokemonTower3TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower3BattleText1: ; 60730 (18:4730)
-	TX_FAR _PokemonTower3BattleText1
-	db "@"
-
-PokemonTower3EndBattleText1: ; 60735 (18:4735)
-	TX_FAR _PokemonTower3EndBattleText1
-	db "@"
-
-PokemonTower3AfterBattleText1: ; 6073a (18:473a)
-	TX_FAR _PokemonTower3AfterBattleText1
-	db "@"
-
-PokemonTower3BattleText2: ; 6073f (18:473f)
-	TX_FAR _PokemonTower3BattleText2
-	db "@"
-
-PokemonTower3EndBattleText2: ; 60744 (18:4744)
-	TX_FAR _PokemonTower3EndBattleText2
-	db "@"
-
-PokemonTower3AfterBattleText2: ; 60749 (18:4749)
-	TX_FAR _PokemonTower3AfterBattleText2
-	db "@"
-
-PokemonTower3BattleText3: ; 6074e (18:474e)
-	TX_FAR _PokemonTower3BattleText3
-	db "@"
-
-PokemonTower3EndBattleText3: ; 60753 (18:4753)
-	TX_FAR _PokemonTower3EndBattleText3
-	db "@"
-
-PokemonTower3AfterBattleText3: ; 60758 (18:4758)
-	TX_FAR _PokemonTower3AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower3.asm"
 
 PokemonTower3Blocks: ; 60790 (18:4790)
@@ -73675,112 +50209,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower4.asm"
 
-PokemonTower4Script: ; 607f6 (18:47f6)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower4TrainerHeaders
-	ld de, PokemonTower4ScriptPointers
-	ld a, [W_POKEMONTOWER4CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POKEMONTOWER4CURSCRIPT], a
-	ret
+INCLUDE "scripts/pokemontower4.asm"
 
-PokemonTower4ScriptPointers: ; 60809 (18:4809)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-PokemonTower4TextPointers: ; 6080f (18:480f)
-	dw PokemonTower4Text1
-	dw PokemonTower4Text2
-	dw PokemonTower4Text3
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-PokemonTower4TrainerHeaders: ; 6081b (18:481b)
-PokemonTower4TrainerHeader0: ; 6081b (18:481b)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d766 ; flag's byte
-	dw PokemonTower4BattleText1 ; 0x485e TextBeforeBattle
-	dw PokemonTower4AfterBattleText1 ; 0x4868 TextAfterBattle
-	dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
-	dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
-
-PokemonTower4TrainerHeader1: ; 60827 (18:4827)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d766 ; flag's byte
-	dw PokemonTower4BattleText2 ; 0x486d TextBeforeBattle
-	dw PokemonTower4AfterBattleText2 ; 0x4877 TextAfterBattle
-	dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
-	dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
-
-PokemonTower4TrainerHeader2: ; 60833 (18:4833)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d766 ; flag's byte
-	dw PokemonTower4BattleText3 ; 0x487c TextBeforeBattle
-	dw PokemonTower4AfterBattleText3 ; 0x4886 TextAfterBattle
-	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
-	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
-
-	db $ff
-
-PokemonTower4Text1: ; 60840 (18:4840)
-	db $08 ; asm
-	ld hl, PokemonTower4TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower4Text2: ; 6084a (18:484a)
-	db $08 ; asm
-	ld hl, PokemonTower4TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower4Text3: ; 60854 (18:4854)
-	db $08 ; asm
-	ld hl, PokemonTower4TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower4BattleText1: ; 6085e (18:485e)
-	TX_FAR _PokemonTower4BattleText1
-	db "@"
-
-PokemonTower4EndBattleText1: ; 60863 (18:4863)
-	TX_FAR _PokemonTower4EndBattleText1
-	db "@"
-
-PokemonTower4AfterBattleText1: ; 60868 (18:4868)
-	TX_FAR _PokemonTower4AfterBattleText1
-	db "@"
-
-PokemonTower4BattleText2: ; 6086d (18:486d)
-	TX_FAR _PokemonTower4BattleText2
-	db "@"
-
-PokemonTower4EndBattleText2: ; 60872 (18:4872)
-	TX_FAR _PokemonTower4EndBattleText2
-	db "@"
-
-PokemonTower4AfterBattleText2: ; 60877 (18:4877)
-	TX_FAR _PokemonTower4AfterBattleText2
-	db "@"
-
-PokemonTower4BattleText3: ; 6087c (18:487c)
-	TX_FAR _PokemonTower4BattleText3
-	db "@"
-
-PokemonTower4EndBattleText3: ; 60881 (18:4881)
-	TX_FAR _PokemonTower4EndBattleText3
-	db "@"
-
-PokemonTower4AfterBattleText3: ; 60886 (18:4886)
-	TX_FAR _PokemonTower4AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower4.asm"
 
 PokemonTower4Blocks: ; 608cc (18:48cc)
@@ -73788,188 +50218,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower5.asm"
 
-PokemonTower5Script: ; 60932 (18:4932)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower5TrainerHeaders
-	ld de, PokemonTower5ScriptPointers
-	ld a, [W_POKEMONTOWER5CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POKEMONTOWER5CURSCRIPT], a
-	ret
+INCLUDE "scripts/pokemontower5.asm"
 
-PokemonTower5ScriptPointers: ; 60945 (18:4945)
-	dw PokemonTower5Script0
-	dw Func_324c
-	dw EndTrainerBattle
-
-PokemonTower5Script0: ; 6094b (18:494b)
-	ld hl, CoordsData_60992 ; $4992
-	call ArePlayerCoordsInArray
-	jr c, .asm_60960
-	ld hl, $d72e
-	res 4, [hl]
-	ld hl, $d767
-	res 7, [hl]
-	jp CheckFightingMapTrainers
-.asm_60960
-	ld hl, $d767
-	bit 7, [hl]
-	set 7, [hl]
-	ret nz
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d72e
-	set 4, [hl]
-	ld a, $7
-	call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
-	call GBFadeOut2
-	call Delay3
-	call Delay3
-	call GBFadeIn2
-	ld a, $7
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-
-CoordsData_60992: ; 60992 (18:4992)
-	db $08,$0A
-	db $08,$0B
-	db $09,$0A
-	db $09,$0B
-	db $FF
-
-PokemonTower5TextPointers: ; 6099b (18:499b)
-	dw PokemonTower5Text1
-	dw PokemonTower5Text2
-	dw PokemonTower5Text3
-	dw PokemonTower5Text4
-	dw PokemonTower5Text5
-	dw Predef5CText
-	dw PokemonTower5Text7
-
-PokemonTower5TrainerHeaders: ; 609a9 (18:49a9)
-PokemonTower5TrainerHeader0: ; 609a9 (18:49a9)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d767 ; flag's byte
-	dw PokemonTower5BattleText1 ; 0x49e9 TextBeforeBattle
-	dw PokemonTower5AfterBattleText1 ; 0x49f3 TextAfterBattle
-	dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
-	dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
-
-PokemonTower5TrainerHeader1: ; 609b5 (18:49b5)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d767 ; flag's byte
-	dw PokemonTower5BattleText2 ; 0x4a02 TextBeforeBattle
-	dw PokemonTower5AfterBattleText2 ; 0x4a0c TextAfterBattle
-	dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
-	dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
-
-PokemonTower5TrainerHeader2: ; 609c1 (18:49c1)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d767 ; flag's byte
-	dw PokemonTower5BattleText3 ; 0x4a1b TextBeforeBattle
-	dw PokemonTower5AfterBattleText3 ; 0x4a25 TextAfterBattle
-	dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
-	dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
-
-PokemonTower5TrainerHeader3: ; 609cd (18:49cd)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d767 ; flag's byte
-	dw PokemonTower5BattleText4 ; 0x4a34 TextBeforeBattle
-	dw PokemonTower5AfterBattleText4 ; 0x4a3e TextAfterBattle
-	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
-	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
-
-	db $ff
-
-PokemonTower5Text1: ; 609da (18:49da)
-	TX_FAR _PokemonTower5Text1
-	db "@"
-
-PokemonTower5Text2: ; 609df (18:49df)
-	db $08 ; asm
-	ld hl, PokemonTower5TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower5BattleText1: ; 609e9 (18:49e9)
-	TX_FAR _PokemonTower5BattleText1
-	db "@"
-
-PokemonTower5EndBattleText1: ; 609ee (18:49ee)
-	TX_FAR _PokemonTower5EndBattleText1
-	db "@"
-
-PokemonTower5AfterBattleText1: ; 609f3 (18:49f3)
-	TX_FAR _PokemonTower5AfterBattleText1
-	db "@"
-
-PokemonTower5Text3: ; 609f8 (18:49f8)
-	db $08 ; asm
-	ld hl, PokemonTower5TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower5BattleText2: ; 60a02 (18:4a02)
-	TX_FAR _PokemonTower5BattleText2
-	db "@"
-
-PokemonTower5EndBattleText2: ; 60a07 (18:4a07)
-	TX_FAR _PokemonTower5EndBattleText2
-	db "@"
-
-PokemonTower5AfterBattleText2: ; 60a0c (18:4a0c)
-	TX_FAR _PokemonTower5AfterBattleText2
-	db "@"
-
-PokemonTower5Text4: ; 60a11 (18:4a11)
-	db $08 ; asm
-	ld hl, PokemonTower5TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower5BattleText3: ; 60a1b (18:4a1b)
-	TX_FAR _PokemonTower5BattleText3
-	db "@"
-
-PokemonTower5EndBattleText3: ; 60a20 (18:4a20)
-	TX_FAR _PokemonTower5EndBattleText3
-	db "@"
-
-PokemonTower5AfterBattleText3: ; 60a25 (18:4a25)
-	TX_FAR _PokemonTower5AfterBattleText3
-	db "@"
-
-PokemonTower5Text5: ; 60a2a (18:4a2a)
-	db $08 ; asm
-	ld hl, PokemonTower5TrainerHeader3 ; $49cd
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower5BattleText4: ; 60a34 (18:4a34)
-	TX_FAR _PokemonTower5BattleText4
-	db "@"
-
-PokemonTower5EndBattleText4: ; 60a39 (18:4a39)
-	TX_FAR _PokemonTower5EndBattleText4
-	db "@"
-
-PokemonTower5AfterBattleText4: ; 60a3e (18:4a3e)
-	TX_FAR _PokemonTower5AfterBattleText4
-	db "@"
-
-PokemonTower5Text7: ; 60a43 (18:4a43)
-	TX_FAR _UnnamedText_60a43
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower5.asm"
 
 PokemonTower5Blocks: ; 60a89 (18:4a89)
@@ -73977,222 +50227,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower6.asm"
 
-PokemonTower6Script: ; 60aef (18:4aef)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower6TrainerHeaders
-	ld de, PokemonTower6ScriptPointers
-	ld a, [W_POKEMONTOWER6CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ret
+INCLUDE "scripts/pokemontower6.asm"
 
-Func_60b02: ; 60b02 (18:4b02)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower6ScriptPointers: ; 60b0d (18:4b0d)
-	dw PokemonTower6Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw PokemonTower6Script3
-	dw PokemonTower6Script4
-
-PokemonTower6Script0: ; 60b17 (18:4b17)
-	ld a, [$d768]
-	bit 7, a
-	jp nz, CheckFightingMapTrainers
-	ld hl, CoordsData_60b45 ; $4b45
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, MAROWAK
-	ld [W_CUROPPONENT], a ; $d059
-	ld a, 30
-	ld [W_CURENEMYLVL], a ; $d127
-	ld a, $4
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_60b45: ; 60b45 (18:4b45)
-	db $10,$0A,$FF
-
-PokemonTower6Script4: ; 60b48 (18:4b48)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_60b02
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [$d72d]
-	bit 6, a
-	ret nz
-	call UpdateSprites
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [$cf0b]
-	and a
-	jr nz, .asm_60b82
-	ld hl, $d768
-	set 7, [hl]
-	ld a, $7
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-.asm_60b82
-	ld a, $1
-	ld [$cd38], a
-	ld a, $10
-	ld [$ccd3], a
-	xor a
-	ld [$c206], a
-	ld [$cd3b], a
-	ld hl, $d730
-	set 7, [hl]
-	ld a, $3
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower6Script3: ; 60ba1 (18:4ba1)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [W_POKEMONTOWER6CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower6TextPointers: ; 60bb1 (18:4bb1)
-	dw PokemonTower6Text1
-	dw PokemonTower6Text2
-	dw PokemonTower6Text3
-	dw Predef5CText
-	dw Predef5CText
-	dw PokemonTower6Text6
-	dw PokemonTower6Text7
-
-PokemonTower6TrainerHeaders: ; 60bbf (18:4bbf)
-PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d768 ; flag's byte
-	dw PokemonTower6BattleText1 ; 0x4c29 TextBeforeBattle
-	dw PokemonTower6AfterBattleText1 ; 0x4c33 TextAfterBattle
-	dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
-	dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
-
-PokemonTower6TrainerHeader1: ; 60bcb (18:4bcb)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d768 ; flag's byte
-	dw PokemonTower6BattleText2 ; 0x4c38 TextBeforeBattle
-	dw PokemonTower6AfterBattleText2 ; 0x4c42 TextAfterBattle
-	dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
-	dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
-
-PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d768 ; flag's byte
-	dw PokemonTower6BattleText3 ; 0x4c47 TextBeforeBattle
-	dw PokemonTower6AfterBattleText3 ; 0x4c51 TextAfterBattle
-	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
-	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
-
-	db $ff
-
-PokemonTower6Text1: ; 60be4 (18:4be4)
-	db $08 ; asm
-	ld hl, PokemonTower6TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower6Text2: ; 60bee (18:4bee)
-	db $08 ; asm
-	ld hl, PokemonTower6TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower6Text3: ; 60bf8 (18:4bf8)
-	db $08 ; asm
-	ld hl, PokemonTower6TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower6Text7: ; 60c02 (18:4c02)
-	db $8
-	ld hl, UnnamedText_60c1f
-	call PrintText
-	ld a, MAROWAK
-	call PlayCry
-	call WaitForSoundToFinish
-	ld c, $1e
-	call DelayFrames
-	ld hl, UnnamedText_60c24
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_60c1f: ; 60c1f (18:4c1f)
-	TX_FAR _UnnamedText_60c1f
-	db "@"
-
-UnnamedText_60c24: ; 60c24 (18:4c24)
-	TX_FAR _UnnamedText_60c24
-	db "@"
-
-PokemonTower6BattleText1: ; 60c29 (18:4c29)
-	TX_FAR _PokemonTower6BattleText1
-	db "@"
-
-PokemonTower6EndBattleText1: ; 60c2e (18:4c2e)
-	TX_FAR _PokemonTower6EndBattleText1
-	db "@"
-
-PokemonTower6AfterBattleText1: ; 60c33 (18:4c33)
-	TX_FAR _PokemonTower6AfterBattleText1
-	db "@"
-
-PokemonTower6BattleText2: ; 60c38 (18:4c38)
-	TX_FAR _PokemonTower6BattleText2
-	db "@"
-
-PokemonTower6EndBattleText2: ; 60c3d (18:4c3d)
-	TX_FAR _PokemonTower6EndBattleText2
-	db "@"
-
-PokemonTower6AfterBattleText2: ; 60c42 (18:4c42)
-	TX_FAR _PokemonTower6AfterBattleText2
-	db "@"
-
-PokemonTower6BattleText3: ; 60c47 (18:4c47)
-	TX_FAR _PokemonTower6BattleText3
-	db "@"
-
-PokemonTower6EndBattleText3: ; 60c4c (18:4c4c)
-	TX_FAR _PokemonTower6EndBattleText3
-	db "@"
-
-PokemonTower6AfterBattleText3: ; 60c51 (18:4c51)
-	TX_FAR _PokemonTower6AfterBattleText3
-	db "@"
-
-PokemonTower6Text6: ; 60c56 (18:4c56)
-	TX_FAR _UnnamedText_60c56
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower6.asm"
 
 PokemonTower6Blocks: ; 60c95 (18:4c95)
@@ -74202,289 +50238,8 @@
 
 INCLUDE "data/mapHeaders/pokemontower7.asm"
 
-PokemonTower7Script: ; 60d05 (18:4d05)
-	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower7TrainerHeaders
-	ld de, PokemonTower7ScriptPointers
-	ld a, [W_POKEMONTOWER7CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ret
+INCLUDE "scripts/pokemontower7.asm"
 
-Func_60d18: ; 60d18 (18:4d18)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower7ScriptPointers: ; 60d23 (18:4d23)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw PokemonTower7Script2
-	dw PokemonTower7Script3
-	dw PokemonTower7Script4
-
-PokemonTower7Script2: ; 60d23 (18:4d23)
-	ld hl, wFlags_0xcd60
-	res 0, [hl]
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_60d18
-	call EndTrainerBattle
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [$cf13]
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	call Func_60db6
-	ld a, $3
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower7Script3: ; 60d56 (18:4d56)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld hl, W_MISSABLEOBJECTLIST
-	ld a, [$cf13]
-	ld b, a
-.missableObjectsListLoop
-	ld a, [hli]
-	cp b            ; search for sprite ID in missing objects list
-	ld a, [hli]
-	jr nz, .missableObjectsListLoop
-	ld [$cc4d], a   ; remove missable object
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [$cf13], a
-	ld [wTrainerHeaderFlagBit], a
-	ld [$da38], a
-	ld a, $0
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-PokemonTower7Script4: ; 60d86 (18:4d86)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $43
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $4
-	ld [$c109], a
-	ld a, $95
-	ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
-	ld a, $1
-	ld [$d42f], a
-	ld a, $4
-	ld [$d365], a
-	ld hl, $d72d
-	set 3, [hl]
-	ld a, $0
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-Func_60db6: ; 60db6 (18:4db6)
-	ld hl, CoordsData_60de3 ; $4de3
-	ld a, [$cf13]
-	dec a
-	swap a
-	ld d, $0
-	ld e, a
-	add hl, de
-	ld a, [W_YCOORD] ; $d361
-	ld b, a
-	ld a, [W_XCOORD] ; $d362
-	ld c, a
-.asm_60dcb
-	ld a, [hli]
-	cp b
-	jr nz, .asm_60dde
-	ld a, [hli]
-	cp c
-	jr nz, .asm_60ddf
-	ld a, [hli]
-	ld d, [hl]
-	ld e, a
-	ld a, [$cf13]
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp MoveSprite
-.asm_60dde
-	inc hl
-.asm_60ddf
-	inc hl
-	inc hl
-	jr .asm_60dcb
-
-CoordsData_60de3: ; 60de3 (18:4de3)
-	db $0C,$09
-	dw MovementData_60e13
-	db $0B,$0A
-	dw MovementData_60e1b
-	db $0B,$0B
-	dw MovementData_60e22
-	db $0B,$0C
-	dw MovementData_60e22
-	db $0A,$0C
-	dw MovementData_60e28
-	db $09,$0B
-	dw MovementData_60e30
-	db $09,$0A
-	dw MovementData_60e22
-	db $09,$09
-	dw MovementData_60e22
-	db $08,$09
-	dw MovementData_60e37
-	db $07,$0A
-	dw MovementData_60e22
-	db $07,$0B
-	dw MovementData_60e22
-	db $07,$0C
-	dw MovementData_60e22
-
-MovementData_60e13: ; 60e13
-	db $C0,$00,$00,$00,$00,$00,$80,$FF
-
-MovementData_60e1b: ; 60e1b
-	db $00,$C0,$00,$00,$00,$00,$FF
-
-MovementData_60e22: ; 60e22
-	db $00,$00,$00,$00,$00,$FF
-
-MovementData_60e28: ; 60e28
-	db $80,$00,$00,$00,$00,$00,$00,$FF
-
-MovementData_60e30: ; 60e30
-	db $00,$00,$00,$80,$00,$00,$FF
-
-MovementData_60e37: ; 60e37
-	db $C0,$00,$00,$00,$00,$00,$00,$FF
-
-PokemonTower7TextPointers: ; 60e3f (18:4e3f)
-	dw PokemonTower7Text1
-	dw PokemonTower7Text2
-	dw PokemonTower7Text3
-	dw PokemonTower7Text4
-
-PokemonTower7TrainerHeaders: ; 60e47 (18:4e47)
-PokemonTower7TrainerHeader0: ; 60e47 (18:4e47)
-	db $1 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d769 ; flag's byte
-	dw PokemonTower7BattleText1 ; 0x4ec9 TextBeforeBattle
-	dw PokemonTower7AfterBattleText1 ; 0x4ed3 TextAfterBattle
-	dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
-	dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
-
-PokemonTower7TrainerHeader1: ; 60e53 (18:4e53)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d769 ; flag's byte
-	dw PokemonTower7BattleText2 ; 0x4ed8 TextBeforeBattle
-	dw PokemonTower7AfterBattleText2 ; 0x4ee2 TextAfterBattle
-	dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
-	dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
-
-PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d769 ; flag's byte
-	dw PokemonTower7BattleText3 ; 0x4ee7 TextBeforeBattle
-	dw PokemonTower7AfterBattleText3 ; 0x4ef1 TextAfterBattle
-	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
-	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
-
-	db $ff
-
-PokemonTower7Text1: ; 60e6c (18:4e6c)
-	db $08 ; asm
-	ld hl, PokemonTower7TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower7Text2: ; 60e76 (18:4e76)
-	db $08 ; asm
-	ld hl, PokemonTower7TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower7Text3: ; 60e80 (18:4e80)
-	db $08 ; asm
-	ld hl, PokemonTower7TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-PokemonTower7Text4: ; 60e8a (18:4e8a)
-	db $08 ; asm
-	ld hl, UnnamedText_60ec4
-	call PrintText
-	ld hl, $d7e0
-	set 7, [hl]
-	ld hl, $d769
-	set 7, [hl]
-	ld a, $44
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, $17
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $18
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, $4
-	ld [W_POKEMONTOWER7CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_60ec4: ; 60ec4 (18:4ec4)
-	TX_FAR _UnnamedText_60ec4
-	db "@"
-
-PokemonTower7BattleText1: ; 60ec9 (18:4ec9)
-	TX_FAR _PokemonTower7BattleText1
-	db "@"
-
-PokemonTower7EndBattleText1: ; 60ece (18:4ece)
-	TX_FAR _PokemonTower7EndBattleText1
-	db "@"
-
-PokemonTower7AfterBattleText1: ; 60ed3 (18:4ed3)
-	TX_FAR _PokemonTower7AfterBattleText1
-	db "@"
-
-PokemonTower7BattleText2: ; 60ed8 (18:4ed8)
-	TX_FAR _PokemonTower7BattleText2
-	db "@"
-
-PokemonTower7EndBattleText2: ; 60edd (18:4edd)
-	TX_FAR _PokemonTower7EndBattleText2
-	db "@"
-
-PokemonTower7AfterBattleText2: ; 60ee2 (18:4ee2)
-	TX_FAR _PokemonTower7AfterBattleText2
-	db "@"
-
-PokemonTower7BattleText3: ; 60ee7 (18:4ee7)
-	TX_FAR _PokemonTower7BattleText3
-	db "@"
-
-PokemonTower7EndBattleText3: ; 60eec (18:4eec)
-	TX_FAR _PokemonTower7EndBattleText3
-	db "@"
-
-PokemonTower7AfterBattleText3: ; 60ef1 (18:4ef1)
-	TX_FAR _PokemonTower7AfterBattleText3
-	db "@"
-
 INCLUDE "data/mapObjects/pokemontower7.asm"
 
 PokemonTower7Blocks: ; 60f20 (18:4f20)
@@ -74492,26 +50247,8 @@
 
 INCLUDE "data/mapHeaders/celadonmart1.asm"
 
-CeladonMart1Script: ; 60f86 (18:4f86)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/celadonmart1.asm"
 
-CeladonMart1TextPointers: ; 60f89 (18:4f89)
-	dw CeladonMart1Text1
-	dw CeladonMart1Text2
-	dw CeladonMart1Text3
-
-CeladonMart1Text1: ; 60f8f (18:4f8f)
-	TX_FAR _CeladonMart1Text1
-	db "@"
-
-CeladonMart1Text2: ; 60f94 (18:4f94)
-	TX_FAR _CeladonMart1Text2
-	db "@"
-
-CeladonMart1Text3: ; 60f99 (18:4f99)
-	TX_FAR _CeladonMart1Text3
-	db "@"
-
 INCLUDE "data/mapObjects/celadonmart1.asm"
 
 CeladonMart1Blocks: ; 60fde (18:4fde)
@@ -74571,13 +50308,13 @@
 	ld a, b
 	ld [W_FOSSILMON], a
 	call LoadFossilItemAndMonName
-	ld hl, UnnamedText_610ae
+	ld hl, LabFossil_610ae
 	call PrintText
 	call YesNoChoice
 	ld a, [wCurrentMenuItem] ; $cc26
 	and a
 	jr nz, .asm_610a7
-	ld hl, UnnamedText_610b3
+	ld hl, LabFossil_610b3
 	call PrintText
 	ld a, [W_FOSSILITEM]
 	ld [$ffdb], a
@@ -74584,7 +50321,7 @@
 	ld b, BANK(RemoveItemByID)
 	ld hl, RemoveItemByID
 	call Bankswitch
-	ld hl, UnnamedText_610b8
+	ld hl, LabFossil_610b8
 	call PrintText
 	ld hl, $d7a3
 	set 0, [hl]
@@ -74591,24 +50328,24 @@
 	set 1, [hl]
 	ret
 .asm_610a7
-	ld hl, UnnamedText_610bd
+	ld hl, LabFossil_610bd
 	call PrintText
 	ret
 
-UnnamedText_610ae: ; 610ae (18:50ae)
-	TX_FAR _UnnamedText_610ae
+LabFossil_610ae: ; 610ae (18:50ae)
+	TX_FAR _Lab4Text_610ae
 	db "@"
 
-UnnamedText_610b3: ; 610b3 (18:50b3)
-	TX_FAR _UnnamedText_610b3
+LabFossil_610b3: ; 610b3 (18:50b3)
+	TX_FAR _Lab4Text_610b3
 	db "@"
 
-UnnamedText_610b8: ; 610b8 (18:50b8)
-	TX_FAR _UnnamedText_610b8
+LabFossil_610b8: ; 610b8 (18:50b8)
+	TX_FAR _Lab4Text_610b8
 	db "@"
 
-UnnamedText_610bd: ; 610bd (18:50bd)
-	TX_FAR _UnnamedText_610bd
+LabFossil_610bd: ; 610bd (18:50bd)
+	TX_FAR _Lab4Text_610bd
 	db "@"
 
 Func_610c2: ; 610c2 (18:50c2)
@@ -74647,172 +50384,14 @@
 
 INCLUDE "data/mapHeaders/viridianforest.asm"
 
-ViridianForestScript: ; 6110d (18:510d)
-	call EnableAutoTextBoxDrawing
-	ld hl, ViridianForestTrainerHeaders
-	ld de, ViridianForestScriptPointers
-	ld a, [W_VIRIDIANFORESTCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VIRIDIANFORESTCURSCRIPT], a
-	ret
+INCLUDE "scripts/viridianforest.asm"
 
-ViridianForestScriptPointers: ; 61120 (18:5120)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-ViridianForestTextPointers: ; 61126 (18:5126)
-	dw ViridianForestText1
-	dw ViridianForestText2
-	dw ViridianForestText3
-	dw ViridianForestText4
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-	dw ViridianForestText8
-	dw ViridianForestText9
-	dw ViridianForestText10
-	dw ViridianForestText11
-	dw ViridianForestText12
-	dw ViridianForestText13
-	dw ViridianForestText14
-
-ViridianForestTrainerHeaders: ; 61142 (18:5142)
-ViridianForestTrainerHeader0: ; 61142 (18:5142)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f3 ; flag's byte
-	dw ViridianForestBattleText1 ; 0x518a TextBeforeBattle
-	dw ViridianForestAfterBattleText1 ; 0x5194 TextAfterBattle
-	dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
-	dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
-
-ViridianForestTrainerHeader1: ; 6114e (18:514e)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d7f3 ; flag's byte
-	dw ViridianForestBattleText2 ; 0x5199 TextBeforeBattle
-	dw ViridianForestAfterBattleText2 ; 0x51a3 TextAfterBattle
-	dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
-	dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
-
-ViridianForestTrainerHeader2: ; 6115a (18:515a)
-	db $4 ; flag's bit
-	db ($1 << 4) ; trainer's view range
-	dw $d7f3 ; flag's byte
-	dw ViridianForestBattleText3 ; 0x51a8 TextBeforeBattle
-	dw ViridianForestAfterBattleText3 ; 0x51b2 TextAfterBattle
-	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
-	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
-
-	db $ff
-
-ViridianForestText1: ; 61167 (18:5167)
-	TX_FAR _ViridianForestText1
-	db "@"
-
-ViridianForestText2: ; 6116c (18:516c)
-	db $08 ; asm
-	ld hl, ViridianForestTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianForestText3: ; 61176 (18:5176)
-	db $08 ; asm
-	ld hl, ViridianForestTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianForestText4: ; 61180 (18:5180)
-	db $08 ; asm
-	ld hl, ViridianForestTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianForestBattleText1: ; 6118a (18:518a)
-	TX_FAR _ViridianForestBattleText1
-	db "@"
-
-ViridianForestEndBattleText1: ; 6118f (18:518f)
-	TX_FAR _ViridianForestEndBattleText1
-	db "@"
-
-ViridianForestAfterBattleText1: ; 61194 (18:5194)
-	TX_FAR _ViridianFrstAfterBattleText1
-	db "@"
-
-ViridianForestBattleText2: ; 61199 (18:5199)
-	TX_FAR _ViridianForestBattleText2
-	db "@"
-
-ViridianForestEndBattleText2: ; 6119e (18:519e)
-	TX_FAR _ViridianForestEndBattleText2
-	db "@"
-
-ViridianForestAfterBattleText2: ; 611a3 (18:51a3)
-	TX_FAR _ViridianFrstAfterBattleText2
-	db "@"
-
-ViridianForestBattleText3: ; 611a8 (18:51a8)
-	TX_FAR _ViridianForestBattleText3
-	db "@"
-
-ViridianForestEndBattleText3: ; 611ad (18:51ad)
-	TX_FAR _ViridianForestEndBattleText3
-	db "@"
-
-ViridianForestAfterBattleText3: ; 611b2 (18:51b2)
-	TX_FAR _ViridianFrstAfterBattleText3
-	db "@"
-
-ViridianForestText8: ; 611b7 (18:51b7)
-	TX_FAR _ViridianForestText8
-	db "@"
-
-ViridianForestText9: ; 611bc (18:51bc)
-	TX_FAR _ViridianForestText9
-	db "@"
-
-ViridianForestText10: ; 611c1 (18:51c1)
-	TX_FAR _ViridianForestText10
-	db "@"
-
-ViridianForestText11: ; 611c6 (18:51c6)
-	TX_FAR _ViridianForestText11
-	db "@"
-
-ViridianForestText12: ; 611cb (18:51cb)
-	TX_FAR _ViridianForestText12
-	db "@"
-
-ViridianForestText13: ; 611d0 (18:51d0)
-	TX_FAR _ViridianForestText13
-	db "@"
-
-ViridianForestText14: ; 611d5 (18:51d5)
-	TX_FAR _ViridianForestText14
-	db "@"
-
 INCLUDE "data/mapObjects/viridianforest.asm"
 
 INCLUDE "data/mapHeaders/ssanne1.asm"
 
-SSAnne1Script: ; 61265 (18:5265)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/ssanne1.asm"
 
-SSAnne1TextPointers: ; 61269 (18:5269)
-	dw SSAnne1Text1
-	dw SSAnne1Text2
-
-SSAnne1Text1: ; 6126d (18:526d)
-	TX_FAR _SSAnne1Text1
-	db "@"
-
-SSAnne1Text2: ; 61272 (18:5272)
-	TX_FAR _SSAnne1Text2
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne1.asm"
 
 SSAnne1Blocks: ; 612df (18:52df)
@@ -74820,217 +50399,8 @@
 
 INCLUDE "data/mapHeaders/ssanne2.asm"
 
-SSAnne2Script: ; 6139f (18:539f)
-	call EnableAutoTextBoxDrawing
-	ld hl, SSAnne2ScriptPointers
-	ld a, [W_SSANNE2CURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/ssanne2.asm"
 
-SSAnne2Script_613ab: ; 613ab (18:53ab)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_SSANNE2CURSCRIPT], a
-	ret
-
-SSAnne2ScriptPointers: ; 613b3 (18:53b3)
-	dw SSAnne2Script0
-	dw SSAnne2Script1
-	dw SSAnne2Script2
-	dw SSAnne2Script3
-	dw SSAnne2Script4
-
-SSAnne2Script4: ; 613bd (18:53bd)
-	ret
-
-SSAnne2Script0: ; 613be (18:53be)
-	ld hl, CoordsData_61411 ; $5411
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld c, BANK(Music_MeetRival)
-	ld a, MUSIC_MEET_RIVAL
-	call PlayMusic
-	ld a, [$cd3d]
-	ld [$ffdb], a
-	ld a, $71
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	call Delay3
-	ld a, $2
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [$ffdb]
-	cp $2
-	jr nz, .asm_61400 ; 0x613f9 $5
-	ld de, MovementData_6140c
-	jr .asm_61403 ; 0x613fe $3
-.asm_61400
-	ld de, MovementData_6140d
-.asm_61403
-	call MoveSprite
-	ld a, $1
-	ld [W_SSANNE2CURSCRIPT], a
-	ret
-
-MovementData_6140c: ; 6140c (18:540c)
-	db $00
-
-MovementData_6140d: ; 6140d (18:540d)
-	db $00,$00,$00,$FF
-
-CoordsData_61411: ; 61411 (18:5411)
-	db $08,$24,$08,$25,$FF
-
-Func_61416: ; 61416 (18:5416)
-	ld a, [W_XCOORD] ; $d362
-	cp $25
-	jr nz, .asm_61426
-	ld a, $2
-	ld [$d528], a
-	ld a, $c
-	jr .asm_61427
-.asm_61426
-	xor a
-.asm_61427
-	ld [$ff8d], a
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp Func_34a6
-
-SSAnne2Script1: ; 61430 (18:5430)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	call Func_61416
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $2
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld a, SONY2 + $c8
-	ld [W_CUROPPONENT], a
-
-	; select which team to use during the encounter
-	ld a, [W_RIVALSTARTER]
-	cp SQUIRTLE
-	jr nz, .NotSquirtle ; 0x61451 $4
-	ld a, $1
-	jr .done
-.NotSquirtle
-	cp BULBASAUR
-	jr nz, .Charmander ; 0x61459 $4
-	ld a, $2
-	jr .done
-.Charmander
-	ld a, $3
-.done
-	ld [W_TRAINERNO], a
-
-	call Func_61416
-	ld a, $2
-	ld [W_SSANNE2CURSCRIPT], a
-	ret
-
-SSAnne2Script2: ; 6146d (18:546d)
-	ld a, [$d057]
-	cp $ff
-	jp z, SSAnne2Script_613ab
-	call Func_61416
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $2
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	ld a, [W_XCOORD]
-	cp $25
-	jr nz, .asm_61497 ; 0x61490 $5
-	ld de, MovementData_614b9
-	jr .asm_6149a ; 0x61495 $3
-.asm_61497
-	ld de, MovementData_614b7
-.asm_6149a
-	ld a, $2
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld b, BANK(Music_RivalAlternateStart)
-	ld hl, Music_RivalAlternateStart
-	call Bankswitch
-	ld a, $3
-	ld [W_SSANNE2CURSCRIPT], a
-	ret
-
-MovementData_614b7: ; 614b7 (18:54b7)
-	db $C0,$00
-
-MovementData_614b9: ; 614b9 (18:54b9)
-	db $00,$00,$00,$00,$FF
-
-SSAnne2Script3: ; 614be (18:54be)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $71
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	call Func_2307
-	ld a, $4
-	ld [W_SSANNE2CURSCRIPT], a
-	ret
-
-SSAnne2TextPointers: ; 614db (18:54db)
-	dw SSAnne2Text1
-	dw SSAnne2Text2
-	dw SSAnne2Text3
-
-SSAnne2Text1: ; 614e1 (18:54e1)
-	TX_FAR _SSAnne2Text1
-	db "@"
-
-SSAnne2Text2: ; 614e6 (18:54e6)
-	db $8
-	ld hl, SSAnneRivalBeforeBattleText
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, SSAnneRivalDefeatedText
-	ld de, SSAnneRivalWonText
-	call PreBattleSaveRegisters
-	jp TextScriptEnd
-
-SSAnneRivalBeforeBattleText: ; 61500 (18:5500)
-	TX_FAR _SSAnneRivalBeforeBattleText
-	db "@"
-
-SSAnneRivalDefeatedText: ; 61505 (18:5505)
-	TX_FAR _SSAnneRivalDefeatedText
-	db "@"
-
-SSAnneRivalWonText: ; 6150a (18:550a)
-	TX_FAR _SSAnneRivalWonText
-	db "@"
-
-SSAnne2Text3: ; 6150f (18:550f)
-	TX_FAR _SSAnneRivalCaptainText
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne2.asm"
 
 SSAnne2Blocks: ; 6156e (18:556e)
@@ -75038,12 +50408,8 @@
 
 INCLUDE "data/mapHeaders/ssanne4.asm"
 
-SSAnne4Script: ; 6162e (18:562e)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ssanne4.asm"
 
-SSAnne4TextPointers: ; 61631 (18:5631)
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne4.asm"
 
 SSAnne4Blocks: ; 61666 (18:5666)
@@ -75051,96 +50417,8 @@
 
 INCLUDE "data/mapHeaders/ssanne5.asm"
 
-SSAnne5Script: ; 616ae (18:56ae)
-	call EnableAutoTextBoxDrawing
-	ld hl, SSAnneTrainerHeader0 ; $56d1
-	ld de, SSAnne5ScriptPointers
-	ld a, [W_SSANNE5CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SSANNE5CURSCRIPT], a
-	ret
+INCLUDE "scripts/ssanne5.asm"
 
-SSAnne5ScriptPointers: ; 616c1 (18:56c1)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SSAnne5TextPointers: ; 616c7 (18:56c7)
-	dw SSAnne5Text1
-	dw SSAnne5Text2
-	dw SSAnne5Text3
-	dw SSAnne5Text4
-	dw SSAnne5Text5
-
-SSAnneTrainerHeaders: ; 616d1 (18:56d1)
-SSAnneTrainerHeader0: ; 616d1 (18:56d1)
-	db $4 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7ff ; flag's byte
-	dw SSAnneBattleText1 ; 0x5703 TextBeforeBattle
-	dw SSAnneAfterBattleText1 ; 0x570d TextAfterBattle
-	dw SSAnneEndBattleText1 ; 0x5708 TextEndBattle
-	dw SSAnneEndBattleText1 ; 0x5708 TextEndBattle
-
-SSAnneTrainerHeader1: ; 616dd (18:56dd)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d7ff ; flag's byte
-	dw SSAnneBattleText2 ; 0x571c TextBeforeBattle
-	dw SSAnneAfterBattleText2 ; 0x5726 TextAfterBattle
-	dw SSAnneEndBattleText2 ; 0x5721 TextEndBattle
-	dw SSAnneEndBattleText2 ; 0x5721 TextEndBattle
-
-	db $ff
-
-SSAnne5Text1: ; 616ea (18:56ea)
-	TX_FAR _SSAnne5Text1
-	db "@"
-
-SSAnne5Text2: ; 616ef (18:56ef)
-	TX_FAR _SSAnne5Text2
-	db "@"
-
-SSAnne5Text3: ; 616f4 (18:56f4)
-	TX_FAR _SSAnne5Text3
-	db "@"
-
-SSAnne5Text4: ; 616f9 (18:56f9)
-	db $08 ; asm
-	ld hl, SSAnneTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnneBattleText1: ; 61703 (18:5703)
-	TX_FAR _SSAnneBattleText1
-	db "@"
-
-SSAnneEndBattleText1: ; 61708 (18:5708)
-	TX_FAR _SSAnneEndBattleText1
-	db "@"
-
-SSAnneAfterBattleText1: ; 6170d (18:570d)
-	TX_FAR _SSAnneAfterBattleText1
-	db "@"
-
-SSAnne5Text5: ; 61712 (18:5712)
-	db $08 ; asm
-	ld hl, SSAnneTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnneBattleText2: ; 6171c (18:571c)
-	TX_FAR _SSAnneBattleText2
-	db "@"
-
-SSAnneEndBattleText2: ; 61721 (18:5721)
-	TX_FAR _SSAnneEndBattleText2
-	db "@"
-
-SSAnneAfterBattleText2: ; 61726 (18:5726)
-	TX_FAR _SSAnneAfterBattleText2
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne5.asm"
 
 SSAnne5Blocks: ; 61761 (18:5761)
@@ -75148,79 +50426,8 @@
 
 INCLUDE "data/mapHeaders/ssanne6.asm"
 
-SSAnne6Script: ; 617b3 (18:57b3)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/ssanne6.asm"
 
-SSAnne6TextPointers: ; 617b7 (18:57b7)
-	dw SSAnne6Text1
-	dw SSAnne6Text2
-	dw SSAnne6Text3
-	dw SSAnne6Text4
-	dw SSAnne6Text5
-	dw SSAnne6Text6
-	dw SSAnne6Text7
-
-SSAnne6Text1: ; 617c5 (18:57c5)
-	TX_FAR _SSAnne6Text1
-	db "@"
-
-SSAnne6Text2: ; 617ca (18:57ca)
-	TX_FAR _SSAnne6Text2
-	db "@"
-
-SSAnne6Text3: ; 617cf (18:57cf)
-	TX_FAR _SSAnne6Text3
-	db "@"
-
-SSAnne6Text4: ; 617d4 (18:57d4)
-	TX_FAR _SSAnne6Text4
-	db "@"
-
-SSAnne6Text5: ; 617d9 (18:57d9)
-	TX_FAR _SSAnne6Text5
-	db "@"
-
-SSAnne6Text6: ; 617de (18:57de)
-	TX_FAR _SSAnne6Text6
-	db "@"
-
-SSAnne6Text7: ; 617e3 (18:57e3)
-	db $08 ; asm
-	ld hl, UnnamedText_61807
-	call PrintText
-	ldh a, [$d3]
-	bit 7, a
-	jr z, .asm_93eb1 ; 0x617ee
-	ld hl, UnnamedText_6180c
-	jr .asm_63292 ; 0x617f3
-.asm_93eb1 ; 0x617f5
-	bit 4, a
-	jr z, .asm_7436c ; 0x617f7
-	ld hl, UnnamedText_61811
-	jr .asm_63292 ; 0x617fc
-.asm_7436c ; 0x617fe
-	ld hl, UnnamedText_61816
-.asm_63292 ; 0x61801
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61807: ; 61807 (18:5807)
-	TX_FAR _UnnamedText_61807
-	db "@"
-
-UnnamedText_6180c: ; 6180c (18:580c)
-	TX_FAR _UnnamedText_6180c
-	db "@"
-
-UnnamedText_61811: ; 61811 (18:5811)
-	TX_FAR _UnnamedText_61811
-	db "@"
-
-UnnamedText_61816: ; 61816 (18:5816)
-	TX_FAR _UnnamedText_61816
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne6.asm"
 
 SSAnne6Blocks: ; 61851 (18:5851)
@@ -75228,103 +50435,8 @@
 
 INCLUDE "data/mapHeaders/ssanne7.asm"
 
-SSAnne7Script: ; 61895 (18:5895)
-	call SSAnne7Script_6189b
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/ssanne7.asm"
 
-SSAnne7Script_6189b: ; 6189b (18:589b)
-	ld a, [$d803]
-	bit 1, a
-	ret nz
-	ld hl, $d72d
-	set 5, [hl]
-	ret
-
-SSAnne7TextPointers: ; 618a7 (18:58a7)
-	dw SSAnne7Text1
-	dw SSAnne7Text2
-	dw SSAnne7Text3
-
-SSAnne7Text1: ; 618ad (18:58ad)
-	db $08 ; asm
-	ld a, [$d803]
-	bit 0, a
-	jr nz, .asm_797c4 ; 0x618b3
-	ld hl, SSAnne7RubText
-	call PrintText
-	ld hl, ReceivingHM01Text
-	call PrintText
-	ld bc, (HM_01 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedHM01Text
-	call PrintText
-	ld hl, $d803
-	set 0, [hl]
-	jr .asm_0faf5 ; 0x618d4
-.BagFull
-	ld hl, HM01NoRoomText
-	call PrintText
-	ld hl, $d72d
-	set 5, [hl]
-	jr .asm_0faf5 ; 0x618e1
-.asm_797c4 ; 0x618e3
-	ld hl, UnnamedText_61932
-	call PrintText
-.asm_0faf5 ; 0x618e9
-	jp TextScriptEnd
-
-SSAnne7RubText: ; 618ec (18:58ec)
-	TX_FAR _SSAnne7RubText
-	db $8
-	ld a, [$c0ef]
-	cp $1f
-	ld [$c0f0], a
-	jr nz, .asm_61908 ; 0x618f9 $d
-	ld a, $ff
-	ld [$c0ee], a
-	call PlaySound
-	ld a, Bank(Func_9876)
-	ld [$c0ef], a
-.asm_61908
-	ld a, MUSIC_PKMN_HEALED
-	ld [$c0ee], a
-	call PlaySound
-.asm_61910
-	ld a, [$c026]
-	cp MUSIC_PKMN_HEALED
-	jr z, .asm_61910 ; 0x61915 $f9
-	call Func_2307
-	ld hl, $d803
-	set 1, [hl]
-	ld hl, $d72d
-	res 5, [hl]
-	jp TextScriptEnd
-
-ReceivingHM01Text: ; 61927 (18:5927)
-	TX_FAR _ReceivingHM01Text
-	db "@"
-
-ReceivedHM01Text: ; 6192c (18:592c)
-	TX_FAR _ReceivedHM01Text
-	db $11, "@"
-
-UnnamedText_61932: ; 61932 (18:5932)
-	TX_FAR _UnnamedText_61932
-	db "@"
-
-HM01NoRoomText: ; 61937 (18:5937)
-	TX_FAR _HM01NoRoomText
-	db "@"
-
-SSAnne7Text2: ; 6193c (18:593c)
-	TX_FAR _SSAnne7Text2
-	db "@"
-
-SSAnne7Text3: ; 61941 (18:5941)
-	TX_FAR _SSAnne7Text3
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne7.asm"
 
 SSAnne7Blocks: ; 6195e (18:595e)
@@ -75332,171 +50444,8 @@
 
 INCLUDE "data/mapHeaders/ssanne8.asm"
 
-SSAnne8Script: ; 61976 (18:5976)
-	call EnableAutoTextBoxDrawing
-	ld hl, SSAnne8TrainerHeaders
-	ld de, SSAnne8ScriptPointers
-	ld a, [W_SSANNE8CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SSANNE8CURSCRIPT], a
-	ret
+INCLUDE "scripts/ssanne8.asm"
 
-SSAnne8ScriptPointers: ; 61989 (18:5989)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SSAnne8TextPointers: ; 6198f (18:598f)
-	dw SSAnne8Text1
-	dw SSAnne8Text2
-	dw SSAnne8Text3
-	dw SSAnne8Text4
-	dw SSAnne8Text5
-	dw SSAnne8Text6
-	dw SSAnne8Text7
-	dw SSAnne8Text8
-	dw SSAnne8Text9
-	dw Predef5CText
-	dw SSAnne8Text11
-
-SSAnne8TrainerHeaders: ; 619a5 (18:59a5)
-SSAnne8TrainerHeader0: ; 619a5 (18:59a5)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d805 ; flag's byte
-	dw SSAnne8BattleText1 ; 0x5a0b TextBeforeBattle
-	dw SSAnne8AfterBattleText1 ; 0x5a15 TextAfterBattle
-	dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
-	dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
-
-SSAnne8TrainerHeader1: ; 619b1 (18:59b1)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d805 ; flag's byte
-	dw SSAnne8BattleText2 ; 0x5a1a TextBeforeBattle
-	dw SSAnne8AfterBattleText2 ; 0x5a24 TextAfterBattle
-	dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
-	dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
-
-SSAnne8TrainerHeader2: ; 619bd (18:59bd)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d805 ; flag's byte
-	dw SSAnne8BattleText3 ; 0x5a29 TextBeforeBattle
-	dw SSAnne8AfterBattleText3 ; 0x5a33 TextAfterBattle
-	dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
-	dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
-
-SSAnne8TrainerHeader3: ; 619c9 (18:59c9)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d805 ; flag's byte
-	dw SSAnne8BattleText4 ; 0x5a38 TextBeforeBattle
-	dw SSAnne8AfterBattleText4 ; 0x5a42 TextAfterBattle
-	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
-	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
-
-	db $ff
-
-SSAnne8Text1: ; 619d6 (18:59d6)
-	db $08 ; asm
-	ld hl, SSAnne8TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne8Text2: ; 619e0 (18:59e0)
-	db $08 ; asm
-	ld hl, SSAnne8TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne8Text3: ; 619ea (18:59ea)
-	db $08 ; asm
-	ld hl, SSAnne8TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne8Text4: ; 619f4 (18:59f4)
-	db $08 ; asm
-	ld hl, SSAnne8TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne8Text8: ; 619fe (18:59fe)
-	TX_FAR _SSAnne8Text8
-	db $08 ; asm
-	ld a, WIGGLYTUFF
-	call PlayCry
-	jp TextScriptEnd
-
-SSAnne8BattleText1: ; 61a0b (18:5a0b)
-	TX_FAR _SSAnne8BattleText1
-	db "@"
-
-SSAnne8EndBattleText1: ; 61a10 (18:5a10)
-	TX_FAR _SSAnne8EndBattleText1
-	db "@"
-
-SSAnne8AfterBattleText1: ; 61a15 (18:5a15)
-	TX_FAR _SSAnne8AfterBattleText1
-	db "@"
-
-SSAnne8BattleText2: ; 61a1a (18:5a1a)
-	TX_FAR _SSAnne8BattleText2
-	db "@"
-
-SSAnne8EndBattleText2: ; 61a1f (18:5a1f)
-	TX_FAR _SSAnne8EndBattleText2
-	db "@"
-
-UnnamedText_61a24: ; 61a24 (18:5a24)
-	TX_FAR _UnnamedText_61a24
-	db "@"
-
-SSAnne8BattleText3: ; 61a29 (18:5a29)
-	TX_FAR _SSAnne8BattleText3
-	db "@"
-
-SSAnne8EndBattleText3: ; 61a2e (18:5a2e)
-	TX_FAR _SSAnne8EndBattleText3
-	db "@"
-
-SSAnne8AfterBattleText3: ; 61a33 (18:5a33)
-	TX_FAR _SSAnne8AfterBattleText3
-	db "@"
-
-SSAnne8BattleText4: ; 61a38 (18:5a38)
-	TX_FAR _SSAnne8BattleText4
-	db "@"
-
-SSAnne8EndBattleText4: ; 61a3d (18:5a3d)
-	TX_FAR _SSAnne8EndBattleText4
-	db "@"
-
-SSAnne8AfterBattleText4: ; 61a42 (18:5a42)
-	TX_FAR _SSAnne8AfterBattleText4
-	db "@"
-
-SSAnne8Text5: ; 61a47 (18:5a47)
-	TX_FAR _SSAnne8Text5
-	db "@"
-
-SSAnne8Text6: ; 61a4c (18:5a4c)
-	TX_FAR _SSAnne8Text6
-	db "@"
-
-SSAnne8Text7: ; 61a51 (18:5a51)
-	TX_FAR _SSAnne8Text7
-	db "@"
-
-SSAnne8Text9: ; 61a56 (18:5a56)
-	TX_FAR _SSAnne8Text9
-	db "@"
-
-SSAnne8Text11: ; 61a5b (18:5a5b)
-	TX_FAR _SSAnne8Text11
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne8.asm"
 
 SSAnne8Blocks: ; 61adf (18:5adf)
@@ -75504,460 +50453,32 @@
 
 INCLUDE "data/mapHeaders/ssanne9.asm"
 
-SSAnne9Script: ; 61b4b (18:5b4b)
-	ld a, $1
-	ld [$cf0c], a
-	xor a
-	ld [$cc3c], a
-	ld hl, SSAnne9TrainerHeaders
-	ld de, SSAnne9ScriptPointers
-	ld a, [W_SSANNE9CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SSANNE9CURSCRIPT], a
-	ret
+INCLUDE "scripts/ssanne9.asm"
 
-SSAnne9ScriptPointers: ; 61b64 (18:5b64)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SSAnne9TextPointers: ; 61b6a (18:5b6a)
-	dw SSAnne9Text1
-	dw SSAnne9Text2
-	dw SSAnne9Text3
-	dw SSAnne9Text4
-	dw SSAnne9Text5
-	dw Predef5CText
-	dw SSAnne9Text7
-	dw SSAnne9Text8
-	dw Predef5CText
-	dw SSAnne9Text10
-	dw SSAnne9Text11
-	dw SSAnne9Text12
-	dw SSAnne9Text13
-
-SSAnne9TrainerHeaders: ; 61b84 (18:5b84)
-SSAnne9TrainerHeader0: ; 61b84 (18:5b84)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d807 ; flag's byte
-	dw SSAnne9BattleText1 ; 0x5c51 TextBeforeBattle
-	dw SSAnne9AfterBattleText1 ; 0x5c5b TextAfterBattle
-	dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
-	dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
-
-SSAnne9TrainerHeader1: ; 61b90 (18:5b90)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d807 ; flag's byte
-	dw SSAnne9BattleText2 ; 0x5c60 TextBeforeBattle
-	dw SSAnne9AfterBattleText2 ; 0x5c6a TextAfterBattle
-	dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
-	dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
-
-SSAnne9TrainerHeader2: ; 61b9c (18:5b9c)
-	db $3 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d807 ; flag's byte
-	dw SSAnne9BattleText3 ; 0x5c6f TextBeforeBattle
-	dw SSAnne9AfterBattleText3 ; 0x5c79 TextAfterBattle
-	dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
-	dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
-
-SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d807 ; flag's byte
-	dw SSAnne9BattleText4 ; 0x5c7e TextBeforeBattle
-	dw SSAnne9AfterBattleText4 ; 0x5c88 TextAfterBattle
-	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
-	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
-
-	db $ff
-
-SSAnne9Text1: ; 61bb5 (18:5bb5)
-	db $08 ; asm
-	ld hl, SSAnne9TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne9Text2: ; 61bbf (18:5bbf)
-	db $08 ; asm
-	ld hl, SSAnne9TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne9Text3: ; 61bc9 (18:5bc9)
-	db $08 ; asm
-	ld hl, SSAnne9TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne9Text4: ; 61bd3 (18:5bd3)
-	db $08 ; asm
-	ld hl, SSAnne9TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne9Text5: ; 61bdd (18:5bdd)
-	db $08 ; asm
-	call SaveScreenTilesToBuffer1
-	ld hl, UnnamedText_61bf2
-	call PrintText
-	call LoadScreenTilesFromBuffer1
-	ld a, SNORLAX
-	call DisplayPokedex
-	jp TextScriptEnd
-
-UnnamedText_61bf2: ; 61bf2 (18:5bf2)
-	TX_FAR _UnnamedText_61bf2
-	db "@"
-
-SSAnne9Text7: ; 61bf7 (18:5bf7)
-	db $08 ; asm
-	ld hl, UnnamedText_61c01
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c01: ; 61c01 (18:5c01)
-	TX_FAR _UnnamedText_61c01
-	db "@"
-
-SSAnne9Text8: ; 61c06 (18:5c06)
-	db $08 ; asm
-	ld hl, UnnamedText_61c10
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c10: ; 61c10 (18:5c10)
-	TX_FAR _UnnamedText_61c10
-	db "@"
-
-SSAnne9Text10: ; 61c15 (18:5c15)
-	db $08 ; asm
-	ld hl, UnnamedText_61c1f
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c1f: ; 61c1f (18:5c1f)
-	TX_FAR _UnnamedText_61c1f
-	db "@"
-
-SSAnne9Text11: ; 61c24 (18:5c24)
-	db $08 ; asm
-	ld hl, UnnamedText_61c2e
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c2e: ; 61c2e (18:5c2e)
-	TX_FAR _UnnamedText_61c2e
-	db "@"
-
-SSAnne9Text12: ; 61c33 (18:5c33)
-	db $08 ; asm
-	ld hl, UnnamedText_61c3d
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c3d: ; 61c3d (18:5c3d)
-	TX_FAR _UnnamedText_61c3d
-	db "@"
-
-SSAnne9Text13: ; 61c42 (18:5c42)
-	db $08 ; asm
-	ld hl, UnnamedText_61c4c
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_61c4c: ; 61c4c (18:5c4c)
-	TX_FAR _UnnamedText_61c4c
-	db "@"
-
-SSAnne9BattleText1: ; 61c51 (18:5c51)
-	TX_FAR _SSAnne9BattleText1
-	db "@"
-
-SSAnne9EndBattleText1: ; 61c56 (18:5c56)
-	TX_FAR _SSAnne9EndBattleText1
-	db "@"
-
-SSAnne9AfterBattleText1: ; 61c5b (18:5c5b)
-	TX_FAR _SSAnne9AfterBattleText1
-	db "@"
-
-SSAnne9BattleText2: ; 61c60 (18:5c60)
-	TX_FAR _SSAnne9BattleText2
-	db "@"
-
-SSAnne9EndBattleText2: ; 61c65 (18:5c65)
-	TX_FAR _SSAnne9EndBattleText2
-	db "@"
-
-SSAnne9AfterBattleText2: ; 61c6a (18:5c6a)
-	TX_FAR _SSAnne9AfterBattleText2
-	db "@"
-
-SSAnne9BattleText3: ; 61c6f (18:5c6f)
-	TX_FAR _SSAnne9BattleText3
-	db "@"
-
-SSAnne9EndBattleText3: ; 61c74 (18:5c74)
-	TX_FAR _SSAnne9EndBattleText3
-	db "@"
-
-SSAnne9AfterBattleText3: ; 61c79 (18:5c79)
-	TX_FAR _SSAnne9AfterBattleText3
-	db "@"
-
-SSAnne9BattleText4: ; 61c7e (18:5c7e)
-	TX_FAR _SSAnne9BattleText4
-	db "@"
-
-SSAnne9EndBattleText4: ; 61c83 (18:5c83)
-	TX_FAR _SSAnne9EndBattleText4
-	db "@"
-
-SSAnne9AfterBattleText4: ; 61c88 (18:5c88)
-	TX_FAR _SSAnne9AfterBattleText4
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne9.asm"
 
 INCLUDE "data/mapHeaders/ssanne10.asm"
 
-SSAnne10Script: ; 61d55 (18:5d55)
-	call EnableAutoTextBoxDrawing
-	ld hl, SSAnne10TrainerHeaders
-	ld de, SSAnne10ScriptPointers
-	ld a, [W_SSANNE10CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SSANNE10CURSCRIPT], a
-	ret
+INCLUDE "scripts/ssanne10.asm"
 
-SSAnne10ScriptPointers: ; 61d68 (18:5d68)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-
-SSAnne10TextPointers: ; 61d6e (18:5d6e)
-	dw SSAnne10Text1
-	dw SSAnne10Text2
-	dw SSAnne10Text3
-	dw SSAnne10Text4
-	dw SSAnne10Text5
-	dw SSAnne10Text6
-	dw SSAnne10Text7
-	dw SSAnne10Text8
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
-SSAnne10TrainerHeaders: ; 61d84 (18:5d84)
-SSAnne10TrainerHeader0: ; 61d84 (18:5d84)
-	db $1 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText1 ; 0x5e16 TextBeforeBattle
-	dw SSAnne10AfterBattleText1 ; 0x5e20 TextAfterBattle
-	dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
-	dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
-
-SSAnne10TrainerHeader1: ; 61d90 (18:5d90)
-	db $2 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText2 ; 0x5e25 TextBeforeBattle
-	dw SSAnne10AfterBattleText2 ; 0x5e2f TextAfterBattle
-	dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
-	dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
-
-SSAnne10TrainerHeader2: ; 61d9c (18:5d9c)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText3 ; 0x5e34 TextBeforeBattle
-	dw SSAnne10AfterBattleText3 ; 0x5e3e TextAfterBattle
-	dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
-	dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
-
-SSAnne10TrainerHeader3: ; 61da8 (18:5da8)
-	db $4 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText4 ; 0x5e43 TextBeforeBattle
-	dw SSAnne10AfterBattleText4 ; 0x5e4d TextAfterBattle
-	dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
-	dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
-
-SSAnne10TrainerHeader4: ; 61db4 (18:5db4)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText5 ; 0x5e52 TextBeforeBattle
-	dw SSAnne10AfterBattleText5 ; 0x5e5c TextAfterBattle
-	dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
-	dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
-
-SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d809 ; flag's byte
-	dw SSAnne10BattleText6 ; 0x5e61 TextBeforeBattle
-	dw SSAnne10AfterBattleText6 ; 0x5e6b TextAfterBattle
-	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
-	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
-
-	db $ff
-
-SSAnne10Text1: ; 61dcd (18:5dcd)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text2: ; 61dd7 (18:5dd7)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text3: ; 61de1 (18:5de1)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text4: ; 61deb (18:5deb)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text5: ; 61df5 (18:5df5)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text6: ; 61dff (18:5dff)
-	db $08 ; asm
-	ld hl, SSAnne10TrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SSAnne10Text8: ; 61e09 (18:5e09)
-	TX_FAR _SSAnne10Text8
-	db $8 ; 0x61e0d
-	ld a, MACHOKE
-	call PlayCry
-	jp TextScriptEnd
-
-SSAnne10BattleText1: ; 61e16 (18:5e16)
-	TX_FAR _SSAnne10BattleText1
-	db "@"
-
-SSAnne10EndBattleText1: ; 61e1b (18:5e1b)
-	TX_FAR _SSAnne10EndBattleText1
-	db "@"
-
-SSAnne10AfterBattleText1: ; 61e20 (18:5e20)
-	TX_FAR _SSAnne10AfterBattleText1
-	db "@"
-
-SSAnne10BattleText2: ; 61e25 (18:5e25)
-	TX_FAR _SSAnne10BattleText2
-	db "@"
-
-SSAnne10EndBattleText2: ; 61e2a (18:5e2a)
-	TX_FAR _SSAnne10EndBattleText2
-	db "@"
-
-SSAnne10AfterBattleText2: ; 61e2f (18:5e2f)
-	TX_FAR _SSAnne10AfterBattleText2
-	db "@"
-
-SSAnne10BattleText3: ; 61e34 (18:5e34)
-	TX_FAR _SSAnne10BattleText3
-	db "@"
-
-SSAnne10EndBattleText3: ; 61e39 (18:5e39)
-	TX_FAR _SSAnne10EndBattleText3
-	db "@"
-
-SSAnne10AfterBattleText3: ; 61e3e (18:5e3e)
-	TX_FAR _SSAnne10AfterBattleText3
-	db "@"
-
-SSAnne10BattleText4: ; 61e43 (18:5e43)
-	TX_FAR _SSAnne10BattleText4
-	db "@"
-
-SSAnne10EndBattleText4: ; 61e48 (18:5e48)
-	TX_FAR _SSAnne10EndBattleText4
-	db "@"
-
-SSAnne10AfterBattleText4: ; 61e4d (18:5e4d)
-	TX_FAR _SSAnne10AfterBattleText4
-	db "@"
-
-SSAnne10BattleText5: ; 61e52 (18:5e52)
-	TX_FAR _SSAnne10BattleText5
-	db "@"
-
-SSAnne10EndBattleText5: ; 61e57 (18:5e57)
-	TX_FAR _SSAnne10EndBattleText5
-	db "@"
-
-SSAnne10AfterBattleText5: ; 61e5c (18:5e5c)
-	TX_FAR _SSAnne10AfterBattleText5
-	db "@"
-
-SSAnne10BattleText6: ; 61e61 (18:5e61)
-	TX_FAR _SSAnne10BattleText6
-	db "@"
-
-SSAnne10EndBattleText6: ; 61e66 (18:5e66)
-	TX_FAR _SSAnne10EndBattleText6
-	db "@"
-
-SSAnne10AfterBattleText6: ; 61e6b (18:5e6b)
-	TX_FAR _SSAnne10AfterBattleText6
-	db "@"
-
-SSAnne10Text7: ; 61e70 (18:5e70)
-	TX_FAR _SSAnne10Text7
-	db "@"
-
 INCLUDE "data/mapObjects/ssanne10.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathns.asm"
 
-UndergroundPathNSScript: ; 61f26 (18:5f26)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/undergroundpathns.asm"
 
-UndergroundPathNSTextPointers: ; 61f29 (18:5f29)
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathns.asm"
 
 INCLUDE "data/mapHeaders/undergroundpathwe.asm"
 
-UndergroundPathWEScript: ; 61f4a (18:5f4a)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/undergroundpathwe.asm"
 
-UndergroundPathWETextPointers: ; 61f4d (18:5f4d)
-	db "@"
-
 INCLUDE "data/mapObjects/undergroundpathwe.asm"
 
 INCLUDE "data/mapHeaders/diglettscave.asm"
 
-DiglettsCaveScript: ; 61f6e (18:5f6e)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/diglettscave.asm"
 
-DiglettsCaveTextPointers: ; 61f71 (18:5f71)
-	db "@"
-
 INCLUDE "data/mapObjects/diglettscave.asm"
 
 DiglettsCaveBlocks: ; 61f86 (18:5f86)
@@ -75965,376 +50486,8 @@
 
 INCLUDE "data/mapHeaders/silphco11.asm"
 
-SilphCo11Script: ; 620fa (18:60fa)
-	call SilphCo11Script_62110
-	call EnableAutoTextBoxDrawing
-	ld hl, SilphCo11TrainerHeaders
-	ld de, SilphCo11ScriptPointers
-	ld a, [W_SILPHCO11CURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_SILPHCO11CURSCRIPT], a
-	ret
+INCLUDE "scripts/silphco11.asm"
 
-SilphCo11Script_62110: ; 62110 (18:6110)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, DataTable_62134 ; $6134
-	call Func_62137
-	call Func_62163
-	ld a, [$d838]
-	bit 0, a
-	ret nz
-	ld a, $20
-	ld [$d09f], a
-	ld bc, $603
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-DataTable_62134: ; 62134 (18:6134)
-	db $06,$03,$FF
-
-Func_62137: ; 62137 (18:6137)
-	push hl
-	ld hl, $d73f
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	xor a
-	ld [$ffe0], a
-	pop hl
-.asm_62143
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_6215f
-	push hl
-	ld hl, $ffe0
-	inc [hl]
-	pop hl
-	cp b
-	jr z, .asm_62154
-	inc hl
-	jr .asm_62143
-.asm_62154
-	ld a, [hli]
-	cp c
-	jr nz, .asm_62143
-	ld hl, $d73f
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ret
-.asm_6215f
-	xor a
-	ld [$ffe0], a
-	ret
-
-Func_62163: ; 62163 (18:6163)
-	ld a, [$ffe0]
-	and a
-	ret z
-	ld hl, $d838
-	set 0, [hl]
-	ret
-
-Func_6216d: ; 6216d (18:616d)
-	ld hl, MissableObjectIDs_6219b ; $619b
-.asm_62170
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_62181
-	push hl
-	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	pop hl
-	jr .asm_62170
-.asm_62181
-	ld hl, MissableObjectIDs_62194 ; $6194
-.asm_62184
-	ld a, [hli]
-	cp $ff
-	ret z
-	push hl
-	ld [$cc4d], a
-	ld a, $15
-	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-	pop hl
-	jr .asm_62184
-
-MissableObjectIDs_62194: ; 62194 (18:6194)
-	db $11,$12,$13,$14,$15,$16,$FF
-
-MissableObjectIDs_6219b: ; 6219b (18:619b)
-	db $0A,$0B,$0C,$0D,$0E,$0F,$10,$17
-	db $18,$8A,$8B,$8C,$8D,$8E,$8F,$91
-	db $92,$93,$97,$98,$99,$9A,$9E,$9F
-	db $A0,$A3,$A4,$A5,$A6,$AB,$AC,$AD
-	db $AE,$AF,$B0,$B1,$B2,$B7,$B8,$B9
-	db $FF
-
-SilphCo11Script_621c4: ; 621c4 (18:61c4)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-
-SilphCo11Script_621c8: ; 621c8 (18:61c8)
-	ld [W_SILPHCO11CURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-SilphCo11ScriptPointers: ; 621cf (18:61cf)
-	dw SilphCo11Script0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw SilphCo11Script3
-	dw SilphCo11Script4
-	dw SilphCo11Script5
-
-SilphCo11Script0: ; 621db (18:61db)
-	ld a, [$d838]
-	bit 7, a
-	ret nz
-	ld hl, CoordsData_62211 ; $6211
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	ld a, [wWhichTrade] ; $cd3d
-	ld [$cf0d], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $3
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $3
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call SetSpriteMovementBytesToFF
-	ld de, MovementData_62216
-	call MoveSprite
-	ld a, $3
-	jp SilphCo11Script_621c8
-
-CoordsData_62211: ; 62211 (18:6211)
-	db $0D,$06
-	db $0C,$07
-	db $FF
-
-MovementData_62216: ; 62216 (18:6216)
-	db $00,$00,$00,$FF
-
-SilphCo11Script_6221a: ; 6221a (18:621a)
-	ld [$d528], a
-	ld a, $3
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	ld a, b
-	ld [$ff8d], a
-	jp Func_34a6
-
-SilphCo11Script5: ; 62227 (18:6227)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, SilphCo11Script_621c4
-	ld a, [$cf0d]
-	cp $1
-	jr z, .asm_6223c
-	ld a, $2
-	ld b, $c
-	jr .asm_62240
-.asm_6223c
-	ld a, $8
-	ld b, $0
-.asm_62240
-	call SilphCo11Script_6221a
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $6
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	call GBFadeIn1
-	call Func_6216d
-	call UpdateSprites
-	call Delay3
-	call GBFadeOut1
-	ld hl, $d838
-	set 7, [hl]
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	jp SilphCo11Script_621c8
-
-SilphCo11Script3: ; 6226a (18:626a)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $3
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call SetSpriteMovementBytesToFF
-	ld a, [$cf0d]
-	cp $1
-	jr z, .asm_62284
-	ld a, $2
-	ld b, $c
-	jr .asm_62288
-.asm_62284
-	ld a, $8
-	ld b, $0
-.asm_62288
-	call SilphCo11Script_6221a
-	call Delay3
-	ld a, $4
-	jp SilphCo11Script_621c8
-
-SilphCo11Script4: ; 62293 (18:6293)
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_62330 ; $6330
-	ld de, UnnamedText_62330 ; $6330
-	call PreBattleSaveRegisters
-	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $5
-	jp SilphCo11Script_621c8
-
-SilphCo11TextPointers: ; 622b7 (18:62b7)
-	dw SilphCo11Text1
-	dw SilphCo11Text2
-	dw SilphCo11Text3
-	dw SilphCo11Text4
-	dw SilphCo11Text5
-	dw SilphCo11Text6
-
-SilphCo11TrainerHeaders: ; 622c3 (18:62c3)
-SilphCo11TrainerHeader0: ; 622c3 (18:62c3)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d837 ; flag's byte
-	dw SilphCo11BattleText1 ; 0x6344 TextBeforeBattle
-	dw SilphCo11AfterBattleText1 ; 0x634e TextAfterBattle
-	dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
-	dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
-
-SilphCo11TrainerHeader1: ; 622cf (18:62cf)
-	db $5 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d837 ; flag's byte
-	dw SilphCo11BattleText2 ; 0x635d TextBeforeBattle
-	dw SilphCo11AfterBattleText2 ; 0x6367 TextAfterBattle
-	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
-	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
-
-	db $ff
-
-SilphCo11Text1: ; 622dc (18:62dc)
-	db $08 ; asm
-	ld a, [$d838]
-	bit 5, a
-	jp nz, .asm_62308
-	ld hl, SilphCoPresidentText
-	call PrintText
-	ld bc, (MASTER_BALL << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedSilphCoMasterBallText
-	call PrintText
-	ld hl, $d838
-	set 5, [hl]
-	jr .asm_fd405 ; 0x622fe
-.BagFull
-	ld hl, SilphCoMasterBallNoRoomText
-	call PrintText
-	jr .asm_fd405 ; 0x62306
-.asm_62308 ; 0x62308
-	ld hl, UnnamedText_6231c
-	call PrintText
-.asm_fd405 ; 0x6230e
-	jp TextScriptEnd
-
-SilphCoPresidentText: ; 62311 (18:6311)
-	TX_FAR _SilphCoPresidentText
-	db "@"
-
-ReceivedSilphCoMasterBallText: ; 62316 (18:6316)
-	TX_FAR _ReceivedSilphCoMasterBallText
-	db $11, "@"
-
-UnnamedText_6231c: ; 6231c (18:631c)
-	TX_FAR _UnnamedText_6231c
-	db "@"
-
-SilphCoMasterBallNoRoomText: ; 62321 (18:6321)
-	TX_FAR _SilphCoMasterBallNoRoomText
-	db "@"
-
-SilphCo11Text2: ; 62326 (18:6326)
-	TX_FAR _SilphCo11Text2
-	db "@"
-
-SilphCo11Text3: ; 6232b (18:632b)
-	TX_FAR _SilphCo11Text3
-	db "@"
-
-UnnamedText_62330: ; 62330 (18:6330)
-	TX_FAR _UnnamedText_62330
-	db "@"
-
-SilphCo11Text6: ; 62335 (18:6335)
-	TX_FAR _UnnamedText_62335
-	db "@"
-
-SilphCo11Text4: ; 6233a (18:633a)
-	db $08 ; asm
-	ld hl, SilphCo11TrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo11BattleText1: ; 62344 (18:6344)
-	TX_FAR _SilphCo11BattleText1
-	db "@"
-
-SilphCo11EndBattleText1: ; 62349 (18:6349)
-	TX_FAR _SilphCo11EndBattleText1
-	db "@"
-
-SilphCo11AfterBattleText1: ; 6234e (18:634e)
-	TX_FAR _SilphCo11AfterBattleText1
-	db "@"
-
-SilphCo11Text5: ; 62353 (18:6353)
-	db $08 ; asm
-	ld hl, SilphCo11TrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-SilphCo11BattleText2: ; 6235d (18:635d)
-	TX_FAR _SilphCo11BattleText2
-	db "@"
-
-SilphCo11EndBattleText2: ; 62362 (18:6362)
-	TX_FAR _SilphCo11EndBattleText2
-	db "@"
-
-SilphCo11AfterBattleText2: ; 62367 (18:6367)
-	TX_FAR _SilphCo11AfterBattleText2
-	db "@"
-
-UnnamedText_6236c: ; 6236c (18:636c)
-	db $8
-	ld hl, UnnamedText_6237b
-	call PrintText
-	ld a, PORYGON
-	call DisplayPokedex
-	jp TextScriptEnd
-
-UnnamedText_6237b: ; 6237b (18:637b)
-	TX_FAR _UnnamedText_6237b
-	db "@"
-
 INCLUDE "data/mapObjects/silphco11.asm"
 
 SilphCo11Blocks: ; 623c8 (18:63c8)
@@ -82265,521 +56418,8 @@
 
 INCLUDE "data/mapHeaders/viridiangym.asm"
 
-ViridianGymScript: ; 748a3 (1d:48a3)
-	ld hl, Gym8CityName
-	ld de, Gym8LeaderName
-	call LoadGymLeaderAndCityName
-	call EnableAutoTextBoxDrawing
-	ld hl, ViridianGymTrainerHeaders
-	ld de, ViridianGymScriptPointers
-	ld a, [W_VIRIDIANGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_VIRIDIANGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/viridiangym.asm"
 
-Gym8CityName: ; 748bf (1d:48bf)
-	db "VIRIDIAN CITY@"
-Gym8LeaderName: ; 748cd (1d:48cd)
-	db "GIOVANNI@"
-
-Func_748d6: ; 748d6 (1d:48d6)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_VIRIDIANGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-ViridianGymScriptPointers: ; 748e1 (1d:48e1)
-	dw ViridianGymScript0
-	dw Func_324c
-	dw EndTrainerBattle
-	dw ViridianGymScript3
-	dw ViridianGymScript4
-
-ViridianGymScript0: ; 748eb (1d:48eb)
-	ld a, [W_YCOORD] ; $d361
-	ld b, a
-	ld a, [W_XCOORD] ; $d362
-	ld c, a
-	ld hl, ViridianGymArrowTilePlayerMovement
-	call Func_3442
-	cp $ff
-	jp z, CheckFightingMapTrainers
-	call Func_3486
-	ld hl, $d736
-	set 7, [hl]
-	ld a, (SFX_02_52 - SFX_Headers_02) / 3
-	call PlaySound
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $4
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-;format:
-;db y,x
-;dw pointer to movement
-ViridianGymArrowTilePlayerMovement: ; 74916 (1d:4916)
-	db $b,$13
-	dw ViridianGymArrowMovement1
-	db $1,$13
-	dw ViridianGymArrowMovement2
-	db $2,$12
-	dw ViridianGymArrowMovement3
-	db $2,$b
-	dw ViridianGymArrowMovement4
-	db $a,$10
-	dw ViridianGymArrowMovement5
-	db $6,$4
-	dw ViridianGymArrowMovement6
-	db $d,$5
-	dw ViridianGymArrowMovement7
-	db $e,$4
-	dw ViridianGymArrowMovement8
-	db $f,$0
-	dw ViridianGymArrowMovement9
-	db $f,$1
-	dw ViridianGymArrowMovement10
-	db $10,$d
-	dw ViridianGymArrowMovement11
-	db $11,$d
-	dw ViridianGymArrowMovement12
-	db $FF
-
-;format: direction, count
-;right:	$10
-;left:	$20
-;up:	$40
-;down:	$80
-ViridianGymArrowMovement1: ; 74947 (1d:4947)
-	db $40,$09,$FF
-
-ViridianGymArrowMovement2: ; 7494a (1d:494a)
-	db $20,$08,$FF
-
-ViridianGymArrowMovement3: ; 7494d (1d:494d)
-	db $80,$09,$FF
-
-ViridianGymArrowMovement4: ; 74950 (1d:4950)
-	db $10,$06,$FF
-
-ViridianGymArrowMovement5: ; 74953 (1d:4953)
-	db $80,$02,$FF
-
-ViridianGymArrowMovement6: ; 74956 (1d:4956)
-	db $80,$07,$FF
-
-ViridianGymArrowMovement7: ; 74959 (1d:4959)
-	db $10,$08,$FF
-
-ViridianGymArrowMovement8: ; 7495c (1d:495c)
-	db $10,$09,$FF
-
-ViridianGymArrowMovement9: ; 7495f (1d:495f)
-	db $40,$08,$FF
-
-ViridianGymArrowMovement10: ; 74962 (1d:4962)
-	db $40,$06,$FF
-
-ViridianGymArrowMovement11: ; 74965 (1d:4965)
-	db $20,$06,$FF
-
-ViridianGymArrowMovement12: ; 74968 (1d:4968)
-	db $20,$0C,$FF
-
-ViridianGymScript4: ; 7496b (1d:496b)
-	ld a, [$cd38]
-	and a
-	jr nz, .asm_74980
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d736
-	res 7, [hl]
-	ld a, $0
-	ld [W_CURMAPSCRIPT], a
-	ret
-.asm_74980
-	ld b, BANK(LoadSpinnerArrowTiles)
-	ld hl, LoadSpinnerArrowTiles
-	jp Bankswitch
-
-ViridianGymScript3: ; 74988 (1d:4988)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_748d6
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-ViridianGymScript3_74995: ; 74995 (1d:4995)
-	ld a, $c
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d751
-	set 1, [hl]
-	ld bc, (TM_27 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $d
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d751
-	set 0, [hl]
-	jr .asm_749be
-.BagFull
-	ld a, $e
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_749be
-	ld hl, W_OBTAINEDBADGES
-	set 7, [hl]
-	ld hl, $d72a
-	set 7, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d751]
-	or %11111100
-	ld [$d751], a
-	ld a, [$d752]
-	or %00000011
-	ld [$d752], a
-
-	ld a, $23
-	ld [$cc4d], a
-	ld a, $15
-	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
-	ld hl, $d7eb
-	set 1, [hl]
-	set 7, [hl]
-	jp Func_748d6
-
-ViridianGymTextPointers: ; 749ec (1d:49ec)
-	dw ViridianGymText1
-	dw ViridianGymText2
-	dw ViridianGymText3
-	dw ViridianGymText4
-	dw ViridianGymText5
-	dw ViridianGymText6
-	dw ViridianGymText7
-	dw ViridianGymText8
-	dw ViridianGymText9
-	dw ViridianGymText10
-	dw Predef5CText
-	dw ViridianGymText12
-	dw ViridianGymText13
-	dw ViridianGymText14
-
-ViridianGymTrainerHeaders: ; 74a08 (1d:4a08)
-ViridianGymTrainerHeader0: ; 74a08 (1d:4a08)
-	db $2 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText1 ; 0x4afd TextBeforeBattle
-	dw ViridianGymAfterBattleText1 ; 0x4b07 TextAfterBattle
-	dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
-	dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
-
-ViridianGymTrainerHeader1: ; 74a14 (1d:4a14)
-	db $3 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText2 ; 0x4b16 TextBeforeBattle
-	dw ViridianGymAfterBattleText2 ; 0x4b20 TextAfterBattle
-	dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
-	dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
-
-ViridianGymTrainerHeader2: ; 74a20 (1d:4a20)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText3 ; 0x4b2f TextBeforeBattle
-	dw ViridianGymAfterBattleText3 ; 0x4b39 TextAfterBattle
-	dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
-	dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
-
-ViridianGymTrainerHeader3: ; 74a2c (1d:4a2c)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText4 ; 0x4b48 TextBeforeBattle
-	dw ViridianGymAfterBattleText4 ; 0x4b52 TextAfterBattle
-	dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
-	dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
-
-ViridianGymTrainerHeader4: ; 74a38 (1d:4a38)
-	db $6 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText5 ; 0x4b61 TextBeforeBattle
-	dw ViridianGymAfterBattleText5 ; 0x4b6b TextAfterBattle
-	dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
-	dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
-
-ViridianGymTrainerHeader5: ; 74a44 (1d:4a44)
-	db $7 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText6 ; 0x4b7a TextBeforeBattle
-	dw ViridianGymAfterBattleText6 ; 0x4b84 TextAfterBattle
-	dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
-	dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
-
-ViridianGymTrainerHeader6: ; 74a50 (1d:4a50)
-	db $8 ; flag's bit
-	db ($3 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText7 ; 0x4b93 TextBeforeBattle
-	dw ViridianGymAfterBattleText7 ; 0x4b9d TextAfterBattle
-	dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
-	dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
-
-ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c)
-	db $9 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d751 ; flag's byte
-	dw ViridianGymBattleText8 ; 0x4bac TextBeforeBattle
-	dw ViridianGymAfterBattleText8 ; 0x4bb6 TextAfterBattle
-	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
-	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
-
-	db $ff
-
-ViridianGymText1: ; 74a69 (1d:4a69)
-	db $08 ; asm
-	ld a, [$d751]
-	bit 1, a
-	jr z, .asm_6de66 ; 0x74a6f
-	bit 0, a
-	jr nz, .asm_9fc95 ; 0x74a73
-	call z, ViridianGymScript3_74995
-	call DisableWaitingAfterTextDisplay
-	jr .asm_6dff7 ; 0x74a7b
-.asm_9fc95 ; 0x74a7d
-	ld a, $1
-	ld [$cc3c], a
-	ld hl, UnnamedText_74ad9
-	call PrintText
-	call GBFadeIn1
-	ld a, $32
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	call UpdateSprites
-	call Delay3
-	call GBFadeOut1
-	jr .asm_6dff7 ; 0x74a9e
-.asm_6de66 ; 0x74aa0
-	ld hl, UnnamedText_74ace
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_74ad3
-	ld de, UnnamedText_74ad3
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $8
-	ld [$d05c], a
-	ld a, $3
-	ld [W_VIRIDIANGYMCURSCRIPT], a
-.asm_6dff7 ; 0x74acb
-	jp TextScriptEnd
-
-UnnamedText_74ace: ; 74ace (1d:4ace)
-	TX_FAR _UnnamedText_74ace
-	db "@"
-
-UnnamedText_74ad3: ; 74ad3 (1d:4ad3)
-	TX_FAR _UnnamedText_74ad3
-	db $0b, "@"
-
-UnnamedText_74ad9: ; 74ad9 (1d:4ad9)
-	TX_FAR _UnnamedText_74ad9
-	db $0d, "@"
-
-ViridianGymText12: ; 74adf (1d:4adf)
-	TX_FAR _ViridianGymText12
-	db "@"
-
-ViridianGymText13: ; 74ae4 (1d:4ae4)
-	TX_FAR _ReceivedTM27Text
-	db $0b
-
-TM27ExplanationText: ; 74ae9 (1d:4ae9)
-	TX_FAR _TM27ExplanationText
-	db "@"
-
-ViridianGymText14: ; 74aee (1d:4aee)
-	TX_FAR _TM27NoRoomText
-	db "@"
-
-ViridianGymText2: ; 74af3 (1d:4af3)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText1: ; 74afd (1d:4afd)
-	TX_FAR _ViridianGymBattleText1
-	db "@"
-
-ViridianGymEndBattleText1: ; 74b02 (1d:4b02)
-	TX_FAR _ViridianGymEndBattleText1
-	db "@"
-
-ViridianGymAfterBattleText1: ; 74b07 (1d:4b07)
-	TX_FAR _ViridianGymAfterBattleText1
-	db "@"
-
-ViridianGymText3: ; 74b0c (1d:4b0c)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader1
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText2: ; 74b16 (1d:4b16)
-	TX_FAR _ViridianGymBattleText2
-	db "@"
-
-ViridianGymEndBattleText2: ; 74b1b (1d:4b1b)
-	TX_FAR _ViridianGymEndBattleText2
-	db "@"
-
-ViridianGymAfterBattleText2: ; 74b20 (1d:4b20)
-	TX_FAR _ViridianGymAfterBattleText2
-	db "@"
-
-ViridianGymText4: ; 74b25 (1d:4b25)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText3: ; 74b2f (1d:4b2f)
-	TX_FAR _ViridianGymBattleText3
-	db "@"
-
-ViridianGymEndBattleText3: ; 74b34 (1d:4b34)
-	TX_FAR _ViridianGymEndBattleText3
-	db "@"
-
-ViridianGymAfterBattleText3: ; 74b39 (1d:4b39)
-	TX_FAR _ViridianGymAfterBattleText3
-	db "@"
-
-ViridianGymText5: ; 74b3e (1d:4b3e)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText4: ; 74b48 (1d:4b48)
-	TX_FAR _ViridianGymBattleText4
-	db "@"
-
-ViridianGymEndBattleText4: ; 74b4d (1d:4b4d)
-	TX_FAR _ViridianGymEndBattleText4
-	db "@"
-
-ViridianGymAfterBattleText4: ; 74b52 (1d:4b52)
-	TX_FAR _ViridianGymAfterBattleText4
-	db "@"
-
-ViridianGymText6: ; 74b57 (1d:4b57)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText5: ; 74b61 (1d:4b61)
-	TX_FAR _ViridianGymBattleText5
-	db "@"
-
-ViridianGymEndBattleText5: ; 74b66 (1d:4b66)
-	TX_FAR _ViridianGymEndBattleText5
-	db "@"
-
-ViridianGymAfterBattleText5: ; 74b6b (1d:4b6b)
-	TX_FAR _ViridianGymAfterBattleText5
-	db "@"
-
-ViridianGymText7: ; 74b70 (1d:4b70)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText6: ; 74b7a (1d:4b7a)
-	TX_FAR _ViridianGymBattleText6
-	db "@"
-
-ViridianGymEndBattleText6: ; 74b7f (1d:4b7f)
-	TX_FAR _ViridianGymEndBattleText6
-	db "@"
-
-ViridianGymAfterBattleText6: ; 74b84 (1d:4b84)
-	TX_FAR _ViridianGymAfterBattleText6
-	db "@"
-
-ViridianGymText8: ; 74b89 (1d:4b89)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText7: ; 74b93 (1d:4b93)
-	TX_FAR _ViridianGymBattleText7
-	db "@"
-
-ViridianGymEndBattleText7: ; 74b98 (1d:4b98)
-	TX_FAR _ViridianGymEndBattleText7
-	db "@"
-
-ViridianGymAfterBattleText7: ; 74b9d (1d:4b9d)
-	TX_FAR _ViridianGymAfterBattleText7
-	db "@"
-
-ViridianGymText9: ; 74ba2 (1d:4ba2)
-	db $08 ; asm
-	ld hl, ViridianGymTrainerHeader7
-	call TalkToTrainer
-	jp TextScriptEnd
-
-ViridianGymBattleText8: ; 74bac (1d:4bac)
-	TX_FAR _ViridianGymBattleText8
-	db "@"
-
-ViridianGymEndBattleText8: ; 74bb1 (1d:4bb1)
-	TX_FAR _ViridianGymEndBattleText8
-	db "@"
-
-ViridianGymAfterBattleText8: ; 74bb6 (1d:4bb6)
-	TX_FAR _ViridianGymAfterBattleText8
-	db "@"
-
-ViridianGymText10: ; 74bbb (1d:4bbb)
-	db $08 ; asm
-	ld a, [$d751]
-	bit 1, a
-	jr nz, .asm_1abd1 ; 0x74bc1
-	ld hl, UnnamedText_74bd4
-	call PrintText
-	jr .asm_6064d ; 0x74bc9
-.asm_1abd1 ; 0x74bcb
-	ld hl, UnnamedText_74bd9
-	call PrintText
-.asm_6064d ; 0x74bd1
-	jp TextScriptEnd
-
-UnnamedText_74bd4: ; 74bd4 (1d:4bd4)
-	TX_FAR _UnnamedText_74bd4
-	db "@"
-
-UnnamedText_74bd9: ; 74bd9 (1d:4bd9)
-	TX_FAR _UnnamedText_74bd9
-	db "@"
-
 INCLUDE "data/mapObjects/viridiangym.asm"
 
 ViridianGymBlocks: ; 74c47 (1d:4c47)
@@ -82787,49 +56427,14 @@
 
 INCLUDE "data/mapHeaders/pewtermart.asm"
 
-PewterMartScript: ; 74cad (1d:4cad)
-	call EnableAutoTextBoxDrawing
-	ld a, $1
-	ld [$cf0c], a
-	ret
+INCLUDE "scripts/pewtermart.asm"
 
-PewterMartTextPointers: ; 74cb6 (1d:4cb6)
-	dw PewterMartText1
-	dw PewterMartText2
-	dw PewterMartText3
-
-PewterMartText2: ; 74cbc (1d:4cbc)
-	db $08 ; asm
-	ld hl, UnnamedText_74cc6
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_74cc6: ; 74cc6 (1d:4cc6)
-	TX_FAR _UnnamedText_74cc6
-	db "@"
-
-PewterMartText3: ; 74ccb (1d:4ccb)
-	db $08 ; asm
-	ld hl, UnnamedText_74cd5
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_74cd5: ; 74cd5 (1d:4cd5)
-	TX_FAR _UnnamedText_74cd5
-	db "@"
-
 INCLUDE "data/mapObjects/pewtermart.asm"
 
 INCLUDE "data/mapHeaders/unknowndungeon1.asm"
 
-UnknownDungeon1Script: ; 74d0c (1d:4d0c)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/unknowndungeon1.asm"
 
-UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f)
-	dw Predef5CText
-	dw Predef5CText
-	dw Predef5CText
-
 INCLUDE "data/mapObjects/unknowndungeon1.asm"
 
 UnknownDungeon1Blocks: ; 74d76 (1d:4d76)
@@ -82837,116 +56442,8 @@
 
 INCLUDE "data/mapHeaders/ceruleanhouse2.asm"
 
-CeruleanHouse2Script: ; 74e09 (1d:4e09)
-	ld a, $1
-	ld [$cf0c], a
-	dec a
-	ld [$cc3c], a
-	ret
+INCLUDE "scripts/ceruleanhouse2.asm"
 
-CeruleanHouse2TextPointers: ; 74e13 (1d:4e13)
-	dw CeruleanHouse2Text1
-
-CeruleanHouse2Text1: ; 74e15 (1d:4e15)
-	db $8
-	ld hl, UnnamedText_74e77
-	call PrintText
-	xor a
-	ld [wCurrentMenuItem], a
-	ld [wListScrollOffset], a
-.asm_74e23
-	ld hl, UnnamedText_74e7c
-	call PrintText
-	ld hl, UnnamedText_74e6d
-	call LoadItemList
-	ld hl, $cf7b
-	ld a, l
-	ld [$cf8b], a
-	ld a, h
-	ld [$cf8c], a
-	xor a
-	ld [$cf93], a
-	ld [$cc35], a
-	ld a, SPECIALLISTMENU
-	ld [wListMenuID], a
-	call DisplayListMenuID
-	jr c, .asm_74e60 ; 0x74e49 $15
-	ld hl, Unknown_74e86
-	ld a, [$cf91]
-	sub $15
-	add a
-	ld d, $0
-	ld e, a
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call PrintText
-	jr .asm_74e23 ; 0x74e5e $c3
-.asm_74e60
-	xor a
-	ld [wListScrollOffset], a
-	ld hl, UnnamedText_74e81
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_74e6d: ; 74e6d (1d:4e6d)
-	db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF
-
-UnnamedText_74e77: ; 74e77 (1d:4e77)
-	TX_FAR _UnnamedText_74e77
-	db "@"
-
-UnnamedText_74e7c: ; 74e7c (1d:4e7c)
-	TX_FAR _UnnamedText_74e7c
-	db "@"
-
-UnnamedText_74e81: ; 74e81 (1d:4e81)
-	TX_FAR _UnnamedText_74e81
-	db "@"
-
-Unknown_74e86: ; 74e86 (1d:4e86)
-	dw UnnamedText_74e96
-	dw UnnamedText_74e9b
-	dw UnnamedText_74ea0
-	dw UnnamedText_74ea5
-	dw UnnamedText_74eaa
-	dw UnnamedText_74eaf
-	dw UnnamedText_74eb4
-	dw UnnamedText_74eb9
-
-UnnamedText_74e96: ; 74e96 (1d:4e96)
-	TX_FAR _UnnamedText_74e96
-	db "@"
-
-UnnamedText_74e9b: ; 74e9b (1d:4e9b)
-	TX_FAR _UnnamedText_74e9b
-	db "@"
-
-UnnamedText_74ea0: ; 74ea0 (1d:4ea0)
-	TX_FAR _UnnamedText_74ea0
-	db "@"
-
-UnnamedText_74ea5: ; 74ea5 (1d:4ea5)
-	TX_FAR _UnnamedText_74ea5
-	db "@"
-
-UnnamedText_74eaa: ; 74eaa (1d:4eaa)
-	TX_FAR _UnnamedText_74eaa
-	db "@"
-
-UnnamedText_74eaf: ; 74eaf (1d:4eaf)
-	TX_FAR _UnnamedText_74eaf
-	db "@"
-
-UnnamedText_74eb4: ; 74eb4 (1d:4eb4)
-	TX_FAR _UnnamedText_74eb4
-	db "@"
-
-UnnamedText_74eb9: ; 74eb9 (1d:4eb9)
-	TX_FAR _UnnamedText_74eb9
-	db "@"
-
 INCLUDE "data/mapObjects/ceruleanhouse2.asm"
 
 VendingMachineMenu: ; 74ee0 (1d:4ee0)
@@ -83090,178 +56587,20 @@
 
 INCLUDE "data/mapHeaders/fuchsiahouse1.asm"
 
-FuchsiaHouse1Script: ; 75018 (1d:5018)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/fuchsiahouse1.asm"
 
-FuchsiaHouse1TextPointers: ; 7501c (1d:501c)
-	dw FuchsiaHouse1Text1
-	dw FuchsiaHouse1Text2
-	dw FuchsiaHouse1Text3
-
-FuchsiaHouse1Text1: ; 75022 (1d:5022)
-	TX_FAR _FuchsiaHouse1Text1
-	db "@"
-
-FuchsiaHouse1Text2: ; 75027 (1d:5027)
-	TX_FAR _FuchsiaHouse1Text2
-	db "@"
-
-FuchsiaHouse1Text3: ; 7502c (1d:502c)
-	TX_FAR _FuchsiaHouse1Text3
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiahouse1.asm"
 
 INCLUDE "data/mapHeaders/fuchsiapokecenter.asm"
 
-FuchsiaPokecenterScript: ; 75063 (1d:5063)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/fuchsiapokecenter.asm"
 
-FuchsiaPokecenterTextPointers: ; 75069 (1d:5069)
-	dw FuchsiaPokecenterText1
-	dw FuchsiaPokecenterText2
-	dw FuchsiaPokecenterText3
-	dw FuchsiaPokecenterText4
-
-FuchsiaPokecenterText1: ; 75071 (1d:5071)
-	db $ff
-
-FuchsiaPokecenterText2: ; 75072 (1d:5072)
-	TX_FAR _FuchsiaPokecenterText1
-	db "@"
-
-FuchsiaPokecenterText3: ; 75077 (1d:5077)
-	TX_FAR _FuchsiaPokecenterText3
-	db "@"
-
-FuchsiaPokecenterText4: ; 7507c (1d:507c)
-	db $f6
-
 INCLUDE "data/mapObjects/fuchsiapokecenter.asm"
 
 INCLUDE "data/mapHeaders/fuchsiahouse2.asm"
 
-FuchsiaHouse2Script: ; 750b5 (1d:50b5)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/fuchsiahouse2.asm"
 
-FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8)
-	dw FuchsiaHouse2Text1
-	dw Predef5CText
-	dw BoulderText
-	dw FuchsiaHouse2Text4
-	dw FuchsiaHouse2Text5
-
-FuchsiaHouse2Text1: ; 750c2 (1d:50c2)
-	db $08 ; asm
-	ld a, [$d78e]
-	bit 0, a
-	jr nz, .subtract ; 0x750c8
-	ld b,GOLD_TEETH
-	call IsItemInBag
-	jr nz, .asm_3f30f ; 0x750cf
-	ld a, [$d78e]
-	bit 1, a
-	jr nz, .asm_60cba ; 0x750d6
-	ld hl, WardenGibberishText1
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	ld hl, WardenGibberishText3
-	jr nz, .asm_61238 ; 0x750e8
-	ld hl, WardenGibberishText2
-.asm_61238 ; 0x750ed
-	call PrintText
-	jr .asm_52039 ; 0x750f0
-.asm_3f30f ; 0x750f2
-	ld hl, WardenTeethText1
-	call PrintText
-	ld a, GOLD_TEETH
-	ldh [$db], a
-	ld b, BANK(RemoveItemByID)
-	ld hl, RemoveItemByID
-	call Bankswitch
-	ld hl, $d78e
-	set 1, [hl]
-.asm_60cba ; 0x75109
-	ld hl, WardenThankYouText
-	call PrintText
-	ld bc,(HM_04 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedHM04Text
-	call PrintText
-	ld hl, $d78e
-	set 0, [hl]
-	jr .asm_52039 ; 0x75122
-.subtract ; 0x75124
-	ld hl, HM04ExplanationText
-	call PrintText
-	jr .asm_52039 ; 0x7512a
-.BagFull
-	ld hl, HM04NoRoomText
-	call PrintText
-.asm_52039 ; 0x75132
-	jp TextScriptEnd
-
-WardenGibberishText1: ; 75135 (1d:5135)
-	TX_FAR _WardenGibberishText1
-	db "@"
-
-WardenGibberishText2: ; 7513a (1d:513a)
-	TX_FAR _WardenGibberishText2
-	db "@"
-
-WardenGibberishText3: ; 7513f (1d:513f)
-	TX_FAR _WardenGibberishText3
-	db "@"
-
-WardenTeethText1: ; 75144 (1d:5144)
-	TX_FAR _WardenTeethText1
-	db $0b
-
-WardenTeethText2: ; 75149 (1d:5149)
-	TX_FAR _WardenTeethText2
-	db "@"
-
-WardenThankYouText: ; 7514e (1d:514e)
-	TX_FAR _WardenThankYouText
-	db "@"
-
-ReceivedHM04Text: ; 75153 (1d:5153)
-	TX_FAR _ReceivedHM04Text
-	db $0B, "@"
-
-HM04ExplanationText: ; 75159 (1d:5159)
-	TX_FAR _HM04ExplanationText
-	db "@"
-
-HM04NoRoomText: ; 7515e (1d:515e)
-	TX_FAR _HM04NoRoomText
-	db "@"
-
-FuchsiaHouse2Text5: ; 75163 (1d:5163)
-FuchsiaHouse2Text4: ; 75163 (1d:5163)
-	db $08 ; asm
-	ldh a, [$8c]
-	cp $4
-	ld hl, UnnamedText_7517b
-	jr nz, .asm_4c9a2 ; 0x7516b
-	ld hl, UnnamedText_75176
-.asm_4c9a2 ; 0x75170
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75176: ; 75176 (1d:5176)
-	TX_FAR _UnnamedText_75176
-	db "@"
-
-UnnamedText_7517b: ; 7517b (1d:517b)
-	TX_FAR _UnnamedText_7517b
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiahouse2.asm"
 
 FuchsiaHouse2Blocks: ; 751ad (1d:51ad)
@@ -83269,307 +56608,8 @@
 
 INCLUDE "data/mapHeaders/safarizoneentrance.asm"
 
-SafariZoneEntranceScript: ; 751cd (1d:51cd)
-	call EnableAutoTextBoxDrawing
-	ld hl, SafariZoneEntranceScriptPointers
-	ld a, [W_SAFARIZONEENTRANCECURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/safarizoneentrance.asm"
 
-SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
-	dw SafariZoneEntranceScript0
-	dw SafariZoneEntranceScript1
-	dw SafariZoneEntranceScript2
-	dw SafariZoneEntranceScript3
-	dw SafariZoneEntranceScript4
-	dw SafariZoneEntranceScript5
-	dw SafariZoneEntranceScript6
-
-SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
-	ld hl, CoordsData_75221
-	call ArePlayerCoordsInArray
-	ret nc
-	ld a, $3
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $c
-	ld [$c109], a
-	ld a, [$cd3d]
-	cp $1
-	jr z, .asm_7520f ; 0x75207 $6
-	ld a, $2
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	ret
-.asm_7520f
-	ld a, $10
-	ld c, $1
-	call Func_752a3
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	ret
-
-CoordsData_75221: ; 75221 (1d:5221)
-	db $02,$03
-	db $02,$04
-	db $FF
-
-SafariZoneEntranceScript1: ; 75226 (1d:5226)
-	call Func_752b4
-	ret nz
-SafariZoneEntranceScript2: ; 7522a (1d:522a)
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [wJoypadForbiddenButtonsMask], a
-	call UpdateSprites
-	ld a, $4
-	ld [$ff8c], a
-	call DisplayTextID
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-
-SafariZoneEntranceScript3: ; 75240 (1d:5240)
-	call Func_752b4
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $5
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	ret
-
-SafariZoneEntranceScript5: ; 7524e (1d:524e)
-	ld a, $4
-	ld [$d528], a
-	ld hl, $d790
-	bit 6, [hl]
-	res 6, [hl]
-	jr z, .asm_7527f ; 0x7525a $23
-	res 7, [hl]
-	call UpdateSprites
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $6
-	ld [$ff8c], a
-	call DisplayTextID
-	xor a
-	ld [$da47], a
-	ld a, $80
-	ld c, $3
-	call Func_752a3
-	ld a, $4
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	jr .asm_75286 ; 0x7527d $7
-.asm_7527f
-	ld a, $5
-	ld [$ff8c], a
-	call DisplayTextID
-.asm_75286
-	ret
-
-SafariZoneEntranceScript4: ; 75287 (1d:5287)
-	call Func_752b4
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	ret
-
-SafariZoneEntranceScript6: ; 75295 (1d:5295)
-	call Func_752b4
-	ret nz
-	call Delay3
-	ld a, [$cf0d]
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	ret
-
-Func_752a3: ; 752a3 (1d:52a3)
-	push af
-	ld b, $0
-	ld a, c
-	ld [$cd38], a
-	ld hl, $ccd3
-	pop af
-	call FillMemory
-	jp Func_3486
-
-Func_752b4: ; 752b4 (1d:52b4)
-	ld a, [$cd38]
-	and a
-	ret
-
-SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
-	dw SafariZoneEntranceText1
-	dw SafariZoneEntranceText2
-	dw SafariZoneEntranceText3
-	dw SafariZoneEntranceText4
-	dw SafariZoneEntranceText5
-	dw SafariZoneEntranceText6
-
-SafariZoneEntranceText3: ; 752c5 (1d:52c5)
-SafariZoneEntranceText1: ; 752c5 (1d:52c5)
-	TX_FAR _SafariZoneEntranceText1
-	db "@"
-
-SafariZoneEntranceText4: ; 752ca (1d:52ca)
-	TX_FAR UnnamedText_9e6e4 ; 0x9e6e4
-	db $8
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jp nz, .asm_75346
-	xor a
-	ld [$ff9f], a
-	ld a, $5
-	ld [$ffa0], a
-	ld a, $0
-	ld [$ffa1], a
-	call HasEnoughMoney
-	jr nc, .asm_752f9 ; 0x752ef $8
-	ld hl, UnnamedText_7536a
-	call PrintText
-	jr .asm_7534c ; 0x752f7 $53
-.asm_752f9
-	xor a
-	ld [$cd3d], a
-	ld a, $5
-	ld [$cd3e], a
-	ld a, $0
-	ld [$cd3f], a
-	ld hl, $cd3f
-	ld de, $d349
-	ld c, $3
-	ld a, $c
-	call Predef
-	ld a, $13
-	ld [$d125], a
-	call DisplayTextBoxID
-	ld hl, UnnamedText_7535b
-	call PrintText
-	ld a, $1e
-	ld [$da47], a
-	ld a, 502 / $100
-	ld [wSafariSteps], a
-	ld a, 502 % $100
-	ld [wSafariSteps + 1], a
-	ld a, $40
-	ld c, $3
-	call Func_752a3
-	ld hl, $d790
-	set 7, [hl]
-	res 6, [hl]
-	ld a, $3
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	jr .asm_75358 ; 0x75344 $12
-.asm_75346
-	ld hl, UnnamedText_75365
-	call PrintText
-.asm_7534c
-	ld a, $80
-	ld c, $1
-	call Func_752a3
-	ld a, $4
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-.asm_75358
-	jp TextScriptEnd
-
-UnnamedText_7535b: ; 7535b (1d:535b)
-	TX_FAR UnnamedText_9e747 ; 0x9e747
-	db $0B
-
-UnnamedText_75360: ; 75360 (1d:5360)
-	TX_FAR _UnnamedText_75360
-	db "@"
-
-UnnamedText_75365: ; 75365 (1d:5365)
-	TX_FAR _UnnamedText_75365
-	db "@"
-
-UnnamedText_7536a: ; 7536a (1d:536a)
-	TX_FAR _UnnamedText_7536a
-	db "@"
-
-SafariZoneEntranceText5: ; 7536f (1d:536f)
-	TX_FAR UnnamedText_9e814 ; 0x9e814
-	db $8
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	jr nz, .asm_7539c ; 0x7537b $1f
-	ld hl, UnnamedText_753bb
-	call PrintText
-	xor a
-	ld [$c109], a
-	ld a, $80
-	ld c, $3
-	call Func_752a3
-	ld hl, $d790
-	res 6, [hl]
-	res 7, [hl]
-	ld a, $0
-	ld [$cf0d], a
-	jr .asm_753b3 ; 0x7539a $17
-.asm_7539c
-	ld hl, UnnamedText_753c0
-	call PrintText
-	ld a, $4
-	ld [$c109], a
-	ld a, $40
-	ld c, $1
-	call Func_752a3
-	ld a, $5
-	ld [$cf0d], a
-.asm_753b3
-	ld a, $6
-	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
-	jp TextScriptEnd
-
-UnnamedText_753bb: ; 753bb (1d:53bb)
-	TX_FAR _UnnamedText_753bb
-	db "@"
-
-UnnamedText_753c0: ; 753c0 (1d:53c0)
-	TX_FAR _UnnamedText_753c0
-	db "@"
-
-SafariZoneEntranceText6: ; 753c5 (1d:53c5)
-	TX_FAR _UnnamedText_753c5
-	db "@"
-
-SafariZoneEntranceText2: ; 753ca (1d:53ca)
-	db $08 ; asm
-	ld hl, UnnamedText_753e6
-	call PrintText
-	call YesNoChoice
-	ld a, [$cc26]
-	and a
-	ld hl, UnnamedText_753f0
-	jr nz, .asm_278a6 ; 0x753db
-	ld hl, UnnamedText_753eb
-.asm_278a6 ; 0x753e0
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_753e6: ; 753e6 (1d:53e6)
-	TX_FAR _UnnamedText_753e6
-	db "@"
-
-UnnamedText_753eb: ; 753eb (1d:53eb)
-	TX_FAR _UnnamedText_753eb
-	db "@"
-
-UnnamedText_753f0: ; 753f0 (1d:53f0)
-	TX_FAR _UnnamedText_753f0
-	db "@"
-
 INCLUDE "data/mapObjects/safarizoneentrance.asm"
 
 SafariZoneEntranceBlocks: ; 75425 (1d:5425)
@@ -83577,343 +56617,8 @@
 
 INCLUDE "data/mapHeaders/fuchsiagym.asm"
 
-FuchsiaGymScript: ; 7543d (1d:543d)
-	call FuchsiaGymScript_75453
-	call EnableAutoTextBoxDrawing
-	ld hl, FuchsiaGymTrainerHeaders
-	ld de, FuchsiaGymScriptPointers
-	ld a, [W_FUCHSIAGYMCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_FUCHSIAGYMCURSCRIPT], a
-	ret
+INCLUDE "scripts/fuchsiagym.asm"
 
-FuchsiaGymScript_75453: ; 75453 (1d:5453)
-	ld hl, $D126
-	bit 6, [hl]
-	res 6, [hl]
-	ret z
-	ld hl, Gym5CityName
-	ld de, Gym5LeaderName
-	call LoadGymLeaderAndCityName
-	ret
-
-Gym5CityName: ; 75465 (1d:5465)
-	db "FUCHSIA CITY@"
-Gym5LeaderName: ; 75472 (1d:5472)
-	db "KOGA@"
-
-Func_75477: ; 75477 (1d:5477)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_FUCHSIAGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-FuchsiaGymScriptPointers: ; 75482 (1d:5482)
-	dw CheckFightingMapTrainers
-	dw Func_324c
-	dw EndTrainerBattle
-	dw FuchsiaGymScript3
-
-FuchsiaGymScript3: ; 7548a (1d:548a)
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_75477
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-FuchsiaGymScript3_75497: ; 75497 (1d:5497)
-	ld a, $9
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d792
-	set 1, [hl]
-	ld bc, (TM_06 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $a
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld hl, $d792
-	set 0, [hl]
-	jr .asm_754c0
-.BagFull
-	ld a, $b
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-.asm_754c0
-	ld hl, W_OBTAINEDBADGES
-	set 4, [hl]
-	ld hl, $d72a
-	set 4, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d792]
-	or %11111100
-	ld [$d792], a
-
-	jp Func_75477
-
-FuchsiaGymTextPointers: ; 754d5 (1d:54d5)
-	dw FuchsiaGymText1
-	dw FuchsiaGymText2
-	dw FuchsiaGymText3
-	dw FuchsiaGymText4
-	dw FuchsiaGymText5
-	dw FuchsiaGymText6
-	dw FuchsiaGymText7
-	dw FuchsiaGymText8
-	dw FuchsiaGymText9
-	dw FuchsiaGymText10
-	dw FuchsiaGymText11
-
-FuchsiaGymTrainerHeaders: ; 754eb (1d:54eb)
-FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb)
-	db $2 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText1 ; 0x55ae TextBeforeBattle
-	dw FuchsiaGymAfterBattleText1 ; 0x55b8 TextAfterBattle
-	dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
-	dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
-
-FuchsiaGymTrainerHeader2: ; 754f7 (1d:54f7)
-	db $3 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText2 ; 0x55c7 TextBeforeBattle
-	dw FuchsiaGymAfterBattleText2 ; 0x55d1 TextAfterBattle
-	dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
-	dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
-
-FuchsiaGymTrainerHeader3: ; 75503 (1d:5503)
-	db $4 ; flag's bit
-	db ($4 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText3 ; 0x55e0 TextBeforeBattle
-	dw FuchsiaGymAfterBattleText3 ; 0x55ea TextAfterBattle
-	dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
-	dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
-
-FuchsiaGymTrainerHeader4: ; 7550f (1d:550f)
-	db $5 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText4 ; 0x55f9 TextBeforeBattle
-	dw FuchsiaGymAfterBattleText4 ; 0x5603 TextAfterBattle
-	dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
-	dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
-
-FuchsiaGymTrainerHeader5: ; 7551b (1d:551b)
-	db $6 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText5 ; 0x5612 TextBeforeBattle
-	dw FuchsiaGymAfterBattleText5 ; 0x561c TextAfterBattle
-	dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
-	dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
-
-FuchsiaGymTrainerHeader6: ; 75527 (1d:5527)
-	db $7 ; flag's bit
-	db ($2 << 4) ; trainer's view range
-	dw $d792 ; flag's byte
-	dw FuchsiaGymBattleText6 ; 0x562b TextBeforeBattle
-	dw FuchsiaGymAfterBattleText6 ; 0x5635 TextAfterBattle
-	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
-	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
-
-	db $ff
-
-FuchsiaGymText1: ; 75534 (1d:5534)
-	db $08 ; asm
-	ld a, [$d792]
-	bit 1, a
-	jr z, .asm_181b6 ; 0x7553a
-	bit 0, a
-	jr nz, .asm_adc3b ; 0x7553e
-	call z, FuchsiaGymScript3_75497
-	call DisableWaitingAfterTextDisplay
-	jr .asm_e84c6 ; 0x75546
-.asm_adc3b ; 0x75548
-	ld hl, UnnamedText_7558b
-	call PrintText
-	jr .asm_e84c6 ; 0x7554e
-.asm_181b6 ; 0x75550
-	ld hl, UnnamedText_75581
-	call PrintText
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_75586
-	ld de, UnnamedText_75586
-	call PreBattleSaveRegisters
-	ldh a, [$8c]
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld a, $5
-	ld [$d05c], a
-	xor a
-	ldh [$b4], a
-	ld a, $3
-	ld [W_FUCHSIAGYMCURSCRIPT], a
-.asm_e84c6 ; 0x7557e
-	jp TextScriptEnd
-
-UnnamedText_75581: ; 75581 (1d:5581)
-	TX_FAR _UnnamedText_75581
-	db "@"
-
-UnnamedText_75586: ; 75586 (1d:5586)
-	TX_FAR _UnnamedText_75586
-	db "@"
-
-UnnamedText_7558b: ; 7558b (1d:558b)
-	TX_FAR _UnnamedText_7558b
-	db "@"
-
-FuchsiaGymText9: ; 75590 (1d:5590)
-	TX_FAR _UnnamedText_75590
-	db "@"
-
-FuchsiaGymText10: ; 75595 (1d:5595)
-	TX_FAR _ReceivedTM06Text
-	db $11
-
-TM06ExplanationText: ; 7559a (1d:559a)
-	TX_FAR _TM06ExplanationText
-	db "@"
-
-FuchsiaGymText11: ; 7559f (1d:559f)
-	TX_FAR _TM06NoRoomText
-	db "@"
-
-FuchsiaGymText2: ; 755a4 (1d:55a4)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText1: ; 755ae (1d:55ae)
-	TX_FAR _FuchsiaGymBattleText1
-	db "@"
-
-FuchsiaGymEndBattleText1: ; 755b3 (1d:55b3)
-	TX_FAR _FuchsiaGymEndBattleText1
-	db "@"
-
-FuchsiaGymAfterBattleText1: ; 755b8 (1d:55b8)
-	TX_FAR _FuchsiaGymAfterBattleText1
-	db "@"
-
-FuchsiaGymText3: ; 755bd (1d:55bd)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader2
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText2: ; 755c7 (1d:55c7)
-	TX_FAR _FuchsiaGymBattleText2
-	db "@"
-
-FuchsiaGymEndBattleText2: ; 755cc (1d:55cc)
-	TX_FAR _FuchsiaGymEndBattleText2
-	db "@"
-
-FuchsiaGymAfterBattleText2: ; 755d1 (1d:55d1)
-	TX_FAR _FuchsiaGymAfterBattleText2
-	db "@"
-
-FuchsiaGymText4: ; 755d6 (1d:55d6)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader3
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText3: ; 755e0 (1d:55e0)
-	TX_FAR _FuchsiaGymBattleText3
-	db "@"
-
-FuchsiaGymEndBattleText3: ; 755e5 (1d:55e5)
-	TX_FAR _FuchsiaGymEndBattleText3
-	db "@"
-
-FuchsiaGymAfterBattleText3: ; 755ea (1d:55ea)
-	TX_FAR _FuchsiaGymAfterBattleText3
-	db "@"
-
-FuchsiaGymText5: ; 755ef (1d:55ef)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader4
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText4: ; 755f9 (1d:55f9)
-	TX_FAR _FuchsiaGymBattleText4
-	db "@"
-
-FuchsiaGymEndBattleText4: ; 755fe (1d:55fe)
-	TX_FAR _FuchsiaGymEndBattleText4
-	db "@"
-
-FuchsiaGymAfterBattleText4: ; 75603 (1d:5603)
-	TX_FAR _FuchsiaGymAfterBattleText4
-	db "@"
-
-FuchsiaGymText6: ; 75608 (1d:5608)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader5
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText5: ; 75612 (1d:5612)
-	TX_FAR _FuchsiaGymBattleText5
-	db "@"
-
-FuchsiaGymEndBattleText5: ; 75617 (1d:5617)
-	TX_FAR _FuchsiaGymEndBattleText5
-	db "@"
-
-FuchsiaGymAfterBattleText5: ; 7561c (1d:561c)
-	TX_FAR _FuchsiaGymAfterBattleText5
-	db "@"
-
-FuchsiaGymText7: ; 75621 (1d:5621)
-	db $08 ; asm
-	ld hl, FuchsiaGymTrainerHeader6
-	call TalkToTrainer
-	jp TextScriptEnd
-
-FuchsiaGymBattleText6: ; 7562b (1d:562b)
-	TX_FAR _FuchsiaGymBattleText6
-	db "@"
-
-FuchsiaGymEndBattleText6: ; 75630 (1d:5630)
-	TX_FAR _FuchsiaGymEndBattleText6
-	db "@"
-
-FuchsiaGymAfterBattleText6: ; 75635 (1d:5635)
-	TX_FAR _FuchsiaGymAfterBattleText6
-	db "@"
-
-FuchsiaGymText8: ; 7563a (1d:563a)
-	db $08 ; asm
-	ld a, [$d792]
-	bit 1, a
-	ld hl, UnnamedText_75653
-	jr nz, .asm_50671 ; 0x75643
-	ld hl, UnnamedText_7564e
-.asm_50671 ; 0x75648
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_7564e: ; 7564e (1d:564e)
-	TX_FAR _UnnamedText_7564e
-	db "@"
-
-UnnamedText_75653: ; 75653 (1d:5653)
-	TX_FAR _UnnamedText_75653
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiagym.asm"
 
 FuchsiaGymBlocks: ; 756aa (1d:56aa)
@@ -83921,27 +56626,8 @@
 
 INCLUDE "data/mapHeaders/fuchsiameetingroom.asm"
 
-FuchsiaMeetingRoomScript: ; 756e3 (1d:56e3)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/fuchsiameetingroom.asm"
 
-FuchsiaMeetingRoomTextPointers: ; 756e7 (1d:56e7)
-	dw FuchsiaMeetingRoomText1
-	dw FuchsiaMeetingRoomText2
-	dw FuchsiaMeetingRoomText3
-
-FuchsiaMeetingRoomText1: ; 756ed (1d:56ed)
-	TX_FAR _FuchsiaMeetingRoomText1
-	db "@"
-
-FuchsiaMeetingRoomText2: ; 756f2 (1d:56f2)
-	TX_FAR _FuchsiaMeetingRoomText2
-	db "@"
-
-FuchsiaMeetingRoomText3: ; 756f7 (1d:56f7)
-	TX_FAR _FuchsiaMeetingRoomText3
-	db "@"
-
 INCLUDE "data/mapObjects/fuchsiameetingroom.asm"
 
 FuchsiaMeetingRoomBlocks: ; 75722 (1d:5722)
@@ -83949,490 +56635,8 @@
 
 INCLUDE "data/mapHeaders/cinnabargym.asm"
 
-CinnabarGymScript: ; 7574a (1d:574a)
-	call CinnabarGymScript_75759
-	call EnableAutoTextBoxDrawing
-	ld hl, CinnabarGymScriptPointers
-	ld a, [W_CINNABARGYMCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/cinnabargym.asm"
 
-CinnabarGymScript_75759: ; 75759 (1d:5759)
-	ld hl, $D126
-	bit 6, [hl]
-	res 6, [hl]
-	push hl
-	call nz, CinnabarGymScript_75772
-	pop hl
-	bit 5, [hl]
-	res 5, [hl]
-	call nz, Func_3ead
-	ld hl, $D79B
-	res 7, [hl]
-	ret
-CinnabarGymScript_75772: ; 75772 (1d:5772)
-	ld hl, Gym7CityName
-	ld de, Gym7LeaderName
-	jp LoadGymLeaderAndCityName
-
-Gym7CityName: ; 7577b (1d:577b)
-	db "CINNABAR ISLAND@"
-Gym7LeaderName: ; 7578b (1d:578b)
-	db "BLAINE@"
-
-CinnabarGymScript_75792: ; 75792 (1d:5792)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_CINNABARGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ld [$da38], a
-	ret
-
-CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
-	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
-	ld [wTrainerHeaderFlagBit], a
-	ret
-
-CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
-	dw CinnabarGymScript0
-	dw CinnabarGymScript1
-	dw CinnabarGymScript2
-	dw CinnabarGymScript3
-
-CinnabarGymScript0: ; 757ae (1d:57ae)
-	ld a, [$da38]
-	and a
-	ret z
-	ld [$ff8c], a
-	cp $4
-	jr nz, .asm_757c3 ; 0x757b7 $a
-	ld a, $4
-	ld [$d528], a
-	ld de, MovementData_757d7
-	jr .asm_757cb ; 0x757c1 $8
-.asm_757c3
-	ld de, MovementData_757da
-	ld a, $1
-	ld [$d528], a
-.asm_757cb
-	call MoveSprite
-	ld a, $1
-	ld [W_CINNABARGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-MovementData_757d7: ; 757d7 (1d:57d7)
-	db $80,$40,$FF
-
-MovementData_757da: ; 757da (1d:57da)
-	db $80,$FF
-
-CinnabarGymScript1: ; 757dc (1d:57dc)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, [$da38]
-	ld [wTrainerHeaderFlagBit], a
-	ld [$ff8c], a
-	jp DisplayTextID
-
-Func_757f1: ; 757f1 (1d:57f1)
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
-
-CinnabarGymScript2: ; 757f6 (1d:57f6)
-	ld a, [$d057]
-	cp $ff
-	jp z, CinnabarGymScript_75792
-	ld a, [wTrainerHeaderFlagBit]
-	ld [$ffdb], a
-	ld c, a
-	ld b, $2
-	ld hl, $d79a
-	call Func_757f1
-	ld a, c
-	and a
-	jr nz, .asm_7581b ; 0x7580e $b
-	call WaitForSoundToFinish
-	ld a, (SFX_02_57 - SFX_Headers_02) / 3
-	call PlaySound
-	call WaitForSoundToFinish
-.asm_7581b
-	ld a, [wTrainerHeaderFlagBit]
-	ld [$ffdb], a
-	ld c, a
-	ld b, $1
-	ld hl, $d79a
-	call Func_757f1
-	ld a, [wTrainerHeaderFlagBit]
-	sub $2
-	ld c, a
-	ld b, $1
-	ld hl, $d79c
-	call Func_757f1
-	call Func_3ead
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [$da38], a
-	ld a, $0
-	ld [W_CINNABARGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CinnabarGymScript3: ; 7584a (1d:584a)
-	ld a, [$d057]
-	cp $ff
-	jp z, CinnabarGymScript_75792
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-CinnabarGymScript3_75857: ; 75857 (1d:5857)
-	ld a, $a
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d79a
-	set 1, [hl]
-	ld bc, (TM_38 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld a, $b
-	ld [$ff8c], a
-	call DisplayTextID
-	ld hl, $d79a
-	set 0, [hl]
-	jr .asm_75880 ; 0x75877 $7
-.BagFull
-	ld a, $c
-	ld [$ff8c], a
-	call DisplayTextID
-.asm_75880
-	ld hl, W_OBTAINEDBADGES
-	set 6, [hl]
-	ld hl, $d72a
-	set 6, [hl]
-
-	; deactivate gym trainers
-	ld a, [$d79a]
-	or %11111100
-	ld [$d79a], a
-	ld hl, $d79b
-	set 0, [hl]
-
-	ld hl, $d126
-	set 5, [hl]
-
-	jp CinnabarGymScript_75792
-
-CinnabarGymTextPointers: ; 7589f (1d:589f)
-	dw CinnabarGymText1
-	dw CinnabarGymText2
-	dw CinnabarGymText3
-	dw CinnabarGymText4
-	dw CinnabarGymText5
-	dw CinnabarGymText6
-	dw CinnabarGymText7
-	dw CinnabarGymText8
-	dw CinnabarGymText9
-	dw BlaineBadgeText
-	dw ReceivedTM38Text
-	dw TM38NoRoomText
-
-Func_758b7: ; 758b7 (1d:58b7)
-	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
-	ld [$cf13], a
-	call EngageMapTrainer
-	call InitBattleEnemyParameters
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld a, [$cf13]
-	cp $1
-	jr z, .asm_758d4
-	ld a, $2
-	jr .asm_758d6
-.asm_758d4
-	ld a, $3
-.asm_758d6
-	ld [W_CINNABARGYMCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	jp TextScriptEnd
-
-CinnabarGymText1: ; 758df (1d:58df)
-	db $8
-	ld a, [$d79a]
-	bit 1, a
-	jr z, .asm_d9332 ; 0x758e5 $16
-	bit 0, a
-	jr nz, .asm_3012f ; 0x758e9 $9
-	call z, CinnabarGymScript3_75857
-	call DisableWaitingAfterTextDisplay
-	jp TextScriptEnd
-.asm_3012f ; 0x758f4
-	ld hl, BlaineFireBlastText
-	call PrintText
-	jp TextScriptEnd
-.asm_d9332 ; 0x758fd
-	ld hl, BlaineBattleText
-	call PrintText
-	ld hl, BlaineEndBattleText
-	ld de, BlaineEndBattleText
-	call PreBattleSaveRegisters
-	ld a, $7
-	ld [$d05c], a
-	jp Func_758b7
-
-BlaineBattleText: ; 75914 (1d:5914)
-	TX_FAR _BlaineBattleText
-	db "@"
-
-BlaineEndBattleText: ; 75919 (1d:5919)
-	TX_FAR _BlaineEndBattleText
-	db $11
-	db $d
-	db "@"
-
-BlaineFireBlastText: ; 75920 (1d:5920)
-	TX_FAR _BlaineFireBlastText
-	db "@"
-
-BlaineBadgeText: ; 75925 (1d:5925)
-	TX_FAR _BlaineBadgeText
-	db "@"
-
-ReceivedTM38Text: ; 7592a (1d:592a)
-	TX_FAR _ReceivedTM38Text
-	db $0B
-	TX_FAR _TM38ExplanationText
-	db "@"
-
-TM38NoRoomText: ; 75934 (1d:5934)
-	TX_FAR _TM38NoRoomText
-	db "@"
-
-CinnabarGymText2: ; 75939 (1d:5939)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 2, a
-	jr nz, .asm_46bb4 ; 0x75942
-	ld hl, UnnamedText_7595f
-	call PrintText
-	ld hl, UnnamedText_75964
-	ld de, UnnamedText_75964 ; $5964 XXX
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_46bb4 ; 0x75956
-	ld hl, UnnamedText_75969
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_7595f: ; 7595f (1d:595f)
-	TX_FAR _UnnamedText_7595f
-	db "@"
-
-UnnamedText_75964: ; 75964 (1d:5964)
-	TX_FAR _UnnamedText_75964
-	db "@"
-
-UnnamedText_75969: ; 75969 (1d:5969)
-	TX_FAR _UnnamedText_75969
-	db "@"
-
-CinnabarGymText3: ; 7596e (1d:596e)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 3, a
-	jr nz, .asm_4b406 ; 0x75977
-	ld hl, UnnamedText_75994
-	call PrintText
-	ld hl, UnnamedText_75999
-	ld de, UnnamedText_75999 ; $5999 XXX
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_4b406 ; 0x7598b
-	ld hl, UnnamedText_7599e
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75994: ; 75994 (1d:5994)
-	TX_FAR _UnnamedText_75994
-	db "@"
-
-UnnamedText_75999: ; 75999 (1d:5999)
-	TX_FAR _UnnamedText_75999
-	db "@"
-
-UnnamedText_7599e: ; 7599e (1d:599e)
-	TX_FAR _UnnamedText_7599e
-	db "@"
-
-CinnabarGymText4: ; 759a3 (1d:59a3)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 4, a
-	jr nz, .asm_c0673 ; 0x759ac
-	ld hl, UnnamedText_759c9
-	call PrintText
-	ld hl, UnnamedText_759ce
-	ld de, UnnamedText_759ce ; $59ce XXX
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_c0673 ; 0x759c0
-	ld hl, UnnamedText_759d3
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_759c9: ; 759c9 (1d:59c9)
-	TX_FAR _UnnamedText_759c9
-	db "@"
-
-UnnamedText_759ce: ; 759ce (1d:59ce)
-	TX_FAR _UnnamedText_759ce
-	db "@"
-
-UnnamedText_759d3: ; 759d3 (1d:59d3)
-	TX_FAR _UnnamedText_759d3
-	db "@"
-
-CinnabarGymText5: ; 759d8 (1d:59d8)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 5, a
-	jr nz, .asm_5cfd7 ; 0x759e1
-	ld hl, UnnamedText_759fe
-	call PrintText
-	ld hl, UnnamedText_75a03
-	ld de, UnnamedText_75a03 ; $5a03 XXX
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_5cfd7 ; 0x759f5
-	ld hl, UnnamedText_75a08
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_759fe: ; 759fe (1d:59fe)
-	TX_FAR _UnnamedText_759fe
-	db "@"
-
-UnnamedText_75a03: ; 75a03 (1d:5a03)
-	TX_FAR _UnnamedText_75a03
-	db "@"
-
-UnnamedText_75a08: ; 75a08 (1d:5a08)
-	TX_FAR _UnnamedText_75a08
-	db "@"
-
-CinnabarGymText6: ; 75a0d (1d:5a0d)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 6, a
-	jr nz, .asm_776b4 ; 0x75a16
-	ld hl, UnnamedText_75a33
-	call PrintText
-	ld hl, UnnamedText_75a38
-	ld de, UnnamedText_75a38
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_776b4 ; 0x75a2a
-	ld hl, UnnamedText_75a3d
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75a33: ; 75a33 (1d:5a33)
-	TX_FAR _UnnamedText_75a33
-	db "@"
-
-UnnamedText_75a38: ; 75a38 (1d:5a38)
-	TX_FAR _UnnamedText_75a38
-	db "@"
-
-UnnamedText_75a3d: ; 75a3d (1d:5a3d)
-	TX_FAR _UnnamedText_75a3d
-	db "@"
-
-CinnabarGymText7: ; 75a42 (1d:5a42)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79a]
-	bit 7, a
-	jr nz, .asm_2f755 ; 0x75a4b
-	ld hl, UnnamedText_75a68
-	call PrintText
-	ld hl, UnnamedText_75a6d
-	ld de, UnnamedText_75a6d
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_2f755 ; 0x75a5f
-	ld hl, UnnamedText_75a72
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75a68: ; 75a68 (1d:5a68)
-	TX_FAR _UnnamedText_75a68
-	db "@"
-
-UnnamedText_75a6d: ; 75a6d (1d:5a6d)
-	TX_FAR _UnnamedText_75a6d
-	db "@"
-
-UnnamedText_75a72: ; 75a72 (1d:5a72)
-	TX_FAR _UnnamedText_75a72
-	db "@"
-
-CinnabarGymText8: ; 75a77 (1d:5a77)
-	db $08 ; asm
-	call CinnabarGymScript_757a0
-	ld a, [$d79b]
-	bit 0, a
-	jr nz, .asm_d87be ; 0x75a80
-	ld hl, UnnamedText_75a9d
-	call PrintText
-	ld hl, UnnamedText_75aa2
-	ld de, UnnamedText_75aa2 ; $5aa2 XXX
-	call PreBattleSaveRegisters
-	jp Func_758b7
-.asm_d87be ; 0x75a94
-	ld hl, UnnamedText_75aa7
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75a9d: ; 75a9d (1d:5a9d)
-	TX_FAR _UnnamedText_75a9d
-	db "@"
-
-UnnamedText_75aa2: ; 75aa2 (1d:5aa2)
-	TX_FAR _UnnamedText_75aa2
-	db "@"
-
-UnnamedText_75aa7: ; 75aa7 (1d:5aa7)
-	TX_FAR _UnnamedText_75aa7
-	db "@"
-
-CinnabarGymText9: ; 75aac (1d:5aac)
-	db $08 ; asm
-	ld a, [$d79a]
-	bit 1, a
-	jr nz, .asm_627d9 ; 0x75ab2
-	ld hl, UnnamedText_75ac2
-	jr .asm_0b11d ; 0x75ab7
-.asm_627d9 ; 0x75ab9
-	ld hl, UnnamedText_75ac7
-.asm_0b11d ; 0x75abc
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_75ac2: ; 75ac2 (1d:5ac2)
-	TX_FAR _UnnamedText_75ac2
-	db "@"
-
-UnnamedText_75ac7: ; 75ac7 (1d:5ac7)
-	TX_FAR _UnnamedText_75ac7
-	db "@"
-
 INCLUDE "data/mapObjects/cinnabargym.asm"
 
 CinnabarGymBlocks: ; 75b26 (1d:5b26)
@@ -84440,37 +56644,8 @@
 
 INCLUDE "data/mapHeaders/lab1.asm"
 
-Lab1Script: ; 75b8c (1d:5b8c)
-	call EnableAutoTextBoxDrawing
-	ret
+INCLUDE "scripts/lab1.asm"
 
-Lab1TextPointers: ; 75b90 (1d:5b90)
-	dw Lab1Text1
-	dw Lab1Text2
-	dw Lab1Text3
-	dw Lab1Text4
-	dw Lab1Text5
-
-Lab1Text1: ; 75b9a (1d:5b9a)
-	TX_FAR _Lab1Text1
-	db "@"
-
-Lab1Text2: ; 75b9f (1d:5b9f)
-	TX_FAR _Lab1Text2
-	db "@"
-
-Lab1Text3: ; 75ba4 (1d:5ba4)
-	TX_FAR _Lab1Text3
-	db "@"
-
-Lab1Text4: ; 75ba9 (1d:5ba9)
-	TX_FAR _Lab1Text4
-	db "@"
-
-Lab1Text5: ; 75bae (1d:5bae)
-	TX_FAR _Lab1Text5
-	db "@"
-
 INCLUDE "data/mapObjects/lab1.asm"
 
 Lab1Blocks: ; 75bf1 (1d:5bf1)
@@ -84478,33 +56653,8 @@
 
 INCLUDE "data/mapHeaders/lab2.asm"
 
-Lab2Script: ; 75c21 (1d:5c21)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lab2.asm"
 
-Lab2TextPointers: ; 75c24 (1d:5c24)
-	dw Lab2Text1
-	dw Lab2Text2
-	dw Lab2Text3
-
-Lab2Text1: ; 75c2a (1d:5c2a)
-	TX_FAR _Lab2Text1
-	db "@"
-
-Lab2Text2: ; 75c2f (1d:5c2f)
-	db $8
-	ld a, $7
-	ld [wWhichTrade], a
-	jr asm_78552 ; 0x75c35 $6
-
-Lab2Text3: ; 75c37 (1d:5c37)
-	db $8
-	ld a, $8
-	ld [wWhichTrade], a
-asm_78552: ; 75c3d (1d:5c3d)
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/lab2.asm"
 
 Lab2Blocks: ; 75c6b (1d:5c6b)
@@ -84512,70 +56662,8 @@
 
 INCLUDE "data/mapHeaders/lab3.asm"
 
-Lab3Script: ; 75c87 (1d:5c87)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lab3.asm"
 
-Lab3TextPointers: ; 75c8a (1d:5c8a)
-	dw Lab3Text1
-	dw Lab3Text2
-	dw Lab3Text3
-	dw Lab3Text4
-	dw Lab3Text5
-
-Lab3Text1: ; 75c94 (1d:5c94)
-	db $08 ; asm
-	ld a, [$d7a1]
-	bit 7, a
-	jr nz, .asm_e551a ; 0x75c9a
-	ld hl, TM35PreReceiveText
-	call PrintText
-	ld bc, (TM_35 << 8) | 1
-	call GiveItem
-	jr nc, .BagFull
-	ld hl, ReceivedTM35Text
-	call PrintText
-	ld hl, $d7a1
-	set 7, [hl]
-	jr .asm_eb896 ; 0x75cb5
-.BagFull
-	ld hl, TM35NoRoomText
-	call PrintText
-	jr .asm_eb896 ; 0x75cbd
-.asm_e551a ; 0x75cbf
-	ld hl, TM35ExplanationText
-	call PrintText
-.asm_eb896 ; 0x75cc5
-	jp TextScriptEnd
-
-TM35PreReceiveText: ; 75cc8 (1d:5cc8)
-	TX_FAR _TM35PreReceiveText
-	db "@"
-
-ReceivedTM35Text: ; 75ccd (1d:5ccd)
-	TX_FAR _ReceivedTM35Text
-	db $0B, "@"
-
-TM35ExplanationText: ; 75cd3 (1d:5cd3)
-	TX_FAR _TM35ExplanationText
-	db "@"
-
-TM35NoRoomText: ; 75cd8 (1d:5cd8)
-	TX_FAR _TM35NoRoomText
-	db "@"
-
-Lab3Text2: ; 75cdd (1d:5cdd)
-	TX_FAR _Lab3Text2
-	db "@"
-
-Lab3Text4: ; 75ce2 (1d:5ce2)
-Lab3Text3: ; 75ce2 (1d:5ce2)
-	TX_FAR _Lab3Text3
-	db "@"
-
-Lab3Text5: ; 75ce7 (1d:5ce7)
-	TX_FAR _Lab3Text5
-	db "@"
-
 INCLUDE "data/mapObjects/lab3.asm"
 
 Lab3Blocks: ; 75d15 (1d:5d15)
@@ -84583,124 +56671,8 @@
 
 INCLUDE "data/mapHeaders/lab4.asm"
 
-Lab4Script: ; 75d31 (1d:5d31)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/lab4.asm"
 
-Lab4TextPointers: ; 75d34 (1d:5d34)
-	dw Lab4Text1
-	dw Lab4Text2
-
-Func_75d38: ; 75d38 (1d:5d38)
-	xor a
-	ld [$cd37], a
-	ld de, $cc5b
-	ld hl, FossilsList
-.asm_75d42
-	ld a, [hli]
-	and a
-	jr z, .asm_75d64
-	push hl
-	push de
-	ld [$d11e], a
-	ld b, a
-	ld a, $1c
-	call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
-	pop de
-	pop hl
-	ld a, b
-	and a
-	jr z, .asm_75d42
-	ld a, [$d11e]
-	ld [de], a
-	inc de
-	push hl
-	ld hl, $cd37
-	inc [hl]
-	pop hl
-	jr .asm_75d42
-.asm_75d64
-	ld a, $ff
-	ld [de], a
-	ret
-
-FossilsList: ; 75d68 (1d:5d68)
-	db DOME_FOSSIL
-	db HELIX_FOSSIL
-	db OLD_AMBER
-	db $00
-
-Lab4Text1: ; 75d6c (1d:5d6c)
-	db $8
-	ld a, [$d7a3]
-	bit 0, a
-	jr nz, .asm_75d96 ; 0x75d72 $22
-	ld hl, UnnamedText_75dc6
-	call PrintText
-	call Func_75d38
-	ld a, [$cd37]
-	and a
-	jr z, .asm_75d8d ; 0x75d81 $a
-	ld b, BANK(GiveFossilToCinnabarLab)
-	ld hl, GiveFossilToCinnabarLab
-	call Bankswitch
-	jr .asm_75d93 ; 0x75d8b $6
-.asm_75d8d
-	ld hl, UnnamedText_75dcb
-	call PrintText
-.asm_75d93
-	jp TextScriptEnd
-.asm_75d96
-	bit 1, a
-	jr z, .asm_75da2 ; 0x75d98 $8
-	ld hl, UnnamedText_75dd0
-	call PrintText
-	jr .asm_75d93 ; 0x75da0 $f1
-.asm_75da2
-	call LoadFossilItemAndMonNameBank1D
-	ld hl, UnnamedText_75dd5
-	call PrintText
-	ld hl, $d7a3
-	set 2, [hl]
-	ld a, [W_FOSSILMON]
-	ld b, a
-	ld c, $1e
-	call GivePokemon
-	jr nc, .asm_75d93 ; 0x75db9 $d8
-	ld hl, $d7a3
-	res 0, [hl]
-	res 1, [hl]
-	res 2, [hl]
-	jr .asm_75d93 ; 0x75dc4 $cd
-
-UnnamedText_75dc6: ; 75dc6 (1d:5dc6)
-	TX_FAR _UnnamedText_75dc6
-	db "@"
-
-UnnamedText_75dcb: ; 75dcb (1d:5dcb)
-	TX_FAR _UnnamedText_75dcb
-	db "@"
-
-UnnamedText_75dd0: ; 75dd0 (1d:5dd0)
-	TX_FAR _UnnamedText_75dd0
-	db "@"
-
-UnnamedText_75dd5: ; 75dd5 (1d:5dd5)
-	TX_FAR _UnnamedText_75dd5
-	db "@"
-
-Lab4Text2: ; 75dda (1d:5dda)
-	db $08 ; asm
-	ld a, $3
-	ld [wWhichTrade], a
-	ld a, $54
-	call Predef
-	jp TextScriptEnd
-
-LoadFossilItemAndMonNameBank1D: ; 75de8 (1d:5de8)
-	ld b, BANK(LoadFossilItemAndMonName)
-	ld hl, LoadFossilItemAndMonName
-	jp Bankswitch
-
 INCLUDE "data/mapObjects/lab4.asm"
 
 Lab4Blocks: ; 75e10 (1d:5e10)
@@ -84708,379 +56680,26 @@
 
 INCLUDE "data/mapHeaders/cinnabarpokecenter.asm"
 
-CinnabarPokecenterScript: ; 75e2c (1d:5e2c)
-	call Func_22fa
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/cinnabarpokecenter.asm"
 
-CinnabarPokecenterTextPointers: ; 75e32 (1d:5e32)
-	dw CinnabarPokecenterText1
-	dw CinnabarPokecenterText2
-	dw CinnabarPokecenterText3
-	dw CinnabarPokecenterText4
-
-CinnabarPokecenterText1: ; 75e3a (1d:5e3a)
-	db $ff
-
-CinnabarPokecenterText2: ; 75e3b (1d:5e3b)
-	TX_FAR _CinnabarPokecenterText1
-	db "@"
-
-CinnabarPokecenterText3: ; 75e40 (1d:5e40)
-	TX_FAR _CinnabarPokecenterText3
-	db "@"
-
-CinnabarPokecenterText4: ; 75e45 (1d:5e45)
-	db $f6
-
 INCLUDE "data/mapObjects/cinnabarpokecenter.asm"
 
 INCLUDE "data/mapHeaders/cinnabarmart.asm"
 
-CinnabarMartScript: ; 75e7e (1d:5e7e)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/cinnabarmart.asm"
 
-CinnabarMartTextPointers: ; 75e81 (1d:5e81)
-	dw CinnabarMartText1
-	dw CinnabarMartText2
-	dw CinnabarMartText3
-
-CinnabarMartText2: ; 75e87 (1d:5e87)
-	TX_FAR _CinnabarMartText2
-	db "@"
-
-CinnabarMartText3: ; 75e8c (1d:5e8c)
-	TX_FAR _CinnabarMartText3
-	db "@"
-
 INCLUDE "data/mapObjects/cinnabarmart.asm"
 
 INCLUDE "data/mapHeaders/copycatshouse1f.asm"
 
-CopycatsHouse1FScript: ; 75ec3 (1d:5ec3)
-	jp EnableAutoTextBoxDrawing
+INCLUDE "scripts/copycatshouse1f.asm"
 
-CopycatsHouse1FTextPointers: ; 75ec6 (1d:5ec6)
-	dw CopycatsHouse1FText1
-	dw CopycatsHouse1FText2
-	dw CopycatsHouse1FText3
-
-CopycatsHouse1FText1: ; 75ecc (1d:5ecc)
-	TX_FAR _CopycatsHouse1FText1
-	db "@"
-
-CopycatsHouse1FText2: ; 75ed1 (1d:5ed1)
-	TX_FAR _CopycatsHouse1FText2
-	db "@"
-
-CopycatsHouse1FText3: ; 75ed6 (1d:5ed6)
-	TX_FAR _CopycatsHouse1FText3
-	db $8
-	ld a, CHANSEY
-	call PlayCry
-	jp TextScriptEnd
-
 INCLUDE "data/mapObjects/copycatshouse1f.asm"
 
 INCLUDE "data/mapHeaders/gary.asm"
 
-GaryScript: ; 75f1d (1d:5f1d)
-	call EnableAutoTextBoxDrawing
-	ld hl, GaryScriptPointers
-	ld a, [W_GARYCURSCRIPT]
-	jp CallFunctionInTable
+INCLUDE "scripts/gary.asm"
 
-GaryScript_75f29: ; 75f29 (1d:5f29)
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScriptPointers: ; 75f31 (1d:5f31)
-	dw GaryScript0
-	dw GaryScript1
-	dw GaryScript2
-	dw GaryScript3
-	dw GaryScript4
-	dw GaryScript5
-	dw GaryScript6
-	dw GaryScript7
-	dw GaryScript8
-	dw GaryScript9
-	dw GaryScript10
-
-GaryScript0: ; 75f47 (1d:5f47)
-	ret
-
-GaryScript1: ; 75f48 (1d:5f48)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $ccd3
-	ld de, RLEMovement75f63
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $2
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-RLEMovement75f63: ; 75f63 (1d:5f63)
-	db $40,1
-	db $10,1
-	db $40,3
-	db $ff
-
-GaryScript2: ; 75f6a (1d:5f6a)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $d355
-	res 7, [hl]
-	ld a, $1
-	ld [$ff8c], a
-	call DisplayTextID
-	call Delay3
-	ld hl, $d72d
-	set 6, [hl]
-	set 7, [hl]
-	ld hl, UnnamedText_760f9
-	ld de, UnnamedText_760fe
-	call PreBattleSaveRegisters
-	ld a, SONY3 + $c8
-	ld [W_CUROPPONENT], a
-
-	; select which team to use during the encounter
-	ld a, [W_RIVALSTARTER]
-	cp SQUIRTLE
-	jr nz, .NotSquirtle ; 0x75f9f $4
-	ld a, $1
-	jr .done
-.NotSquirtle
-	cp BULBASAUR
-	jr nz, .Charmander ; 0x75fa7 $4
-	ld a, $2
-	jr .done
-.Charmander
-	ld a, $3
-.done
-	ld [W_TRAINERNO], a
-
-	xor a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld a, $3
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript3: ; 75fbb (1d:5fbb)
-	ld a, [W_ISINBATTLE]
-	cp $ff
-	jp z, GaryScript_75f29
-	call UpdateSprites ; move sprites
-	ld hl, $d867
-	set 1, [hl]
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $1
-	ld [$ff8c], a
-	call GaryScript_760c8
-	ld a, $1
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	ld a, $4
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript4: ; 75fe4 (1d:5fe4)
-	ld b, BANK(Music_Cities1AlternateTempo)
-	ld hl, Music_Cities1AlternateTempo
-	call Bankswitch
-	ld a, $2
-	ld [$ff8c], a
-	call GaryScript_760c8
-	ld a, $2
-	ld [$ff8c], a
-	call SetSpriteMovementBytesToFF
-	ld de, MovementData_76014
-	ld a, $2
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $d6
-	ld [$cc4d], a
-	ld a, $15
-	call Predef
-	ld a, $5
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-MovementData_76014: ; 76014 (1d:6014)
-	db $40,$40,$40,$40,$40,$FF
-
-GaryScript5: ; 7601a (1d:601a)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $2
-	ld [$d528], a
-	ld a, $1
-	ld [$ff8c], a
-	ld a, $8
-	ld [$ff8d], a
-	call Func_34a6
-	ld a, $2
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $3
-	ld [$ff8c], a
-	call GaryScript_760c8
-	ld a, $6
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript6: ; 76047 (1d:6047)
-	ld a, $2
-	ld [$ff8c], a
-	ld a, $c
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $4
-	ld [$ff8c], a
-	call GaryScript_760c8
-	ld a, $7
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript7: ; 7605f (1d:605f)
-	ld a, $2
-	ld [$ff8c], a
-	xor a
-	ld [$ff8d], a
-	call Func_34a6 ; face object
-	ld a, $5
-	ld [$ff8c], a
-	call GaryScript_760c8
-	ld de, MovementData_76080
-	ld a, $2
-	ld [$ff8c], a
-	call MoveSprite
-	ld a, $8
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-MovementData_76080: ; 76080 (1d:6080)
-	db $40,$40,$FF
-
-GaryScript8: ; 76083 (1d:6083)
-	ld a, [$d730]
-	bit 0, a
-	ret nz
-	ld a, $d6
-	ld [$cc4d], a
-	ld a, $11
-	call Predef
-	ld a, $9
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript9: ; 76099 (1d:6099)
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ld hl, $ccd3
-	ld de, RLEMovement760b4
-	call DecodeRLEList
-	dec a
-	ld [$cd38], a
-	call Func_3486
-	ld a, $a
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-RLEMovement760b4 ; 760b4 (1d:60b4)
-	db $40,4
-	db $20,1
-	db $ff
-
-GaryScript10: ; 760b9 (1d:60b9)
-	ld a, [$cd38]
-	and a
-	ret nz
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld a, $0
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-GaryScript_760c8 ; 760c8 (1d:60c8)
-	ld a, $f0
-	ld [wJoypadForbiddenButtonsMask], a
-	call DisplayTextID
-	ld a, $ff
-	ld [wJoypadForbiddenButtonsMask], a
-	ret
-
-GaryTextPointers: ; 760d6 (1d:60d6)
-	dw GaryText1
-	dw GaryText2
-	dw GaryText3
-	dw GaryText4
-	dw GaryText5
-
-GaryText1: ; 760e0 (1d:60e0)
-	db $08 ; asm
-	ld a, [$d867]
-	bit 1, a
-	ld hl, UnnamedText_760f4
-	jr z, .asm_17e9f ; 0x760e9
-	ld hl, UnnamedText_76103
-.asm_17e9f ; 0x760ee
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_760f4: ; 760f4 (1d:60f4)
-	TX_FAR _UnnamedText_760f4
-	db "@"
-
-UnnamedText_760f9: ; 760f9 (1d:60f9)
-	TX_FAR _UnnamedText_760f9
-	db "@"
-
-UnnamedText_760fe: ; 760fe (1d:60fe)
-	TX_FAR _UnnamedText_760fe
-	db "@"
-
-UnnamedText_76103: ; 76103 (1d:6103)
-	TX_FAR _UnnamedText_76103
-	db "@"
-
-GaryText2: ; 76108 (1d:6108)
-	TX_FAR _GaryText2
-	db "@"
-
-GaryText3: ; 7610d (1d:610d)
-	db $8
-	ld a, [$d717]
-	ld [$d11e], a
-	call GetMonName
-	ld hl, UnnamedText_76120
-	call PrintText
-	jp TextScriptEnd
-
-UnnamedText_76120: ; 76120 (1d:6120)
-	TX_FAR _UnnamedText_76120
-	db "@"
-
-GaryText4: ; 76125 (1d:6125)
-	TX_FAR _UnnamedText_76125
-	db "@"
-
-GaryText5: ; 7612a (1d:612a)
-	TX_FAR _UnnamedText_7612a
-	db "@"
-
 INCLUDE "data/mapObjects/gary.asm"
 
 GaryBlocks: ; 7615f (1d:615f)
@@ -85088,160 +56707,8 @@
 
 INCLUDE "data/mapHeaders/lorelei.asm"
 
-LoreleiScript: ; 7617b (1d:617b)
-	call LoreleiScript_76191
-	call EnableAutoTextBoxDrawing
-	ld hl, LoreleiTrainerHeaders
-	ld de, LoreleiScriptPointers
-	ld a, [W_LORELEICURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_LORELEICURSCRIPT], a
-	ret
+INCLUDE "scripts/lorelei.asm"
 
-LoreleiScript_76191: ; 76191 (1d:6191)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld hl, $d734
-	set 1, [hl]
-	ld a, [$d863]
-	bit 1, a
-	jr z, .asm_761a9
-	ld a, $5
-	jr .asm_761ab
-.asm_761a9
-	ld a, $24
-.asm_761ab
-	ld [$d09f], a
-	ld bc, $2
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-Func_761b6: ; 761b6 (1d:61b6)
-	xor a
-	ld [W_LORELEICURSCRIPT], a
-	ret
-
-LoreleiScriptPointers: ; 761bb (1d:61bb)
-	dw LoreleiScript0
-	dw Func_324c
-	dw LoreleiScript2
-	dw LoreleiScript3
-	dw LoreleiScript4
-
-LoreleiScript4: ; 761c5 (1d:61c5)
-	ret
-asm_761c6: ; 761c6 (1d:61c6)
-	ld hl, $ccd3
-	ld a, $40
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld a, $6
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_LORELEICURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-LoreleiScript0: ; 761e2 (1d:61e2)
-	ld hl, CoordsData_76223
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_NEWLYPRESSEDBUTTONS], a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [$ccd3], a
-	ld [$cd38], a
-	ld a, [wWhichTrade] ; $cd3d
-	cp $3
-	jr c, .asm_76206
-	ld hl, $d863
-	bit 6, [hl]
-	set 6, [hl]
-	jr z, asm_761c6
-.asm_76206
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $40
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_LORELEICURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_76223: ; 76223 (1d:6223)
-	db $0A,$04
-	db $0A,$05
-	db $0B,$04
-	db $0B,$05
-	db $FF
-
-LoreleiScript3: ; 7622c (1d:622c)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_LORELEICURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-LoreleiScript2: ; 7623f (1d:623f)
-	call EndTrainerBattle
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_761b6
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-LoreleiTextPointers: ; 76251 (1d:6251)
-	dw LoreleiText1
-	dw LoreleiText2
-
-LoreleiTrainerHeaders: ; 76255 (1d:6255)
-LoreleiTrainerHeader0: ; 76255 (1d:6255)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d863 ; flag's byte
-	dw LoreleiBeforeBattleText ; 0x626c TextBeforeBattle
-	dw LoreleiAfterBattleText ; 0x6276 TextAfterBattle
-	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
-	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
-
-	db $ff
-
-LoreleiText1: ; 76262 (1d:6262)
-	db $08 ; asm
-	ld hl, LoreleiTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-LoreleiBeforeBattleText: ; 7626c (1d:626c)
-	TX_FAR _LoreleiBeforeBattleText
-	db "@"
-
-LoreleiEndBattleText: ; 76271 (1d:6271)
-	TX_FAR _LoreleiEndBattleText
-	db "@"
-
-LoreleiAfterBattleText: ; 76276 (1d:6276)
-	TX_FAR _LoreleiAfterBattleText
-	db "@"
-
-LoreleiText2: ; 7627b (1d:627b)
-	TX_FAR _UnnamedText_7627b
-	db "@"
-
 INCLUDE "data/mapObjects/lorelei.asm"
 
 LoreleiBlocks: ; 762ac (1d:62ac)
@@ -85249,161 +56716,8 @@
 
 INCLUDE "data/mapHeaders/bruno.asm"
 
-BrunoScript: ; 762d6 (1d:62d6)
-	call BrunoScript_762ec
-	call EnableAutoTextBoxDrawing
-	ld hl, BrunoTrainerHeaders
-	ld de, BrunoScriptPointers
-	ld a, [W_BRUNOCURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_BRUNOCURSCRIPT], a
-	ret
+INCLUDE "scripts/bruno.asm"
 
-BrunoScript_762ec: ; 762ec (1d:62ec)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d864]
-	bit 1, a
-	jr z, .asm_76300
-	ld a, $5
-	jp Func_76302
-.asm_76300
-	ld a, $24
-
-Func_76302: ; 76302 (1d:6302)
-	ld [$d09f], a
-	ld bc, $2
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-Func_7630d: ; 7630d (1d:630d)
-	xor a
-	ld [W_BRUNOCURSCRIPT], a
-	ret
-
-BrunoScriptPointers: ; 76312 (1d:6312)
-	dw BrunoScript0
-	dw Func_324c
-	dw BrunoScript2
-	dw BrunoScript3
-	dw BrunoScript4
-
-BrunoScript4: ; 7631c (1d:631c)
-	ret
-asm_7631d: ; 7631d (1d:631d)
-	ld hl, $ccd3
-	ld a, $40
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld a, $6
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_BRUNOCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-BrunoScript0: ; 76339 (1d:6339)
-	ld hl, CoordsData_7637a
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_NEWLYPRESSEDBUTTONS], a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [$ccd3], a
-	ld [$cd38], a
-	ld a, [wWhichTrade] ; $cd3d
-	cp $3
-	jr c, .asm_7635d
-	ld hl, $d864
-	bit 6, [hl]
-	set 6, [hl]
-	jr z, asm_7631d
-.asm_7635d
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $40
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_BRUNOCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_7637a: ; 7637a (1d:637a)
-	db $0A,$04
-	db $0A,$05
-	db $0B,$04
-	db $0B,$05
-	db $FF
-
-BrunoScript3: ; 76383 (1d:6383)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_BRUNOCURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-BrunoScript2: ; 76396 (1d:6396)
-	call EndTrainerBattle
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_7630d
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	jp DisplayTextID
-
-BrunoTextPointers: ; 763a8 (1d:63a8)
-	dw BrunoText1
-	dw BrunoText2
-
-BrunoTrainerHeaders: ; 763ac (1d:63ac)
-BrunoTrainerHeader0: ; 763ac (1d:63ac)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d864 ; flag's byte
-	dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle
-	dw BrunoAfterBattleText ; 0x63cd TextAfterBattle
-	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
-	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
-
-	db $ff
-
-BrunoText1: ; 763b9 (1d:63b9)
-	db $08 ; asm
-	ld hl, BrunoTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-BrunoBeforeBattleText: ; 763c3 (1d:63c3)
-	TX_FAR _BrunoBeforeBattleText
-	db "@"
-
-BrunoEndBattleText: ; 763c8 (1d:63c8)
-	TX_FAR _BrunoEndBattleText
-	db "@"
-
-BrunoAfterBattleText: ; 763cd (1d:63cd)
-	TX_FAR _BrunoAfterBattleText
-	db "@"
-
-BrunoText2: ; 763d2 (1d:63d2)
-	TX_FAR _UnnamedText_763d2
-	db "@"
-
 INCLUDE "data/mapObjects/bruno.asm"
 
 BrunoBlocks: ; 76403 (1d:6403)
@@ -85411,164 +56725,8 @@
 
 INCLUDE "data/mapHeaders/agatha.asm"
 
-AgathaScript: ; 7642d (1d:642d)
-	call AgathaScript_76443
-	call EnableAutoTextBoxDrawing
-	ld hl, AgathaTrainerHeaders
-	ld de, AgathaScriptPointers
-	ld a, [W_AGATHACURSCRIPT]
-	call ExecuteCurMapScriptInTable
-	ld [W_AGATHACURSCRIPT], a
-	ret
+INCLUDE "scripts/agatha.asm"
 
-AgathaScript_76443: ; 76443 (1d:6443)
-	ld hl, $d126
-	bit 5, [hl]
-	res 5, [hl]
-	ret z
-	ld a, [$d865]
-	bit 1, a
-	jr z, .asm_76457
-	ld a, $e
-	jp Func_76459
-.asm_76457
-	ld a, $3b
-
-Func_76459: ; 76459 (1d:6459)
-	ld [$d09f], a
-	ld bc, $2
-	ld a, $17
-	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
-
-Func_76464: ; 76464 (1d:6464)
-	xor a
-	ld [W_AGATHACURSCRIPT], a
-	ret
-
-AgathaScriptPointers: ; 76469 (1d:6469)
-	dw AgathaScript0
-	dw Func_324c
-	dw AgathaScript2
-	dw AgathaScript3
-	dw AgathaScript4
-
-AgathaScript4: ; 76473 (1d:6473)
-	ret
-asm_76474: ; 76474 (1d:6474)
-	ld hl, $ccd3
-	ld a, $40
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld a, $6
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_AGATHACURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-AgathaScript0: ; 76490 (1d:6490)
-	ld hl, CoordsData_764d1
-	call ArePlayerCoordsInArray
-	jp nc, CheckFightingMapTrainers
-	xor a
-	ld [H_NEWLYPRESSEDBUTTONS], a
-	ld [H_CURRENTPRESSEDBUTTONS], a
-	ld [$ccd3], a
-	ld [$cd38], a
-	ld a, [wWhichTrade] ; $cd3d
-	cp $3
-	jr c, .asm_764b4
-	ld hl, $d865
-	bit 6, [hl]
-	set 6, [hl]
-	jr z, asm_76474
-.asm_764b4
-	ld a, $2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $40
-	ld [$ccd3], a
-	ld a, $1
-	ld [$cd38], a
-	call Func_3486
-	ld a, $3
-	ld [W_AGATHACURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-CoordsData_764d1: ; 764d1 (1d:64d1)
-	db $0A,$04
-	db $0A,$05
-	db $0B,$04
-	db $0B,$05
-	db $FF
-
-AgathaScript3: ; 764da (1d:64da)
-	ld a, [$cd38]
-	and a
-	ret nz
-	call Delay3
-	xor a
-	ld [wJoypadForbiddenButtonsMask], a
-	ld [W_AGATHACURSCRIPT], a
-	ld [W_CURMAPSCRIPT], a
-	ret
-
-AgathaScript2: ; 764ed (1d:64ed)
-	call EndTrainerBattle
-	ld a, [W_ISINBATTLE] ; $d057
-	cp $ff
-	jp z, Func_76464
-	ld a, $1
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
-	call DisplayTextID
-	ld a, $1
-	ld [W_GARYCURSCRIPT], a
-	ret
-
-AgathaTextPointers: ; 76505 (1d:6505)
-	dw AgathaText1
-	dw AgathaText2
-
-AgathaTrainerHeaders: ; 76509 (1d:6509)
-AgathaTrainerHeader0: ; 76509 (1d:6509)
-	db $1 ; flag's bit
-	db ($0 << 4) ; trainer's view range
-	dw $d865 ; flag's byte
-	dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
-	dw AgathaAfterBattleText ; 0x652a TextAfterBattle
-	dw AgathaEndBattleText ; 0x6525 TextEndBattle
-	dw AgathaEndBattleText ; 0x6525 TextEndBattle
-
-	db $ff
-
-AgathaText1: ; 76516 (1d:6516)
-	db $08 ; asm
-	ld hl, AgathaTrainerHeader0
-	call TalkToTrainer
-	jp TextScriptEnd
-
-AgathaBeforeBattleText: ; 76520 (1d:6520)
-	TX_FAR _AgathaBeforeBattleText
-	db "@"
-
-AgathaEndBattleText: ; 76525 (1d:6525)
-	TX_FAR _AgathaEndBattleText
-	db "@"
-
-AgathaAfterBattleText: ; 7652a (1d:652a)
-	TX_FAR _AgathaAfterBattleText
-	db "@"
-
-AgathaText2: ; 7652f (1d:652f)
-	TX_FAR _AgathaText2
-	db "@"
-
 INCLUDE "data/mapObjects/agatha.asm"
 
 AgathaBlocks: ; 76560 (1d:6560)
@@ -92763,7 +63921,7 @@
 	scf
 	ret
 
-Func_7bf15: ; 7bf15 (1e:7f15)
+ShakeElevator: ; 7bf15 (1e:7f15)
 	ld de, $ffe0
 	call Func_7bf64
 	ld de, $240
@@ -92774,6 +63932,7 @@
 	ld a, [$ffaf]
 	ld d, a
 	ld e, $1
+	; number of times to play collision sfx
 	ld b, $64
 .asm_7bf30
 	ld a, e
--- /dev/null
+++ b/scripts/agatha.asm
@@ -1,0 +1,157 @@
+AgathaScript: ; 7642d (1d:642d)
+	call AgathaScript_76443
+	call EnableAutoTextBoxDrawing
+	ld hl, AgathaTrainerHeaders
+	ld de, AgathaScriptPointers
+	ld a, [W_AGATHACURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_AGATHACURSCRIPT], a
+	ret
+
+AgathaScript_76443: ; 76443 (1d:6443)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d865]
+	bit 1, a
+	jr z, .asm_76457
+	ld a, $e
+	jp AgathaScript_76459
+.asm_76457
+	ld a, $3b
+
+AgathaScript_76459: ; 76459 (1d:6459)
+	ld [$d09f], a
+	ld bc, $2
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+AgathaScript_76464: ; 76464 (1d:6464)
+	xor a
+	ld [W_AGATHACURSCRIPT], a
+	ret
+
+AgathaScriptPointers: ; 76469 (1d:6469)
+	dw AgathaScript0
+	dw Func_324c
+	dw AgathaScript2
+	dw AgathaScript3
+	dw AgathaScript4
+
+AgathaScript4: ; 76473 (1d:6473)
+	ret
+asm_76474: ; 76474 (1d:6474)
+	ld hl, $ccd3
+	ld a, $40
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld a, $6
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_AGATHACURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+AgathaScript0: ; 76490 (1d:6490)
+	ld hl, CoordsData_764d1
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_NEWLYPRESSEDBUTTONS], a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$ccd3], a
+	ld [$cd38], a
+	ld a, [wWhichTrade] ; $cd3d
+	cp $3
+	jr c, .asm_764b4
+	ld hl, $d865
+	bit 6, [hl]
+	set 6, [hl]
+	jr z, asm_76474
+.asm_764b4
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $40
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_AGATHACURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_764d1: ; 764d1 (1d:64d1)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
+
+AgathaScript3: ; 764da (1d:64da)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_AGATHACURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+AgathaScript2: ; 764ed (1d:64ed)
+	call EndTrainerBattle
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, AgathaScript_76464
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $1
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+AgathaTextPointers: ; 76505 (1d:6505)
+	dw AgathaText1
+	dw AgathaText2
+
+AgathaTrainerHeaders: ; 76509 (1d:6509)
+AgathaTrainerHeader0: ; 76509 (1d:6509)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d865 ; flag's byte
+	dw AgathaBeforeBattleText ; 0x6520 TextBeforeBattle
+	dw AgathaAfterBattleText ; 0x652a TextAfterBattle
+	dw AgathaEndBattleText ; 0x6525 TextEndBattle
+	dw AgathaEndBattleText ; 0x6525 TextEndBattle
+
+	db $ff
+
+AgathaText1: ; 76516 (1d:6516)
+	db $08 ; asm
+	ld hl, AgathaTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+AgathaBeforeBattleText: ; 76520 (1d:6520)
+	TX_FAR _AgathaBeforeBattleText
+	db "@"
+
+AgathaEndBattleText: ; 76525 (1d:6525)
+	TX_FAR _AgathaEndBattleText
+	db "@"
+
+AgathaAfterBattleText: ; 7652a (1d:652a)
+	TX_FAR _AgathaAfterBattleText
+	db "@"
+
+AgathaText2: ; 7652f (1d:652f)
+	TX_FAR _AgathaText2
+	db "@"
--- /dev/null
+++ b/scripts/battlecenterm.asm
@@ -1,0 +1,38 @@
+BattleCenterMScript: ; 4fd10 (13:7d10)
+	call EnableAutoTextBoxDrawing
+	ld a, [$ffaa]
+	cp $2
+	ld a, $8
+	jr z, .asm_4fd1d ; 0x4fd19 $2
+	ld a, $c
+.asm_4fd1d
+	ld [$ff8d], a
+	ld a, $1
+	ld [$ff8c], a
+	call Func_34ae
+	ld hl, $d72d
+	bit 0, [hl]
+	set 0, [hl]
+	ret nz
+	ld hl, $c214
+	ld a, $8
+	ld [hli], a
+	ld a, $a
+	ld [hl], a
+	ld a, $8
+	ld [$c119], a
+	ld a, [$ffaa]
+	cp $2
+	ret z
+	ld a, $7
+	ld [$c215], a
+	ld a, $c
+	ld [$c119], a
+	ret
+
+BattleCenterMTextPointers: ; 4fd4c (13:7d4c)
+	dw BattleCenterMText1
+
+BattleCenterMText1: ; 4fd4e (13:7d4e)
+	TX_FAR _BattleCenterMText1
+	db "@"
--- /dev/null
+++ b/scripts/bikeshop.asm
@@ -1,0 +1,153 @@
+BikeShopScript: ; 1d73c (7:573c)
+	jp EnableAutoTextBoxDrawing
+
+BikeShopTextPointers: ; 1d73f (7:573f)
+	dw BikeShopText1
+	dw BikeShopText2
+	dw BikeShopText3
+
+BikeShopText1: ; 1d745 (7:5745)
+	db $08 ; asm
+	ld a, [$d75f]
+	bit 0, a
+	jr z, .asm_260d4 ; 0x1d74b
+	ld hl, BikeShopText_1d82f
+	call PrintText
+	jp .Done
+.asm_260d4 ; 0x1d756
+	ld b, BIKE_VOUCHER
+	call IsItemInBag
+	jr z, .asm_41190 ; 0x1d75b
+	ld hl, BikeShopText_1d81f
+	call PrintText
+	ld bc, (BICYCLE << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, BIKE_VOUCHER
+	ldh [$db], a
+	ld b, BANK(RemoveItemByID)
+	ld hl, RemoveItemByID
+	call Bankswitch
+	ld hl, $d75f
+	set 0, [hl]
+	ld hl, BikeShopText_1d824
+	call PrintText
+	jr .Done
+.BagFull
+	ld hl, BikeShopText_1d834
+	call PrintText
+	jr .Done
+.asm_41190 ; 0x1d78c
+	ld hl, BikeShopText_1d810
+	call PrintText
+	xor a
+	ld [$cc26], a
+	ld [$cc2a], a
+	ld a, $3
+	ld [$cc29], a
+	ld a, $1
+	ld [$cc28], a
+	ld a, $2
+	ld [$cc24], a
+	ld a, $1
+	ld [$cc25], a
+	ld hl, $d730
+	set 6, [hl]
+	ld hl, wTileMap
+	ld b, $4
+	ld c, $f
+	call TextBoxBorder
+	call UpdateSprites
+	FuncCoord 2, 2 ; $c3ca
+	ld hl, Coord
+	ld de, BikeShopMenuText
+	call PlaceString
+	FuncCoord 8, 3 ; $c3e4
+	ld hl, Coord
+	ld de, BikeShopMenuPrice
+	call PlaceString
+	ld hl, BikeShopText_1d815
+	call PrintText
+	call HandleMenuInput
+	bit 1, a
+	jr nz, .asm_b7579 ; 0x1d7dc
+	ld hl, $d730
+	res 6, [hl]
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_b7579 ; 0x1d7e7
+	ld hl, BikeShopText_1d81a
+	call PrintText
+.asm_b7579 ; 0x1d7ef
+	ld hl, BikeShopText_1d82a
+	call PrintText
+.Done
+	jp TextScriptEnd
+
+BikeShopMenuText: ; 1d7f8 (7:57f8)
+	db   "BICYCLE"
+	next "CANCEL@"
+
+BikeShopMenuPrice: ; 1d807 (7:5807)
+	db "¥1000000@"
+
+BikeShopText_1d810: ; 1d810 (7:5810)
+	TX_FAR _BikeShopText_1d810
+	db "@"
+
+BikeShopText_1d815: ; 1d815 (7:5815)
+	TX_FAR _BikeShopText_1d815
+	db "@"
+
+BikeShopText_1d81a: ; 1d81a (7:581a)
+	TX_FAR _BikeShopText_1d81a
+	db "@"
+
+BikeShopText_1d81f: ; 1d81f (7:581f)
+	TX_FAR _BikeShopText_1d81f
+	db "@"
+
+BikeShopText_1d824: ; 1d824 (7:5824)
+	TX_FAR _BikeShopText_1d824 ; 0x98eb2
+	db $11, "@"
+
+BikeShopText_1d82a: ; 1d82a (7:582a)
+	TX_FAR _BikeShopText_1d82a
+	db "@"
+
+BikeShopText_1d82f: ; 1d82f (7:582f)
+	TX_FAR _BikeShopText_1d82f
+	db "@"
+
+BikeShopText_1d834: ; 1d834 (7:5834)
+	TX_FAR _BikeShopText_1d834
+	db "@"
+
+BikeShopText2: ; 1d839 (7:5839)
+	db $08 ; asm
+	ld hl, BikeShopText_1d843
+	call PrintText
+	jp TextScriptEnd
+
+BikeShopText_1d843: ; 1d843 (7:5843)
+	TX_FAR _BikeShopText_1d843
+	db "@"
+
+BikeShopText3: ; 1d848 (7:5848)
+	db $08 ; asm
+	ld a, [$d75f]
+	bit 0, a
+	ld hl, BikeShopText_1d861
+	jr nz, .asm_34d2d ; 0x1d851
+	ld hl, BikeShopText_1d85c
+.asm_34d2d ; 0x1d856
+	call PrintText
+	jp TextScriptEnd
+
+BikeShopText_1d85c: ; 1d85c (7:585c)
+	TX_FAR _BikeShopText_1d85c
+	db "@"
+
+BikeShopText_1d861: ; 1d861 (7:5861)
+	TX_FAR _BikeShopText_1d861
+	db "@"
--- /dev/null
+++ b/scripts/billshouse.asm
@@ -1,0 +1,208 @@
+BillsHouseScript: ; 1e76a (7:676a)
+	call EnableAutoTextBoxDrawing
+	ld a, [W_BILLSHOUSECURSCRIPT]
+	ld hl, BillsHouseScriptPointers
+	jp CallFunctionInTable
+
+BillsHouseScriptPointers: ; 1e776 (7:6776)
+	dw BillsHouseScript0
+	dw BillsHouseScript1
+	dw BillsHouseScript2
+	dw BillsHouseScript3
+	dw BillsHouseScript4
+	dw BillsHouseScript5
+
+BillsHouseScript0: ; 1e782 (7:6782)
+	ret
+
+BillsHouseScript1: ; 1e783 (7:6783)
+	ld a, [$c109]
+	and a
+	ld de, MovementData_1e79c
+	jr nz, .asm_1e78f ; 0x1e78a $3
+	ld de, MovementData_1e7a0
+.asm_1e78f
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $2
+	ld [W_BILLSHOUSECURSCRIPT], a
+	ret
+
+MovementData_1e79c: ; 1e79c (7:679c)
+	db $40,$40,$40,$FF
+
+MovementData_1e7a0: ; 1e7a0 (7:67a0)
+	db $C0,$40,$40,$80,$40,$FF
+
+BillsHouseScript2: ; 1e7a6 (7:67a6)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $61
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d7f2
+	set 6, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [W_BILLSHOUSECURSCRIPT], a
+	ret
+
+BillsHouseScript3: ; 1e7c5 (7:67c5)
+	ld a, [$d7f2]
+	bit 3, a
+	ret z
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $2
+	ld [$cf13], a
+	ld a, $c
+	ld [$ffeb], a
+	ld a, $40
+	ld [$ffec], a
+	ld a, $6
+	ld [$ffed], a
+	ld a, $5
+	ld [$ffee], a
+	call Func_32f9
+	ld a, $62
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld c, $8
+	call DelayFrames
+	ld a, $2
+	ld [$ff8c], a
+	ld de, MovementData_1e807
+	call MoveSprite
+	ld a, $4
+	ld [W_BILLSHOUSECURSCRIPT], a
+	ret
+
+MovementData_1e807: ; 1e807 (7:6807)
+	db $00,$C0,$C0,$C0,$00,$FF
+
+BillsHouseScript4: ; 1e80d (7:680d)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d7f2
+	set 5, [hl]
+	ld hl, $d7f1
+	set 0, [hl]
+	ld a, $0
+	ld [W_BILLSHOUSECURSCRIPT], a
+	ret
+
+BillsHouseScript5: ; 1e827 (7:6827)
+	ld a, $4
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $0
+	ld [W_BILLSHOUSECURSCRIPT], a
+	ret
+
+BillsHouseTextPointers: ; 1e834 (7:6834)
+	dw BillsHouseText1
+	dw BillsHouseText2
+	dw BillsHouseText3
+	dw BillsHouseText4
+
+BillsHouseText4: ; 1e83c (7:683c)
+	db $fd
+
+BillsHouseText1: ; 1e83d (7:683d)
+	db $8
+	ld hl, BillsHouseText_1e865
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, asm_6b196 ; 0x1e84b $d
+asm_4d03c: ; 1e84d (7:684d)
+	ld hl, BillsHouseText_1e86a
+	call PrintText
+	ld a, $1
+	ld [W_BILLSHOUSECURSCRIPT], a
+	jr asm_fd4e2 ; 0x1e858 $8
+asm_6b196: ; 1e85a (7:685a)
+	ld hl, BillsHouseText_1e86f
+	call PrintText
+	jr asm_4d03c ; 0x1e860 $eb
+asm_fd4e2 ; 0x1e862
+	jp TextScriptEnd
+
+BillsHouseText_1e865: ; 1e865 (7:6865)
+	TX_FAR _BillsHouseText_1e865 ; 0x8d267
+	db "@"
+
+BillsHouseText_1e86a: ; 1e86a (7:686a)
+	TX_FAR _BillsHouseText_1e86a ; 0x8d345
+	db "@"
+
+BillsHouseText_1e86f: ; 1e86f (7:686f)
+	TX_FAR _BillsHouseText_1e86f ; 0x8d391
+	db "@"
+
+BillsHouseText2: ; 1e874 (7:6874)
+	db $08 ; asm
+	ld a, [$d7f2]
+	bit 4, a
+	jr nz, .asm_5491f ; 0x1e87a
+	ld hl, BillThankYouText
+	call PrintText
+	ld bc, (S_S__TICKET << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, SSTicketReceivedText
+	call PrintText
+	ld hl, $d7f2
+	set 4, [hl]
+	ld a, $7
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, $9
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+.asm_5491f ; 0x1e8a9
+	ld hl, BillsHouseText_1e8cb
+	call PrintText
+	jr .asm_bd408 ; 0x1e8af
+.BagFull
+	ld hl, SSTicketNoRoomText
+	call PrintText
+.asm_bd408 ; 0x1e8b7
+	jp TextScriptEnd
+
+BillThankYouText: ; 1e8ba (7:68ba)
+	TX_FAR _BillThankYouText
+	db "@"
+
+SSTicketReceivedText: ; 1e8bf (7:68bf)
+	TX_FAR _SSTicketReceivedText
+	db $11, $6, "@"
+
+SSTicketNoRoomText: ; 1e8c6 (7:68c6)
+	TX_FAR _SSTicketNoRoomText
+	db "@"
+
+BillsHouseText_1e8cb: ; 1e8cb (7:68cb)
+	TX_FAR _BillsHouseText_1e8cb
+	db "@"
+
+BillsHouseText3: ; 1e8d0 (7:68d0)
+	db $08 ; asm
+	ld hl, BillsHouseText_1e8da
+	call PrintText
+	jp TextScriptEnd
+
+BillsHouseText_1e8da: ; 1e8da (7:68da)
+	TX_FAR _BillsHouseText_1e8da
+	db "@"
--- /dev/null
+++ b/scripts/blueshouse.asm
@@ -1,0 +1,90 @@
+BluesHouseScript: ; 19b3b (6:5b3b)
+	call EnableAutoTextBoxDrawing
+	ld hl,BluesHouseScriptPointers
+	ld a,[W_BLUESHOUSECURSCRIPT]
+	jp CallFunctionInTable
+
+BluesHouseScriptPointers: ; 19b47 (6:5b47)
+	dw BluesHouseScript0
+	dw BluesHouseScript1
+
+BluesHouseScript0: ; 19b4b (6:5b4b)
+	ld hl,$D74A
+	set 1,[hl]
+
+	; trigger the next script
+	ld a,1
+	ld [W_BLUESHOUSECURSCRIPT],a
+	ret
+
+BluesHouseScript1: ; 19b56 (6:5b56)
+	ret
+
+BluesHouseTextPointers: ; 19b57 (6:5b57)
+	dw BluesHouseText1
+	dw BluesHouseText2
+	dw BluesHouseText3
+
+BluesHouseText1: ; 19b5d (6:5b5d)
+	db 8
+	ld a,[$D74A]
+	bit 0,a
+	jr nz,.GotMap
+	ld a,[$D74B]
+	bit 5,a
+	jr nz,.GiveMap
+	ld hl,DaisyInitialText
+	call PrintText
+	jr .done
+.GiveMap
+	ld hl,DaisyOfferMapText
+	call PrintText
+	ld bc,(TOWN_MAP << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a,$29
+	ld [$CC4D],a
+	ld a,$11
+	call Predef ; hide table map object
+	ld hl,GotMapText
+	call PrintText
+	ld hl,$D74A
+	set 0,[hl]
+	jr .done
+.GotMap
+	ld hl,DaisyUseMapText
+	call PrintText
+	jr .done
+.BagFull
+	ld hl,DaisyBagFullText
+	call PrintText
+.done
+	jp TextScriptEnd
+
+DaisyInitialText: ; 19baa (6:5baa)
+	TX_FAR _DaisyInitialText
+	db "@"
+
+DaisyOfferMapText: ; 19baf (6:5baf)
+	TX_FAR _DaisyOfferMapText
+	db "@"
+
+GotMapText: ; 19bb4 (6:5bb4)
+	TX_FAR _GotMapText
+	db $11,"@"
+
+DaisyBagFullText: ; 19bba (6:5bba)
+	TX_FAR _DaisyBagFullText
+	db "@"
+
+DaisyUseMapText: ; 19bbf (6:5bbf)
+	TX_FAR _DaisyUseMapText
+	db "@"
+
+BluesHouseText2: ; 0x19bc4 Daisy, walking around
+	TX_FAR _BluesHouseText2
+	db "@"
+
+BluesHouseText3: ; 0x19bc9 map on table
+	TX_FAR _BluesHouseText3
+	db "@"
--- /dev/null
+++ b/scripts/bruno.asm
@@ -1,0 +1,154 @@
+BrunoScript: ; 762d6 (1d:62d6)
+	call BrunoScript_762ec
+	call EnableAutoTextBoxDrawing
+	ld hl, BrunoTrainerHeaders
+	ld de, BrunoScriptPointers
+	ld a, [W_BRUNOCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_BRUNOCURSCRIPT], a
+	ret
+
+BrunoScript_762ec: ; 762ec (1d:62ec)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d864]
+	bit 1, a
+	jr z, .asm_76300
+	ld a, $5
+	jp BrunoScript_76302
+.asm_76300
+	ld a, $24
+
+BrunoScript_76302: ; 76302 (1d:6302)
+	ld [$d09f], a
+	ld bc, $2
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+BrunoScript_7630d: ; 7630d (1d:630d)
+	xor a
+	ld [W_BRUNOCURSCRIPT], a
+	ret
+
+BrunoScriptPointers: ; 76312 (1d:6312)
+	dw BrunoScript0
+	dw Func_324c
+	dw BrunoScript2
+	dw BrunoScript3
+	dw BrunoScript4
+
+BrunoScript4: ; 7631c (1d:631c)
+	ret
+asm_7631d: ; 7631d (1d:631d)
+	ld hl, $ccd3
+	ld a, $40
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld a, $6
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_BRUNOCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+BrunoScript0: ; 76339 (1d:6339)
+	ld hl, CoordsData_7637a
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_NEWLYPRESSEDBUTTONS], a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$ccd3], a
+	ld [$cd38], a
+	ld a, [wWhichTrade] ; $cd3d
+	cp $3
+	jr c, .asm_7635d
+	ld hl, $d864
+	bit 6, [hl]
+	set 6, [hl]
+	jr z, asm_7631d
+.asm_7635d
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $40
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_BRUNOCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_7637a: ; 7637a (1d:637a)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
+
+BrunoScript3: ; 76383 (1d:6383)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_BRUNOCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+BrunoScript2: ; 76396 (1d:6396)
+	call EndTrainerBattle
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, BrunoScript_7630d
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+BrunoTextPointers: ; 763a8 (1d:63a8)
+	dw BrunoText1
+	dw BrunoText2
+
+BrunoTrainerHeaders: ; 763ac (1d:63ac)
+BrunoTrainerHeader0: ; 763ac (1d:63ac)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d864 ; flag's byte
+	dw BrunoBeforeBattleText ; 0x63c3 TextBeforeBattle
+	dw BrunoAfterBattleText ; 0x63cd TextAfterBattle
+	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
+	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
+
+	db $ff
+
+BrunoText1: ; 763b9 (1d:63b9)
+	db $08 ; asm
+	ld hl, BrunoTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+BrunoBeforeBattleText: ; 763c3 (1d:63c3)
+	TX_FAR _BrunoBeforeBattleText
+	db "@"
+
+BrunoEndBattleText: ; 763c8 (1d:63c8)
+	TX_FAR _BrunoEndBattleText
+	db "@"
+
+BrunoAfterBattleText: ; 763cd (1d:63cd)
+	TX_FAR _BrunoAfterBattleText
+	db "@"
+
+BrunoText2: ; 763d2 (1d:63d2)
+	TX_FAR _UnnamedText_763d2
+	db "@"
--- /dev/null
+++ b/scripts/celadoncity.asm
@@ -1,0 +1,136 @@
+CeladonCityScript: ; 19956 (6:5956)
+	call EnableAutoTextBoxDrawing
+	ld hl, $d77e
+	res 0, [hl]
+	res 7, [hl]
+	ld hl, $d816
+	res 7, [hl]
+	ret
+
+CeladonCityTextPointers: ; 19966 (6:5966)
+	dw CeladonCityText1
+	dw CeladonCityText2
+	dw CeladonCityText3
+	dw CeladonCityText4
+	dw CeladonCityText5
+	dw CeladonCityText6
+	dw CeladonCityText7
+	dw CeladonCityText8
+	dw CeladonCityText9
+	dw CeladonCityText10
+	dw CeladonCityText11
+	dw PokeCenterSignText
+	dw CeladonCityText13
+	dw CeladonCityText14
+	dw CeladonCityText15
+	dw CeladonCityText16
+	dw CeladonCityText17
+	dw CeladonCityText18
+
+CeladonCityText1: ; 1998a (6:598a)
+	TX_FAR _CeladonCityText1
+	db "@"
+
+CeladonCityText2: ; 1998f (6:598f)
+	TX_FAR _CeladonCityText2
+	db "@"
+
+CeladonCityText3: ; 19994 (6:5994)
+	TX_FAR _CeladonCityText3
+	db "@"
+
+CeladonCityText4: ; 19999 (6:5999)
+	TX_FAR _CeladonCityText4
+	db "@"
+
+CeladonCityText5: ; 1999e (6:599e)
+	db $08 ; asm
+	ld a, [$d777]
+	bit 0, a
+	jr nz, .asm_7053f ; 0x199a4
+	ld hl, TM41PreText
+	call PrintText
+	ld bc, (TM_41 << 8) | 1
+	call GiveItem
+	jr c, .Success
+	ld hl, TM41NoRoomText
+	call PrintText
+	jr .Done
+.Success
+	ld hl, ReceivedTM41Text
+	call PrintText
+	ld hl, $d777
+	set 0, [hl]
+	jr .Done
+.asm_7053f ; 0x199c9
+	ld hl, TM41ExplanationText
+	call PrintText
+.Done
+	jp TextScriptEnd
+
+TM41PreText: ; 199d2 (6:59d2)
+	TX_FAR _TM41PreText
+	db "@"
+
+ReceivedTM41Text: ; 199d7 (6:59d7)
+	TX_FAR _ReceivedTM41Text
+	db $0B, "@"
+
+TM41ExplanationText: ; 199dd (6:59dd)
+	TX_FAR _TM41ExplanationText
+	db "@"
+
+TM41NoRoomText: ; 199e2 (6:59e2)
+	TX_FAR _TM41NoRoomText
+	db "@"
+
+CeladonCityText6: ; 199e7 (6:59e7)
+	TX_FAR _CeladonCityText6
+	db "@"
+
+CeladonCityText7: ; 199ec (6:59ec)
+	TX_FAR _CeladonCityText7
+	db $08 ; asm
+	ld a, POLIWRATH
+	call PlayCry
+	jp TextScriptEnd
+
+CeladonCityText8: ; 199f9 (6:59f9)
+	TX_FAR _CeladonCityText8
+	db "@"
+
+CeladonCityText9: ; 199fe (6:59fe)
+	TX_FAR _CeladonCityText9
+	db "@"
+
+CeladonCityText10: ; 19a03 (6:5a03)
+	TX_FAR _CeladonCityText10
+	db "@"
+
+CeladonCityText11: ; 19a08 (6:5a08)
+	TX_FAR _CeladonCityText11
+	db "@"
+
+CeladonCityText13: ; 19a0d (6:5a0d)
+	TX_FAR _CeladonCityText13
+	db "@"
+
+CeladonCityText14: ; 19a12 (6:5a12)
+	TX_FAR _CeladonCityText14
+	db "@"
+
+CeladonCityText15: ; 19a17 (6:5a17)
+	TX_FAR _CeladonCityText15
+	db "@"
+
+CeladonCityText16: ; 19a1c (6:5a1c)
+	TX_FAR _CeladonCityText16
+	db "@"
+
+CeladonCityText17: ; 19a21 (6:5a21)
+	TX_FAR _CeladonCityText17
+	db "@"
+
+CeladonCityText18: ; 19a26 (6:5a26)
+	TX_FAR _CeladonCityText18
+	db "@"
--- /dev/null
+++ b/scripts/celadondiner.asm
@@ -1,0 +1,67 @@
+CeladonDinerScript: ; 49151 (12:5151)
+	call EnableAutoTextBoxDrawing
+	ret
+
+CeladonDinerTextPointers: ; 49155 (12:5155)
+	dw CeladonDinerText1
+	dw CeladonDinerText2
+	dw CeladonDinerText3
+	dw CeladonDinerText4
+	dw CeladonDinerText5
+
+CeladonDinerText1: ; 4915f (12:515f)
+	TX_FAR _CeladonDinerText1
+	db "@"
+
+CeladonDinerText2: ; 49164 (12:5164)
+	TX_FAR _CeladonDinerText2
+	db "@"
+
+CeladonDinerText3: ; 49169 (12:5169)
+	TX_FAR _CeladonDinerText3
+	db "@"
+
+CeladonDinerText4: ; 4916e (12:516e)
+	TX_FAR _CeladonDinerText4
+	db "@"
+
+CeladonDinerText5: ; 49173 (12:5173)
+	db $08 ; asm
+	ld a, [$d783]
+	bit 0, a
+	jr nz, .asm_eb14d ; 0x49179
+	ld hl, CeladonDinerText_491a7
+	call PrintText
+	ld bc, (COIN_CASE << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d783
+	set 0, [hl]
+	ld hl, ReceivedCoinCaseText
+	call PrintText
+	jr .asm_68b61 ; 0x49194
+.BagFull
+	ld hl, CoinCaseNoRoomText
+	call PrintText
+	jr .asm_68b61 ; 0x4919c
+.asm_eb14d ; 0x4919e
+	ld hl, CeladonDinerText_491b7
+	call PrintText
+.asm_68b61 ; 0x491a4
+	jp TextScriptEnd
+
+CeladonDinerText_491a7: ; 491a7 (12:51a7)
+	TX_FAR _CeladonDinerText_491a7
+	db "@"
+
+ReceivedCoinCaseText: ; 491ac (12:51ac)
+	TX_FAR _ReceivedCoinCaseText
+	db $11, "@"
+
+CoinCaseNoRoomText: ; 491b2 (12:51b2)
+	TX_FAR _CoinCaseNoRoomText
+	db "@"
+
+CeladonDinerText_491b7: ; 491b7 (12:51b7)
+	TX_FAR _CeladonDinerText_491b7
+	db "@"
--- /dev/null
+++ b/scripts/celadongamecorner.asm
@@ -1,0 +1,536 @@
+CeladonGameCornerScript: ; 48bbd (12:4bbd)
+	call CeladonGameCornerScript_48bcf
+	call CeladonGameCornerScript_48bec
+	call EnableAutoTextBoxDrawing
+	ld hl, CeladonGameCornerScriptPointers
+	ld a, [W_CELADONGAMECORNERCURSCRIPT]
+	jp CallFunctionInTable
+
+CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	call GenRandom
+	ld a, [$ffd3]
+	cp $7
+	jr nc, .asm_48be2
+	ld a, $8
+.asm_48be2
+	srl a
+	srl a
+	srl a
+	ld [$cd05], a
+	ret
+
+CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d77e]
+	bit 1, a
+	ret nz
+	ld a, $2a
+	ld [$d09f], a
+	ld bc, $0208
+	ld a, $17
+	jp Predef
+
+CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CeladonGameCornerScriptPointers: ; 48c12 (12:4c12)
+	dw CeladonGameCornerScript0
+	dw CeladonGameCornerScript1
+	dw CeladonGameCornerScript2
+
+CeladonGameCornerScript0: ; 48c18 (12:4c18)
+	ret
+
+CeladonGameCornerScript1: ; 48c19 (12:4c19)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, CeladonGameCornerScript_48c07
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $d
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $b
+	ld [H_SPRITEHEIGHT], a
+	call SetSpriteMovementBytesToFF
+	ld de, MovementData_48c5a
+	ld a, [W_YCOORD]
+	cp $6
+	jr nz, .asm_48c43
+	ld de, MovementData_48c63
+	jr .asm_48c4d
+.asm_48c43
+	ld a, [W_XCOORD]
+	cp $8
+	jr nz, .asm_48c4d
+	ld de, MovementData_48c63
+.asm_48c4d
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a
+	call MoveSprite
+	ld a, $2
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ret
+
+MovementData_48c5a: ; 48c5a (12:4c5a)
+	db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF
+
+MovementData_48c63: ; 48c63 (12:4c63)
+	db $C0,$C0,$C0,$C0,$C0,$FF
+
+CeladonGameCornerScript2: ; 48c69 (12:4c69)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $46
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d126
+	set 5, [hl]
+	set 6, [hl]
+	ld a, $0
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ret
+
+CeladonGameCornerTextPointers: ; 48c8a (12:4c8a)
+	dw CeladonGameCornerText1
+	dw CeladonGameCornerText2
+	dw CeladonGameCornerText3
+	dw CeladonGameCornerText4
+	dw CeladonGameCornerText5
+	dw CeladonGameCornerText6
+	dw CeladonGameCornerText7
+	dw CeladonGameCornerText8
+	dw CeladonGameCornerText9
+	dw CeladonGameCornerText10
+	dw CeladonGameCornerText11
+	dw CeladonGameCornerText12
+	dw CeladonGameCornerText13
+
+CeladonGameCornerText1: ; 48ca4 (12:4ca4)
+	TX_FAR _CeladonGameCornerText1
+	db "@"
+
+CeladonGameCornerText2: ; 48ca9 (12:4ca9)
+	db $08 ; asm
+	call CeladonGameCornerScript_48f1e
+	ld hl, CeladonGameCornerText_48d22
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_c650b ; 0x48cba
+	ld b,COIN_CASE
+	call IsItemInBag
+	jr z, .asm_ed086 ; 0x48cc1
+	call Has9990Coins
+	jr nc, .asm_31338 ; 0x48cc6
+	xor a
+	ldh [$9f], a
+	ldh [$a1], a
+	ld a, $10
+	ldh [$a0], a
+	call HasEnoughMoney
+	jr nc, .asm_b6ef0 ; 0x48cd4
+	ld hl, CeladonGameCornerText_48d31 ; $4d31
+	jr .asm_e2afd ; 0x48cd9
+.asm_b6ef0 ; 0x48cdb
+	xor a
+	ldh [$9f], a
+	ldh [$a1], a
+	ld a, $10
+	ldh [$a0], a
+	ld hl, $ffa1
+	ld de, $d349
+	ld c, $3
+	ld a, $c
+	call Predef
+	xor a
+	ldh [$9f], a
+	ldh [$a0], a
+	ld a, $50
+	ldh [$a1], a
+	ld de, $d5a5
+	ld hl, $ffa1
+	ld c, $2
+	ld a, $b
+	call Predef
+	call CeladonGameCornerScript_48f1e
+	ld hl, CeladonGameCornerText_48d27
+	jr .asm_e2afd ; 0x48d0d
+.asm_c650b ; 0x48d0f
+	ld hl, CeladonGameCornerText_48d2c
+	jr .asm_e2afd ; 0x48d12
+.asm_31338 ; 0x48d14
+	ld hl, CeladonGameCornerText_48d36
+	jr .asm_e2afd ; 0x48d17
+.asm_ed086 ; 0x48d19
+	ld hl, CeladonGameCornerText_48d3b
+.asm_e2afd ; 0x48d1c
+	call PrintText
+	jp TextScriptEnd
+
+CeladonGameCornerText_48d22: ; 48d22 (12:4d22)
+	TX_FAR _CeladonGameCornerText_48d22
+	db "@"
+
+CeladonGameCornerText_48d27: ; 48d27 (12:4d27)
+	TX_FAR _CeladonGameCornerText_48d27
+	db "@"
+
+CeladonGameCornerText_48d2c: ; 48d2c (12:4d2c)
+	TX_FAR _CeladonGameCornerText_48d2c
+	db "@"
+
+CeladonGameCornerText_48d31: ; 48d31 (12:4d31)
+	TX_FAR _CeladonGameCornerText_48d31
+	db "@"
+
+CeladonGameCornerText_48d36: ; 48d36 (12:4d36)
+	TX_FAR _CeladonGameCornerText_48d36
+	db "@"
+
+CeladonGameCornerText_48d3b: ; 48d3b (12:4d3b)
+	TX_FAR _CeladonGameCornerText_48d3b
+	db "@"
+
+CeladonGameCornerText3: ; 48d40 (12:4d40)
+	TX_FAR _CeladonGameCornerText3
+	db "@"
+
+CeladonGameCornerText4: ; 48d45 (12:4d45)
+	TX_FAR _CeladonGameCornerText4
+	db "@"
+
+CeladonGameCornerText5: ; 48d4a (12:4d4a)
+	db $08 ; asm
+	ld a, [$d77e]
+	bit 2, a
+	jr nz, .asm_d0957 ; 0x48d50
+	ld hl, CeladonGameCornerText_48d9c
+	call PrintText
+	ld b, COIN_CASE
+	call IsItemInBag
+	jr z, .asm_5aef9 ; 0x48d5d
+	call Has9990Coins
+	jr nc, .asm_98546 ; 0x48d62
+	xor a
+	ldh [$9f], a
+	ldh [$a0], a
+	ld a, $10
+	ldh [$a1], a
+	ld de, $d5a5
+	ld hl, $ffa1
+	ld c, $2
+	ld a, $b
+	call Predef
+	ld hl, $d77e
+	set 2, [hl]
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, Received10CoinsText
+	jr .asm_c7d1a ; 0x48d87
+.asm_d0957 ; 0x48d89
+	ld hl, CeladonGameCornerText_48dac
+	jr .asm_c7d1a ; 0x48d8c
+.asm_98546 ; 0x48d8e
+	ld hl, CeladonGameCornerText_48da7
+	jr .asm_c7d1a ; 0x48d91
+.asm_5aef9 ; 0x48d93
+	ld hl, CeladonGameCornerText_48f19
+.asm_c7d1a ; 0x48d96
+	call PrintText
+	jp TextScriptEnd
+
+CeladonGameCornerText_48d9c: ; 48d9c (12:4d9c)
+	TX_FAR _CeladonGameCornerText_48d9c
+	db "@"
+
+Received10CoinsText: ; 48da1 (12:4da1)
+	TX_FAR _Received10CoinsText
+	db $0B, "@"
+
+CeladonGameCornerText_48da7: ; 48da7 (12:4da7)
+	TX_FAR _CeladonGameCornerText_48da7
+	db "@"
+
+CeladonGameCornerText_48dac: ; 48dac (12:4dac)
+	TX_FAR _CeladonGameCornerText_48dac
+	db "@"
+
+CeladonGameCornerText6: ; 48db1 (12:4db1)
+	TX_FAR _CeladonGameCornerText6
+	db "@"
+
+CeladonGameCornerText7: ; 48db6 (12:4db6)
+	db $08 ; asm
+	ld a, [$d77c]
+	bit 1, a
+	ld hl, CeladonGameCornerText_48dca ; $4dca
+	jr z, .asm_be3fd ; 0x48dbf
+	ld hl, CeladonGameCornerText_48dcf ; $4dcf
+.asm_be3fd ; 0x48dc4
+	call PrintText
+	jp TextScriptEnd
+
+CeladonGameCornerText_48dca: ; 48dca (12:4dca)
+	TX_FAR _CeladonGameCornerText_48dca
+	db "@"
+
+CeladonGameCornerText_48dcf: ; 48dcf (12:4dcf)
+	TX_FAR _CeladonGameCornerText_48dcf
+	db "@"
+
+CeladonGameCornerText8: ; 48dd4 (12:4dd4)
+	TX_FAR _CeladonGameCornerText8
+	db "@"
+
+CeladonGameCornerText9: ; 48dd9 (12:4dd9)
+	db $08 ; asm
+	ld a, [$d77e]
+	bit 4, a
+	jr nz, .asm_ed8bc ; 0x48ddf
+	ld hl, CeladonGameCornerText_48e26
+	call PrintText
+	ld b, COIN_CASE
+	call IsItemInBag
+	jr z, .asm_df794 ; 0x48dec
+	call Has9990Coins
+	jr nc, .asm_f17c3 ; 0x48df1
+	xor a
+	ldh [$9f], a
+	ldh [$a0], a
+	ld a, $20
+	ldh [$a1], a
+	ld de, $d5a5
+	ld hl, $ffa1
+	ld c, $2
+	ld a, $b
+	call Predef
+	ld hl, $d77e
+	set 4, [hl]
+	ld hl, Received20CoinsText
+	jr .asm_0ddc2 ; 0x48e11
+.asm_ed8bc ; 0x48e13
+	ld hl, CeladonGameCornerText_48e36
+	jr .asm_0ddc2 ; 0x48e16
+.asm_f17c3 ; 0x48e18
+	ld hl, CeladonGameCornerText_48e31
+	jr .asm_0ddc2 ; 0x48e1b
+.asm_df794 ; 0x48e1d
+	ld hl, CeladonGameCornerText_48f19
+.asm_0ddc2 ; 0x48e20
+	call PrintText
+	jp TextScriptEnd
+
+CeladonGameCornerText_48e26: ; 48e26 (12:4e26)
+	TX_FAR _CeladonGameCornerText_48e26
+	db "@"
+
+Received20CoinsText: ; 48e2b (12:4e2b)
+	TX_FAR _Received20CoinsText
+	db $0B, "@"
+
+CeladonGameCornerText_48e31: ; 48e31 (12:4e31)
+	TX_FAR _CeladonGameCornerText_48e31
+	db "@"
+
+CeladonGameCornerText_48e36: ; 48e36 (12:4e36)
+	TX_FAR _CeladonGameCornerText_48e36
+	db "@"
+
+CeladonGameCornerText10: ; 48e3b (12:4e3b)
+	db $08 ; asm
+	ld a, [$d77e]
+	bit 3, a
+	jr nz, .asm_ff080 ; 0x48e41
+	ld hl, CeladonGameCornerText_48e88 ; $4e88
+	call PrintText
+	ld b,COIN_CASE
+	call IsItemInBag
+	jr z, .asm_4fb0c ; 0x48e4e
+	call Has9990Coins
+	jr z, .asm_9505a ; 0x48e53
+	xor a
+	ldh [$9f], a
+	ldh [$a0], a
+	ld a, $20
+	ldh [$a1], a
+	ld de, $d5a5
+	ld hl, $ffa1
+	ld c, $2
+	ld a, $b
+	call Predef
+	ld hl, $d77e
+	set 3, [hl]
+	ld hl, CeladonGameCornerText_48e8d
+	jr .asm_78d65 ; 0x48e73
+.asm_ff080 ; 0x48e75
+	ld hl, CeladonGameCornerText_48e98
+	jr .asm_78d65 ; 0x48e78
+.asm_9505a ; 0x48e7a
+	ld hl, CeladonGameCornerText_48e93
+	jr .asm_78d65 ; 0x48e7d
+.asm_4fb0c ; 0x48e7f
+	ld hl, CeladonGameCornerText_48f19
+.asm_78d65 ; 0x48e82
+	call PrintText
+	jp TextScriptEnd
+
+CeladonGameCornerText_48e88: ; 48e88 (12:4e88)
+	TX_FAR _CeladonGameCornerText_48e88
+	db "@"
+
+CeladonGameCornerText_48e8d: ; 48e8d (12:4e8d)
+	TX_FAR _CeladonGameCornerText_48e8d ; 0x9dceb
+	db $0B, "@"
+
+CeladonGameCornerText_48e93: ; 48e93 (12:4e93)
+	TX_FAR _CeladonGameCornerText_48e93
+	db "@"
+
+CeladonGameCornerText_48e98: ; 48e98 (12:4e98)
+	TX_FAR _CeladonGameCornerText_48e98
+	db "@"
+
+CeladonGameCornerText11: ; 48e9d (12:4e9d)
+	db $08 ; asm
+	ld hl, CeladonGameCornerText_48ece
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, CeladonGameCornerText_48ed3
+	ld de, CeladonGameCornerText_48ed3
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	xor a
+	ldh [$b4], a
+	ldh [$b3], a
+	ldh [$b2], a
+	ld a, $1
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	jp TextScriptEnd
+
+CeladonGameCornerText_48ece: ; 48ece (12:4ece)
+	TX_FAR _CeladonGameCornerText_48ece
+	db "@"
+
+CeladonGameCornerText_48ed3: ; 48ed3 (12:4ed3)
+	TX_FAR _CeladonGameCornerText_48ed3
+	db "@"
+
+CeladonGameCornerText13: ; 48ed8 (12:4ed8)
+	TX_FAR _CeladonGameCornerText_48ed8
+	db "@"
+
+CeladonGameCornerText12: ; 48edd (12:4edd)
+	db $08 ; asm
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, CeladonGameCornerText_48f09
+	call PrintText
+	call WaitForSoundToFinish
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	call WaitForSoundToFinish
+	ld hl, $d77e
+	set 1, [hl]
+	ld a, $43
+	ld [$d09f], a
+	ld bc, $0208
+	ld a, $17
+	call Predef
+	jp TextScriptEnd
+
+CeladonGameCornerText_48f09: ; 48f09 (12:4f09)
+	TX_FAR _CeladonGameCornerText_48f09 ; 0x9ddb0
+	db $8
+	ld a, (SFX_02_49 - SFX_Headers_02) / 3
+	call PlaySound
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+CeladonGameCornerText_48f19: ; 48f19 (12:4f19)
+	TX_FAR _CeladonGameCornerText_48f19
+	db "@"
+
+CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e)
+	ld hl, $d730
+	set 6, [hl]
+	FuncCoord 11, 0 ; $c3ab
+	ld hl, Coord
+	ld b, $5
+	ld c, $7
+	call TextBoxBorder
+	call UpdateSprites
+	FuncCoord 12, 1 ; $c3c0
+	ld hl, Coord
+	ld b, $4
+	ld c, $7
+	call ClearScreenArea
+	FuncCoord 12, 2 ; $c3d4
+	ld hl, Coord
+	ld de, GameCornerMoneyText
+	call PlaceString
+	FuncCoord 12, 3 ; $c3e8
+	ld hl, Coord
+	ld de, GameCornerBlankText1
+	call PlaceString
+	FuncCoord 12, 3 ; $c3e8
+	ld hl, Coord
+	ld de, $d347
+	ld c, $a3
+	call PrintBCDNumber
+	FuncCoord 12, 4 ; $c3fc
+	ld hl, Coord
+	ld de, GameCornerCoinText
+	call PlaceString
+	FuncCoord 12, 5 ; $c410
+	ld hl, Coord
+	ld de, GameCornerBlankText2
+	call PlaceString
+	FuncCoord 15, 5 ; $c413
+	ld hl, Coord
+	ld de, $d5a4
+	ld c, $82
+	call PrintBCDNumber
+	ld hl, $d730
+	res 6, [hl]
+	ret
+
+GameCornerMoneyText: ; 48f7a (12:4f7a)
+	db "MONEY@"
+
+GameCornerCoinText: ; 48f80 (12:4f80)
+	db "COIN@"
+
+GameCornerBlankText1: ; 48f85 (12:4f85)
+	db "       @"
+
+GameCornerBlankText2: ; 48f8d (12:4f8d)
+	db "       @"
+
+Has9990Coins: ; 48f95 (12:4f95)
+	ld a, $99
+	ld [$ffa0], a
+	ld a, $90
+	ld [$ffa1], a
+	jp HasEnoughCoins
--- /dev/null
+++ b/scripts/celadongym.asm
@@ -1,0 +1,343 @@
+CeladonGymScript: ; 4890a (12:490a)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, CeladonGymScript_48927
+	call EnableAutoTextBoxDrawing
+	ld hl, CeladonGymTrainerHeaders
+	ld de, CeladonGymScriptPointers
+	ld a, [W_CELADONGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_CELADONGYMCURSCRIPT], a
+	ret
+
+CeladonGymScript_48927: ; 48927 (12:4927)
+	ld hl, Gym4CityName ; $4930
+	ld de, Gym4LeaderName ; $493d
+	jp LoadGymLeaderAndCityName
+
+Gym4CityName: ; 48930 (12:4930)
+	db "CELADON CITY@"
+
+Gym4LeaderName: ; 4893d (12:493d)
+	db "ERIKA@"
+
+CeladonGymText_48943: ; 48943 (12:4943)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CELADONGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CeladonGymScriptPointers: ; 4894e (12:494e)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw CeladonGymScript3
+
+CeladonGymScript3: ; 48956 (12:4956)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, CeladonGymText_48943
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+CeladonGymText_48963: ; 48963 (12:4963)
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d77c
+	set 1, [hl]
+	ld bc, (TM_21 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $a
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d77c
+	set 0, [hl]
+	jr .asm_4898c
+.BagFull
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_4898c
+	ld hl, W_OBTAINEDBADGES
+	set 3, [hl]
+	ld hl, $d72a
+	set 3, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d77c]
+	or %11111100
+	ld [$d77c], a
+	ld hl, $d77d
+	set 0, [hl]
+
+	jp CeladonGymText_48943
+
+CeladonGymTextPointers: ; 489a6 (12:49a6)
+	dw CeladonGymText1
+	dw CeladonGymText2
+	dw CeladonGymText3
+	dw CeladonGymText4
+	dw CeladonGymText5
+	dw CeladonGymText6
+	dw CeladonGymText7
+	dw CeladonGymText8
+	dw CeladonGymText9
+	dw TM21Text
+	dw TM21NoRoomText
+
+CeladonGymTrainerHeaders: ; 489bc (12:49bc)
+CeladonGymTrainerHeader0: ; 489bc (12:49bc)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText2 ; 0x4a8b TextBeforeBattle
+	dw CeladonGymAfterBattleText2 ; 0x4a95 TextAfterBattle
+	dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
+	dw CeladonGymEndBattleText2 ; 0x4a90 TextEndBattle
+
+CeladonGymTrainerHeader2: ; 489c8 (12:49c8)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText3 ; 0x4aa4 TextBeforeBattle
+	dw CeladonGymAfterBattleText3 ; 0x4aae TextAfterBattle
+	dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
+	dw CeladonGymEndBattleText3 ; 0x4aa9 TextEndBattle
+
+CeladonGymTrainerHeader3: ; 489d4 (12:49d4)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText4 ; 0x4abd TextBeforeBattle
+	dw CeladonGymAfterBattleText4 ; 0x4ac7 TextAfterBattle
+	dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
+	dw CeladonGymEndBattleText4 ; 0x4ac2 TextEndBattle
+
+CeladonGymTrainerHeader4: ; 489e0 (12:49e0)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText5 ; 0x4ad6 TextBeforeBattle
+	dw CeladonGymAfterBattleText5 ; 0x4ae0 TextAfterBattle
+	dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
+	dw CeladonGymEndBattleText5 ; 0x4adb TextEndBattle
+
+CeladonGymTrainerHeader5: ; 489ec (12:49ec)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText6 ; 0x4aef TextBeforeBattle
+	dw CeladonGymAfterBattleText6 ; 0x4af9 TextAfterBattle
+	dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
+	dw CeladonGymEndBattleText6 ; 0x4af4 TextEndBattle
+
+CeladonGymTrainerHeader6: ; 489f8 (12:49f8)
+	db $7 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText7 ; 0x4b08 TextBeforeBattle
+	dw CeladonGymAfterBattleText7 ; 0x4b12 TextAfterBattle
+	dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
+	dw CeladonGymEndBattleText7 ; 0x4b0d TextEndBattle
+
+CeladonGymTrainerHeader7: ; 48a04 (12:4a04)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d77c ; flag's byte
+	dw CeladonGymBattleText8 ; 0x4b21 TextBeforeBattle
+	dw CeladonGymAfterBattleText8 ; 0x4b2b TextAfterBattle
+	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
+	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
+
+	db $ff
+
+CeladonGymText1: ; 48a11 (12:4a11)
+	db $08 ; asm
+	ld a, [$d77c]
+	bit 1, a
+	jr z, .asm_16064 ; 0x48a17
+	bit 0, a
+	jr nz, .asm_3b22c ; 0x48a1b
+	call z, CeladonGymText_48963
+	call DisableWaitingAfterTextDisplay
+	jr .asm_96252 ; 0x48a23
+.asm_3b22c ; 0x48a25
+	ld hl, CeladonGymText_48a68
+	call PrintText
+	jr .asm_96252 ; 0x48a2b
+.asm_16064 ; 0x48a2d
+	ld hl, CeladonGymText_48a5e
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, CeladonGymText_48a63
+	ld de, CeladonGymText_48a63
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $4
+	ld [$d05c], a
+	ld a, $3
+	ld [W_CELADONGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_96252 ; 0x48a5b
+	jp TextScriptEnd
+
+CeladonGymText_48a5e: ; 48a5e (12:4a5e)
+	TX_FAR _CeladonGymText_48a5e
+	db "@"
+
+CeladonGymText_48a63: ; 48a63 (12:4a63)
+	TX_FAR _CeladonGymText_48a63
+	db "@"
+
+CeladonGymText_48a68: ; 48a68 (12:4a68)
+	TX_FAR _CeladonGymText_48a68
+	db "@"
+
+CeladonGymText9: ; 48a6d (12:4a6d)
+	TX_FAR _CeladonGymText9
+	db "@"
+
+TM21Text: ; 48a72 (12:4a72)
+	TX_FAR _ReceivedTM21Text
+	db $0B
+	TX_FAR _TM21ExplanationText
+	db "@"
+
+TM21NoRoomText: ; 48a7c (12:4a7c)
+	TX_FAR _TM21NoRoomText
+	db "@"
+
+CeladonGymText2: ; 48a81 (12:4a81)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText2: ; 48a8b (12:4a8b)
+	TX_FAR _CeladonGymBattleText2
+	db "@"
+
+CeladonGymEndBattleText2: ; 48a90 (12:4a90)
+	TX_FAR _CeladonGymEndBattleText2
+	db "@"
+
+CeladonGymAfterBattleText2: ; 48a95 (12:4a95)
+	TX_FAR _CeladonGymAfterBattleText2
+	db "@"
+
+CeladonGymText3: ; 48a9a (12:4a9a)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText3: ; 48aa4 (12:4aa4)
+	TX_FAR _CeladonGymBattleText3
+	db "@"
+
+CeladonGymEndBattleText3: ; 48aa9 (12:4aa9)
+	TX_FAR _CeladonGymEndBattleText3
+	db "@"
+
+CeladonGymAfterBattleText3: ; 48aae (12:4aae)
+	TX_FAR _CeladonGymAfterBattleText3
+	db "@"
+
+CeladonGymText4: ; 48ab3 (12:4ab3)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText4: ; 48abd (12:4abd)
+	TX_FAR _CeladonGymBattleText4
+	db "@"
+
+CeladonGymEndBattleText4: ; 48ac2 (12:4ac2)
+	TX_FAR _CeladonGymEndBattleText4
+	db "@"
+
+CeladonGymAfterBattleText4: ; 48ac7 (12:4ac7)
+	TX_FAR _CeladonGymAfterBattleText4
+	db "@"
+
+CeladonGymText5: ; 48acc (12:4acc)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText5: ; 48ad6 (12:4ad6)
+	TX_FAR _CeladonGymBattleText5
+	db "@"
+
+CeladonGymEndBattleText5: ; 48adb (12:4adb)
+	TX_FAR _CeladonGymEndBattleText5
+	db "@"
+
+CeladonGymAfterBattleText5: ; 48ae0 (12:4ae0)
+	TX_FAR _CeladonGymAfterBattleText5
+	db "@"
+
+CeladonGymText6: ; 48ae5 (12:4ae5)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText6: ; 48aef (12:4aef)
+	TX_FAR _CeladonGymBattleText6
+	db "@"
+
+CeladonGymEndBattleText6: ; 48af4 (12:4af4)
+	TX_FAR _CeladonGymEndBattleText6
+	db "@"
+
+CeladonGymAfterBattleText6: ; 48af9 (12:4af9)
+	TX_FAR _CeladonGymAfterBattleText6
+	db "@"
+
+CeladonGymText7: ; 48afe (12:4afe)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText7: ; 48b08 (12:4b08)
+	TX_FAR _CeladonGymBattleText7
+	db "@"
+
+CeladonGymEndBattleText7: ; 48b0d (12:4b0d)
+	TX_FAR _CeladonGymEndBattleText7
+	db "@"
+
+CeladonGymAfterBattleText7: ; 48b12 (12:4b12)
+	TX_FAR _CeladonGymAfterBattleText7
+	db "@"
+
+CeladonGymText8: ; 48b17 (12:4b17)
+	db $08 ; asm
+	ld hl, CeladonGymTrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeladonGymBattleText8: ; 48b21 (12:4b21)
+	TX_FAR _CeladonGymBattleText8
+	db "@"
+
+CeladonGymEndBattleText8: ; 48b26 (12:4b26)
+	TX_FAR _CeladonGymEndBattleText8
+	db "@"
+
+CeladonGymAfterBattleText8: ; 48b2b (12:4b2b)
+	TX_FAR _CeladonGymAfterBattleText8
+	db "@"
--- /dev/null
+++ b/scripts/celadonhotel.asm
@@ -1,0 +1,19 @@
+CeladonHotelScript: ; 49269 (12:5269)
+	jp EnableAutoTextBoxDrawing
+
+CeladonHotelTextPointers: ; 4926c (12:526c)
+	dw CeladonHotelText1
+	dw CeladonHotelText2
+	dw CeladonHotelText3
+
+CeladonHotelText1: ; 49272 (12:5272)
+	TX_FAR _CeladonHotelText1
+	db "@"
+
+CeladonHotelText2: ; 49277 (12:5277)
+	TX_FAR _CeladonHotelText2
+	db "@"
+
+CeladonHotelText3: ; 4927c (12:527c)
+	TX_FAR _CeladonHotelText3
+	db "@"
--- /dev/null
+++ b/scripts/celadonhouse.asm
@@ -1,0 +1,20 @@
+CeladonHouseScript: ; 4920e (12:520e)
+	call EnableAutoTextBoxDrawing
+	ret
+
+CeladonHouseTextPointers: ; 49212 (12:5212)
+	dw CeladonHouseText1
+	dw CeladonHouseText2
+	dw CeladonHouseText3
+
+CeladonHouseText1: ; 49218 (12:5218)
+	TX_FAR _CeladonHouseText1
+	db "@"
+
+CeladonHouseText2: ; 4921d (12:521d)
+	TX_FAR _CeladonHouseText2
+	db "@"
+
+CeladonHouseText3: ; 49222 (12:5222)
+	TX_FAR _CeladonHouseText3
+	db "@"
--- /dev/null
+++ b/scripts/celadonmansion1.asm
@@ -1,0 +1,39 @@
+CeladonMansion1Script: ; 48694 (12:4694)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMansion1TextPointers: ; 48697 (12:4697)
+	dw CeladonMansion1Text1
+	dw CeladonMansion1Text2
+	dw CeladonMansion1Text3
+	dw CeladonMansion1Text4
+	dw CeladonMansion1Text5
+
+CeladonMansion1_486a1: ; 486a1 (12:46a1)
+	call PlayCry
+	jp TextScriptEnd
+
+CeladonMansion1Text1: ; 486a7 (12:46a7)
+	TX_FAR _CeladonMansion1Text1
+	db $08 ; asm
+	ld a, MEOWTH
+	jp CeladonMansion1_486a1
+
+CeladonMansion1Text2: ; 486b1 (12:46b1)
+	TX_FAR _CeladonMansion1Text2
+	db "@"
+
+CeladonMansion1Text3: ; 486b6 (12:46b6)
+	TX_FAR _CeladonMansion1Text3
+	db $8
+	ld a, CLEFAIRY
+	jp CeladonMansion1_486a1
+
+CeladonMansion1Text4: ; 486c0 (12:46c0)
+	TX_FAR _CeladonMansion1Text4
+	db $8
+	ld a, NIDORAN_F
+	jp CeladonMansion1_486a1
+
+CeladonMansion1Text5: ; 486ca (12:46ca)
+	TX_FAR _CeladonMansion1Text5
+	db "@"
--- /dev/null
+++ b/scripts/celadonmansion2.asm
@@ -1,0 +1,10 @@
+CeladonMansion2Script: ; 4873a (12:473a)
+	call EnableAutoTextBoxDrawing
+	ret
+
+CeladonMansion2TextPointers: ; 4873e (12:473e)
+	dw CeladonMansion2Text1
+
+CeladonMansion2Text1: ; 48740 (12:4740)
+	TX_FAR _CeladonMansion2Text1
+	db "@"
--- /dev/null
+++ b/scripts/celadonmansion3.asm
@@ -1,0 +1,73 @@
+CeladonMansion3Script: ; 48790 (12:4790)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMansion3TextPointers: ; 48793 (12:4793)
+	dw ProgrammerText
+	dw GraphicArtistText
+	dw WriterText
+	dw DirectorText
+	dw GameFreakPCText1
+	dw GameFreakPCText2
+	dw GameFreakPCText3
+	dw GameFreakSignText
+
+ProgrammerText: ; 487a3 (12:47a3)
+	TX_FAR _ProgrammerText
+	db "@"
+
+GraphicArtistText: ; 487a8 (12:47a8)
+	TX_FAR _GraphicArtistText
+	db "@"
+
+WriterText: ; 487ad (12:47ad)
+	TX_FAR _WriterText
+	db "@"
+
+DirectorText: ; 487b2 (12:47b2)
+	db $08 ; asm
+
+	; check pokédex
+	ld hl, wPokedexOwned
+	ld b, wPokedexOwnedEnd - wPokedexOwned
+	call CountSetBits
+	ld a, [$d11e]
+	cp 150
+	jr nc, .CompletedDex
+	ld hl, .GameDesigner
+	jr .done
+.CompletedDex
+	ld hl, .CompletedDexText
+.done
+	call PrintText
+	jp TextScriptEnd
+
+.GameDesigner ; 487d0 (12:47d0)
+	TX_FAR _GameDesignerText
+	db "@"
+
+.CompletedDexText
+	TX_FAR _CompletedDexText
+	db $6
+	db $8 ; asm
+	ld hl, DisplayDiploma
+	ld b, BANK(DisplayDiploma)
+	call Bankswitch
+	ld a, $1
+	ld [$cc3c], a
+	jp TextScriptEnd
+
+GameFreakPCText1: ; 487eb (12:47eb)
+	TX_FAR _CeladonMansion3Text5
+	db "@"
+
+GameFreakPCText2: ; 487f0 (12:47f0)
+	TX_FAR _CeladonMansion3Text6
+	db "@"
+
+GameFreakPCText3: ; 487f5 (12:47f5)
+	TX_FAR _CeladonMansion3Text7
+	db "@"
+
+GameFreakSignText: ; 487fa (12:47fa)
+	TX_FAR _CeladonMansion3Text8
+	db "@"
--- /dev/null
+++ b/scripts/celadonmansion4.asm
@@ -1,0 +1,9 @@
+CeladonMansion4Script: ; 4886b (12:486b)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMansion4TextPointers: ; 4886e (12:486e)
+	dw CeladonMansion4Text1
+
+CeladonMansion4Text1: ; 48870 (12:4870)
+	TX_FAR _CeladonMansion4Text1
+	db "@"
--- /dev/null
+++ b/scripts/celadonmansion5.asm
@@ -1,0 +1,22 @@
+CeladonMansion5Script: ; 1dd3a (7:5d3a)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMansion5TextPointers: ; 1dd3d (7:5d3d)
+	dw CeladonMansion5Text1
+	dw CeladonMansion5Text2
+
+CeladonMansion5Text1: ; 1dd41 (7:5d41)
+	TX_FAR _CeladonMansion5Text1
+	db "@"
+
+CeladonMansion5Text2: ; 1dd46 (7:5d46)
+	db $08 ; asm
+	ld bc,(EEVEE << 8) | 25
+	call GivePokemon
+	jr nc, .asm_24365 ; 0x1dd4d
+	ld a, $45
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+.asm_24365 ; 0x1dd59
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/celadonmart1.asm
@@ -1,0 +1,19 @@
+CeladonMart1Script: ; 60f86 (18:4f86)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMart1TextPointers: ; 60f89 (18:4f89)
+	dw CeladonMart1Text1
+	dw CeladonMart1Text2
+	dw CeladonMart1Text3
+
+CeladonMart1Text1: ; 60f8f (18:4f8f)
+	TX_FAR _CeladonMart1Text1
+	db "@"
+
+CeladonMart1Text2: ; 60f94 (18:4f94)
+	TX_FAR _CeladonMart1Text2
+	db "@"
+
+CeladonMart1Text3: ; 60f99 (18:4f99)
+	TX_FAR _CeladonMart1Text3
+	db "@"
--- /dev/null
+++ b/scripts/celadonmart2.asm
@@ -1,0 +1,21 @@
+CeladonMart2Script: ; 560f5 (15:60f5)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMart2TextPointers: ; 560f8 (15:60f8)
+	dw CeladonMart2Text1
+	dw CeladonMart2Text2
+	dw CeladonMart2Text3
+	dw CeladonMart2Text4
+	dw CeladonMart2Text5
+
+CeladonMart2Text3: ; 56102 (15:6102)
+	TX_FAR _CeladonMart2Text3
+	db "@"
+
+CeladonMart2Text4: ; 56107 (15:6107)
+	TX_FAR _CeladonMart2Text4
+	db "@"
+
+CeladonMart2Text5: ; 5610c (15:610c)
+	TX_FAR _CeladonMart2Text5
+	db "@"
--- /dev/null
+++ b/scripts/celadonmart3.asm
@@ -1,0 +1,109 @@
+CeladonMart3Script: ; 48225 (12:4225)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMart3TextPointers: ; 48228 (12:4228)
+	dw CeladonMart3Text1
+	dw CeladonMart3Text2
+	dw CeladonMart3Text3
+	dw CeladonMart3Text4
+	dw CeladonMart3Text5
+	dw CeladonMart3Text6
+	dw CeladonMart3Text7
+	dw CeladonMart3Text8
+	dw CeladonMart3Text9
+	dw CeladonMart3Text10
+	dw CeladonMart3Text11
+	dw CeladonMart3Text12
+	dw CeladonMart3Text13
+	dw CeladonMart3Text14
+	dw CeladonMart3Text15
+	dw CeladonMart3Text16
+	dw CeladonMart3Text17
+
+CeladonMart3Text1: ; 4824a (12:424a)
+	db $08 ; asm
+	ld a, [$d778]
+	bit 7, a
+	jr nz, .asm_a5463 ; 0x48250
+	ld hl, TM18PreReceiveText
+	call PrintText
+	ld bc, (TM_18 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d778
+	set 7, [hl]
+	ld hl, ReceivedTM18Text
+	jr .asm_81359 ; 0x48268
+.BagFull
+	ld hl, TM18NoRoomText
+	jr .asm_81359 ; 0x4826d
+.asm_a5463 ; 0x4826f
+	ld hl, TM18ExplanationText
+.asm_81359 ; 0x48272
+	call PrintText
+	jp TextScriptEnd
+
+TM18PreReceiveText: ; 48278 (12:4278)
+	TX_FAR _TM18PreReceiveText
+	db "@"
+
+ReceivedTM18Text: ; 4827d (12:427d)
+	TX_FAR _ReceivedTM18Text
+	db $0B, "@"
+
+TM18ExplanationText: ; 48283 (12:4283)
+	TX_FAR _TM18ExplanationText
+	db "@"
+
+TM18NoRoomText: ; 48288 (12:4288)
+	TX_FAR _TM18NoRoomText
+	db "@"
+
+CeladonMart3Text2: ; 4828d (12:428d)
+	TX_FAR _CeladonMart3Text2
+	db "@"
+
+CeladonMart3Text3: ; 48292 (12:4292)
+	TX_FAR _CeladonMart3Text3
+	db "@"
+
+CeladonMart3Text4: ; 48297 (12:4297)
+	TX_FAR _CeladonMart3Text4
+	db "@"
+
+CeladonMart3Text5: ; 4829c (12:429c)
+	TX_FAR _CeladonMart3Text5
+	db "@"
+
+CeladonMart3Text12
+CeladonMart3Text10: ; 482a1 (12:42a1)
+CeladonMart3Text8: ; 482a1 (12:42a1)
+CeladonMart3Text6: ; 482a1 (12:42a1)
+	TX_FAR _CeladonMart3Text6
+	db "@"
+
+CeladonMart3Text7: ; 482a6 (12:42a6)
+	TX_FAR _CeladonMart3Text7
+	db "@"
+
+CeladonMart3Text9: ; 482ab (12:42ab)
+	TX_FAR _CeladonMart3Text9
+	db "@"
+
+CeladonMart3Text11: ; 482b0 (12:42b0)
+	TX_FAR _CeladonMart3Text11
+	db "@"
+
+CeladonMart3Text13: ; 482b5 (12:42b5)
+	TX_FAR _CeladonMart3Text13
+	db "@"
+
+CeladonMart3Text14: ; 482ba (12:42ba)
+	TX_FAR _CeladonMart3Text14
+	db "@"
+
+CeladonMart3Text17: ; 482bf (12:42bf)
+CeladonMart3Text16: ; 482bf (12:42bf)
+CeladonMart3Text15: ; 482bf (12:42bf)
+	TX_FAR _CeladonMart3Text15
+	db "@"
--- /dev/null
+++ b/scripts/celadonmart4.asm
@@ -1,0 +1,20 @@
+CeladonMart4Script: ; 48356 (12:4356)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMart4TextPointers: ; 48359 (12:4359)
+	dw CeladonMart4Text1
+	dw CeladonMart4Text2
+	dw CeladonMart4Text3
+	dw CeladonMart4Text4
+
+CeladonMart4Text2: ; 48361 (12:4361)
+	TX_FAR _CeladonMart4Text2
+	db "@"
+
+CeladonMart4Text3: ; 48366 (12:4366)
+	TX_FAR _CeladonMart4Text3
+	db "@"
+
+CeladonMart4Text4: ; 4836b (12:436b)
+	TX_FAR _CeladonMart4Text4
+	db "@"
--- /dev/null
+++ b/scripts/celadonmart5.asm
@@ -1,0 +1,21 @@
+CeladonMart5Script: ; 49069 (12:5069)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMart5TextPointers: ; 4906c (12:506c)
+	dw CeladonMart5Text1
+	dw CeladonMart5Text2
+	dw CeladonMart5Text3
+	dw CeladonMart5Text4
+	dw CeladonMart5Text5
+
+CeladonMart5Text1: ; 49076 (12:5076)
+	TX_FAR _CeladonMart5Text1
+	db "@"
+
+CeladonMart5Text2: ; 4907b (12:507b)
+	TX_FAR _CeladonMart5Text2
+	db "@"
+
+CeladonMart5Text5: ; 49080 (12:5080)
+	TX_FAR _CeladonMart5Text5
+	db "@"
--- /dev/null
+++ b/scripts/celadonmartelevator.asm
@@ -1,0 +1,71 @@
+CeladonMartElevatorScript: ; 48600 (12:4600)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	push hl
+	call nz, CeladonMartElevatorScript_4861c
+	pop hl
+	bit 7, [hl]
+	res 7, [hl]
+	call nz, CeladonMartElevatorScript_48654
+	xor a
+	ld [$cf0c], a
+	inc a
+	ld [$cc3c], a
+	ret
+
+CeladonMartElevatorScript_4861c: ; 4861c (12:461c)
+	ld hl, $d3af
+	ld a, [$d73b]
+	ld b, a
+	ld a, [$d73c]
+	ld c, a
+	call CeladonMartElevatorScript_4862a
+
+CeladonMartElevatorScript_4862a: ; 4862a (12:462a)
+	inc hl
+	inc hl
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ret
+
+CeladonMartElevatorScript_48631: ; 48631 (12:4631)
+	ld hl, CeladonMartElavatorFloors ; $4643
+	call LoadItemList
+	ld hl, CeldaonMartElevatorWarpMaps ; $464a
+	ld de, $cc5b
+	ld bc, $000a
+	jp CopyData
+
+CeladonMartElavatorFloors: ; 48643 (12:4643)
+	db $05 ; num elements in list
+	db $56, $57, $58, $59, $5A ; "1F", "2F", "3F", "4F, "5F"
+	db $FF ; terminator
+
+CeldaonMartElevatorWarpMaps: ; 4864a (12:464a)
+; first byte is warp number
+; second byte is map number
+; These specify where the player goes after getting out of the elevator.
+	db $05, CELADON_MART_1
+	db $02, CELADON_MART_2
+	db $02, CELADON_MART_3
+	db $02, CELADON_MART_4
+	db $02, CELADON_MART_5
+
+CeladonMartElevatorScript_48654: ; 48654 (12:4654)
+	ld b, BANK(ShakeElevator)
+	ld hl, ShakeElevator
+	jp Bankswitch
+
+CeladonMartElevatorTextPointers: ; 4865c (12:465c)
+	dw CeladonMartElevatorText1
+
+CeladonMartElevatorText1: ; 4865e (12:465e)
+	db $08 ; asm
+	call CeladonMartElevatorScript_48631
+	ld hl, CeldaonMartElevatorWarpMaps ; $464a
+	ld a, $61
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/celadonmartroof.asm
@@ -1,0 +1,263 @@
+CeladonMartRoofScript: ; 483d5 (12:43d5)
+	jp EnableAutoTextBoxDrawing
+
+CeladonMartRoofScript_483d8: ; 483d8 (12:43d8)
+	xor a
+	ld [$cd37], a
+	ld de, $cc5b
+	ld hl, CeladonMartRoofDrinkList ; $4408
+.asm_483e2
+	ld a, [hli]
+	and a
+	jr z, .asm_48404
+	push hl
+	push de
+	ld [$d11e], a
+	ld b, a
+	ld a, $1c
+	call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
+	pop de
+	pop hl
+	ld a, b
+	and a
+	jr z, .asm_483e2
+	ld a, [$d11e]
+	ld [de], a
+	inc de
+	push hl
+	ld hl, $cd37
+	inc [hl]
+	pop hl
+	jr .asm_483e2
+.asm_48404
+	ld a, $ff
+	ld [de], a
+	ret
+
+CeladonMartRoofDrinkList: ; 48408 (12:4408)
+	db FRESH_WATER
+	db SODA_POP
+	db LEMONADE
+	db $00
+
+CeladonMartRoofScript_4840c: ; 4840c (12:440c)
+	ld hl, $d730
+	set 6, [hl]
+	ld hl, CeladonMartRoofText_484ee ; $44ee
+	call PrintText
+	xor a
+	ld [wCurrentMenuItem], a ; $cc26
+	ld a, $3
+	ld [wMenuWatchedKeys], a ; $cc29
+	ld a, [$cd37]
+	dec a
+	ld [wMaxMenuItem], a ; $cc28
+	ld a, $2
+	ld [wTopMenuItemY], a ; $cc24
+	ld a, $1
+	ld [wTopMenuItemX], a ; $cc25
+	ld a, [$cd37]
+	dec a
+	ld bc, $2
+	ld hl, $3
+	call AddNTimes
+	dec l
+	ld b, l
+	ld c, $c
+	ld hl, wTileMap
+	call TextBoxBorder
+	call UpdateSprites
+	call CeladonMartRoofScript_48532
+	ld hl, $d730
+	res 6, [hl]
+	call HandleMenuInput
+	bit 1, a
+	ret nz
+	ld hl, $cc5b
+	ld a, [wCurrentMenuItem] ; $cc26
+	ld d, $0
+	ld e, a
+	add hl, de
+	ld a, [hl]
+	ld [$ffdb], a
+	cp FRESH_WATER
+	jr z, .asm_484b6
+	cp SODA_POP
+	jr z, .asm_48492
+	ld a, [$d778]
+	bit 6, a
+	jr nz, .asm_484e0
+	ld hl, CeladonMartRoofText_48515 ; $4515
+	call PrintText
+	call RemoveItemByIDBank12
+	ld bc, (TM_49 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM49Text
+	call PrintText
+	ld hl, $d778
+	set 6, [hl]
+	ret
+.asm_48492
+	ld a, [$d778]
+	bit 5, a
+	jr nz, .asm_484e0
+	ld hl, CeladonMartRoofText_48504 ; $4504
+	call PrintText
+	call RemoveItemByIDBank12
+	ld bc, (TM_48 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, CeladonMartRoofText_4850a ; $450a
+	call PrintText
+	ld hl, $d778
+	set 5, [hl]
+	ret
+.asm_484b6
+	ld a, [$d778]
+	bit 4, a
+	jr nz, .asm_484e0
+	ld hl, CeladonMartRoofText_484f3 ; $44f3
+	call PrintText
+	call RemoveItemByIDBank12
+	ld bc, (TM_13 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, CeladonMartRoofText_484f9 ; $44f9
+	call PrintText
+	ld hl, $d778
+	set 4, [hl]
+	ret
+.BagFull
+	ld hl, CeladonMartRoofText_48526 ; $4526
+	jp PrintText
+.asm_484e0
+	ld hl, CeladonMartRoofText_4852c ; $452c
+	jp PrintText
+
+RemoveItemByIDBank12: ; 484e6 (12:44e6)
+	ld b, BANK(RemoveItemByID)
+	ld hl, RemoveItemByID
+	jp Bankswitch
+
+CeladonMartRoofText_484ee: ; 484ee (12:44ee)
+	TX_FAR _CeladonMartRoofText_484ee
+	db "@"
+
+CeladonMartRoofText_484f3: ; 484f3 (12:44f3)
+	TX_FAR _CeladonMartRoofText_484f3
+	db $0d
+	db "@"
+
+CeladonMartRoofText_484f9: ; 484f9 (12:44f9)
+	TX_FAR _CeladonMartRoofText_484f9
+	db $0b
+	TX_FAR _CeladonMartRoofText_484fe
+	db $0d
+	db "@"
+
+CeladonMartRoofText_48504: ; 48504 (12:4504)
+	TX_FAR _CeladonMartRoofText_48504
+	db $0d
+	db "@"
+
+CeladonMartRoofText_4850a: ; 4850a (12:450a)
+	TX_FAR _CeladonMartRoofText_4850a
+	db $0b
+	TX_FAR _CeladonMartRoofText_4850f
+	db $0d
+	db "@"
+
+CeladonMartRoofText_48515: ; 48515 (12:4515)
+	TX_FAR _CeladonMartRoofText_48515
+	db $0d
+	db "@"
+
+ReceivedTM49Text: ; 4851b (12:451b)
+	TX_FAR _ReceivedTM49Text
+	db $0b
+	TX_FAR _CeladonMartRoofText_48520
+	db $0d
+	db "@"
+
+CeladonMartRoofText_48526: ; 48526 (12:4526)
+	TX_FAR _CeladonMartRoofText_48526
+	db $0d
+	db "@"
+
+CeladonMartRoofText_4852c: ; 4852c (12:452c)
+	TX_FAR _CeladonMartRoofText_4852c
+	db $0d
+	db "@"
+
+CeladonMartRoofScript_48532: ; 48532 (12:4532)
+	ld hl, $cc5b
+	xor a
+	ld [$ffdb], a
+.asm_48538
+	ld a, [hli]
+	cp $ff
+	ret z
+	push hl
+	ld [$d11e], a
+	call GetItemName
+	FuncCoord 2, 2 ; $c3ca
+	ld hl, Coord
+	ld a, [$ffdb]
+	ld bc, $28
+	call AddNTimes
+	ld de, $cd6d
+	call PlaceString
+	ld hl, $ffdb
+	inc [hl]
+	pop hl
+	jr .asm_48538
+
+CeladonMartRoofTextPointers: ; 4855b (12:455b)
+	dw CeladonMartRoofText1
+	dw CeladonMartRoofText2
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText6
+
+CeladonMartRoofText1: ; 48567 (12:4567)
+	TX_FAR _CeladonMartRoofText1
+	db "@"
+
+CeladonMartRoofText2: ; 4856c (12:456c)
+	db $08 ; asm
+	call CeladonMartRoofScript_483d8
+	ld a, [$cd37]
+	and a
+	jr z, .asm_914b9 ; 0x48574
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, CeladonMartRoofText4
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_05aa4 ; 0x48588
+	call CeladonMartRoofScript_4840c
+	jr .asm_05aa4 ; 0x4858d
+.asm_914b9 ; 0x4858f
+	ld hl, CeladonMartRoofText3
+	call PrintText
+.asm_05aa4 ; 0x48595
+	jp TextScriptEnd
+
+CeladonMartRoofText3: ; 48598 (12:4598)
+	TX_FAR _CeladonMartRoofText_48598
+	db "@"
+
+CeladonMartRoofText4: ; 4859d (12:459d)
+	TX_FAR _CeladonMartRoofText4
+	db "@"
+
+CeladonMartRoofText5: ; 485a2 (12:45a2)
+	db $f5
+
+CeladonMartRoofText6: ; 485a3 (12:45a3)
+	TX_FAR _CeladonMartRoofText6
+	db "@"
--- /dev/null
+++ b/scripts/celadonpokecenter.asm
@@ -1,0 +1,23 @@
+CeladonPokecenterScript: ; 488b8 (12:48b8)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+CeladonPokecenterTextPointers: ; 488be (12:48be)
+	dw CeladonPokecenterText1
+	dw CeladonPokecenterText2
+	dw CeladonPokecenterText3
+	dw CeladonPokecenterText4
+
+CeladonPokecenterText4: ; 488c6 (12:48c6)
+	db $f6
+
+CeladonPokecenterText1: ; 488c7 (12:48c7)
+	db $ff
+
+CeladonPokecenterText2: ; 488c8 (12:48c8)
+	TX_FAR _CeladonPokecenterText2
+	db "@"
+
+CeladonPokecenterText3: ; 488cd (12:48cd)
+	TX_FAR _CeladonPokecenterText3
+	db "@"
--- /dev/null
+++ b/scripts/celadonprizeroom.asm
@@ -1,0 +1,20 @@
+CeladonPrizeRoomScript: ; 490f0 (12:50f0)
+	jp EnableAutoTextBoxDrawing
+
+CeladonPrizeRoomTextPointers: ; 490f3 (12:50f3)
+	dw CeladonPrizeRoomText1
+	dw CeladonPrizeRoomText2
+	dw CeladonPrizeRoomText3
+	dw CeladonPrizeRoomText3
+	dw CeladonPrizeRoomText3
+
+CeladonPrizeRoomText1: ; 490fd (12:50fd)
+	TX_FAR _CeladonPrizeRoomText1
+	db "@"
+
+CeladonPrizeRoomText2: ; 49102 (12:5102)
+	TX_FAR _CeladonPrizeRoomText2
+	db "@"
+
+CeladonPrizeRoomText3: ; 49107 (12:5107)
+	db $f7
--- /dev/null
+++ b/scripts/ceruleancity.asm
@@ -1,0 +1,448 @@
+CeruleanCityScript: ; 19480 (6:5480)
+	call EnableAutoTextBoxDrawing
+	ld hl, CeruleanCityScriptPointers
+	ld a, [W_CERULEANCITYCURSCRIPT]
+	jp CallFunctionInTable
+
+CeruleanCityScript_1948c: ; 1948c (6:548c)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ld a, $5
+	ld [$cc4d], a
+	ld a, $11
+	jp Predef
+
+CeruleanCityScriptPointers: ; 1949d (6:549d)
+	dw CeruleanCityScript0
+	dw CeruleanCityScript1
+	dw CeruleanCityScript2
+	dw CeruleanCityScript3
+	dw CeruleanCityScript4
+
+CeruleanCityScript4: ; 194a7 (6:54a7)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, CeruleanCityScript_1948c
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d75b
+	set 7, [hl]
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ret
+
+CeruleanCityScript0: ; 194c8 (6:54c8)
+	ld a, [$d75b]
+	bit 7, a
+	jr nz, .asm_194f7 ; 0x194cd $28
+	ld hl, CeruleanCityCoords1
+	call ArePlayerCoordsInArray
+	jr nc, .asm_194f7 ; 0x194d5 $20
+	ld a, [$cd3d]
+	cp $1
+	ld a, $8
+	ld b, $0
+	jr nz, .asm_194e6 ; 0x194e0 $4
+	ld a, $4
+	ld b, $4
+.asm_194e6
+	ld [$d528], a
+	ld a, b
+	ld [$c129], a
+	call Delay3
+	ld a, $2
+	ld [$ff8c], a
+	jp DisplayTextID
+.asm_194f7
+	ld a, [$d75a]
+	bit 0, a
+	ret nz
+	ld hl, CeruleanCityCoords2
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, [$d700]
+	and a
+	jr z, .asm_19512 ; 0x19508 $8
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+.asm_19512
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [W_XCOORD]
+	cp $14
+	jr z, .asm_19535 ; 0x19526 $d
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $5
+	ld [$ff8b], a
+	call Func_3500
+	ld [hl], $19
+.asm_19535
+	ld a, $5
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld de, CeruleanCityMovement1
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $1
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ret
+
+CeruleanCityCoords1: ; 1954f (6:554f)
+	db $07,$1e
+	db $09,$1e
+	db $ff
+
+CeruleanCityCoords2: ; 19554 (6:5554)
+	db $06,$14
+	db $06,$15
+	db $ff
+
+CeruleanCityMovement1: ; 19559 (6:5559)
+	db $00,$00,$00,$FF
+
+CeruleanCityScript_1955d: ; 1955d (6:555d)
+	ld a,1
+	ld [$ff8c],a
+	xor a
+	ld [$ff8d],a
+	jp Func_34a6 ; face object
+
+CeruleanCityScript1: ; 19567 (6:5567)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, CeruleanCityText_1966d
+	ld de, CeruleanCityText_19672
+	call PreBattleSaveRegisters
+	ld a, SONY1 + $c8
+	ld [W_CUROPPONENT], a
+
+	; select which team to use during the encounter
+	ld a, [W_RIVALSTARTER]
+	cp SQUIRTLE
+	jr nz, .NotSquirtle ; 0x19592 $4
+	ld a, $7
+	jr .done
+.NotSquirtle
+	cp BULBASAUR
+	jr nz, .Charmander ; 0x1959a $4
+	ld a, $8
+	jr .done
+.Charmander
+	ld a, $9
+.done
+	ld [W_TRAINERNO], a
+
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	call CeruleanCityScript_1955d
+	ld a, $2
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ret
+
+CeruleanCityScript2: ; 195b1 (6:55b1)
+	ld a, [$d057]
+	cp $ff
+	jp z, CeruleanCityScript_1948c
+	call CeruleanCityScript_1955d
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d75a
+	set 0, [hl]
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $1
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	ld a, [W_XCOORD]
+	cp $14
+	jr nz, .asm_195f0 ; 0x195e9 $5
+	ld de, CeruleanCityMovement4
+	jr .asm_195f3 ; 0x195ee $3
+.asm_195f0
+	ld de, CeruleanCityMovement3
+.asm_195f3
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $3
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ret
+
+CeruleanCityMovement3: ; 19600 (6:5600)
+	db $80,$00,$00,$00,$00,$00,$00,$FF
+
+CeruleanCityMovement4: ; 19608 (6:5608)
+	db $c0,$00,$00,$00,$00,$00,$00,$FF
+
+CeruleanCityScript3: ; 19610 (6:5610)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $5
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	call Func_2307
+	ld a, $0
+	ld [W_CERULEANCITYCURSCRIPT], a
+	ret
+
+CeruleanCityTextPointers: ; 1962d (6:562d)
+	dw CeruleanCityText1
+	dw CeruleanCityText2
+	dw CeruleanCityText3
+	dw CeruleanCityText4
+	dw CeruleanCityText5
+	dw CeruleanCityText6
+	dw CeruleanCityText7
+	dw CeruleanCityText8
+	dw CeruleanCityText9
+	dw CeruleanCityText10
+	dw CeruleanCityText11
+	dw CeruleanCityText12
+	dw CeruleanCityText13
+	dw MartSignText
+	dw PokeCenterSignText
+	dw CeruleanCityText16
+	dw CeruleanCityText17
+
+CeruleanCityText1: ; 1964f (6:564f)
+	db $08 ; asm
+	ld a, [$d75a] ; rival battle flag
+	bit 0, a
+	; do pre-battle text
+	jr z, .PreBattleText
+	; or talk about bill
+	ld hl, CeruleanCityText_19677
+	call PrintText
+	jr .end ; 0x1965d
+.PreBattleText ; 0x1965f
+	ld hl, CeruleanCityText_19668
+	call PrintText
+.end ; 0x19665
+	jp TextScriptEnd
+
+CeruleanCityText_19668: ; 19668 (6:5668)
+	TX_FAR _CeruleanCityText_19668
+	db "@"
+
+CeruleanCityText_1966d: ; 1966d (6:566d)
+	TX_FAR _CeruleanCityText_1966d
+	db "@"
+
+CeruleanCityText_19672: ; 19672 (6:5672)
+	TX_FAR _CeruleanCityText_19672
+	db "@"
+
+CeruleanCityText_19677: ; 19677 (6:5677)
+	TX_FAR _CeruleanCityText_19677
+	db "@"
+
+CeruleanCityText2: ; 1967c (6:567c)
+	db $8
+	ld a, [$d75b]
+	bit 7, a
+	jr nz, .asm_4ca20 ; 0x19682 $29
+	ld hl, CeruleanCityText_196d9
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, CeruleanCityText_196ee
+	ld de, CeruleanCityText_196ee
+	call PreBattleSaveRegisters
+	ld a, [$ff8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $4
+	ld [W_CERULEANCITYCURSCRIPT], a
+	jp TextScriptEnd
+.asm_4ca20 ; 0x196ad
+	ld hl, CeruleanCityText_196f3
+	call PrintText
+	ld bc, $e401
+	call GiveItem
+	jr c, .Success
+	ld hl, TM28NoRoomText
+	call PrintText
+	jr .Done
+.Success
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, ReceivedTM28Text
+	call PrintText
+	ld b, BANK(Func_74872)
+	ld hl, Func_74872
+	call Bankswitch
+.Done
+	jp TextScriptEnd
+
+CeruleanCityText_196d9: ; 196d9 (6:56d9)
+	TX_FAR _CeruleanCityText_196d9
+	db "@"
+
+ReceivedTM28Text: ; 196de (6:56de)
+	TX_FAR _ReceivedTM28Text
+	db $0B
+	TX_FAR _ReceivedTM28Text2
+	db $0D, "@"
+
+TM28NoRoomText: ; 196e9 (6:56e9)
+	TX_FAR _TM28NoRoomText
+	db "@"
+
+CeruleanCityText_196ee: ; 196ee (6:56ee)
+	TX_FAR _CeruleanCityText_196ee
+	db "@"
+
+CeruleanCityText_196f3: ; 196f3 (6:56f3)
+	TX_FAR _CeruleanCityText_196f3
+	db "@"
+
+CeruleanCityText3: ; 196f8 (6:56f8)
+	TX_FAR _CeruleanCityText3
+	db "@"
+
+CeruleanCityText4: ; 196fd (6:56fd)
+	TX_FAR _CeruleanCityText4
+	db "@"
+
+CeruleanCityText5: ; 19702 (6:5702)
+	TX_FAR _CeruleanCityText5
+	db "@"
+
+CeruleanCityText11: ; 19707 (6:5707)
+CeruleanCityText6: ; 19707 (6:5707)
+	TX_FAR _CeruleanCityText6
+	db "@"
+
+CeruleanCityText7: ; 1970c (6:570c)
+	db $08 ; asm
+	ldh a, [$d3]
+	cp $b4
+	jr c, .asm_e9fc9 ; 0x19711
+	ld hl, CeruleanCityText_19730
+	call PrintText
+	jr .asm_d486e ; 0x19719
+.asm_e9fc9 ; 0x1971b
+	cp $64
+	jr c, .asm_df99b ; 0x1971d
+	ld hl, CeruleanCityText_19735
+	call PrintText
+	jr .asm_d486e ; 0x19725
+.asm_df99b ; 0x19727
+	ld hl, CeruleanCityText_1973a
+	call PrintText
+.asm_d486e ; 0x1972d
+	jp TextScriptEnd
+
+CeruleanCityText_19730: ; 19730 (6:5730)
+	TX_FAR _CeruleanCityText_19730
+	db "@"
+
+CeruleanCityText_19735: ; 19735 (6:5735)
+	TX_FAR _CeruleanCityText_19735
+	db "@"
+
+CeruleanCityText_1973a: ; 1973a (6:573a)
+	TX_FAR _CeruleanCityText_1973a
+	db "@"
+
+CeruleanCityText8: ; 1973f (6:573f)
+	db $08 ; asm
+	ldh a, [$d3]
+	cp $b4
+	jr c, .asm_e28da ; 0x19744
+	ld hl, CeruleanCityText_1976f
+	call PrintText
+	jr .asm_f2f38 ; 0x1974c
+.asm_e28da ; 0x1974e
+	cp $78
+	jr c, .asm_15d08 ; 0x19750
+	ld hl, CeruleanCityText_19774
+	call PrintText
+	jr .asm_f2f38 ; 0x19758
+.asm_15d08 ; 0x1975a
+	cp $3c
+	jr c, .asm_d7fea ; 0x1975c
+	ld hl, CeruleanCityText_19779
+	call PrintText
+	jr .asm_f2f38 ; 0x19764
+.asm_d7fea ; 0x19766
+	ld hl, CeruleanCityText_1977e
+	call PrintText
+.asm_f2f38 ; 0x1976c
+	jp TextScriptEnd
+
+CeruleanCityText_1976f: ; 1976f (6:576f)
+	TX_FAR _CeruleanCityText_1976f
+	db "@"
+
+CeruleanCityText_19774: ; 19774 (6:5774)
+	TX_FAR _CeruleanCityText_19774
+	db "@"
+
+CeruleanCityText_19779: ; 19779 (6:5779)
+	TX_FAR _CeruleanCityText_19779
+	db "@"
+
+CeruleanCityText_1977e: ; 1977e (6:577e)
+	TX_FAR _CeruleanCityText_1977e
+	db "@"
+
+CeruleanCityText9: ; 19783 (6:5783)
+	TX_FAR _CeruleanCityText9
+	db "@"
+
+CeruleanCityText10: ; 19788 (6:5788)
+	TX_FAR _CeruleanCityText10
+	db "@"
+
+CeruleanCityText12: ; 1978d (6:578d)
+	TX_FAR _CeruleanCityText12
+	db "@"
+
+CeruleanCityText13: ; 19792 (6:5792)
+	TX_FAR _CeruleanCityText13
+	db "@"
+
+CeruleanCityText16: ; 19797 (6:5797)
+	TX_FAR _CeruleanCityText16
+	db "@"
+
+CeruleanCityText17: ; 1979c (6:579c)
+	TX_FAR _CeruleanCityText17
+	db "@"
--- /dev/null
+++ b/scripts/ceruleangym.asm
@@ -1,0 +1,224 @@
+CeruleanGymScript: ; 5c6b3 (17:46b3)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, CeruleanGymScript_5c6d0
+	call EnableAutoTextBoxDrawing
+	ld hl, CeruleanGymTrainerHeaders
+	ld de, CeruleanGymScriptPointers
+	ld a, [W_CERULEANGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_CERULEANGYMCURSCRIPT], a
+	ret
+
+CeruleanGymScript_5c6d0: ; 5c6d0 (17:46d0)
+	ld hl, Gym2CityName ; $46d9
+	ld de, Gym2LeaderName ; $46e7
+	jp LoadGymLeaderAndCityName
+
+Gym2CityName: ; 5c6d9 (17:46d9)
+	db "CERULEAN CITY@"
+
+Gym2LeaderName: ; 5c6e7 (17:46e7)
+	db "MISTY@"
+
+CeruleanGymScript_5c6ed: ; 5c6ed (17:46ed)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CERULEANGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CeruleanGymScriptPointers: ; 5c6f8 (17:46f8)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw CeruleanGymScript3
+
+CeruleanGymScript3: ; 5c700 (17:4700)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, CeruleanGymScript_5c6ed
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+CeruleanGymScript_5c70d: ; 5c70d (17:470d)
+	ld a, $5
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d75e
+	set 7, [hl]
+	ld bc, (TM_11 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d75e
+	set 6, [hl]
+	jr .asm_5c736
+.BagFull
+	ld a, $7
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_5c736
+	ld hl, W_OBTAINEDBADGES
+	set 1, [hl]
+	ld hl, $d72a
+	set 1, [hl]
+
+	; deactivate gym trainers
+	ld hl, $d75e
+	set 2, [hl]
+	set 3, [hl]
+
+	jp CeruleanGymScript_5c6ed
+
+CeruleanGymTextPointers: ; 5c74a (17:474a)
+	dw CeruleanGymText1
+	dw CeruleanGymText2
+	dw CeruleanGymText3
+	dw CeruleanGymText4
+	dw CeruleanGymText5
+	dw CeruleanGymText6
+	dw CeruleanGymText7
+
+CeruleanGymTrainerHeaders: ; 5c758 (17:4758)
+CeruleanGymTrainerHeader0: ; 5c758 (17:4758)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d75e ; flag's byte
+	dw CeruleanGymBattleText1 ; 0x47e9 TextBeforeBattle
+	dw CeruleanGymAfterBattleText1 ; 0x47f3 TextAfterBattle
+	dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
+	dw CeruleanGymEndBattleText1 ; 0x47ee TextEndBattle
+
+CeruleanGymTrainerHeader1: ; 5c764 (17:4764)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d75e ; flag's byte
+	dw CeruleanGymBattleText2 ; 0x4802 TextBeforeBattle
+	dw CeruleanGymAfterBattleText2 ; 0x480c TextAfterBattle
+	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
+	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
+
+	db $ff
+
+CeruleanGymText1: ; 5c771 (17:4771)
+	db $08 ; asm
+	ld a, [$d75e]
+	bit 7, a
+	jr z, .asm_10854 ; 0x5c777
+	bit 6, a
+	jr nz, .asm_37a1b ; 0x5c77b
+	call z, CeruleanGymScript_5c70d
+	call DisableWaitingAfterTextDisplay
+	jr .asm_95b04 ; 0x5c783
+.asm_37a1b ; 0x5c785
+	ld hl, CeruleanGymText_5c7c3
+	call PrintText
+	jr .asm_95b04 ; 0x5c78b
+.asm_10854 ; 0x5c78d
+	ld hl, CeruleanGymText_5c7be
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, CeruleanGymText_5c7d8
+	ld de, CeruleanGymText_5c7d8
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $2
+	ld [$d05c], a
+	xor a
+	ldh [$b4], a
+	ld a, $3
+	ld [W_CERULEANGYMCURSCRIPT], a
+.asm_95b04 ; 0x5c7bb
+	jp TextScriptEnd
+
+CeruleanGymText_5c7be: ; 5c7be (17:47be)
+	TX_FAR _CeruleanGymText_5c7be
+	db "@"
+
+CeruleanGymText_5c7c3: ; 5c7c3 (17:47c3)
+	TX_FAR _CeruleanGymText_5c7c3
+	db "@"
+
+CeruleanGymText5: ; 5c7c8 (17:47c8)
+	TX_FAR _CeruleanGymText_5c7c8
+	db "@"
+
+CeruleanGymText6: ; 5c7cd (17:47cd)
+ReceivedTM11Text: ; 5c7cd (17:47cd)
+	TX_FAR _ReceivedTM11Text
+	db $0B, "@"
+
+CeruleanGymText7: ; 5c7d3 (17:47d3)
+	TX_FAR _CeruleanGymText_5c7d3
+	db "@"
+
+CeruleanGymText_5c7d8: ; 5c7d8 (17:47d8)
+	TX_FAR _CeruleanGymText_5c7d8
+	db $11, $6, "@"
+
+CeruleanGymText2: ; 5c7df (17:47df)
+	db $08 ; asm
+	ld hl, CeruleanGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeruleanGymBattleText1: ; 5c7e9 (17:47e9)
+	TX_FAR _CeruleanGymBattleText1
+	db "@"
+
+CeruleanGymEndBattleText1: ; 5c7ee (17:47ee)
+	TX_FAR _CeruleanGymEndBattleText1
+	db "@"
+
+CeruleanGymAfterBattleText1: ; 5c7f3 (17:47f3)
+	TX_FAR _CeruleanGymAfterBattleText1
+	db "@"
+
+CeruleanGymText3: ; 5c7f8 (17:47f8)
+	db $08 ; asm
+	ld hl, CeruleanGymTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+CeruleanGymBattleText2: ; 5c802 (17:4802)
+	TX_FAR _CeruleanGymBattleText2
+	db "@"
+
+CeruleanGymEndBattleText2: ; 5c807 (17:4807)
+	TX_FAR _CeruleanGymEndBattleText2
+	db "@"
+
+CeruleanGymAfterBattleText2: ; 5c80c (17:480c)
+	TX_FAR _CeruleanGymAfterBattleText2
+	db "@"
+
+CeruleanGymText4: ; 5c811 (17:4811)
+	db $08 ; asm
+	ld a, [$d75e]
+	bit 7, a
+	jr nz, .asm_f80ce ; 0x5c817
+	ld hl, CeruleanGymText_5c82a
+	call PrintText
+	jr .asm_18a31 ; 0x5c81f
+.asm_f80ce ; 0x5c821
+	ld hl, CeruleanGymText_5c82f
+	call PrintText
+.asm_18a31 ; 0x5c827
+	jp TextScriptEnd
+
+CeruleanGymText_5c82a: ; 5c82a (17:482a)
+	TX_FAR _CeruleanGymText_5c82a
+	db "@"
+
+CeruleanGymText_5c82f: ; 5c82f (17:482f)
+	TX_FAR _CeruleanGymText_5c82f
+	db "@"
--- /dev/null
+++ b/scripts/ceruleanhouse1.asm
@@ -1,0 +1,18 @@
+CeruleanHouse1Script: ; 1d6f6 (7:56f6)
+	jp EnableAutoTextBoxDrawing
+
+CeruleanHouse1TextPointers: ; 1d6f9 (7:56f9)
+	dw CeruleanHouse1Text1
+	dw CeruleanHouse1Text2
+
+CeruleanHouse1Text1: ; 1d6fd (7:56fd)
+	TX_FAR _CeruleanHouse1Text1
+	db "@"
+
+CeruleanHouse1Text2: ; 1d702 (7:5702)
+	db $08 ; asm
+	ld a, $6
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/ceruleanhouse2.asm
@@ -1,0 +1,109 @@
+CeruleanHouse2Script: ; 74e09 (1d:4e09)
+	ld a, $1
+	ld [$cf0c], a
+	dec a
+	ld [$cc3c], a
+	ret
+
+CeruleanHouse2TextPointers: ; 74e13 (1d:4e13)
+	dw CeruleanHouse2Text1
+
+CeruleanHouse2Text1: ; 74e15 (1d:4e15)
+	db $8
+	ld hl, CeruleanHouse2Text_74e77
+	call PrintText
+	xor a
+	ld [wCurrentMenuItem], a
+	ld [wListScrollOffset], a
+.asm_74e23
+	ld hl, CeruleanHouse2Text_74e7c
+	call PrintText
+	ld hl, BadgeItemList
+	call LoadItemList
+	ld hl, $cf7b
+	ld a, l
+	ld [$cf8b], a
+	ld a, h
+	ld [$cf8c], a
+	xor a
+	ld [$cf93], a
+	ld [$cc35], a
+	ld a, SPECIALLISTMENU
+	ld [wListMenuID], a
+	call DisplayListMenuID
+	jr c, .asm_74e60 ; 0x74e49 $15
+	ld hl, TextPointers_74e86
+	ld a, [$cf91]
+	sub $15
+	add a
+	ld d, $0
+	ld e, a
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call PrintText
+	jr .asm_74e23 ; 0x74e5e $c3
+.asm_74e60
+	xor a
+	ld [wListScrollOffset], a
+	ld hl, CeruleanHouse2Text_74e81
+	call PrintText
+	jp TextScriptEnd
+
+BadgeItemList: ; 74e6d (1d:4e6d)
+	db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF
+
+CeruleanHouse2Text_74e77: ; 74e77 (1d:4e77)
+	TX_FAR _CeruleanHouse2Text_74e77
+	db "@"
+
+CeruleanHouse2Text_74e7c: ; 74e7c (1d:4e7c)
+	TX_FAR _CeruleanHouse2Text_74e7c
+	db "@"
+
+CeruleanHouse2Text_74e81: ; 74e81 (1d:4e81)
+	TX_FAR _CeruleanHouse2Text_74e81
+	db "@"
+
+TextPointers_74e86: ; 74e86 (1d:4e86)
+	dw CeruleanHouse2Text_74e96
+	dw CeruleanHouse2Text_74e9b
+	dw CeruleanHouse2Text_74ea0
+	dw CeruleanHouse2Text_74ea5
+	dw CeruleanHouse2Text_74eaa
+	dw CeruleanHouse2Text_74eaf
+	dw CeruleanHouse2Text_74eb4
+	dw CeruleanHouse2Text_74eb9
+
+CeruleanHouse2Text_74e96: ; 74e96 (1d:4e96)
+	TX_FAR _CeruleanHouse2Text_74e96
+	db "@"
+
+CeruleanHouse2Text_74e9b: ; 74e9b (1d:4e9b)
+	TX_FAR _CeruleanHouse2Text_74e9b
+	db "@"
+
+CeruleanHouse2Text_74ea0: ; 74ea0 (1d:4ea0)
+	TX_FAR _CeruleanHouse2Text_74ea0
+	db "@"
+
+CeruleanHouse2Text_74ea5: ; 74ea5 (1d:4ea5)
+	TX_FAR _CeruleanHouse2Text_74ea5
+	db "@"
+
+CeruleanHouse2Text_74eaa: ; 74eaa (1d:4eaa)
+	TX_FAR _CeruleanHouse2Text_74eaa
+	db "@"
+
+CeruleanHouse2Text_74eaf: ; 74eaf (1d:4eaf)
+	TX_FAR _CeruleanHouse2Text_74eaf
+	db "@"
+
+CeruleanHouse2Text_74eb4: ; 74eb4 (1d:4eb4)
+	TX_FAR _CeruleanHouse2Text_74eb4
+	db "@"
+
+CeruleanHouse2Text_74eb9: ; 74eb9 (1d:4eb9)
+	TX_FAR _CeruleanHouse2Text_74eb9
+	db "@"
--- /dev/null
+++ b/scripts/ceruleanhousetrashed.asm
@@ -1,0 +1,40 @@
+CeruleanHouseTrashedScript: ; 1d685 (7:5685)
+	call EnableAutoTextBoxDrawing
+	ret
+
+CeruleanHouseTrashedTextPointers: ; 1d689 (7:5689)
+	dw CeruleanHouseTrashedText1
+	dw CeruleanHouseTrashedText2
+	dw CeruleanHouseTrashedText3
+
+CeruleanHouseTrashedText1: ; 1d68f (7:568f)
+	db $08 ; asm
+	ld b, $e4
+	ld a, $1c
+	call Predef
+	and b
+	jr z, .asm_f8734 ; 0x1d698
+	ld hl, CeruleanHouseTrashedText_1d6b0
+	call PrintText
+	jr .asm_8dfe9 ; 0x1d6a0
+.asm_f8734 ; 0x1d6a2
+	ld hl, CeruleanHouseTrashedText_1d6ab
+	call PrintText
+.asm_8dfe9 ; 0x1d6a8
+	jp TextScriptEnd
+
+CeruleanHouseTrashedText_1d6ab: ; 1d6ab (7:56ab)
+	TX_FAR _CeruleanTrashedText_1d6ab
+	db "@"
+
+CeruleanHouseTrashedText_1d6b0: ; 1d6b0 (7:56b0)
+	TX_FAR _CeruleanTrashedText_1d6b0
+	db "@"
+
+CeruleanHouseTrashedText2: ; 1d6b5 (7:56b5)
+	TX_FAR _CeruleanHouseTrashedText2
+	db "@"
+
+CeruleanHouseTrashedText3: ; 1d6ba (7:56ba)
+	TX_FAR _CeruleanHouseTrashedText3
+	db "@"
--- /dev/null
+++ b/scripts/ceruleanmart.asm
@@ -1,0 +1,15 @@
+CeruleanMartScript: ; 5c895 (17:4895)
+	jp EnableAutoTextBoxDrawing
+
+CeruleanMartTextPointers: ; 5c898 (17:4898)
+	dw CeruleanMartText1
+	dw CeruleanMartText2
+	dw CeruleanMartText3
+
+CeruleanMartText2: ; 5c89e (17:489e)
+	TX_FAR _CeruleanMartText2
+	db "@"
+
+CeruleanMartText3: ; 5c8a3 (17:48a3)
+	TX_FAR _CeruleanMartText3
+	db "@"
--- /dev/null
+++ b/scripts/ceruleanpokecenter.asm
@@ -1,0 +1,23 @@
+CeruleanPokecenterScript: ; 5c645 (17:4645)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+CeruleanPokecenterTextPointers: ; 5c64b (17:464b)
+	dw CeruleanPokecenterText1
+	dw CeruleanPokecenterText2
+	dw CeruleanPokecenterText3
+	dw CeruleanPokecenterText4
+
+CeruleanPokecenterText4: ; 5c653 (17:4653)
+	db $f6
+
+CeruleanPokecenterText1: ; 5c654 (17:4654)
+	db $ff
+
+CeruleanPokecenterText2: ; 5c655 (17:4655)
+	TX_FAR _CeruleanPokecenterText1
+	db "@"
+
+CeruleanPokecenterText3: ; 5c65a (17:465a)
+	TX_FAR _CeruleanPokecenterText3
+	db "@"
--- /dev/null
+++ b/scripts/cinnabargym.asm
@@ -1,0 +1,483 @@
+CinnabarGymScript: ; 7574a (1d:574a)
+	call CinnabarGymScript_75759
+	call EnableAutoTextBoxDrawing
+	ld hl, CinnabarGymScriptPointers
+	ld a, [W_CINNABARGYMCURSCRIPT]
+	jp CallFunctionInTable
+
+CinnabarGymScript_75759: ; 75759 (1d:5759)
+	ld hl, $D126
+	bit 6, [hl]
+	res 6, [hl]
+	push hl
+	call nz, CinnabarGymScript_75772
+	pop hl
+	bit 5, [hl]
+	res 5, [hl]
+	call nz, Func_3ead
+	ld hl, $D79B
+	res 7, [hl]
+	ret
+CinnabarGymScript_75772: ; 75772 (1d:5772)
+	ld hl, Gym7CityName
+	ld de, Gym7LeaderName
+	jp LoadGymLeaderAndCityName
+
+Gym7CityName: ; 7577b (1d:577b)
+	db "CINNABAR ISLAND@"
+Gym7LeaderName: ; 7578b (1d:578b)
+	db "BLAINE@"
+
+CinnabarGymScript_75792: ; 75792 (1d:5792)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CINNABARGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ld [$da38], a
+	ret
+
+CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
+	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+	ld [wTrainerHeaderFlagBit], a
+	ret
+
+CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
+	dw CinnabarGymScript0
+	dw CinnabarGymScript1
+	dw CinnabarGymScript2
+	dw CinnabarGymScript3
+
+CinnabarGymScript0: ; 757ae (1d:57ae)
+	ld a, [$da38]
+	and a
+	ret z
+	ld [$ff8c], a
+	cp $4
+	jr nz, .asm_757c3 ; 0x757b7 $a
+	ld a, $4
+	ld [$d528], a
+	ld de, MovementData_757d7
+	jr .asm_757cb ; 0x757c1 $8
+.asm_757c3
+	ld de, MovementData_757da
+	ld a, $1
+	ld [$d528], a
+.asm_757cb
+	call MoveSprite
+	ld a, $1
+	ld [W_CINNABARGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+MovementData_757d7: ; 757d7 (1d:57d7)
+	db $80,$40,$FF
+
+MovementData_757da: ; 757da (1d:57da)
+	db $80,$FF
+
+CinnabarGymScript1: ; 757dc (1d:57dc)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [$da38]
+	ld [wTrainerHeaderFlagBit], a
+	ld [$ff8c], a
+	jp DisplayTextID
+
+CinnabarGymScript_757f1: ; 757f1 (1d:57f1)
+	ld a, $10
+	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+
+CinnabarGymScript2: ; 757f6 (1d:57f6)
+	ld a, [$d057]
+	cp $ff
+	jp z, CinnabarGymScript_75792
+	ld a, [wTrainerHeaderFlagBit]
+	ld [$ffdb], a
+	ld c, a
+	ld b, $2
+	ld hl, $d79a
+	call CinnabarGymScript_757f1
+	ld a, c
+	and a
+	jr nz, .asm_7581b ; 0x7580e $b
+	call WaitForSoundToFinish
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	call WaitForSoundToFinish
+.asm_7581b
+	ld a, [wTrainerHeaderFlagBit]
+	ld [$ffdb], a
+	ld c, a
+	ld b, $1
+	ld hl, $d79a
+	call CinnabarGymScript_757f1
+	ld a, [wTrainerHeaderFlagBit]
+	sub $2
+	ld c, a
+	ld b, $1
+	ld hl, $d79c
+	call CinnabarGymScript_757f1
+	call Func_3ead
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [$da38], a
+	ld a, $0
+	ld [W_CINNABARGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CinnabarGymScript3: ; 7584a (1d:584a)
+	ld a, [$d057]
+	cp $ff
+	jp z, CinnabarGymScript_75792
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+CinnabarGymScript3_75857: ; 75857 (1d:5857)
+	ld a, $a
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d79a
+	set 1, [hl]
+	ld bc, (TM_38 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $b
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d79a
+	set 0, [hl]
+	jr .asm_75880 ; 0x75877 $7
+.BagFull
+	ld a, $c
+	ld [$ff8c], a
+	call DisplayTextID
+.asm_75880
+	ld hl, W_OBTAINEDBADGES
+	set 6, [hl]
+	ld hl, $d72a
+	set 6, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d79a]
+	or %11111100
+	ld [$d79a], a
+	ld hl, $d79b
+	set 0, [hl]
+
+	ld hl, $d126
+	set 5, [hl]
+
+	jp CinnabarGymScript_75792
+
+CinnabarGymTextPointers: ; 7589f (1d:589f)
+	dw CinnabarGymText1
+	dw CinnabarGymText2
+	dw CinnabarGymText3
+	dw CinnabarGymText4
+	dw CinnabarGymText5
+	dw CinnabarGymText6
+	dw CinnabarGymText7
+	dw CinnabarGymText8
+	dw CinnabarGymText9
+	dw BlaineBadgeText
+	dw ReceivedTM38Text
+	dw TM38NoRoomText
+
+CinnabarGymScript_758b7: ; 758b7 (1d:58b7)
+	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld a, [$cf13]
+	cp $1
+	jr z, .asm_758d4
+	ld a, $2
+	jr .asm_758d6
+.asm_758d4
+	ld a, $3
+.asm_758d6
+	ld [W_CINNABARGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jp TextScriptEnd
+
+CinnabarGymText1: ; 758df (1d:58df)
+	db $8
+	ld a, [$d79a]
+	bit 1, a
+	jr z, .asm_d9332 ; 0x758e5 $16
+	bit 0, a
+	jr nz, .asm_3012f ; 0x758e9 $9
+	call z, CinnabarGymScript3_75857
+	call DisableWaitingAfterTextDisplay
+	jp TextScriptEnd
+.asm_3012f ; 0x758f4
+	ld hl, BlaineFireBlastText
+	call PrintText
+	jp TextScriptEnd
+.asm_d9332 ; 0x758fd
+	ld hl, BlaineBattleText
+	call PrintText
+	ld hl, BlaineEndBattleText
+	ld de, BlaineEndBattleText
+	call PreBattleSaveRegisters
+	ld a, $7
+	ld [$d05c], a
+	jp CinnabarGymScript_758b7
+
+BlaineBattleText: ; 75914 (1d:5914)
+	TX_FAR _BlaineBattleText
+	db "@"
+
+BlaineEndBattleText: ; 75919 (1d:5919)
+	TX_FAR _BlaineEndBattleText
+	db $11
+	db $d
+	db "@"
+
+BlaineFireBlastText: ; 75920 (1d:5920)
+	TX_FAR _BlaineFireBlastText
+	db "@"
+
+BlaineBadgeText: ; 75925 (1d:5925)
+	TX_FAR _BlaineBadgeText
+	db "@"
+
+ReceivedTM38Text: ; 7592a (1d:592a)
+	TX_FAR _ReceivedTM38Text
+	db $0B
+	TX_FAR _TM38ExplanationText
+	db "@"
+
+TM38NoRoomText: ; 75934 (1d:5934)
+	TX_FAR _TM38NoRoomText
+	db "@"
+
+CinnabarGymText2: ; 75939 (1d:5939)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 2, a
+	jr nz, .asm_46bb4 ; 0x75942
+	ld hl, CinnabarGymText_7595f
+	call PrintText
+	ld hl, CinnabarGymText_75964
+	ld de, CinnabarGymText_75964 ; $5964 XXX
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_46bb4 ; 0x75956
+	ld hl, CinnabarGymText_75969
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_7595f: ; 7595f (1d:595f)
+	TX_FAR _CinnabarGymText_7595f
+	db "@"
+
+CinnabarGymText_75964: ; 75964 (1d:5964)
+	TX_FAR _CinnabarGymText_75964
+	db "@"
+
+CinnabarGymText_75969: ; 75969 (1d:5969)
+	TX_FAR _CinnabarGymText_75969
+	db "@"
+
+CinnabarGymText3: ; 7596e (1d:596e)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 3, a
+	jr nz, .asm_4b406 ; 0x75977
+	ld hl, CinnabarGymText_75994
+	call PrintText
+	ld hl, CinnabarGymText_75999
+	ld de, CinnabarGymText_75999 ; $5999 XXX
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_4b406 ; 0x7598b
+	ld hl, CinnabarGymText_7599e
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_75994: ; 75994 (1d:5994)
+	TX_FAR _CinnabarGymText_75994
+	db "@"
+
+CinnabarGymText_75999: ; 75999 (1d:5999)
+	TX_FAR _CinnabarGymText_75999
+	db "@"
+
+CinnabarGymText_7599e: ; 7599e (1d:599e)
+	TX_FAR _CinnabarGymText_7599e
+	db "@"
+
+CinnabarGymText4: ; 759a3 (1d:59a3)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 4, a
+	jr nz, .asm_c0673 ; 0x759ac
+	ld hl, CinnabarGymText_759c9
+	call PrintText
+	ld hl, CinnabarGymText_759ce
+	ld de, CinnabarGymText_759ce ; $59ce XXX
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_c0673 ; 0x759c0
+	ld hl, CinnabarGymText_759d3
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_759c9: ; 759c9 (1d:59c9)
+	TX_FAR _CinnabarGymText_759c9
+	db "@"
+
+CinnabarGymText_759ce: ; 759ce (1d:59ce)
+	TX_FAR _CinnabarGymText_759ce
+	db "@"
+
+CinnabarGymText_759d3: ; 759d3 (1d:59d3)
+	TX_FAR _CinnabarGymText_759d3
+	db "@"
+
+CinnabarGymText5: ; 759d8 (1d:59d8)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 5, a
+	jr nz, .asm_5cfd7 ; 0x759e1
+	ld hl, CinnabarGymText_759fe
+	call PrintText
+	ld hl, CinnabarGymText_75a03
+	ld de, CinnabarGymText_75a03 ; $5a03 XXX
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_5cfd7 ; 0x759f5
+	ld hl, CinnabarGymText_75a08
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_759fe: ; 759fe (1d:59fe)
+	TX_FAR _CinnabarGymText_759fe
+	db "@"
+
+CinnabarGymText_75a03: ; 75a03 (1d:5a03)
+	TX_FAR _CinnabarGymText_75a03
+	db "@"
+
+CinnabarGymText_75a08: ; 75a08 (1d:5a08)
+	TX_FAR _CinnabarGymText_75a08
+	db "@"
+
+CinnabarGymText6: ; 75a0d (1d:5a0d)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 6, a
+	jr nz, .asm_776b4 ; 0x75a16
+	ld hl, CinnabarGymText_75a33
+	call PrintText
+	ld hl, CinnabarGymText_75a38
+	ld de, CinnabarGymText_75a38
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_776b4 ; 0x75a2a
+	ld hl, CinnabarGymText_75a3d
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_75a33: ; 75a33 (1d:5a33)
+	TX_FAR _CinnabarGymText_75a33
+	db "@"
+
+CinnabarGymText_75a38: ; 75a38 (1d:5a38)
+	TX_FAR _CinnabarGymText_75a38
+	db "@"
+
+CinnabarGymText_75a3d: ; 75a3d (1d:5a3d)
+	TX_FAR _CinnabarGymText_75a3d
+	db "@"
+
+CinnabarGymText7: ; 75a42 (1d:5a42)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79a]
+	bit 7, a
+	jr nz, .asm_2f755 ; 0x75a4b
+	ld hl, CinnabarGymText_75a68
+	call PrintText
+	ld hl, CinnabarGymText_75a6d
+	ld de, CinnabarGymText_75a6d
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_2f755 ; 0x75a5f
+	ld hl, CinnabarGymText_75a72
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_75a68: ; 75a68 (1d:5a68)
+	TX_FAR _CinnabarGymText_75a68
+	db "@"
+
+CinnabarGymText_75a6d: ; 75a6d (1d:5a6d)
+	TX_FAR _CinnabarGymText_75a6d
+	db "@"
+
+CinnabarGymText_75a72: ; 75a72 (1d:5a72)
+	TX_FAR _CinnabarGymText_75a72
+	db "@"
+
+CinnabarGymText8: ; 75a77 (1d:5a77)
+	db $08 ; asm
+	call CinnabarGymScript_757a0
+	ld a, [$d79b]
+	bit 0, a
+	jr nz, .asm_d87be ; 0x75a80
+	ld hl, CinnabarGymText_75a9d
+	call PrintText
+	ld hl, CinnabarGymText_75aa2
+	ld de, CinnabarGymText_75aa2 ; $5aa2 XXX
+	call PreBattleSaveRegisters
+	jp CinnabarGymScript_758b7
+.asm_d87be ; 0x75a94
+	ld hl, CinnabarGymText_75aa7
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_75a9d: ; 75a9d (1d:5a9d)
+	TX_FAR _CinnabarGymText_75a9d
+	db "@"
+
+CinnabarGymText_75aa2: ; 75aa2 (1d:5aa2)
+	TX_FAR _CinnabarGymText_75aa2
+	db "@"
+
+CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7)
+	TX_FAR _CinnabarGymText_75aa7
+	db "@"
+
+CinnabarGymText9: ; 75aac (1d:5aac)
+	db $08 ; asm
+	ld a, [$d79a]
+	bit 1, a
+	jr nz, .asm_627d9 ; 0x75ab2
+	ld hl, CinnabarGymText_75ac2
+	jr .asm_0b11d ; 0x75ab7
+.asm_627d9 ; 0x75ab9
+	ld hl, CinnabarGymText_75ac7
+.asm_0b11d ; 0x75abc
+	call PrintText
+	jp TextScriptEnd
+
+CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2)
+	TX_FAR _CinnabarGymText_75ac2
+	db "@"
+
+CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7)
+	TX_FAR _CinnabarGymText_75ac7
+	db "@"
--- /dev/null
+++ b/scripts/cinnabarisland.asm
@@ -1,0 +1,87 @@
+CinnabarIslandScript: ; 1ca19 (7:4a19)
+	call EnableAutoTextBoxDrawing
+	ld hl, $d126
+	set 5, [hl]
+	ld hl, $d796
+	res 0, [hl]
+	ld hl, $d7a3
+	res 1, [hl]
+	ld hl, CinnabarIslandScriptPointers
+	ld a, [W_CINNABARISLANDCURSCRIPT]
+	jp CallFunctionInTable
+
+CinnabarIslandScriptPointers: ; 1ca34 (7:4a34)
+	dw CinnabarIslandScript0
+	dw CinnabarIslandScript1
+
+CinnabarIslandScript0: ; 1ca38 (7:4a38)
+	ld b, SECRET_KEY
+	call IsItemInBag
+	ret nz
+	ld a, [W_YCOORD]
+	cp $4
+	ret nz
+	ld a, [W_XCOORD]
+	cp $12
+	ret nz
+	ld a, $8
+	ld [$d528], a
+	ld a, $8
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $1
+	ld [$cd38], a
+	ld a, $80
+	ld [$ccd3], a
+	call Func_3486
+	xor a
+	ld [$c109], a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [W_CINNABARISLANDCURSCRIPT], a
+	ret
+
+CinnabarIslandScript1: ; 1ca73 (7:4a73)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	ld a, $0
+	ld [W_CINNABARISLANDCURSCRIPT], a
+	ret
+
+CinnabarIslandTextPointers: ; 1ca81 (7:4a81)
+	dw CinnabarIslandText1
+	dw CinnabarIslandText2
+	dw CinnabarIslandText3
+	dw MartSignText
+	dw PokeCenterSignText
+	dw CinnabarIslandText6
+	dw CinnabarIslandText7
+	dw CinnabarIslandText8
+
+CinnabarIslandText8: ; 1ca91 (7:4a91)
+	TX_FAR _CinnabarIslandText8
+	db "@"
+
+CinnabarIslandText1: ; 1ca96 (7:4a96)
+	TX_FAR _CinnabarIslandText1
+	db "@"
+
+CinnabarIslandText2: ; 1ca9b (7:4a9b)
+	TX_FAR _CinnabarIslandText2
+	db "@"
+
+CinnabarIslandText3: ; 1caa0 (7:4aa0)
+	TX_FAR _CinnabarIslandText3
+	db "@"
+
+CinnabarIslandText6: ; 1caa5 (7:4aa5)
+	TX_FAR _CinnabarIslandText6
+	db "@"
+
+CinnabarIslandText7: ; 1caaa (7:4aaa)
+	TX_FAR _CinnabarIslandText7
+	db "@"
--- /dev/null
+++ b/scripts/cinnabarmart.asm
@@ -1,0 +1,15 @@
+CinnabarMartScript: ; 75e7e (1d:5e7e)
+	jp EnableAutoTextBoxDrawing
+
+CinnabarMartTextPointers: ; 75e81 (1d:5e81)
+	dw CinnabarMartText1
+	dw CinnabarMartText2
+	dw CinnabarMartText3
+
+CinnabarMartText2: ; 75e87 (1d:5e87)
+	TX_FAR _CinnabarMartText2
+	db "@"
+
+CinnabarMartText3: ; 75e8c (1d:5e8c)
+	TX_FAR _CinnabarMartText3
+	db "@"
--- /dev/null
+++ b/scripts/cinnabarpokecenter.asm
@@ -1,0 +1,23 @@
+CinnabarPokecenterScript: ; 75e2c (1d:5e2c)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+CinnabarPokecenterTextPointers: ; 75e32 (1d:5e32)
+	dw CinnabarPokecenterText1
+	dw CinnabarPokecenterText2
+	dw CinnabarPokecenterText3
+	dw CinnabarPokecenterText4
+
+CinnabarPokecenterText1: ; 75e3a (1d:5e3a)
+	db $ff
+
+CinnabarPokecenterText2: ; 75e3b (1d:5e3b)
+	TX_FAR _CinnabarPokecenterText1
+	db "@"
+
+CinnabarPokecenterText3: ; 75e40 (1d:5e40)
+	TX_FAR _CinnabarPokecenterText3
+	db "@"
+
+CinnabarPokecenterText4: ; 75e45 (1d:5e45)
+	db $f6
--- /dev/null
+++ b/scripts/copycatshouse1f.asm
@@ -1,0 +1,22 @@
+CopycatsHouse1FScript: ; 75ec3 (1d:5ec3)
+	jp EnableAutoTextBoxDrawing
+
+CopycatsHouse1FTextPointers: ; 75ec6 (1d:5ec6)
+	dw CopycatsHouse1FText1
+	dw CopycatsHouse1FText2
+	dw CopycatsHouse1FText3
+
+CopycatsHouse1FText1: ; 75ecc (1d:5ecc)
+	TX_FAR _CopycatsHouse1FText1
+	db "@"
+
+CopycatsHouse1FText2: ; 75ed1 (1d:5ed1)
+	TX_FAR _CopycatsHouse1FText2
+	db "@"
+
+CopycatsHouse1FText3: ; 75ed6 (1d:5ed6)
+	TX_FAR _CopycatsHouse1FText3
+	db $8
+	ld a, CHANSEY
+	call PlayCry
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/copycatshouse2f.asm
@@ -1,0 +1,104 @@
+CopycatsHouse2FScript: ; 5cc71 (17:4c71)
+	jp EnableAutoTextBoxDrawing
+
+CopycatsHouse2FTextPointers: ; 5cc74 (17:4c74)
+	dw CopycatsHouse2FText1
+	dw CopycatsHouse2FText2
+	dw CopycatsHouse2FText3
+	dw CopycatsHouse2FText4
+	dw CopycatsHouse2FText5
+	dw CopycatsHouse2FText6
+	dw CopycatsHouse2FText7
+
+CopycatsHouse2FText1: ; 5cc82 (17:4c82)
+	db $08 ; asm
+	ld a, [$d7af]
+	bit 0, a
+	jr nz, .asm_7ccf3 ; 0x5cc88
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, CopycatsHouse2FText_5ccd4
+	call PrintText
+	ld b, POKE_DOLL
+	call IsItemInBag
+	jr z, .asm_62ecd ; 0x5cc9a
+	ld hl, TM31PreReceiveText
+	call PrintText
+	ld bc, (TM_31 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM31Text
+	call PrintText
+	ld a, POKE_DOLL
+	ldh [$db], a
+	ld b, BANK(RemoveItemByID)
+	ld hl, RemoveItemByID
+	call Bankswitch
+	ld hl, $d7af
+	set 0, [hl]
+	jr .asm_62ecd ; 0x5ccc1
+.BagFull
+	ld hl, TM31NoRoomText
+	call PrintText
+	jr .asm_62ecd ; 0x5ccc9
+.asm_7ccf3 ; 0x5cccb
+	ld hl, TM31ExplanationText2
+	call PrintText
+.asm_62ecd ; 0x5ccd1
+	jp TextScriptEnd
+
+CopycatsHouse2FText_5ccd4: ; 5ccd4 (17:4cd4)
+	TX_FAR _CopycatsHouse2FText_5ccd4
+	db "@"
+
+TM31PreReceiveText: ; 5ccd9 (17:4cd9)
+	TX_FAR _TM31PreReceiveText
+	db "@"
+
+ReceivedTM31Text: ; 5ccde (17:4cde)
+	TX_FAR _ReceivedTM31Text
+	db $0B
+TM31ExplanationText1: ; 5cce3 (17:4ce3)
+	TX_FAR _TM31ExplanationText1
+	db $d, "@"
+
+TM31ExplanationText2: ; 5cce9 (17:4ce9)
+	TX_FAR _TM31ExplanationText2
+	db "@"
+
+TM31NoRoomText: ; 5ccee (17:4cee)
+	TX_FAR _TM31NoRoomText
+	db $d, "@"
+
+CopycatsHouse2FText2: ; 5ccf4 (17:4cf4)
+	TX_FAR _CopycatsHouse2FText2
+	db "@"
+
+CopycatsHouse2FText5: ; 5ccf9 (17:4cf9)
+CopycatsHouse2FText4: ; 5ccf9 (17:4cf9)
+CopycatsHouse2FText3: ; 5ccf9 (17:4cf9)
+	TX_FAR _CopycatsHouse2FText3
+	db "@"
+
+CopycatsHouse2FText6: ; 5ccfe (17:4cfe)
+	TX_FAR _CopycatsHouse2FText6
+	db "@"
+
+CopycatsHouse2FText7: ; 5cd03 (17:4d03)
+	db $08 ; asm
+	ld a, [$c109]
+	cp $4
+	ld hl, CopycatsHouse2FText_5cd1c
+	jr nz, .asm_399a4 ; 0x5cd0c
+	ld hl, CopycatsHouse2FText_5cd17
+.asm_399a4 ; 0x5cd11
+	call PrintText
+	jp TextScriptEnd
+
+CopycatsHouse2FText_5cd17: ; 5cd17 (17:4d17)
+	TX_FAR _CopycatsHouse2FText_5cd17
+	db "@"
+
+CopycatsHouse2FText_5cd1c: ; 5cd1c (17:4d1c)
+	TX_FAR _CopycatsHouse2FText_5cd1c
+	db "@"
--- /dev/null
+++ b/scripts/daycarem.asm
@@ -1,0 +1,274 @@
+DayCareMScript: ; 5624f (15:624f)
+	jp EnableAutoTextBoxDrawing
+
+DayCareMTextPointers: ; 56252 (15:6252)
+	dw DayCareMText1
+
+DayCareMText1: ; 56254 (15:6254)
+	db $8
+	call SaveScreenTilesToBuffer2
+	ld a, [W_DAYCARE_IN_USE]
+	and a
+	jp nz, DayCareMScript_562e1
+	ld hl, DayCareMText_5640f
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	ld hl, DayCareMText_5643b
+	jp nz, DayCareMScript_56409
+	ld a, [$d163]
+	dec a
+	ld hl, DayCareMText_56445
+	jp z, DayCareMScript_56409
+	ld hl, DayCareMText_56414
+	call PrintText
+	xor a
+	ld [$cfcb], a
+	ld [$d07d], a
+	ld [$cc35], a
+	call DisplayPartyMenu
+	push af
+	call GBPalWhiteOutWithDelay3
+	call Func_3dbe
+	call LoadGBPal
+	pop af
+	ld hl, DayCareMText_56437
+	jp c, DayCareMScript_56409
+	ld hl, Func_2171b
+	ld b, BANK(Func_2171b)
+	call Bankswitch
+	ld hl, DayCareMText_5644a
+	jp c, DayCareMScript_56409
+	xor a
+	ld [$cc2b], a
+	ld a, [wWhichPokemon]
+	ld hl, $d2b5
+	call GetPartyMonName
+	ld hl, DayCareMText_56419
+	call PrintText
+	ld a, $1
+	ld [W_DAYCARE_IN_USE], a
+	ld a, $3
+	ld [$cf95], a
+	call Func_3a68
+	xor a
+	ld [$cf95], a
+	call RemovePokemon
+	ld a, [$cf91]
+	call PlayCry
+	ld hl, DayCareMText_5641e
+	jp DayCareMScript_56409
+
+DayCareMScript_562e1: ; 562e1 (15:62e1)
+	xor a
+	ld hl, W_DAYCAREMONNAME
+	call GetPartyMonName
+	ld a, $3
+	ld [$cc49], a
+	call LoadMonData
+	ld hl, Func_58f43
+	ld b, BANK(Func_58f43)
+	call Bankswitch
+	ld a, d
+	cp $64
+	jr c, .asm_56315
+	ld d, $64
+	ld hl, CalcExperience
+	ld b, BANK(CalcExperience)
+	call Bankswitch
+	ld hl, $da6d
+	ld a, [H_NUMTOPRINT]
+	ld [hli], a
+	ld a, [$ff97]
+	ld [hli], a
+	ld a, [$ff98]
+	ld [hl], a
+	ld d, $64
+
+.asm_56315
+	xor a
+	ld [wTrainerEngageDistance], a
+	ld hl, $da62
+	ld a, [hl]
+	ld [wTrainerSpriteOffset], a
+	cp d
+	ld [hl], d
+	ld hl, DayCareMText_56432
+	jr z, .asm_56333
+	ld a, [wTrainerSpriteOffset]
+	ld b, a
+	ld a, d
+	sub b
+	ld [wTrainerEngageDistance], a
+	ld hl, DayCareMText_56423
+
+.asm_56333
+	call PrintText
+	ld a, [W_NUMINPARTY]
+	cp $6
+	ld hl, DayCareMText_56440
+	jp z, .asm_56403
+	ld de, wTrainerFacingDirection
+	xor a
+	ld [de], a
+	inc de
+	ld [de], a
+	ld hl, wTrainerScreenX
+	ld a, $1
+	ld [hli], a
+	ld [hl], $0
+	ld a, [wTrainerEngageDistance]
+	inc a
+	ld b, a
+	ld c, $2
+.asm_56357
+	push hl
+	push de
+	push bc
+	ld a, $b
+	call Predef
+	pop bc
+	pop de
+	pop hl
+	dec b
+	jr nz, .asm_56357
+	ld hl, DayCareMText_56428
+	call PrintText
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	call YesNoChoice
+	ld hl, DayCareMText_56437
+	ld a, [wCurrentMenuItem]
+	and a
+	jp nz, .asm_56403
+	ld hl, wTrainerFacingDirection
+	ld [$ff9f], a
+	ld a, [hli]
+	ld [$ffa0], a
+	ld a, [hl]
+	ld [$ffa1], a
+	call HasEnoughMoney
+	jr nc, .asm_56396
+	ld hl, DayCareMText_56454
+	jp .asm_56403
+
+.asm_56396
+	xor a
+	ld [W_DAYCARE_IN_USE], a
+	ld hl, wTrainerEngageDistance
+	ld [hli], a
+	inc hl
+	ld de, $d349
+	ld c, $3
+	ld a, $c
+	call Predef
+	ld a, (SFX_02_5a - SFX_Headers_02) / 3
+	call PlaySoundWaitForCurrent
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	ld hl, DayCareMText_5644f
+	call PrintText
+	ld a, $2
+	ld [$cf95], a
+	call Func_3a68
+	ld a, [W_DAYCAREMONDATA]
+	ld [$cf91], a
+	ld a, [W_NUMINPARTY]
+	dec a
+	push af
+	ld bc, $002c
+	push bc
+	ld hl, W_PARTYMON1_MOVE1
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld a, $1
+	ld [wHPBarMaxHP], a
+	ld a, $3e
+	call Predef
+	pop bc
+	pop af
+	ld hl, W_PARTYMON1_HP
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld bc, $0021
+	add hl, bc
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hl]
+	ld [de], a
+	ld a, [$cf91]
+	call PlayCry
+	ld hl, DayCareMText_5642d
+	jr DayCareMScript_56409
+
+.asm_56403
+	ld a, [wTrainerSpriteOffset]
+	ld [$da62], a
+
+DayCareMScript_56409: ; 56409 (15:6409)
+	call PrintText
+	jp TextScriptEnd
+
+DayCareMText_5640f: ; 5640f (15:640f)
+	TX_FAR _DayCareMText_5640f
+	db "@"
+
+DayCareMText_56414: ; 56414 (15:6414)
+	TX_FAR _DayCareMText_56414
+	db "@"
+
+DayCareMText_56419: ; 56419 (15:6419)
+	TX_FAR _DayCareMText_56419
+	db "@"
+
+DayCareMText_5641e: ; 5641e (15:641e)
+	TX_FAR _DayCareMText_5641e
+	db "@"
+
+DayCareMText_56423: ; 56423 (15:6423)
+	TX_FAR _DayCareMText_56423
+	db "@"
+
+DayCareMText_56428: ; 56428 (15:6428)
+	TX_FAR _DayCareMText_56428
+	db "@"
+
+DayCareMText_5642d: ; 5642d (15:642d)
+	TX_FAR _DayCareMText_5642d
+	db "@"
+
+DayCareMText_56432: ; 56432 (15:6432)
+	TX_FAR _DayCareMText_56432
+	db "@"
+
+DayCareMText_56437: ; 56437 (15:6437)
+	TX_FAR _DayCareMText_56437 ; 0x8c000
+DayCareMText_5643b: ; 5643b (15:643b)
+	TX_FAR _DayCareMText_5643b ; 0x8c013
+	db "@"
+
+DayCareMText_56440: ; 56440 (15:6440)
+	TX_FAR _DayCareMText_56440
+	db "@"
+
+DayCareMText_56445: ; 56445 (15:6445)
+	TX_FAR _DayCareMText_56445
+	db "@"
+
+DayCareMText_5644a: ; 5644a (15:644a)
+	TX_FAR _DayCareMText_5644a
+	db "@"
+
+DayCareMText_5644f: ; 5644f (15:644f)
+	TX_FAR _DayCareMText_5644f
+	db "@"
+
+DayCareMText_56454: ; 56454 (15:6454)
+	TX_FAR _DayCareMText_56454
+	db "@"
--- /dev/null
+++ b/scripts/diglettscave.asm
@@ -1,0 +1,5 @@
+DiglettsCaveScript: ; 61f6e (18:5f6e)
+	jp EnableAutoTextBoxDrawing
+
+DiglettsCaveTextPointers: ; 61f71 (18:5f71)
+	db "@"
--- /dev/null
+++ b/scripts/diglettscaveroute11.asm
@@ -1,0 +1,12 @@
+DiglettsCaveEntranceRoute11Script: ; 1e5ba (7:65ba)
+	call EnableAutoTextBoxDrawing
+	ld a, $16
+	ld [$d365], a
+	ret
+
+DiglettsCaveEntranceRoute11TextPointers: ; 1e5c3 (7:65c3)
+	dw DiglettsCaveEntranceRoute11Text1
+
+DiglettsCaveEntranceRoute11Text1: ; 1e5c5 (7:65c5)
+	TX_FAR _DiglettsCaveEntRoute11Text1
+	db "@"
--- /dev/null
+++ b/scripts/diglettscaveroute2.asm
@@ -1,0 +1,11 @@
+DiglettsCaveRoute2Script: ; 1deb0 (7:5eb0)
+	ld a, $d
+	ld [$d365], a
+	jp EnableAutoTextBoxDrawing
+
+DiglettsCaveRoute2TextPointers: ; 1deb8 (7:5eb8)
+	dw DiglettsCaveRoute2Text1
+
+DiglettsCaveRoute2Text1: ; 1deba (7:5eba)
+	TX_FAR _DiglettsCaveRoute2Text1
+	db "@"
--- /dev/null
+++ b/scripts/fanclub.asm
@@ -1,0 +1,181 @@
+FanClubScript: ; 59b70 (16:5b70)
+	jp EnableAutoTextBoxDrawing
+
+FanClubBikeInBag:
+; check if any bike paraphernalia in bag
+	ld a, [$d771]
+	bit 1, a ; got bike voucher?
+	ret nz
+	ld b, BICYCLE
+	call IsItemInBag
+	ret nz
+	ld b, BIKE_VOUCHER
+	jp IsItemInBag
+
+FanClubTextPointers: ; 59b84 (16:5b84)
+	dw FanClubText1
+	dw FanClubText2
+	dw FanClubText3
+	dw FanClubText4
+	dw FanClubText5
+	dw FanClubText6
+	dw FanClubText7
+	dw FanClubText8
+
+FanClubText1:
+; pikachu fan
+	db $08 ; asm
+	ld a, [$d771]
+	bit 7, a
+	jr nz, .mineisbetter
+	ld hl, .normaltext
+	call PrintText
+	ld hl, $d771
+	set 6, [hl]
+	jr .done
+.mineisbetter
+	ld hl, .bettertext
+	call PrintText
+	ld hl, $d771
+	res 7, [hl]
+.done
+	jp TextScriptEnd
+
+.normaltext
+	TX_FAR PikachuFanText
+	db "@"
+
+.bettertext
+	TX_FAR PikachuFanBetterText
+	db "@"
+
+FanClubText2:
+; seel fan
+	db $08 ; asm
+	ld a, [$d771]
+	bit 6, a
+	jr nz, .mineisbetter
+	ld hl, .normaltext
+	call PrintText
+	ld hl, $d771
+	set 7, [hl]
+	jr .done
+.mineisbetter
+	ld hl, .bettertext
+	call PrintText
+	ld hl, $d771
+	res 6, [hl]
+.done
+	jp TextScriptEnd
+
+.normaltext
+	TX_FAR SeelFanText
+	db "@"
+
+.bettertext
+	TX_FAR SeelFanBetterText
+	db "@"
+
+FanClubText3:
+; pikachu
+	db $8
+	ld hl, .text
+	call PrintText
+	ld a, PIKACHU
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+.text
+	TX_FAR FanClubPikachuText
+	db "@"
+
+FanClubText4:
+; seel
+	db $08 ; asm
+	ld hl, .text
+	call PrintText
+	ld a, SEEL
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+.text
+	TX_FAR FanClubSeelText
+	db "@"
+
+FanClubText5:
+; chair
+	db $08 ; asm
+	call FanClubBikeInBag
+	jr nz, .nothingleft
+
+	ld hl, .meetchairtext
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .nothanks
+
+	; tell the story
+	ld hl, .storytext
+	call PrintText
+	ld bc, (BIKE_VOUCHER << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, .receivedvouchertext
+	call PrintText
+	ld hl, $d771
+	set 1, [hl]
+	jr .done
+.BagFull
+	ld hl, .bagfulltext
+	call PrintText
+	jr .done
+.nothanks
+	ld hl, .nostorytext
+	call PrintText
+	jr .done
+.nothingleft
+	ld hl, .finaltext
+	call PrintText
+.done
+	jp TextScriptEnd
+
+.meetchairtext
+	TX_FAR FanClubMeetChairText
+	db "@"
+
+.storytext
+	TX_FAR FanClubChairStoryText
+	db "@"
+
+.receivedvouchertext
+	TX_FAR ReceivedBikeVoucherText
+	db $11
+	TX_FAR ExplainBikeVoucherText
+	db "@"
+
+.nostorytext
+	TX_FAR FanClubNoStoryText
+	db "@"
+
+.finaltext
+	TX_FAR FanClubChairFinalText
+	db "@"
+
+.bagfulltext
+	TX_FAR FanClubBagFullText
+	db "@"
+
+FanClubText6: ; 59c88 (16:5c88)
+	TX_FAR _FanClubText6
+	db "@"
+
+FanClubText7: ; 59c8d (16:5c8d)
+	TX_FAR _FanClubText7
+	db "@"
+
+FanClubText8: ; 59c92 (16:5c92)
+	TX_FAR _FanClubText8
+	db "@"
--- /dev/null
+++ b/scripts/fightingdojo.asm
@@ -1,0 +1,337 @@
+FightingDojoScript: ; 5cd5d (17:4d5d)
+	call EnableAutoTextBoxDrawing
+	ld hl, FightingDojoTrainerHeaders
+	ld de, FightingDojoScriptPointers
+	ld a, [W_FIGHTINGDOJOCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_FIGHTINGDOJOCURSCRIPT], a
+	ret
+
+FightingDojoScript_5cd70: ; 5cd70 (17:4d70)
+	xor a
+	ld [$cd6b], a
+	ld [$d642], a
+	ld [$da39], a
+	ret
+
+FightingDojoScriptPointers: ; 5cd7b (17:4d7b)
+	dw FightingDojoScript1
+	dw Func_324c
+	dw EndTrainerBattle
+	dw FightingDojoScript3
+
+FightingDojoScript1: ; 5cd83 (17:4d83)
+	ld a, [$d7b1]
+	bit 0, a
+	ret nz
+	call CheckFightingMapTrainers
+	ld a, [wTrainerHeaderFlagBit]
+	and a
+	ret nz
+	ld a, [$d7b1]
+	bit 1, a
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$cf0d], a
+	ld a, [W_YCOORD]
+	cp $3
+	ret nz
+	ld a, [W_XCOORD]
+	cp $4
+	ret nz
+	ld a, $1
+	ld [$cf0d], a
+	ld a, $1
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ret
+
+FightingDojoScript3: ; 5cdc6 (17:4dc6)
+	ld a, [$d057]
+	cp $ff
+	jp z, FightingDojoScript_5cd70
+	ld a, [$cf0d]
+	and a
+	jr z, .asm_5cde4
+	ld a, $1
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call Func_34a6
+
+.asm_5cde4
+	ld a, $f0
+	ld [$cd6b], a
+	ld a, [$d7b1]
+	or $3e
+	ld [$d7b1], a
+	ld a, $8
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [$cd6b], a
+	ld [$d642], a
+	ld [$da39], a
+	ret
+
+FightingDojoTextPointers: ; 5ce03 (17:4e03)
+	dw FightingDojoText1
+	dw FightingDojoText2
+	dw FightingDojoText3
+	dw FightingDojoText4
+	dw FightingDojoText5
+	dw FightingDojoText6
+	dw FightingDojoText7
+	dw FightingDojoText8
+
+FightingDojoTrainerHeaders: ; 5ce13 (17:4e13)
+FightingDojoTrainerHeader0: ; 5ce13 (17:4e13)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7b1 ; flag's byte
+	dw FightingDojoBattleText1 ; 0x4eac TextBeforeBattle
+	dw FightingDojoAfterBattleText1 ; 0x4eb6 TextAfterBattle
+	dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
+	dw FightingDojoEndBattleText1 ; 0x4eb1 TextEndBattle
+
+FightingDojoTrainerHeader1: ; 5ce1f (17:4e1f)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7b1 ; flag's byte
+	dw FightingDojoBattleText2 ; 0x4ec5 TextBeforeBattle
+	dw FightingDojoAfterBattleText2 ; 0x4ecf TextAfterBattle
+	dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
+	dw FightingDojoEndBattleText2 ; 0x4eca TextEndBattle
+
+FightingDojoTrainerHeader2: ; 5ce2b (17:4e2b)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b1 ; flag's byte
+	dw FightingDojoBattleText3 ; 0x4ede TextBeforeBattle
+	dw FightingDojoAfterBattleText3 ; 0x4ee8 TextAfterBattle
+	dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
+	dw FightingDojoEndBattleText3 ; 0x4ee3 TextEndBattle
+
+FightingDojoTrainerHeader3: ; 5ce37 (17:4e37)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b1 ; flag's byte
+	dw FightingDojoBattleText4 ; 0x4ef7 TextBeforeBattle
+	dw FightingDojoAfterBattleText4 ; 0x4f01 TextAfterBattle
+	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
+	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
+
+	db $ff
+
+FightingDojoText1: ; 5ce44 (17:4e44)
+	db $08 ; asm
+	ld a, [$d7b1]
+	bit 0, a
+	jp nz, .continue1
+	bit 1, a
+	jp nz, .continue2
+	ld hl, FightingDojoText_5ce8e
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, FightingDojoText_5ce93
+	ld de, FightingDojoText_5ce93
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $3
+	ld [W_FIGHTINGDOJOCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jr .asm_9dba4 ; 0x5ce7b
+.continue1 ; 0x5ce7d
+	ld hl, FightingDojoText_5ce9d
+	call PrintText
+	jr .asm_9dba4 ; 0x5ce83
+.continue2 ; 0x5ce85f
+	ld hl, FightingDojoText8
+	call PrintText
+.asm_9dba4 ; 0x5ce8b
+	jp TextScriptEnd
+
+FightingDojoText_5ce8e: ; 5ce8e (17:4e8e)
+	TX_FAR _FightingDojoText_5ce8e
+	db "@"
+
+FightingDojoText_5ce93: ; 5ce93 (17:4e93)
+	TX_FAR _FightingDojoText_5ce93
+	db "@"
+
+FightingDojoText8: ; 5ce98 (17:4e98)
+	TX_FAR _FightingDojoText_5ce98
+	db "@"
+
+FightingDojoText_5ce9d: ; 5ce9d (17:4e9d)
+	TX_FAR _FightingDojoText_5ce9d
+	db "@"
+
+FightingDojoText2: ; 5cea2 (17:4ea2)
+	db $08 ; asm
+	ld hl, FightingDojoTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FightingDojoBattleText1: ; 5ceac (17:4eac)
+	TX_FAR _FightingDojoBattleText1
+	db "@"
+
+FightingDojoEndBattleText1: ; 5ceb1 (17:4eb1)
+	TX_FAR _FightingDojoEndBattleText1
+	db "@"
+
+FightingDojoAfterBattleText1: ; 5ceb6 (17:4eb6)
+	TX_FAR _FightingDojoAfterBattleText1
+	db "@"
+
+FightingDojoText3: ; 5cebb (17:4ebb)
+	db $08 ; asm
+	ld hl, FightingDojoTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FightingDojoBattleText2: ; 5cec5 (17:4ec5)
+	TX_FAR _FightingDojoBattleText2
+	db "@"
+
+FightingDojoEndBattleText2: ; 5ceca (17:4eca)
+	TX_FAR _FightingDojoEndBattleText2
+	db "@"
+
+FightingDojoAfterBattleText2: ; 5cecf (17:4ecf)
+	TX_FAR _FightingDojoAfterBattleText2
+	db "@"
+
+FightingDojoText4: ; 5ced4 (17:4ed4)
+	db $08 ; asm
+	ld hl, FightingDojoTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FightingDojoBattleText3: ; 5cede (17:4ede)
+	TX_FAR _FightingDojoBattleText3
+	db "@"
+
+FightingDojoEndBattleText3: ; 5cee3 (17:4ee3)
+	TX_FAR _FightingDojoEndBattleText3
+	db "@"
+
+FightingDojoAfterBattleText3: ; 5cee8 (17:4ee8)
+	TX_FAR _FightingDojoAfterBattleText3
+	db "@"
+
+FightingDojoText5: ; 5ceed (17:4eed)
+	db $08 ; asm
+	ld hl, FightingDojoTrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FightingDojoBattleText4: ; 5cef7 (17:4ef7)
+	TX_FAR _FightingDojoBattleText4
+	db "@"
+
+FightingDojoEndBattleText4: ; 5cefc (17:4efc)
+	TX_FAR _FightingDojoEndBattleText4
+	db "@"
+
+FightingDojoAfterBattleText4: ; 5cf01 (17:4f01)
+	TX_FAR _FightingDojoAfterBattleText4
+	db "@"
+
+FightingDojoText6: ; 5cf06 (17:4f06)
+; Hitmonlee Poké Ball
+	db $08 ; asm
+	ld a, [$d7b1]
+	and %11000000
+	jr z, .GetMon
+	ld hl, OtherHitmonText
+	call PrintText
+	jr .done
+.GetMon
+	ld a, HITMONLEE
+	call DisplayPokedex
+	ld hl, WantHitmonleeText
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .done
+	ld a, [$cf91]
+	ld b, a
+	ld c, 30
+	call GivePokemon
+	jr nc, .done
+
+	; once Poké Ball is taken, hide sprite
+	ld a, $4a
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d7b1
+	set 6, [hl]
+	set 0, [hl]
+.done
+	jp TextScriptEnd
+
+WantHitmonleeText: ; 5cf49 (17:4f49)
+	TX_FAR _WantHitmonleeText
+	db "@"
+
+FightingDojoText7: ; 5cf4e (17:4f4e)
+; Hitmonchan Poké Ball
+	db $08 ; asm
+	ld a, [$d7b1]
+	and %11000000
+	jr z, .GetMon
+	ld hl, OtherHitmonText
+	call PrintText
+	jr .done
+.GetMon
+	ld a, HITMONCHAN
+	call DisplayPokedex
+	ld hl, WantHitmonchanText
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .done
+	ld a, [$cf91]
+	ld b, a
+	ld c,30
+	call GivePokemon
+	jr nc, .done
+	ld hl, $d7b1
+	set 7, [hl]
+	set 0, [hl]
+
+	; once Poké Ball is taken, hide sprite
+	ld a, $4b
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+.done
+	jp TextScriptEnd
+
+WantHitmonchanText: ; 5cf91 (17:4f91)
+	TX_FAR _WantHitmonchanText
+	db "@"
+
+OtherHitmonText: ; 5cf96 (17:4f96)
+	TX_FAR _OtherHitmonText
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiacity.asm
@@ -1,0 +1,170 @@
+FuchsiaCityScript: ; 19a2b (6:5a2b)
+	jp EnableAutoTextBoxDrawing
+
+FuchsiaCityTextPointers: ; 19a2e (6:5a2e)
+	dw FuchsiaCityText1
+	dw FuchsiaCityText2
+	dw FuchsiaCityText3
+	dw FuchsiaCityText4
+	dw FuchsiaCityText5
+	dw FuchsiaCityText6
+	dw FuchsiaCityText7
+	dw FuchsiaCityText8
+	dw FuchsiaCityText9
+	dw FuchsiaCityText10
+	dw FuchsiaCityText11
+	dw FuchsiaCityText12
+	dw FuchsiaCityText13
+	dw MartSignText
+	dw PokeCenterSignText
+	dw FuchsiaCityText16
+	dw FuchsiaCityText17
+	dw FuchsiaCityText18
+	dw FuchsiaCityText19
+	dw FuchsiaCityText20
+	dw FuchsiaCityText21
+	dw FuchsiaCityText22
+	dw FuchsiaCityText23
+	dw FuchsiaCityText24
+
+FuchsiaCityText1: ; 19a5e (6:5a5e)
+	TX_FAR _FuchsiaCityText1
+	db "@"
+
+FuchsiaCityText2: ; 19a63 (6:5a63)
+	TX_FAR _FuchsiaCityText2
+	db "@"
+
+FuchsiaCityText3: ; 19a68 (6:5a68)
+	TX_FAR _FuchsiaCityText3
+	db "@"
+
+FuchsiaCityText4: ; 19a6d (6:5a6d)
+	TX_FAR _FuchsiaCityText4
+	db "@"
+
+FuchsiaCityText5: ; 19a72 (6:5a72)
+FuchsiaCityText6: ; 19a72 (6:5a72)
+FuchsiaCityText7: ; 19a72 (6:5a72)
+FuchsiaCityText8: ; 19a72 (6:5a72)
+FuchsiaCityText9: ; 19a72 (6:5a72)
+FuchsiaCityText10: ; 19a72 (6:5a72)
+	TX_FAR _FuchsiaCityText5
+	db "@"
+
+FuchsiaCityText12: ; 19a77 (6:5a77)
+FuchsiaCityText11: ; 19a77 (6:5a77)
+	TX_FAR _FuchsiaCityText11
+	db "@"
+
+FuchsiaCityText13: ; 19a7c (6:5a7c)
+	TX_FAR _FuchsiaCityText13
+	db "@"
+
+FuchsiaCityText16: ; 19a81 (6:5a81)
+	TX_FAR _FuchsiaCityText16
+	db "@"
+
+FuchsiaCityText17: ; 19a86 (6:5a86)
+	TX_FAR _FuchsiaCityText17
+	db "@"
+
+FuchsiaCityText18: ; 19a8b (6:5a8b)
+	TX_FAR _FuchsiaCityText18
+	db "@"
+
+FuchsiaCityText19: ; 19a90 (6:5a90)
+	db $08 ; asm
+	ld hl, FuchsiaCityChanseyText
+	call PrintText
+	ld a, CHANSEY
+	call DisplayPokedex
+	jp TextScriptEnd
+
+FuchsiaCityChanseyText: ; 19a9f (6:5a9f)
+	TX_FAR _FuchsiaCityChanseyText
+	db "@"
+
+FuchsiaCityText20: ; 19aa4 (6:5aa4)
+	db $08 ; asm
+	ld hl, FuchsiaCityVoltorbText
+	call PrintText
+	ld a, VOLTORB
+	call DisplayPokedex
+	jp TextScriptEnd
+
+FuchsiaCityVoltorbText: ; 19ab3 (6:5ab3)
+	TX_FAR _FuchsiaCityVoltorbText
+	db "@"
+
+FuchsiaCityText21: ; 19ab8 (6:5ab8)
+	db $08 ; asm
+	ld hl, FuchsiaCityKangaskhanText
+	call PrintText
+	ld a, KANGASKHAN
+	call DisplayPokedex
+	jp TextScriptEnd
+
+FuchsiaCityKangaskhanText: ; 19ac7 (6:5ac7)
+	TX_FAR _FuchsiaCityKangaskhanText
+	db "@"
+
+FuchsiaCityText22: ; 19acc (6:5acc)
+	db $08 ; asm
+	ld hl, FuchsiaCitySlowpokeText
+	call PrintText
+	ld a, SLOWPOKE
+	call DisplayPokedex
+	jp TextScriptEnd
+
+FuchsiaCitySlowpokeText: ; 19adb (6:5adb)
+	TX_FAR _FuchsiaCitySlowpokeText
+	db "@"
+
+FuchsiaCityText23: ; 19ae0 (6:5ae0)
+	db $08 ; asm
+	ld hl, FuchsiaCityLaprasText
+	call PrintText
+	ld a, LAPRAS
+	call DisplayPokedex
+	jp TextScriptEnd
+
+FuchsiaCityLaprasText: ; 19aef (6:5aef)
+	TX_FAR _FuchsiaCityLaprasText
+	db "@"
+
+FuchsiaCityText24: ; 19af4 (6:5af4)
+	db $08 ; asm
+	ld a, [$d7f6]
+	bit 6, a
+	jr nz, .asm_3b4e8 ; 0x19afa
+	bit 7, a
+	jr nz, .asm_667d5 ; 0x19afe
+	ld hl, FuchsiaCityText_19b2a
+	call PrintText
+	jr .asm_4343f ; 0x19b06
+.asm_3b4e8 ; 0x19b08
+	ld hl, FuchsiaCityOmanyteText
+	call PrintText
+	ld a, OMANYTE
+	jr .asm_81556 ; 0x19b10
+.asm_667d5 ; 0x19b12
+	ld hl, FuchsiaCityKabutoText
+	call PrintText
+	ld a, KABUTO
+.asm_81556 ; 0x19b1a
+	call DisplayPokedex
+.asm_4343f ; 0x19b1d
+	jp TextScriptEnd
+
+FuchsiaCityOmanyteText: ; 19b20 (6:5b20)
+	TX_FAR _FuchsiaCityOmanyteText
+	db "@"
+
+FuchsiaCityKabutoText: ; 19b25 (6:5b25)
+	TX_FAR _FuchsiaCityKabutoText
+	db "@"
+
+FuchsiaCityText_19b2a: ; 19b2a (6:5b2a)
+	TX_FAR _FuchsiaCityText_19b2a
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiagym.asm
@@ -1,0 +1,336 @@
+FuchsiaGymScript: ; 7543d (1d:543d)
+	call FuchsiaGymScript_75453
+	call EnableAutoTextBoxDrawing
+	ld hl, FuchsiaGymTrainerHeaders
+	ld de, FuchsiaGymScriptPointers
+	ld a, [W_FUCHSIAGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_FUCHSIAGYMCURSCRIPT], a
+	ret
+
+FuchsiaGymScript_75453: ; 75453 (1d:5453)
+	ld hl, $D126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	ld hl, Gym5CityName
+	ld de, Gym5LeaderName
+	call LoadGymLeaderAndCityName
+	ret
+
+Gym5CityName: ; 75465 (1d:5465)
+	db "FUCHSIA CITY@"
+Gym5LeaderName: ; 75472 (1d:5472)
+	db "KOGA@"
+
+FuchsiaGymScript_75477: ; 75477 (1d:5477)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_FUCHSIAGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+FuchsiaGymScriptPointers: ; 75482 (1d:5482)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw FuchsiaGymScript3
+
+FuchsiaGymScript3: ; 7548a (1d:548a)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, FuchsiaGymScript_75477
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+FuchsiaGymScript3_75497: ; 75497 (1d:5497)
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d792
+	set 1, [hl]
+	ld bc, (TM_06 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $a
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d792
+	set 0, [hl]
+	jr .asm_754c0
+.BagFull
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_754c0
+	ld hl, W_OBTAINEDBADGES
+	set 4, [hl]
+	ld hl, $d72a
+	set 4, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d792]
+	or %11111100
+	ld [$d792], a
+
+	jp FuchsiaGymScript_75477
+
+FuchsiaGymTextPointers: ; 754d5 (1d:54d5)
+	dw FuchsiaGymText1
+	dw FuchsiaGymText2
+	dw FuchsiaGymText3
+	dw FuchsiaGymText4
+	dw FuchsiaGymText5
+	dw FuchsiaGymText6
+	dw FuchsiaGymText7
+	dw FuchsiaGymText8
+	dw FuchsiaGymText9
+	dw FuchsiaGymText10
+	dw FuchsiaGymText11
+
+FuchsiaGymTrainerHeaders: ; 754eb (1d:54eb)
+FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText1 ; 0x55ae TextBeforeBattle
+	dw FuchsiaGymAfterBattleText1 ; 0x55b8 TextAfterBattle
+	dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
+	dw FuchsiaGymEndBattleText1 ; 0x55b3 TextEndBattle
+
+FuchsiaGymTrainerHeader2: ; 754f7 (1d:54f7)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText2 ; 0x55c7 TextBeforeBattle
+	dw FuchsiaGymAfterBattleText2 ; 0x55d1 TextAfterBattle
+	dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
+	dw FuchsiaGymEndBattleText2 ; 0x55cc TextEndBattle
+
+FuchsiaGymTrainerHeader3: ; 75503 (1d:5503)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText3 ; 0x55e0 TextBeforeBattle
+	dw FuchsiaGymAfterBattleText3 ; 0x55ea TextAfterBattle
+	dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
+	dw FuchsiaGymEndBattleText3 ; 0x55e5 TextEndBattle
+
+FuchsiaGymTrainerHeader4: ; 7550f (1d:550f)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText4 ; 0x55f9 TextBeforeBattle
+	dw FuchsiaGymAfterBattleText4 ; 0x5603 TextAfterBattle
+	dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
+	dw FuchsiaGymEndBattleText4 ; 0x55fe TextEndBattle
+
+FuchsiaGymTrainerHeader5: ; 7551b (1d:551b)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText5 ; 0x5612 TextBeforeBattle
+	dw FuchsiaGymAfterBattleText5 ; 0x561c TextAfterBattle
+	dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
+	dw FuchsiaGymEndBattleText5 ; 0x5617 TextEndBattle
+
+FuchsiaGymTrainerHeader6: ; 75527 (1d:5527)
+	db $7 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d792 ; flag's byte
+	dw FuchsiaGymBattleText6 ; 0x562b TextBeforeBattle
+	dw FuchsiaGymAfterBattleText6 ; 0x5635 TextAfterBattle
+	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
+	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
+
+	db $ff
+
+FuchsiaGymText1: ; 75534 (1d:5534)
+	db $08 ; asm
+	ld a, [$d792]
+	bit 1, a
+	jr z, .asm_181b6 ; 0x7553a
+	bit 0, a
+	jr nz, .asm_adc3b ; 0x7553e
+	call z, FuchsiaGymScript3_75497
+	call DisableWaitingAfterTextDisplay
+	jr .asm_e84c6 ; 0x75546
+.asm_adc3b ; 0x75548
+	ld hl, UnnamedText_7558b
+	call PrintText
+	jr .asm_e84c6 ; 0x7554e
+.asm_181b6 ; 0x75550
+	ld hl, UnnamedText_75581
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, UnnamedText_75586
+	ld de, UnnamedText_75586
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $5
+	ld [$d05c], a
+	xor a
+	ldh [$b4], a
+	ld a, $3
+	ld [W_FUCHSIAGYMCURSCRIPT], a
+.asm_e84c6 ; 0x7557e
+	jp TextScriptEnd
+
+UnnamedText_75581: ; 75581 (1d:5581)
+	TX_FAR _UnnamedText_75581
+	db "@"
+
+UnnamedText_75586: ; 75586 (1d:5586)
+	TX_FAR _UnnamedText_75586
+	db "@"
+
+UnnamedText_7558b: ; 7558b (1d:558b)
+	TX_FAR _UnnamedText_7558b
+	db "@"
+
+FuchsiaGymText9: ; 75590 (1d:5590)
+	TX_FAR _UnnamedText_75590
+	db "@"
+
+FuchsiaGymText10: ; 75595 (1d:5595)
+	TX_FAR _ReceivedTM06Text
+	db $11
+
+TM06ExplanationText: ; 7559a (1d:559a)
+	TX_FAR _TM06ExplanationText
+	db "@"
+
+FuchsiaGymText11: ; 7559f (1d:559f)
+	TX_FAR _TM06NoRoomText
+	db "@"
+
+FuchsiaGymText2: ; 755a4 (1d:55a4)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText1: ; 755ae (1d:55ae)
+	TX_FAR _FuchsiaGymBattleText1
+	db "@"
+
+FuchsiaGymEndBattleText1: ; 755b3 (1d:55b3)
+	TX_FAR _FuchsiaGymEndBattleText1
+	db "@"
+
+FuchsiaGymAfterBattleText1: ; 755b8 (1d:55b8)
+	TX_FAR _FuchsiaGymAfterBattleText1
+	db "@"
+
+FuchsiaGymText3: ; 755bd (1d:55bd)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText2: ; 755c7 (1d:55c7)
+	TX_FAR _FuchsiaGymBattleText2
+	db "@"
+
+FuchsiaGymEndBattleText2: ; 755cc (1d:55cc)
+	TX_FAR _FuchsiaGymEndBattleText2
+	db "@"
+
+FuchsiaGymAfterBattleText2: ; 755d1 (1d:55d1)
+	TX_FAR _FuchsiaGymAfterBattleText2
+	db "@"
+
+FuchsiaGymText4: ; 755d6 (1d:55d6)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText3: ; 755e0 (1d:55e0)
+	TX_FAR _FuchsiaGymBattleText3
+	db "@"
+
+FuchsiaGymEndBattleText3: ; 755e5 (1d:55e5)
+	TX_FAR _FuchsiaGymEndBattleText3
+	db "@"
+
+FuchsiaGymAfterBattleText3: ; 755ea (1d:55ea)
+	TX_FAR _FuchsiaGymAfterBattleText3
+	db "@"
+
+FuchsiaGymText5: ; 755ef (1d:55ef)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText4: ; 755f9 (1d:55f9)
+	TX_FAR _FuchsiaGymBattleText4
+	db "@"
+
+FuchsiaGymEndBattleText4: ; 755fe (1d:55fe)
+	TX_FAR _FuchsiaGymEndBattleText4
+	db "@"
+
+FuchsiaGymAfterBattleText4: ; 75603 (1d:5603)
+	TX_FAR _FuchsiaGymAfterBattleText4
+	db "@"
+
+FuchsiaGymText6: ; 75608 (1d:5608)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText5: ; 75612 (1d:5612)
+	TX_FAR _FuchsiaGymBattleText5
+	db "@"
+
+FuchsiaGymEndBattleText5: ; 75617 (1d:5617)
+	TX_FAR _FuchsiaGymEndBattleText5
+	db "@"
+
+FuchsiaGymAfterBattleText5: ; 7561c (1d:561c)
+	TX_FAR _FuchsiaGymAfterBattleText5
+	db "@"
+
+FuchsiaGymText7: ; 75621 (1d:5621)
+	db $08 ; asm
+	ld hl, FuchsiaGymTrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+FuchsiaGymBattleText6: ; 7562b (1d:562b)
+	TX_FAR _FuchsiaGymBattleText6
+	db "@"
+
+FuchsiaGymEndBattleText6: ; 75630 (1d:5630)
+	TX_FAR _FuchsiaGymEndBattleText6
+	db "@"
+
+FuchsiaGymAfterBattleText6: ; 75635 (1d:5635)
+	TX_FAR _FuchsiaGymAfterBattleText6
+	db "@"
+
+FuchsiaGymText8: ; 7563a (1d:563a)
+	db $08 ; asm
+	ld a, [$d792]
+	bit 1, a
+	ld hl, UnnamedText_75653
+	jr nz, .asm_50671 ; 0x75643
+	ld hl, UnnamedText_7564e
+.asm_50671 ; 0x75648
+	call PrintText
+	jp TextScriptEnd
+
+UnnamedText_7564e: ; 7564e (1d:564e)
+	TX_FAR _UnnamedText_7564e
+	db "@"
+
+UnnamedText_75653: ; 75653 (1d:5653)
+	TX_FAR _UnnamedText_75653
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiahouse1.asm
@@ -1,0 +1,20 @@
+FuchsiaHouse1Script: ; 75018 (1d:5018)
+	call EnableAutoTextBoxDrawing
+	ret
+
+FuchsiaHouse1TextPointers: ; 7501c (1d:501c)
+	dw FuchsiaHouse1Text1
+	dw FuchsiaHouse1Text2
+	dw FuchsiaHouse1Text3
+
+FuchsiaHouse1Text1: ; 75022 (1d:5022)
+	TX_FAR _FuchsiaHouse1Text1
+	db "@"
+
+FuchsiaHouse1Text2: ; 75027 (1d:5027)
+	TX_FAR _FuchsiaHouse1Text2
+	db "@"
+
+FuchsiaHouse1Text3: ; 7502c (1d:502c)
+	TX_FAR _FuchsiaHouse1Text3
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiahouse2.asm
@@ -1,0 +1,118 @@
+FuchsiaHouse2Script: ; 750b5 (1d:50b5)
+	jp EnableAutoTextBoxDrawing
+
+FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8)
+	dw FuchsiaHouse2Text1
+	dw Predef5CText
+	dw BoulderText
+	dw FuchsiaHouse2Text4
+	dw FuchsiaHouse2Text5
+
+FuchsiaHouse2Text1: ; 750c2 (1d:50c2)
+	db $08 ; asm
+	ld a, [$d78e]
+	bit 0, a
+	jr nz, .subtract ; 0x750c8
+	ld b,GOLD_TEETH
+	call IsItemInBag
+	jr nz, .asm_3f30f ; 0x750cf
+	ld a, [$d78e]
+	bit 1, a
+	jr nz, .asm_60cba ; 0x750d6
+	ld hl, WardenGibberishText1
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	ld hl, WardenGibberishText3
+	jr nz, .asm_61238 ; 0x750e8
+	ld hl, WardenGibberishText2
+.asm_61238 ; 0x750ed
+	call PrintText
+	jr .asm_52039 ; 0x750f0
+.asm_3f30f ; 0x750f2
+	ld hl, WardenTeethText1
+	call PrintText
+	ld a, GOLD_TEETH
+	ldh [$db], a
+	ld b, BANK(RemoveItemByID)
+	ld hl, RemoveItemByID
+	call Bankswitch
+	ld hl, $d78e
+	set 1, [hl]
+.asm_60cba ; 0x75109
+	ld hl, WardenThankYouText
+	call PrintText
+	ld bc,(HM_04 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedHM04Text
+	call PrintText
+	ld hl, $d78e
+	set 0, [hl]
+	jr .asm_52039 ; 0x75122
+.subtract ; 0x75124
+	ld hl, HM04ExplanationText
+	call PrintText
+	jr .asm_52039 ; 0x7512a
+.BagFull
+	ld hl, HM04NoRoomText
+	call PrintText
+.asm_52039 ; 0x75132
+	jp TextScriptEnd
+
+WardenGibberishText1: ; 75135 (1d:5135)
+	TX_FAR _WardenGibberishText1
+	db "@"
+
+WardenGibberishText2: ; 7513a (1d:513a)
+	TX_FAR _WardenGibberishText2
+	db "@"
+
+WardenGibberishText3: ; 7513f (1d:513f)
+	TX_FAR _WardenGibberishText3
+	db "@"
+
+WardenTeethText1: ; 75144 (1d:5144)
+	TX_FAR _WardenTeethText1
+	db $0b
+
+WardenTeethText2: ; 75149 (1d:5149)
+	TX_FAR _WardenTeethText2
+	db "@"
+
+WardenThankYouText: ; 7514e (1d:514e)
+	TX_FAR _WardenThankYouText
+	db "@"
+
+ReceivedHM04Text: ; 75153 (1d:5153)
+	TX_FAR _ReceivedHM04Text
+	db $0B, "@"
+
+HM04ExplanationText: ; 75159 (1d:5159)
+	TX_FAR _HM04ExplanationText
+	db "@"
+
+HM04NoRoomText: ; 7515e (1d:515e)
+	TX_FAR _HM04NoRoomText
+	db "@"
+
+FuchsiaHouse2Text5: ; 75163 (1d:5163)
+FuchsiaHouse2Text4: ; 75163 (1d:5163)
+	db $08 ; asm
+	ldh a, [$8c]
+	cp $4
+	ld hl, FuchsiaHouse2Text_7517b
+	jr nz, .asm_4c9a2 ; 0x7516b
+	ld hl, FuchsiaHouse2Text_75176
+.asm_4c9a2 ; 0x75170
+	call PrintText
+	jp TextScriptEnd
+
+FuchsiaHouse2Text_75176: ; 75176 (1d:5176)
+	TX_FAR _FuchsiaHouse2Text_75176
+	db "@"
+
+FuchsiaHouse2Text_7517b: ; 7517b (1d:517b)
+	TX_FAR _FuchsiaHouse2Text_7517b
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiahouse3.asm
@@ -1,0 +1,75 @@
+FuchsiaHouse3Script: ; 5617c (15:617c)
+	jp EnableAutoTextBoxDrawing
+
+FuchsiaHouse3TextPointers: ; 5617f (15:617f)
+	dw FuchsiaHouse3Text1
+
+FuchsiaHouse3Text1: ; 56181 (15:6181)
+	db $08 ; asm
+	ld a, [$d728]
+	bit 4, a
+	jr nz, .after
+
+	ld hl, FuchsiaHouse3Text_561bd
+	call PrintText
+
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .refused
+
+	ld bc, (GOOD_ROD << 8) | 1
+	call GiveItem
+	jr nc, .full
+
+	ld hl, $d728
+	set 4, [hl]
+
+	ld hl, FuchsiaHouse3Text_561c2
+	jr .talk
+
+.full
+	ld hl, FuchsiaHouse3Text_5621c
+	jr .talk
+
+.refused
+	ld hl, FuchsiaHouse3Text_56212
+	jr .talk
+
+.after
+	ld hl, FuchsiaHouse3Text_56217
+
+.talk
+	call PrintText
+	jp TextScriptEnd
+
+FuchsiaHouse3Text_561bd: ; 561bd (15:61bd)
+	TX_FAR _FuchsiaHouse3Text_561bd
+	db "@"
+
+FuchsiaHouse3Text_561c2: ; 561c2 (15:61c2)
+	TX_FAR _FuchsiaHouse3Text_561c2 ; 0xa06e8
+	db $0B
+	db "@"
+
+UnnamedText_561c8: ; 561c8
+	para "つり こそ"
+	line "おとこの ロマン だ!"
+
+	para "へぼいつりざおは"
+	line "コイキングしか つれ なんだが"
+	line "この いいつりざおなら"
+	line "もっと いいもんが つれるんじゃ!"
+	done
+
+FuchsiaHouse3Text_56212: ; 56212 (15:6212)
+	TX_FAR _FuchsiaHouse3Text_56212
+	db "@"
+
+FuchsiaHouse3Text_56217: ; 56217 (15:6217)
+	TX_FAR _FuchsiaHouse3Text_56217
+	db "@"
+
+FuchsiaHouse3Text_5621c: ; 5621c (15:621c)
+	TX_FAR _FuchsiaHouse3Text_5621c
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiamart.asm
@@ -1,0 +1,15 @@
+FuchsiaMartScript: ; 1dd88 (7:5d88)
+	jp EnableAutoTextBoxDrawing
+
+FuchsiaMartTextPointers: ; 1dd8b (7:5d8b)
+	dw FuchsiaMartText1
+	dw FuchsiaMartText2
+	dw FuchsiaMartText3
+
+FuchsiaMartText2: ; 1dd91 (7:5d91)
+	TX_FAR _FuchsiaMartText2
+	db "@"
+
+FuchsiaMartText3: ; 1dd96 (7:5d96)
+	TX_FAR _FuchsiaMartText3
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiameetingroom.asm
@@ -1,0 +1,20 @@
+FuchsiaMeetingRoomScript: ; 756e3 (1d:56e3)
+	call EnableAutoTextBoxDrawing
+	ret
+
+FuchsiaMeetingRoomTextPointers: ; 756e7 (1d:56e7)
+	dw FuchsiaMeetingRoomText1
+	dw FuchsiaMeetingRoomText2
+	dw FuchsiaMeetingRoomText3
+
+FuchsiaMeetingRoomText1: ; 756ed (1d:56ed)
+	TX_FAR _FuchsiaMeetingRoomText1
+	db "@"
+
+FuchsiaMeetingRoomText2: ; 756f2 (1d:56f2)
+	TX_FAR _FuchsiaMeetingRoomText2
+	db "@"
+
+FuchsiaMeetingRoomText3: ; 756f7 (1d:56f7)
+	TX_FAR _FuchsiaMeetingRoomText3
+	db "@"
--- /dev/null
+++ b/scripts/fuchsiapokecenter.asm
@@ -1,0 +1,23 @@
+FuchsiaPokecenterScript: ; 75063 (1d:5063)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+FuchsiaPokecenterTextPointers: ; 75069 (1d:5069)
+	dw FuchsiaPokecenterText1
+	dw FuchsiaPokecenterText2
+	dw FuchsiaPokecenterText3
+	dw FuchsiaPokecenterText4
+
+FuchsiaPokecenterText1: ; 75071 (1d:5071)
+	db $ff
+
+FuchsiaPokecenterText2: ; 75072 (1d:5072)
+	TX_FAR _FuchsiaPokecenterText1
+	db "@"
+
+FuchsiaPokecenterText3: ; 75077 (1d:5077)
+	TX_FAR _FuchsiaPokecenterText3
+	db "@"
+
+FuchsiaPokecenterText4: ; 7507c (1d:507c)
+	db $f6
--- /dev/null
+++ b/scripts/gary.asm
@@ -1,0 +1,297 @@
+GaryScript: ; 75f1d (1d:5f1d)
+	call EnableAutoTextBoxDrawing
+	ld hl, GaryScriptPointers
+	ld a, [W_GARYCURSCRIPT]
+	jp CallFunctionInTable
+
+GaryScript_75f29: ; 75f29 (1d:5f29)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScriptPointers: ; 75f31 (1d:5f31)
+	dw GaryScript0
+	dw GaryScript1
+	dw GaryScript2
+	dw GaryScript3
+	dw GaryScript4
+	dw GaryScript5
+	dw GaryScript6
+	dw GaryScript7
+	dw GaryScript8
+	dw GaryScript9
+	dw GaryScript10
+
+GaryScript0: ; 75f47 (1d:5f47)
+	ret
+
+GaryScript1: ; 75f48 (1d:5f48)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $ccd3
+	ld de, RLEMovement75f63
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $2
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+RLEMovement75f63: ; 75f63 (1d:5f63)
+	db $40,1
+	db $10,1
+	db $40,3
+	db $ff
+
+GaryScript2: ; 75f6a (1d:5f6a)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d355
+	res 7, [hl]
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, GaryText_760f9
+	ld de, GaryText_760fe
+	call PreBattleSaveRegisters
+	ld a, SONY3 + $c8
+	ld [W_CUROPPONENT], a
+
+	; select which team to use during the encounter
+	ld a, [W_RIVALSTARTER]
+	cp SQUIRTLE
+	jr nz, .NotSquirtle ; 0x75f9f $4
+	ld a, $1
+	jr .done
+.NotSquirtle
+	cp BULBASAUR
+	jr nz, .Charmander ; 0x75fa7 $4
+	ld a, $2
+	jr .done
+.Charmander
+	ld a, $3
+.done
+	ld [W_TRAINERNO], a
+
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $3
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript3: ; 75fbb (1d:5fbb)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, GaryScript_75f29
+	call UpdateSprites ; move sprites
+	ld hl, $d867
+	set 1, [hl]
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [$ff8c], a
+	call GaryScript_760c8
+	ld a, $1
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	ld a, $4
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript4: ; 75fe4 (1d:5fe4)
+	ld b, BANK(Music_Cities1AlternateTempo)
+	ld hl, Music_Cities1AlternateTempo
+	call Bankswitch
+	ld a, $2
+	ld [$ff8c], a
+	call GaryScript_760c8
+	ld a, $2
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	ld de, MovementData_76014
+	ld a, $2
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $d6
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, $5
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+MovementData_76014: ; 76014 (1d:6014)
+	db $40,$40,$40,$40,$40,$FF
+
+GaryScript5: ; 7601a (1d:601a)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $2
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $2
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $3
+	ld [$ff8c], a
+	call GaryScript_760c8
+	ld a, $6
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript6: ; 76047 (1d:6047)
+	ld a, $2
+	ld [$ff8c], a
+	ld a, $c
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $4
+	ld [$ff8c], a
+	call GaryScript_760c8
+	ld a, $7
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript7: ; 7605f (1d:605f)
+	ld a, $2
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $5
+	ld [$ff8c], a
+	call GaryScript_760c8
+	ld de, MovementData_76080
+	ld a, $2
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $8
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+MovementData_76080: ; 76080 (1d:6080)
+	db $40,$40,$FF
+
+GaryScript8: ; 76083 (1d:6083)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $d6
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $9
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript9: ; 76099 (1d:6099)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $ccd3
+	ld de, RLEMovement760b4
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $a
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+RLEMovement760b4 ; 760b4 (1d:60b4)
+	db $40,4
+	db $20,1
+	db $ff
+
+GaryScript10: ; 760b9 (1d:60b9)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_GARYCURSCRIPT], a
+	ret
+
+GaryScript_760c8 ; 760c8 (1d:60c8)
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	call DisplayTextID
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+
+GaryTextPointers: ; 760d6 (1d:60d6)
+	dw GaryText1
+	dw GaryText2
+	dw GaryText3
+	dw GaryText4
+	dw GaryText5
+
+GaryText1: ; 760e0 (1d:60e0)
+	db $08 ; asm
+	ld a, [$d867]
+	bit 1, a
+	ld hl, GaryText_760f4
+	jr z, .asm_17e9f ; 0x760e9
+	ld hl, GaryText_76103
+.asm_17e9f ; 0x760ee
+	call PrintText
+	jp TextScriptEnd
+
+GaryText_760f4: ; 760f4 (1d:60f4)
+	TX_FAR _GaryText_760f4
+	db "@"
+
+GaryText_760f9: ; 760f9 (1d:60f9)
+	TX_FAR _GaryText_760f9
+	db "@"
+
+GaryText_760fe: ; 760fe (1d:60fe)
+	TX_FAR _GaryText_760fe
+	db "@"
+
+GaryText_76103: ; 76103 (1d:6103)
+	TX_FAR _GaryText_76103
+	db "@"
+
+GaryText2: ; 76108 (1d:6108)
+	TX_FAR _GaryText2
+	db "@"
+
+GaryText3: ; 7610d (1d:610d)
+	db $8
+	ld a, [$d717]
+	ld [$d11e], a
+	call GetMonName
+	ld hl, GaryText_76120
+	call PrintText
+	jp TextScriptEnd
+
+GaryText_76120: ; 76120 (1d:6120)
+	TX_FAR _GaryText_76120
+	db "@"
+
+GaryText4: ; 76125 (1d:6125)
+	TX_FAR _GaryText_76125
+	db "@"
+
+GaryText5: ; 7612a (1d:612a)
+	TX_FAR _GaryText_7612a
+	db "@"
--- /dev/null
+++ b/scripts/halloffameroom.asm
@@ -1,0 +1,117 @@
+HallofFameRoomScript: ; 5a49e (16:649e)
+	call EnableAutoTextBoxDrawing
+	ld hl, HallofFameRoomScriptPointers
+	ld a, [W_HALLOFFAMEROOMCURSCRIPT]
+	jp CallFunctionInTable
+
+HallofFameRoomScript_5a4aa: ; 5a4aa (16:64aa)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_HALLOFFAMEROOMCURSCRIPT], a
+	ret
+
+HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2)
+	dw HallofFameRoomScript0
+	dw HallofFameRoomScript1
+	dw HallofFameRoomScript2
+	dw HallofFameRoomScript3
+
+HallofFameRoomScript3: ; 5a4ba (16:64ba)
+	ret
+
+HallofFameRoomScript2: ; 5a4bb (16:64bb)
+	call Delay3
+	ld a, [$d358]
+	push af
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $55
+	call Predef
+	pop af
+	ld [$d358], a
+	ld hl, W_FLAGS_D733
+	res 1, [hl]
+	inc hl
+	set 0, [hl]
+	xor a
+	ld hl, W_LORELEICURSCRIPT
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld [W_LANCECURSCRIPT], a
+	ld [W_HALLOFFAMEROOMCURSCRIPT], a
+	ld hl, $d863
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	xor a
+	ld [W_HALLOFFAMEROOMCURSCRIPT], a
+	ld a, $0
+	ld [$d719], a
+	ld b, BANK(SaveSAVtoSRAM)
+	ld hl, SaveSAVtoSRAM
+	call Bankswitch
+	ld b, $5
+.asm_5a4ff
+	ld c, $78
+	call DelayFrames
+	dec b
+	jr nz, .asm_5a4ff ; 0x5a505 $f8
+	call WaitForTextScrollButtonPress
+	jp InitGame
+
+HallofFameRoomScript0: ; 5a50d (16:650d)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $ccd3
+	ld de, RLEMovement5a528
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $1
+	ld [W_HALLOFFAMEROOMCURSCRIPT], a
+	ret
+
+RLEMovement5a528: ; 5a528 (16:6528)
+	db $40,$5
+	db $ff
+
+HallofFameRoomScript1: ; 5a52b (16:652b)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $1
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	ld a, $8
+	ld [$ff8d], a
+	call Func_34a6
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	inc a
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $8
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $2
+	ld [W_HALLOFFAMEROOMCURSCRIPT], a
+	ret
+
+HallofFameRoomTextPointers: ; 5a56a (16:656a)
+	dw HallofFameRoomText1
+
+HallofFameRoomText1: ; 5a56c (16:656c)
+	TX_FAR _HallofFameRoomText1
+	db "@"
--- /dev/null
+++ b/scripts/indigoplateau.asm
@@ -1,0 +1,4 @@
+IndigoPlateauScript: ; 50935 (14:4935)
+	ret
+
+IndigoPlateauTextPointers: ; 50936 (14:4936)
--- /dev/null
+++ b/scripts/indigoplateaulobby.asm
@@ -1,0 +1,41 @@
+IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
+	call Func_22fa
+	call EnableAutoTextBoxDrawing
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	ld hl, $d869
+	res 7, [hl]
+	ld hl, $d734
+	bit 1, [hl]
+	res 1, [hl]
+	ret z
+	ld hl, $d863
+	xor a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ret
+
+IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f)
+	dw IndigoPlateauLobbyText1
+	dw IndigoPlateauLobbyText2
+	dw IndigoPlateauLobbyText3
+	dw IndigoPlateauLobbyText4
+	dw IndigoPlateauLobbyText5
+
+IndigoPlateauLobbyText1: ; 19c89 (6:5c89)
+	db $ff
+
+IndigoPlateauLobbyText2: ; 19c8a (6:5c8a)
+	TX_FAR _IndigoPlateauLobbyText1
+	db "@"
+
+IndigoPlateauLobbyText3: ; 19c8f (6:5c8f)
+	TX_FAR _IndigoPlateauLobbyText3
+	db "@"
+
+IndigoPlateauLobbyText5: ; 19c94 (6:5c94)
+	db $f6
--- /dev/null
+++ b/scripts/lab1.asm
@@ -1,0 +1,30 @@
+Lab1Script: ; 75b8c (1d:5b8c)
+	call EnableAutoTextBoxDrawing
+	ret
+
+Lab1TextPointers: ; 75b90 (1d:5b90)
+	dw Lab1Text1
+	dw Lab1Text2
+	dw Lab1Text3
+	dw Lab1Text4
+	dw Lab1Text5
+
+Lab1Text1: ; 75b9a (1d:5b9a)
+	TX_FAR _Lab1Text1
+	db "@"
+
+Lab1Text2: ; 75b9f (1d:5b9f)
+	TX_FAR _Lab1Text2
+	db "@"
+
+Lab1Text3: ; 75ba4 (1d:5ba4)
+	TX_FAR _Lab1Text3
+	db "@"
+
+Lab1Text4: ; 75ba9 (1d:5ba9)
+	TX_FAR _Lab1Text4
+	db "@"
+
+Lab1Text5: ; 75bae (1d:5bae)
+	TX_FAR _Lab1Text5
+	db "@"
--- /dev/null
+++ b/scripts/lab2.asm
@@ -1,0 +1,26 @@
+Lab2Script: ; 75c21 (1d:5c21)
+	jp EnableAutoTextBoxDrawing
+
+Lab2TextPointers: ; 75c24 (1d:5c24)
+	dw Lab2Text1
+	dw Lab2Text2
+	dw Lab2Text3
+
+Lab2Text1: ; 75c2a (1d:5c2a)
+	TX_FAR _Lab2Text1
+	db "@"
+
+Lab2Text2: ; 75c2f (1d:5c2f)
+	db $8
+	ld a, $7
+	ld [wWhichTrade], a
+	jr asm_78552 ; 0x75c35 $6
+
+Lab2Text3: ; 75c37 (1d:5c37)
+	db $8
+	ld a, $8
+	ld [wWhichTrade], a
+asm_78552: ; 75c3d (1d:5c3d)
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/lab3.asm
@@ -1,0 +1,63 @@
+Lab3Script: ; 75c87 (1d:5c87)
+	jp EnableAutoTextBoxDrawing
+
+Lab3TextPointers: ; 75c8a (1d:5c8a)
+	dw Lab3Text1
+	dw Lab3Text2
+	dw Lab3Text3
+	dw Lab3Text4
+	dw Lab3Text5
+
+Lab3Text1: ; 75c94 (1d:5c94)
+	db $08 ; asm
+	ld a, [$d7a1]
+	bit 7, a
+	jr nz, .asm_e551a ; 0x75c9a
+	ld hl, TM35PreReceiveText
+	call PrintText
+	ld bc, (TM_35 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM35Text
+	call PrintText
+	ld hl, $d7a1
+	set 7, [hl]
+	jr .asm_eb896 ; 0x75cb5
+.BagFull
+	ld hl, TM35NoRoomText
+	call PrintText
+	jr .asm_eb896 ; 0x75cbd
+.asm_e551a ; 0x75cbf
+	ld hl, TM35ExplanationText
+	call PrintText
+.asm_eb896 ; 0x75cc5
+	jp TextScriptEnd
+
+TM35PreReceiveText: ; 75cc8 (1d:5cc8)
+	TX_FAR _TM35PreReceiveText
+	db "@"
+
+ReceivedTM35Text: ; 75ccd (1d:5ccd)
+	TX_FAR _ReceivedTM35Text
+	db $0B, "@"
+
+TM35ExplanationText: ; 75cd3 (1d:5cd3)
+	TX_FAR _TM35ExplanationText
+	db "@"
+
+TM35NoRoomText: ; 75cd8 (1d:5cd8)
+	TX_FAR _TM35NoRoomText
+	db "@"
+
+Lab3Text2: ; 75cdd (1d:5cdd)
+	TX_FAR _Lab3Text2
+	db "@"
+
+Lab3Text4: ; 75ce2 (1d:5ce2)
+Lab3Text3: ; 75ce2 (1d:5ce2)
+	TX_FAR _Lab3Text3
+	db "@"
+
+Lab3Text5: ; 75ce7 (1d:5ce7)
+	TX_FAR _Lab3Text5
+	db "@"
--- /dev/null
+++ b/scripts/lab4.asm
@@ -1,0 +1,117 @@
+Lab4Script: ; 75d31 (1d:5d31)
+	jp EnableAutoTextBoxDrawing
+
+Lab4TextPointers: ; 75d34 (1d:5d34)
+	dw Lab4Text1
+	dw Lab4Text2
+
+Lab4Script_75d38: ; 75d38 (1d:5d38)
+	xor a
+	ld [$cd37], a
+	ld de, $cc5b
+	ld hl, FossilsList
+.asm_75d42
+	ld a, [hli]
+	and a
+	jr z, .asm_75d64
+	push hl
+	push de
+	ld [$d11e], a
+	ld b, a
+	ld a, $1c
+	call Predef ; indirect jump to Func_f8a5 (f8a5 (3:78a5))
+	pop de
+	pop hl
+	ld a, b
+	and a
+	jr z, .asm_75d42
+	ld a, [$d11e]
+	ld [de], a
+	inc de
+	push hl
+	ld hl, $cd37
+	inc [hl]
+	pop hl
+	jr .asm_75d42
+.asm_75d64
+	ld a, $ff
+	ld [de], a
+	ret
+
+FossilsList: ; 75d68 (1d:5d68)
+	db DOME_FOSSIL
+	db HELIX_FOSSIL
+	db OLD_AMBER
+	db $00
+
+Lab4Text1: ; 75d6c (1d:5d6c)
+	db $8
+	ld a, [$d7a3]
+	bit 0, a
+	jr nz, .asm_75d96 ; 0x75d72 $22
+	ld hl, Lab4Text_75dc6
+	call PrintText
+	call Lab4Script_75d38
+	ld a, [$cd37]
+	and a
+	jr z, .asm_75d8d ; 0x75d81 $a
+	ld b, BANK(GiveFossilToCinnabarLab)
+	ld hl, GiveFossilToCinnabarLab
+	call Bankswitch
+	jr .asm_75d93 ; 0x75d8b $6
+.asm_75d8d
+	ld hl, Lab4Text_75dcb
+	call PrintText
+.asm_75d93
+	jp TextScriptEnd
+.asm_75d96
+	bit 1, a
+	jr z, .asm_75da2 ; 0x75d98 $8
+	ld hl, Lab4Text_75dd0
+	call PrintText
+	jr .asm_75d93 ; 0x75da0 $f1
+.asm_75da2
+	call LoadFossilItemAndMonNameBank1D
+	ld hl, Lab4Text_75dd5
+	call PrintText
+	ld hl, $d7a3
+	set 2, [hl]
+	ld a, [W_FOSSILMON]
+	ld b, a
+	ld c, $1e
+	call GivePokemon
+	jr nc, .asm_75d93 ; 0x75db9 $d8
+	ld hl, $d7a3
+	res 0, [hl]
+	res 1, [hl]
+	res 2, [hl]
+	jr .asm_75d93 ; 0x75dc4 $cd
+
+Lab4Text_75dc6: ; 75dc6 (1d:5dc6)
+	TX_FAR _Lab4Text_75dc6
+	db "@"
+
+Lab4Text_75dcb: ; 75dcb (1d:5dcb)
+	TX_FAR _Lab4Text_75dcb
+	db "@"
+
+Lab4Text_75dd0: ; 75dd0 (1d:5dd0)
+	TX_FAR _Lab4Text_75dd0
+	db "@"
+
+Lab4Text_75dd5: ; 75dd5 (1d:5dd5)
+	TX_FAR _Lab4Text_75dd5
+	db "@"
+
+Lab4Text2: ; 75dda (1d:5dda)
+	db $08 ; asm
+	ld a, $3
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
+
+LoadFossilItemAndMonNameBank1D: ; 75de8 (1d:5de8)
+	ld b, BANK(LoadFossilItemAndMonName)
+	ld hl, LoadFossilItemAndMonName
+	jp Bankswitch
--- /dev/null
+++ b/scripts/lance.asm
@@ -1,0 +1,166 @@
+LanceScript: ; 5a2ae (16:62ae)
+	call LanceScript_5a2c4
+	call EnableAutoTextBoxDrawing
+	ld hl, LanceTrainerHeaders
+	ld de, LanceScriptPointers
+	ld a, [W_LANCECURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_LANCECURSCRIPT], a
+	ret
+
+LanceScript_5a2c4: ; 5a2c4 (16:62c4)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d866]
+	bit 7, a
+	jr nz, .asm_5a2da
+	ld a, $31
+	ld b, $32
+	jp LanceScript_5a2de
+.asm_5a2da
+	ld a, $72
+	ld b, $73
+
+LanceScript_5a2de: ; 5a2de (16:62de)
+	push bc
+	ld [$d09f], a
+	ld bc, $602
+	call LanceScript_5a2f0
+	pop bc
+	ld a, b
+	ld [$d09f], a
+	ld bc, $603
+
+LanceScript_5a2f0: ; 5a2f0 (16:62f0)
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+LanceScript_5a2f5: ; 5a2f5 (16:62f5)
+	xor a
+	ld [W_LANCECURSCRIPT], a
+	ret
+
+LanceScriptPointers: ; 5a2fa (16:62fa)
+	dw LanceScript0
+	dw Func_324c
+	dw LanceScript2
+	dw LanceScript3
+	dw LanceScript4
+
+LanceScript4: ; 5a304 (16:6304)
+	ret
+
+LanceScript0: ; 5a305 (16:6305)
+	ld a, [$d866]
+	bit 6, a
+	ret nz
+	ld hl, CoordsData_5a33e
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, [wWhichTrade] ; $cd3d
+	cp $3
+	jr nc, .asm_5a325
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+.asm_5a325
+	cp $5
+	jr z, LanceScript_5a35b
+	ld hl, $d866
+	bit 7, [hl]
+	set 7, [hl]
+	ret nz
+	ld hl, $d126
+	set 5, [hl]
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	jp LanceScript_5a2c4
+
+CoordsData_5a33e: ; 5a33e (16:633e)
+	db $01,$05
+	db $02,$06
+	db $0B,$05
+	db $0B,$06
+	db $10,$18
+	db $FF
+
+LanceScript2: ; 5a349 (16:6349)
+	call EndTrainerBattle
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, LanceScript_5a2f5
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+LanceScript_5a35b: ; 5a35b (16:635b)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $ccd3
+	ld de, RLEList_5a379
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_LANCECURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RLEList_5a379: ; 5a379 (16:6379)
+	db $40, $0C
+	db $20, $0C
+	db $80, $07
+	db $20, $06
+	db $FF
+
+LanceScript3: ; 5a382 (16:6382)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_LANCECURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+LanceTextPointers: ; 5a395 (16:6395)
+	dw LanceText1
+
+LanceTrainerHeaders: ; 5a397 (16:6397)
+LanceTrainerHeader0: ; 5a397 (16:6397)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d866 ; flag's byte
+	dw LanceBeforeBattleText ; 0x63ae TextBeforeBattle
+	dw LanceAfterBattleText ; 0x63b8 TextAfterBattle
+	dw LanceEndBattleText ; 0x63b3 TextEndBattle
+	dw LanceEndBattleText ; 0x63b3 TextEndBattle
+
+	db $ff
+
+LanceText1: ; 5a3a4 (16:63a4)
+	db $08 ; asm
+	ld hl, LanceTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+LanceBeforeBattleText: ; 5a3ae (16:63ae)
+	TX_FAR _LanceBeforeBattleText
+	db "@"
+
+LanceEndBattleText: ; 5a3b3 (16:63b3)
+	TX_FAR _LanceEndBattleText
+	db "@"
+
+LanceAfterBattleText: ; 5a3b8 (16:63b8)
+	TX_FAR _LanceAfterBattleText
+	db $8
+	ld hl, $d866
+	set 6, [hl]
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/lavenderhouse1.asm
@@ -1,0 +1,116 @@
+LavenderHouse1Script: ; 1d8a8 (7:58a8)
+	call EnableAutoTextBoxDrawing
+	ret
+
+LavenderHouse1TextPointers: ; 1d8ac (7:58ac)
+	dw LavenderHouse1Text1
+	dw LavenderHouse1Text2
+	dw LavenderHouse1Text3
+	dw LavenderHouse1Text4
+	dw LavenderHouse1Text5
+	dw LavenderHouse1Text6
+
+LavenderHouse1Text1: ; 1d8b8 (7:58b8)
+	db $08 ; asm
+	ld a, [$d7e0]
+	bit 7, a
+	jr nz, .asm_72e5d ; 0x1d8be
+	ld hl, LavenderHouse1Text_1d8d1
+	call PrintText
+	jr .asm_6957f ; 0x1d8c6
+.asm_72e5d ; 0x1d8c8
+	ld hl, LavenderHouse1Text_1d8d6
+	call PrintText
+.asm_6957f ; 0x1d8ce
+	jp TextScriptEnd
+
+LavenderHouse1Text_1d8d1: ; 1d8d1 (7:58d1)
+	TX_FAR _LavenderHouse1Text_1d8d1
+	db "@"
+
+LavenderHouse1Text_1d8d6: ; 1d8d6 (7:58d6)
+	TX_FAR _LavenderHouse1Text_1d8d6
+	db "@"
+
+LavenderHouse1Text2: ; 1d8db (7:58db)
+	db $08 ; asm
+	ld a, [$d7e0]
+	bit 7, a
+	jr nz, .asm_06470 ; 0x1d8e1
+	ld hl, LavenderHouse1Text_1d8f4
+	call PrintText
+	jr .asm_3d208 ; 0x1d8e9
+.asm_06470 ; 0x1d8eb
+	ld hl, LavenderHouse1Text_1d8f9
+	call PrintText
+.asm_3d208 ; 0x1d8f1
+	jp TextScriptEnd
+
+LavenderHouse1Text_1d8f4: ; 1d8f4 (7:58f4)
+	TX_FAR _LavenderHouse1Text_1d8f4
+	db "@"
+
+LavenderHouse1Text_1d8f9: ; 1d8f9 (7:58f9)
+	TX_FAR _LavenderHouse1Text_1d8f9
+	db "@"
+
+LavenderHouse1Text3: ; 1d8fe (7:58fe)
+	TX_FAR _LavenderHouse1Text3
+	db $8
+	ld a, PSYDUCK
+	call PlayCry
+	jp TextScriptEnd
+
+LavenderHouse1Text4: ; 1d90b (7:590b)
+	TX_FAR _LavenderHouse1Text4
+	db $8
+	ld a, NIDORINO
+	call PlayCry
+	jp TextScriptEnd
+
+LavenderHouse1Text5: ; 1d918 (7:5918)
+	db $08 ; asm
+	ld a, [$d76c]
+	bit 0, a
+	jr nz, .asm_15ac2 ; 0x1d91e
+	ld hl, LavenderHouse1Text_1d94c
+	call PrintText
+	ld bc, (POKE_FLUTE << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedFluteText
+	call PrintText
+	ld hl, $d76c
+	set 0, [hl]
+	jr .asm_da749 ; 0x1d939
+.BagFull
+	ld hl, FluteNoRoomText
+	call PrintText
+	jr .asm_da749 ; 0x1d941
+.asm_15ac2 ; 0x1d943
+	ld hl, MrFujiAfterFluteText
+	call PrintText
+.asm_da749 ; 0x1d949
+	jp TextScriptEnd
+
+LavenderHouse1Text_1d94c: ; 1d94c (7:594c)
+	TX_FAR _LavenderHouse1Text_1d94c
+	db "@"
+
+ReceivedFluteText: ; 1d951 (7:5951)
+	TX_FAR _ReceivedFluteText
+	db $11
+	TX_FAR _FluteExplanationText
+	db "@"
+
+FluteNoRoomText: ; 1d95b (7:595b)
+	TX_FAR _FluteNoRoomText
+	db "@"
+
+MrFujiAfterFluteText: ; 1d960 (7:5960)
+	TX_FAR _MrFujiAfterFluteText
+	db "@"
+
+LavenderHouse1Text6: ; 1d965 (7:5965)
+	TX_FAR _LavenderHouse1Text6
+	db "@"
--- /dev/null
+++ b/scripts/lavenderhouse2.asm
@@ -1,0 +1,36 @@
+LavenderHouse2Script: ; 1d9ae (7:59ae)
+	call EnableAutoTextBoxDrawing
+	ret
+
+LavenderHouse2TextPointers: ; 1d9b2 (7:59b2)
+	dw LavenderHouse2Text1
+	dw LavenderHouse2Text2
+
+LavenderHouse2Text1: ; 1d9b6 (7:59b6)
+	TX_FAR _LavenderHouse2Text1
+	db $8
+	ld a, CUBONE
+	call PlayCry
+	jp TextScriptEnd
+
+LavenderHouse2Text2: ; 1d9c3 (7:59c3)
+	db $08 ; asm
+	ld a, [$d7e0]
+	bit 7, a
+	jr nz, .asm_65711 ; 0x1d9c9
+	ld hl, LavenderHouse2Text_1d9dc
+	call PrintText
+	jr .asm_64be1 ; 0x1d9d1
+.asm_65711 ; 0x1d9d3
+	ld hl, LavenderHouse2Text_1d9e1
+	call PrintText
+.asm_64be1 ; 0x1d9d9
+	jp TextScriptEnd
+
+LavenderHouse2Text_1d9dc: ; 1d9dc (7:59dc)
+	TX_FAR _LavenderHouse2Text_1d9dc
+	db "@"
+
+LavenderHouse2Text_1d9e1: ; 1d9e1 (7:59e1)
+	TX_FAR _LavenderHouse2Text_1d9e1
+	db "@"
--- /dev/null
+++ b/scripts/lavendermart.asm
@@ -1,0 +1,33 @@
+LavenderMartScript: ; 5c92c (17:492c)
+	jp EnableAutoTextBoxDrawing
+
+LavenderMartTextPointers: ; 5c92f (17:492f)
+	dw LavenderMartText1
+	dw LavenderMartText2
+	dw LavenderMartText3
+
+LavenderMartText2: ; 5c935 (17:4935)
+	TX_FAR _LavenderMartText2
+	db "@"
+
+LavenderMartText3: ; 5c93a (17:493a)
+	db $08 ; asm
+	ld a, [$d7e0]
+	bit 7, a
+	jr nz, .asm_c88d4 ; 0x5c940
+	ld hl, LavenderMart_5c953
+	call PrintText
+	jr .asm_6d225 ; 0x5c948
+.asm_c88d4 ; 0x5c94a
+	ld hl, LavenderMart_5c958
+	call PrintText
+.asm_6d225 ; 0x5c950
+	jp TextScriptEnd
+
+LavenderMart_5c953: ; 5c953 (17:4953)
+	TX_FAR _LavenderMart_5c953
+	db "@"
+
+LavenderMart_5c958: ; 5c958 (17:4958)
+	TX_FAR _LavenderMart_5c958
+	db "@"
--- /dev/null
+++ b/scripts/lavenderpokecenter.asm
@@ -1,0 +1,23 @@
+LavenderPokecenterScript: ; 5c8da (17:48da)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+LavenderPokecenterTextPointers: ; 5c8e0 (17:48e0)
+	dw LavenderPokecenterText1
+	dw LavenderPokecenterText2
+	dw LavenderPokecenterText3
+	dw LavenderPokecenterText4
+
+LavenderPokecenterText4: ; 5c8e8 (17:48e8)
+	db $f6
+
+LavenderPokecenterText1: ; 5c8e9 (17:48e9)
+	db $ff
+
+LavenderPokecenterText2: ; 5c8ea (17:48ea)
+	TX_FAR _LavenderPokecenterText1
+	db "@"
+
+LavenderPokecenterText3: ; 5c8ef (17:48ef)
+	TX_FAR _LavenderPokecenterText3
+	db "@"
--- /dev/null
+++ b/scripts/lavendertown.asm
@@ -1,0 +1,63 @@
+LavenderTownScript: ; 4410b (11:410b)
+	jp EnableAutoTextBoxDrawing
+
+LavenderTownTextPointers: ; 4410e (11:410e)
+	dw LavenderTownText1
+	dw LavenderTownText2
+	dw LavenderTownText3
+	dw LavenderTownText4
+	dw LavenderTownText5
+	dw MartSignText
+	dw PokeCenterSignText
+	dw LavenderTownText8
+	dw LavenderTownText9
+
+LavenderTownText1: ; 44120 (11:4120)
+	db $08 ; asm
+	ld hl, LavenderTownText_4413c
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	ld hl, LavenderTownText_44146
+	jr nz, .asm_40831 ; 0x44131
+	ld hl, LavenderTownText_44141
+.asm_40831 ; 0x44136
+	call PrintText
+	jp TextScriptEnd
+
+LavenderTownText_4413c: ; 4413c (11:413c)
+	TX_FAR _LavenderTownText_4413c
+	db "@"
+
+LavenderTownText_44141: ; 44141 (11:4141)
+	TX_FAR _LavenderTownText_44141
+	db "@"
+
+LavenderTownText_44146: ; 44146 (11:4146)
+	TX_FAR _LavenderTownText_44146
+	db "@"
+
+LavenderTownText2: ; 4414b (11:414b)
+	TX_FAR _LavenderTownText2
+	db "@"
+
+LavenderTownText3: ; 44150 (11:4150)
+	TX_FAR _LavenderTownText3
+	db "@"
+
+LavenderTownText4: ; 44155 (11:4155)
+	TX_FAR _LavenderTownText4
+	db "@"
+
+LavenderTownText5: ; 4415a (11:415a)
+	TX_FAR _LavenderTownText5
+	db "@"
+
+LavenderTownText8: ; 4415f (11:415f)
+	TX_FAR _LavenderTownText8
+	db "@"
+
+LavenderTownText9: ; 44164 (11:4164)
+	TX_FAR _LavenderTownText9
+	db "@"
--- /dev/null
+++ b/scripts/lorelei.asm
@@ -1,0 +1,153 @@
+LoreleiScript: ; 7617b (1d:617b)
+	call LoreleiScript_76191
+	call EnableAutoTextBoxDrawing
+	ld hl, LoreleiTrainerHeaders
+	ld de, LoreleiScriptPointers
+	ld a, [W_LORELEICURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_LORELEICURSCRIPT], a
+	ret
+
+LoreleiScript_76191: ; 76191 (1d:6191)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, $d734
+	set 1, [hl]
+	ld a, [$d863]
+	bit 1, a
+	jr z, .asm_761a9
+	ld a, $5
+	jr .asm_761ab
+.asm_761a9
+	ld a, $24
+.asm_761ab
+	ld [$d09f], a
+	ld bc, $2
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+LoreleiScript_761b6: ; 761b6 (1d:61b6)
+	xor a
+	ld [W_LORELEICURSCRIPT], a
+	ret
+
+LoreleiScriptPointers: ; 761bb (1d:61bb)
+	dw LoreleiScript0
+	dw Func_324c
+	dw LoreleiScript2
+	dw LoreleiScript3
+	dw LoreleiScript4
+
+LoreleiScript4: ; 761c5 (1d:61c5)
+	ret
+asm_761c6: ; 761c6 (1d:61c6)
+	ld hl, $ccd3
+	ld a, $40
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld a, $6
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_LORELEICURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+LoreleiScript0: ; 761e2 (1d:61e2)
+	ld hl, CoordsData_76223
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_NEWLYPRESSEDBUTTONS], a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$ccd3], a
+	ld [$cd38], a
+	ld a, [wWhichTrade] ; $cd3d
+	cp $3
+	jr c, .asm_76206
+	ld hl, $d863
+	bit 6, [hl]
+	set 6, [hl]
+	jr z, asm_761c6
+.asm_76206
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $40
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_LORELEICURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_76223: ; 76223 (1d:6223)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
+
+LoreleiScript3: ; 7622c (1d:622c)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_LORELEICURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+LoreleiScript2: ; 7623f (1d:623f)
+	call EndTrainerBattle
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, LoreleiScript_761b6
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+LoreleiTextPointers: ; 76251 (1d:6251)
+	dw LoreleiText1
+	dw LoreleiText2
+
+LoreleiTrainerHeaders: ; 76255 (1d:6255)
+LoreleiTrainerHeader0: ; 76255 (1d:6255)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d863 ; flag's byte
+	dw LoreleiBeforeBattleText ; 0x626c TextBeforeBattle
+	dw LoreleiAfterBattleText ; 0x6276 TextAfterBattle
+	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
+	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
+
+	db $ff
+
+LoreleiText1: ; 76262 (1d:6262)
+	db $08 ; asm
+	ld hl, LoreleiTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+LoreleiBeforeBattleText: ; 7626c (1d:626c)
+	TX_FAR _LoreleiBeforeBattleText
+	db "@"
+
+LoreleiEndBattleText: ; 76271 (1d:6271)
+	TX_FAR _LoreleiEndBattleText
+	db "@"
+
+LoreleiAfterBattleText: ; 76276 (1d:6276)
+	TX_FAR _LoreleiAfterBattleText
+	db "@"
+
+LoreleiText2: ; 7627b (1d:627b)
+	TX_FAR _LoreleiText2
+	db "@"
--- /dev/null
+++ b/scripts/mansion1.asm
@@ -1,0 +1,139 @@
+Mansion1Script: ; 442af (11:42af)
+	call Mansion1Subscript1
+	call EnableAutoTextBoxDrawing
+	ld hl, Mansion1TrainerHeaders
+	ld de, Mansion1ScriptPointers
+	ld a, [W_MANSION1CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MANSION1CURSCRIPT], a
+	ret
+
+Mansion1Subscript1: ; 442c5 (11:42c5)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d796]
+	bit 0, a
+	jr nz, .asm_442ec ; 0x442d2 $18
+	ld bc, $060c
+	call Mansion1Script_4430b
+	ld bc, $0308
+	call Mansion1Script_44304
+	ld bc, $080a
+	call Mansion1Script_44304
+	ld bc, $0d0d
+	jp Mansion1Script_44304
+.asm_442ec
+	ld bc, $060c
+	call Mansion1Script_44304
+	ld bc, $0308
+	call Mansion1Script_4430b
+	ld bc, $080a
+	call Mansion1Script_4430b
+	ld bc, $0d0d
+	jp Mansion1Script_4430b
+
+Mansion1Script_44304: ; 44304 (11:4304)
+	ld a, $2d
+	ld [$d09f], a
+	jr asm_44310
+
+Mansion1Script_4430b: ; 4430b (11:430b)
+	ld a, $e
+	ld [$d09f], a
+asm_44310: ; 44310 (11:4310)
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	ret
+
+Func_44316: ; 44316 (11:4316)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $4
+	ld [H_SPRITEHEIGHT], a
+	jp DisplayTextID
+
+Mansion1ScriptPointers: ; 44326 (11:4326)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Mansion1TextPointers: ; 4432c (11:432c)
+	dw Mansion1Text1
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion1Text4
+
+Mansion1TrainerHeaders: ; 44334 (11:4334)
+Mansion1TrainerHeader0: ; 44334 (11:4334)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d798 ; flag's byte
+	dw Mansion1BattleText2 ; 0x434b TextBeforeBattle
+	dw Mansion1AfterBattleText2 ; 0x4355 TextAfterBattle
+	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
+	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
+
+	db $ff
+
+Mansion1Text1: ; 44341 (11:4341)
+	db $08 ; asm
+	ld hl, Mansion1TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion1BattleText2: ; 4434b (11:434b)
+	TX_FAR _Mansion1BattleText2
+	db "@"
+
+Mansion1EndBattleText2: ; 44350 (11:4350)
+	TX_FAR _Mansion1EndBattleText2
+	db "@"
+
+Mansion1AfterBattleText2: ; 44355 (11:4355)
+	TX_FAR _Mansion1AfterBattleText2
+	db "@"
+
+Mansion1Text4: ; 4435a (11:435a)
+	db $8
+	ld hl, MansionSwitchText
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_4438c ; 0x44368 $22
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, $d126
+	set 5, [hl]
+	ld hl, MansionSwitchPressedText
+	call PrintText
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	ld hl, $d796
+	bit 0, [hl]
+	set 0, [hl]
+	jr z, .asm_44392 ; 0x44386 $a
+	res 0, [hl]
+	jr .asm_44392 ; 0x4438a $6
+.asm_4438c
+	ld hl, MansionSwitchNotPressedText
+	call PrintText
+.asm_44392
+	jp TextScriptEnd
+
+MansionSwitchText: ; 44395 (11:4395)
+	TX_FAR _MansionSwitchText
+	db "@"
+
+MansionSwitchPressedText: ; 4439a (11:439a)
+	TX_FAR _MansionSwitchPressedText
+	db "@"
+
+MansionSwitchNotPressedText: ; 4439f (11:439f)
+	TX_FAR _MansionSwitchNotPressedText
+	db "@"
--- /dev/null
+++ b/scripts/mansion2.asm
@@ -1,0 +1,145 @@
+Mansion2Script: ; 51fd8 (14:5fd8)
+	call Mansion2Script_51fee
+	call EnableAutoTextBoxDrawing
+	ld hl, Mansion2TrainerHeaders
+	ld de, Mansion2ScriptPointers
+	ld a, [W_MANSION2CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MANSION2CURSCRIPT], a
+	ret
+
+Mansion2Script_51fee: ; 51fee (14:5fee)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d796]
+	bit 0, a
+	jr nz, .asm_52016
+	ld a, $e
+	ld bc, $204
+	call Mansion2Script_5202f
+	ld a, $54
+	ld bc, $409
+	call Mansion2Script_5202f
+	ld a, $5f
+	ld bc, $b03
+	call Mansion2Script_5202f
+	ret
+.asm_52016
+	ld a, $5f
+	ld bc, $204
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $409
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $b03
+	call Mansion2Script_5202f
+	ret
+
+Mansion2Script_5202f: ; 5202f (14:602f)
+	ld [$d09f], a
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+Mansion2Script_52037: ; 52037 (14:6037)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $5
+	ld [H_SPRITEHEIGHT], a
+	jp DisplayTextID
+
+Mansion2ScriptPointers: ; 52047 (14:6047)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Mansion2TextPointers: ; 5204d (14:604d)
+	dw Mansion2Text1
+	dw Predef5CText
+	dw Mansion2Text3
+	dw Mansion2Text4
+	dw Mansion2Text5
+
+Mansion2TrainerHeaders: ; 52057 (14:6057)
+Mansion2TrainerHeader0: ; 52057 (14:6057)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d847 ; flag's byte
+	dw Mansion2BattleText1 ; 0x606e TextBeforeBattle
+	dw Mansion2AfterBattleText1 ; 0x6078 TextAfterBattle
+	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
+	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
+
+	db $ff
+
+Mansion2Text1: ; 52064 (14:6064)
+	db $08 ; asm
+	ld hl, Mansion2TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion2BattleText1: ; 5206e (14:606e)
+	TX_FAR _Mansion2BattleText1
+	db "@"
+
+Mansion2EndBattleText1: ; 52073 (14:6073)
+	TX_FAR _Mansion2EndBattleText1
+	db "@"
+
+Mansion2AfterBattleText1: ; 52078 (14:6078)
+	TX_FAR _Mansion2AfterBattleText1
+	db "@"
+
+Mansion2Text3: ; 5207d (14:607d)
+	TX_FAR _Mansion2Text3
+	db "@"
+
+Mansion2Text4: ; 52082 (14:6082)
+	TX_FAR _Mansion2Text4
+	db "@"
+
+Mansion3Text6: ; 52087 (14:6087)
+Mansion2Text5: ; 52087 (14:6087)
+	db $8
+	ld hl, Mansion2Text_520c2
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_520b9 ; 0x52095 $22
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, $d126
+	set 5, [hl]
+	ld hl, Mansion2Text_520c7
+	call PrintText
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	ld hl, $d796
+	bit 0, [hl]
+	set 0, [hl]
+	jr z, .asm_520bf ; 0x520b3 $a
+	res 0, [hl]
+	jr .asm_520bf ; 0x520b7 $6
+.asm_520b9
+	ld hl, Mansion2Text_520cc
+	call PrintText
+.asm_520bf
+	jp TextScriptEnd
+
+Mansion2Text_520c2: ; 520c2 (14:60c2)
+	TX_FAR _Mansion2Text_520c2
+	db "@"
+
+Mansion2Text_520c7: ; 520c7 (14:60c7)
+	TX_FAR _Mansion2Text_520c7
+	db "@"
+
+Mansion2Text_520cc: ; 520cc (14:60cc)
+	TX_FAR _Mansion2Text_520cc
+	db "@"
--- /dev/null
+++ b/scripts/mansion3.asm
@@ -1,0 +1,153 @@
+Mansion3Script: ; 521ee (14:61ee)
+	call Mansion3Script_52204
+	call EnableAutoTextBoxDrawing
+	ld hl, Mansion3TrainerHeader0
+	ld de, Mansion3ScriptPointers
+	ld a, [W_MANSION3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MANSION3CURSCRIPT], a
+	ret
+
+Mansion3Script_52204: ; 52204 (14:6204)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d796]
+	bit 0, a
+	jr nz, .asm_52224
+	ld a, $e
+	ld bc, $207
+	call Mansion2Script_5202f
+	ld a, $5f
+	ld bc, $507
+	call Mansion2Script_5202f
+	ret
+.asm_52224
+	ld a, $5f
+	ld bc, $207
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $507
+	call Mansion2Script_5202f
+	ret
+
+Mansion3ScriptPointers: ; 52235 (14:6235)
+	dw Mansion3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+Mansion3Script0: ; 5223b (14:623b)
+	ld hl, CoordsData_52254
+	call Mansion3Script_5225b
+	ld a, [$d71e]
+	and a
+	jp z, CheckFightingMapTrainers
+	cp $3
+	ld a, $a5
+	jr nz, .asm_52250
+	ld a, $d6
+.asm_52250
+	ld [$d71d], a
+	ret
+
+CoordsData_52254: ; 52254 (14:6254)
+	db $0E,$10
+	db $0E,$11
+	db $0E,$13
+	db $FF
+
+Mansion3Script_5225b: ; 5225b (14:625b)
+	xor a
+	ld [$d71e], a
+	ld a, [$d72d]
+	bit 4, a
+	ret nz
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, [wWhichTrade] ; $cd3d
+	ld [$d71e], a
+	ld hl, $d72d
+	set 4, [hl]
+	ld hl, $d732
+	set 4, [hl]
+	ret
+
+Func_5227a: ; 5227a (14:627a)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+Mansion3TextPointers: ; 5228a (14:628a)
+	dw Mansion3Text1
+	dw Mansion3Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion3Text5
+	dw Mansion3Text6
+
+Mansion3TrainerHeaders: ; 52296 (14:6296)
+Mansion3TrainerHeader0: ; 52296 (14:6296)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d849 ; flag's byte
+	dw Mansion3BattleText1 ; 0x62c3 TextBeforeBattle
+	dw Mansion3AfterBattleText1 ; 0x62cd TextAfterBattle
+	dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
+	dw Mansion3EndBattleText1 ; 0x62c8 TextEndBattle
+
+Mansion3TrainerHeader2: ; 522a2 (14:62a2)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d849 ; flag's byte
+	dw Mansion3BattleText2 ; 0x62d2 TextBeforeBattle
+	dw Mansion3AfterBattleText2 ; 0x62dc TextAfterBattle
+	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
+	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
+
+	db $ff
+
+Mansion3Text1: ; 522af (14:62af)
+	db $08 ; asm
+	ld hl, Mansion3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion3Text2: ; 522b9 (14:62b9)
+	db $08 ; asm
+	ld hl, Mansion3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion3BattleText1: ; 522c3 (14:62c3)
+	TX_FAR _Mansion3BattleText1
+	db "@"
+
+Mansion3EndBattleText1: ; 522c8 (14:62c8)
+	TX_FAR _Mansion3EndBattleText1
+	db "@"
+
+Mansion3AfterBattleText1: ; 522cd (14:62cd)
+	TX_FAR _Mansion3AfterBattleText1
+	db "@"
+
+Mansion3BattleText2: ; 522d2 (14:62d2)
+	TX_FAR _Mansion3BattleText2
+	db "@"
+
+Mansion3EndBattleText2: ; 522d7 (14:62d7)
+	TX_FAR _Mansion3EndBattleText2
+	db "@"
+
+Mansion3AfterBattleText2: ; 522dc (14:62dc)
+	TX_FAR _Mansion3AfterBattleText2
+	db "@"
+
+Mansion3Text5: ; 522e1 (14:62e1)
+	TX_FAR _Mansion3Text5
+	db "@"
--- /dev/null
+++ b/scripts/mansion4.asm
@@ -1,0 +1,132 @@
+Mansion4Script: ; 523b9 (14:63b9)
+	call Mansion4Script_523cf
+	call EnableAutoTextBoxDrawing
+	ld hl, Mansion4TrainerHeader0
+	ld de, Mansion4ScriptPointers
+	ld a, [W_MANSION4CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MANSION4CURSCRIPT], a
+	ret
+
+Mansion4Script_523cf: ; 523cf (14:63cf)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d796]
+	bit 0, a
+	jr nz, .asm_523ff
+	ld a, $e
+	ld bc, $80d
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $b06
+	call Mansion2Script_5202f
+	ld a, $5f
+	ld bc, $304
+	call Mansion2Script_5202f
+	ld a, $54
+	ld bc, $808
+	call Mansion2Script_5202f
+	ret
+.asm_523ff
+	ld a, $2d
+	ld bc, $80d
+	call Mansion2Script_5202f
+	ld a, $5f
+	ld bc, $b06
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $304
+	call Mansion2Script_5202f
+	ld a, $e
+	ld bc, $808
+	call Mansion2Script_5202f
+	ret
+
+Func_52420: ; 52420 (14:6420)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+Mansion4ScriptPointers: ; 52430 (14:6430)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Mansion4TextPointers: ; 52436 (14:6436)
+	dw Mansion4Text1
+	dw Mansion4Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion4Text7
+	dw Predef5CText
+	dw Mansion3Text6
+
+Mansion4TrainerHeaders: ; 52448 (14:6448)
+Mansion4TrainerHeader0: ; 52448 (14:6448)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d84b ; flag's byte
+	dw Mansion4BattleText1 ; 0x6475 TextBeforeBattle
+	dw Mansion4AfterBattleText1 ; 0x647f TextAfterBattle
+	dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
+	dw Mansion4EndBattleText1 ; 0x647a TextEndBattle
+
+Mansion4TrainerHeader2: ; 52454 (14:6454)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d84b ; flag's byte
+	dw Mansion4BattleText2 ; 0x6484 TextBeforeBattle
+	dw Mansion4AfterBattleText2 ; 0x648e TextAfterBattle
+	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
+	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
+
+	db $ff
+
+Mansion4Text1: ; 52461 (14:6461)
+	db $08 ; asm
+	ld hl, Mansion4TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion4Text2: ; 5246b (14:646b)
+	db $08 ; asm
+	ld hl, Mansion4TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Mansion4BattleText1: ; 52475 (14:6475)
+	TX_FAR _Mansion4BattleText1
+	db "@"
+
+Mansion4EndBattleText1: ; 5247a (14:647a)
+	TX_FAR _Mansion4EndBattleText1
+	db "@"
+
+Mansion4AfterBattleText1: ; 5247f (14:647f)
+	TX_FAR _Mansion4AfterBattleText1
+	db "@"
+
+Mansion4BattleText2: ; 52484 (14:6484)
+	TX_FAR _Mansion4BattleText2
+	db "@"
+
+Mansion4EndBattleText2: ; 52489 (14:6489)
+	TX_FAR _Mansion4EndBattleText2
+	db "@"
+
+Mansion4AfterBattleText2: ; 5248e (14:648e)
+	TX_FAR _Mansion4AfterBattleText2
+	db "@"
+
+Mansion4Text7: ; 52493 (14:6493)
+	TX_FAR _Mansion4Text7
+	db "@"
--- /dev/null
+++ b/scripts/mtmoon1.asm
@@ -1,0 +1,225 @@
+MtMoon1Script: ; 499c8 (12:59c8)
+	call EnableAutoTextBoxDrawing
+	ld hl, MtMoon1TrainerHeader0
+	ld de, MtMoon1ScriptPointers
+	ld a, [W_MTMOON1CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MTMOON1CURSCRIPT], a
+	ret
+
+MtMoon1ScriptPointers: ; 499db (12:59db)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+MtMoon1TextPointers: ; 499e1 (12:59e1)
+	dw MtMoon1Text1
+	dw MtMoon1Text2
+	dw MtMoon1Text3
+	dw MtMoon1Text4
+	dw MtMoon1Text5
+	dw MtMoon1Text6
+	dw MtMoon1Text7
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw MtMoon1Text14
+
+MtMoon1TrainerHeaders: ; 499fd (12:59fd)
+MtMoon1TrainerHeader0: ; 499fd (12:59fd)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText2 ; 0x5a98 TextBeforeBattle
+	dw MtMoon1AfterBattleText2 ; 0x5aa2 TextAfterBattle
+	dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
+	dw MtMoon1EndBattleText2 ; 0x5a9d TextEndBattle
+
+MtMoon1TrainerHeader2: ; 49a09 (12:5a09)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText3 ; 0x5aa7 TextBeforeBattle
+	dw MtMoon1AfterBattleText3 ; 0x5ab1 TextAfterBattle
+	dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
+	dw MtMoon1EndBattleText3 ; 0x5aac TextEndBattle
+
+MtMoon1TrainerHeader3: ; 49a15 (12:5a15)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText4 ; 0x5ab6 TextBeforeBattle
+	dw MtMoon1AfterBattleText4 ; 0x5ac0 TextAfterBattle
+	dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
+	dw MtMoon1EndBattleText4 ; 0x5abb TextEndBattle
+
+MtMoon1TrainerHeader4: ; 49a21 (12:5a21)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText5 ; 0x5ac5 TextBeforeBattle
+	dw MtMoon1AfterBattleText5 ; 0x5acf TextAfterBattle
+	dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
+	dw MtMoon1EndBattleText5 ; 0x5aca TextEndBattle
+
+MtMoon1TrainerHeader5: ; 49a2d (12:5a2d)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText6 ; 0x5ad4 TextBeforeBattle
+	dw MtMoon1AfterBattleText6 ; 0x5ade TextAfterBattle
+	dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
+	dw MtMoon1EndBattleText6 ; 0x5ad9 TextEndBattle
+
+MtMoon1TrainerHeader6: ; 49a39 (12:5a39)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText7 ; 0x5ae3 TextBeforeBattle
+	dw MtMoon1AfterBattleText7 ; 0x5aed TextAfterBattle
+	dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
+	dw MtMoon1EndBattleText7 ; 0x5ae8 TextEndBattle
+
+MtMoon1TrainerHeader7: ; 49a45 (12:5a45)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f5 ; flag's byte
+	dw MtMoon1BattleText8 ; 0x5af2 TextBeforeBattle
+	dw MtMoon1AfterBattleText8 ; 0x5afc TextAfterBattle
+	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
+	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
+
+	db $ff
+
+MtMoon1Text1: ; 49a52 (12:5a52)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text2: ; 49a5c (12:5a5c)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text3: ; 49a66 (12:5a66)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text4: ; 49a70 (12:5a70)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text5: ; 49a7a (12:5a7a)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text6: ; 49a84 (12:5a84)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1Text7: ; 49a8e (12:5a8e)
+	db $08 ; asm
+	ld hl, MtMoon1TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon1BattleText2: ; 49a98 (12:5a98)
+	TX_FAR _MtMoon1BattleText2
+	db "@"
+
+MtMoon1EndBattleText2: ; 49a9d (12:5a9d)
+	TX_FAR _MtMoon1EndBattleText2
+	db "@"
+
+MtMoon1AfterBattleText2: ; 49aa2 (12:5aa2)
+	TX_FAR _MtMoon1AfterBattleText2
+	db "@"
+
+MtMoon1BattleText3: ; 49aa7 (12:5aa7)
+	TX_FAR _MtMoon1BattleText3
+	db "@"
+
+MtMoon1EndBattleText3: ; 49aac (12:5aac)
+	TX_FAR _MtMoon1EndBattleText3
+	db "@"
+
+MtMoon1AfterBattleText3: ; 49ab1 (12:5ab1)
+	TX_FAR _MtMoon1AfterBattleText3
+	db "@"
+
+MtMoon1BattleText4: ; 49ab6 (12:5ab6)
+	TX_FAR _MtMoon1BattleText4
+	db "@"
+
+MtMoon1EndBattleText4: ; 49abb (12:5abb)
+	TX_FAR _MtMoon1EndBattleText4
+	db "@"
+
+MtMoon1AfterBattleText4: ; 49ac0 (12:5ac0)
+	TX_FAR _MtMoon1AfterBattleText4
+	db "@"
+
+MtMoon1BattleText5: ; 49ac5 (12:5ac5)
+	TX_FAR _MtMoon1BattleText5
+	db "@"
+
+MtMoon1EndBattleText5: ; 49aca (12:5aca)
+	TX_FAR _MtMoon1EndBattleText5
+	db "@"
+
+MtMoon1AfterBattleText5: ; 49acf (12:5acf)
+	TX_FAR _MtMoon1AfterBattleText5
+	db "@"
+
+MtMoon1BattleText6: ; 49ad4 (12:5ad4)
+	TX_FAR _MtMoon1BattleText6
+	db "@"
+
+MtMoon1EndBattleText6: ; 49ad9 (12:5ad9)
+	TX_FAR _MtMoon1EndBattleText6
+	db "@"
+
+MtMoon1AfterBattleText6: ; 49ade (12:5ade)
+	TX_FAR _MtMoon1AfterBattleText6
+	db "@"
+
+MtMoon1BattleText7: ; 49ae3 (12:5ae3)
+	TX_FAR _MtMoon1BattleText7
+	db "@"
+
+MtMoon1EndBattleText7: ; 49ae8 (12:5ae8)
+	TX_FAR _MtMoon1EndBattleText7
+	db "@"
+
+MtMoon1AfterBattleText7: ; 49aed (12:5aed)
+	TX_FAR _MtMoon1AfterBattleText7
+	db "@"
+
+MtMoon1BattleText8: ; 49af2 (12:5af2)
+	TX_FAR _MtMoon1BattleText8
+	db "@"
+
+MtMoon1EndBattleText8: ; 49af7 (12:5af7)
+	TX_FAR _MtMoon1EndBattleText8
+	db "@"
+
+MtMoon1AfterBattleText8: ; 49afc (12:5afc)
+	TX_FAR _MtMoon1AfterBattleText8
+	db "@"
+
+MtMoon1Text14: ; 49b01 (12:5b01)
+	TX_FAR _MtMoon1Text14
+	db "@"
--- /dev/null
+++ b/scripts/mtmoon2.asm
@@ -1,0 +1,10 @@
+MtMoon2Script: ; 51a42 (14:5a42)
+	call EnableAutoTextBoxDrawing
+	ret
+
+MtMoon2TextPointers: ; 51a46 (14:5a46)
+	dw MtMoonText1
+
+MtMoonText1: ; 51a48 (14:5a48)
+	TX_FAR _MtMoonText1
+	db "@"
--- /dev/null
+++ b/scripts/mtmoon3.asm
@@ -1,0 +1,414 @@
+MtMoon3Script: ; 49d0b (12:5d0b)
+	call EnableAutoTextBoxDrawing
+	ld hl, MtMoon3TrainerHeader0 ; $5e48
+	ld de, MtMoon3ScriptPointers
+	ld a, [W_MTMOON3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_MTMOON3CURSCRIPT], a
+	ld a, [$d7f6]
+	bit 1, a
+	ret z
+	ld hl, CoordsData_49d37
+	call ArePlayerCoordsInArray
+	jr nc, .asm_49d31 ; 0x49d29 $6
+	ld hl, $d72e
+	set 4, [hl]
+	ret
+.asm_49d31
+	ld hl, $d72e
+	res 4, [hl]
+	ret
+
+CoordsData_49d37: ; 49d37 (12:5d37)
+	db $05,$0B
+	db $05,$0C
+	db $05,$0D
+	db $05,$0E
+	db $06,$0B
+	db $06,$0C
+	db $06,$0D
+	db $06,$0E
+	db $07,$0B
+	db $07,$0C
+	db $07,$0D
+	db $07,$0E
+	db $08,$0B
+	db $08,$0C
+	db $08,$0D
+	db $08,$0E
+	db $FF
+
+MtMoon3Script_49d58: ; 49d58 (12:5d58)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+MtMoon3ScriptPointers: ; 49d63 (12:5d63)
+	dw MtMoon3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw MtMoon3Script3
+	dw MtMoon3Script4
+	dw MtMoon3Script5
+
+MtMoon3Script0: ; 49d6f (12:5d6f)
+	ld a, [$d7f6]
+	bit 1, a
+	jp nz, MtMoon3Script_49d91
+	ld a, [W_YCOORD] ; $d361
+	cp $8
+	jp nz, MtMoon3Script_49d91
+	ld a, [W_XCOORD] ; $d362
+	cp $d
+	jp nz, MtMoon3Script_49d91
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp DisplayTextID
+
+MtMoon3Script_49d91: ; 49d91 (12:5d91)
+	ld a, [$d7f6]
+	and $c0
+	jp z, CheckFightingMapTrainers
+	ret
+
+MtMoon3Script3: ; 49d9a (12:5d9a)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, MtMoon3Script_49d58
+	call UpdateSprites
+	call Delay3
+	ld hl, $d7f6
+	set 1, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+MtMoon3Script4: ; 49dba (12:5dba)
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call SetSpriteMovementBytesToFF
+	ld hl, CoordsData_49dea
+	call ArePlayerCoordsInArray
+	jr c, .asm_49dd7
+	ld hl, CoordsData_49df1
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	ld de, MovementData_49df9
+	jr .asm_49dda
+.asm_49dd7
+	ld de, MovementData_49df8
+.asm_49dda
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call MoveSprite
+	ld a, $5
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_49dea: ; 49dea (12:5dea)
+	db $07,$0C
+	db $06,$0B
+	db $05,$0C
+	db $FF
+
+CoordsData_49df1: ; 49df1 (12:5df1)
+	db $07,$0D
+	db $06,$0E
+	db $05,$0E
+	db $FF
+
+MovementData_49df8: ; 49df8 (12:5df8)
+	db $C0
+
+MovementData_49df9: ; 49df9 (12:5df9)
+	db $40,$FF
+
+MtMoon3Script5: ; 49dfb (12:5dfb)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [$cc3c], a
+	ld a, $a
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, [$d7f6]
+	bit 6, a
+	jr z, .asm_49e1d
+	ld a, $6e
+	jr .asm_49e1f
+.asm_49e1d
+	ld a, $6d
+.asm_49e1f
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+MtMoon3TextPointers: ; 49e34 (12:5e34)
+	dw MtMoon3Text1
+	dw MtMoon3Text2
+	dw MtMoon3Text3
+	dw MtMoon3Text4
+	dw MtMoon3Text5
+	dw MtMoon3Text6
+	dw MtMoon3Text7
+	dw Predef5CText
+	dw Predef5CText
+	dw MtMoon3Text_49f99
+
+MtMoon3TrainerHeaders: ; 49e48 (12:5e48)
+MtMoon3TrainerHeader0: ; 49e48 (12:5e48)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f6 ; flag's byte
+	dw MtMoon3BattleText2 ; 0x5f9f TextBeforeBattle
+	dw MtMoon3AfterBattleText2 ; 0x5fa9 TextAfterBattle
+	dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
+	dw MtMoon3EndBattleText2 ; 0x5fa4 TextEndBattle
+
+MtMoon3TrainerHeader2: ; 49e54 (12:5e54)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f6 ; flag's byte
+	dw MtMoon3BattleText3 ; 0x5fae TextBeforeBattle
+	dw MtMoon3AfterBattleText3 ; 0x5fb8 TextAfterBattle
+	dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
+	dw MtMoon3EndBattleText3 ; 0x5fb3 TextEndBattle
+
+MtMoon3TrainerHeader3: ; 49e60 (12:5e60)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f6 ; flag's byte
+	dw MtMoon3BattleText4 ; 0x5fbd TextBeforeBattle
+	dw MtMoon3AfterBattleText4 ; 0x5fc7 TextAfterBattle
+	dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
+	dw MtMoon3EndBattleText4 ; 0x5fc2 TextEndBattle
+
+MtMoon3TrainerHeader4: ; 49e6c (12:5e6c)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f6 ; flag's byte
+	dw MtMoon3BattleText5 ; 0x5fcc TextBeforeBattle
+	dw MtMoon3AfterBattleText5 ; 0x5fd6 TextAfterBattle
+	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
+	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
+
+	db $ff
+
+MtMoon3Text1: ; 49e79 (12:5e79)
+	db $08 ; asm
+	ld a, [$d7f6]
+	bit 1, a
+	jr z, .asm_be1e0 ; 0x49e7f
+	and $c0
+	jr nz, .asm_f8cd4 ; 0x49e83
+	ld hl, MtMoon3Text_49f8f
+	call PrintText
+	jr .asm_f1fba ; 0x49e8b
+.asm_be1e0 ; 0x49e8d
+	ld hl, MtMoon3Text_49f85
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, MtMoon3Text_49f8a
+	ld de, MtMoon3Text_49f8a
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $3
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jr .asm_f1fba ; 0x49eb6
+.asm_f8cd4 ; 0x49eb8
+	ld hl, MtMoon3Text_49f94
+	call PrintText
+.asm_f1fba ; 0x49ebe
+	jp TextScriptEnd
+
+MtMoon3Text2: ; 49ec1 (12:5ec1)
+	db $08 ; asm
+	ld hl, MtMoon3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon3Text3: ; 49ecb (12:5ecb)
+	db $08 ; asm
+	ld hl, MtMoon3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon3Text4: ; 49ed5 (12:5ed5)
+	db $08 ; asm
+	ld hl, MtMoon3TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon3Text5: ; 49edf (12:5edf)
+	db $08 ; asm
+	ld hl, MtMoon3TrainerHeader4 ; $5e6c
+	call TalkToTrainer
+	jp TextScriptEnd
+
+MtMoon3Text6: ; 49ee9 (12:5ee9)
+	db $08 ; asm
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, MtMoon3Text_49f24
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_1fa5e ; 0x49efc
+	ld bc,(DOME_FOSSIL << 8) | 1
+	call GiveItem
+	jp nc, MtMoon3Script_49f76
+	call MtMoon3Script_49f69
+	ld a, $6d
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d7f6
+	set 6, [hl]
+	ld a, $4
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_1fa5e ; 0x49f21
+	jp TextScriptEnd
+
+MtMoon3Text_49f24: ; 49f24 (12:5f24)
+	TX_FAR _MtMoon3Text_49f24
+	db "@"
+
+MtMoon3Text7: ; 49f29 (12:5f29)
+	db $08 ; asm
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, MtMoon3Text_49f64
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_8e988 ; 0x49f3c
+	ld bc, (HELIX_FOSSIL << 8) | 1
+	call GiveItem
+	jp nc, MtMoon3Script_49f76
+	call MtMoon3Script_49f69
+	ld a, $6e
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d7f6
+	set 7, [hl]
+	ld a, $4
+	ld [W_MTMOON3CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_8e988 ; 0x49f61
+	jp TextScriptEnd
+
+MtMoon3Text_49f64: ; 49f64 (12:5f64)
+	TX_FAR _MtMoon3Text_49f64
+	db "@"
+
+MtMoon3Script_49f69: ; 49f69 (12:5f69)
+	ld hl, MtMoon3Text_49f6f
+	jp PrintText
+
+MtMoon3Text_49f6f: ; 49f6f (12:5f6f)
+	TX_FAR _MtMoon3Text_49f6f ; 0x80995
+	db $11, $d, "@"
+
+MtMoon3Script_49f76: ; 49f76 (12:5f76)
+	ld hl, MtMoon3Text_49f7f
+	call PrintText
+	jp TextScriptEnd
+
+MtMoon3Text_49f7f: ; 49f7f (12:5f7f)
+	TX_FAR _MtMoon3Text_49f7f ; 0x809a8
+	db $d, "@"
+
+MtMoon3Text_49f85: ; 49f85 (12:5f85)
+	TX_FAR _MtMoon3Text_49f85
+	db "@"
+
+MtMoon3Text_49f8a: ; 49f8a (12:5f8a)
+	TX_FAR _MtMoon3Text_49f8a
+	db "@"
+
+MtMoon3Text_49f8f: ; 49f8f (12:5f8f)
+	TX_FAR _MtMoon3Text_49f8f
+	db "@"
+
+MtMoon3Text_49f94: ; 49f94 (12:5f94)
+	TX_FAR _MtMoon3Text_49f94
+	db "@"
+
+MtMoon3Text_49f99: ; 49f99 (12:5f99)
+	TX_FAR _MtMoon3Text_49f99
+	db $11, "@"
+
+MtMoon3BattleText2: ; 49f9f (12:5f9f)
+	TX_FAR _MtMoon3BattleText2
+	db "@"
+
+MtMoon3EndBattleText2: ; 49fa4 (12:5fa4)
+	TX_FAR _MtMoon3EndBattleText2
+	db "@"
+
+MtMoon3AfterBattleText2: ; 49fa9 (12:5fa9)
+	TX_FAR _MtMoon3AfterBattleText2
+	db "@"
+
+MtMoon3BattleText3: ; 49fae (12:5fae)
+	TX_FAR _MtMoon3BattleText3
+	db "@"
+
+MtMoon3EndBattleText3: ; 49fb3 (12:5fb3)
+	TX_FAR _MtMoon3EndBattleText3
+	db "@"
+
+MtMoon3AfterBattleText3: ; 49fb8 (12:5fb8)
+	TX_FAR _MtMoon3AfterBattleText3
+	db "@"
+
+MtMoon3BattleText4: ; 49fbd (12:5fbd)
+	TX_FAR _MtMoon3BattleText4
+	db "@"
+
+MtMoon3EndBattleText4: ; 49fc2 (12:5fc2)
+	TX_FAR _MtMoon3EndBattleText4
+	db "@"
+
+MtMoon3AfterBattleText4: ; 49fc7 (12:5fc7)
+	TX_FAR _MtMoon3AfterBattleText4
+	db "@"
+
+MtMoon3BattleText5: ; 49fcc (12:5fcc)
+	TX_FAR _MtMoon3BattleText5
+	db "@"
+
+MtMoon3EndBattleText5: ; 49fd1 (12:5fd1)
+	TX_FAR _MtMoon3EndBattleText5
+	db "@"
+
+MtMoon3AfterBattleText5: ; 49fd6 (12:5fd6)
+	TX_FAR _MtMoon3AfterBattleText5
+	db "@"
--- /dev/null
+++ b/scripts/mtmoonpokecenter.asm
@@ -1,0 +1,97 @@
+MtMoonPokecenterScript: ; 492cf (12:52cf)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+MtMoonPokecenterTextPointers: ; 492d5 (12:52d5)
+	dw MtMoonPokecenterText1
+	dw MtMoonPokecenterText2
+	dw MtMoonPokecenterText3
+	dw MtMoonPokecenterText4
+	dw MtMoonPokecenterText5
+	dw MtMoonPokecenterText6
+
+MtMoonPokecenterText1: ; 492e1 (12:52e1)
+	db $ff
+
+MtMoonPokecenterText2: ; 492e2 (12:52e2)
+	TX_FAR _MtMoonPokecenterText1
+	db "@"
+
+MtMoonPokecenterText3: ; 492e7 (12:52e7)
+	TX_FAR _MtMoonPokecenterText3
+	db "@"
+
+MtMoonPokecenterText4: ; 492ec (12:52ec)
+	db $08 ; asm
+	ld a, [$d7c6]
+	add a
+	jp c, .asm_49353
+	ld hl, MtMoonPokecenterText_4935c
+	call PrintText
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jp nz, .asm_4934e
+	ldh [$9f], a
+	ldh [$a1], a
+	ld a, $5
+	ldh [$a0], a
+	call HasEnoughMoney
+	jr nc, .asm_faa09 ; 0x49317
+	ld hl, MtMoonPokecenterText_49366
+	jr .asm_49356 ; 0x4931c
+.asm_faa09 ; 0x4931e
+	ld bc,(MAGIKARP << 8) | 5
+	call GivePokemon
+	jr nc, .asm_49359 ; 0x49324
+	xor a
+	ld [wWhichTrade], a
+	ld [$cd3f], a
+	ld a, $5
+	ld [$cd3e], a
+	ld hl, $cd3f
+	ld de, $d349
+	ld c, $3
+	ld a, $c
+	call Predef
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	ld hl, $d7c6
+	set 7, [hl]
+	jr .asm_49359 ; 0x4934c
+.asm_4934e ; 0x4934e
+	ld hl, MtMoonPokecenterText_49361
+	jr .asm_49356 ; 0x49351
+.asm_49353 ; 0x49353
+	ld hl, MtMoonPokecenterText_4936b
+.asm_49356 ; 0x49356
+	call PrintText
+.asm_49359 ; 0x49359
+	jp TextScriptEnd
+
+MtMoonPokecenterText_4935c: ; 4935c (12:535c)
+	TX_FAR _MtMoonPokecenterText_4935c
+	db "@"
+
+MtMoonPokecenterText_49361: ; 49361 (12:5361)
+	TX_FAR _MtMoonPokecenterText_49361
+	db "@"
+
+MtMoonPokecenterText_49366: ; 49366 (12:5366)
+	TX_FAR _MtMoonPokecenterText_49366
+	db "@"
+
+MtMoonPokecenterText_4936b: ; 4936b (12:536b)
+	TX_FAR _MtMoonPokecenterText_4936b
+	db "@"
+
+MtMoonPokecenterText5: ; 49370 (12:5370)
+	TX_FAR _MtMoonPokecenterText5
+	db "@"
+
+MtMoonPokecenterText6: ; 49375 (12:5375)
+	db $f6
--- /dev/null
+++ b/scripts/museum1f.asm
@@ -1,0 +1,253 @@
+Museum1FScript: ; 5c0f7 (17:40f7)
+	ld a, $1
+	ld [$cf0c], a
+	xor a
+	ld [$cc3c], a
+	ld hl, Museum1FScriptPointers
+	ld a, [W_MUSEUM1FCURSCRIPT]
+	jp CallFunctionInTable
+
+Museum1FScriptPointers: ; 5c109 (17:4109)
+	dw Museum1FScript0
+	dw Museum1FScript1
+
+Museum1FScript0: ; 5c10d (17:410d)
+	ld a, [W_YCOORD]
+	cp $4
+	ret nz
+	ld a, [W_XCOORD]
+	cp $9
+	jr z, .asm_5c120 ; 0x5c118 $6
+	ld a, [W_XCOORD]
+	cp $a
+	ret nz
+.asm_5c120
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $1
+	ld [$ff8c], a
+	jp DisplayTextID
+
+Museum1FScript1: ; 5c12a (17:412a)
+	ret
+
+Museum1FTextPointers: ; 5c12b (17:412b)
+	dw Museum1FText1
+	dw Museum1FText2
+	dw Museum1FText3
+	dw Museum1FText4
+	dw Museum1FText5
+
+Museum1FText1: ; 5c135 (17:4135)
+	db $8
+	ld a, [W_YCOORD]
+	cp $4
+	jr nz, .asm_8774b
+	ld a, [W_XCOORD]
+	cp $d
+	jp z, Museum1FScript_5c1f9
+	jr .asm_b8709
+.asm_8774b
+	cp $3
+	jr nz, .asm_d49e7
+	ld a, [W_XCOORD]
+	cp $c
+	jp z, Museum1FScript_5c1f9
+.asm_d49e7
+	ld a, [$d754]
+	bit 0, a
+	jr nz, .asm_31a16
+	ld hl, Museum1FText_5c23d
+	call PrintText
+	jp asm_d1145
+.asm_b8709
+	ld a, [$d754]
+	bit 0, a
+	jr z, .asm_3ded4
+.asm_31a16
+	ld hl, Museum1FText_5c242
+	call PrintText
+	jp asm_d1145
+.asm_3ded4
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld hl, Museum1FText_5c21f
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_de133
+	xor a
+	ld [$ff9f], a
+	ld [$ffa0], a
+	ld a, $50
+	ld [$ffa1], a
+	call HasEnoughMoney
+	jr nc, .asm_0f3e3
+	ld hl, Museum1FText_5c229
+	call PrintText
+	jp .asm_de133
+.asm_0f3e3
+	ld hl, Museum1FText_5c224
+	call PrintText
+	ld hl, $d754
+	set 0, [hl]
+	xor a
+	ld [$cd3d], a
+	ld [$cd3e], a
+	ld a, $50
+	ld [$cd3f], a
+	ld hl, $cd3f
+	ld de, $d349
+	ld c, $3
+	ld a, $c
+	call Predef
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	ld a, (SFX_02_5a - SFX_Headers_02) / 3
+	call PlaySoundWaitForCurrent
+	call WaitForSoundToFinish
+	jr .asm_0b094
+.asm_de133
+	ld hl, Museum1FText_5c21a ; $421a
+	call PrintText
+	ld a, $1
+	ld [$cd38], a
+	ld a, $80
+	ld [$ccd3], a
+	call Func_3486
+	call UpdateSprites
+	jr asm_d1145
+.asm_0b094
+	ld a, $1
+	ld [W_MUSEUM1FCURSCRIPT], a
+	jr asm_d1145
+
+Museum1FScript_5c1f9: ; 5c1f9 (17:41f9)
+	ld hl, Museum1FText_5c22e
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	cp $0
+	jr nz, .asm_d1144
+	ld hl, Museum1FText_5c233
+	call PrintText
+	jr asm_d1145
+.asm_d1144
+	ld hl, Museum1FText_5c238
+	call PrintText
+asm_d1145: ; 5c217 (17:4217)
+	jp TextScriptEnd
+
+Museum1FText_5c21a: ; 5c21a (17:421a)
+	TX_FAR _Museum1FText_5c21a
+	db "@"
+
+Museum1FText_5c21f: ; 5c21f (17:421f)
+	TX_FAR _Museum1FText_5c21f
+	db "@"
+
+Museum1FText_5c224: ; 5c224 (17:4224)
+	TX_FAR _Museum1FText_5c224
+	db "@"
+
+Museum1FText_5c229: ; 5c229 (17:4229)
+	TX_FAR _Museum1FText_5c229
+	db "@"
+
+Museum1FText_5c22e: ; 5c22e (17:422e)
+	TX_FAR _Museum1FText_5c22e
+	db "@"
+
+Museum1FText_5c233: ; 5c233 (17:4233)
+	TX_FAR _Museum1FText_5c233
+	db "@"
+
+Museum1FText_5c238: ; 5c238 (17:4238)
+	TX_FAR _Museum1FText_5c238
+	db "@"
+
+Museum1FText_5c23d: ; 5c23d (17:423d)
+	TX_FAR _Museum1FText_5c23d
+	db "@"
+
+Museum1FText_5c242: ; 5c242 (17:4242)
+	TX_FAR _Museum1FText_5c242
+	db "@"
+
+Museum1FText2: ; 5c247 (17:4247)
+	db $08 ; asm
+	ld hl, Museum1FText_5c251
+	call PrintText
+	jp TextScriptEnd
+
+Museum1FText_5c251: ; 5c251 (17:4251)
+	TX_FAR _Museum1FText_5c251
+	db "@"
+
+Museum1FText3: ; 5c256 (17:4256)
+	db $08 ; asm
+	ld a, [$d754]
+	bit 1, a
+	jr nz, .asm_16599 ; 0x5c25c
+	ld hl, Museum1FText_5c28e
+	call PrintText
+	ld bc, (OLD_AMBER << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d754
+	set 1, [hl]
+	ld a, $34
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, ReceivedOldAmberText
+	jr .asm_52e0f ; 0x5c27e
+.BagFull
+	ld hl, Museum1FText_5c29e
+	jr .asm_52e0f ; 0x5c283
+.asm_16599 ; 0x5c285
+	ld hl, Museum1FText_5c299
+.asm_52e0f ; 0x5c288
+	call PrintText
+	jp TextScriptEnd
+
+Museum1FText_5c28e: ; 5c28e (17:428e)
+	TX_FAR _Museum1FText_5c28e
+	db "@"
+
+ReceivedOldAmberText: ; 5c293 (17:4293)
+	TX_FAR _ReceivedOldAmberText
+	db $0B, "@"
+
+Museum1FText_5c299: ; 5c299 (17:4299)
+	TX_FAR _Museum1FText_5c299
+	db "@"
+
+Museum1FText_5c29e: ; 5c29e (17:429e)
+	TX_FAR _Museum1FText_5c29e
+	db "@"
+
+Museum1FText4: ; 5c2a3 (17:42a3)
+	db $08 ; asm
+	ld hl, Museum1FText_5c2ad
+	call PrintText
+	jp TextScriptEnd
+
+Museum1FText_5c2ad: ; 5c2ad (17:42ad)
+	TX_FAR _Museum1FText_5c2ad
+	db "@"
+
+Museum1FText5: ; 5c2b2 (17:42b2)
+	db $08 ; asm
+	ld hl, Museum1FText_5c2bc
+	call PrintText
+	jp TextScriptEnd
+
+Museum1FText_5c2bc: ; 5c2bc (17:42bc)
+	TX_FAR _Museum1FText_5c2bc
+	db "@"
--- /dev/null
+++ b/scripts/museum2f.asm
@@ -1,0 +1,39 @@
+Museum2FScript: ; 5c317 (17:4317)
+	jp EnableAutoTextBoxDrawing
+
+Museum2FTextPointers: ; 5c31a (17:431a)
+	dw Museum2FText1
+	dw Museum2FText2
+	dw Museum2FText3
+	dw Museum2FText4
+	dw Museum2FText5
+	dw Museum2FText6
+	dw Museum2FText7
+
+Museum2FText1: ; 5c328 (17:4328)
+	TX_FAR _Museum2FText1
+	db "@"
+
+Museum2FText2: ; 5c32d (17:432d)
+	TX_FAR _Museum2FText2
+	db "@"
+
+Museum2FText3: ; 5c332 (17:4332)
+	TX_FAR _Museum2FText3
+	db "@"
+
+Museum2FText4: ; 5c337 (17:4337)
+	TX_FAR _Museum2FText4
+	db "@"
+
+Museum2FText5: ; 5c33c (17:433c)
+	TX_FAR _Museum2FText5
+	db "@"
+
+Museum2FText6: ; 5c341 (17:4341)
+	TX_FAR _Museum2FText6
+	db "@"
+
+Museum2FText7: ; 5c346 (17:4346)
+	TX_FAR _Museum2FText7
+	db "@"
--- /dev/null
+++ b/scripts/namerater.asm
@@ -1,0 +1,109 @@
+NameRaterScript: ; 1da12 (7:5a12)
+	jp EnableAutoTextBoxDrawing
+
+NameRaterScript_1da15: ; 1da15 (7:5a15)
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	ret
+
+NameRaterScript_1da20: ; 1da20 (7:5a20)
+	ld hl, W_PARTYMON1OT
+	ld bc, $000b
+	ld a, [wWhichPokemon]
+	call AddNTimes
+	ld de, W_PLAYERNAME
+	ld c, $b
+	call .asm_1da47
+	jr c, .asm_1da52 ; 0x1da34 $1c
+	ld hl, $d177
+	ld bc, $002c
+	ld a, [wWhichPokemon]
+	call AddNTimes
+	ld de, $d359
+	ld c, $2
+.asm_1da47
+	ld a, [de]
+	cp [hl]
+	jr nz, .asm_1da52 ; 0x1da49 $7
+	inc hl
+	inc de
+	dec c
+	jr nz, .asm_1da47 ; 0x1da4e $f7
+	and a
+	ret
+.asm_1da52
+	scf
+	ret
+
+NameRaterTextPointers: ; 1da54 (7:5a54)
+	dw NameRaterText1
+
+NameRaterText1: ; 1da56 (7:5a56)
+	db $8
+	call SaveScreenTilesToBuffer2
+	ld hl, NameRaterText_1dab3
+	call NameRaterScript_1da15
+	jr nz, .asm_1daae ; 0x1da60 $4c
+	ld hl, NameRaterText_1dab8
+	call PrintText
+	xor a
+	ld [$d07d], a
+	ld [$cfcb], a
+	ld [$cc35], a
+	call DisplayPartyMenu
+	push af
+	call GBPalWhiteOutWithDelay3
+	call Func_3dbe
+	call LoadGBPal
+	pop af
+	jr c, .asm_1daae ; 0x1da80 $2c
+	call GetPartyMonName2
+	call NameRaterScript_1da20
+	ld hl, NameRaterText_1dad1
+	jr c, .asm_1daa8 ; 0x1da8b $1b
+	ld hl, NameRaterText_1dabd
+	call NameRaterScript_1da15
+	jr nz, .asm_1daae ; 0x1da93 $19
+	ld hl, NameRaterText_1dac2
+	call PrintText
+	ld b, BANK(Func_655c)
+	ld hl, Func_655c
+	call Bankswitch
+	jr c, .asm_1daae ; 0x1daa3 $9
+	ld hl, NameRaterText_1dac7
+.asm_1daa8
+	call PrintText
+	jp TextScriptEnd
+.asm_1daae
+	ld hl, NameRaterText_1dacc
+	jr .asm_1daa8 ; 0x1dab1 $f5
+
+NameRaterText_1dab3: ; 1dab3 (7:5ab3)
+	TX_FAR _NameRaterText_1dab3
+	db "@"
+
+NameRaterText_1dab8: ; 1dab8 (7:5ab8)
+	TX_FAR _NameRaterText_1dab8
+	db "@"
+
+NameRaterText_1dabd: ; 1dabd (7:5abd)
+	TX_FAR _NameRaterText_1dabd
+	db "@"
+
+NameRaterText_1dac2: ; 1dac2 (7:5ac2)
+	TX_FAR _NameRaterText_1dac2
+	db "@"
+
+NameRaterText_1dac7: ; 1dac7 (7:5ac7)
+	TX_FAR _NameRaterText_1dac7
+	db "@"
+
+NameRaterText_1dacc: ; 1dacc (7:5acc)
+	TX_FAR _NameRaterText_1dacc
+	db "@"
+
+NameRaterText_1dad1: ; 1dad1 (7:5ad1)
+	TX_FAR _NameRaterText_1dad1
+	db "@"
--- /dev/null
+++ b/scripts/oakslab.asm
@@ -1,0 +1,1244 @@
+OaksLabScript: ; 1cb0e (7:4b0e)
+	ld a, [$d74b]
+	bit 6, a
+	call nz, OaksLabScript_1d076
+	ld a, $1
+	ld [$cf0c], a
+	xor a
+	ld [$cc3c], a
+	ld hl, OaksLabScriptPointers
+	ld a, [W_OAKSLABCURSCRIPT]
+	jp CallFunctionInTable
+
+OaksLabScriptPointers: ; 1cb28 (7:4b28)
+	dw OaksLabScript0
+	dw OaksLabScript1
+	dw OaksLabScript2
+	dw OaksLabScript3
+	dw OaksLabScript4
+	dw OaksLabScript5
+	dw OaksLabScript6
+	dw OaksLabScript7
+	dw OaksLabScript8
+	dw OaksLabScript9
+	dw OaksLabScript10
+	dw OaksLabScript11
+	dw OaksLabScript12
+	dw OaksLabScript13
+	dw OaksLabScript14
+	dw OaksLabScript15
+	dw OaksLabScript16
+	dw OaksLabScript17
+	dw OaksLabScript18
+
+OaksLabScript0: ; 1cb4e (7:4b4e)
+	ld a, [$d74b]
+	bit 7, a
+	ret z
+	ld a, [$cf10]
+	and a
+	ret nz
+	ld a, $31
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld hl, $d72e
+	res 4, [hl]
+
+	ld a, $1
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript1: ; 1cb6e (7:4b6e)
+	ld a, $8
+	ld [$ff8c], a
+	ld de, OakEntryMovement
+	call MoveSprite
+
+	ld a, $2
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OakEntryMovement: ; 1cb7e (7:4b7e)
+	db $40,$40,$40,$FF
+
+OaksLabScript2: ; 1cb82 (7:4b82)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $31
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $2e
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+
+	ld a, $3
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript3: ; 1cba2 (7:4ba2)
+	call Delay3
+	ld hl, $ccd3
+	ld de, PlayerEntryMovementRLE
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $1
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $5
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+
+	ld a, $4
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+PlayerEntryMovementRLE: ; 1cbcf (7:4bcf)
+	db $40, $8, $ff
+
+OaksLabScript4: ; 1cbd2 (7:4bd2)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld hl, $d747
+	set 0, [hl]
+	ld hl, $d74b
+	set 0, [hl]
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	call UpdateSprites
+	ld hl, W_FLAGS_D733
+	res 1, [hl]
+	call Func_2307
+
+	ld a, $5
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript5: ; 1cbfd (7:4bfd)
+	ld a, $fc
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $11
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld a, $12
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld a, $13
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld a, $14
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d74b
+	set 1, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+
+	ld a, $6
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript6: ; 1cc36 (7:4c36)
+	ld a, [W_YCOORD]
+	cp $6
+	ret nz
+	ld a, $5
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $1
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	call UpdateSprites
+	ld a, $c
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $1
+	ld [$cd38], a
+	ld a, $40
+	ld [$ccd3], a
+	call Func_3486
+	ld a, $8
+	ld [$d528], a
+
+	ld a, $7
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript7: ; 1cc72 (7:4c72)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+
+	ld a, $6
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript8: ; 1cc80 (7:4c80)
+	ld a, [W_PLAYERSTARTER]
+	cp CHARMANDER
+	jr z, .Charmander ; 0x1cc85 $6
+	cp SQUIRTLE
+	jr z, .Squirtle ; 0x1cc89 $1d
+	jr .Bulbasaur ; 0x1cc8b $38
+.Charmander
+	ld de, .MiddleBallMovement1
+	ld a, [W_YCOORD]
+	cp $4 ; is the player standing below the table?
+	jr z, .asm_1ccf3 ; 0x1cc95 $5c
+	ld de, .MiddleBallMovement2
+	jr .asm_1ccf3 ; 0x1cc9a $57
+
+.MiddleBallMovement1
+	db 0,0,$C0,$C0,$C0,$40,$FF
+.MiddleBallMovement2
+	db 0,$C0,$C0,$C0,$FF
+
+.Squirtle
+	ld de, .RightBallMovement1
+	ld a, [W_YCOORD]
+	cp $4 ; is the player standing below the table?
+	jr z, .asm_1ccf3 ; 0x1ccb0 $41
+	ld de, .RightBallMovement2
+	jr .asm_1ccf3 ; 0x1ccb5 $3c
+
+.RightBallMovement1
+	db 0,0,$C0,$C0,$C0,$C0,$40,$FF
+.RightBallMovement2
+	db 0,$C0,$C0,$C0,$C0,$FF
+
+.Bulbasaur
+	ld de, .LeftBallMovement1
+	ld a, [W_XCOORD]
+	cp $9 ; is the player standing to the right of the table?
+	jr nz, .asm_1ccf3 ; 0x1cccd $24
+	push hl
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8b], a
+	call Func_34fc
+	push hl
+	ld [hl], $4c
+	inc hl
+	inc hl
+	ld [hl], $0
+	pop hl
+	inc h
+	ld [hl], $8
+	inc hl
+	ld [hl], $9
+	ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that
+	pop hl
+	jr .asm_1ccf3 ; 0x1cced $4
+
+.LeftBallMovement1
+	db $00,$C0 ; not yet terminated!
+.LeftBallMovement2
+	db $C0,$FF
+
+.asm_1ccf3
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+
+	ld a, $9
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript9: ; 1cd00 (7:4d00)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $fc
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $d
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, [$cd3e]
+	cp $2
+	jr nz, .asm_1cd28 ; 0x1cd22 $4
+	ld a, $2b
+	jr .asm_1cd32 ; 0x1cd26 $a
+.asm_1cd28
+	cp $3
+	jr nz, .asm_1cd30 ; 0x1cd2a $4
+	ld a, $2c
+	jr .asm_1cd32 ; 0x1cd2e $2
+.asm_1cd30
+	ld a, $2d
+.asm_1cd32
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	call Delay3
+	ld a, [$cd3d]
+	ld [W_RIVALSTARTER], a
+	ld [$cf91], a
+	ld [$d11e], a
+	call GetMonName
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $e
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d74b
+	set 2, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+
+	ld a, $a
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript10: ; 1cd6d (7:4d6d)
+	ld a, [W_YCOORD]
+	cp $6
+	ret nz
+	ld a, $1
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $8
+	ld [$d528], a
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic ; play music
+	ld a, $f
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $1
+	ld [$ff9b], a
+	ld a, $1
+	swap a
+	ld [$ff95], a
+	ld a, $22
+	call Predef
+	ld a, [$ff95]
+	dec a
+	ld [$ff95], a
+	ld a, $20
+	call Predef
+	ld de, $cc97
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+
+	ld a, $b
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript11: ; 1cdb9 (7:4db9)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+
+	; define which team rival uses, and fight it
+	ld a, SONY1 + $C8
+	ld [W_CUROPPONENT], a
+	ld a, [W_RIVALSTARTER]
+	cp SQUIRTLE
+	jr nz, .NotSquirtle ; 0x1cdc9 $4
+	ld a, $1
+	jr .done ; 0x1cdcd $a
+.NotSquirtle
+	cp BULBASAUR
+	jr nz, .Charmander ; 0x1cdd1 $4
+	ld a, $2
+	jr .done ; 0x1cdd5 $2
+.Charmander
+	ld a, $3
+.done
+	ld [W_TRAINERNO], a
+	ld a, $1
+	ld [$cf13], a
+	call Func_32ef
+	ld hl, OaksLabText_1d3be
+	ld de, OaksLabText_1d3c3
+	call PreBattleSaveRegisters
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $8
+	ld [$d528], a
+	ld a, $c
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript12: ; 1ce03 (7:4e03)
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $8
+	ld [$d528], a
+	call UpdateSprites
+	ld a, $1
+	ld [$cf13], a
+	call Func_32f9
+	ld a, $1
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $7
+	call Predef
+	ld hl, $d74b
+	set 3, [hl]
+
+	ld a, $d
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript13: ; 1ce32 (7:4e32)
+	ld c, $14
+	call DelayFrames
+	ld a, $10
+	ld [$ff8c], a
+	call DisplayTextID
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $1
+	ld [$ff8c], a
+	ld de, .RivalExitMovement
+	call MoveSprite
+	ld a, [W_XCOORD]
+	cp $4
+	; move left or right depending on where the player is standing
+	jr nz, .asm_1ce5b ; 0x1ce55 $4
+	ld a, $c0
+	jr .asm_1ce5d ; 0x1ce59 $2
+.asm_1ce5b
+	ld a, $80
+.asm_1ce5d
+	ld [$cc5b], a
+
+	ld a, $e
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+.RivalExitMovement
+	db $E0,$00,$00,$00,$00,$00,$FF
+
+OaksLabScript14: ; 1ce6d (7:4e6d)
+	ld a, [$d730]
+	bit 0, a
+	jr nz, .asm_1ce8c ; 0x1ce72 $18
+	ld a, $2a
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	call Func_2307 ; reset to map music
+	ld a, $12
+	ld [W_OAKSLABCURSCRIPT], a
+	jr .done ; 0x1ce8a $23
+.asm_1ce8c
+	ld a, [$cf0f]
+	cp $5
+	jr nz, .asm_1cea8 ; 0x1ce91 $15
+	ld a, [W_XCOORD]
+	cp $4
+	jr nz, .asm_1cea1 ; 0x1ce98 $7
+	ld a, $c
+	ld [$c109], a
+	jr .done ; 0x1ce9f $e
+.asm_1cea1
+	ld a, $8
+	ld [$c109], a
+	jr .done ; 0x1cea6 $7
+.asm_1cea8
+	cp $4
+	ret nz
+	xor a
+	ld [$c109], a
+.done
+	ret
+
+OaksLabScript15: ; 1ceb0 (7:4eb0)
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	call EnableAutoTextBoxDrawing
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $15
+	ld [$ff8c], a
+	call DisplayTextID
+	call OaksLabScript_1d02b
+	ld a, $2a
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, [$cd37]
+	ld [$d157], a
+	ld b, $0
+	ld c, a
+	ld hl, $cc97
+	ld a, $40
+	call FillMemory
+	ld [hl], $ff
+	ld a, $1
+	ld [$ff8c], a
+	ld de, $cc97
+	call MoveSprite
+
+	ld a, $10
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript_1cefd ; 1cefd (7:4efd)
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	ld a, $8
+	ld [$ff8c], a
+	xor a
+	ld [$ff8d], a
+	jp Func_34a6 ; face object
+
+OaksLabScript16: ; 1cf12 (7:4f12)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	call EnableAutoTextBoxDrawing
+	call Func_2307
+	ld a, $fc
+	ld [wJoypadForbiddenButtonsMask], a
+	call OaksLabScript_1cefd
+	ld a, $16
+	ld [$ff8c], a
+	call DisplayTextID
+	call DelayFrame
+	call OaksLabScript_1cefd
+	ld a, $17
+	ld [$ff8c], a
+	call DisplayTextID
+	call DelayFrame
+	call OaksLabScript_1cefd
+	ld a, $18
+	ld [$ff8c], a
+	call DisplayTextID
+	call DelayFrame
+	ld a, $19
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld a, $2f
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $30
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	call OaksLabScript_1cefd
+	ld a, $1a
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $c
+	ld [$ff8d], a
+	call Func_34a6 ; face object
+	call Delay3
+	ld a, $1b
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d74b
+	set 5, [hl]
+	ld hl, $d74e
+	set 0, [hl]
+	ld a, $1
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $2
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, [$d157]
+	ld b, $0
+	ld c, a
+	ld hl, $cc97
+	xor a
+	call FillMemory
+	ld [hl], $ff
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $1
+	ld [$ff8c], a
+	ld de, $cc97
+	call MoveSprite
+
+	ld a, $11
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript17: ; 1cfd4 (7:4fd4)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	call Func_2307
+	ld a, $2a
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d7eb
+	set 0, [hl]
+	res 1, [hl]
+	set 7, [hl]
+	ld a, $22
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, $5
+	ld [W_PALLETTOWNCURSCRIPT], a
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+
+	ld a, $12
+	ld [W_OAKSLABCURSCRIPT], a
+	ret
+
+OaksLabScript18: ; 1d009 (7:5009)
+	ret
+
+OaksLabScript_1d00a: ; 1d00a (7:500a)
+	ld hl, wBagItems
+	ld bc, $0000
+.asm_1d010
+	ld a, [hli]
+	cp $ff
+	ret z
+	cp OAKS_PARCEL
+	jr z, .GotParcel ; 0x1d016 $4
+	inc hl
+	inc c
+	jr .asm_1d010 ; 0x1d01a $f4
+.GotParcel
+	ld hl, $d31d
+	ld a, c
+	ld [wWhichPokemon], a
+	ld a, $1
+	ld [$cf96], a
+	jp RemoveItemFromInventory
+
+OaksLabScript_1d02b: ; 1d02b (7:502b)
+	ld a, $7c
+	ld [$ffeb], a
+	ld a, $8
+	ld [$ffee], a
+	ld a, [W_YCOORD]
+	cp $3
+	jr nz, .asm_1d045 ; 0x1d038 $b
+	ld a, $4
+	ld [$cd37], a
+	ld a, $30
+	ld b, $b
+	jr .asm_1d068 ; 0x1d043 $23
+.asm_1d045
+	cp $1
+	jr nz, .asm_1d054 ; 0x1d047 $b
+	ld a, $2
+	ld [$cd37], a
+	ld a, $30
+	ld b, $9
+	jr .asm_1d068 ; 0x1d052 $14
+.asm_1d054
+	ld a, $3
+	ld [$cd37], a
+	ld b, $a
+	ld a, [W_XCOORD]
+	cp $4
+	jr nz, .asm_1d066 ; 0x1d060 $4
+	ld a, $40
+	jr .asm_1d068 ; 0x1d064 $2
+.asm_1d066
+	ld a, $20
+.asm_1d068
+	ld [$ffec], a
+	ld a, b
+	ld [$ffed], a
+	ld a, $1
+	ld [$cf13], a
+	call Func_32f9
+	ret
+
+OaksLabScript_1d076: ; 1d076 (7:5076)
+	ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28
+	ld a, l
+	ld [W_MAPTEXTPTR], a
+	ld a, h
+	ld [W_MAPTEXTPTR+1], a
+	ret
+
+OaksLabTextPointers: ; 1d082 (7:5082)
+	dw OaksLabText1
+	dw OaksLabText2
+	dw OaksLabText3
+	dw OaksLabText4
+	dw OaksLabText5
+	dw OaksLabText6
+	dw OaksLabText7
+	dw OaksLabText8
+	dw OaksLabText9
+	dw OaksLabText10
+	dw OaksLabText11
+	dw OaksLabText12
+	dw OaksLabText13
+	dw OaksLabText14
+	dw OaksLabText15
+	dw OaksLabText16
+	dw OaksLabText17
+	dw OaksLabText18
+	dw OaksLabText19
+	dw OaksLabText20
+	dw OaksLabText21
+	dw OaksLabText22
+	dw OaksLabText23
+	dw OaksLabText24
+	dw OaksLabText25
+	dw OaksLabText26
+	dw OaksLabText27
+	dw OaksLabText28
+	dw OaksLabText29
+	dw OaksLabText30
+	dw OaksLabText31
+	dw OaksLabText32
+	dw OaksLabText33
+	dw OaksLabText34
+	dw OaksLabText35
+	dw OaksLabText36
+	dw OaksLabText37
+	dw OaksLabText38
+
+OaksLabText28: ; 1d0ce (7:50ce)
+OaksLabText1: ; 1d0ce (7:50ce)
+	db $08 ; asm
+	ld a, [$d74b]
+	bit 0, a
+	jr nz, .asm_1d0de ; 0x1d0d4
+	ld hl, OaksLabGaryText1
+	call PrintText
+	jr .asm_1d0f0 ; 0x1d0dc
+.asm_1d0de ; 0x1d0de
+	bit 2, a
+	jr nz, .asm_1d0ea ; 0x1d0e0
+	ld hl, OaksLabText40
+	call PrintText
+	jr .asm_1d0f0 ; 0x1d0e8
+.asm_1d0ea ; 0x1d0ea
+	ld hl, OaksLabText41
+	call PrintText
+.asm_1d0f0 ; 0x1d0f0
+	jp TextScriptEnd
+
+OaksLabGaryText1: ; 1d0f3 (7:50f3)
+	TX_FAR _OaksLabGaryText1
+	db "@"
+
+OaksLabText40: ; 1d0f8 (7:50f8)
+	TX_FAR _OaksLabText40
+	db "@"
+
+OaksLabText41: ; 1d0fd (7:50fd)
+	TX_FAR _OaksLabText41
+	db "@"
+
+OaksLabText29: ; 1d102 (7:5102)
+OaksLabText2: ; 1d102 (7:5102)
+	db $8
+	ld a, SQUIRTLE
+	ld [$cd3d], a
+	ld a, $3
+	ld [$cd3e], a
+	ld a, CHARMANDER
+	ld b, $2
+	jr OaksLabScript_1d133 ; 0x1d111 $20
+
+OaksLabText30: ; 1d113 (7:5113)
+OaksLabText3: ; 1d113 (7:5113)
+	db $8
+	ld a, BULBASAUR
+	ld [$cd3d], a
+	ld a, $4
+	ld [$cd3e], a
+	ld a, SQUIRTLE
+	ld b, $3
+	jr OaksLabScript_1d133 ; 0x1d122 $f
+
+OaksLabText31: ; 1d124 (7:5124)
+OaksLabText4: ; 1d124 (7:5124)
+	db $8
+	ld a, CHARMANDER
+	ld [$cd3d], a
+	ld a, $2
+	ld [$cd3e], a
+	ld a, BULBASAUR
+	ld b, $4
+
+OaksLabScript_1d133: ; 1d133 (7:5133)
+	ld [$cf91], a
+	ld [$d11e], a
+	ld a, b
+	ld [$cf13], a
+	ld a, [$d74b]
+	bit 2, a
+	jp nz, OaksLabScript_1d22d
+	bit 1, a
+	jr nz, OaksLabScript_1d157 ; 0x1d147 $e
+	ld hl, OaksLabText39
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabText39: ; 1d152 (7:5152)
+	TX_FAR _OaksLabText39
+	db "@"
+
+OaksLabScript_1d157: ; 1d157 (7:5157)
+	ld a, $5
+	ld [$ff8c], a
+	ld a, $9
+	ld [$ff8b], a
+	call Func_34fc
+	ld [hl], $0
+	; manually fixed some disassembler issues around here
+	ld a, $1
+	ld [$FF8c], a
+	ld a, $9
+	ld [$ff8b], a
+	call Func_34fc
+	ld [hl], $c
+	ld hl, $d730
+	set 6, [hl]
+	ld a, $46
+	call Predef
+	ld hl, $d730
+	res 6, [hl]
+	call ReloadMapData
+	ld c, $a
+	call DelayFrames
+	ld a, [$cf13]
+	cp $2
+	jr z, OaksLabLookAtCharmander
+	cp $3
+	jr z, OaksLabLookAtSquirtle
+	jr OaksLabLookAtBulbasaur
+
+OaksLabLookAtCharmander ; 0x1d195
+	ld hl, OaksLabCharmanderText
+	jr OaksLabMonChoiceMenu
+OaksLabCharmanderText: ; 1d19a (7:519a)
+	TX_FAR _OaksLabCharmanderText
+	db "@"
+
+OaksLabLookAtSquirtle: ; 1d19f (7:519f)
+	ld hl, OaksLabSquirtleText
+	jr OaksLabMonChoiceMenu
+OaksLabSquirtleText: ; 1d1a4 (7:51a4)
+	TX_FAR _OaksLabSquirtleText
+	db "@"
+
+OaksLabLookAtBulbasaur: ; 1d1a9 (7:51a9)
+	ld hl, OaksLabBulbasaurText
+	jr OaksLabMonChoiceMenu
+OaksLabBulbasaurText: ; 1d1ae (7:51ae)
+	TX_FAR _OaksLabBulbasaurText
+	db "@"
+
+OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3)
+	call PrintText
+	ld a, $1
+	ld [$cc3c], a
+	call YesNoChoice ; yes/no menu
+	ld a, [$cc26]
+	and a
+	jr nz, OaksLabMonChoiceEnd
+	ld a, [$cf91]
+	ld [$d717], a
+	ld [$d11e], a
+	call GetMonName
+	ld a, [$cf13]
+	cp $2
+	jr nz, asm_1d1db ; 0x1d1d5 $4
+	ld a, $2b
+	jr asm_1d1e5 ; 0x1d1d9 $a
+asm_1d1db: ; 1d1db (7:51db)
+	cp $3
+	jr nz, asm_1d1e3 ; 0x1d1dd $4
+	ld a, $2c
+	jr asm_1d1e5 ; 0x1d1e1 $2
+asm_1d1e3: ; 1d1e3 (7:51e3)
+	ld a, $2d
+asm_1d1e5: ; 1d1e5 (7:51e5)
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, OaksLabMonEnergeticText
+	call PrintText
+	ld hl, OaksLabReceivedMonText
+	call PrintText
+	xor a
+	ld [$cc49], a
+	ld a, $5
+	ld [$d127], a
+	ld a, [$cf91]
+	ld [$d11e], a
+	call AddPokemonToParty
+	ld hl, $d72e
+	set 3, [hl]
+	ld a, $fc
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $8
+	ld [W_OAKSLABCURSCRIPT], a
+OaksLabMonChoiceEnd: ; 1d21f (7:521f)
+	jp TextScriptEnd
+
+OaksLabMonEnergeticText: ; 1d222 (7:5222)
+	TX_FAR _OaksLabMonEnergeticText
+	db "@"
+
+OaksLabReceivedMonText: ; 1d227 (7:5227)
+	TX_FAR _OaksLabReceivedMonText
+	db $11, "@"
+
+OaksLabScript_1d22d: ; 1d22d (7:522d)
+	ld a, $5
+	ld [$ff8c], a
+	ld a, $9
+	ld [$ff8b], a
+	call Func_34fc
+	ld [hl], $0
+	ld hl, OaksLabLastMonText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabLastMonText: ; 1d243 (7:5243)
+	TX_FAR _OaksLabLastMonText
+	db "@"
+
+OaksLabText32: ; 1d248 (7:5248)
+OaksLabText5: ; 1d248 (7:5248)
+	db $08 ; asm
+	ld a, [$d747]
+	bit 6, a
+	jr nz, .asm_50e81 ; 0x1d24e
+	ld hl, $d2f7
+	ld b, $13
+	call CountSetBits
+	ld a, [$d11e]
+	cp $2
+	jr c, .asm_b28b0 ; 0x1d25d
+	ld a, [$d74b]
+	bit 5, a
+	jr z, .asm_b28b0 ; 0x1d264
+.asm_50e81 ; 0x1d266
+	ld hl, OaksLabText_1d31d
+	call PrintText
+	ld a, $1
+	ld [$cc3c], a
+	ld a, $56
+	call Predef
+	jp .asm_0f042
+.asm_b28b0 ; 0x1d279
+	ld b,POKE_BALL
+	call IsItemInBag
+	jr nz, .asm_17c30 ; 0x1d27e
+	ld a, [$d7eb]
+	bit 5, a
+	jr nz, .asm_f1adc ; 0x1d285
+	ld a, [$d74b]
+	bit 5, a
+	jr nz, .asm_333a2 ; 0x1d28c
+	bit 3, a
+	jr nz, .asm_76269 ; 0x1d290
+	ld a, [$d72e]
+	bit 3, a
+	jr nz, .asm_4a5e0 ; 0x1d297
+	ld hl, OaksLabText_1d2f0
+	call PrintText
+	jr .asm_0f042 ; 0x1d29f
+.asm_4a5e0 ; 0x1d2a1
+	ld hl, OaksLabText_1d2f5
+	call PrintText
+	jr .asm_0f042 ; 0x1d2a7
+.asm_76269 ; 0x1d2a9
+	ld b, OAKS_PARCEL
+	call IsItemInBag
+	jr nz, .asm_a8fcf ; 0x1d2ae
+	ld hl, OaksLabText_1d2fa
+	call PrintText
+	jr .asm_0f042 ; 0x1d2b6
+.asm_a8fcf ; 0x1d2b8
+	ld hl, OaksLabDeliverParcelText
+	call PrintText
+	call OaksLabScript_1d00a
+	ld a, $f
+	ld [W_OAKSLABCURSCRIPT], a
+	jr .asm_0f042 ; 0x1d2c6
+.asm_333a2 ; 0x1d2c8
+	ld hl, OaksLabAroundWorldText
+	call PrintText
+	jr .asm_0f042 ; 0x1d2ce
+.asm_f1adc ; 0x1d2d0
+	ld hl, $d74b
+	bit 4, [hl]
+	set 4, [hl]
+	jr nz, .asm_17c30 ; 0x1d2d7
+	ld bc, (POKE_BALL << 8) | 5
+	call GiveItem
+	ld hl, OaksLabGivePokeballsText
+	call PrintText
+	jr .asm_0f042 ; 0x1d2e5
+.asm_17c30 ; 0x1d2e7
+	ld hl, OaksLabPleaseVisitText
+	call PrintText
+.asm_0f042 ; 0x1d2ed
+	jp TextScriptEnd
+
+OaksLabText_1d2f0: ; 1d2f0 (7:52f0)
+	TX_FAR _OaksLabText_1d2f0
+	db "@"
+
+OaksLabText_1d2f5: ; 1d2f5 (7:52f5)
+	TX_FAR _OaksLabText_1d2f5
+	db "@"
+
+OaksLabText_1d2fa: ; 1d2fa (7:52fa)
+	TX_FAR _OaksLabText_1d2fa
+	db "@"
+
+OaksLabDeliverParcelText: ; 1d2ff (7:52ff)
+	TX_FAR _OaksLabDeliverParcelText1
+	db $11
+	TX_FAR _OaksLabDeliverParcelText2
+	db "@"
+
+OaksLabAroundWorldText: ; 1d309 (7:5309)
+	TX_FAR _OaksLabAroundWorldText
+	db "@"
+
+OaksLabGivePokeballsText: ; 1d30e (7:530e)
+	TX_FAR _OaksLabGivePokeballsText1
+	db $11
+	TX_FAR _OaksLabGivePokeballsText2
+	db "@"
+
+OaksLabPleaseVisitText: ; 1d318 (7:5318)
+	TX_FAR _OaksLabPleaseVisitText
+	db "@"
+
+OaksLabText_1d31d: ; 1d31d (7:531d)
+	TX_FAR _OaksLabText_1d31d
+	db "@"
+
+OaksLabText34: ; 1d322 (7:5322)
+OaksLabText33: ; 1d322 (7:5322)
+OaksLabText7: ; 1d322 (7:5322)
+OaksLabText6: ; 1d322 (7:5322)
+	db $08 ; asm
+	ld hl, OaksLabText_1d32c
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabText_1d32c: ; 1d32c (7:532c)
+	TX_FAR _OaksLabText_1d32c
+	db "@"
+
+OaksLabText35: ; 1d331 (7:5331)
+OaksLabText8: ; 1d331 (7:5331)
+	TX_FAR _OaksLabText8
+	db "@"
+
+OaksLabText36: ; 1d336 (7:5336)
+OaksLabText9: ; 1d336 (7:5336)
+	db $08 ; asm
+	ld hl, OaksLabText_1d340
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabText_1d340: ; 1d340 (7:5340)
+	TX_FAR _OaksLabText_1d340
+	db "@"
+
+OaksLabText17: ; 1d345 (7:5345)
+	db $8
+	ld hl, OaksLabRivalWaitingText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalWaitingText: ; 1d34f (7:534f)
+	TX_FAR _OaksLabRivalWaitingText
+	db "@"
+
+OaksLabText18: ; 1d354 (7:5354)
+	db $8
+	ld hl, OaksLabChooseMonText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabChooseMonText: ; 1d35e (7:535e)
+	TX_FAR _OaksLabChooseMonText
+	db "@"
+
+OaksLabText19: ; 1d363 (7:5363)
+	db $8
+	ld hl, OaksLabRivalInterjectionText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalInterjectionText: ; 1d36d (7:536d)
+	TX_FAR _OaksLabRivalInterjectionText
+	db "@"
+
+OaksLabText20: ; 1d372 (7:5372)
+	db $8
+	ld hl, OaksLabBePatientText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabBePatientText: ; 1d37c (7:537c)
+	TX_FAR _OaksLabBePatientText
+	db "@"
+
+OaksLabText12: ; 1d381 (7:5381)
+	db $8
+	ld hl, OaksLabLeavingText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabLeavingText: ; 1d38b (7:538b)
+	TX_FAR _OaksLabLeavingText
+	db "@"
+
+OaksLabText13: ; 1d390 (7:5390)
+	db $8
+	ld hl, OaksLabRivalPickingMonText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalPickingMonText: ; 1d39a (7:539a)
+	TX_FAR _OaksLabRivalPickingMonText
+	db "@"
+
+OaksLabText14: ; 1d39f (7:539f)
+	db $8
+	ld hl, OaksLabRivalReceivedMonText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9)
+	TX_FAR _OaksLabRivalReceivedMonText
+	db $11, "@"
+
+OaksLabText15: ; 1d3af (7:53af)
+	db $8
+	ld hl, OaksLabRivalChallengeText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalChallengeText: ; 1d3b9 (7:53b9)
+	TX_FAR _OaksLabRivalChallengeText
+	db "@"
+
+OaksLabText_1d3be: ; 1d3be (7:53be)
+	TX_FAR _OaksLabText_1d3be
+	db "@"
+
+OaksLabText_1d3c3: ; 1d3c3 (7:53c3)
+	TX_FAR _OaksLabText_1d3c3
+	db "@"
+
+OaksLabText16: ; 1d3c8 (7:53c8)
+	db $8
+	ld hl, OaksLabRivalToughenUpText
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabRivalToughenUpText: ; 1d3d2 (7:53d2)
+	TX_FAR _OaksLabRivalToughenUpText
+	db "@"
+
+OaksLabText21: ; 1d3d7 (7:53d7)
+	TX_FAR _OaksLabText21
+	db "@"
+
+OaksLabText22: ; 1d3dc (7:53dc)
+	TX_FAR _OaksLabText22
+	db "@"
+
+OaksLabText23: ; 1d3e1 (7:53e1)
+	TX_FAR _OaksLabText23
+	db "@"
+
+OaksLabText24: ; 1d3e6 (7:53e6)
+	TX_FAR _OaksLabText24
+	db "@"
+
+OaksLabText25: ; 1d3eb (7:53eb)
+	TX_FAR _OaksLabText25
+	db $11, "@"
+
+OaksLabText26: ; 1d3f1 (7:53f1)
+	TX_FAR _OaksLabText26
+	db "@"
+
+OaksLabText27: ; 1d3f6 (7:53f6)
+	TX_FAR _OaksLabText27
+	db "@"
+
+OaksLabText38: ; 1d3fb (7:53fb)
+OaksLabText37: ; 1d3fb (7:53fb)
+OaksLabText11: ; 1d3fb (7:53fb)
+OaksLabText10: ; 1d3fb (7:53fb)
+	db $08 ; asm
+	ld hl, OaksLabText_1d405
+	call PrintText
+	jp TextScriptEnd
+
+OaksLabText_1d405: ; 1d405 (7:5405)
+	TX_FAR _OaksLabText_1d405
+	db "@"
--- /dev/null
+++ b/scripts/pallettown.asm
@@ -1,0 +1,228 @@
+PalletTownScript: ; 18e5b (6:4e5b)
+	ld a,[$D74B]
+	bit 4,a
+	jr z,.next
+	ld hl,$D747
+	set 6,[hl]
+.next
+	call EnableAutoTextBoxDrawing
+	ld hl,PalletTownScriptPointers
+	ld a,[W_PALLETTOWNCURSCRIPT]
+	jp CallFunctionInTable
+
+PalletTownScriptPointers: ; 18e73 (6:4e73)
+	dw PalletTownScript0
+	dw PalletTownScript1
+	dw PalletTownScript2
+	dw PalletTownScript3
+	dw PalletTownScript4
+	dw PalletTownScript5
+	dw PalletTownScript6
+
+PalletTownScript0: ; 18e81 (6:4e81)
+	ld a,[$D747]
+	bit 0,a
+	ret nz
+	ld a,[W_YCOORD]
+	cp 1 ; is player near north exit?
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS],a
+	ld a,4
+	ld [$D528],a
+	ld a,$FF
+	call PlaySound ; stop music
+	ld a, BANK(Music_MeetProfOak)
+	ld c,a ; song bank
+	ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music
+	call PlayMusic ; plays music
+	ld a,$FC
+	ld [wJoypadForbiddenButtonsMask],a
+	ld hl,$D74B
+	set 7,[hl]
+
+	; trigger the next script
+	ld a,1
+	ld [W_PALLETTOWNCURSCRIPT],a
+	ret
+
+PalletTownScript1: ; 18eb2 (6:4eb2)
+	xor a
+	ld [$CF0D],a
+	ld a,1
+	ld [$FF8C],a
+	call DisplayTextID
+	ld a,$FF
+	ld [wJoypadForbiddenButtonsMask],a
+	ld a,0
+	ld [$CC4D],a
+	ld a,$15
+	call Predef
+
+	; trigger the next script
+	ld a,2
+	ld [W_PALLETTOWNCURSCRIPT],a
+	ret
+
+PalletTownScript2: ; 18ed2 (6:4ed2)
+	ld a,1
+	ld [$FF8C],a
+	ld a,4
+	ld [$FF8D],a
+	call Func_34a6
+	call Delay3
+	ld a,1
+	ld [W_YCOORD],a
+	ld a,1
+	ld [$FF9B],a
+	ld a,1
+	swap a
+	ld [$FF95],a
+	ld a,$22
+	call Predef
+	ld hl,$FF95
+	dec [hl]
+	ld a,$20
+	call Predef ; load Oak’s movement into $CC97
+	ld de,$CC97
+	ld a,1 ; oak
+	ld [$FF8C],a
+	call MoveSprite
+	ld a,$FF
+	ld [wJoypadForbiddenButtonsMask],a
+
+	; trigger the next script
+	ld a,3
+	ld [W_PALLETTOWNCURSCRIPT],a
+	ret
+
+PalletTownScript3: ; 18f12 (6:4f12)
+	ld a,[$D730]
+	bit 0,a
+	ret nz
+	xor a
+	ld [$C109],a
+	ld a,1
+	ld [$CF0D],a
+	ld a,$FC
+	ld [wJoypadForbiddenButtonsMask],a
+	ld a,1
+	ld [$FF8C],a
+	call DisplayTextID
+	ld a,$FF
+	ld [wJoypadForbiddenButtonsMask],a
+	ld a,1
+	ld [$CF13],a
+	xor a
+	ld [$CF10],a
+	ld a,1
+	ld [$CC57],a
+	ld a,[H_LOADEDROMBANK]
+	ld [$CC58],a
+
+	; trigger the next script
+	ld a,4
+	ld [W_PALLETTOWNCURSCRIPT],a
+	ret
+
+PalletTownScript4: ; 18f4b (6:4f4b)
+	ld a,[$CC57]
+	and a
+	ret nz
+
+	; trigger the next script
+	ld a,5
+	ld [W_PALLETTOWNCURSCRIPT],a
+	ret
+
+PalletTownScript5: ; 18f56 (6:4f56)
+	ld a,[$D74A]
+	bit 2,a
+	jr nz,.next
+	and 3
+	cp 3
+	jr nz,.next
+	ld hl,$D74A
+	set 2,[hl]
+	ld a,$27
+	ld [$CC4D],a
+	ld a,$11
+	call Predef
+	ld a,$28
+	ld [$CC4D],a
+	ld a,$15
+	jp Predef
+.next
+	ld a,[$D74B]
+	bit 4,a
+	ret z
+	ld hl,$D74B
+	set 6,[hl]
+PalletTownScript6: ; 18f87 (6:4f87)
+	ret
+
+PalletTownTextPointers: ; 18f88 (6:4f88)
+	dw PalletTownText1
+	dw PalletTownText2
+	dw PalletTownText3
+	dw PalletTownText4
+	dw PalletTownText5
+	dw PalletTownText6
+	dw PalletTownText7
+
+PalletTownText1: ; 18f96 (6:4f96)
+	db 8
+	ld a,[$CF0D]
+	and a
+	jr nz,.next
+	ld a,1
+	ld [$CC3C],a
+	ld hl,OakAppearsText
+	jr .done
+.next
+	ld hl,OakWalksUpText
+.done
+	call PrintText
+	jp TextScriptEnd
+
+OakAppearsText: ; 18fb0 (6:4fb0)
+	TX_FAR _OakAppearsText
+	db 8
+	ld c,10
+	call DelayFrames
+	xor a
+	ld [$CD4F],a
+	ld [$CD50],a
+	ld a,$4C
+	call Predef ; display ! over head
+	ld a,4
+	ld [$D528],a
+	jp TextScriptEnd
+
+OakWalksUpText: ; 18fce (6:4fce)
+	TX_FAR _OakWalksUpText
+	db "@"
+
+PalletTownText2: ; 0x18fd3 girl
+	TX_FAR _PalletTownText2
+	db "@"
+
+PalletTownText3: ; 0x18fd8 fat man
+	TX_FAR _PalletTownText3
+	db "@"
+
+PalletTownText4: ; 0x18fdd sign by lab
+	TX_FAR _PalletTownText4
+	db "@"
+
+PalletTownText5: ; 0x18fe2 sign by fence
+	TX_FAR _PalletTownText5
+	db "@"
+
+PalletTownText6: ; 0x18fe7 sign by Red’s house
+	TX_FAR _PalletTownText6
+	db "@"
+
+PalletTownText7: ; 0x18fec sign by Blue’s house
+	TX_FAR _PalletTownText7
+	db "@"
--- /dev/null
+++ b/scripts/pewtercity.asm
@@ -1,0 +1,321 @@
+PewterCityScript: ; 19237 (6:5237)
+	call EnableAutoTextBoxDrawing
+	ld hl, PewterCityScriptPointers
+	ld a, [W_PEWTERCITYCURSCRIPT]
+	jp CallFunctionInTable
+
+PewterCityScriptPointers: ; 19243 (6:5243)
+	dw PewterCityScript0
+	dw PewterCityScript1
+	dw PewterCityScript2
+	dw PewterCityScript3
+	dw PewterCityScript4
+	dw PewterCityScript5
+	dw PewterCityScript6
+
+PewterCityScript0: ; 19251 (6:5251)
+	xor a
+	ld [W_MUSEUM1FCURSCRIPT], a
+	ld hl, $d754
+	res 0, [hl]
+	call PewterCityScript_1925e
+	ret
+
+PewterCityScript_1925e: ; 1925e (6:525e)
+	ld a, [$d755]
+	bit 7, a
+	ret nz
+	ld hl, CoordsData_19277
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $5
+	ld [$ff8c], a
+	jp DisplayTextID
+
+CoordsData_19277: ; 19277 (6:5277)
+	db $11,$23
+	db $11,$24
+	db $12,$25
+	db $13,$25
+	db $ff
+
+PewterCityScript1: ; 19280 (6:5280)
+	ld a, [$cc57]
+	and a
+	ret nz
+	ld a, $3
+	ld [$ff8c], a
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $34
+	ld [$ff8d], a
+	call Func_34b9
+	call Func_2307
+	ld hl, wFlags_0xcd60
+	set 4, [hl]
+	ld a, $d
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $3c
+	ld [$ffeb], a
+	ld a, $30
+	ld [$ffec], a
+	ld a, $c
+	ld [$ffed], a
+	ld a, $11
+	ld [$ffee], a
+	ld a, $3
+	ld [$cf13], a
+	call Func_32f9
+	ld a, $3
+	ld [$ff8c], a
+	ld de, MovementData_PewterMuseumGuyExit ; $52ce
+	call MoveSprite
+	ld a, $2
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+MovementData_PewterMuseumGuyExit: ; 192ce (6:52ce)
+	db $00,$00,$00,$00,$FF
+
+PewterCityScript2: ; 192d3 (6:52d3)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $3
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $3
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+PewterCityScript3: ; 192e9 (6:52e9)
+	ld a, $3
+	ld [$cf13], a
+	call Func_32fe
+	ld a, $3
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+PewterCityScript4: ; 19305 (6:5305)
+	ld a, [$cc57]
+	and a
+	ret nz
+	ld a, $5
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $18
+	ld [$ff8d], a
+	call Func_34b9
+	call Func_2307
+	ld hl, wFlags_0xcd60
+	set 4, [hl]
+	ld a, $e
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $3c
+	ld [$ffeb], a
+	ld a, $40
+	ld [$ffec], a
+	ld a, $16
+	ld [$ffed], a
+	ld a, $10
+	ld [$ffee], a
+	ld a, $5
+	ld [$cf13], a
+	call Func_32f9
+	ld a, $5
+	ld [$ff8c], a
+	ld de, MovementData_PewterGymGuyExit
+	call MoveSprite
+	ld a, $5
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+MovementData_PewterGymGuyExit: ; 19353 (6:5353)
+	db $C0,$C0,$C0,$C0,$C0,$FF
+
+PewterCityScript5: ; 19359 (6:5359)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $4
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $6
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+PewterCityScript6: ; 1936f (6:536f)
+	ld a, $5
+	ld [$cf13], a
+	call Func_32fe
+	ld a, $4
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_PEWTERCITYCURSCRIPT], a
+	ret
+
+PewterCityTextPointers: ; 1938b (6:538b)
+	dw PewterCityText1
+	dw PewterCityText2
+	dw PewterCityText3
+	dw PewterCityText4
+	dw PewterCityText5
+	dw PewterCityText6
+	dw PewterCityText7
+	dw MartSignText
+	dw PokeCenterSignText
+	dw PewterCityText10
+	dw PewterCityText11
+	dw PewterCityText12
+	dw PewterCityText13
+	dw PewterCityText14
+
+PewterCityText1: ; 193a7 (6:53a7)
+	TX_FAR _PewterCityText1
+	db "@"
+
+PewterCityText2: ; 193ac (6:53ac)
+	TX_FAR _PewterCityText2
+	db "@"
+
+PewterCityText3: ; 193b1 (6:53b1)
+	db $08 ; asm
+	ld hl, PewterCityText_193f1
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_f46a9 ; 0x193bf
+	ld hl, PewterCityText_193f6
+	call PrintText
+	jr .asm_ac429 ; 0x193c7
+.asm_f46a9 ; 0x193c9
+	ld hl, PewterCityText_193fb
+	call PrintText
+	xor a
+	ldh [$b3], a
+	ldh [$b4], a
+	ld [$cf10], a
+	ld a, $2
+	ld [$cc57], a
+	ldh a, [$b8]
+	ld [$cc58], a
+	ld a, $3
+	ld [$cf13], a
+	call Func_32f4
+	ld a, $1
+	ld [W_PEWTERCITYCURSCRIPT], a
+.asm_ac429 ; 0x193ee
+	jp TextScriptEnd
+
+PewterCityText_193f1: ; 193f1 (6:53f1)
+	TX_FAR _PewterCityText_193f1
+	db "@"
+
+PewterCityText_193f6: ; 193f6 (6:53f6)
+	TX_FAR _PewterCityText_193f6
+	db "@"
+
+PewterCityText_193fb: ; 193fb (6:53fb)
+	TX_FAR _PewterCityText_193fb
+	db "@"
+
+PewterCityText13: ; 19400 (6:5400)
+	TX_FAR _PewterCityText13
+	db "@"
+
+PewterCityText4: ; 19405 (6:5405)
+	db $8
+	ld hl, PewterCityText_19427
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	cp $0
+	jr nz, .asm_e4603
+	ld hl, PewterCityText_1942c
+	call PrintText
+	jr .asm_e4604 ; 0x1941c $6
+.asm_e4603
+	ld hl, PewterCityText_19431
+	call PrintText
+.asm_e4604 ; 0x19424
+	jp TextScriptEnd
+
+PewterCityText_19427: ; 19427 (6:5427)
+	TX_FAR _PewterCityText_19427
+	db "@"
+
+PewterCityText_1942c: ; 1942c (6:542c)
+	TX_FAR _PewterCityText_1942c
+	db "@"
+
+PewterCityText_19431: ; 19431 (6:5431)
+	TX_FAR _PewterCityText_19431
+	db "@"
+
+PewterCityText5: ; 19436 (6:5436)
+	db $08 ; asm
+	ld hl, PewterCityText_1945d
+	call PrintText
+	xor a
+	ldh [$b4], a
+	ld [$cf10], a
+	ld a, $3
+	ld [$cc57], a
+	ldh a, [$b8]
+	ld [$cc58], a
+	ld a, $5
+	ld [$cf13], a
+	call Func_32f4
+	ld a, $4
+	ld [W_PEWTERCITYCURSCRIPT], a
+	jp TextScriptEnd
+
+PewterCityText_1945d: ; 1945d (6:545d)
+	TX_FAR _PewterCityText_1945d
+	db "@"
+
+PewterCityText14: ; 19462 (6:5462)
+
+PewterCityText_19462: ; 19462 (6:5462)
+	TX_FAR _PewterCityText_19462
+	db "@"
+
+PewterCityText6: ; 19467 (6:5467)
+	TX_FAR _PewterCityText6
+	db "@"
+
+PewterCityText7: ; 1946c (6:546c)
+	TX_FAR _PewterCityText7
+	db "@"
+
+PewterCityText10: ; 19471 (6:5471)
+	TX_FAR _PewterCityText10
+	db "@"
+
+PewterCityText11: ; 19476 (6:5476)
+	TX_FAR _PewterCityText11
+	db "@"
+
+PewterCityText12: ; 1947b (6:547b)
+	TX_FAR _PewterCityText12
+	db "@"
--- /dev/null
+++ b/scripts/pewtergym.asm
@@ -1,0 +1,237 @@
+PewterGymScript: ; 5c387 (17:4387)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, PewterGymScript_5c3a4
+	call EnableAutoTextBoxDrawing
+	ld hl, PewterGymTrainerHeaders
+	ld de, PewterGymScriptPointers
+	ld a, [W_PEWTERGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_PEWTERGYMCURSCRIPT], a
+	ret
+
+PewterGymScript_5c3a4: ; 5c3a4 (17:43a4)
+	ld hl, Gym1CityName ; $43ad
+	ld de, Gym1LeaderName ; $43b9
+	jp LoadGymLeaderAndCityName
+
+Gym1CityName: ; 5c3ad (17:43ad)
+	db "PEWTER CITY@"
+
+Gym1LeaderName: ; 5c3b9 (17:43b9)
+	db "BROCK@"
+
+PewterGymScript_5c3bf: ; 5c3bf (17:43bf)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_PEWTERGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PewterGymScriptPointers: ; 5c3ca (17:43ca)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw PewterGymScript3
+
+PewterGymScript3: ; 5c3d2 (17:43d2)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, PewterGymScript_5c3bf
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+PewterGymScript_5c3df: ; 5c3df (17:43df)
+	ld a, $4
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d755
+	set 7, [hl]
+	ld bc, (TM_34 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $5
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d755
+	set 6, [hl]
+	jr .asm_5c408
+.BagFull
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_5c408
+	ld hl, W_OBTAINEDBADGES
+	set 0, [hl]
+	ld hl, $d72a
+	set 0, [hl]
+
+	ld a, $4
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $22
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+
+	ld hl, $d7eb
+	res 0, [hl]
+	res 7, [hl]
+
+	; deactivate gym trainers
+	ld hl, $d755
+	set 2, [hl]
+
+	jp PewterGymScript_5c3bf
+
+PewterGymTextPointers: ; 5c435 (17:4435)
+	dw PewterGymText1
+	dw PewterGymText2
+	dw PewterGymText3
+	dw PewterGymText4
+	dw PewterGymText5
+	dw PewterGymText6
+
+PewterGymTrainerHeaders: ; 5c441 (17:4441)
+PewterGymTrainerHeader0: ; 5c441 (17:4441)
+	db $2 ; flag's bit
+	db ($5 << 4) ; trainer's view range
+	dw $d755 ; flag's byte
+	dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle
+	dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle
+	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
+	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
+
+	db $ff
+
+PewterGymText1: ; 5c44e (17:444e)
+	db $08 ; asm
+	ld a, [$d755]
+	bit 7, a
+	jr z, .asm_4a735 ; 0x5c454
+	bit 6, a
+	jr nz, .asm_ff7d0 ; 0x5c458
+	call z, PewterGymScript_5c3df
+	call DisableWaitingAfterTextDisplay
+	jr .asm_e0ffb ; 0x5c460
+.asm_ff7d0 ; 0x5c462
+	ld hl, PewterGymText_5c4a3
+	call PrintText
+	jr .asm_e0ffb ; 0x5c468
+.asm_4a735 ; 0x5c46a
+	ld hl, PewterGymText_5c49e
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, PewterGymText_5c4bc
+	ld de, PewterGymText_5c4bc
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $1
+	ld [$d05c], a
+	xor a
+	ldh [$b4], a
+	ld a, $3
+	ld [W_PEWTERGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_e0ffb ; 0x5c49b
+	jp TextScriptEnd
+
+PewterGymText_5c49e: ; 5c49e (17:449e)
+	TX_FAR _PewterGymText_5c49e
+	db "@"
+
+PewterGymText_5c4a3: ; 5c4a3 (17:44a3)
+	TX_FAR _PewterGymText_5c4a3
+	db "@"
+
+PewterGymText4: ; 5c4a8 (17:44a8)
+	TX_FAR _TM34PreReceiveText
+	db "@"
+
+PewterGymText5: ; 5c4ad (17:44ad)
+	TX_FAR _ReceivedTM34Text
+	db $0B
+	TX_FAR _TM34ExplanationText
+	db "@"
+
+PewterGymText6: ; 5c4b7 (17:44b7)
+	TX_FAR _TM34NoRoomText
+	db "@"
+
+PewterGymText_5c4bc: ; 5c4bc (17:44bc)
+	TX_FAR _PewterGymText_5c4bc
+	db $0B
+	TX_FAR _PewterGymText_5c4c1
+	db "@"
+
+PewterGymText2: ; 5c4c6 (17:44c6)
+	db $08 ; asm
+	ld hl, PewterGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PewterGymBattleText1: ; 5c4d0 (17:44d0)
+	TX_FAR _PewterGymBattleText1
+	db "@"
+
+PewterGymEndBattleText1: ; 5c4d5 (17:44d5)
+	TX_FAR _PewterGymEndBattleText1
+	db "@"
+
+PewterGymAfterBattleText1: ; 5c4da (17:44da)
+	TX_FAR _PewterGymAfterBattleText1
+	db "@"
+
+PewterGymText3: ; 5c4df (17:44df)
+	db $08 ; asm
+	ld a, [$d72a]
+	bit 0, a
+	jr nz, .asm_71369 ; 0x5c4e5
+	ld hl, PewterGymText_5c515
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_6123a ; 0x5c4f4
+	ld hl, PewterGymText_5c51a
+	call PrintText
+	jr .asm_d1578 ; 0x5c4fc
+.asm_6123a ; 0x5c4fe
+	ld hl, PewterGymText_5c524
+	call PrintText
+.asm_d1578 ; 0x5c504
+	ld hl, PewterGymText_5c51f
+	call PrintText
+	jr .asm_07013 ; 0x5c50a
+.asm_71369 ; 0x5c50c
+	ld hl, PewterGymText_5c529
+	call PrintText
+.asm_07013 ; 0x5c512
+	jp TextScriptEnd
+
+PewterGymText_5c515: ; 5c515 (17:4515)
+	TX_FAR _PewterGymText_5c515
+	db "@"
+
+PewterGymText_5c51a: ; 5c51a (17:451a)
+	TX_FAR _PewterGymText_5c51a
+	db "@"
+
+PewterGymText_5c51f: ; 5c51f (17:451f)
+	TX_FAR _PewterGymText_5c51f
+	db "@"
+
+PewterGymText_5c524: ; 5c524 (17:4524)
+	TX_FAR _PewterGymText_5c524
+	db "@"
+
+PewterGymText_5c529: ; 5c529 (17:4529)
+	TX_FAR _PewterGymText_5c529
+	db "@"
--- /dev/null
+++ b/scripts/pewterhouse1.asm
@@ -1,0 +1,23 @@
+PewterHouse1Script: ; 1d5f3 (7:55f3)
+	jp EnableAutoTextBoxDrawing
+
+PewterHouse1TextPointers: ; 1d5f6 (7:55f6)
+	dw PewterHouse1Text1
+	dw PewterHouse1Text2
+	dw PewterHouse1Text3
+
+PewterHouse1Text1: ; 1d5fc (7:55fc)
+	TX_FAR _PewterHouse1Text1
+	db $08 ; asm
+	ld a, NIDORAN_M
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+PewterHouse1Text2: ; 1d60c (7:560c)
+	TX_FAR _PewterHouse1Text2
+	db "@"
+
+PewterHouse1Text3: ; 1d611 (7:5611)
+	TX_FAR _PewterHouse1Text3
+	db "@"
--- /dev/null
+++ b/scripts/pewterhouse2.asm
@@ -1,0 +1,14 @@
+PewterHouse2Script: ; 1d648 (7:5648)
+	jp EnableAutoTextBoxDrawing
+
+PewterHouse2TextPointers: ; 1d64b (7:564b)
+	dw PewterHouse2Text1
+	dw PewterHouse2Text2
+
+PewterHouse2Text1: ; 1d64f (7:564f)
+	TX_FAR _PewterHouse2Text1
+	db "@"
+
+PewterHouse2Text2: ; 1d654 (7:5654)
+	TX_FAR _PewterHouse2Text2
+	db "@"
--- /dev/null
+++ b/scripts/pewtermart.asm
@@ -1,0 +1,30 @@
+PewterMartScript: ; 74cad (1d:4cad)
+	call EnableAutoTextBoxDrawing
+	ld a, $1
+	ld [$cf0c], a
+	ret
+
+PewterMartTextPointers: ; 74cb6 (1d:4cb6)
+	dw PewterMartText1
+	dw PewterMartText2
+	dw PewterMartText3
+
+PewterMartText2: ; 74cbc (1d:4cbc)
+	db $08 ; asm
+	ld hl, PewterMartText_74cc6
+	call PrintText
+	jp TextScriptEnd
+
+PewterMartText_74cc6: ; 74cc6 (1d:4cc6)
+	TX_FAR _PewterMartText_74cc6
+	db "@"
+
+PewterMartText3: ; 74ccb (1d:4ccb)
+	db $08 ; asm
+	ld hl, PewterMartText_74cd5
+	call PrintText
+	jp TextScriptEnd
+
+PewterMartText_74cd5: ; 74cd5 (1d:4cd5)
+	TX_FAR _PewterMartText_74cd5
+	db "@"
--- /dev/null
+++ b/scripts/pewterpokecenter.asm
@@ -1,0 +1,75 @@
+PewterPokecenterScript: ; 5c587 (17:4587)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+PewterPokecenterTextPointers: ; 5c58d (17:458d)
+	dw PewterPokecenterText1
+	dw PewterPokecenterText2
+	dw PewterPokecenterText3
+	dw PewterPokecenterText4
+
+PewterPokecenterText1: ; 5c595 (17:4595)
+	db $ff
+
+PewterPokecenterText2: ; 5c596 (17:4596)
+	TX_FAR _PewterPokecenterText1
+	db "@"
+
+PewterPokecenterText3: ; 5c59b (17:459b)
+	db $8
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, PewterPokecenterText5
+	call PrintText
+	ld a, $ff
+	call PlaySound
+	ld c, $20
+	call DelayFrames
+	ld hl, Unknown_5c608 ; $4608
+	ld de, $cd3f
+	ld bc, $0004
+	call CopyData
+	ld a, [$c132]
+	ld hl, $cd3f
+.asm_5c5c3
+	cp [hl]
+	inc hl
+	jr nz, .asm_5c5c3 ; 0x5c5c5 $fc
+	dec hl
+	push hl
+	ld c, BANK(Music_JigglypuffSong)
+	ld a, MUSIC_JIGGLYPUFF_SONG
+	call PlayMusic
+	pop hl
+.asm_5c5d1
+	ld a, [hl]
+	ld [$c132], a
+	push hl
+	ld hl, $cd3f
+	ld de, $cd3e
+	ld bc, $0004
+	call CopyData
+	ld a, [$cd3e]
+	ld [$cd42], a
+	pop hl
+	ld c, $18
+	call DelayFrames
+	ld a, [$c026]
+	ld b, a
+	ld a, [$c027]
+	or b
+	jr nz, .asm_5c5d1 ; 0x5c5f6 $d9
+	ld c, $30
+	call DelayFrames
+	call Func_2307
+	jp TextScriptEnd
+
+PewterPokecenterText5: ; 5c603 (17:4603)
+	TX_FAR _PewterPokecenterText5
+	db "@"
+
+Unknown_5c608: ; 5c608 (17:4608)
+	db $30, $38, $34, $3c
+
+PewterPokecenterText4: ; 5c60c (17:460c)
+	db $f6
--- /dev/null
+++ b/scripts/pokemontower1.asm
@@ -1,0 +1,29 @@
+PokemonTower1Script: ; 6042c (18:442c)
+	jp EnableAutoTextBoxDrawing
+
+PokemonTower1TextPointers: ; 6042f (18:442f)
+	dw PokemonTower1Text1
+	dw PokemonTower1Text2
+	dw PokemonTower1Text3
+	dw PokemonTower1Text4
+	dw PokemonTower1Text5
+
+PokemonTower1Text1: ; 60439 (18:4439)
+	TX_FAR _PokemonTower1Text1
+	db "@"
+
+PokemonTower1Text2: ; 6043e (18:443e)
+	TX_FAR _PokemonTower1Text2
+	db "@"
+
+PokemonTower1Text3: ; 60443 (18:4443)
+	TX_FAR _PokemonTower1Text3
+	db "@"
+
+PokemonTower1Text4: ; 60448 (18:4448)
+	TX_FAR _PokemonTower1Text4
+	db "@"
+
+PokemonTower1Text5: ; 6044d (18:444d)
+	TX_FAR _PokemonTower1Text5
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower2.asm
@@ -1,0 +1,180 @@
+PokemonTower2Script: ; 604f2 (18:44f2)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower2ScriptPointers
+	ld a, [W_POKEMONTOWER2CURSCRIPT]
+	jp CallFunctionInTable
+
+PokemonTower2Script_604fe: ; 604fe (18:44fe)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_POKEMONTOWER2CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower2ScriptPointers: ; 60509 (18:4509)
+	dw PokemonTower2Script0
+	dw PokemonTower2Script1
+	dw PokemonTower2Script2
+
+PokemonTower2Script0: ; 6050f (18:450f)
+	ld a, [$d764]
+	bit 7, a
+	ret nz
+	ld hl, CoordsData_6055e ; $455e
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic
+	ld hl, $d764
+	res 6, [hl]
+	ld a, [$cd3d]
+	cp $1
+	ld a, $8
+	ld b, $0
+	jr nz, .asm_60544 ; 0x60539 $9
+	ld hl, $d764
+	set 6, [hl]
+	ld a, $2
+	ld b, $c
+.asm_60544
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, b
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [H_NEWLYPRESSEDBUTTONS], a
+	ret
+
+CoordsData_6055e: ; 6055e (18:455e)
+	db $05,$0F
+	db $06,$0E
+	db $0F ; isn't this supposed to end in $ff?
+
+PokemonTower2Script1: ; 60563 (18:4563)
+	ld a, [$d057]
+	cp $ff
+	jp z, PokemonTower2Script_604fe
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d764
+	set 7, [hl]
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld de, MovementData_605b2
+	ld a, [$d764]
+	bit 6, a
+	jr nz, .asm_60589 ; 0x60584 $3
+	ld de, MovementData_605a9
+.asm_60589
+	ld a, $1
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $2
+	ld [W_POKEMONTOWER2CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+MovementData_605a9: ; 605a9 (18:45a9)
+	db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF
+
+MovementData_605b2: ; 605b2 (18:45b2)
+	db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
+
+PokemonTower2Script2: ; 605bb (18:45bb)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $38
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	call Func_2307
+	ld a, $0
+	ld [W_POKEMONTOWER2CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower2TextPointers: ; 605db (18:45db)
+	dw PokemonTower2Text1
+	dw PokemonTower2Text2
+
+PokemonTower2Text1: ; 605df (18:45df)
+	db $08 ; asm
+	ld a, [$d764]
+	bit 7, a
+	jr z, .asm_16f24 ; 0x605e5
+	ld hl, PokemonTower2Text_6063c
+	call PrintText
+	jr .asm_41852 ; 0x605ed
+.asm_16f24 ; 0x605ef
+	ld hl, PokemonTower2Text_6062d
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, PokemonTower2Text_60632
+	ld de, PokemonTower2Text_60637 ; XXX $4637
+	call PreBattleSaveRegisters
+	ld a, SONY2 + $c8
+	ld [W_CUROPPONENT], a
+
+	; select which team to use during the encounter
+	ld a, [W_RIVALSTARTER]
+	cp SQUIRTLE
+	jr nz, .NotSquirtle ; 0x6060f
+	ld a, $4
+	jr .done
+.NotSquirtle ; 0x60615
+	cp BULBASAUR
+	jr nz, .Charmander ; 0x60617
+	ld a, $5
+	jr .done
+.Charmander ; 0x6061d
+	ld a, $6
+.done
+	ld [W_TRAINERNO], a
+
+	ld a, $1
+	ld [W_POKEMONTOWER2CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_41852 ; 0x6062a
+	jp TextScriptEnd
+
+PokemonTower2Text_6062d: ; 6062d (18:462d)
+	TX_FAR _PokemonTower2Text_6062d
+	db "@"
+
+PokemonTower2Text_60632: ; 60632 (18:4632)
+	TX_FAR _PokemonTower2Text_60632
+	db "@"
+
+PokemonTower2Text_60637: ; 60637 (18:4637)
+	TX_FAR _PokemonTower2Text_60637
+	db "@"
+
+PokemonTower2Text_6063c: ; 6063c (18:463c)
+	TX_FAR _PokemonTower2Text_6063c
+	db "@"
+
+PokemonTower2Text2: ; 60641 (18:4641)
+	TX_FAR _PokemonTower2Text2
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower3.asm
@@ -1,0 +1,102 @@
+PokemonTower3Script: ; 606cc (18:46cc)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower3TrainerHeaders
+	ld de, PokemonTower3ScriptPointers
+	ld a, [W_POKEMONTOWER3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POKEMONTOWER3CURSCRIPT], a
+	ret
+
+PokemonTower3ScriptPointers: ; 606df (18:46df)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+PokemonTower3TextPointers: ; 606e5 (18:46e5)
+	dw PokemonTower3Text1
+	dw PokemonTower3Text2
+	dw PokemonTower3Text3
+	dw Predef5CText
+
+PokemonTower3TrainerHeaders: ; 606ed (18:46ed)
+PokemonTower3TrainerHeader0: ; 606ed (18:46ed)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d765 ; flag's byte
+	dw PokemonTower3BattleText1 ; 0x4730 TextBeforeBattle
+	dw PokemonTower3AfterBattleText1 ; 0x473a TextAfterBattle
+	dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
+	dw PokemonTower3EndBattleText1 ; 0x4735 TextEndBattle
+
+PokemonTower3TrainerHeader1: ; 606f9 (18:46f9)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d765 ; flag's byte
+	dw PokemonTower3BattleText2 ; 0x473f TextBeforeBattle
+	dw PokemonTower3AfterBattleText2 ; 0x4749 TextAfterBattle
+	dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
+	dw PokemonTower3EndBattleText2 ; 0x4744 TextEndBattle
+
+PokemonTower3TrainerHeader2: ; 60705 (18:4705)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d765 ; flag's byte
+	dw PokemonTower3BattleText3 ; 0x474e TextBeforeBattle
+	dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle
+	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
+	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
+	db $ff
+
+PokemonTower3Text1: ; 60712 (18:4712)
+	db $08 ; asm
+	ld hl, PokemonTower3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower3Text2: ; 6071c (18:471c)
+	db $08 ; asm
+	ld hl, PokemonTower3TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower3Text3: ; 60726 (18:4726)
+	db $08 ; asm
+	ld hl, PokemonTower3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower3BattleText1: ; 60730 (18:4730)
+	TX_FAR _PokemonTower3BattleText1
+	db "@"
+
+PokemonTower3EndBattleText1: ; 60735 (18:4735)
+	TX_FAR _PokemonTower3EndBattleText1
+	db "@"
+
+PokemonTower3AfterBattleText1: ; 6073a (18:473a)
+	TX_FAR _PokemonTower3AfterBattleText1
+	db "@"
+
+PokemonTower3BattleText2: ; 6073f (18:473f)
+	TX_FAR _PokemonTower3BattleText2
+	db "@"
+
+PokemonTower3EndBattleText2: ; 60744 (18:4744)
+	TX_FAR _PokemonTower3EndBattleText2
+	db "@"
+
+PokemonTower3AfterBattleText2: ; 60749 (18:4749)
+	TX_FAR _PokemonTower3AfterBattleText2
+	db "@"
+
+PokemonTower3BattleText3: ; 6074e (18:474e)
+	TX_FAR _PokemonTower3BattleText3
+	db "@"
+
+PokemonTower3EndBattleText3: ; 60753 (18:4753)
+	TX_FAR _PokemonTower3EndBattleText3
+	db "@"
+
+PokemonTower3AfterBattleText3: ; 60758 (18:4758)
+	TX_FAR _PokemonTower3AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower4.asm
@@ -1,0 +1,105 @@
+PokemonTower4Script: ; 607f6 (18:47f6)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower4TrainerHeaders
+	ld de, PokemonTower4ScriptPointers
+	ld a, [W_POKEMONTOWER4CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POKEMONTOWER4CURSCRIPT], a
+	ret
+
+PokemonTower4ScriptPointers: ; 60809 (18:4809)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+PokemonTower4TextPointers: ; 6080f (18:480f)
+	dw PokemonTower4Text1
+	dw PokemonTower4Text2
+	dw PokemonTower4Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+PokemonTower4TrainerHeaders: ; 6081b (18:481b)
+PokemonTower4TrainerHeader0: ; 6081b (18:481b)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d766 ; flag's byte
+	dw PokemonTower4BattleText1 ; 0x485e TextBeforeBattle
+	dw PokemonTower4AfterBattleText1 ; 0x4868 TextAfterBattle
+	dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
+	dw PokemonTower4EndBattleText1 ; 0x4863 TextEndBattle
+
+PokemonTower4TrainerHeader1: ; 60827 (18:4827)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d766 ; flag's byte
+	dw PokemonTower4BattleText2 ; 0x486d TextBeforeBattle
+	dw PokemonTower4AfterBattleText2 ; 0x4877 TextAfterBattle
+	dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
+	dw PokemonTower4EndBattleText2 ; 0x4872 TextEndBattle
+
+PokemonTower4TrainerHeader2: ; 60833 (18:4833)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d766 ; flag's byte
+	dw PokemonTower4BattleText3 ; 0x487c TextBeforeBattle
+	dw PokemonTower4AfterBattleText3 ; 0x4886 TextAfterBattle
+	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
+	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
+
+	db $ff
+
+PokemonTower4Text1: ; 60840 (18:4840)
+	db $08 ; asm
+	ld hl, PokemonTower4TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower4Text2: ; 6084a (18:484a)
+	db $08 ; asm
+	ld hl, PokemonTower4TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower4Text3: ; 60854 (18:4854)
+	db $08 ; asm
+	ld hl, PokemonTower4TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower4BattleText1: ; 6085e (18:485e)
+	TX_FAR _PokemonTower4BattleText1
+	db "@"
+
+PokemonTower4EndBattleText1: ; 60863 (18:4863)
+	TX_FAR _PokemonTower4EndBattleText1
+	db "@"
+
+PokemonTower4AfterBattleText1: ; 60868 (18:4868)
+	TX_FAR _PokemonTower4AfterBattleText1
+	db "@"
+
+PokemonTower4BattleText2: ; 6086d (18:486d)
+	TX_FAR _PokemonTower4BattleText2
+	db "@"
+
+PokemonTower4EndBattleText2: ; 60872 (18:4872)
+	TX_FAR _PokemonTower4EndBattleText2
+	db "@"
+
+PokemonTower4AfterBattleText2: ; 60877 (18:4877)
+	TX_FAR _PokemonTower4AfterBattleText2
+	db "@"
+
+PokemonTower4BattleText3: ; 6087c (18:487c)
+	TX_FAR _PokemonTower4BattleText3
+	db "@"
+
+PokemonTower4EndBattleText3: ; 60881 (18:4881)
+	TX_FAR _PokemonTower4EndBattleText3
+	db "@"
+
+PokemonTower4AfterBattleText3: ; 60886 (18:4886)
+	TX_FAR _PokemonTower4AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower5.asm
@@ -1,0 +1,181 @@
+PokemonTower5Script: ; 60932 (18:4932)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower5TrainerHeaders
+	ld de, PokemonTower5ScriptPointers
+	ld a, [W_POKEMONTOWER5CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POKEMONTOWER5CURSCRIPT], a
+	ret
+
+PokemonTower5ScriptPointers: ; 60945 (18:4945)
+	dw PokemonTower5Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+PokemonTower5Script0: ; 6094b (18:494b)
+	ld hl, CoordsData_60992 ; $4992
+	call ArePlayerCoordsInArray
+	jr c, .asm_60960
+	ld hl, $d72e
+	res 4, [hl]
+	ld hl, $d767
+	res 7, [hl]
+	jp CheckFightingMapTrainers
+.asm_60960
+	ld hl, $d767
+	bit 7, [hl]
+	set 7, [hl]
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d72e
+	set 4, [hl]
+	ld a, $7
+	call Predef ; indirect jump to HealParty (f6a5 (3:76a5))
+	call GBFadeOut2
+	call Delay3
+	call Delay3
+	call GBFadeIn2
+	ld a, $7
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+
+CoordsData_60992: ; 60992 (18:4992)
+	db $08,$0A
+	db $08,$0B
+	db $09,$0A
+	db $09,$0B
+	db $FF
+
+PokemonTower5TextPointers: ; 6099b (18:499b)
+	dw PokemonTower5Text1
+	dw PokemonTower5Text2
+	dw PokemonTower5Text3
+	dw PokemonTower5Text4
+	dw PokemonTower5Text5
+	dw Predef5CText
+	dw PokemonTower5Text7
+
+PokemonTower5TrainerHeaders: ; 609a9 (18:49a9)
+PokemonTower5TrainerHeader0: ; 609a9 (18:49a9)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d767 ; flag's byte
+	dw PokemonTower5BattleText1 ; 0x49e9 TextBeforeBattle
+	dw PokemonTower5AfterBattleText1 ; 0x49f3 TextAfterBattle
+	dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
+	dw PokemonTower5EndBattleText1 ; 0x49ee TextEndBattle
+
+PokemonTower5TrainerHeader1: ; 609b5 (18:49b5)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d767 ; flag's byte
+	dw PokemonTower5BattleText2 ; 0x4a02 TextBeforeBattle
+	dw PokemonTower5AfterBattleText2 ; 0x4a0c TextAfterBattle
+	dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
+	dw PokemonTower5EndBattleText2 ; 0x4a07 TextEndBattle
+
+PokemonTower5TrainerHeader2: ; 609c1 (18:49c1)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d767 ; flag's byte
+	dw PokemonTower5BattleText3 ; 0x4a1b TextBeforeBattle
+	dw PokemonTower5AfterBattleText3 ; 0x4a25 TextAfterBattle
+	dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
+	dw PokemonTower5EndBattleText3 ; 0x4a20 TextEndBattle
+
+PokemonTower5TrainerHeader3: ; 609cd (18:49cd)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d767 ; flag's byte
+	dw PokemonTower5BattleText4 ; 0x4a34 TextBeforeBattle
+	dw PokemonTower5AfterBattleText4 ; 0x4a3e TextAfterBattle
+	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
+	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
+
+	db $ff
+
+PokemonTower5Text1: ; 609da (18:49da)
+	TX_FAR _PokemonTower5Text1
+	db "@"
+
+PokemonTower5Text2: ; 609df (18:49df)
+	db $08 ; asm
+	ld hl, PokemonTower5TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower5BattleText1: ; 609e9 (18:49e9)
+	TX_FAR _PokemonTower5BattleText1
+	db "@"
+
+PokemonTower5EndBattleText1: ; 609ee (18:49ee)
+	TX_FAR _PokemonTower5EndBattleText1
+	db "@"
+
+PokemonTower5AfterBattleText1: ; 609f3 (18:49f3)
+	TX_FAR _PokemonTower5AfterBattleText1
+	db "@"
+
+PokemonTower5Text3: ; 609f8 (18:49f8)
+	db $08 ; asm
+	ld hl, PokemonTower5TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower5BattleText2: ; 60a02 (18:4a02)
+	TX_FAR _PokemonTower5BattleText2
+	db "@"
+
+PokemonTower5EndBattleText2: ; 60a07 (18:4a07)
+	TX_FAR _PokemonTower5EndBattleText2
+	db "@"
+
+PokemonTower5AfterBattleText2: ; 60a0c (18:4a0c)
+	TX_FAR _PokemonTower5AfterBattleText2
+	db "@"
+
+PokemonTower5Text4: ; 60a11 (18:4a11)
+	db $08 ; asm
+	ld hl, PokemonTower5TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower5BattleText3: ; 60a1b (18:4a1b)
+	TX_FAR _PokemonTower5BattleText3
+	db "@"
+
+PokemonTower5EndBattleText3: ; 60a20 (18:4a20)
+	TX_FAR _PokemonTower5EndBattleText3
+	db "@"
+
+PokemonTower5AfterBattleText3: ; 60a25 (18:4a25)
+	TX_FAR _PokemonTower5AfterBattleText3
+	db "@"
+
+PokemonTower5Text5: ; 60a2a (18:4a2a)
+	db $08 ; asm
+	ld hl, PokemonTower5TrainerHeader3 ; $49cd
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower5BattleText4: ; 60a34 (18:4a34)
+	TX_FAR _PokemonTower5BattleText4
+	db "@"
+
+PokemonTower5EndBattleText4: ; 60a39 (18:4a39)
+	TX_FAR _PokemonTower5EndBattleText4
+	db "@"
+
+PokemonTower5AfterBattleText4: ; 60a3e (18:4a3e)
+	TX_FAR _PokemonTower5AfterBattleText4
+	db "@"
+
+PokemonTower5Text7: ; 60a43 (18:4a43)
+	TX_FAR _PokemonTower5Text7
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower6.asm
@@ -1,0 +1,215 @@
+PokemonTower6Script: ; 60aef (18:4aef)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower6TrainerHeaders
+	ld de, PokemonTower6ScriptPointers
+	ld a, [W_POKEMONTOWER6CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ret
+
+Func_60b02: ; 60b02 (18:4b02)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower6ScriptPointers: ; 60b0d (18:4b0d)
+	dw PokemonTower6Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw PokemonTower6Script3
+	dw PokemonTower6Script4
+
+PokemonTower6Script0: ; 60b17 (18:4b17)
+	ld a, [$d768]
+	bit 7, a
+	jp nz, CheckFightingMapTrainers
+	ld hl, CoordsData_60b45 ; $4b45
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, MAROWAK
+	ld [W_CUROPPONENT], a ; $d059
+	ld a, 30
+	ld [W_CURENEMYLVL], a ; $d127
+	ld a, $4
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_60b45: ; 60b45 (18:4b45)
+	db $10,$0A,$FF
+
+PokemonTower6Script4: ; 60b48 (18:4b48)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, Func_60b02
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [$d72d]
+	bit 6, a
+	ret nz
+	call UpdateSprites
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [$cf0b]
+	and a
+	jr nz, .asm_60b82
+	ld hl, $d768
+	set 7, [hl]
+	ld a, $7
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+.asm_60b82
+	ld a, $1
+	ld [$cd38], a
+	ld a, $10
+	ld [$ccd3], a
+	xor a
+	ld [$c206], a
+	ld [$cd3b], a
+	ld hl, $d730
+	set 7, [hl]
+	ld a, $3
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower6Script3: ; 60ba1 (18:4ba1)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower6TextPointers: ; 60bb1 (18:4bb1)
+	dw PokemonTower6Text1
+	dw PokemonTower6Text2
+	dw PokemonTower6Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw PokemonTower6Text6
+	dw PokemonTower6Text7
+
+PokemonTower6TrainerHeaders: ; 60bbf (18:4bbf)
+PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d768 ; flag's byte
+	dw PokemonTower6BattleText1 ; 0x4c29 TextBeforeBattle
+	dw PokemonTower6AfterBattleText1 ; 0x4c33 TextAfterBattle
+	dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
+	dw PokemonTower6EndBattleText1 ; 0x4c2e TextEndBattle
+
+PokemonTower6TrainerHeader1: ; 60bcb (18:4bcb)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d768 ; flag's byte
+	dw PokemonTower6BattleText2 ; 0x4c38 TextBeforeBattle
+	dw PokemonTower6AfterBattleText2 ; 0x4c42 TextAfterBattle
+	dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
+	dw PokemonTower6EndBattleText2 ; 0x4c3d TextEndBattle
+
+PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d768 ; flag's byte
+	dw PokemonTower6BattleText3 ; 0x4c47 TextBeforeBattle
+	dw PokemonTower6AfterBattleText3 ; 0x4c51 TextAfterBattle
+	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
+	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
+
+	db $ff
+
+PokemonTower6Text1: ; 60be4 (18:4be4)
+	db $08 ; asm
+	ld hl, PokemonTower6TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower6Text2: ; 60bee (18:4bee)
+	db $08 ; asm
+	ld hl, PokemonTower6TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower6Text3: ; 60bf8 (18:4bf8)
+	db $08 ; asm
+	ld hl, PokemonTower6TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower6Text7: ; 60c02 (18:4c02)
+	db $8
+	ld hl, PokemonTower2Text_60c1f
+	call PrintText
+	ld a, MAROWAK
+	call PlayCry
+	call WaitForSoundToFinish
+	ld c, $1e
+	call DelayFrames
+	ld hl, PokemonTower2Text_60c24
+	call PrintText
+	jp TextScriptEnd
+
+PokemonTower2Text_60c1f: ; 60c1f (18:4c1f)
+	TX_FAR _PokemonTower2Text_60c1f
+	db "@"
+
+PokemonTower2Text_60c24: ; 60c24 (18:4c24)
+	TX_FAR _PokemonTower2Text_60c24
+	db "@"
+
+PokemonTower6BattleText1: ; 60c29 (18:4c29)
+	TX_FAR _PokemonTower6BattleText1
+	db "@"
+
+PokemonTower6EndBattleText1: ; 60c2e (18:4c2e)
+	TX_FAR _PokemonTower6EndBattleText1
+	db "@"
+
+PokemonTower6AfterBattleText1: ; 60c33 (18:4c33)
+	TX_FAR _PokemonTower6AfterBattleText1
+	db "@"
+
+PokemonTower6BattleText2: ; 60c38 (18:4c38)
+	TX_FAR _PokemonTower6BattleText2
+	db "@"
+
+PokemonTower6EndBattleText2: ; 60c3d (18:4c3d)
+	TX_FAR _PokemonTower6EndBattleText2
+	db "@"
+
+PokemonTower6AfterBattleText2: ; 60c42 (18:4c42)
+	TX_FAR _PokemonTower6AfterBattleText2
+	db "@"
+
+PokemonTower6BattleText3: ; 60c47 (18:4c47)
+	TX_FAR _PokemonTower6BattleText3
+	db "@"
+
+PokemonTower6EndBattleText3: ; 60c4c (18:4c4c)
+	TX_FAR _PokemonTower6EndBattleText3
+	db "@"
+
+PokemonTower6AfterBattleText3: ; 60c51 (18:4c51)
+	TX_FAR _PokemonTower6AfterBattleText3
+	db "@"
+
+PokemonTower6Text6: ; 60c56 (18:4c56)
+	TX_FAR _PokemonTower6Text6
+	db "@"
--- /dev/null
+++ b/scripts/pokemontower7.asm
@@ -1,0 +1,282 @@
+PokemonTower7Script: ; 60d05 (18:4d05)
+	call EnableAutoTextBoxDrawing
+	ld hl, PokemonTower7TrainerHeaders
+	ld de, PokemonTower7ScriptPointers
+	ld a, [W_POKEMONTOWER7CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ret
+
+PokemonTower7Script_60d18: ; 60d18 (18:4d18)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower7ScriptPointers: ; 60d23 (18:4d23)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw PokemonTower7Script2
+	dw PokemonTower7Script3
+	dw PokemonTower7Script4
+
+PokemonTower7Script2: ; 60d23 (18:4d23)
+	ld hl, wFlags_0xcd60
+	res 0, [hl]
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, PokemonTower7Script_60d18
+	call EndTrainerBattle
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [$cf13]
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	call PokemonTower7Script_60db6
+	ld a, $3
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower7Script3: ; 60d56 (18:4d56)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld hl, W_MISSABLEOBJECTLIST
+	ld a, [$cf13]
+	ld b, a
+.missableObjectsListLoop
+	ld a, [hli]
+	cp b            ; search for sprite ID in missing objects list
+	ld a, [hli]
+	jr nz, .missableObjectsListLoop
+	ld [$cc4d], a   ; remove missable object
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [$cf13], a
+	ld [wTrainerHeaderFlagBit], a
+	ld [$da38], a
+	ld a, $0
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower7Script4: ; 60d86 (18:4d86)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $43
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $4
+	ld [$c109], a
+	ld a, $95
+	ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+	ld a, $1
+	ld [$d42f], a
+	ld a, $4
+	ld [$d365], a
+	ld hl, $d72d
+	set 3, [hl]
+	ld a, $0
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+PokemonTower7Script_60db6: ; 60db6 (18:4db6)
+	ld hl, CoordsData_60de3 ; $4de3
+	ld a, [$cf13]
+	dec a
+	swap a
+	ld d, $0
+	ld e, a
+	add hl, de
+	ld a, [W_YCOORD] ; $d361
+	ld b, a
+	ld a, [W_XCOORD] ; $d362
+	ld c, a
+.asm_60dcb
+	ld a, [hli]
+	cp b
+	jr nz, .asm_60dde
+	ld a, [hli]
+	cp c
+	jr nz, .asm_60ddf
+	ld a, [hli]
+	ld d, [hl]
+	ld e, a
+	ld a, [$cf13]
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp MoveSprite
+.asm_60dde
+	inc hl
+.asm_60ddf
+	inc hl
+	inc hl
+	jr .asm_60dcb
+
+CoordsData_60de3: ; 60de3 (18:4de3)
+	db $0C,$09
+	dw MovementData_60e13
+	db $0B,$0A
+	dw MovementData_60e1b
+	db $0B,$0B
+	dw MovementData_60e22
+	db $0B,$0C
+	dw MovementData_60e22
+	db $0A,$0C
+	dw MovementData_60e28
+	db $09,$0B
+	dw MovementData_60e30
+	db $09,$0A
+	dw MovementData_60e22
+	db $09,$09
+	dw MovementData_60e22
+	db $08,$09
+	dw MovementData_60e37
+	db $07,$0A
+	dw MovementData_60e22
+	db $07,$0B
+	dw MovementData_60e22
+	db $07,$0C
+	dw MovementData_60e22
+
+MovementData_60e13: ; 60e13
+	db $C0,$00,$00,$00,$00,$00,$80,$FF
+
+MovementData_60e1b: ; 60e1b
+	db $00,$C0,$00,$00,$00,$00,$FF
+
+MovementData_60e22: ; 60e22
+	db $00,$00,$00,$00,$00,$FF
+
+MovementData_60e28: ; 60e28
+	db $80,$00,$00,$00,$00,$00,$00,$FF
+
+MovementData_60e30: ; 60e30
+	db $00,$00,$00,$80,$00,$00,$FF
+
+MovementData_60e37: ; 60e37
+	db $C0,$00,$00,$00,$00,$00,$00,$FF
+
+PokemonTower7TextPointers: ; 60e3f (18:4e3f)
+	dw PokemonTower7Text1
+	dw PokemonTower7Text2
+	dw PokemonTower7Text3
+	dw PokemonTower7Text4
+
+PokemonTower7TrainerHeaders: ; 60e47 (18:4e47)
+PokemonTower7TrainerHeader0: ; 60e47 (18:4e47)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d769 ; flag's byte
+	dw PokemonTower7BattleText1 ; 0x4ec9 TextBeforeBattle
+	dw PokemonTower7AfterBattleText1 ; 0x4ed3 TextAfterBattle
+	dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
+	dw PokemonTower7EndBattleText1 ; 0x4ece TextEndBattle
+
+PokemonTower7TrainerHeader1: ; 60e53 (18:4e53)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d769 ; flag's byte
+	dw PokemonTower7BattleText2 ; 0x4ed8 TextBeforeBattle
+	dw PokemonTower7AfterBattleText2 ; 0x4ee2 TextAfterBattle
+	dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
+	dw PokemonTower7EndBattleText2 ; 0x4edd TextEndBattle
+
+PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d769 ; flag's byte
+	dw PokemonTower7BattleText3 ; 0x4ee7 TextBeforeBattle
+	dw PokemonTower7AfterBattleText3 ; 0x4ef1 TextAfterBattle
+	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
+	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
+
+	db $ff
+
+PokemonTower7Text1: ; 60e6c (18:4e6c)
+	db $08 ; asm
+	ld hl, PokemonTower7TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower7Text2: ; 60e76 (18:4e76)
+	db $08 ; asm
+	ld hl, PokemonTower7TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower7Text3: ; 60e80 (18:4e80)
+	db $08 ; asm
+	ld hl, PokemonTower7TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+PokemonTower7Text4: ; 60e8a (18:4e8a)
+	db $08 ; asm
+	ld hl, PokemonTower7Text_60ec4
+	call PrintText
+	ld hl, $d7e0
+	set 7, [hl]
+	ld hl, $d769
+	set 7, [hl]
+	ld a, $44
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, $17
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $18
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	ld a, $4
+	ld [W_POKEMONTOWER7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jp TextScriptEnd
+
+PokemonTower7Text_60ec4: ; 60ec4 (18:4ec4)
+	TX_FAR _PokemonTower7Text_60ec4
+	db "@"
+
+PokemonTower7BattleText1: ; 60ec9 (18:4ec9)
+	TX_FAR _PokemonTower7BattleText1
+	db "@"
+
+PokemonTower7EndBattleText1: ; 60ece (18:4ece)
+	TX_FAR _PokemonTower7EndBattleText1
+	db "@"
+
+PokemonTower7AfterBattleText1: ; 60ed3 (18:4ed3)
+	TX_FAR _PokemonTower7AfterBattleText1
+	db "@"
+
+PokemonTower7BattleText2: ; 60ed8 (18:4ed8)
+	TX_FAR _PokemonTower7BattleText2
+	db "@"
+
+PokemonTower7EndBattleText2: ; 60edd (18:4edd)
+	TX_FAR _PokemonTower7EndBattleText2
+	db "@"
+
+PokemonTower7AfterBattleText2: ; 60ee2 (18:4ee2)
+	TX_FAR _PokemonTower7AfterBattleText2
+	db "@"
+
+PokemonTower7BattleText3: ; 60ee7 (18:4ee7)
+	TX_FAR _PokemonTower7BattleText3
+	db "@"
+
+PokemonTower7EndBattleText3: ; 60eec (18:4eec)
+	TX_FAR _PokemonTower7EndBattleText3
+	db "@"
+
+PokemonTower7AfterBattleText3: ; 60ef1 (18:4ef1)
+	TX_FAR _PokemonTower7AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/powerplant.asm
@@ -1,0 +1,176 @@
+PowerPlantScript: ; 1e2c6 (7:62c6)
+	call EnableAutoTextBoxDrawing
+	ld hl, PowerPlantTrainerHeaders
+	ld de, PowerPlantScriptPointers
+	ld a, [W_POWERPLANTCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_POWERPLANTCURSCRIPT], a
+	ret
+
+PowerPlantScriptPointers: ; 1e2d9 (7:62d9)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+PowerPlantTextPointers: ; 1e2df (7:62df)
+	dw PowerPlantText1
+	dw PowerPlantText2
+	dw PowerPlantText3
+	dw PowerPlantText4
+	dw PowerPlantText5
+	dw PowerPlantText6
+	dw PowerPlantText7
+	dw PowerPlantText8
+	dw PowerPlantText9
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+PowerPlantTrainerHeaders: ; 1e2fb (7:62fb)
+PowerPlantTrainerHeader0: ; 1e2fb (7:62fb)
+	db 1 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader1: ; 1e307 (7:6307)
+	db 2 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader2: ; 1e313 (7:6313)
+	db 3 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader3: ; 1e31f (7:631f)
+	db 4 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader4: ; 1e32b (7:632b)
+	db 5 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader5: ; 1e337 (7:6337)
+	db 6 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader6: ; 1e343 (7:6343)
+	db 7 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader7: ; 1e34f (7:634f)
+	db 8 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw VoltorbBattleText ; TextBeforeBattle
+	dw VoltorbBattleText ; TextAfterBattle
+	dw VoltorbBattleText ; TextEndBattle
+	dw VoltorbBattleText ; TextEndBattle
+
+PowerPlantTrainerHeader8: ; 1e35b (7:635b)
+	db 9 ; flag's bit
+	db 0 ; view range
+	dw $d7d3 ; flag's byte
+	dw ZapdosBattleText ; TextBeforeBattle
+	dw ZapdosBattleText ; TextAfterBattle
+	dw ZapdosBattleText ; TextEndBattle
+	dw ZapdosBattleText ; TextEndBattle
+
+	db $ff
+
+asm_234cc: ; 1e368 (7:6368)
+	call TalkToTrainer
+	ld a, [W_CURMAPSCRIPT]
+	ld [W_POWERPLANTCURSCRIPT], a
+	jp TextScriptEnd
+
+PowerPlantText1: ; 1e374 (7:6374)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader0 ; $62fb
+	jr asm_234cc ; 0x1e378 $ee
+
+PowerPlantText2: ; 1e37a (7:637a)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader1 ; $6307
+	jr asm_234cc ; 0x1e37e $e8
+
+PowerPlantText3: ; 1e380 (7:6380)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader2 ; $6313
+	jr asm_234cc ; 0x1e384 $e2
+
+PowerPlantText4: ; 1e386 (7:6386)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader3 ; $631f
+	jr asm_234cc ; 0x1e38a $dc
+
+PowerPlantText5: ; 1e38c (7:638c)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader4 ; $632b
+	jr asm_234cc ; 0x1e390 $d6
+
+PowerPlantText6: ; 1e392 (7:6392)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader5 ; $6337
+	jr asm_234cc ; 0x1e396 $d0
+
+PowerPlantText7: ; 1e398 (7:6398)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader6 ; $6343
+	jr asm_234cc ; 0x1e39c $ca
+
+PowerPlantText8: ; 1e39e (7:639e)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader7 ; $634f
+	jr asm_234cc ; 0x1e3a2 $c4
+
+PowerPlantText9: ; 1e3a4 (7:63a4)
+	db $8 ; asm
+	ld hl, PowerPlantTrainerHeader8 ; $635b
+	jr asm_234cc ; 0x1e3a8 $be
+
+VoltorbBattleText: ; 1e3aa (7:63aa)
+	TX_FAR _VoltorbBattleText
+	db "@"
+
+ZapdosBattleText: ; 1e3af (7:63af)
+	TX_FAR _ZapdosBattleText
+	db $8
+	ld a, ZAPDOS
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/redshouse1f.asm
@@ -1,0 +1,69 @@
+RedsHouse1FScript: ; 48168 (12:4168)
+	jp EnableAutoTextBoxDrawing
+
+RedsHouse1FTextPointers: ; 4816b (12:416b)
+	dw RedsHouse1FText1
+	dw RedsHouse1FText2
+
+RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom
+	db 8
+	ld a, [$D72E]
+	bit 3, a
+	jr nz, .heal ; if player has received a Pokémon from Oak, heal team
+	ld hl, MomWakeUpText
+	call PrintText
+	jr .done
+.heal
+	call MomHealPokemon
+.done
+	jp TextScriptEnd
+
+MomWakeUpText: ; 48185 (12:4185)
+	TX_FAR _MomWakeUpText
+	db "@"
+
+MomHealPokemon: ; 4818a (12:418a)
+	ld hl, MomHealText1
+	call PrintText
+	call GBFadeOut2
+	call ReloadMapData
+	PREDEF HealPartyPredef
+	ld a, MUSIC_PKMN_HEALED
+	ld [$C0EE], a
+	call PlaySound ; play sound?
+.next
+	ld a, [$C026]
+	cp MUSIC_PKMN_HEALED
+	jr z, .next
+	ld a, [$D35B]
+	ld [$C0EE], a
+	call PlaySound
+	call GBFadeIn2
+	ld hl, MomHealText2
+	jp PrintText
+
+MomHealText1: ; 481bc (12:41bc)
+	TX_FAR _MomHealText1
+	db "@"
+MomHealText2: ; 481c1 (12:41c1)
+	TX_FAR _MomHealText2
+	db "@"
+
+RedsHouse1FText2: ; 0x481c6 TV
+	db 8
+	ld a,[$C109]
+	cp 4
+	ld hl,TVWrongSideText
+	jr nz,.done ; if player is not facing up
+	ld hl,StandByMeText
+.done
+	call PrintText
+	jp TextScriptEnd
+
+StandByMeText: ; 481da (12:41da)
+	TX_FAR _StandByMeText
+	db "@"
+
+TVWrongSideText: ; 481df (12:41df)
+	TX_FAR _TVWrongSideText
+	db "@"
--- /dev/null
+++ b/scripts/redshouse2f.asm
@@ -1,0 +1,24 @@
+RedsHouse2FScript: ; 5c0b0 (17:40b0)
+	call EnableAutoTextBoxDrawing
+	ld hl,RedsHouse2FScriptPointers
+	ld a,[W_REDSHOUSE2CURSCRIPT]
+	jp CallFunctionInTable
+
+RedsHouse2FScriptPointers: ; 5c0bc (17:40bc)
+	dw RedsHouse2FScript0
+	dw RedsHouse2FScript1
+
+RedsHouse2FScript0: ; 5c0c0 (17:40c0)
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS],a
+	ld a,8
+	ld [$D528],a
+	ld a,1
+	ld [W_REDSHOUSE2CURSCRIPT],a
+	ret
+
+RedsHouse2FScript1: ; 5c0ce (17:40ce)
+	ret
+
+RedsHouse2FTextPointers: ; 5c0cf (17:40cf)
+	db "@"
--- /dev/null
+++ b/scripts/rockethideout1.asm
@@ -1,0 +1,193 @@
+RocketHideout1Script: ; 44bca (11:4bca)
+	call RocketHideout1Script_44be0
+	call EnableAutoTextBoxDrawing
+	ld hl, RocketHideout1TrainerHeaders
+	ld de, RocketHideout1ScriptPointers
+	ld a, [W_ROCKETHIDEOUT1CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKETHIDEOUT1CURSCRIPT], a
+	ret
+
+RocketHideout1Script_44be0: ; 44be0 (11:4be0)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d815]
+	bit 7, a
+	jr nz, .asm_44c01
+	bit 5, a
+	jr nz, .asm_44bf7
+	ld a, $54
+	jr .asm_44c03
+.asm_44bf7
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	ld hl, $d815
+	bit 7, [hl]
+.asm_44c01
+	ld a, $e
+.asm_44c03
+	ld [$d09f], a
+	ld bc, $080c
+	ld a, $17
+	jp Predef
+
+RocketHideout1ScriptPointers: ; 44c0e (11:4c0e)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+RocketHideout1TextPointers: ; 44c14 (11:4c14)
+	dw RocketHideout1Text1
+	dw RocketHideout1Text2
+	dw RocketHideout1Text3
+	dw RocketHideout1Text4
+	dw RocketHideout1Text5
+	dw Predef5CText
+	dw Predef5CText
+
+RocketHideout1TrainerHeaders: ; 44c22 (11:4c22)
+RocketHideout1TrainerHeader0: ; 44c22 (11:4c22)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d815 ; flag's byte
+	dw RocketHideout1BattleText2 ; 0x4ca1 TextBeforeBattle
+	dw RocketHideout1AfterBattleTxt2 ; 0x4cab TextAfterBattle
+	dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
+	dw RocketHideout1EndBattleText2 ; 0x4ca6 TextEndBattle
+
+RocketHideout1TrainerHeader2: ; 44c2e (11:4c2e)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d815 ; flag's byte
+	dw RocketHideout1BattleText3 ; 0x4cb0 TextBeforeBattle
+	dw RocketHideout1AfterBattleTxt3 ; 0x4cba TextAfterBattle
+	dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
+	dw RocketHideout1EndBattleText3 ; 0x4cb5 TextEndBattle
+
+RocketHideout1TrainerHeader3: ; 44c3a (11:4c3a)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d815 ; flag's byte
+	dw RocketHideout1BattleText4 ; 0x4cbf TextBeforeBattle
+	dw RocketHideout1AfterBattleTxt4 ; 0x4cc9 TextAfterBattle
+	dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
+	dw RocketHideout1EndBattleText4 ; 0x4cc4 TextEndBattle
+
+RocketHideout1TrainerHeader4: ; 44c46 (11:4c46)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d815 ; flag's byte
+	dw RocketHideout1BattleText5 ; 0x4cce TextBeforeBattle
+	dw RocketHideout1AfterBattleTxt5 ; 0x4cd8 TextAfterBattle
+	dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
+	dw RocketHideout1EndBattleText5 ; 0x4cd3 TextEndBattle
+
+RocketHideout1TrainerHeader5: ; 44c52 (11:4c52)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d815 ; flag's byte
+	dw RocketHideout1BattleText6 ; 0x4cdd TextBeforeBattle
+	dw RocketHideout1AfterBattleTxt6 ; 0x4ce2 TextAfterBattle
+	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
+	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
+
+	db $ff
+
+RocketHideout1Text1: ; 44c5f (11:4c5f)
+	db $08 ; asm
+	ld hl, RocketHideout1TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout1Text2: ; 44c69 (11:4c69)
+	db $08 ; asm
+	ld hl, RocketHideout1TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout1Text3: ; 44c73 (11:4c73)
+	db $08 ; asm
+	ld hl, RocketHideout1TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout1Text4: ; 44c7d (11:4c7d)
+	db $08 ; asm
+	ld hl, RocketHideout1TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout1Text5: ; 44c87 (11:4c87)
+	db $08 ; asm
+	ld hl, RocketHideout1TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout1EndBattleText6: ; 44c91 (11:4c91)
+	TX_FAR _RocketHideout1EndBattleText6
+	db $8
+	ld hl, $d815
+	set 5, [hl]
+	ld hl, RocketHideout1Text_44c9f
+	ret
+
+RocketHideout1Text_44c9f: ; 44c9f (11:4c9f)
+	db $6, "@"
+
+RocketHideout1BattleText2: ; 44ca1 (11:4ca1)
+	TX_FAR _RocketHideout1BattleText2
+	db "@"
+
+RocketHideout1EndBattleText2: ; 44ca6 (11:4ca6)
+	TX_FAR _RocketHideout1EndBattleText2
+	db "@"
+
+RocketHideout1AfterBattleTxt2: ; 44cab (11:4cab)
+	TX_FAR _RocketHideout1AfterBattleTxt2
+	db "@"
+
+RocketHideout1BattleText3: ; 44cb0 (11:4cb0)
+	TX_FAR _RocketHideout1BattleText3
+	db "@"
+
+RocketHideout1EndBattleText3: ; 44cb5 (11:4cb5)
+	TX_FAR _RocketHideout1EndBattleText3
+	db "@"
+
+RocketHideout1AfterBattleTxt3: ; 44cba (11:4cba)
+	TX_FAR _RocketHideout1AfterBattleTxt3
+	db "@"
+
+RocketHideout1BattleText4: ; 44cbf (11:4cbf)
+	TX_FAR _RocketHideout1BattleText4
+	db "@"
+
+RocketHideout1EndBattleText4: ; 44cc4 (11:4cc4)
+	TX_FAR _RocketHideout1EndBattleText4
+	db "@"
+
+RocketHideout1AfterBattleTxt4: ; 44cc9 (11:4cc9)
+	TX_FAR _RocketHideout1AfterBattleTxt4
+	db "@"
+
+RocketHideout1BattleText5: ; 44cce (11:4cce)
+	TX_FAR _RocketHideout1BattleText5
+	db "@"
+
+RocketHideout1EndBattleText5: ; 44cd3 (11:4cd3)
+	TX_FAR _RocketHideout1EndBattleText5
+	db "@"
+
+RocketHideout1AfterBattleTxt5: ; 44cd8 (11:4cd8)
+	TX_FAR _RocketHideout1AfterBattleTxt5
+	db "@"
+
+RocketHideout1BattleText6: ; 44cdd (11:4cdd)
+	TX_FAR _RocketHideout1BattleText6
+	db "@"
+
+RocketHideout1AfterBattleTxt6: ; 44ce2 (11:4ce2)
+	TX_FAR _RocketHideout1AfterBattleTxt6
+	db "@"
--- /dev/null
+++ b/scripts/rockethideout2.asm
@@ -1,0 +1,501 @@
+RocketHideout2Script: ; 44e27 (11:4e27)
+	call EnableAutoTextBoxDrawing
+	ld hl, RocketHideout2TrainerHeaders
+	ld de, RocketHideout2ScriptPointers
+	ld a, [W_ROCKETHIDEOUT2CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKETHIDEOUT2CURSCRIPT], a
+	ret
+
+RocketHideout2ScriptPointers: ; 44e3a (11:4e3a)
+	dw RocketHideout2Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout2Script3
+
+RocketHideout2Script0: ; 44e42 (11:4e42)
+	ld a, [W_YCOORD]
+	ld b, a
+	ld a, [W_XCOORD]
+	ld c, a
+	ld hl, RocketHideout2ArrowTilePlayerMovement
+	call Func_3442
+	cp $ff
+	jp z, CheckFightingMapTrainers
+	ld hl, $d736
+	set 7, [hl]
+	call Func_3486
+	ld a, (SFX_02_52 - SFX_Headers_02) / 3
+	call PlaySound
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+;format:
+;db y,x
+;dw pointer to movement
+RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d)
+	db $9,$4
+	dw RocketHideout2ArrowMovement1
+	db $b,$4
+	dw RocketHideout2ArrowMovement2
+	db $f,$4
+	dw RocketHideout2ArrowMovement3
+	db $10,$4
+	dw RocketHideout2ArrowMovement4
+	db $13,$4
+	dw RocketHideout2ArrowMovement1
+	db $16,$4
+	dw RocketHideout2ArrowMovement5
+	db $e,$5
+	dw RocketHideout2ArrowMovement6
+	db $16,$6
+	dw RocketHideout2ArrowMovement7
+	db $18,$6
+	dw RocketHideout2ArrowMovement8
+	db $9,$8
+	dw RocketHideout2ArrowMovement9
+	db $c,$8
+	dw RocketHideout2ArrowMovement10
+	db $f,$8
+	dw RocketHideout2ArrowMovement8
+	db $13,$8
+	dw RocketHideout2ArrowMovement9
+	db $17,$8
+	dw RocketHideout2ArrowMovement11
+	db $e,$9
+	dw RocketHideout2ArrowMovement12
+	db $16,$9
+	dw RocketHideout2ArrowMovement12
+	db $9,$a
+	dw RocketHideout2ArrowMovement13
+	db $a,$a
+	dw RocketHideout2ArrowMovement14
+	db $f,$a
+	dw RocketHideout2ArrowMovement15
+	db $11,$a
+	dw RocketHideout2ArrowMovement16
+	db $13,$a
+	dw RocketHideout2ArrowMovement17
+	db $19,$a
+	dw RocketHideout2ArrowMovement2
+	db $e,$b
+	dw RocketHideout2ArrowMovement18
+	db $10,$b
+	dw RocketHideout2ArrowMovement19
+	db $12,$b
+	dw RocketHideout2ArrowMovement12
+	db $9,$c
+	dw RocketHideout2ArrowMovement20
+	db $b,$c
+	dw RocketHideout2ArrowMovement21
+	db $d,$c
+	dw RocketHideout2ArrowMovement22
+	db $11,$c
+	dw RocketHideout2ArrowMovement23
+	db $a,$d
+	dw RocketHideout2ArrowMovement24
+	db $c,$d
+	dw RocketHideout2ArrowMovement25
+	db $10,$d
+	dw RocketHideout2ArrowMovement26
+	db $12,$d
+	dw RocketHideout2ArrowMovement27
+	db $13,$d
+	dw RocketHideout2ArrowMovement28
+	db $16,$d
+	dw RocketHideout2ArrowMovement29
+	db $17,$d
+	dw RocketHideout2ArrowMovement30
+	db $11,$e
+	dw RocketHideout2ArrowMovement31
+	db $10,$f
+	dw RocketHideout2ArrowMovement12
+	db $e,$10
+	dw RocketHideout2ArrowMovement32
+	db $10,$10
+	dw RocketHideout2ArrowMovement33
+	db $12,$10
+	dw RocketHideout2ArrowMovement34
+	db $a,$11
+	dw RocketHideout2ArrowMovement35
+	db $b,$11
+	dw RocketHideout2ArrowMovement36
+	db $FF
+
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+;each list is read starting from the $FF and working backwards
+RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a)
+	db $20,$02
+	db $FF
+
+RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d)
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement3: ; 44f20 (11:4f20)
+	db $40,$04
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement4: ; 44f25 (11:4f25)
+	db $40,$04
+	db $10,$04
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c)
+	db $20,$02
+	db $40,$03
+	db $FF
+
+RocketHideout2ArrowMovement6: ; 44f31 (11:4f31)
+	db $80,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement7: ; 44f36 (11:4f36)
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement8: ; 44f39 (11:4f39)
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c)
+	db $20,$06
+	db $FF
+
+RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f)
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement11: ; 44f42 (11:4f42)
+	db $20,$06
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement12: ; 44f47 (11:4f47)
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a)
+	db $20,$08
+	db $FF
+
+RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d)
+	db $20,$08
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement15: ; 44f52 (11:4f52)
+	db $20,$08
+	db $40,$06
+	db $FF
+
+RocketHideout2ArrowMovement16: ; 44f57 (11:4f57)
+	db $40,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c)
+	db $40,$02
+	db $10,$04
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement18: ; 44f63 (11:4f63)
+	db $80,$02
+	db $10,$04
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a)
+	db $80,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f)
+	db $20,$0A
+	db $FF
+
+RocketHideout2ArrowMovement21: ; 44f72 (11:4f72)
+	db $20,$0A
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement22: ; 44f77 (11:4f77)
+	db $20,$0A
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c)
+	db $40,$02
+	db $10,$02
+	db $FF
+
+RocketHideout2ArrowMovement24: ; 44f81 (11:4f81)
+	db $10,$01
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement25: ; 44f86 (11:4f86)
+	db $10,$01
+	db $FF
+
+RocketHideout2ArrowMovement26: ; 44f89 (11:4f89)
+	db $80,$02
+	db $10,$02
+	db $FF
+
+RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e)
+	db $80,$02
+	db $20,$02
+	db $FF
+
+RocketHideout2ArrowMovement28: ; 44f93 (11:4f93)
+	db $40,$02
+	db $10,$04
+	db $40,$02
+	db $20,$03
+	db $FF
+
+RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c)
+	db $80,$02
+	db $20,$04
+	db $FF
+
+RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1)
+	db $20,$06
+	db $40,$04
+	db $20,$05
+	db $FF
+
+RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8)
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement32: ; 44fab (11:4fab)
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement33: ; 44fae (11:4fae)
+	db $40,$03
+	db $FF
+
+RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1)
+	db $40,$05
+	db $FF
+
+RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4)
+	db $10,$01
+	db $80,$02
+	db $20,$04
+	db $FF
+
+RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb)
+	db $20,$0A
+	db $40,$02
+	db $20,$05
+	db $FF
+
+RocketHideout2Script3: ; 44fc2 (11:4fc2)
+	ld a, [$cd38]
+	and a
+	jr nz, LoadSpinnerArrowTiles
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d736
+	res 7, [hl]
+	ld a, $0
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7)
+	ld a, [$c102]
+	srl a
+	srl a
+	ld hl, SpinnerPlayerFacingDirections ; $5083
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	ld [$c102], a
+	ld a, [W_CURMAPTILESET] ; $d367
+	cp FACILITY
+	ld hl, SpinnerArrowTilePointers1 ; $5023
+	jr z, .asm_44ff6
+	ld hl, SpinnerArrowTilePointers2 ; $5053
+.asm_44ff6
+	ld a, [$cd38]
+	bit 0, a
+	jr nz, .asm_45001
+	ld de, $18
+	add hl, de
+.asm_45001
+	ld a, $4
+	ld bc, $0
+.asm_45006
+	push af
+	push hl
+	push bc
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call CopyVideoData
+	pop bc
+	ld a, $6
+	add c
+	ld c, a
+	pop hl
+	pop af
+	dec a
+	jr nz, .asm_45006
+	ret
+
+SpinnerArrowTilePointers1: ; 45023 (11:5023)
+	dw SpinnerArrowAnimTiles       ;address from within tileset graphics
+	db 1                           ;number of tiles to copy?
+	db BANK(SpinnerArrowAnimTiles) ;bank of tileset graphics
+	dw $9200                       ;where to load in VRAM
+
+	dw SpinnerArrowAnimTiles + $10
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $9210
+
+	dw SpinnerArrowAnimTiles + $20
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $9300
+
+	dw SpinnerArrowAnimTiles + $30
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $9310
+
+	dw Facility_GFX + $200
+	db 1
+	db BANK(Facility_GFX)
+	dw $9200
+
+	dw Facility_GFX + $210
+	db 1
+	db BANK(Facility_GFX)
+	dw $9210
+
+	dw Facility_GFX + $300
+	db 1
+	db BANK(Facility_GFX)
+	dw $9300
+
+	dw Facility_GFX + $310
+	db 1
+	db BANK(Facility_GFX)
+	dw $9310
+
+SpinnerArrowTilePointers2: ; 45053 (11:5053)
+	dw SpinnerArrowAnimTiles + $10
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $93C0
+
+	dw SpinnerArrowAnimTiles + $30
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $93D0
+
+	dw SpinnerArrowAnimTiles
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $94C0
+
+	dw SpinnerArrowAnimTiles + $20
+	db 1
+	db BANK(SpinnerArrowAnimTiles)
+	dw $94D0
+
+	dw Gym_GFX + $3C0
+	db 1
+	db BANK(Facility_GFX)
+	dw $93C0
+
+	dw Gym_GFX + $3D0
+	db 1
+	db BANK(Facility_GFX)
+	dw $93D0
+
+	dw Gym_GFX + $4C0
+	db 1
+	db BANK(Facility_GFX)
+	dw $94C0
+
+	dw Gym_GFX + $4D0
+	db 1
+	db BANK(Facility_GFX)
+	dw $94D0
+
+SpinnerPlayerFacingDirections: ; 45083 (11:5083)
+; This isn't the order of the facing directions.  Rather, it's a list of
+; the facing directions that come next. For example, when the player is
+; facing down (00), the next facing direction is left (08).
+	db $08 ; down -> left
+	db $0C ; up -> right
+	db $04 ; left -> up
+	db $00 ; right -> down
+
+; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ
+SpinnerArrowAnimTiles: ; 45087 (11:5087)
+	INCBIN "gfx/spinner_arrow.2bpp"
+
+RocketHideout2TextPointers: ; 450c7 (11:50c7)
+	dw RocketHideout2Text1
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+RocketHideout2TrainerHeaders: ; 450d1 (11:50d1)
+RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d817 ; flag's byte
+	dw RocketHideout2BattleText2 ; 0x50e8 TextBeforeBattle
+	dw RocketHideout2AfterBattleTxt2 ; 0x50f2 TextAfterBattle
+	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
+	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
+
+	db $ff
+
+RocketHideout2Text1: ; 450de (11:50de)
+	db $08 ; asm
+	ld hl, RocketHideout2TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout2BattleText2: ; 450e8 (11:50e8)
+	TX_FAR _RocketHideout2BattleText2
+	db "@"
+
+RocketHideout2EndBattleText2: ; 450ed (11:50ed)
+	TX_FAR _RocketHideout2EndBattleText2
+	db "@"
+
+RocketHideout2AfterBattleTxt2: ; 450f2 (11:50f2)
+	TX_FAR _RocketHideout2AfterBattleTxt2
+	db "@"
--- /dev/null
+++ b/scripts/rockethideout3.asm
@@ -1,0 +1,211 @@
+RocketHideout3Script: ; 45225 (11:5225)
+	call EnableAutoTextBoxDrawing
+	ld hl, RocketHideout3TrainerHeaders
+	ld de, RocketHideout3ScriptPointers
+	ld a, [W_ROCKETHIDEOUT3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKETHIDEOUT3CURSCRIPT], a
+	ret
+
+RocketHideout3ScriptPointers: ; 45238 (11:5238)
+	dw RocketHideout3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout3Script3
+
+RocketHideout3Script0: ; 45240 (11:5240)
+	ld a, [W_YCOORD]
+	ld b, a
+	ld a, [W_XCOORD]
+	ld c, a
+	ld hl, RocketHideout3ArrowTilePlayerMovement
+	call Func_3442
+	cp $ff
+	jp z, CheckFightingMapTrainers
+	ld hl, $d736
+	set 7, [hl]
+	call Func_3486
+	ld a, (SFX_02_52 - SFX_Headers_02) / 3
+	call PlaySound
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+;format:
+;db y,x
+;dw pointer to movement
+RocketHideout3ArrowTilePlayerMovement: ; 4526b (11:526b)
+	db $d,$a
+	dw RocketHideout3ArrowMovement6
+	db $13,$a
+	dw RocketHideout3ArrowMovement1
+	db $12,$b
+	dw RocketHideout3ArrowMovement2
+	db $b,$c
+	dw RocketHideout3ArrowMovement3
+	db $11,$c
+	dw RocketHideout3ArrowMovement4
+	db $14,$c
+	dw RocketHideout3ArrowMovement5
+	db $10,$d
+	dw RocketHideout3ArrowMovement6
+	db $b,$e
+	dw RocketHideout3ArrowMovement7
+	db $f,$e
+	dw RocketHideout3ArrowMovement6
+	db $11,$e
+	dw RocketHideout3ArrowMovement8
+	db $13,$e
+	dw RocketHideout3ArrowMovement9
+	db $10,$f
+	dw RocketHideout3ArrowMovement7
+	db $12,$f
+	dw RocketHideout3ArrowMovement10
+	db $d,$10
+	dw RocketHideout3ArrowMovement11
+	db $c,$11
+	dw RocketHideout3ArrowMovement10
+	db $10,$12
+	dw RocketHideout3ArrowMovement12
+	db $FF
+
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+;each list is read starting from the $FF and working backwards
+RocketHideout3ArrowMovement1: ; 452ac (11:52ac)
+	db $10,$04
+	db $40,$04
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement2: ; 452b3 (11:52b3)
+	db $80,$04
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement3: ; 452b8 (11:52b8)
+	db $20,$02
+	db $FF
+
+RocketHideout3ArrowMovement4: ; 452bb (11:52bb)
+	db $10,$04
+	db $40,$02
+	db $10,$02
+	db $FF
+
+RocketHideout3ArrowMovement5: ; 452c2 (11:52c2)
+	db $10,$04
+	db $40,$02
+	db $10,$02
+	db $40,$03
+	db $FF
+
+RocketHideout3ArrowMovement6: ; 452cb (11:52cb)
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement7: ; 452ce (11:52ce)
+	db $10,$02
+	db $FF
+
+RocketHideout3ArrowMovement8: ; 452d1 (11:52d1)
+	db $10,$04
+	db $40,$02
+	db $FF
+
+RocketHideout3ArrowMovement9: ; 452d6 (11:52d6)
+	db $10,$04
+	db $40,$04
+	db $FF
+
+RocketHideout3ArrowMovement10: ; 452db (11:52db)
+	db $80,$04
+	db $FF
+
+RocketHideout3ArrowMovement11: ; 452de (11:52de)
+	db $40,$02
+	db $FF
+
+RocketHideout3ArrowMovement12: ; 452e1 (11:52e1)
+	db $40,$01
+	db $FF
+
+RocketHideout3Script3 ; 452e4 (11:452e4)
+	ld a, [$cd38]
+	and a
+	jp nz, LoadSpinnerArrowTiles
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d736
+	res 7, [hl]
+	ld a, $0
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RocketHideout3TextPointers: ; 452fa (11:52fa)
+	dw RocketHideout3Text1
+	dw RocketHideout3Text2
+	dw Predef5CText
+	dw Predef5CText
+
+RocketHideout3TrainerHeaders: ; 45302 (11:5302)
+RocketHideout3TrainerHeader0: ; 45302 (11:5302)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d819 ; flag's byte
+	dw RocketHideout3BattleText2 ; 0x5325 TextBeforeBattle
+	dw RocketHideout3AfterBattleTxt2 ; 0x532f TextAfterBattle
+	dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
+	dw RocketHideout3EndBattleText2 ; 0x532a TextEndBattle
+
+RocketHideout3TrainerHeader2: ; 4530e (11:530e)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d819 ; flag's byte
+	dw RocketHideout3BattleTxt ; 0x533e TextBeforeBattle
+	dw RocketHideout3AfterBattleText3 ; 0x5348 TextAfterBattle
+	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
+	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
+
+	db $ff
+
+RocketHideout3Text1: ; 4531b (11:531b)
+	db $08 ; asm
+	ld hl, RocketHideout3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout3BattleText2: ; 45325 (11:5325)
+	TX_FAR _RocketHideout3BattleText2
+	db "@"
+
+RocketHideout3EndBattleText2: ; 4532a (11:532a)
+	TX_FAR _RocketHideout3EndBattleText2
+	db "@"
+
+RocketHideout3AfterBattleTxt2: ; 4532f (11:532f)
+	TX_FAR _RocketHideout3AfterBattleTxt2
+	db "@"
+
+RocketHideout3Text2: ; 45334 (11:5334)
+	db $08 ; asm
+	ld hl, RocketHideout3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout3BattleTxt: ; 4533e (11:533e)
+	TX_FAR _RocketHideout3BattleTxt
+	db "@"
+
+RocketHideout3EndBattleText3: ; 45343 (11:5343)
+	TX_FAR _RocketHideout3EndBattleText3
+	db "@"
+
+RocketHideout3AfterBattleText3: ; 45348 (11:5348)
+	TX_FAR _RocketHide3AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/rockethideout4.asm
@@ -1,0 +1,232 @@
+RocketHideout4Script: ; 4545d (11:545d)
+	call RocketHideout4Script_45473
+	call EnableAutoTextBoxDrawing
+	ld hl, RocketHideout4TrainerHeader0
+	ld de, RocketHideout4ScriptPointers
+	ld a, [W_ROCKETHIDEOUT4CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ret
+
+RocketHideout4Script_45473: ; 45473 (11:5473)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d81b]
+	bit 5, a
+	jr nz, .asm_45496
+	and $c
+	cp $c
+	jr z, .asm_4548c
+	ld a, $2d
+	jr .asm_45498
+.asm_4548c
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	ld hl, $d81b
+	set 5, [hl]
+.asm_45496
+	ld a, $e
+.asm_45498
+	ld [$d09f], a
+	ld bc, $050c
+	ld a, $17
+	jp Predef
+
+RocketHideout4Script_454a3: ; 454a3 (11:54a3)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RocketHideout4ScriptPointers: ; 454ae (11:54ae)c
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout4Script3
+
+RocketHideout4Script3: ; 454b6 (11:54b6)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, RocketHideout4Script_454a3
+	call UpdateSprites
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d81b
+	set 7, [hl]
+	ld a, $a
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	call GBFadeIn1
+	ld a, $83
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $87
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	call UpdateSprites
+	call GBFadeOut1
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d126
+	set 5, [hl]
+	ld a, $0
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RocketHideout4TextPointers: ; 45501 (11:5501)
+	dw RocketHideout4Text1
+	dw RocketHideout4Text2
+	dw RocketHideout4Text3
+	dw RocketHideout4Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw RocketHideout4Text10
+
+RocketHideout4TrainerHeaders: ; 45515 (11:5515)
+RocketHideout4TrainerHeader0: ; 45515 (11:5515)
+	db $2 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d81b ; flag's byte
+	dw RocketHideout4BattleText2 ; 0x5593 TextBeforeBattle
+	dw RocketHideout4AfterBattleText2 ; 0x559d TextAfterBattle
+	dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
+	dw RocketHideout4EndBattleText2 ; 0x5598 TextEndBattle
+
+RocketHideout4TrainerHeader2: ; 45521 (11:5521)
+	db $3 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d81b ; flag's byte
+	dw RocketHideout4BattleText3 ; 0x55ac TextBeforeBattle
+	dw RocketHideout4AfterBattleText3 ; 0x55b6 TextAfterBattle
+	dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
+	dw RocketHideout4EndBattleText3 ; 0x55b1 TextEndBattle
+
+RocketHideout4TrainerHeader3: ; 4552d (11:552d)
+	db $4 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d81b ; flag's byte
+	dw RocketHideout4BattleText4 ; 0x55c5 TextBeforeBattle
+	dw RocketHideout4AfterBattleText4 ; 0x55cf TextAfterBattle
+	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
+	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
+
+	db $ff
+
+RocketHideout4Text1: ; 4553a (11:553a)
+	db $08 ; asm
+	ld a, [$d81b]
+	bit 7, a
+	jp nz, .asm_545571
+	ld hl, RocketHideout4Text_4557a
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, RocketHideout4Text_4557f
+	ld de, RocketHideout4Text_4557f
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	xor a
+	ldh [$b4], a
+	ld a, $3
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jr .asm_209f0 ; 0x4556f
+.asm_545571
+	ld hl, RocketHideout4Text10
+	call PrintText
+.asm_209f0 ; 0x45577
+	jp TextScriptEnd
+
+RocketHideout4Text_4557a: ; 4557a (11:557a)
+	TX_FAR _RocketHideout4Text_4557a
+	db "@"
+
+RocketHideout4Text_4557f: ; 4557f (11:557f)
+	TX_FAR _RocketHideout4Text_4557f
+	db "@"
+
+RocketHideout4Text10: ; 45584 (11:5584)
+	TX_FAR _RocketHideout4Text_45584
+	db "@"
+
+RocketHideout4Text2: ; 45589 (11:5589)
+	db $08 ; asm
+	ld hl, RocketHideout4TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout4BattleText2: ; 45593 (11:5593)
+	TX_FAR _RocketHideout4BattleText2
+	db "@"
+
+RocketHideout4EndBattleText2: ; 45598 (11:5598)
+	TX_FAR _RocketHideout4EndBattleText2
+	db "@"
+
+RocketHideout4AfterBattleText2: ; 4559d (11:559d)
+	TX_FAR _RocketHide4AfterBattleText2
+	db "@"
+
+RocketHideout4Text3: ; 455a2 (11:55a2)
+	db $08 ; asm
+	ld hl, RocketHideout4TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout4BattleText3: ; 455ac (11:55ac)
+	TX_FAR _RocketHideout4BattleText3
+	db "@"
+
+RocketHideout4EndBattleText3: ; 455b1 (11:55b1)
+	TX_FAR _RocketHideout4EndBattleText3
+	db "@"
+
+RocketHideout4AfterBattleText3: ; 455b6 (11:55b6)
+	TX_FAR _RocketHide4AfterBattleText3
+	db "@"
+
+RocketHideout4Text4: ; 455bb (11:55bb)
+	db $08 ; asm
+	ld hl, RocketHideout4TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RocketHideout4BattleText4: ; 455c5 (11:55c5)
+	TX_FAR _RocketHideout4BattleText4
+	db "@"
+
+RocketHideout4EndBattleText4: ; 455ca (11:55ca)
+	TX_FAR _RocketHideout4EndBattleText4
+	db "@"
+
+RocketHideout4AfterBattleText4: ; 455cf (11:55cf)
+	db $8
+	ld hl, RocketHideout4Text_455ec ; $55ec
+	call PrintText
+	ld hl, $d81b
+	bit 6, [hl]
+	set 6, [hl]
+	jr nz, .asm_455e9 ; 0x455dd $a
+	ld a, $88
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+.asm_455e9
+	jp TextScriptEnd
+
+RocketHideout4Text_455ec: ; 455ec (11:55ec)
+	TX_FAR _RocketHideout4Text_455ec
+	db "@"
--- /dev/null
+++ b/scripts/rockethideoutelevator.asm
@@ -1,0 +1,84 @@
+RocketHideoutElevatorScript: ; 45710 (11:5710)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	push hl
+	call nz, RocketHideoutElevatorScript_4572c
+	pop hl
+	bit 7, [hl]
+	res 7, [hl]
+	call nz, RocketHideoutElevatorScript_4575f
+	xor a
+	ld [$cf0c], a
+	inc a
+	ld [$cc3c], a
+	ret
+
+RocketHideoutElevatorScript_4572c: ; 4572c (11:572c)
+	ld hl, $d3af
+	ld a, [$d73b]
+	ld b, a
+	ld a, [$d73c]
+	ld c, a
+	call RocketHideoutElevatorScript_4573a
+
+RocketHideoutElevatorScript_4573a: ; 4573a (11:573a)
+	inc hl
+	inc hl
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ret
+
+RocketHideoutElevatorScript_45741: ; 45741 (11:5741)
+	ld hl, RocketHideoutElavatorFloors ; $5754
+	call LoadItemList
+	ld hl, RocketHideoutElevatorWarpMaps ; $5759
+	ld de, $cc5b
+	ld bc, $0006
+	call CopyData
+	ret
+
+RocketHideoutElavatorFloors: ; 45754 (11:5754)
+	db $03 ; num elements in list
+	db $55, $54, $61 ; "B1F", "B2F", "B4F"
+	db $FF ; terminator
+
+RocketHideoutElevatorWarpMaps: ; 45759 (11:5759)
+; first byte is warp number
+; second byte is map number
+; These specify where the player goes after getting out of the elevator.
+	db $04, ROCKET_HIDEOUT_1
+	db $04, ROCKET_HIDEOUT_2
+	db $02, ROCKET_HIDEOUT_4
+
+RocketHideoutElevatorScript_4575f: ; 4575f (11:575f)
+	call Delay3
+	ld b, BANK(ShakeElevator)
+	ld hl, ShakeElevator
+	call Bankswitch
+	ret
+
+RocketHideoutElevatorTextPointers: ; 4576b (11:576b)
+	dw RocketHideoutElevatorText1
+
+RocketHideoutElevatorText1: ; 4576d (11:576d)
+	db $08 ; asm
+	ld b, LIFT_KEY
+	call IsItemInBag
+	jr z, .asm_8d8f0 ; 0x45773
+	call RocketHideoutElevatorScript_45741
+	ld hl, RocketHideoutElevatorWarpMaps ; $5759
+	ld a, $61
+	call Predef
+	jr .asm_46c43 ; 0x45780
+.asm_8d8f0 ; 0x45782
+	ld hl, RocketHideoutElevatorText_4578b
+	call PrintText
+.asm_46c43 ; 0x45788
+	jp TextScriptEnd
+
+RocketHideoutElevatorText_4578b: ; 4578b (11:578b)
+	TX_FAR _RocketElevatorText_4578b ; 0x82438
+	db $d, "@"
--- /dev/null
+++ b/scripts/rocktunnel1.asm
@@ -1,0 +1,214 @@
+RockTunnel1Script: ; 444dc (11:44dc)
+	call EnableAutoTextBoxDrawing
+	ld hl, RockTunnel1TrainerHeaders
+	ld de, RockTunnel1ScriptPointers
+	ld a, [W_ROCKTUNNEL1CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKTUNNEL1CURSCRIPT], a
+	ret
+
+RockTunnel1ScriptPointers: ; 444ef (11:44ef)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+RockTunnel1TextPointers: ; 444f5 (11:44f5)
+	dw RockTunnel1Text1
+	dw RockTunnel1Text2
+	dw RockTunnel1Text3
+	dw RockTunnel1Text4
+	dw RockTunnel1Text5
+	dw RockTunnel1Text6
+	dw RockTunnel1Text7
+	dw RockTunnel1Text8
+
+RockTunnel1TrainerHeaders: ; 44505 (11:4505)
+RockTunnel1TrainerHeader1: ; 44505 (11:4505)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle
+	dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle
+	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
+	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
+
+RockTunnel1TrainerHeader2: ; 44511 (11:4511)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle
+	dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle
+	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
+	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
+
+RockTunnel1TrainerHeader3: ; 4451d (11:451d)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle
+	dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle
+	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
+	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
+
+RockTunnel1TrainerHeader4: ; 44529 (11:4529)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle
+	dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle
+	dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
+	dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
+
+RockTunnel1TrainerHeader5: ; 44535 (11:4535)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle
+	dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle
+	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
+	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
+
+RockTunnel1TrainerHeader6: ; 44541 (11:4541)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle
+	dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle
+	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
+	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
+
+RockTunnel1TrainerHeader7: ; 4454d (11:454d)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText7 ; 0x45e2 TextBeforeBattle
+	dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle
+	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
+	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
+
+	db $ff
+
+RockTunnel1Text1: ; 4455a (11:455a)
+	db $8
+	ld hl, RockTunnel1TrainerHeader1 ; $4505
+	jr asm_0c916 ; 0x4455e $22
+
+RockTunnel1Text2: ; 44560 (11:4560)
+	db $8
+	ld hl, RockTunnel1TrainerHeader2 ; $4511
+	jr asm_0c916 ; 0x44564 $1c
+
+RockTunnel1Text3: ; 44566 (11:4566)
+	db $8
+	ld hl, RockTunnel1TrainerHeader3 ; $451d
+	jr asm_0c916 ; 0x4456a $16
+
+RockTunnel1Text4: ; 4456c (11:456c)
+	db $8
+	ld hl, RockTunnel1TrainerHeader4 ; $4529
+	jr asm_0c916 ; 0x44570 $10
+
+RockTunnel1Text5: ; 44572 (11:4572)
+	db $8
+	ld hl, RockTunnel1TrainerHeader5 ; $4535
+	jr asm_0c916 ; 0x44576 $a
+
+RockTunnel1Text6: ; 44578 (11:4578)
+	db $8
+	ld hl, RockTunnel1TrainerHeader6 ; $4541
+	jr asm_0c916 ; 0x4457c $4
+
+RockTunnel1Text7: ; 4457e (11:457e)
+	db $8
+	ld hl, RockTunnel1TrainerHeader7 ; $454d
+asm_0c916: ; 44582 (11:4582)
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel1BattleText1: ; 44588 (11:4588)
+	TX_FAR _RockTunnel1BattleText1
+	db "@"
+
+RockTunnel1EndBattleText1: ; 4458d (11:458d)
+	TX_FAR _RockTunnel1EndBattleText1
+	db "@"
+
+RockTunnel1AfterBattleText1: ; 44592 (11:4592)
+	TX_FAR _RockTunnel1AfterBattleText1
+	db "@"
+
+RockTunnel1BattleText2: ; 44597 (11:4597)
+	TX_FAR _RockTunnel1BattleText2
+	db "@"
+
+RockTunnel1EndBattleText2: ; 4459c (11:459c)
+	TX_FAR _RockTunnel1EndBattleText2
+	db "@"
+
+RockTunnel1AfterBattleText2: ; 445a1 (11:45a1)
+	TX_FAR _RockTunnel1AfterBattleText2
+	db "@"
+
+RockTunnel1BattleText3: ; 445a6 (11:45a6)
+	TX_FAR _RockTunnel1BattleText3
+	db "@"
+
+RockTunnel1EndBattleText3: ; 445ab (11:45ab)
+	TX_FAR _RockTunnel1EndBattleText3
+	db "@"
+
+RockTunnel1AfterBattleText3: ; 445b0 (11:45b0)
+	TX_FAR _RockTunnel1AfterBattleText3
+	db "@"
+
+RockTunnel1BattleText4: ; 445b5 (11:45b5)
+	TX_FAR _RockTunnel1BattleText4
+	db "@"
+
+RockTunnel1EndBattleText4: ; 445ba (11:45ba)
+	TX_FAR _RockTunnel1EndBattleText4
+	db "@"
+
+RockTunnel1AfterBattleText4: ; 445bf (11:45bf)
+	TX_FAR _RockTunnel1AfterBattleText4
+	db "@"
+
+RockTunnel1BattleText5: ; 445c4 (11:45c4)
+	TX_FAR _RockTunnel1BattleText5
+	db "@"
+
+RockTunnel1EndBattleText5: ; 445c9 (11:45c9)
+	TX_FAR _RockTunnel1EndBattleText5
+	db "@"
+
+RockTunnel1AfterBattleText5: ; 445ce (11:45ce)
+	TX_FAR _RockTunnel1AfterBattleText5
+	db "@"
+
+RockTunnel1BattleText6: ; 445d3 (11:45d3)
+	TX_FAR _RockTunnel1BattleText6
+	db "@"
+
+RockTunnel1EndBattleText6: ; 445d8 (11:45d8)
+	TX_FAR _RockTunnel1EndBattleText6
+	db "@"
+
+RockTunnel1AfterBattleText6: ; 445dd (11:45dd)
+	TX_FAR _RockTunnel1AfterBattleText6
+	db "@"
+
+RockTunnel1BattleText7: ; 445e2 (11:45e2)
+	TX_FAR _RockTunnel1BattleText7
+	db "@"
+
+RockTunnel1EndBattleText7: ; 445e7 (11:45e7)
+	TX_FAR _RockTunnel1EndBattleText7
+	db "@"
+
+RockTunnel1AfterBattleText7: ; 445ec (11:45ec)
+	TX_FAR _RockTunnel1AfterBattleText7
+	db "@"
+
+RockTunnel1Text8: ; 445f1 (11:45f1)
+	TX_FAR _RockTunnel1Text8
+	db "@"
--- /dev/null
+++ b/scripts/rocktunnel2.asm
@@ -1,0 +1,242 @@
+RockTunnel2Script: ; 45feb (11:5feb)
+	call EnableAutoTextBoxDrawing
+	ld hl, RockTunnel2TrainerHeaders
+	ld de, RockTunnel2ScriptPointers
+	ld a, [W_ROCKTUNNEL2CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROCKTUNNEL2CURSCRIPT], a
+	ret
+
+RockTunnel2ScriptPointers: ; 45ffe (11:5ffe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+RockTunnel2TextPointers: ; 46004 (11:6004)
+	dw RockTunnel2Text1
+	dw RockTunnel2Text2
+	dw RockTunnel2Text3
+	dw RockTunnel2Text4
+	dw RockTunnel2Text5
+	dw RockTunnel2Text6
+	dw RockTunnel2Text7
+	dw RockTunnel2Text8
+
+RockTunnel2TrainerHeaders: ; 46014 (11:6014)
+RockTunnel2TrainerHeader0: ; 46014 (11:6014)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText2 ; 0x60c5 TextBeforeBattle
+	dw RockTunnel2AfterBattleText2 ; 0x60cf TextAfterBattle
+	dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
+	dw RockTunnel2EndBattleText2 ; 0x60ca TextEndBattle
+
+RockTunnel2TrainerHeader2: ; 46020 (11:6020)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText3 ; 0x60d4 TextBeforeBattle
+	dw RockTunnel2AfterBattleText3 ; 0x60de TextAfterBattle
+	dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
+	dw RockTunnel2EndBattleText3 ; 0x60d9 TextEndBattle
+
+RockTunnel2TrainerHeader3: ; 4602c (11:602c)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText4 ; 0x60e3 TextBeforeBattle
+	dw RockTunnel2AfterBattleText4 ; 0x60ed TextAfterBattle
+	dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
+	dw RockTunnel2EndBattleText4 ; 0x60e8 TextEndBattle
+
+RockTunnel2TrainerHeader4: ; 46038 (11:6038)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText5 ; 0x60f2 TextBeforeBattle
+	dw RockTunnel2AfterBattleText5 ; 0x60fc TextAfterBattle
+	dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
+	dw RockTunnel2EndBattleText5 ; 0x60f7 TextEndBattle
+
+RockTunnel2TrainerHeader5: ; 46044 (11:6044)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText6 ; 0x6101 TextBeforeBattle
+	dw RockTunnel2AfterBattleText6 ; 0x610b TextAfterBattle
+	dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
+	dw RockTunnel2EndBattleText6 ; 0x6106 TextEndBattle
+
+RockTunnel2TrainerHeader6: ; 46050 (11:6050)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText7 ; 0x6110 TextBeforeBattle
+	dw RockTunnel2AfterBattleText7 ; 0x611a TextAfterBattle
+	dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
+	dw RockTunnel2EndBattleText7 ; 0x6115 TextEndBattle
+
+RockTunnel2TrainerHeader7: ; 4605c (11:605c)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText8 ; 0x611f TextBeforeBattle
+	dw RockTunnel2AfterBattleText8 ; 0x6129 TextAfterBattle
+	dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
+	dw RockTunnel2EndBattleText8 ; 0x6124 TextEndBattle
+
+RockTunnel2TrainerHeader8: ; 46068 (11:6068)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d87d ; flag's byte
+	dw RockTunnel2BattleText9 ; 0x612e TextBeforeBattle
+	dw RockTunnel2AfterBattleText9 ; 0x6138 TextAfterBattle
+	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
+	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
+
+	db $ff
+
+RockTunnel2Text1: ; 46075 (11:6075)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text2: ; 4607f (11:607f)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text3: ; 46089 (11:6089)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text4: ; 46093 (11:6093)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text5: ; 4609d (11:609d)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text6: ; 460a7 (11:60a7)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text7: ; 460b1 (11:60b1)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2Text8: ; 460bb (11:60bb)
+	db $08 ; asm
+	ld hl, RockTunnel2TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+RockTunnel2BattleText2: ; 460c5 (11:60c5)
+	TX_FAR _RockTunnel2BattleText2
+	db "@"
+
+RockTunnel2EndBattleText2: ; 460ca (11:60ca)
+	TX_FAR _RockTunnel2EndBattleText2
+	db "@"
+
+RockTunnel2AfterBattleText2: ; 460cf (11:60cf)
+	TX_FAR _RockTunnel2AfterBattleText2
+	db "@"
+
+RockTunnel2BattleText3: ; 460d4 (11:60d4)
+	TX_FAR _RockTunnel2BattleText3
+	db "@"
+
+RockTunnel2EndBattleText3: ; 460d9 (11:60d9)
+	TX_FAR _RockTunnel2EndBattleText3
+	db "@"
+
+RockTunnel2AfterBattleText3: ; 460de (11:60de)
+	TX_FAR _RockTunnel2AfterBattleText3
+	db "@"
+
+RockTunnel2BattleText4: ; 460e3 (11:60e3)
+	TX_FAR _RockTunnel2BattleText4
+	db "@"
+
+RockTunnel2EndBattleText4: ; 460e8 (11:60e8)
+	TX_FAR _RockTunnel2EndBattleText4
+	db "@"
+
+RockTunnel2AfterBattleText4: ; 460ed (11:60ed)
+	TX_FAR _RockTunnel2AfterBattleText4
+	db "@"
+
+RockTunnel2BattleText5: ; 460f2 (11:60f2)
+	TX_FAR _RockTunnel2BattleText5
+	db "@"
+
+RockTunnel2EndBattleText5: ; 460f7 (11:60f7)
+	TX_FAR _RockTunnel2EndBattleText5
+	db "@"
+
+RockTunnel2AfterBattleText5: ; 460fc (11:60fc)
+	TX_FAR _RockTunnel2AfterBattleText5
+	db "@"
+
+RockTunnel2BattleText6: ; 46101 (11:6101)
+	TX_FAR _RockTunnel2BattleText6
+	db "@"
+
+RockTunnel2EndBattleText6: ; 46106 (11:6106)
+	TX_FAR _RockTunnel2EndBattleText6
+	db "@"
+
+RockTunnel2AfterBattleText6: ; 4610b (11:610b)
+	TX_FAR _RockTunnel2AfterBattleText6
+	db "@"
+
+RockTunnel2BattleText7: ; 46110 (11:6110)
+	TX_FAR _RockTunnel2BattleText7
+	db "@"
+
+RockTunnel2EndBattleText7: ; 46115 (11:6115)
+	TX_FAR _RockTunnel2EndBattleText7
+	db "@"
+
+RockTunnel2AfterBattleText7: ; 4611a (11:611a)
+	TX_FAR _RockTunnel2AfterBattleText7
+	db "@"
+
+RockTunnel2BattleText8: ; 4611f (11:611f)
+	TX_FAR _RockTunnel2BattleText8
+	db "@"
+
+RockTunnel2EndBattleText8: ; 46124 (11:6124)
+	TX_FAR _RockTunnel2EndBattleText8
+	db "@"
+
+RockTunnel2AfterBattleText8: ; 46129 (11:6129)
+	TX_FAR _RockTunnel2AfterBattleText8
+	db "@"
+
+RockTunnel2BattleText9: ; 4612e (11:612e)
+	TX_FAR _RockTunnel2BattleText9
+	db "@"
+
+RockTunnel2EndBattleText9: ; 46133 (11:6133)
+	TX_FAR _RockTunnel2EndBattleText9
+	db "@"
+
+RockTunnel2AfterBattleText9: ; 46138 (11:6138)
+	TX_FAR _RockTunnel2AfterBattleText9
+	db "@"
--- /dev/null
+++ b/scripts/rocktunnelpokecenter.asm
@@ -1,0 +1,23 @@
+RockTunnelPokecenterScript: ; 493ba (12:53ba)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+RockTunnelPokecenterTextPointers: ; 493c0 (12:53c0)
+	dw RockTunnelPokecenterText1
+	dw RockTunnelPokecenterText2
+	dw RockTunnelPokecenterText3
+	dw RockTunnelPokecenterText4
+
+RockTunnelPokecenterText1: ; 493c8 (12:53c8)
+	db $ff
+
+RockTunnelPokecenterText2: ; 493c9 (12:53c9)
+	TX_FAR _RockTunnelPokecenterText1
+	db "@"
+
+RockTunnelPokecenterText3: ; 493ce (12:53ce)
+	TX_FAR _RockTunnelPokecenterText3
+	db "@"
+
+RockTunnelPokecenterText4: ; 493d3 (12:53d3)
+	db $f6
--- /dev/null
+++ b/scripts/route1.asm
@@ -1,0 +1,53 @@
+Route1Script: ; 1caaf (7:4aaf)
+	jp EnableAutoTextBoxDrawing
+
+Route1TextPointers: ; 1cab2 (7:4ab2)
+	dw Route1Text1
+	dw Route1Text2
+	dw Route1Text3
+
+Route1Text1: ; 1cab8 (7:4ab8)
+	db $08 ; asm
+	ld hl, $d7bf
+	bit 0, [hl]
+	set 0, [hl]
+	jr nz, .asm_02840 ; 0x1cac0
+	ld hl, Route1ViridianMartSampleText
+	call PrintText
+	ld bc, (POTION << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, Route1Text_1cae8 ; $4ae8
+	jr .asm_46d43 ; 0x1cad3
+.BagFull
+	ld hl, Route1Text_1caf3 ; $4af3
+	jr .asm_46d43 ; 0x1cad8
+.asm_02840 ; 0x1cada
+	ld hl, Route1Text_1caee ; $4aee
+.asm_46d43 ; 0x1cadd
+	call PrintText
+	jp TextScriptEnd
+
+Route1ViridianMartSampleText: ; 1cae3 (7:4ae3)
+	TX_FAR _Route1ViridianMartSampleText
+	db "@"
+
+Route1Text_1cae8: ; 1cae8 (7:4ae8)
+	TX_FAR _Route1Text_1cae8
+	db $0b,"@"
+
+Route1Text_1caee: ; 1caee (7:4aee)
+	TX_FAR _Route1Text_1caee
+	db "@"
+
+Route1Text_1caf3: ; 1caf3 (7:4af3)
+	TX_FAR _Route1Text_1caf3
+	db "@"
+
+Route1Text2: ; 1caf8 (7:4af8)
+	TX_FAR _Route1Text2
+	db "@"
+
+Route1Text3: ; 1cafd (7:4afd)
+	TX_FAR _Route1Text3
+	db "@"
--- /dev/null
+++ b/scripts/route10.asm
@@ -1,0 +1,199 @@
+Route10Script: ; 59336 (16:5336)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route10TrainerHeaders
+	ld de, Route10ScriptPointers
+	ld a, [W_ROUTE10CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE10CURSCRIPT], a
+	ret
+
+Route10ScriptPointers: ; 59349 (16:5349)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route10TextPointers: ; 5934f (16:534f)
+	dw Route10Text1
+	dw Route10Text2
+	dw Route10Text3
+	dw Route10Text4
+	dw Route10Text5
+	dw Route10Text6
+	dw Route10Text7
+	dw PokeCenterSignText
+	dw Route10Text9
+	dw Route10Text10
+
+Route10TrainerHeaders: ; 59363 (16:5363)
+Route10TrainerHeader0: ; 59363 (16:5363)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText1 ; 0x53b6 TextBeforeBattle
+	dw Route10AfterBattleText1 ; 0x53c0 TextAfterBattle
+	dw Route10EndBattleText1 ; 0x53bb TextEndBattle
+	dw Route10EndBattleText1 ; 0x53bb TextEndBattle
+
+Route10TrainerHeader1: ; 5936f (16:536f)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText2 ; 0x53cf TextBeforeBattle
+	dw Route10AfterBattleText2 ; 0x53d9 TextAfterBattle
+	dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
+	dw Route10EndBattleText2 ; 0x53d4 TextEndBattle
+
+Route10TrainerHeader2: ; 5937b (16:537b)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText3 ; 0x53e8 TextBeforeBattle
+	dw Route10AfterBattleText3 ; 0x53f2 TextAfterBattle
+	dw Route10EndBattleText3 ; 0x53ed TextEndBattle
+	dw Route10EndBattleText3 ; 0x53ed TextEndBattle
+
+Route10TrainerHeader3: ; 59387 (16:5387)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText4 ; 0x5401 TextBeforeBattle
+	dw Route10AfterBattleText4 ; 0x540b TextAfterBattle
+	dw Route10EndBattleText4 ; 0x5406 TextEndBattle
+	dw Route10EndBattleText4 ; 0x5406 TextEndBattle
+
+Route10TrainerHeader4: ; 59393 (16:5393)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText5 ; 0x541a TextBeforeBattle
+	dw Route10AfterBattleText5 ; 0x5424 TextAfterBattle
+	dw Route10EndBattleText5 ; 0x541f TextEndBattle
+	dw Route10EndBattleText5 ; 0x541f TextEndBattle
+
+Route10TrainerHeader5: ; 5939f (16:539f)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d1 ; flag's byte
+	dw Route10BattleText6 ; 0x5433 TextBeforeBattle
+	dw Route10AfterBattleText6 ; 0x543d TextAfterBattle
+	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
+	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
+
+	db $ff
+
+Route10Text1: ; 593ac (16:53ac)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText1: ; 593b6 (16:53b6)
+	TX_FAR _Route10BattleText1
+	db "@"
+
+Route10EndBattleText1: ; 593bb (16:53bb)
+	TX_FAR _Route10EndBattleText1
+	db "@"
+
+Route10AfterBattleText1: ; 593c0 (16:53c0)
+	TX_FAR _Route10AfterBattleText1
+	db "@"
+
+Route10Text2: ; 593c5 (16:53c5)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText2: ; 593cf (16:53cf)
+	TX_FAR _Route10BattleText2
+	db "@"
+
+Route10EndBattleText2: ; 593d4 (16:53d4)
+	TX_FAR _Route10EndBattleText2
+	db "@"
+
+Route10AfterBattleText2: ; 593d9 (16:53d9)
+	TX_FAR _Route10AfterBattleText2
+	db "@"
+
+Route10Text3: ; 593de (16:53de)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText3: ; 593e8 (16:53e8)
+	TX_FAR _Route10BattleText3
+	db "@"
+
+Route10EndBattleText3: ; 593ed (16:53ed)
+	TX_FAR _Route10EndBattleText3
+	db "@"
+
+Route10AfterBattleText3: ; 593f2 (16:53f2)
+	TX_FAR _Route10AfterBattleText3
+	db "@"
+
+Route10Text4: ; 593f7 (16:53f7)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText4: ; 59401 (16:5401)
+	TX_FAR _Route10BattleText4
+	db "@"
+
+Route10EndBattleText4: ; 59406 (16:5406)
+	TX_FAR _Route10EndBattleText4
+	db "@"
+
+Route10AfterBattleText4: ; 5940b (16:540b)
+	TX_FAR _Route10AfterBattleText4
+	db "@"
+
+Route10Text5: ; 59410 (16:5410)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText5: ; 5941a (16:541a)
+	TX_FAR _Route10BattleText5
+	db "@"
+
+Route10EndBattleText5: ; 5941f (16:541f)
+	TX_FAR _Route10EndBattleText5
+	db "@"
+
+Route10AfterBattleText5: ; 59424 (16:5424)
+	TX_FAR _Route10AfterBattleText5
+	db "@"
+
+Route10Text6: ; 59429 (16:5429)
+	db $08 ; asm
+	ld hl, Route10TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route10BattleText6: ; 59433 (16:5433)
+	TX_FAR _Route10BattleText6
+	db "@"
+
+Route10EndBattleText6: ; 59438 (16:5438)
+	TX_FAR _Route10EndBattleText6
+	db "@"
+
+Route10AfterBattleText6: ; 5943d (16:543d)
+	TX_FAR _Route10AfterBattleText6
+	db "@"
+
+Route10Text9: ; 59442 (16:5442)
+Route10Text7: ; 59442 (16:5442)
+	TX_FAR _Route10Text7 ; _Route10Text9
+	db "@"
+
+Route10Text10: ; 59447 (16:5447)
+	TX_FAR _Route10Text10
+	db "@"
--- /dev/null
+++ b/scripts/route11.asm
@@ -1,0 +1,303 @@
+Route11Script: ; 5944c (16:544c)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route11TrainerHeaders
+	ld de, Route11ScriptPointers
+	ld a, [W_ROUTE11CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE11CURSCRIPT], a
+	ret
+
+Route11ScriptPointers: ; 5945f (16:545f)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route11TextPointers: ; 59465 (16:5465)
+	dw Route11Text1
+	dw Route11Text2
+	dw Route11Text3
+	dw Route11Text4
+	dw Route11Text5
+	dw Route11Text6
+	dw Route11Text7
+	dw Route11Text8
+	dw Route11Text9
+	dw Route11Text10
+	dw Route11Text11
+
+Route11TrainerHeaders: ; 5947b (16:547b)
+Route11TrainerHeader0: ; 5947b (16:547b)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText1 ; 0x54fe TextBeforeBattle
+	dw Route11AfterBattleText1 ; 0x5508 TextAfterBattle
+	dw Route11EndBattleText1 ; 0x5503 TextEndBattle
+	dw Route11EndBattleText1 ; 0x5503 TextEndBattle
+
+Route11TrainerHeader1: ; 59487 (16:5487)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText2 ; 0x5517 TextBeforeBattle
+	dw Route11AfterBattleText2 ; 0x5521 TextAfterBattle
+	dw Route11EndBattleText2 ; 0x551c TextEndBattle
+	dw Route11EndBattleText2 ; 0x551c TextEndBattle
+
+Route11TrainerHeader2: ; 59493 (16:5493)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText3 ; 0x5530 TextBeforeBattle
+	dw Route11AfterBattleText3 ; 0x553a TextAfterBattle
+	dw Route11EndBattleText3 ; 0x5535 TextEndBattle
+	dw Route11EndBattleText3 ; 0x5535 TextEndBattle
+
+Route11TrainerHeader3: ; 5949f (16:549f)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText4 ; 0x5549 TextBeforeBattle
+	dw Route11AfterBattleText4 ; 0x5553 TextAfterBattle
+	dw Route11EndBattleText4 ; 0x554e TextEndBattle
+	dw Route11EndBattleText4 ; 0x554e TextEndBattle
+
+Route11TrainerHeader4: ; 594ab (16:54ab)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText5 ; 0x5562 TextBeforeBattle
+	dw Route11AfterBattleText5 ; 0x556c TextAfterBattle
+	dw Route11EndBattleText5 ; 0x5567 TextEndBattle
+	dw Route11EndBattleText5 ; 0x5567 TextEndBattle
+
+Route11TrainerHeader5: ; 594b7 (16:54b7)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText6 ; 0x557b TextBeforeBattle
+	dw Route11AfterBattleText6 ; 0x5585 TextAfterBattle
+	dw Route11EndBattleText6 ; 0x5580 TextEndBattle
+	dw Route11EndBattleText6 ; 0x5580 TextEndBattle
+
+Route11TrainerHeader6: ; 594c3 (16:54c3)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText7 ; 0x5594 TextBeforeBattle
+	dw Route11AfterBattleText7 ; 0x559e TextAfterBattle
+	dw Route11EndBattleText7 ; 0x5599 TextEndBattle
+	dw Route11EndBattleText7 ; 0x5599 TextEndBattle
+
+Route11TrainerHeader7: ; 594cf (16:54cf)
+	db $8 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText8 ; 0x55ad TextBeforeBattle
+	dw Route11AfterBattleText8 ; 0x55b7 TextAfterBattle
+	dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
+	dw Route11EndBattleText8 ; 0x55b2 TextEndBattle
+
+Route11TrainerHeader8: ; 594db (16:54db)
+	db $9 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText9 ; 0x55c6 TextBeforeBattle
+	dw Route11AfterBattleText9 ; 0x55d0 TextAfterBattle
+	dw Route11EndBattleText9 ; 0x55cb TextEndBattle
+	dw Route11EndBattleText9 ; 0x55cb TextEndBattle
+
+Route11TrainerHeader9: ; 594e7 (16:54e7)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d5 ; flag's byte
+	dw Route11BattleText10 ; 0x55df TextBeforeBattle
+	dw Route11AfterBattleText10 ; 0x55e9 TextAfterBattle
+	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
+	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
+
+	db $ff
+
+Route11Text1: ; 594f4 (16:54f4)
+	db $8
+	ld hl, Route11TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText1: ; 594fe (16:54fe)
+	TX_FAR _Route11BattleText1
+	db "@"
+
+Route11EndBattleText1: ; 59503 (16:5503)
+	TX_FAR _Route11EndBattleText1
+	db "@"
+
+Route11AfterBattleText1: ; 59508 (16:5508)
+	TX_FAR _Route11AfterBattleText1
+	db "@"
+
+Route11Text2: ; 5950d (16:550d)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText2: ; 59517 (16:5517)
+	TX_FAR _Route11BattleText2
+	db "@"
+
+Route11EndBattleText2: ; 5951c (16:551c)
+	TX_FAR _Route11EndBattleText2
+	db "@"
+
+Route11AfterBattleText2: ; 59521 (16:5521)
+	TX_FAR _Route11AfterBattleText2
+	db "@"
+
+Route11Text3: ; 59526 (16:5526)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText3: ; 59530 (16:5530)
+	TX_FAR _Route11BattleText3
+	db "@"
+
+Route11EndBattleText3: ; 59535 (16:5535)
+	TX_FAR _Route11EndBattleText3
+	db "@"
+
+Route11AfterBattleText3: ; 5953a (16:553a)
+	TX_FAR _Route11AfterBattleText3
+	db "@"
+
+Route11Text4: ; 5953f (16:553f)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText4: ; 59549 (16:5549)
+	TX_FAR _Route11BattleText4
+	db "@"
+
+Route11EndBattleText4: ; 5954e (16:554e)
+	TX_FAR _Route11EndBattleText4
+	db "@"
+
+Route11AfterBattleText4: ; 59553 (16:5553)
+	TX_FAR _Route11AfterBattleText4
+	db "@"
+
+Route11Text5: ; 59558 (16:5558)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText5: ; 59562 (16:5562)
+	TX_FAR _Route11BattleText5
+	db "@"
+
+Route11EndBattleText5: ; 59567 (16:5567)
+	TX_FAR _Route11EndBattleText5
+	db "@"
+
+Route11AfterBattleText5: ; 5956c (16:556c)
+	TX_FAR _Route11AfterBattleText5
+	db "@"
+
+Route11Text6: ; 59571 (16:5571)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText6: ; 5957b (16:557b)
+	TX_FAR _Route11BattleText6
+	db "@"
+
+Route11EndBattleText6: ; 59580 (16:5580)
+	TX_FAR _Route11EndBattleText6
+	db "@"
+
+Route11AfterBattleText6: ; 59585 (16:5585)
+	TX_FAR _Route11AfterBattleText6
+	db "@"
+
+Route11Text7: ; 5958a (16:558a)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText7: ; 59594 (16:5594)
+	TX_FAR _Route11BattleText7
+	db "@"
+
+Route11EndBattleText7: ; 59599 (16:5599)
+	TX_FAR _Route11EndBattleText7
+	db "@"
+
+Route11AfterBattleText7: ; 5959e (16:559e)
+	TX_FAR _Route11AfterBattleText7
+	db "@"
+
+Route11Text8: ; 595a3 (16:55a3)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText8: ; 595ad (16:55ad)
+	TX_FAR _Route11BattleText8
+	db "@"
+
+Route11EndBattleText8: ; 595b2 (16:55b2)
+	TX_FAR _Route11EndBattleText8
+	db "@"
+
+Route11AfterBattleText8: ; 595b7 (16:55b7)
+	TX_FAR _Route11AfterBattleText8
+	db "@"
+
+Route11Text9: ; 595bc (16:55bc)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText9: ; 595c6 (16:55c6)
+	TX_FAR _Route11BattleText9
+	db "@"
+
+Route11EndBattleText9: ; 595cb (16:55cb)
+	TX_FAR _Route11EndBattleText9
+	db "@"
+
+Route11AfterBattleText9: ; 595d0 (16:55d0)
+	TX_FAR _Route11AfterBattleText9
+	db "@"
+
+Route11Text10: ; 595d5 (16:55d5)
+	db $08 ; asm
+	ld hl, Route11TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route11BattleText10: ; 595df (16:55df)
+	TX_FAR _Route11BattleText10
+	db "@"
+
+Route11EndBattleText10: ; 595e4 (16:55e4)
+	TX_FAR _Route11EndBattleText10
+	db "@"
+
+Route11AfterBattleText10: ; 595e9 (16:55e9)
+	TX_FAR _Route11AfterBattleText10
+	db "@"
+
+Route11Text11: ; 595ee (16:55ee)
+	TX_FAR _Route11Text11
+	db "@"
--- /dev/null
+++ b/scripts/route11gate.asm
@@ -1,0 +1,9 @@
+Route11GateScript: ; 4940c (12:540c)
+	jp EnableAutoTextBoxDrawing
+
+Route11GateTextPointers: ; 4940f (12:540f)
+	dw Route11GateText1
+
+Route11GateText1: ; 49411 (12:5411)
+	TX_FAR _Route11GateText1
+	db "@"
--- /dev/null
+++ b/scripts/route11gateupstairs.asm
@@ -1,0 +1,81 @@
+Route11GateUpstairsScript: ; 49454 (12:5454)
+	jp DisableAutoTextBoxDrawing
+
+Route11GateUpstairsTextPointers: ; 49457 (12:5457)
+	dw Route11GateUpstairsText1
+	dw Route11GateUpstairsText2
+	dw Route11GateUpstairsText3
+	dw Route11GateUpstairsText4
+
+Route11GateUpstairsText1: ; 4945f (12:545f)
+	db $08 ; asm
+	xor a
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+asm_49469: ; 49469 (12:5469)
+	jp TextScriptEnd
+
+Route11GateUpstairsText2: ; 4946c (12:546c)
+	db $8
+	ld a, [$d7d6]
+	add a
+	jr c, .asm_4949b ; 0x49471 $28
+	ld a, $1e
+	ld [$ffdb], a
+	ld a, $47
+	ld [$ffdc], a
+	ld [$d11e], a
+	call GetItemName
+	ld h, d
+	ld l, e
+	ld de, $cc5b
+	ld bc, $000d
+	call CopyData
+	ld a, $62
+	call Predef
+	ld a, [$ffdb]
+	dec a
+	jr nz, .asm_494a1 ; 0x49494 $b
+	ld hl, $d7d6
+	set 7, [hl]
+.asm_4949b
+	ld hl, Route11GateUpstairsText_494a3
+	call PrintText
+.asm_494a1
+	jr asm_49469 ; 0x494a1 $c6
+
+Route11GateUpstairsText_494a3: ; 494a3 (12:54a3)
+	TX_FAR _Route11GateUpstairsText_494a3
+	db "@"
+
+Route11GateUpstairsText3: ; 494a8 (12:54a8)
+	db $08 ; asm
+	ld a, [$c109]
+	cp $4
+	jp nz, Route12GateUpstairsScript_495c9
+	ld a, [$d7d8]
+	bit 7, a ; fought snorlax?
+	ld hl, BinocularsSnorlaxText
+	jr z, .print
+	ld hl, BinocularsNoSnorlaxText
+.print
+	call PrintText
+	jp TextScriptEnd
+
+BinocularsSnorlaxText:
+	TX_FAR _BinocularsSnorlaxText
+	db "@"
+
+BinocularsNoSnorlaxText:
+	TX_FAR _BinocularsNoSnorlaxText
+	db "@"
+
+Route11GateUpstairsText4: ; 494ce (12:54ce)
+	db $8
+	ld hl, Route11GateUpstairsText_494d5 ; $54d5
+	jp Route12GateUpstairsScript_495c9
+
+Route11GateUpstairsText_494d5: ; 494d5 (12:54d5)
+	TX_FAR _Route11GateUpstairsText_494d5
+	db "@"
--- /dev/null
+++ b/scripts/route12.asm
@@ -1,0 +1,292 @@
+Route12Script: ; 595f3 (16:55f3)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route12TrainerHeaders
+	ld de, Route12ScriptPointers
+	ld a, [W_ROUTE12CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE12CURSCRIPT], a
+	ret
+
+Route12Script_59606: ; 59606 (16:5606)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE12CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route12ScriptPointers: ; 59611 (16:5611)
+	dw Route12Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route12Script3
+
+Route12Script0: ; 59619 (16:5619)
+	ld hl, $d7d8
+	bit 7, [hl]
+	jp nz, CheckFightingMapTrainers
+	bit 6, [hl]
+	res 6, [hl]
+	jp z, CheckFightingMapTrainers
+	ld a, $d
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, SNORLAX
+	ld [W_CUROPPONENT], a ; $d059
+	ld a, 30
+	ld [W_CURENEMYLVL], a ; $d127
+	ld a, $1d
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $3
+	ld [W_ROUTE12CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route12Script3: ; 5964c (16:564c)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jr z, Route12Script_59606
+	call UpdateSprites
+	ld a, [$cf0b]
+	cp $2
+	jr z, .asm_59664
+	ld a, $e
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_59664
+	ld hl, $d7d8
+	set 7, [hl]
+	call Delay3
+	ld a, $0
+	ld [W_ROUTE12CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route12TextPointers: ; 59675 (16:5675)
+	dw Route12Text1
+	dw Route12Text2
+	dw Route12Text3
+	dw Route12Text4
+	dw Route12Text5
+	dw Route12Text6
+	dw Route12Text7
+	dw Route12Text8
+	dw Predef5CText
+	dw Predef5CText
+	dw Route12Text11
+	dw Route12Text12
+	dw Route12Text13
+	dw Route12Text14
+
+Route12TrainerHeaders: ; 59691 (16:5691)
+Route12TrainerHeader0: ; 59691 (16:5691)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText1 ; 0x56ff TextBeforeBattle
+	dw Route12AfterBattleText1 ; 0x5709 TextAfterBattle
+	dw Route12EndBattleText1 ; 0x5704 TextEndBattle
+	dw Route12EndBattleText1 ; 0x5704 TextEndBattle
+
+Route12TrainerHeader1: ; 5969d (16:569d)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText2 ; 0x5718 TextBeforeBattle
+	dw Route12AfterBattleText2 ; 0x5722 TextAfterBattle
+	dw Route12EndBattleText2 ; 0x571d TextEndBattle
+	dw Route12EndBattleText2 ; 0x571d TextEndBattle
+
+Route12TrainerHeader2: ; 596a9 (16:56a9)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText3 ; 0x5731 TextBeforeBattle
+	dw Route12AfterBattleText3 ; 0x573b TextAfterBattle
+	dw Route12EndBattleText3 ; 0x5736 TextEndBattle
+	dw Route12EndBattleText3 ; 0x5736 TextEndBattle
+
+Route12TrainerHeader3: ; 596b5 (16:56b5)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText4 ; 0x574a TextBeforeBattle
+	dw Route12AfterBattleText4 ; 0x5754 TextAfterBattle
+	dw Route12EndBattleText4 ; 0x574f TextEndBattle
+	dw Route12EndBattleText4 ; 0x574f TextEndBattle
+
+Route12TrainerHeader4: ; 596c1 (16:56c1)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText5 ; 0x5763 TextBeforeBattle
+	dw Route12AfterBattleText5 ; 0x576d TextAfterBattle
+	dw Route12EndBattleText5 ; 0x5768 TextEndBattle
+	dw Route12EndBattleText5 ; 0x5768 TextEndBattle
+
+Route12TrainerHeader5: ; 596cd (16:56cd)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText6 ; 0x577c TextBeforeBattle
+	dw Route12AfterBattleText6 ; 0x5786 TextAfterBattle
+	dw Route12EndBattleText6 ; 0x5781 TextEndBattle
+	dw Route12EndBattleText6 ; 0x5781 TextEndBattle
+
+Route12TrainerHeader6: ; 596d9 (16:56d9)
+	db $8 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7d7 ; flag's byte
+	dw Route12BattleText7 ; 0x5795 TextBeforeBattle
+	dw Route12AfterBattleText7 ; 0x579f TextAfterBattle
+	dw Route12EndBattleText7 ; 0x579a TextEndBattle
+	dw Route12EndBattleText7 ; 0x579a TextEndBattle
+
+	db $ff
+
+Route12Text1: ; 596e6 (16:56e6)
+	TX_FAR _Route12Text1
+	db "@"
+
+Route12Text13: ; 596eb (16:56eb)
+	TX_FAR _Route12Text13
+	db "@"
+
+Route12Text14: ; 596f0 (16:56f0)
+	TX_FAR _Route12Text14
+	db "@"
+
+Route12Text2: ; 596f5 (16:56f5)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText1: ; 596ff (16:56ff)
+	TX_FAR _Route12BattleText1
+	db "@"
+
+Route12EndBattleText1: ; 59704 (16:5704)
+	TX_FAR _Route12EndBattleText1
+	db "@"
+
+Route12AfterBattleText1: ; 59709 (16:5709)
+	TX_FAR _Route12AfterBattleText1
+	db "@"
+
+Route12Text3: ; 5970e (16:570e)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText2: ; 59718 (16:5718)
+	TX_FAR _Route12BattleText2
+	db "@"
+
+Route12EndBattleText2: ; 5971d (16:571d)
+	TX_FAR _Route12EndBattleText2
+	db "@"
+
+Route12AfterBattleText2: ; 59722 (16:5722)
+	TX_FAR _Route12AfterBattleText2
+	db "@"
+
+Route12Text4: ; 59727 (16:5727)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText3: ; 59731 (16:5731)
+	TX_FAR _Route12BattleText3
+	db "@"
+
+Route12EndBattleText3: ; 59736 (16:5736)
+	TX_FAR _Route12EndBattleText3
+	db "@"
+
+Route12AfterBattleText3: ; 5973b (16:573b)
+	TX_FAR _Route12AfterBattleText3
+	db "@"
+
+Route12Text5: ; 59740 (16:5740)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText4: ; 5974a (16:574a)
+	TX_FAR _Route12BattleText4
+	db "@"
+
+Route12EndBattleText4: ; 5974f (16:574f)
+	TX_FAR _Route12EndBattleText4
+	db "@"
+
+Route12AfterBattleText4: ; 59754 (16:5754)
+	TX_FAR _Route12AfterBattleText4
+	db "@"
+
+Route12Text6: ; 59759 (16:5759)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText5: ; 59763 (16:5763)
+	TX_FAR _Route12BattleText5
+	db "@"
+
+Route12EndBattleText5: ; 59768 (16:5768)
+	TX_FAR _Route12EndBattleText5
+	db "@"
+
+Route12AfterBattleText5: ; 5976d (16:576d)
+	TX_FAR _Route12AfterBattleText5
+	db "@"
+
+Route12Text7: ; 59772 (16:5772)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText6: ; 5977c (16:577c)
+	TX_FAR _Route12BattleText6
+	db "@"
+
+Route12EndBattleText6: ; 59781 (16:5781)
+	TX_FAR _Route12EndBattleText6
+	db "@"
+
+Route12AfterBattleText6: ; 59786 (16:5786)
+	TX_FAR _Route12AfterBattleText6
+	db "@"
+
+Route12Text8: ; 5978b (16:578b)
+	db $08 ; asm
+	ld hl, Route12TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route12BattleText7: ; 59795 (16:5795)
+	TX_FAR _Route12BattleText7
+	db "@"
+
+Route12EndBattleText7: ; 5979a (16:579a)
+	TX_FAR _Route12EndBattleText7
+	db "@"
+
+Route12AfterBattleText7: ; 5979f (16:579f)
+	TX_FAR _Route12AfterBattleText7
+	db "@"
+
+Route12Text11: ; 597a4 (16:57a4)
+	TX_FAR _Route12Text11
+	db "@"
+
+Route12Text12: ; 597a9 (16:57a9)
+	TX_FAR _Route12Text12
+	db "@"
--- /dev/null
+++ b/scripts/route12gate.asm
@@ -1,0 +1,9 @@
+Route12GateScript: ; 49504 (12:5504)
+	jp EnableAutoTextBoxDrawing
+
+Route12GateTextPointers: ; 49507 (12:5507)
+	dw Route12GateText1
+
+Route12GateText1: ; 49509 (12:5509)
+	TX_FAR _Route12GateText1
+	db "@"
--- /dev/null
+++ b/scripts/route12gateupstairs.asm
@@ -1,0 +1,79 @@
+Route12GateUpstairsScript: ; 49560 (12:5560)
+	jp DisableAutoTextBoxDrawing
+
+Route12GateUpstairsTextPointers: ; 49563 (12:5563)
+	dw Route12GateUpstairsText1
+	dw Route12GateUpstairsText2
+	dw Route12GateUpstairsText3
+
+Route12GateUpstairsText1: ; 49569 (12:5569)
+	db $08 ; asm
+	ld a, [$d7d7]
+	rrca
+	jr c, .asm_0ad3c ; 0x4956e
+	ld hl, TM39PreReceiveText
+	call PrintText
+	ld bc, (TM_39 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM39Text
+	call PrintText
+	ld hl, $d7d7
+	set 0, [hl]
+	jr .asm_4ba56 ; 0x49589
+.BagFull
+	ld hl, TM39NoRoomText
+	call PrintText
+	jr .asm_4ba56 ; 0x49591
+.asm_0ad3c ; 0x49593
+	ld hl, TM39ExplanationText
+	call PrintText
+.asm_4ba56 ; 0x49599
+	jp TextScriptEnd
+
+TM39PreReceiveText: ; 4959c (12:559c)
+	TX_FAR _TM39PreReceiveText
+	db "@"
+
+ReceivedTM39Text: ; 495a1 (12:55a1)
+	TX_FAR _ReceivedTM39Text
+	db $0B, "@"
+
+TM39ExplanationText: ; 495a7 (12:55a7)
+	TX_FAR _TM39ExplanationText
+	db "@"
+
+TM39NoRoomText: ; 495ac (12:55ac)
+	TX_FAR _TM39NoRoomText
+	db "@"
+
+Route12GateUpstairsText2: ; 495b1 (12:55b1)
+	db $08 ; asm
+	ld hl, Route12GateUpstairsText_495b8
+	jp Route12GateUpstairsScript_495c9
+
+Route12GateUpstairsText_495b8: ; 495b8 (12:55b8)
+	TX_FAR _Route12GateUpstairsText_495b8
+	db "@"
+
+Route12GateUpstairsText3: ; 495bd (12:55bd)
+	db $8
+	ld hl, Route12GateUpstairsText_495c4
+	jp Route12GateUpstairsScript_495c9
+
+Route12GateUpstairsText_495c4: ; 495c4 (12:55c4)
+	TX_FAR _Route12GateUpstairsText_495c4
+	db "@"
+
+Route12GateUpstairsScript_495c9: ; 495c9 (12:55c9)
+	ld a, [$c109]
+	cp $4
+	jr z, .asm_495d4 ; 0x495ce $4
+	ld a, $1
+	jr .asm_495d8 ; 0x495d2 $4
+.asm_495d4
+	call PrintText
+	xor a
+.asm_495d8
+	ld [$cc3c], a
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/route12house.asm
@@ -1,0 +1,57 @@
+Route12HouseScript: ; 5647f (15:647f)
+	jp EnableAutoTextBoxDrawing
+
+Route12HouseTextPointers: ; 56482 (15:6482)
+	dw Route12HouseText1
+
+Route12HouseText1: ; 56484 (15:6484)
+	db $08 ; asm
+	ld a, [$d728]
+	bit 5, a
+	jr nz, .asm_b4cad
+	ld hl, Route12HouseText_564c0
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_a2d76
+	ld bc, (SUPER_ROD << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d728
+	set 5, [hl]
+	ld hl, Route12HouseText_564c5
+	jr .asm_df984
+.BagFull
+	ld hl, Route12HouseText_564d9
+	jr .asm_df984
+.asm_a2d76
+	ld hl, Route12HouseText_564cf
+	jr .asm_df984 ; 0x564b5
+.asm_b4cad
+	ld hl, Route12HouseText_564d4
+.asm_df984
+	call PrintText
+	jp TextScriptEnd
+
+Route12HouseText_564c0: ; 564c0 (15:64c0)
+	TX_FAR _Route12HouseText_564c0
+	db "@"
+
+Route12HouseText_564c5: ; 564c5 (15:64c5)
+	TX_FAR _Route12HouseText_564c5 ; 0x8ca00
+	db $0B
+	TX_FAR _Route12HouseText_564ca ; 0x8ca4f
+	db "@"
+
+Route12HouseText_564cf: ; 564cf (15:64cf)
+	TX_FAR _Route12HouseText_564cf
+	db "@"
+
+Route12HouseText_564d4: ; 564d4 (15:64d4)
+	TX_FAR _Route12HouseText_564d4
+	db "@"
+
+Route12HouseText_564d9: ; 564d9 (15:64d9)
+	TX_FAR _Route12HouseText_564d9
+	db "@"
--- /dev/null
+++ b/scripts/route13.asm
@@ -1,0 +1,313 @@
+Route13Script: ; 5581e (15:581e)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route13TrainerHeaders
+	ld de, Route13ScriptPointers
+	ld a, [W_ROUTE13CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE13CURSCRIPT], a
+	ret
+
+Route13ScriptPointers: ; 55831 (15:5831)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route13TextPointers: ; 55837 (15:5837)
+	dw Route13Text1
+	dw Route13Text2
+	dw Route13Text3
+	dw Route13Text4
+	dw Route13Text5
+	dw Route13Text6
+	dw Route13Text7
+	dw Route13Text8
+	dw Route13Text9
+	dw Route13Text10
+	dw Route13Text11
+	dw Route13Text12
+	dw Route13Text13
+
+Route13TrainerHeaders: ; 55851 (15:5851)
+Route13TrainerHeader0: ; 55851 (15:5851)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText2 ; 0x58d4 TextBeforeBattle
+	dw Route13AfterBattleText2 ; 0x58de TextAfterBattle
+	dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
+	dw Route13EndBattleText2 ; 0x58d9 TextEndBattle
+
+Route13TrainerHeader2: ; 5585d (15:585d)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText3 ; 0x58ed TextBeforeBattle
+	dw Route13AfterBattleText3 ; 0x58f7 TextAfterBattle
+	dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
+	dw Route13EndBattleText3 ; 0x58f2 TextEndBattle
+
+Route13TrainerHeader3: ; 55869 (15:5869)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText4 ; 0x5906 TextBeforeBattle
+	dw Route13AfterBattleText4 ; 0x5910 TextAfterBattle
+	dw Route13EndBattleText4 ; 0x590b TextEndBattle
+	dw Route13EndBattleText4 ; 0x590b TextEndBattle
+
+Route13TrainerHeader4: ; 55875 (15:5875)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText5 ; 0x591f TextBeforeBattle
+	dw Route13AfterBattleText5 ; 0x5929 TextAfterBattle
+	dw Route13EndBattleText5 ; 0x5924 TextEndBattle
+	dw Route13EndBattleText5 ; 0x5924 TextEndBattle
+
+Route13TrainerHeader5: ; 55881 (15:5881)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText6 ; 0x5938 TextBeforeBattle
+	dw Route13AfterBattleText6 ; 0x5942 TextAfterBattle
+	dw Route13EndBattleText6 ; 0x593d TextEndBattle
+	dw Route13EndBattleText6 ; 0x593d TextEndBattle
+
+Route13TrainerHeader6: ; 5588d (15:588d)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText7 ; 0x5951 TextBeforeBattle
+	dw Route13AfterBattleText7 ; 0x595b TextAfterBattle
+	dw Route13EndBattleText7 ; 0x5956 TextEndBattle
+	dw Route13EndBattleText7 ; 0x5956 TextEndBattle
+
+Route13TrainerHeader7: ; 55899 (15:5899)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText8 ; 0x596a TextBeforeBattle
+	dw Route13AfterBattleText8 ; 0x5974 TextAfterBattle
+	dw Route13EndBattleText8 ; 0x596f TextEndBattle
+	dw Route13EndBattleText8 ; 0x596f TextEndBattle
+
+Route13TrainerHeader8: ; 558a5 (15:58a5)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText9 ; 0x5983 TextBeforeBattle
+	dw Route13AfterBattleText9 ; 0x598d TextAfterBattle
+	dw Route13EndBattleText9 ; 0x5988 TextEndBattle
+	dw Route13EndBattleText9 ; 0x5988 TextEndBattle
+
+Route13TrainerHeader9: ; 558b1 (15:58b1)
+	db $9 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText10 ; 0x599c TextBeforeBattle
+	dw Route13AfterBattleText10 ; 0x59a6 TextAfterBattle
+	dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
+	dw Route13EndBattleText10 ; 0x59a1 TextEndBattle
+
+Route13TrainerHeader10: ; 558bd (15:58bd)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d9 ; flag's byte
+	dw Route13BattleText11 ; 0x59b5 TextBeforeBattle
+	dw Route13AfterBattleText11 ; 0x59bf TextAfterBattle
+	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
+	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
+
+	db $ff
+
+Route13Text1: ; 558ca (15:58ca)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText2: ; 558d4 (15:58d4)
+	TX_FAR _Route13BattleText2
+	db "@"
+
+Route13EndBattleText2: ; 558d9 (15:58d9)
+	TX_FAR _Route13EndBattleText2
+	db "@"
+
+Route13AfterBattleText2: ; 558de (15:58de)
+	TX_FAR _Route13AfterBattleText2
+	db "@"
+
+Route13Text2: ; 558e3 (15:58e3)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText3: ; 558ed (15:58ed)
+	TX_FAR _Route13BattleText3
+	db "@"
+
+Route13EndBattleText3: ; 558f2 (15:58f2)
+	TX_FAR _Route13EndBattleText3
+	db "@"
+
+Route13AfterBattleText3: ; 558f7 (15:58f7)
+	TX_FAR _Route13AfterBattleText3
+	db "@"
+
+Route13Text3: ; 558fc (15:58fc)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText4: ; 55906 (15:5906)
+	TX_FAR _Route13BattleText4
+	db "@"
+
+Route13EndBattleText4: ; 5590b (15:590b)
+	TX_FAR _Route13EndBattleText4
+	db "@"
+
+Route13AfterBattleText4: ; 55910 (15:5910)
+	TX_FAR _Route13AfterBattleText4
+	db "@"
+
+Route13Text4: ; 55915 (15:5915)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText5: ; 5591f (15:591f)
+	TX_FAR _Route13BattleText5
+	db "@"
+
+Route13EndBattleText5: ; 55924 (15:5924)
+	TX_FAR _Route13EndBattleText5
+	db "@"
+
+Route13AfterBattleText5: ; 55929 (15:5929)
+	TX_FAR _Route13AfterBattleText5
+	db "@"
+
+Route13Text5: ; 5592e (15:592e)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText6: ; 55938 (15:5938)
+	TX_FAR _Route13BattleText6
+	db "@"
+
+Route13EndBattleText6: ; 5593d (15:593d)
+	TX_FAR _Route13EndBattleText6
+	db "@"
+
+Route13AfterBattleText6: ; 55942 (15:5942)
+	TX_FAR _Route13AfterBattleText6
+	db "@"
+
+Route13Text6: ; 55947 (15:5947)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText7: ; 55951 (15:5951)
+	TX_FAR _Route13BattleText7
+	db "@"
+
+Route13EndBattleText7: ; 55956 (15:5956)
+	TX_FAR _Route13EndBattleText7
+	db "@"
+
+Route13AfterBattleText7: ; 5595b (15:595b)
+	TX_FAR _Route13AfterBattleText7
+	db "@"
+
+Route13Text7: ; 55960 (15:5960)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText8: ; 5596a (15:596a)
+	TX_FAR _Route13BattleText8
+	db "@"
+
+Route13EndBattleText8: ; 5596f (15:596f)
+	TX_FAR _Route13EndBattleText8
+	db "@"
+
+Route13AfterBattleText8: ; 55974 (15:5974)
+	TX_FAR _Route13AfterBattleText8
+	db "@"
+
+Route13Text8: ; 55979 (15:5979)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText9: ; 55983 (15:5983)
+	TX_FAR _Route13BattleText9
+	db "@"
+
+Route13EndBattleText9: ; 55988 (15:5988)
+	TX_FAR _Route13EndBattleText9
+	db "@"
+
+Route13AfterBattleText9: ; 5598d (15:598d)
+	TX_FAR _Route13AfterBattleText9
+	db "@"
+
+Route13Text9: ; 55992 (15:5992)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText10: ; 5599c (15:599c)
+	TX_FAR _Route13BattleText10
+	db "@"
+
+Route13EndBattleText10: ; 559a1 (15:59a1)
+	TX_FAR _Route13EndBattleText10
+	db "@"
+
+Route13AfterBattleText10: ; 559a6 (15:59a6)
+	TX_FAR _Route13AfterBattleText10
+	db "@"
+
+Route13Text10: ; 559ab (15:59ab)
+	db $08 ; asm
+	ld hl, Route13TrainerHeader10
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route13BattleText11: ; 559b5 (15:59b5)
+	TX_FAR _Route13BattleText11
+	db "@"
+
+Route13EndBattleText11: ; 559ba (15:59ba)
+	TX_FAR _Route13EndBattleText11
+	db "@"
+
+Route13AfterBattleText11: ; 559bf (15:59bf)
+	TX_FAR _Route13AfterBattleText11
+	db "@"
+
+Route13Text11: ; 559c4 (15:59c4)
+	TX_FAR _Route13Text11
+	db "@"
+
+Route13Text12: ; 559c9 (15:59c9)
+	TX_FAR _Route13Text12
+	db "@"
+
+Route13Text13: ; 559ce (15:59ce)
+	TX_FAR _Route13Text13
+	db "@"
--- /dev/null
+++ b/scripts/route14.asm
@@ -1,0 +1,303 @@
+Route14Script: ; 559d3 (15:59d3)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route14TrainerHeaders
+	ld de, Route14ScriptPointers
+	ld a, [W_ROUTE14CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE14CURSCRIPT], a
+	ret
+
+Route14ScriptPointers: ; 559e6 (15:59e6)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route14TextPointers: ; 559ec (15:59ec)
+	dw Route14Text1
+	dw Route14Text2
+	dw Route14Text3
+	dw Route14Text4
+	dw Route14Text5
+	dw Route14Text6
+	dw Route14Text7
+	dw Route14Text8
+	dw Route14Text9
+	dw Route14Text10
+	dw Route14Text11
+
+Route14TrainerHeaders: ; 55a02 (15:5a02)
+Route14TrainerHeader0: ; 55a02 (15:5a02)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText1 ; 0x5a85 TextBeforeBattle
+	dw Route14AfterBattleText1 ; 0x5a8f TextAfterBattle
+	dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
+	dw Route14EndBattleText1 ; 0x5a8a TextEndBattle
+
+Route14TrainerHeader1: ; 55a0e (15:5a0e)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText2 ; 0x5a9e TextBeforeBattle
+	dw Route14AfterBattleText2 ; 0x5aa8 TextAfterBattle
+	dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
+	dw Route14EndBattleText2 ; 0x5aa3 TextEndBattle
+
+Route14TrainerHeader2: ; 55a1a (15:5a1a)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText3 ; 0x5ab7 TextBeforeBattle
+	dw Route14AfterBattleText3 ; 0x5ac1 TextAfterBattle
+	dw Route14EndBattleText3 ; 0x5abc TextEndBattle
+	dw Route14EndBattleText3 ; 0x5abc TextEndBattle
+
+Route14TrainerHeader3: ; 55a26 (15:5a26)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText4 ; 0x5ad0 TextBeforeBattle
+	dw Route14AfterBattleText4 ; 0x5ada TextAfterBattle
+	dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
+	dw Route14EndBattleText4 ; 0x5ad5 TextEndBattle
+
+Route14TrainerHeader4: ; 55a32 (15:5a32)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText5 ; 0x5ae9 TextBeforeBattle
+	dw Route14AfterBattleText5 ; 0x5af3 TextAfterBattle
+	dw Route14EndBattleText5 ; 0x5aee TextEndBattle
+	dw Route14EndBattleText5 ; 0x5aee TextEndBattle
+
+Route14TrainerHeader5: ; 55a3e (15:5a3e)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText6 ; 0x5b02 TextBeforeBattle
+	dw Route14AfterBattleText6 ; 0x5b0c TextAfterBattle
+	dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
+	dw Route14EndBattleText6 ; 0x5b07 TextEndBattle
+
+Route14TrainerHeader6: ; 55a4a (15:5a4a)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText7 ; 0x5b1b TextBeforeBattle
+	dw Route14AfterBattleText7 ; 0x5b25 TextAfterBattle
+	dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
+	dw Route14EndBattleText7 ; 0x5b20 TextEndBattle
+
+Route14TrainerHeader7: ; 55a56 (15:5a56)
+	db $8 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText8 ; 0x5b34 TextBeforeBattle
+	dw Route14AfterBattleText8 ; 0x5b3e TextAfterBattle
+	dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
+	dw Route14EndBattleText8 ; 0x5b39 TextEndBattle
+
+Route14TrainerHeader8: ; 55a62 (15:5a62)
+	db $9 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText9 ; 0x5b4d TextBeforeBattle
+	dw Route14AfterBattleText9 ; 0x5b57 TextAfterBattle
+	dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
+	dw Route14EndBattleText9 ; 0x5b52 TextEndBattle
+
+Route14TrainerHeader9: ; 55a6e (15:5a6e)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7db ; flag's byte
+	dw Route14BattleText10 ; 0x5b66 TextBeforeBattle
+	dw Route14AfterBattleText10 ; 0x5b70 TextAfterBattle
+	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
+	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
+
+	db $ff
+
+Route14Text1: ; 55a7b (15:5a7b)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText1: ; 55a85 (15:5a85)
+	TX_FAR _Route14BattleText1
+	db "@"
+
+Route14EndBattleText1: ; 55a8a (15:5a8a)
+	TX_FAR _Route14EndBattleText1
+	db "@"
+
+Route14AfterBattleText1: ; 55a8f (15:5a8f)
+	TX_FAR _Route14AfterBattleText1
+	db "@"
+
+Route14Text2: ; 55a94 (15:5a94)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText2: ; 55a9e (15:5a9e)
+	TX_FAR _Route14BattleText2
+	db "@"
+
+Route14EndBattleText2: ; 55aa3 (15:5aa3)
+	TX_FAR _Route14EndBattleText2
+	db "@"
+
+Route14AfterBattleText2: ; 55aa8 (15:5aa8)
+	TX_FAR _Route14AfterBattleText2
+	db "@"
+
+Route14Text3: ; 55aad (15:5aad)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText3: ; 55ab7 (15:5ab7)
+	TX_FAR _Route14BattleText3
+	db "@"
+
+Route14EndBattleText3: ; 55abc (15:5abc)
+	TX_FAR _Route14EndBattleText3
+	db "@"
+
+Route14AfterBattleText3: ; 55ac1 (15:5ac1)
+	TX_FAR _Route14AfterBattleText3
+	db "@"
+
+Route14Text4: ; 55ac6 (15:5ac6)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText4: ; 55ad0 (15:5ad0)
+	TX_FAR _Route14BattleText4
+	db "@"
+
+Route14EndBattleText4: ; 55ad5 (15:5ad5)
+	TX_FAR _Route14EndBattleText4
+	db "@"
+
+Route14AfterBattleText4: ; 55ada (15:5ada)
+	TX_FAR _Route14AfterBattleText4
+	db "@"
+
+Route14Text5: ; 55adf (15:5adf)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText5: ; 55ae9 (15:5ae9)
+	TX_FAR _Route14BattleText5
+	db "@"
+
+Route14EndBattleText5: ; 55aee (15:5aee)
+	TX_FAR _Route14EndBattleText5
+	db "@"
+
+Route14AfterBattleText5: ; 55af3 (15:5af3)
+	TX_FAR _Route14AfterBattleText5
+	db "@"
+
+Route14Text6: ; 55af8 (15:5af8)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText6: ; 55b02 (15:5b02)
+	TX_FAR _Route14BattleText6
+	db "@"
+
+Route14EndBattleText6: ; 55b07 (15:5b07)
+	TX_FAR _Route14EndBattleText6
+	db "@"
+
+Route14AfterBattleText6: ; 55b0c (15:5b0c)
+	TX_FAR _Route14AfterBattleText6
+	db "@"
+
+Route14Text7: ; 55b11 (15:5b11)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText7: ; 55b1b (15:5b1b)
+	TX_FAR _Route14BattleText7
+	db "@"
+
+Route14EndBattleText7: ; 55b20 (15:5b20)
+	TX_FAR _Route14EndBattleText7
+	db "@"
+
+Route14AfterBattleText7: ; 55b25 (15:5b25)
+	TX_FAR _Route14AfterBattleText7
+	db "@"
+
+Route14Text8: ; 55b2a (15:5b2a)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText8: ; 55b34 (15:5b34)
+	TX_FAR _Route14BattleText8
+	db "@"
+
+Route14EndBattleText8: ; 55b39 (15:5b39)
+	TX_FAR _Route14EndBattleText8
+	db "@"
+
+Route14AfterBattleText8: ; 55b3e (15:5b3e)
+	TX_FAR _Route14AfterBattleText8
+	db "@"
+
+Route14Text9: ; 55b43 (15:5b43)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText9: ; 55b4d (15:5b4d)
+	TX_FAR _Route14BattleText9
+	db "@"
+
+Route14EndBattleText9: ; 55b52 (15:5b52)
+	TX_FAR _Route14EndBattleText9
+	db "@"
+
+Route14AfterBattleText9: ; 55b57 (15:5b57)
+	TX_FAR _Route14AfterBattleText9
+	db "@"
+
+Route14Text10: ; 55b5c (15:5b5c)
+	db $08 ; asm
+	ld hl, Route14TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route14BattleText10: ; 55b66 (15:5b66)
+	TX_FAR _Route14BattleText10
+	db "@"
+
+Route14EndBattleText10: ; 55b6b (15:5b6b)
+	TX_FAR _Route14EndBattleText10
+	db "@"
+
+Route14AfterBattleText10: ; 55b70 (15:5b70)
+	TX_FAR _Route14AfterBattleText10
+	db "@"
+
+Route14Text11: ; 55b75 (15:5b75)
+	TX_FAR _Route14Text11
+	db "@"
--- /dev/null
+++ b/scripts/route15.asm
@@ -1,0 +1,296 @@
+Route15Script: ; 597ae (16:57ae)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route15TrainerHeaders
+	ld de, Route15ScriptPointers
+	ld a, [W_ROUTE15CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE15CURSCRIPT], a
+	ret
+
+Route15ScriptPointers: ; 597c1 (16:57c1)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route15TextPointers: ; 597c7 (16:57c7)
+	dw Route15Text1
+	dw Route15Text2
+	dw Route15Text3
+	dw Route15Text4
+	dw Route15Text5
+	dw Route15Text6
+	dw Route15Text7
+	dw Route15Text8
+	dw Route15Text9
+	dw Route15Text10
+	dw Predef5CText
+	dw Route15Text12
+
+Route15TrainerHeaders: ; 597df (16:57df)
+Route15TrainerHeader0: ; 597df (16:57df)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText1 ; 0x5898 TextBeforeBattle
+	dw Route15AfterBattleText1 ; 0x58a2 TextAfterBattle
+	dw Route15EndBattleText1 ; 0x589d TextEndBattle
+	dw Route15EndBattleText1 ; 0x589d TextEndBattle
+
+Route15TrainerHeader1: ; 597eb (16:57eb)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText2 ; 0x58a7 TextBeforeBattle
+	dw Route15AfterBattleText2 ; 0x58b1 TextAfterBattle
+	dw Route15EndBattleText2 ; 0x58ac TextEndBattle
+	dw Route15EndBattleText2 ; 0x58ac TextEndBattle
+
+Route15TrainerHeader2: ; 597f7 (16:57f7)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText3 ; 0x58b6 TextBeforeBattle
+	dw Route15AfterBattleText3 ; 0x58c0 TextAfterBattle
+	dw Route15EndBattleText3 ; 0x58bb TextEndBattle
+	dw Route15EndBattleText3 ; 0x58bb TextEndBattle
+
+Route15TrainerHeader3: ; 59803 (16:5803)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText4 ; 0x58c5 TextBeforeBattle
+	dw Route15AfterBattleText4 ; 0x58cf TextAfterBattle
+	dw Route15EndBattleText4 ; 0x58ca TextEndBattle
+	dw Route15EndBattleText4 ; 0x58ca TextEndBattle
+
+Route15TrainerHeader4: ; 5980f (16:580f)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText5 ; 0x58d4 TextBeforeBattle
+	dw Route15AfterBattleText5 ; 0x58de TextAfterBattle
+	dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
+	dw Route15EndBattleText5 ; 0x58d9 TextEndBattle
+
+Route15TrainerHeader5: ; 5981b (16:581b)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText6 ; 0x58e3 TextBeforeBattle
+	dw Route15AfterBattleText6 ; 0x58ed TextAfterBattle
+	dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
+	dw Route15EndBattleText6 ; 0x58e8 TextEndBattle
+
+Route15TrainerHeader6: ; 59827 (16:5827)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText7 ; 0x58f2 TextBeforeBattle
+	dw Route15AfterBattleText7 ; 0x58fc TextAfterBattle
+	dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
+	dw Route15EndBattleText7 ; 0x58f7 TextEndBattle
+
+Route15TrainerHeader7: ; 59833 (16:5833)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText8 ; 0x5901 TextBeforeBattle
+	dw Route15AfterBattleText8 ; 0x590b TextAfterBattle
+	dw Route15EndBattleText8 ; 0x5906 TextEndBattle
+	dw Route15EndBattleText8 ; 0x5906 TextEndBattle
+
+Route15TrainerHeader8: ; 5983f (16:583f)
+	db $9 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText9 ; 0x5910 TextBeforeBattle
+	dw Route15AfterBattleText9 ; 0x591a TextAfterBattle
+	dw Route15EndBattleText9 ; 0x5915 TextEndBattle
+	dw Route15EndBattleText9 ; 0x5915 TextEndBattle
+
+Route15TrainerHeader9: ; 5984b (16:584b)
+	db $a ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7dd ; flag's byte
+	dw Route15BattleText10 ; 0x591f TextBeforeBattle
+	dw Route15AfterBattleText10 ; 0x5929 TextAfterBattle
+	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
+	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
+
+	db $ff
+
+Route15Text1: ; 59858 (16:5858)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader0
+	jr asm_33cb7 ; 0x5985c $34
+
+Route15Text2: ; 5985e (16:585e)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader1
+	jr asm_33cb7 ; 0x59862 $2e
+
+Route15Text3: ; 59864 (16:5864)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader2
+	jr asm_33cb7 ; 0x59868 $28
+
+Route15Text4: ; 5986a (16:586a)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader3
+	jr asm_33cb7 ; 0x5986e $22
+
+Route15Text5: ; 59870 (16:5870)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader4
+	jr asm_33cb7 ; 0x59874 $1c
+
+Route15Text6: ; 59876 (16:5876)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader5
+	jr asm_33cb7 ; 0x5987a $16
+
+Route15Text7: ; 5987c (16:587c)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader6
+	jr asm_33cb7 ; 0x59880 $10
+
+Route15Text8: ; 59882 (16:5882)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader7
+	jr asm_33cb7 ; 0x59886 $a
+
+Route15Text9: ; 59888 (16:5888)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader8
+	jr asm_33cb7 ; 0x5988c $4
+
+Route15Text10: ; 5988e (16:588e)
+	db $8 ; asm
+	ld hl, Route15TrainerHeader9
+asm_33cb7: ; 59892 (16:5892)
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route15BattleText1: ; 59898 (16:5898)
+	TX_FAR _Route15BattleText1
+	db "@"
+
+Route15EndBattleText1: ; 5989d (16:589d)
+	TX_FAR _Route15EndBattleText1
+	db "@"
+
+Route15AfterBattleText1: ; 598a2 (16:58a2)
+	TX_FAR _Route15AfterBattleText1
+	db "@"
+
+Route15BattleText2: ; 598a7 (16:58a7)
+	TX_FAR _Route15BattleText2
+	db "@"
+
+Route15EndBattleText2: ; 598ac (16:58ac)
+	TX_FAR _Route15EndBattleText2
+	db "@"
+
+Route15AfterBattleText2: ; 598b1 (16:58b1)
+	TX_FAR _Route15AfterBattleText2
+	db "@"
+
+Route15BattleText3: ; 598b6 (16:58b6)
+	TX_FAR _Route15BattleText3
+	db "@"
+
+Route15EndBattleText3: ; 598bb (16:58bb)
+	TX_FAR _Route15EndBattleText3
+	db "@"
+
+Route15AfterBattleText3: ; 598c0 (16:58c0)
+	TX_FAR _Route15AfterBattleText3
+	db "@"
+
+Route15BattleText4: ; 598c5 (16:58c5)
+	TX_FAR _Route15BattleText4
+	db "@"
+
+Route15EndBattleText4: ; 598ca (16:58ca)
+	TX_FAR _Route15EndBattleText4
+	db "@"
+
+Route15AfterBattleText4: ; 598cf (16:58cf)
+	TX_FAR _Route15AfterBattleText4
+	db "@"
+
+Route15BattleText5: ; 598d4 (16:58d4)
+	TX_FAR _Route15BattleText5
+	db "@"
+
+Route15EndBattleText5: ; 598d9 (16:58d9)
+	TX_FAR _Route15EndBattleText5
+	db "@"
+
+Route15AfterBattleText5: ; 598de (16:58de)
+	TX_FAR _Route15AfterBattleText5
+	db "@"
+
+Route15BattleText6: ; 598e3 (16:58e3)
+	TX_FAR _Route15BattleText6
+	db "@"
+
+Route15EndBattleText6: ; 598e8 (16:58e8)
+	TX_FAR _Route15EndBattleText6
+	db "@"
+
+Route15AfterBattleText6: ; 598ed (16:58ed)
+	TX_FAR _Route15AfterBattleText6
+	db "@"
+
+Route15BattleText7: ; 598f2 (16:58f2)
+	TX_FAR _Route15BattleText7
+	db "@"
+
+Route15EndBattleText7: ; 598f7 (16:58f7)
+	TX_FAR _Route15EndBattleText7
+	db "@"
+
+Route15AfterBattleText7: ; 598fc (16:58fc)
+	TX_FAR _Route15AfterBattleText7
+	db "@"
+
+Route15BattleText8: ; 59901 (16:5901)
+	TX_FAR _Route15BattleText8
+	db "@"
+
+Route15EndBattleText8: ; 59906 (16:5906)
+	TX_FAR _Route15EndBattleText8
+	db "@"
+
+Route15AfterBattleText8: ; 5990b (16:590b)
+	TX_FAR _Route15AfterBattleText8
+	db "@"
+
+Route15BattleText9: ; 59910 (16:5910)
+	TX_FAR _Route15BattleText9
+	db "@"
+
+Route15EndBattleText9: ; 59915 (16:5915)
+	TX_FAR _Route15EndBattleText9
+	db "@"
+
+Route15AfterBattleText9: ; 5991a (16:591a)
+	TX_FAR _Route15AfterBattleText9
+	db "@"
+
+Route15BattleText10: ; 5991f (16:591f)
+	TX_FAR _Route15BattleText10
+	db "@"
+
+Route15EndBattleText10: ; 59924 (16:5924)
+	TX_FAR _Route15EndBattleText10
+	db "@"
+
+Route15AfterBattleText10: ; 59929 (16:5929)
+	TX_FAR _Route15AfterBattleText10
+	db "@"
+
+Route15Text12: ; 5992e (16:592e)
+	TX_FAR _Route15Text12
+	db "@"
--- /dev/null
+++ b/scripts/route15gate.asm
@@ -1,0 +1,9 @@
+Route15GateScript: ; 49602 (12:5602)
+	jp EnableAutoTextBoxDrawing
+
+Route15GateTextPointers: ; 49605 (12:5605)
+	dw Route15GateText1
+
+Route15GateText1: ; 49607 (12:5607)
+	TX_FAR _Route15GateText1
+	db "@"
--- /dev/null
+++ b/scripts/route15gateupstairs.asm
@@ -1,0 +1,47 @@
+Route15GateUpstairsScript: ; 4964a (12:564a)
+	jp DisableAutoTextBoxDrawing
+
+Route15GateUpstairsTextPointers: ; 4964d (12:564d)
+	dw Route15GateUpstairsText1
+	dw Route15GateUpstairsText2
+
+Route15GateUpstairsText1: ; 49651 (12:5651)
+	db $8
+	ld a, [$d7dd]
+	bit 0, a
+	jr nz, .asm_49683 ; 0x49657 $2a
+	ld a, $32
+	ld [$ffdb], a
+	ld a, EXP__ALL
+	ld [$ffdc], a
+	ld [$d11e], a
+	call GetItemName
+	ld hl, $cd6d
+	ld de, $cc5b
+	ld bc, $000d
+	call CopyData
+	ld a, $62
+	call Predef
+	ld a, [$ffdb]
+	cp $1
+	jr nz, .asm_49689 ; 0x4967c $b
+	ld hl, $d7dd
+	set 0, [hl]
+.asm_49683
+	ld hl, Route15GateUpstairsText_4968c
+	call PrintText
+.asm_49689
+	jp TextScriptEnd
+
+Route15GateUpstairsText_4968c: ; 4968c (12:568c)
+	TX_FAR _Route15GateUpstairsText_4968c
+	db "@"
+
+Route15GateUpstairsText2: ; 49691 (12:5691)
+	db $8
+	ld hl, Route15GateUpstairsText_49698
+	jp Route12GateUpstairsScript_495c9
+
+Route15GateUpstairsText_49698: ; 49698 (12:5698)
+	TX_FAR _Route15GateUpstairsText_49698
+	db "@"
--- /dev/null
+++ b/scripts/route16.asm
@@ -1,0 +1,263 @@
+Route16Script: ; 59933 (16:5933)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route16TrainerHeaders
+	ld de, Route16ScriptPointers
+	ld a, [W_ROUTE16CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE16CURSCRIPT], a
+	ret
+
+Func_59946: ; 59946 (16:5946)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE16CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route16ScriptPointers: ; 59951 (16:5951)
+	dw Route16Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route16Script3
+
+Route16Script0: ; 59959 (16:5959)
+	ld hl, $d7e0
+	bit 1, [hl]
+	jp nz, CheckFightingMapTrainers
+	bit 0, [hl]
+	res 0, [hl]
+	jp z, CheckFightingMapTrainers
+	ld a, $a
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, SNORLAX
+	ld [W_CUROPPONENT], a ; $d059
+	ld a, 30
+	ld [W_CURENEMYLVL], a ; $d127
+	ld a, $21
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	call UpdateSprites
+	ld a, $3
+	ld [W_ROUTE16CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route16Script3: ; 5998f (16:598f)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, Func_59946
+	call UpdateSprites
+	ld a, [$cf0b]
+	cp $2
+	jr z, .asm_599a8
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_599a8
+	ld hl, $d7e0
+	set 1, [hl]
+	call Delay3
+	ld a, $0
+	ld [W_ROUTE16CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route16TextPointers: ; 599b9 (16:59b9)
+	dw Route16Text1
+	dw Route16Text2
+	dw Route16Text3
+	dw Route16Text4
+	dw Route16Text5
+	dw Route16Text6
+	dw Route16Text7
+	dw Route16Text8
+	dw Route16Text9
+	dw Route16Text10
+	dw Route16Text11
+
+Route16TrainerHeaders: ; 599cf (16:59cf)
+Route16TrainerHeader0: ; 599cf (16:59cf)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText1 ; 0x5a22 TextBeforeBattle
+	dw Route16AfterBattleText1 ; 0x5a2c TextAfterBattle
+	dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
+	dw Route16EndBattleText1 ; 0x5a27 TextEndBattle
+
+Route16TrainerHeader1: ; 599db (16:59db)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText2 ; 0x5a3b TextBeforeBattle
+	dw Route16AfterBattleText2 ; 0x5a45 TextAfterBattle
+	dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
+	dw Route16EndBattleText2 ; 0x5a40 TextEndBattle
+
+Route16TrainerHeader2: ; 599e7 (16:59e7)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText3 ; 0x5a54 TextBeforeBattle
+	dw Route16AfterBattleText3 ; 0x5a5e TextAfterBattle
+	dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
+	dw Route16EndBattleText3 ; 0x5a59 TextEndBattle
+
+Route16TrainerHeader3: ; 599f3 (16:59f3)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText4 ; 0x5a6d TextBeforeBattle
+	dw Route16AfterBattleText4 ; 0x5a77 TextAfterBattle
+	dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
+	dw Route16EndBattleText4 ; 0x5a72 TextEndBattle
+
+Route16TrainerHeader4: ; 599ff (16:59ff)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText5 ; 0x5a86 TextBeforeBattle
+	dw Route16AfterBattleText5 ; 0x5a90 TextAfterBattle
+	dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
+	dw Route16EndBattleText5 ; 0x5a8b TextEndBattle
+
+Route16TrainerHeader5: ; 59a0b (16:5a0b)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7df ; flag's byte
+	dw Route16BattleText6 ; 0x5a9f TextBeforeBattle
+	dw Route16AfterBattleText6 ; 0x5aa9 TextAfterBattle
+	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
+	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
+
+	db $ff
+
+Route16Text1: ; 59a18 (16:5a18)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText1: ; 59a22 (16:5a22)
+	TX_FAR _Route16BattleText1
+	db "@"
+
+Route16EndBattleText1: ; 59a27 (16:5a27)
+	TX_FAR _Route16EndBattleText1
+	db "@"
+
+Route16AfterBattleText1: ; 59a2c (16:5a2c)
+	TX_FAR _Route16AfterBattleText1
+	db "@"
+
+Route16Text2: ; 59a31 (16:5a31)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText2: ; 59a3b (16:5a3b)
+	TX_FAR _Route16BattleText2
+	db "@"
+
+Route16EndBattleText2: ; 59a40 (16:5a40)
+	TX_FAR _Route16EndBattleText2
+	db "@"
+
+Route16AfterBattleText2: ; 59a45 (16:5a45)
+	TX_FAR _Route16AfterBattleText2
+	db "@"
+
+Route16Text3: ; 59a4a (16:5a4a)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText3: ; 59a54 (16:5a54)
+	TX_FAR _Route16BattleText3
+	db "@"
+
+Route16EndBattleText3: ; 59a59 (16:5a59)
+	TX_FAR _Route16EndBattleText3
+	db "@"
+
+Route16AfterBattleText3: ; 59a5e (16:5a5e)
+	TX_FAR _Route16AfterBattleText3
+	db "@"
+
+Route16Text4: ; 59a63 (16:5a63)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText4: ; 59a6d (16:5a6d)
+	TX_FAR _Route16BattleText4
+	db "@"
+
+Route16EndBattleText4: ; 59a72 (16:5a72)
+	TX_FAR _Route16EndBattleText4
+	db "@"
+
+Route16AfterBattleText4: ; 59a77 (16:5a77)
+	TX_FAR _Route16AfterBattleText4
+	db "@"
+
+Route16Text5: ; 59a7c (16:5a7c)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText5: ; 59a86 (16:5a86)
+	TX_FAR _Route16BattleText5
+	db "@"
+
+Route16EndBattleText5: ; 59a8b (16:5a8b)
+	TX_FAR _Route16EndBattleText5
+	db "@"
+
+Route16AfterBattleText5: ; 59a90 (16:5a90)
+	TX_FAR _Route16AfterBattleText5
+	db "@"
+
+Route16Text6: ; 59a95 (16:5a95)
+	db $08 ; asm
+	ld hl, Route16TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route16BattleText6: ; 59a9f (16:5a9f)
+	TX_FAR _Route16BattleText6
+	db "@"
+
+Route16EndBattleText6: ; 59aa4 (16:5aa4)
+	TX_FAR _Route16EndBattleText6
+	db "@"
+
+Route16AfterBattleText6: ; 59aa9 (16:5aa9)
+	TX_FAR _Route16AfterBattleText6
+	db "@"
+
+Route16Text7: ; 59aae (16:5aae)
+	TX_FAR _Route16Text7
+	db "@"
+
+Route16Text10: ; 59ab3 (16:5ab3)
+	TX_FAR _Route16Text10
+	db "@"
+
+Route16Text11: ; 59ab8 (16:5ab8)
+	TX_FAR _Route16Text11
+	db "@"
+
+Route16Text8: ; 59abd (16:5abd)
+	TX_FAR _Route16Text8
+	db "@"
+
+Route16Text9: ; 59ac2 (16:5ac2)
+	TX_FAR _Route16Text9
+	db "@"
--- /dev/null
+++ b/scripts/route16gate.asm
@@ -1,0 +1,121 @@
+Route16GateScript: ; 496be (12:56be)
+	ld hl, $d732
+	res 5, [hl]
+	call EnableAutoTextBoxDrawing
+	ld a, [W_ROUTE16GATECURSCRIPT]
+	ld hl, Route16GateScriptPointers
+	jp CallFunctionInTable
+
+Route16GateScriptPointers: ; 496cf (12:56cf)
+	dw Route16GateScript0
+	dw Route16GateScript1
+	dw Route16GateScript2
+	dw Route16GateScript3
+
+Route16GateScript0: ; 496d7 (12:56d7)
+	call Func_49755
+	ret nz
+	ld hl, CoordsData_49714
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $3
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, [$cd3d]
+	cp $1
+	jr z, .asm_4970e ; 0x496f1 $1b
+	ld a, [$cd3d]
+	dec a
+	ld [$cd38], a
+	ld b, $0
+	ld c, a
+	ld a, $40
+	ld hl, $ccd3
+	call FillMemory
+	call Func_3486
+	ld a, $1
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
+.asm_4970e
+	ld a, $2
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
+
+CoordsData_49714: ; 49714 (12:5714)
+	db $07,$04
+	db $08,$04
+	db $09,$04
+	db $0A,$04
+	db $FF
+
+Route16GateScript1: ; 4971d (12:571d)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+Route16GateScript2: ; 49727 (12:5727)
+	ld a, $1
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $1
+	ld [$cd38], a
+	ld a, $10
+	ld [$ccd3], a
+	call Func_3486
+	ld a, $3
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
+
+Route16GateScript3: ; 49741 (12:5741)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d730
+	res 7, [hl]
+	ld a, $0
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
+
+Func_49755: ; 49755 (12:5755)
+	ld b, BICYCLE
+	jp IsItemInBag
+
+Route16GateTextPointers: ; 4975a (12:575a)
+	dw Route16GateText1
+	dw Route16GateText2
+	dw Route16GateText3
+
+Route16GateText1: ; 49760 (12:5760)
+	db $08 ; asm
+	call Func_49755
+	jr z, .asm_0bdf3 ; 0x49764
+	ld hl, Route16GateText_4977c
+	call PrintText
+	jr .asm_56c9d ; 0x4976c
+.asm_0bdf3 ; 0x4976e
+	ld hl, Route16GateText_49777
+	call PrintText
+.asm_56c9d ; 0x49774
+	jp TextScriptEnd
+
+Route16GateText_49777: ; 49777 (12:5777)
+	TX_FAR _Route16GateText_49777
+	db "@"
+
+Route16GateText_4977c: ; 4977c (12:577c)
+	TX_FAR _Route16GateText_4977c
+	db "@"
+
+Route16GateText3: ; 49781 (12:5781)
+	TX_FAR _Route16GateText_49781
+	db "@"
+
+Route16GateText2: ; 49786 (12:5786)
+	TX_FAR _Route16GateText2
+	db "@"
--- /dev/null
+++ b/scripts/route16gateupstairs.asm
@@ -1,0 +1,46 @@
+Route16GateUpstairsScript: ; 4980b (12:580b)
+	jp DisableAutoTextBoxDrawing
+
+Route16GateUpstairsTextPointers: ; 4980e (12:580e)
+	dw Route16GateUpstairsText1
+	dw Route16GateUpstairsText2
+	dw Route16GateUpstairsText3
+	dw Route16GateUpstairsText4
+
+Route16GateUpstairsText1: ; 49816 (12:5816)
+	db $08 ; asm
+	ld hl, Route16GateUpstairsText_49820
+	call PrintText
+	jp TextScriptEnd
+
+Route16GateUpstairsText_49820: ; 49820 (12:5820)
+	TX_FAR _Route16GateUpstairsText_49820
+	db "@"
+
+Route16GateUpstairsText2: ; 49825 (12:5825)
+	db $08 ; asm
+	ld hl, Route16GateUpstairsText_4982f
+	call PrintText
+	jp TextScriptEnd
+
+Route16GateUpstairsText_4982f: ; 4982f (12:582f)
+	TX_FAR _Route16GateUpstairsText_4982f
+	db "@"
+
+Route16GateUpstairsText3: ; 49834 (12:5834)
+	db $8
+	ld hl, Route16GateUpstairsText_4983b
+	jp Route12GateUpstairsScript_495c9
+
+Route16GateUpstairsText_4983b: ; 4983b (12:583b)
+	TX_FAR _Route16GateUpstairsText_4983b
+	db "@"
+
+Route16GateUpstairsText4: ; 49840 (12:5840)
+	db $8
+	ld hl, Route16GateUpstairsText_49847 ; $5847
+	jp Route12GateUpstairsScript_495c9
+
+Route16GateUpstairsText_49847: ; 49847 (12:5847)
+	TX_FAR _Route16GateUpstairsText_49847
+	db "@"
--- /dev/null
+++ b/scripts/route16house.asm
@@ -1,0 +1,56 @@
+Route16HouseScript: ; 1e5f8 (7:65f8)
+	jp EnableAutoTextBoxDrawing
+
+Route16HouseTextPointers: ; 1e5fb (7:65fb)
+	dw Route16HouseText1
+	dw Route16HouseText2
+
+Route16HouseText1: ; 1e5ff (7:65ff)
+	db $08 ; asm
+	ld a, [$d7e0]
+	bit 6, a
+	ld hl, HM02ExplanationText
+	jr nz, .asm_13616 ; 0x1e608
+	ld hl, Route16HouseText3
+	call PrintText
+	ld bc, (HM_02 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d7e0
+	set 6, [hl]
+	ld hl, ReceivedHM02Text
+	jr .asm_13616 ; 0x1e620
+.BagFull
+	ld hl, HM02NoRoomText
+.asm_13616 ; 0x1e625
+	call PrintText
+	jp TextScriptEnd
+
+Route16HouseText3: ; 1e62b (7:662b)
+	TX_FAR _Route16HouseText3
+	db "@"
+
+ReceivedHM02Text: ; 1e630 (7:6630)
+	TX_FAR _ReceivedHM02Text
+	db $11, "@"
+
+HM02ExplanationText: ; 1e636 (7:6636)
+	TX_FAR _HM02ExplanationText
+	db "@"
+
+HM02NoRoomText: ; 1e63b (7:663b)
+	TX_FAR _HM02NoRoomText
+	db "@"
+
+Route16HouseText2: ; 1e640 (7:6640)
+	db $08 ; asm
+	ld hl, Route16HouseText_1e652
+	call PrintText
+	ld a, FEAROW
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+Route16HouseText_1e652: ; 1e652 (7:6652)
+	TX_FAR _Route16HouseText_1e652
+	db "@"
--- /dev/null
+++ b/scripts/route17.asm
@@ -1,0 +1,328 @@
+Route17Script: ; 55b7a (15:5b7a)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route17TrainerHeaders
+	ld de, Route17ScriptPointers
+	ld a, [W_ROUTE17CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE17CURSCRIPT], a
+	ret
+
+Route17ScriptPointers: ; 55b8d (15:5b8d)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route17TextPointers: ; 55b93 (15:5b93)
+	dw Route17Text1
+	dw Route17Text2
+	dw Route17Text3
+	dw Route17Text4
+	dw Route17Text5
+	dw Route17Text6
+	dw Route17Text7
+	dw Route17Text8
+	dw Route17Text9
+	dw Route17Text10
+	dw Route17Text11
+	dw Route17Text12
+	dw Route17Text13
+	dw Route17Text14
+	dw Route17Text15
+	dw Route17Text16
+
+Route17TrainerHeaders: ; 55bb3 (15:5bb3)
+Route17TrainerHeader0: ; 55bb3 (15:5bb3)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText1 ; 0x5c36 TextBeforeBattle
+	dw Route17AfterBattleText1 ; 0x5c40 TextAfterBattle
+	dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
+	dw Route17EndBattleText1 ; 0x5c3b TextEndBattle
+
+Route17TrainerHeader1: ; 55bbf (15:5bbf)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText2 ; 0x5c4f TextBeforeBattle
+	dw Route17AfterBattleText2 ; 0x5c59 TextAfterBattle
+	dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
+	dw Route17EndBattleText2 ; 0x5c54 TextEndBattle
+
+Route17TrainerHeader2: ; 55bcb (15:5bcb)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText3 ; 0x5c68 TextBeforeBattle
+	dw Route17AfterBattleText3 ; 0x5c72 TextAfterBattle
+	dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
+	dw Route17EndBattleText3 ; 0x5c6d TextEndBattle
+
+Route17TrainerHeader3: ; 55bd7 (15:5bd7)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText4 ; 0x5c81 TextBeforeBattle
+	dw Route17AfterBattleText4 ; 0x5c8b TextAfterBattle
+	dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
+	dw Route17EndBattleText4 ; 0x5c86 TextEndBattle
+
+Route17TrainerHeader4: ; 55be3 (15:5be3)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText5 ; 0x5c9a TextBeforeBattle
+	dw Route17AfterBattleText5 ; 0x5ca4 TextAfterBattle
+	dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
+	dw Route17EndBattleText5 ; 0x5c9f TextEndBattle
+
+Route17TrainerHeader5: ; 55bef (15:5bef)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText6 ; 0x5cb3 TextBeforeBattle
+	dw Route17AfterBattleText6 ; 0x5cbd TextAfterBattle
+	dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
+	dw Route17EndBattleText6 ; 0x5cb8 TextEndBattle
+
+Route17TrainerHeader6: ; 55bfb (15:5bfb)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText7 ; 0x5ccc TextBeforeBattle
+	dw Route17AfterBattleText7 ; 0x5cd6 TextAfterBattle
+	dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
+	dw Route17EndBattleText7 ; 0x5cd1 TextEndBattle
+
+Route17TrainerHeader7: ; 55c07 (15:5c07)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText8 ; 0x5ce5 TextBeforeBattle
+	dw Route17AfterBattleText8 ; 0x5cef TextAfterBattle
+	dw Route17EndBattleText8 ; 0x5cea TextEndBattle
+	dw Route17EndBattleText8 ; 0x5cea TextEndBattle
+
+Route17TrainerHeader8: ; 55c13 (15:5c13)
+	db $9 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText9 ; 0x5cfe TextBeforeBattle
+	dw Route17AfterBattleText9 ; 0x5d08 TextAfterBattle
+	dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
+	dw Route17EndBattleText9 ; 0x5d03 TextEndBattle
+
+Route17TrainerHeader9: ; 55c1f (15:5c1f)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e1 ; flag's byte
+	dw Route17BattleText10 ; 0x5d17 TextBeforeBattle
+	dw Route17AfterBattleText10 ; 0x5d21 TextAfterBattle
+	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
+	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
+
+	db $ff
+
+Route17Text1: ; 55c2c (15:5c2c)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText1: ; 55c36 (15:5c36)
+	TX_FAR _Route17BattleText1
+	db "@"
+
+Route17EndBattleText1: ; 55c3b (15:5c3b)
+	TX_FAR _Route17EndBattleText1
+	db "@"
+
+Route17AfterBattleText1: ; 55c40 (15:5c40)
+	TX_FAR _Route17AfterBattleText1
+	db "@"
+
+Route17Text2: ; 55c45 (15:5c45)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText2: ; 55c4f (15:5c4f)
+	TX_FAR _Route17BattleText2
+	db "@"
+
+Route17EndBattleText2: ; 55c54 (15:5c54)
+	TX_FAR _Route17EndBattleText2
+	db "@"
+
+Route17AfterBattleText2: ; 55c59 (15:5c59)
+	TX_FAR _Route17AfterBattleText2
+	db "@"
+
+Route17Text3: ; 55c5e (15:5c5e)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText3: ; 55c68 (15:5c68)
+	TX_FAR _Route17BattleText3
+	db "@"
+
+Route17EndBattleText3: ; 55c6d (15:5c6d)
+	TX_FAR _Route17EndBattleText3
+	db "@"
+
+Route17AfterBattleText3: ; 55c72 (15:5c72)
+	TX_FAR _Route17AfterBattleText3
+	db "@"
+
+Route17Text4: ; 55c77 (15:5c77)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText4: ; 55c81 (15:5c81)
+	TX_FAR _Route17BattleText4
+	db "@"
+
+Route17EndBattleText4: ; 55c86 (15:5c86)
+	TX_FAR _Route17EndBattleText4
+	db "@"
+
+Route17AfterBattleText4: ; 55c8b (15:5c8b)
+	TX_FAR _Route17AfterBattleText4
+	db "@"
+
+Route17Text5: ; 55c90 (15:5c90)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText5: ; 55c9a (15:5c9a)
+	TX_FAR _Route17BattleText5
+	db "@"
+
+Route17EndBattleText5: ; 55c9f (15:5c9f)
+	TX_FAR _Route17EndBattleText5
+	db "@"
+
+Route17AfterBattleText5: ; 55ca4 (15:5ca4)
+	TX_FAR _Route17AfterBattleText5
+	db "@"
+
+Route17Text6: ; 55ca9 (15:5ca9)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText6: ; 55cb3 (15:5cb3)
+	TX_FAR _Route17BattleText6
+	db "@"
+
+Route17EndBattleText6: ; 55cb8 (15:5cb8)
+	TX_FAR _Route17EndBattleText6
+	db "@"
+
+Route17AfterBattleText6: ; 55cbd (15:5cbd)
+	TX_FAR _Route17AfterBattleText6
+	db "@"
+
+Route17Text7: ; 55cc2 (15:5cc2)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText7: ; 55ccc (15:5ccc)
+	TX_FAR _Route17BattleText7
+	db "@"
+
+Route17EndBattleText7: ; 55cd1 (15:5cd1)
+	TX_FAR _Route17EndBattleText7
+	db "@"
+
+Route17AfterBattleText7: ; 55cd6 (15:5cd6)
+	TX_FAR _Route17AfterBattleText7
+	db "@"
+
+Route17Text8: ; 55cdb (15:5cdb)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText8: ; 55ce5 (15:5ce5)
+	TX_FAR _Route17BattleText8
+	db "@"
+
+Route17EndBattleText8: ; 55cea (15:5cea)
+	TX_FAR _Route17EndBattleText8
+	db "@"
+
+Route17AfterBattleText8: ; 55cef (15:5cef)
+	TX_FAR _Route17AfterBattleText8
+	db "@"
+
+Route17Text9: ; 55cf4 (15:5cf4)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText9: ; 55cfe (15:5cfe)
+	TX_FAR _Route17BattleText9
+	db "@"
+
+Route17EndBattleText9: ; 55d03 (15:5d03)
+	TX_FAR _Route17EndBattleText9
+	db "@"
+
+Route17AfterBattleText9: ; 55d08 (15:5d08)
+	TX_FAR _Route17AfterBattleText9
+	db "@"
+
+Route17Text10: ; 55d0d (15:5d0d)
+	db $08 ; asm
+	ld hl, Route17TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route17BattleText10: ; 55d17 (15:5d17)
+	TX_FAR _Route17BattleText10
+	db "@"
+
+Route17EndBattleText10: ; 55d1c (15:5d1c)
+	TX_FAR _Route17EndBattleText10
+	db "@"
+
+Route17AfterBattleText10: ; 55d21 (15:5d21)
+	TX_FAR _Route17AfterBattleText10
+	db "@"
+
+Route17Text11: ; 55d26 (15:5d26)
+	TX_FAR _Route17Text11
+	db "@"
+
+Route17Text12: ; 55d2b (15:5d2b)
+	TX_FAR _Route17Text12
+	db "@"
+
+Route17Text13: ; 55d30 (15:5d30)
+	TX_FAR _Route17Text13
+	db "@"
+
+Route17Text14: ; 55d35 (15:5d35)
+	TX_FAR _Route17Text14
+	db "@"
+
+Route17Text15: ; 55d3a (15:5d3a)
+	TX_FAR _Route17Text15
+	db "@"
+
+Route17Text16: ; 55d3f (15:5d3f)
+	TX_FAR _Route17Text16
+	db "@"
--- /dev/null
+++ b/scripts/route18.asm
@@ -1,0 +1,112 @@
+Route18Script: ; 59ac7 (16:5ac7)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route18TrainerHeaders
+	ld de, Route18ScriptPointers
+	ld a, [W_ROUTE18CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE18CURSCRIPT], a
+	ret
+
+Route18ScriptPointers: ; 59ada (16:5ada)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route18TextPointers: ; 59ae0 (16:5ae0)
+	dw Route18Text1
+	dw Route18Text2
+	dw Route18Text3
+	dw Route18Text4
+	dw Route18Text5
+
+Route18TrainerHeaders: ; 59aea (16:5aea)
+Route18TrainerHeader0: ; 59aea (16:5aea)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e3 ; flag's byte
+	dw Route18BattleText1 ; 0x5b19 TextBeforeBattle
+	dw Route18AfterBattleText1 ; 0x5b23 TextAfterBattle
+	dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
+	dw Route18EndBattleText1 ; 0x5b1e TextEndBattle
+
+Route18TrainerHeader1: ; 59af6 (16:5af6)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e3 ; flag's byte
+	dw Route18BattleText2 ; 0x5b32 TextBeforeBattle
+	dw Route18AfterBattleText2 ; 0x5b3c TextAfterBattle
+	dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
+	dw Route18EndBattleText2 ; 0x5b37 TextEndBattle
+
+Route18TrainerHeader2: ; 59b02 (16:5b02)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e3 ; flag's byte
+	dw Route18BattleText3 ; 0x5b4b TextBeforeBattle
+	dw Route18AfterBattleText3 ; 0x5b55 TextAfterBattle
+	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
+	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
+
+	db $ff
+
+Route18Text1: ; 59b0f (16:5b0f)
+	db $08 ; asm
+	ld hl, Route18TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route18BattleText1: ; 59b19 (16:5b19)
+	TX_FAR _Route18BattleText1
+	db "@"
+
+Route18EndBattleText1: ; 59b1e (16:5b1e)
+	TX_FAR _Route18EndBattleText1
+	db "@"
+
+Route18AfterBattleText1: ; 59b23 (16:5b23)
+	TX_FAR _Route18AfterBattleText1
+	db "@"
+
+Route18Text2: ; 59b28 (16:5b28)
+	db $08 ; asm
+	ld hl, Route18TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route18BattleText2: ; 59b32 (16:5b32)
+	TX_FAR _Route18BattleText2
+	db "@"
+
+Route18EndBattleText2: ; 59b37 (16:5b37)
+	TX_FAR _Route18EndBattleText2
+	db "@"
+
+Route18AfterBattleText2: ; 59b3c (16:5b3c)
+	TX_FAR _Route18AfterBattleText2
+	db "@"
+
+Route18Text3: ; 59b41 (16:5b41)
+	db $08 ; asm
+	ld hl, Route18TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route18BattleText3: ; 59b4b (16:5b4b)
+	TX_FAR _Route18BattleText3
+	db "@"
+
+Route18EndBattleText3: ; 59b50 (16:5b50)
+	TX_FAR _Route18EndBattleText3
+	db "@"
+
+Route18AfterBattleText3: ; 59b55 (16:5b55)
+	TX_FAR _Route18AfterBattleText3
+	db "@"
+
+Route18Text4: ; 59b5a (16:5b5a)
+	TX_FAR _Route18Text4
+	db "@"
+
+Route18Text5: ; 59b5f (16:5b5f)
+	TX_FAR _Route18Text5
+	db "@"
--- /dev/null
+++ b/scripts/route18gate.asm
@@ -1,0 +1,112 @@
+Route18GateScript: ; 49876 (12:5876)
+	ld hl, $d732
+	res 5, [hl]
+	call EnableAutoTextBoxDrawing
+	ld a, [W_ROUTE18GATECURSCRIPT]
+	ld hl, Route18GateScriptPointers
+	jp CallFunctionInTable
+
+Route18GateScriptPointers: ; 49887 (12:5887)
+	dw Route18GateScript0
+	dw Route18GateScript1
+	dw Route18GateScript2
+	dw Route18GateScript3
+
+Route18GateScript0: ; 4988f (12:588f)
+	call Func_49755
+	ret nz
+	ld hl, CoordsData_498cc
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, [$cd3d]
+	cp $1
+	jr z, .asm_498c6 ; 0x498a9 $1b
+	ld a, [$cd3d]
+	dec a
+	ld [$cd38], a
+	ld b, $0
+	ld c, a
+	ld a, $40
+	ld hl, $ccd3
+	call FillMemory
+	call Func_3486
+	ld a, $1
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+.asm_498c6
+	ld a, $2
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+
+CoordsData_498cc: ; 498cc (12:58cc)
+	db $03,$04
+	db $04,$04
+	db $05,$04
+	db $06,$04
+	db $FF
+
+Route18GateScript1: ; 498d5 (12:58d5)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+Route18GateScript2: ; 498df (12:58df)
+	ld a, $1
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $1
+	ld [$cd38], a
+	ld a, $10
+	ld [$ccd3], a
+	call Func_3486
+	ld a, $3
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+
+Route18GateScript3: ; 498f9 (12:58f9)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d730
+	res 7, [hl]
+	ld a, $0
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+
+Route18GateTextPointers: ; 4990d (12:590d)
+	dw Route18GateText1
+	dw Route18GateText2
+
+Route18GateText1: ; 49911 (12:5911)
+	db $08 ; asm
+	call Func_49755
+	jr z, .asm_3c84d ; 0x49915
+	ld hl, Route18GateText_4992d
+	call PrintText
+	jr .asm_a8410 ; 0x4991d
+.asm_3c84d ; 0x4991f
+	ld hl, Route18GateText_49928
+	call PrintText
+.asm_a8410 ; 0x49925
+	jp TextScriptEnd
+
+Route18GateText_49928: ; 49928 (12:5928)
+	TX_FAR _Route18GateText_49928
+	db "@"
+
+Route18GateText_4992d: ; 4992d (12:592d)
+	TX_FAR _Route18GateText_4992d
+	db "@"
+
+Route18GateText2: ; 49932 (12:5932)
+	TX_FAR _Route18GateText_49932
+	db "@"
--- /dev/null
+++ b/scripts/route18gateupstairs.asm
@@ -1,0 +1,33 @@
+Route18GateUpstairsScript: ; 49975 (12:5975)
+	jp DisableAutoTextBoxDrawing
+
+Route18GateUpstairsTextPointers: ; 49978 (12:5978)
+	dw Route18GateUpstairsText1
+	dw Route18GateUpstairsText2
+	dw Route18GateUpstairsText3
+
+Route18GateUpstairsText1: ; 4997e (12:597e)
+	db $08 ; asm
+	ld a, $5
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
+
+Route18GateUpstairsText2: ; 4998c (12:598c)
+	db $8
+	ld hl, Route18GateUpstairsText_49993 ; $5993
+	jp Route12GateUpstairsScript_495c9
+
+Route18GateUpstairsText_49993: ; 49993 (12:5993)
+	TX_FAR _Route18GateUpstairsText_49993
+	db "@"
+
+Route18GateUpstairsText3: ; 49998 (12:5998)
+	db $8
+	ld hl, Route18GateUpstairsText_4999f ; $599f
+	jp Route12GateUpstairsScript_495c9
+
+Route18GateUpstairsText_4999f: ; 4999f (12:599f)
+	TX_FAR _Route18GateUpstairsText_4999f
+	db "@"
--- /dev/null
+++ b/scripts/route19.asm
@@ -1,0 +1,303 @@
+Route19Script: ; 55d44 (15:5d44)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route19TrainerHeaders
+	ld de, Route19ScriptPointers
+	ld a, [W_ROUTE19CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE19CURSCRIPT], a
+	ret
+
+Route19ScriptPointers: ; 55d57 (15:5d57)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route19TextPointers: ; 55d5d (15:5d5d)
+	dw Route19Text1
+	dw Route19Text2
+	dw Route19Text3
+	dw Route19Text4
+	dw Route19Text5
+	dw Route19Text6
+	dw Route19Text7
+	dw Route19Text8
+	dw Route19Text9
+	dw Route19Text10
+	dw Route19Text11
+
+Route19TrainerHeaders: ; 55d73 (15:5d73)
+Route19TrainerHeader0: ; 55d73 (15:5d73)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText1 ; 0x5e50 TextBeforeBattle
+	dw Route19AfterBattleText1 ; 0x5e5a TextAfterBattle
+	dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
+	dw Route19EndBattleText1 ; 0x5e55 TextEndBattle
+
+Route19TrainerHeader1: ; 55d7f (15:5d7f)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText2 ; 0x5e5f TextBeforeBattle
+	dw Route19AfterBattleText2 ; 0x5e69 TextAfterBattle
+	dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
+	dw Route19EndBattleText2 ; 0x5e64 TextEndBattle
+
+Route19TrainerHeader2: ; 55d8b (15:5d8b)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText3 ; 0x5e6e TextBeforeBattle
+	dw Route19AfterBattleText3 ; 0x5e78 TextAfterBattle
+	dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
+	dw Route19EndBattleText3 ; 0x5e73 TextEndBattle
+
+Route19TrainerHeader3: ; 55d97 (15:5d97)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText4 ; 0x5e7d TextBeforeBattle
+	dw Route19AfterBattleText4 ; 0x5e87 TextAfterBattle
+	dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
+	dw Route19EndBattleText4 ; 0x5e82 TextEndBattle
+
+Route19TrainerHeader4: ; 55da3 (15:5da3)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText5 ; 0x5e8c TextBeforeBattle
+	dw Route19AfterBattleText5 ; 0x5e96 TextAfterBattle
+	dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
+	dw Route19EndBattleText5 ; 0x5e91 TextEndBattle
+
+Route19TrainerHeader5: ; 55daf (15:5daf)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText6 ; 0x5e9b TextBeforeBattle
+	dw Route19AfterBattleText6 ; 0x5ea5 TextAfterBattle
+	dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
+	dw Route19EndBattleText6 ; 0x5ea0 TextEndBattle
+
+Route19TrainerHeader6: ; 55dbb (15:5dbb)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText7 ; 0x5eaa TextBeforeBattle
+	dw Route19AfterBattleText7 ; 0x5eb4 TextAfterBattle
+	dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
+	dw Route19EndBattleText7 ; 0x5eaf TextEndBattle
+
+Route19TrainerHeader7: ; 55dc7 (15:5dc7)
+	db $8 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText8 ; 0x5eb9 TextBeforeBattle
+	dw Route19AfterBattleText8 ; 0x5ec3 TextAfterBattle
+	dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
+	dw Route19EndBattleText8 ; 0x5ebe TextEndBattle
+
+Route19TrainerHeader8: ; 55dd3 (15:5dd3)
+	db $9 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText9 ; 0x5ec8 TextBeforeBattle
+	dw Route19AfterBattleText9 ; 0x5ed2 TextAfterBattle
+	dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
+	dw Route19EndBattleText9 ; 0x5ecd TextEndBattle
+
+Route19TrainerHeader9: ; 55ddf (15:5ddf)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e5 ; flag's byte
+	dw Route19BattleText10 ; 0x5ed7 TextBeforeBattle
+	dw Route19AfterBattleText10 ; 0x5ee1 TextAfterBattle
+	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
+	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
+
+	db $ff
+
+Route19Text1: ; 55dec (15:5dec)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text2: ; 55df6 (15:5df6)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text3: ; 55e00 (15:5e00)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text4: ; 55e0a (15:5e0a)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text5: ; 55e14 (15:5e14)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text6: ; 55e1e (15:5e1e)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text7: ; 55e28 (15:5e28)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text8: ; 55e32 (15:5e32)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text9: ; 55e3c (15:5e3c)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19Text10: ; 55e46 (15:5e46)
+	db $08 ; asm
+	ld hl, Route19TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route19BattleText1: ; 55e50 (15:5e50)
+	TX_FAR _Route19BattleText1
+	db "@"
+
+Route19EndBattleText1: ; 55e55 (15:5e55)
+	TX_FAR _Route19EndBattleText1
+	db "@"
+
+Route19AfterBattleText1: ; 55e5a (15:5e5a)
+	TX_FAR _Route19AfterBattleText1
+	db "@"
+
+Route19BattleText2: ; 55e5f (15:5e5f)
+	TX_FAR _Route19BattleText2
+	db "@"
+
+Route19EndBattleText2: ; 55e64 (15:5e64)
+	TX_FAR _Route19EndBattleText2
+	db "@"
+
+Route19AfterBattleText2: ; 55e69 (15:5e69)
+	TX_FAR _Route19AfterBattleText2
+	db "@"
+
+Route19BattleText3: ; 55e6e (15:5e6e)
+	TX_FAR _Route19BattleText3
+	db "@"
+
+Route19EndBattleText3: ; 55e73 (15:5e73)
+	TX_FAR _Route19EndBattleText3
+	db "@"
+
+Route19AfterBattleText3: ; 55e78 (15:5e78)
+	TX_FAR _Route19AfterBattleText3
+	db "@"
+
+Route19BattleText4: ; 55e7d (15:5e7d)
+	TX_FAR _Route19BattleText4
+	db "@"
+
+Route19EndBattleText4: ; 55e82 (15:5e82)
+	TX_FAR _Route19EndBattleText4
+	db "@"
+
+Route19AfterBattleText4: ; 55e87 (15:5e87)
+	TX_FAR _Route19AfterBattleText4
+	db "@"
+
+Route19BattleText5: ; 55e8c (15:5e8c)
+	TX_FAR _Route19BattleText5
+	db "@"
+
+Route19EndBattleText5: ; 55e91 (15:5e91)
+	TX_FAR _Route19EndBattleText5
+	db "@"
+
+Route19AfterBattleText5: ; 55e96 (15:5e96)
+	TX_FAR _Route19AfterBattleText5
+	db "@"
+
+Route19BattleText6: ; 55e9b (15:5e9b)
+	TX_FAR _Route19BattleText6
+	db "@"
+
+Route19EndBattleText6: ; 55ea0 (15:5ea0)
+	TX_FAR _Route19EndBattleText6
+	db "@"
+
+Route19AfterBattleText6: ; 55ea5 (15:5ea5)
+	TX_FAR _Route19AfterBattleText6
+	db "@"
+
+Route19BattleText7: ; 55eaa (15:5eaa)
+	TX_FAR _Route19BattleText7
+	db "@"
+
+Route19EndBattleText7: ; 55eaf (15:5eaf)
+	TX_FAR _Route19EndBattleText7
+	db "@"
+
+Route19AfterBattleText7: ; 55eb4 (15:5eb4)
+	TX_FAR _Route19AfterBattleText7
+	db "@"
+
+Route19BattleText8: ; 55eb9 (15:5eb9)
+	TX_FAR _Route19BattleText8
+	db "@"
+
+Route19EndBattleText8: ; 55ebe (15:5ebe)
+	TX_FAR _Route19EndBattleText8
+	db "@"
+
+Route19AfterBattleText8: ; 55ec3 (15:5ec3)
+	TX_FAR _Route19AfterBattleText8
+	db "@"
+
+Route19BattleText9: ; 55ec8 (15:5ec8)
+	TX_FAR _Route19BattleText9
+	db "@"
+
+Route19EndBattleText9: ; 55ecd (15:5ecd)
+	TX_FAR _Route19EndBattleText9
+	db "@"
+
+Route19AfterBattleText9: ; 55ed2 (15:5ed2)
+	TX_FAR _Route19AfterBattleText9
+	db "@"
+
+Route19BattleText10: ; 55ed7 (15:5ed7)
+	TX_FAR _Route19BattleText10
+	db "@"
+
+Route19EndBattleText10: ; 55edc (15:5edc)
+	TX_FAR _Route19EndBattleText10
+	db "@"
+
+Route19AfterBattleText10: ; 55ee1 (15:5ee1)
+	TX_FAR _Route19AfterBattleText10
+	db "@"
+
+Route19Text11: ; 55ee6 (15:5ee6)
+	TX_FAR _Route19Text11
+	db "@"
--- /dev/null
+++ b/scripts/route2.asm
@@ -1,0 +1,16 @@
+Route2Script: ; 554e3 (15:54e3)
+	jp EnableAutoTextBoxDrawing
+
+Route2TextPointers: ; 554e6 (15:54e6)
+	dw Predef5CText
+	dw Predef5CText
+	dw Route2Text3
+	dw Route2Text4
+
+Route2Text3: ; 554ee (15:54ee)
+	TX_FAR _Route2Text3
+	db "@"
+
+Route2Text4: ; 554f3 (15:54f3)
+	TX_FAR _Route2Text4
+	db "@"
--- /dev/null
+++ b/scripts/route20.asm
@@ -1,0 +1,356 @@
+Route20Script: ; 50ca9 (14:4ca9)
+	ld hl, $d7e7
+	bit 0, [hl]
+	res 0, [hl]
+	call nz, Route20Script_50cc6
+	call EnableAutoTextBoxDrawing
+	ld hl, Route20TrainerHeader0 ; $4d3a
+	ld de, Route20ScriptPointers
+	ld a, [W_ROUTE20CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE20CURSCRIPT], a
+	ret
+
+Route20Script_50cc6: ; 50cc6 (14:4cc6)
+	ld a, [$d880]
+	and $3
+	cp $3
+	jr z, .asm_50cef
+	ld a, $d7
+	call Route20Script_50d0c
+	ld a, $d8
+	call Route20Script_50d0c
+	ld hl, .MissableObjectIDs ; $4ce8
+.asm_50cdc
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_50cef
+	push hl
+	call Route20Script_50d14
+	pop hl
+	jr .asm_50cdc
+
+.MissableObjectIDs: ; 50ce8 (14:4ce8)
+	db $D9,$DA,$DB,$DC,$DF,$E0,$FF
+
+.asm_50cef
+	ld a, [$d881]
+	and $3
+	cp $3
+	ret z
+	ld a, $dd
+	call Route20Script_50d0c
+	ld a, $de
+	call Route20Script_50d0c
+	ld a, $e1
+	call Route20Script_50d14
+	ld a, $e2
+	call Route20Script_50d14
+	ret
+
+Route20Script_50d0c: ; 50d0c (14:4d0c)
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+
+Route20Script_50d14: ; 50d14 (14:4d14)
+	ld [$cc4d], a
+	ld a, $11
+	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+
+Route20ScriptPointers: ; 50d1c (14:4d1c)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route20TextPointers: ; 50d22 (14:4d22)
+	dw Route20Text1
+	dw Route20Text2
+	dw Route20Text3
+	dw Route20Text4
+	dw Route20Text5
+	dw Route20Text6
+	dw Route20Text7
+	dw Route20Text8
+	dw Route20Text9
+	dw Route20Text10
+	dw Route20Text11
+	dw Route20Text12
+
+Route20TrainerHeaders: ; 50d3a (14:4d3a)
+Route20TrainerHeader0: ; 50d3a (14:4d3a)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText1 ; 0x4e17 TextBeforeBattle
+	dw Route20AfterBattleText1 ; 0x4e21 TextAfterBattle
+	dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
+	dw Route20EndBattleText1 ; 0x4e1c TextEndBattle
+
+Route20TrainerHeader2: ; 50d46 (14:4d46)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText2 ; 0x4e26 TextBeforeBattle
+	dw Route20AfterBattleText2 ; 0x4e30 TextAfterBattle
+	dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
+	dw Route20EndBattleText2 ; 0x4e2b TextEndBattle
+
+Route20TrainerHeader3: ; 50d52 (14:4d52)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText3 ; 0x4e35 TextBeforeBattle
+	dw Route20AfterBattleText3 ; 0x4e3f TextAfterBattle
+	dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
+	dw Route20EndBattleText3 ; 0x4e3a TextEndBattle
+
+Route20TrainerHeader4: ; 50d5e (14:4d5e)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText4 ; 0x4e44 TextBeforeBattle
+	dw Route20AfterBattleText4 ; 0x4e4e TextAfterBattle
+	dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
+	dw Route20EndBattleText4 ; 0x4e49 TextEndBattle
+
+Route20TrainerHeader5: ; 50d6a (14:4d6a)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText5 ; 0x4e53 TextBeforeBattle
+	dw Route20AfterBattleText5 ; 0x4e5d TextAfterBattle
+	dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
+	dw Route20EndBattleText5 ; 0x4e58 TextEndBattle
+
+Route20TrainerHeader6: ; 50d76 (14:4d76)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText6 ; 0x4e62 TextBeforeBattle
+	dw Route20AfterBattleText6 ; 0x4e6c TextAfterBattle
+	dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
+	dw Route20EndBattleText6 ; 0x4e67 TextEndBattle
+
+Route20TrainerHeader7: ; 50d82 (14:4d82)
+	db $7 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText7 ; 0x4e71 TextBeforeBattle
+	dw Route20AfterBattleText7 ; 0x4e7b TextAfterBattle
+	dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
+	dw Route20EndBattleText7 ; 0x4e76 TextEndBattle
+
+Route20TrainerHeader8: ; 50d8e (14:4d8e)
+	db $8 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText8 ; 0x4e80 TextBeforeBattle
+	dw Route20AfterBattleText8 ; 0x4e8a TextAfterBattle
+	dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
+	dw Route20EndBattleText8 ; 0x4e85 TextEndBattle
+
+Route20TrainerHeader9: ; 50d9a (14:4d9a)
+	db $9 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText9 ; 0x4e8f TextBeforeBattle
+	dw Route20AfterBattleText9 ; 0x4e99 TextAfterBattle
+	dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
+	dw Route20EndBattleText9 ; 0x4e94 TextEndBattle
+
+Route20TrainerHeader10: ; 50da6 (14:4da6)
+	db $a ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e7 ; flag's byte
+	dw Route20BattleText10 ; 0x4e9e TextBeforeBattle
+	dw Route20AfterBattleText10 ; 0x4ea8 TextAfterBattle
+	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
+	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
+
+	db $ff
+
+Route20Text1: ; 50db3 (14:4db3)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text2: ; 50dbd (14:4dbd)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text3: ; 50dc7 (14:4dc7)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text4: ; 50dd1 (14:4dd1)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text5: ; 50ddb (14:4ddb)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text6: ; 50de5 (14:4de5)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text7: ; 50def (14:4def)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text8: ; 50df9 (14:4df9)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text9: ; 50e03 (14:4e03)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20Text10: ; 50e0d (14:4e0d)
+	db $08 ; asm
+	ld hl, Route20TrainerHeader10
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route20BattleText1: ; 50e17 (14:4e17)
+	TX_FAR _Route20BattleText1
+	db "@"
+
+Route20EndBattleText1: ; 50e1c (14:4e1c)
+	TX_FAR _Route20EndBattleText1
+	db "@"
+
+Route20AfterBattleText1: ; 50e21 (14:4e21)
+	TX_FAR _Route20AfterBattleText1
+	db "@"
+
+Route20BattleText2: ; 50e26 (14:4e26)
+	TX_FAR _Route20BattleText2
+	db "@"
+
+Route20EndBattleText2: ; 50e2b (14:4e2b)
+	TX_FAR _Route20EndBattleText2
+	db "@"
+
+Route20AfterBattleText2: ; 50e30 (14:4e30)
+	TX_FAR _Route20AfterBattleText2
+	db "@"
+
+Route20BattleText3: ; 50e35 (14:4e35)
+	TX_FAR _Route20BattleText3
+	db "@"
+
+Route20EndBattleText3: ; 50e3a (14:4e3a)
+	TX_FAR _Route20EndBattleText3
+	db "@"
+
+Route20AfterBattleText3: ; 50e3f (14:4e3f)
+	TX_FAR _Route20AfterBattleText3
+	db "@"
+
+Route20BattleText4: ; 50e44 (14:4e44)
+	TX_FAR _Route20BattleText4
+	db "@"
+
+Route20EndBattleText4: ; 50e49 (14:4e49)
+	TX_FAR _Route20EndBattleText4
+	db "@"
+
+Route20AfterBattleText4: ; 50e4e (14:4e4e)
+	TX_FAR _Route20AfterBattleText4
+	db "@"
+
+Route20BattleText5: ; 50e53 (14:4e53)
+	TX_FAR _Route20BattleText5
+	db "@"
+
+Route20EndBattleText5: ; 50e58 (14:4e58)
+	TX_FAR _Route20EndBattleText5
+	db "@"
+
+Route20AfterBattleText5: ; 50e5d (14:4e5d)
+	TX_FAR _Route20AfterBattleText5
+	db "@"
+
+Route20BattleText6: ; 50e62 (14:4e62)
+	TX_FAR _Route20BattleText6
+	db "@"
+
+Route20EndBattleText6: ; 50e67 (14:4e67)
+	TX_FAR _Route20EndBattleText6
+	db "@"
+
+Route20AfterBattleText6: ; 50e6c (14:4e6c)
+	TX_FAR _Route20AfterBattleText6
+	db "@"
+
+Route20BattleText7: ; 50e71 (14:4e71)
+	TX_FAR _Route20BattleText7
+	db "@"
+
+Route20EndBattleText7: ; 50e76 (14:4e76)
+	TX_FAR _Route20EndBattleText7
+	db "@"
+
+Route20AfterBattleText7: ; 50e7b (14:4e7b)
+	TX_FAR _Route20AfterBattleText7
+	db "@"
+
+Route20BattleText8: ; 50e80 (14:4e80)
+	TX_FAR _Route20BattleText8
+	db "@"
+
+Route20EndBattleText8: ; 50e85 (14:4e85)
+	TX_FAR _Route20EndBattleText8
+	db "@"
+
+Route20AfterBattleText8: ; 50e8a (14:4e8a)
+	TX_FAR _Route20AfterBattleText8
+	db "@"
+
+Route20BattleText9: ; 50e8f (14:4e8f)
+	TX_FAR _Route20BattleText9
+	db "@"
+
+Route20EndBattleText9: ; 50e94 (14:4e94)
+	TX_FAR _Route20EndBattleText9
+	db "@"
+
+Route20AfterBattleText9: ; 50e99 (14:4e99)
+	TX_FAR _Route20AfterBattleText9
+	db "@"
+
+Route20BattleText10: ; 50e9e (14:4e9e)
+	TX_FAR _Route20BattleText10
+	db "@"
+
+Route20EndBattleText10: ; 50ea3 (14:4ea3)
+	TX_FAR _Route20EndBattleText10
+	db "@"
+
+Route20AfterBattleText10: ; 50ea8 (14:4ea8)
+	TX_FAR _Route20AfterBattleText10
+	db "@"
+
+Route20Text12: ; 50ead (14:4ead)
+Route20Text11: ; 50ead (14:4ead)
+	TX_FAR _Route20Text11
+	db "@"
--- /dev/null
+++ b/scripts/route21.asm
@@ -1,0 +1,270 @@
+Route21Script: ; 55eeb (15:5eeb)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route21TrainerHeaders
+	ld de, Route21ScriptPointers
+	ld a, [W_ROUTE21CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE21CURSCRIPT], a
+	ret
+
+Route21ScriptPointers: ; 55efe (15:5efe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route21TextPointers: ; 55f04 (15:5f04)
+	dw Route21Text1
+	dw Route21Text2
+	dw Route21Text3
+	dw Route21Text4
+	dw Route21Text5
+	dw Route21Text6
+	dw Route21Text7
+	dw Route21Text8
+	dw Route21Text9
+
+Route21TrainerHeaders: ; 55f16 (15:5f16)
+Route21TrainerHeader0: ; 55f16 (15:5f16)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText1 ; 0x5fdd TextBeforeBattle
+	dw Route21AfterBattleText1 ; 0x5fe7 TextAfterBattle
+	dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
+	dw Route21EndBattleText1 ; 0x5fe2 TextEndBattle
+
+Route21TrainerHeader1: ; 55f22 (15:5f22)
+	db $2 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText2 ; 0x5fec TextBeforeBattle
+	dw Route21AfterBattleText2 ; 0x5ff6 TextAfterBattle
+	dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
+	dw Route21EndBattleText2 ; 0x5ff1 TextEndBattle
+
+Route21TrainerHeader2: ; 55f2e (15:5f2e)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText3 ; 0x5ffb TextBeforeBattle
+	dw Route21AfterBattleText3 ; 0x6005 TextAfterBattle
+	dw Route21EndBattleText3 ; 0x6000 TextEndBattle
+	dw Route21EndBattleText3 ; 0x6000 TextEndBattle
+
+Route21TrainerHeader3: ; 55f3a (15:5f3a)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText4 ; 0x600a TextBeforeBattle
+	dw Route21AfterBattleText4 ; 0x6014 TextAfterBattle
+	dw Route21EndBattleText4 ; 0x600f TextEndBattle
+	dw Route21EndBattleText4 ; 0x600f TextEndBattle
+
+Route21TrainerHeader4: ; 55f46 (15:5f46)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText5 ; 0x6019 TextBeforeBattle
+	dw Route21AfterBattleText5 ; 0x6023 TextAfterBattle
+	dw Route21EndBattleText5 ; 0x601e TextEndBattle
+	dw Route21EndBattleText5 ; 0x601e TextEndBattle
+
+Route21TrainerHeader5: ; 55f52 (15:5f52)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText6 ; 0x6028 TextBeforeBattle
+	dw Route21AfterBattleText6 ; 0x6032 TextAfterBattle
+	dw Route21EndBattleText6 ; 0x602d TextEndBattle
+	dw Route21EndBattleText6 ; 0x602d TextEndBattle
+
+Route21TrainerHeader6: ; 55f5e (15:5f5e)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText7 ; 0x6037 TextBeforeBattle
+	dw Route21AfterBattleText7 ; 0x6041 TextAfterBattle
+	dw Route21EndBattleText7 ; 0x603c TextEndBattle
+	dw Route21EndBattleText7 ; 0x603c TextEndBattle
+
+Route21TrainerHeader7: ; 55f6a (15:5f6a)
+	db $8 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText8 ; 0x6046 TextBeforeBattle
+	dw Route21AfterBattleText8 ; 0x6050 TextAfterBattle
+	dw Route21EndBattleText8 ; 0x604b TextEndBattle
+	dw Route21EndBattleText8 ; 0x604b TextEndBattle
+
+Route21TrainerHeader8: ; 55f76 (15:5f76)
+	db $9 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7e9 ; flag's byte
+	dw Route21BattleText9 ; 0x6055 TextBeforeBattle
+	dw Route21AfterBattleText9 ; 0x605f TextAfterBattle
+	dw Route21EndBattleText9 ; 0x605a TextEndBattle
+	dw Route21EndBattleText9 ; 0x605a TextEndBattle
+
+	db $ff
+
+Route21Text1: ; 55f83 (15:5f83)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text2: ; 55f8d (15:5f8d)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text3: ; 55f97 (15:5f97)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text4: ; 55fa1 (15:5fa1)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text5: ; 55fab (15:5fab)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text6: ; 55fb5 (15:5fb5)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text7: ; 55fbf (15:5fbf)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text8: ; 55fc9 (15:5fc9)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21Text9: ; 55fd3 (15:5fd3)
+	db $08 ; asm
+	ld hl, Route21TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route21BattleText1: ; 55fdd (15:5fdd)
+	TX_FAR _Route21BattleText1
+	db "@"
+
+Route21EndBattleText1: ; 55fe2 (15:5fe2)
+	TX_FAR _Route21EndBattleText1
+	db "@"
+
+Route21AfterBattleText1: ; 55fe7 (15:5fe7)
+	TX_FAR _Route21AfterBattleText1
+	db "@"
+
+Route21BattleText2: ; 55fec (15:5fec)
+	TX_FAR _Route21BattleText2
+	db "@"
+
+Route21EndBattleText2: ; 55ff1 (15:5ff1)
+	TX_FAR _Route21EndBattleText2
+	db "@"
+
+Route21AfterBattleText2: ; 55ff6 (15:5ff6)
+	TX_FAR _Route21AfterBattleText2
+	db "@"
+
+Route21BattleText3: ; 55ffb (15:5ffb)
+	TX_FAR _Route21BattleText3
+	db "@"
+
+Route21EndBattleText3: ; 56000 (15:6000)
+	TX_FAR _Route21EndBattleText3
+	db "@"
+
+Route21AfterBattleText3: ; 56005 (15:6005)
+	TX_FAR _Route21AfterBattleText3
+	db "@"
+
+Route21BattleText4: ; 5600a (15:600a)
+	TX_FAR _Route21BattleText4
+	db "@"
+
+Route21EndBattleText4: ; 5600f (15:600f)
+	TX_FAR _Route21EndBattleText4
+	db "@"
+
+Route21AfterBattleText4: ; 56014 (15:6014)
+	TX_FAR _Route21AfterBattleText4
+	db "@"
+
+Route21BattleText5: ; 56019 (15:6019)
+	TX_FAR _Route21BattleText5
+	db "@"
+
+Route21EndBattleText5: ; 5601e (15:601e)
+	TX_FAR _Route21EndBattleText5
+	db "@"
+
+Route21AfterBattleText5: ; 56023 (15:6023)
+	TX_FAR _Route21AfterBattleText5
+	db "@"
+
+Route21BattleText6: ; 56028 (15:6028)
+	TX_FAR _Route21BattleText6
+	db "@"
+
+Route21EndBattleText6: ; 5602d (15:602d)
+	TX_FAR _Route21EndBattleText6
+	db "@"
+
+Route21AfterBattleText6: ; 56032 (15:6032)
+	TX_FAR _Route21AfterBattleText6
+	db "@"
+
+Route21BattleText7: ; 56037 (15:6037)
+	TX_FAR _Route21BattleText7
+	db "@"
+
+Route21EndBattleText7: ; 5603c (15:603c)
+	TX_FAR _Route21EndBattleText7
+	db "@"
+
+Route21AfterBattleText7: ; 56041 (15:6041)
+	TX_FAR _Route21AfterBattleText7
+	db "@"
+
+Route21BattleText8: ; 56046 (15:6046)
+	TX_FAR _Route21BattleText8
+	db "@"
+
+Route21EndBattleText8: ; 5604b (15:604b)
+	TX_FAR _Route21EndBattleText8
+	db "@"
+
+Route21AfterBattleText8: ; 56050 (15:6050)
+	TX_FAR _Route21AfterBattleText8
+	db "@"
+
+Route21BattleText9: ; 56055 (15:6055)
+	TX_FAR _Route21BattleText9
+	db "@"
+
+Route21EndBattleText9: ; 5605a (15:605a)
+	TX_FAR _Route21EndBattleText9
+	db "@"
+
+Route21AfterBattleText9: ; 5605f (15:605f)
+	TX_FAR _Route21AfterBattleText9
+	db "@"
--- /dev/null
+++ b/scripts/route22.asm
@@ -1,0 +1,440 @@
+Route22Script: ; 50eb2 (14:4eb2)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route22ScriptPointers
+	ld a, [W_ROUTE22CURSCRIPT]
+	jp CallFunctionInTable
+
+Route22ScriptPointers: ; 50ebe (14:4ebe)
+	dw Route22Script0
+	dw Route22Script1
+	dw Route22Script2
+	dw Route22Script3
+	dw Route22Script4
+	dw Route22Script5
+	dw Route22Script6
+	dw Route22Script7
+
+Route22Script_50ece: ; 50ece (14:4ece)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE22CURSCRIPT], a
+Route22Script7: ; 50ed5 (14:4ed5)
+	ret
+
+Route22Script_50ed6: ; 50ed6 (14:4ed6)
+	ld a, [W_RIVALSTARTER] ; $d715
+	ld b, a
+.asm_50eda
+	ld a, [hli]
+	cp b
+	jr z, .asm_50ee1
+	inc hl
+	jr .asm_50eda
+.asm_50ee1
+	ld a, [hl]
+	ld [W_TRAINERNO], a ; $d05d
+	ret
+
+Route22Script_50ee6: ; 50ee6 (14:4ee6)
+	ld de, MovementData_50efb ; $4efb
+	ld a, [$cf0d]
+	cp $1
+	jr z, .asm_50ef1
+	inc de
+.asm_50ef1
+	call MoveSprite
+	ld a, $c
+	ld [$ff8d], a
+	jp Func_34a6
+
+MovementData_50efb: ; 50efb (14:4efb)
+	db $C0,$C0,$C0,$C0,$FF
+
+Route22Script0: ; 50f00 (14:4f00)
+	ld a, [$d7eb]
+	bit 7, a
+	ret z
+	ld hl, .CoordsData_50f2d ; $4f2d
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, [$cd3d]
+	ld [$cf0d], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $2
+	ld [$d528], a
+	ld a, [$d7eb]
+	bit 0, a
+	jr nz, .asm_50f32 ; 0x50f25 $b
+	bit 1, a
+	jp nz, Route22Script_5104e
+	ret
+
+.CoordsData_50f2d
+	db $04, $1D
+	db $05, $1D
+	db $FF
+
+.asm_50f32
+	ld a, $1
+	ld [$cd4f], a
+	xor a
+	ld [$cd50], a
+	ld a, $4c
+	call Predef
+	ld a, [$d700]
+	and a
+	jr z, .asm_50f4e ; 0x50f44 $8
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+.asm_50f4e
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic
+	ld a, $1
+	ld [$ff8c], a
+	call Route22Script_50ee6
+	ld a, $1
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22Script1: ; 50f62 (14:4f62)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_50f78 ; 0x50f6d $9
+	ld a, $4
+	ld [$d528], a
+	ld a, $4
+	jr .asm_50f7a ; 0x50f76 $2
+.asm_50f78
+	ld a, $c
+.asm_50f7a
+	ld [$ff8d], a
+	ld a, $1
+	ld [$ff8c], a
+	call Func_34a6
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, Route22Text_511b7
+	ld de, Route22Text_511bc
+	call PreBattleSaveRegisters
+	ld a, SONY1 + $c8
+	ld [W_CUROPPONENT], a
+	ld hl, StarterMons_50faf ; $4faf
+	call Route22Script_50ed6
+	ld a, $2
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+StarterMons_50faf: ; 50faf (14:4faf)
+	db SQUIRTLE,$04
+	db BULBASAUR,$05
+	db CHARMANDER,$06
+
+Route22Script2: ; 50fb5 (14:4fb5)
+	ld a, [$d057]
+	cp $ff
+	jp z, Route22Script_50ece
+	ld a, [$c109]
+	and a
+	jr nz, .asm_50fc7 ; 0x50fc1 $4
+	ld a, $4
+	jr .asm_50fc9 ; 0x50fc5 $2
+.asm_50fc7
+	ld a, $c
+.asm_50fc9
+	ld [$ff8d], a
+	ld a, $1
+	ld [$ff8c], a
+	call Func_34a6
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d7eb
+	set 5, [hl]
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_50fff ; 0x50ff8 $5
+	call Route22Script_51008
+	jr .asm_51002 ; 0x50ffd $3
+.asm_50fff
+	call Route22Script_5100d
+.asm_51002
+	ld a, $3
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22Script_51008: ; 51008 (14:5008)
+	ld de, MovementData_51017 ; $5017
+	jr asm_51010
+
+Route22Script_5100d: ; 5100d (14:500d)
+	ld de, MovementData_5101f ; $501f
+asm_51010
+	ld a, $1
+	ld [H_SPRITEHEIGHT], a
+	jp MoveSprite
+
+MovementData_51017: ; 51017 (14:5017)
+	db $C0,$C0,$00,$00,$00,$00,$00,$FF
+
+MovementData_5101f: ; 5101f (14:501f)
+	db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
+
+Route22Script3: ; 5102a (14:502a)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $22
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	call Func_2307
+	ld hl, $d7eb
+	res 0, [hl]
+	res 7, [hl]
+	ld a, $0
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22Script_5104e: ; 5104e (14:504e)
+	ld a, $2
+	ld [$cd4f], a
+	xor a
+	ld [$cd50], a
+	ld a, $4c
+	call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
+	ld a, [$d700]
+	and a
+	jr z, .skipYVisibilityTesta
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+.skipYVisibilityTesta
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateTempo)
+	ld hl, Music_RivalAlternateTempo
+	call Bankswitch
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call Route22Script_50ee6
+	ld a, $4
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22Script4: ; 51087 (14:5087)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_510a1
+	ld a, $4
+	ld [$d528], a
+	ld a, $4
+	jr .asm_510a8
+.asm_510a1
+	ld a, $2
+	ld [$d528], a
+	ld a, $c
+.asm_510a8
+	ld [$ff8d], a
+	call Func_34a6
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, Route22Text_511cb ; $51cb
+	ld de, Route22Text_511d0 ; $51d0
+	call PreBattleSaveRegisters
+	ld a, SONY2 + $c8
+	ld [W_CUROPPONENT], a ; $d059
+	ld hl, StarterMons_510d9 ; $50d9
+	call Route22Script_50ed6
+	ld a, $5
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+StarterMons_510d9: ; 510d9 (14:50d9)
+	db SQUIRTLE,$0a
+	db BULBASAUR,$0b
+	db CHARMANDER,$0c
+
+Route22Script5: ; 510df (14:50df)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, Route22Script_50ece
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_510fb
+	ld a, $4
+	ld [$d528], a
+	ld a, $4
+	jr .asm_51102
+.asm_510fb
+	ld a, $2
+	ld [$d528], a
+	ld a, $c
+.asm_51102
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d7eb
+	set 6, [hl]
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStartAndTempo)
+	ld hl, Music_RivalAlternateStartAndTempo
+	call Bankswitch
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_51134
+	call Route22Script_5113d
+	jr .asm_51137
+.asm_51134
+	call Route22Script_51142
+.asm_51137
+	ld a, $6
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22Script_5113d: ; 5113d (14:513d)
+	ld de, MovementData_5114c ; $514c
+	jr asm_51145
+
+Route22Script_51142: ; 51142 (14:5142)
+	ld de, MovementData_5114d ; $514d
+asm_51145: ; 51145 (14:5145)
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp MoveSprite
+
+MovementData_5114c: ; 5114c (14:514c)
+	db $80
+
+MovementData_5114d: ; 5114d (14:514d)
+	db $80,$80,$80,$FF
+
+Route22Script6: ; 51151 (14:5151)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $23
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	call Func_2307
+	ld hl, $d7eb
+	res 1, [hl]
+	res 7, [hl]
+	ld a, $7
+	ld [W_ROUTE22CURSCRIPT], a
+	ret
+
+Route22TextPointers: ; 51175 (14:5175)
+	dw Route22Text1
+	dw Route22Text2
+	dw Route22Text3
+
+Route22Text1: ; 5117b (14:517b)
+	db $08 ; asm
+	ld a, [$d7eb]
+	bit 5, a
+	jr z, .asm_a88cf ; 0x51181
+	ld hl, Route22Text_511b2
+	call PrintText
+	jr .asm_48088 ; 0x51189
+.asm_a88cf ; 0x5118b
+	ld hl, Route22Text_511ad
+	call PrintText
+.asm_48088 ; 0x51191
+	jp TextScriptEnd
+
+Route22Text2: ; 51194 (14:5194)
+	db $08 ; asm
+	ld a, [$d7eb]
+	bit 6, a
+	jr z, .asm_58c0a ; 0x5119a
+	ld hl, Route22Text_511c6
+	call PrintText
+	jr .asm_673ee ; 0x511a2
+.asm_58c0a ; 0x511a4
+	ld hl, Route22Text_511c1
+	call PrintText
+.asm_673ee ; 0x511aa
+	jp TextScriptEnd
+
+Route22Text_511ad: ; 511ad (14:51ad)
+	TX_FAR _Route22Text_511ad
+	db "@"
+
+Route22Text_511b2: ; 511b2 (14:51b2)
+	TX_FAR _Route22Text_511b2
+	db "@"
+
+Route22Text_511b7: ; 511b7 (14:51b7)
+	TX_FAR _Route22Text_511b7
+	db "@"
+
+Route22Text_511bc: ; 511bc (14:51bc)
+	TX_FAR _Route22Text_511bc
+	db "@"
+
+Route22Text_511c1: ; 511c1 (14:51c1)
+	TX_FAR _Route22Text_511c1
+	db "@"
+
+Route22Text_511c6: ; 511c6 (14:51c6)
+	TX_FAR _Route22Text_511c6
+	db "@"
+
+Route22Text_511cb: ; 511cb (14:51cb)
+	TX_FAR _Route22Text_511cb
+	db "@"
+
+Route22Text_511d0: ; 511d0 (14:51d0)
+	TX_FAR _Route22Text_511d0
+	db "@"
+
+Route22Text3: ; 511d5 (14:51d5)
+	TX_FAR _Route22Text3
+	db "@"
--- /dev/null
+++ b/scripts/route22gate.asm
@@ -1,0 +1,92 @@
+Route22GateScript: ; 1e683 (7:6683)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route22GateScriptPointers
+	ld a, [W_ROUTE22GATECURSCRIPT]
+	call CallFunctionInTable
+	ld a, [W_YCOORD]
+	cp $4
+	ld a, $22
+	jr c, .asm_1e69a ; 0x1e696 $2
+	ld a, $21
+.asm_1e69a
+	ld [$d365], a
+	ret
+
+Route22GateScriptPointers: ; 1e69e (7:669e)
+	dw Route22GateScript0
+	dw Route22GateScript1
+	dw Route22GateScript2
+
+Route22GateScript0: ; 1e6a4 (7:66a4)
+	ld hl, Route22GateScriptCoords
+	call ArePlayerCoordsInArray
+	ret nc
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $1
+	ld [$ff8c], a
+	jp DisplayTextID
+
+Route22GateScriptCoords: ; 1e6b5 (7:66b5)
+	db 2,4
+	db 2,5
+	db $ff
+
+Route22GateScript_1e6ba: ; 1e6ba (7:66ba)
+	ld a, $1
+	ld [$cd38], a
+	ld a, $80
+	ld [$ccd3], a
+	ld [$c109], a
+	ld [wJoypadForbiddenButtonsMask], a
+	jp Func_3486
+
+Route22GateScript1: ; 1e6cd (7:66cd)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	call Delay3
+	ld a, $0
+	ld [W_ROUTE22GATECURSCRIPT], a
+Route22GateScript2: ; 1e6de (7:66de)
+	ret
+
+Route22GateTextPointers: ; 1e6df (7:66df)
+	dw Route22GateText1
+
+Route22GateText1: ; 1e6e1 (7:66e1)
+	db $8
+	ld a, [W_OBTAINEDBADGES]
+	bit 0, a
+	jr nz, .asm_8a809 ; 0x1e6e7 $d
+	ld hl, Route22GateText_1e704
+	call PrintText
+	call Route22GateScript_1e6ba
+	ld a, $1
+	jr .asm_20f7e ; 0x1e6f4 $8
+.asm_8a809 ; 0x1e6f6
+	ld hl, Route22GateText_1e71a
+	call PrintText
+	ld a, $2
+.asm_20f7e ; 0x1e6fe
+	ld [W_ROUTE22GATECURSCRIPT], a
+	jp TextScriptEnd
+
+Route22GateText_1e704: ; 1e704 (7:6704)
+	TX_FAR _Route22GateText_1e704 ; 0x8cfbb
+	db $8
+	ld a, (SFX_02_51 - SFX_Headers_02) / 3
+	call PlaySoundWaitForCurrent
+	call WaitForSoundToFinish
+	ld hl, Route22GateText_1e715 ; $6715
+	ret
+
+Route22GateText_1e715: ; 1e715 (7:6715)
+	TX_FAR _Route22GateText_1e715
+	db "@"
+
+Route22GateText_1e71a: ; 1e71a (7:671a)
+	TX_FAR _Route22GateText_1e71a ; 0x8d03e
+	db $0B, "@"
--- /dev/null
+++ b/scripts/route23.asm
@@ -1,0 +1,245 @@
+Route23Script: ; 511da (14:51da)
+	call Route23Script_511e9
+	call EnableAutoTextBoxDrawing
+	ld hl, Route23ScriptPointers
+	ld a, [W_ROUTE23CURSCRIPT]
+	jp CallFunctionInTable
+
+Route23Script_511e9: ; 511e9 (14:51e9)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	ld hl, $d7ee
+	res 0, [hl]
+	res 7, [hl]
+	ld hl, $d813
+	res 0, [hl]
+	res 6, [hl]
+	ld a, $7a
+	ld [$cc4d], a
+	ld a, $15
+	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+	ld a, $60
+	ld [$cc4d], a
+	ld a, $11
+	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+
+Route23ScriptPointers: ; 51213 (14:5213)
+	dw Route23Script0
+	dw Route23Script1
+	dw Route23Script2
+
+Route23Script0: ; 51219 (14:5219)
+	ld hl, YCoordsData_51255 ; $5255
+	ld a, [W_YCOORD]
+	ld b, a
+	ld e, $0
+	ld c, $7
+.asm_51224
+	ld a, [hli]
+	cp $ff
+	ret z
+	inc e
+	dec c
+	cp b
+	jr nz, .asm_51224 ; 0x5122b $f7
+	cp $23
+	jr nz, .asm_51237 ; 0x5122f $6
+	ld a, [W_XCOORD]
+	cp $e
+	ret nc
+.asm_51237
+	ld a, e
+	ld [$ff8c], a
+	ld a, c
+	ld [$cd3d], a
+	ld b, $2
+	ld hl, $d7ed
+	ld a, $10
+	call Predef
+	ld a, c
+	and a
+	ret nz
+	call Route23Script_5125d
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ret
+
+YCoordsData_51255: ; 51255 (14:5255)
+	db $23,$38,$55,$60,$69,$77,$88,$FF
+
+Route23Script_5125d: ; 5125d (14:525d)
+	ld hl, BadgeTextPointers ; $5276
+	ld a, [wWhichTrade] ; $cd3d
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld de, $cd6d
+.asm_5126e
+	ld a, [hli]
+	ld [de], a
+	inc de
+	cp $50
+	jr nz, .asm_5126e
+	ret
+
+BadgeTextPointers: ; 51276 (14:5276)
+	dw CascadeBadgeText
+	dw ThunderBadgeText
+	dw RainbowBadgeText
+	dw SoulBadgeText
+	dw MarshBadgeText
+	dw VolcanoBadgeText
+	dw EarthBadgeText
+
+EarthBadgeText: ; 51284 (14:5284)
+	db "EARTHBADGE@"
+
+VolcanoBadgeText: ; 5128f (14:528f)
+	db "VOLCANOBADGE@"
+
+MarshBadgeText: ; 5129c (14:529c)
+	db "MARSHBADGE@"
+
+SoulBadgeText: ; 512a7 (14:52a7)
+	db "SOULBADGE@"
+
+RainbowBadgeText: ; 512b1 (14:52b1)
+	db "RAINBOWBADGE@"
+
+ThunderBadgeText: ; 512be (14:52be)
+	db "THUNDERBADGE@"
+
+CascadeBadgeText: ; 512cb (14:52cb)
+	db "CASCADEBADGE@"
+
+Route23Script_512d8: ; 512d8 (14:52d8)
+	ld a, $1
+	ld [$cd38], a
+	ld a, $80
+	ld [$ccd3], a
+	xor a
+	ld [$c109], a
+	ld [wJoypadForbiddenButtonsMask], a
+	jp Func_3486
+
+Route23Script1: ; 512ec (14:52ec)
+	ld a, [$cd38]
+	and a
+	ret nz
+Route23Script2: ; 512f1 (14:52f1)
+	ld a, $0
+	ld [W_ROUTE23CURSCRIPT], a
+	ret
+
+Route23TextPointers: ; 512f7 (14:52f7)
+	dw Route23Text1
+	dw Route23Text2
+	dw Route23Text3
+	dw Route23Text4
+	dw Route23Text5
+	dw Route23Text6
+	dw Route23Text7
+	dw Route23Text8
+
+Route23Text1: ; 51307 (14:5307)
+	db $08 ; asm
+	ld a, $6
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text2: ; 51310 (14:5310)
+	db $08 ; asm
+	ld a, $5
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text3: ; 51319 (14:5319)
+	db $08 ; asm
+	ld a, $4
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text4: ; 51322 (14:5322)
+	db $08 ; asm
+	ld a, $3
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text5: ; 5132b (14:532b)
+	db $08 ; asm
+	ld a, $2
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text6: ; 51334 (14:5334)
+	db $08 ; asm
+	ld a, $1
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Text7: ; 5133d (14:533d)
+	db $8
+	ld a, $0
+	call Route23Script_51346
+	jp TextScriptEnd
+
+Route23Script_51346: ; 51346 (14:5346)
+	ld [wWhichTrade], a ; $cd3d
+	call Route23Script_5125d
+	ld a, [wWhichTrade] ; $cd3d
+	inc a
+	ld c, a
+	ld b, $2
+	ld hl, W_OBTAINEDBADGES
+	ld a, $10
+	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, c
+	and a
+	jr nz, .asm_5136e
+	ld hl, VictoryRoadGuardText1
+	call PrintText
+	call Route23Script_512d8
+	ld a, $1
+	ld [W_ROUTE23CURSCRIPT], a
+	ret
+.asm_5136e
+	ld hl, VictoryRoadGuardText2
+	call PrintText
+	ld a, [wWhichTrade] ; $cd3d
+	ld c, a
+	ld b, $1
+	ld hl, $d7ed
+	ld a, $10
+	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $2
+	ld [W_ROUTE23CURSCRIPT], a
+	ret
+
+Route23Script_51388: ; 51388 (14:5388)
+	ld hl, VictoryRoadGuardText2
+	jp PrintText
+
+VictoryRoadGuardText1: ; 5138e (14:538e)
+	TX_FAR _VictoryRoadGuardText1
+	db $08 ; asm
+	ld a, (SFX_02_51 - SFX_Headers_02) / 3
+	call PlaySoundWaitForCurrent
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+VictoryRoadGuardText2: ; 5139e (14:539e)
+	TX_FAR _VictoryRoadGuardText2
+	db $b
+	TX_FAR _VictoryRoadGuardText_513a3
+	db "@"
+
+Route23Text8: ; 513a8 (14:53a8)
+	TX_FAR _Route23Text8
+	db "@"
--- /dev/null
+++ b/scripts/route24.asm
@@ -1,0 +1,326 @@
+Route24Script: ; 513ad (14:53ad)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route24TrainerHeaders
+	ld de, Route24ScriptPointers
+	ld a, [W_ROUTE24CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE24CURSCRIPT], a
+	ret
+
+Route24Script_513c0: ; 513c0 (14:53c0)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route24ScriptPointers: ; 513cb (14:53cb)
+	dw Route24Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route24Script3
+	dw Route24Script4
+
+Route24Script0: ; 513d5 (14:53d5)
+	ld a, [$d7ef]
+	bit 0, a
+	jp nz, CheckFightingMapTrainers
+	ld hl, CoordsData_5140e ; $540e
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d7f0
+	bit 1, [hl]
+	res 1, [hl]
+	ret z
+	ld a, $80
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	call Func_3486
+	ld a, $4
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+CoordsData_5140e: ; 5140e (14:540e)
+	db $0F,$0A,$FF
+
+Route24Script4: ; 51411 (14:5411)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	ld a, $0
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route24Script3: ; 51422 (14:5422)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, Route24Script_513c0
+	call UpdateSprites
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d7ef
+	set 1, [hl]
+	ld a, $1
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route24TextPointers: ; 5144b (14:544b)
+	dw Route24Text1
+	dw Route24Text2
+	dw Route24Text3
+	dw Route24Text4
+	dw Route24Text5
+	dw Route24Text6
+	dw Route24Text7
+	dw Predef5CText
+
+Route24TrainerHeaders: ; 5145b (14:545b)
+Route24TrainerHeader0: ; 5145b (14:545b)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText1 ; 0x5571 TextBeforeBattle
+	dw Route24AfterBattleText1 ; 0x557b TextAfterBattle
+	dw Route24EndBattleText1 ; 0x5576 TextEndBattle
+	dw Route24EndBattleText1 ; 0x5576 TextEndBattle
+
+Route24TrainerHeader2: ; 51467 (14:5467)
+	db $3 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText2 ; 0x5580 TextBeforeBattle
+	dw Route24AfterBattleText2 ; 0x558a TextAfterBattle
+	dw Route24EndBattleText2 ; 0x5585 TextEndBattle
+	dw Route24EndBattleText2 ; 0x5585 TextEndBattle
+
+Route24TrainerHeader3: ; 51473 (14:5473)
+	db $4 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText3 ; 0x558f TextBeforeBattle
+	dw Route24AfterBattleText3 ; 0x5599 TextAfterBattle
+	dw Route24EndBattleText3 ; 0x5594 TextEndBattle
+	dw Route24EndBattleText3 ; 0x5594 TextEndBattle
+
+Route24TrainerHeader4: ; 5147f (14:547f)
+	db $5 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText4 ; 0x559e TextBeforeBattle
+	dw Route24AfterBattleText4 ; 0x55a8 TextAfterBattle
+	dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
+	dw Route24EndBattleText4 ; 0x55a3 TextEndBattle
+
+Route24TrainerHeader5: ; 5148b (14:548b)
+	db $6 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText5 ; 0x55ad TextBeforeBattle
+	dw Route24AfterBattleText5 ; 0x55b7 TextAfterBattle
+	dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
+	dw Route24EndBattleText5 ; 0x55b2 TextEndBattle
+
+Route24TrainerHeader6: ; 51497 (14:5497)
+	db $7 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ef ; flag's byte
+	dw Route24BattleText6 ; 0x55bc TextBeforeBattle
+	dw Route24AfterBattleText6 ; 0x55c6 TextAfterBattle
+	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
+	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
+
+	db $ff
+
+Route24Text1: ; 514a4 (14:54a4)
+	db $8
+	ld hl, $d7f0
+	res 1, [hl]
+	ld a, [$d7ef]
+	bit 0, a
+	jr nz, .asm_a03f5 ; 0x514af $48
+	ld hl, Route24Text_51510
+	call PrintText
+	ld bc, (NUGGET << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d7ef
+	set 0, [hl]
+	ld hl, Route24Text_5151a
+	call PrintText
+	ld hl, Route24Text_51526
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, Route24Text_5152b
+	ld de, Route24Text_5152b
+	call PreBattleSaveRegisters
+	ld a, [$ff8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $3
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	jp TextScriptEnd
+.asm_a03f5 ; 0x514f9
+	ld hl, Route24Text_51530
+	call PrintText
+	jp TextScriptEnd
+.BagFull
+	ld hl, Route24Text_51521
+	call PrintText
+	ld hl, $d7f0
+	set 1, [hl]
+	jp TextScriptEnd
+
+Route24Text_51510: ; 51510 (14:5510)
+	TX_FAR _Route24Text_51510 ; 0x92721
+	db $0B
+	TX_FAR _Route24Text_51515 ; 0x92755
+	db "@"
+
+Route24Text_5151a: ; 5151a (14:551a)
+	TX_FAR _Route24Text_5151a ; 0x92779
+	db $0B, $6, "@"
+
+Route24Text_51521: ; 51521 (14:5521)
+	TX_FAR _Route24Text_51521
+	db "@"
+
+Route24Text_51526: ; 51526 (14:5526)
+	TX_FAR _Route24Text_51526
+	db "@"
+
+Route24Text_5152b: ; 5152b (14:552b)
+	TX_FAR _Route24Text_5152b
+	db "@"
+
+Route24Text_51530: ; 51530 (14:5530)
+	TX_FAR _Route24Text_51530
+	db "@"
+
+Route24Text2: ; 51535 (14:5535)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24Text3: ; 5153f (14:553f)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24Text4: ; 51549 (14:5549)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24Text5: ; 51553 (14:5553)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24Text6: ; 5155d (14:555d)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24Text7: ; 51567 (14:5567)
+	db $08 ; asm
+	ld hl, Route24TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route24BattleText1: ; 51571 (14:5571)
+	TX_FAR _Route24BattleText1
+	db "@"
+
+Route24EndBattleText1: ; 51576 (14:5576)
+	TX_FAR _Route24EndBattleText1
+	db "@"
+
+Route24AfterBattleText1: ; 5157b (14:557b)
+	TX_FAR _Route24AfterBattleText1
+	db "@"
+
+Route24BattleText2: ; 51580 (14:5580)
+	TX_FAR _Route24BattleText2
+	db "@"
+
+Route24EndBattleText2: ; 51585 (14:5585)
+	TX_FAR _Route24EndBattleText2
+	db "@"
+
+Route24AfterBattleText2: ; 5158a (14:558a)
+	TX_FAR _Route24AfterBattleText2
+	db "@"
+
+Route24BattleText3: ; 5158f (14:558f)
+	TX_FAR _Route24BattleText3
+	db "@"
+
+Route24EndBattleText3: ; 51594 (14:5594)
+	TX_FAR _Route24EndBattleText3
+	db "@"
+
+Route24AfterBattleText3: ; 51599 (14:5599)
+	TX_FAR _Route24AfterBattleText3
+	db "@"
+
+Route24BattleText4: ; 5159e (14:559e)
+	TX_FAR _Route24BattleText4
+	db "@"
+
+Route24EndBattleText4: ; 515a3 (14:55a3)
+	TX_FAR _Route24EndBattleText4
+	db "@"
+
+Route24AfterBattleText4: ; 515a8 (14:55a8)
+	TX_FAR _Route24AfterBattleText4
+	db "@"
+
+Route24BattleText5: ; 515ad (14:55ad)
+	TX_FAR _Route24BattleText5
+	db "@"
+
+Route24EndBattleText5: ; 515b2 (14:55b2)
+	TX_FAR _Route24EndBattleText5
+	db "@"
+
+Route24AfterBattleText5: ; 515b7 (14:55b7)
+	TX_FAR _Route24AfterBattleText5
+	db "@"
+
+Route24BattleText6: ; 515bc (14:55bc)
+	TX_FAR _Route24BattleText6
+	db "@"
+
+Route24EndBattleText6: ; 515c1 (14:55c1)
+	TX_FAR _Route24EndBattleText6
+	db "@"
+
+Route24AfterBattleText6: ; 515c6 (14:55c6)
+	TX_FAR _Route24AfterBattleText6
+	db "@"
--- /dev/null
+++ b/scripts/route25.asm
@@ -1,0 +1,309 @@
+Route25Script: ; 515cb (14:55cb)
+	call Route25Script_515e1
+	call EnableAutoTextBoxDrawing
+	ld hl, Route25TrainerHeaders
+	ld de, Route25ScriptPointers
+	ld a, [W_ROUTE25CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE25CURSCRIPT], a
+	ret
+
+Route25Script_515e1: ; 515e1 (14:55e1)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	ld hl, $d7f2
+	bit 7, [hl]
+	ret nz
+	bit 5, [hl]
+	jr nz, .asm_515ff
+	res 6, [hl]
+	ld a, $61
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+.asm_515ff
+	bit 4, [hl]
+	ret z
+	set 7, [hl]
+	ld a, $24
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $62
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $63
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+
+Route25ScriptPointers: ; 51622 (14:5622)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route25TextPointers: ; 51628 (14:5628)
+	dw Route25Text1
+	dw Route25Text2
+	dw Route25Text3
+	dw Route25Text4
+	dw Route25Text5
+	dw Route25Text6
+	dw Route25Text7
+	dw Route25Text8
+	dw Route25Text9
+	dw Predef5CText
+	dw Route25Text11
+
+Route25TrainerHeaders: ; 5163e (14:563e)
+Route25TrainerHeader0: ; 5163e (14:563e)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText1 ; 0x5705 TextBeforeBattle
+	dw Route25AfterBattleText1 ; 0x570f TextAfterBattle
+	dw Route25EndBattleText1 ; 0x570a TextEndBattle
+	dw Route25EndBattleText1 ; 0x570a TextEndBattle
+
+Route25TrainerHeader2: ; 5164a (14:564a)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText2 ; 0x5714 TextBeforeBattle
+	dw Route25AfterBattleText2 ; 0x571e TextAfterBattle
+	dw Route25EndBattleText2 ; 0x5719 TextEndBattle
+	dw Route25EndBattleText2 ; 0x5719 TextEndBattle
+
+Route25TrainerHeader3: ; 51656 (14:5656)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText3 ; 0x5723 TextBeforeBattle
+	dw Route25AfterBattleText3 ; 0x572d TextAfterBattle
+	dw Route25EndBattleText3 ; 0x5728 TextEndBattle
+	dw Route25EndBattleText3 ; 0x5728 TextEndBattle
+
+Route25TrainerHeader4: ; 51662 (14:5662)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText4 ; 0x5732 TextBeforeBattle
+	dw Route25AfterBattleText4 ; 0x573c TextAfterBattle
+	dw Route25EndBattleText4 ; 0x5737 TextEndBattle
+	dw Route25EndBattleText4 ; 0x5737 TextEndBattle
+
+Route25TrainerHeader5: ; 5166e (14:566e)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText5 ; 0x5741 TextBeforeBattle
+	dw Route25AfterBattleText5 ; 0x574b TextAfterBattle
+	dw Route25EndBattleText5 ; 0x5746 TextEndBattle
+	dw Route25EndBattleText5 ; 0x5746 TextEndBattle
+
+Route25TrainerHeader6: ; 5167a (14:567a)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText6 ; 0x5750 TextBeforeBattle
+	dw Route25AfterBattleText6 ; 0x575a TextAfterBattle
+	dw Route25EndBattleText6 ; 0x5755 TextEndBattle
+	dw Route25EndBattleText6 ; 0x5755 TextEndBattle
+
+Route25TrainerHeader7: ; 51686 (14:5686)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText7 ; 0x575f TextBeforeBattle
+	dw Route25AfterBattleText7 ; 0x5769 TextAfterBattle
+	dw Route25EndBattleText7 ; 0x5764 TextEndBattle
+	dw Route25EndBattleText7 ; 0x5764 TextEndBattle
+
+Route25TrainerHeader8: ; 51692 (14:5692)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText8 ; 0x576e TextBeforeBattle
+	dw Route25AfterBattleText8 ; 0x5778 TextAfterBattle
+	dw Route25EndBattleText8 ; 0x5773 TextEndBattle
+	dw Route25EndBattleText8 ; 0x5773 TextEndBattle
+
+Route25TrainerHeader9: ; 5169e (14:569e)
+	db $9 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7f1 ; flag's byte
+	dw Route25BattleText9 ; 0x577d TextBeforeBattle
+	dw Route25AfterBattleText9 ; 0x5787 TextAfterBattle
+	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
+	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
+
+	db $ff
+
+Route25Text1: ; 516ab (14:56ab)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text2: ; 516b5 (14:56b5)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text3: ; 516bf (14:56bf)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text4: ; 516c9 (14:56c9)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text5: ; 516d3 (14:56d3)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text6: ; 516dd (14:56dd)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text7: ; 516e7 (14:56e7)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text8: ; 516f1 (14:56f1)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25Text9: ; 516fb (14:56fb)
+	db $08 ; asm
+	ld hl, Route25TrainerHeader9
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route25BattleText1: ; 51705 (14:5705)
+	TX_FAR _Route25BattleText1
+	db "@"
+
+Route25EndBattleText1: ; 5170a (14:570a)
+	TX_FAR _Route25EndBattleText1
+	db "@"
+
+Route25AfterBattleText1: ; 5170f (14:570f)
+	TX_FAR _Route25AfterBattleText1
+	db "@"
+
+Route25BattleText2: ; 51714 (14:5714)
+	TX_FAR _Route25BattleText2
+	db "@"
+
+Route25EndBattleText2: ; 51719 (14:5719)
+	TX_FAR _Route25EndBattleText2
+	db "@"
+
+Route25AfterBattleText2: ; 5171e (14:571e)
+	TX_FAR _Route25AfterBattleText2
+	db "@"
+
+Route25BattleText3: ; 51723 (14:5723)
+	TX_FAR _Route25BattleText3
+	db "@"
+
+Route25EndBattleText3: ; 51728 (14:5728)
+	TX_FAR _Route25EndBattleText3
+	db "@"
+
+Route25AfterBattleText3: ; 5172d (14:572d)
+	TX_FAR _Route25AfterBattleText3
+	db "@"
+
+Route25BattleText4: ; 51732 (14:5732)
+	TX_FAR _Route25BattleText4
+	db "@"
+
+Route25EndBattleText4: ; 51737 (14:5737)
+	TX_FAR _Route25EndBattleText4
+	db "@"
+
+Route25AfterBattleText4: ; 5173c (14:573c)
+	TX_FAR _Route25AfterBattleText4
+	db "@"
+
+Route25BattleText5: ; 51741 (14:5741)
+	TX_FAR _Route25BattleText5
+	db "@"
+
+Route25EndBattleText5: ; 51746 (14:5746)
+	TX_FAR _Route25EndBattleText5
+	db "@"
+
+Route25AfterBattleText5: ; 5174b (14:574b)
+	TX_FAR _Route25AfterBattleText5
+	db "@"
+
+Route25BattleText6: ; 51750 (14:5750)
+	TX_FAR _Route25BattleText6
+	db "@"
+
+Route25EndBattleText6: ; 51755 (14:5755)
+	TX_FAR _Route25EndBattleText6
+	db "@"
+
+Route25AfterBattleText6: ; 5175a (14:575a)
+	TX_FAR _Route25AfterBattleText6
+	db "@"
+
+Route25BattleText7: ; 5175f (14:575f)
+	TX_FAR _Route25BattleText7
+	db "@"
+
+Route25EndBattleText7: ; 51764 (14:5764)
+	TX_FAR _Route25EndBattleText7
+	db "@"
+
+Route25AfterBattleText7: ; 51769 (14:5769)
+	TX_FAR _Route25AfterBattleText7
+	db "@"
+
+Route25BattleText8: ; 5176e (14:576e)
+	TX_FAR _Route25BattleText8
+	db "@"
+
+Route25EndBattleText8: ; 51773 (14:5773)
+	TX_FAR _Route25EndBattleText8
+	db "@"
+
+Route25AfterBattleText8: ; 51778 (14:5778)
+	TX_FAR _Route25AfterBattleText8
+	db "@"
+
+Route25BattleText9: ; 5177d (14:577d)
+	TX_FAR _Route25BattleText9
+	db "@"
+
+Route25EndBattleText9: ; 51782 (14:5782)
+	TX_FAR _Route25EndBattleText9
+	db "@"
+
+Route25AfterBattleText9: ; 51787 (14:5787)
+	TX_FAR _Route25AfterBattleText9
+	db "@"
+
+Route25Text11: ; 5178c (14:578c)
+	TX_FAR _Route25Text11
+	db "@"
--- /dev/null
+++ b/scripts/route2gate.asm
@@ -1,0 +1,42 @@
+Route2GateScript: ; 5d5d4 (17:55d4)
+	jp EnableAutoTextBoxDrawing
+
+Route2GateTextPointers: ; 5d5d7 (17:55d7)
+	dw Route2GateText1
+	dw Route2GateText2
+
+Route2GateText1: ; 5d5db (17:55db)
+	db $08 ; asm
+	ld a, [$d7c2]
+	bit 0, a
+	jr nz, .asm_6592c ; 0x5d5e1
+	ld a, $a
+	ldh [$db], a
+	ld a, $c8
+	ldh [$dc], a
+	ld [$d11e], a
+	call GetItemName ; $2fcf
+	ld hl, $cd6d
+	ld de, $cc5b
+	ld bc, $000d
+	call CopyData
+	ld a, $62
+	call Predef
+	ldh a, [$db]
+	cp $1
+	jr nz, .asm_ad646 ; 0x5d606
+	ld hl, $d7c2
+	set 0, [hl]
+.asm_6592c ; 0x5d60d
+	ld hl, Route2GateText_5d616
+	call PrintText
+.asm_ad646 ; 0x5d613
+	jp TextScriptEnd
+
+Route2GateText_5d616: ; 5d616 (17:5616)
+	TX_FAR _Route2GateText_5d616
+	db "@"
+
+Route2GateText2: ; 5d61b (17:561b)
+	TX_FAR _Route2GateText2
+	db "@"
--- /dev/null
+++ b/scripts/route2house.asm
@@ -1,0 +1,18 @@
+Route2HouseScript: ; 1deed (7:5eed)
+	jp EnableAutoTextBoxDrawing
+
+Route2HouseTextPointers: ; 1def0 (7:5ef0)
+	dw Route2HouseText1
+	dw Route2HouseText2
+
+Route2HouseText1: ; 1def4 (7:5ef4)
+	TX_FAR _Route2HouseText1
+	db "@"
+
+Route2HouseText2: ; 1def9 (7:5ef9)
+	db $08 ; asm
+	ld a, $1
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/route3.asm
@@ -1,0 +1,252 @@
+Route3Script: ; 554f8 (15:54f8)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route3TrainerHeader0
+	ld de, Route3ScriptPointers
+	ld a, [W_ROUTE3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE3CURSCRIPT], a
+	ret
+
+Route3ScriptPointers: ; 5550b (15:550b)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route3TextPointers: ; 55511 (15:5511)
+	dw Route3Text1
+	dw Route3Text2
+	dw Route3Text3
+	dw Route3Text4
+	dw Route3Text5
+	dw Route3Text6
+	dw Route3Text7
+	dw Route3Text8
+	dw Route3Text9
+	dw Route3Text10
+
+Route3TrainerHeaders: ; 55525 (15:5525)
+Route3TrainerHeader0: ; 55525 (15:5525)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText1 ; 0x5595 TextBeforeBattle
+	dw Route3AfterBattleText1 ; 0x559f TextAfterBattle
+	dw Route3EndBattleText1 ; 0x559a TextEndBattle
+	dw Route3EndBattleText1 ; 0x559a TextEndBattle
+
+Route3TrainerHeader2: ; 55531 (15:5531)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText2 ; 0x55ae TextBeforeBattle
+	dw Route3AfterBattleText2 ; 0x55b8 TextAfterBattle
+	dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
+	dw Route3EndBattleText2 ; 0x55b3 TextEndBattle
+
+Route3TrainerHeader3: ; 5553d (15:553d)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText3 ; 0x55c7 TextBeforeBattle
+	dw Route3AfterBattleText3 ; 0x55d1 TextAfterBattle
+	dw Route3EndBattleText3 ; 0x55cc TextEndBattle
+	dw Route3EndBattleText3 ; 0x55cc TextEndBattle
+
+Route3TrainerHeader4: ; 55549 (15:5549)
+	db $5 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText4 ; 0x55e0 TextBeforeBattle
+	dw Route3AfterBattleText4 ; 0x55ea TextAfterBattle
+	dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
+	dw Route3EndBattleText4 ; 0x55e5 TextEndBattle
+
+Route3TrainerHeader5: ; 55555 (15:5555)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText5 ; 0x55f9 TextBeforeBattle
+	dw Route3AfterBattleText5 ; 0x5603 TextAfterBattle
+	dw Route3EndBattleText5 ; 0x55fe TextEndBattle
+	dw Route3EndBattleText5 ; 0x55fe TextEndBattle
+
+Route3TrainerHeader6: ; 55561 (15:5561)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText6 ; 0x5612 TextBeforeBattle
+	dw Route3AfterBattleText6 ; 0x561c TextAfterBattle
+	dw Route3EndBattleText6 ; 0x5617 TextEndBattle
+	dw Route3EndBattleText6 ; 0x5617 TextEndBattle
+
+Route3TrainerHeader7: ; 5556d (15:556d)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText7 ; 0x562b TextBeforeBattle
+	dw Route3AfterBattleText7 ; 0x5635 TextAfterBattle
+	dw Route3EndBattleText7 ; 0x5630 TextEndBattle
+	dw Route3EndBattleText7 ; 0x5630 TextEndBattle
+
+Route3TrainerHeader8: ; 55579 (15:5579)
+	db $9 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7c3 ; flag's byte
+	dw Route3BattleText8 ; 0x5644 TextBeforeBattle
+	dw Route3AfterBattleText8 ; 0x564e TextAfterBattle
+	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
+	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
+
+	db $ff
+
+Route3Text1: ; 55586 (15:5586)
+	TX_FAR _Route3Text1
+	db "@"
+
+Route3Text2: ; 5558b (15:558b)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText1: ; 55595 (15:5595)
+	TX_FAR _Route3BattleText1
+	db "@"
+
+Route3EndBattleText1: ; 5559a (15:559a)
+	TX_FAR _Route3EndBattleText1
+	db "@"
+
+Route3AfterBattleText1: ; 5559f (15:559f)
+	TX_FAR _Route3AfterBattleText1
+	db "@"
+
+Route3Text3: ; 555a4 (15:55a4)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText2: ; 555ae (15:55ae)
+	TX_FAR _Route3BattleText2
+	db "@"
+
+Route3EndBattleText2: ; 555b3 (15:55b3)
+	TX_FAR _Route3EndBattleText2
+	db "@"
+
+Route3AfterBattleText2: ; 555b8 (15:55b8)
+	TX_FAR _Route3AfterBattleText2
+	db "@"
+
+Route3Text4: ; 555bd (15:55bd)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText3: ; 555c7 (15:55c7)
+	TX_FAR _Route3BattleText3
+	db "@"
+
+Route3EndBattleText3: ; 555cc (15:55cc)
+	TX_FAR _Route3EndBattleText3
+	db "@"
+
+Route3AfterBattleText3: ; 555d1 (15:55d1)
+	TX_FAR _Route3AfterBattleText3
+	db "@"
+
+Route3Text5: ; 555d6 (15:55d6)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText4: ; 555e0 (15:55e0)
+	TX_FAR _Route3BattleText4
+	db "@"
+
+Route3EndBattleText4: ; 555e5 (15:55e5)
+	TX_FAR _Route3EndBattleText4
+	db "@"
+
+Route3AfterBattleText4: ; 555ea (15:55ea)
+	TX_FAR _Route3AfterBattleText4
+	db "@"
+
+Route3Text6: ; 555ef (15:55ef)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText5: ; 555f9 (15:55f9)
+	TX_FAR _Route3BattleText5
+	db "@"
+
+Route3EndBattleText5: ; 555fe (15:55fe)
+	TX_FAR _Route3EndBattleText5
+	db "@"
+
+Route3AfterBattleText5: ; 55603 (15:5603)
+	TX_FAR _Route3AfterBattleText5
+	db "@"
+
+Route3Text7: ; 55608 (15:5608)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText6: ; 55612 (15:5612)
+	TX_FAR _Route3BattleText6
+	db "@"
+
+Route3EndBattleText6: ; 55617 (15:5617)
+	TX_FAR _Route3EndBattleText6
+	db "@"
+
+Route3AfterBattleText6: ; 5561c (15:561c)
+	TX_FAR _Route3AfterBattleText6
+	db "@"
+
+Route3Text8: ; 55621 (15:5621)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText7: ; 5562b (15:562b)
+	TX_FAR _Route3BattleText7
+	db "@"
+
+Route3EndBattleText7: ; 55630 (15:5630)
+	TX_FAR _Route3EndBattleText7
+	db "@"
+
+Route3AfterBattleText7: ; 55635 (15:5635)
+	TX_FAR _Route3AfterBattleText7
+	db "@"
+
+Route3Text9: ; 5563a (15:563a)
+	db $08 ; asm
+	ld hl, Route3TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route3BattleText8: ; 55644 (15:5644)
+	TX_FAR _Route3BattleText8
+	db "@"
+
+Route3EndBattleText8: ; 55649 (15:5649)
+	TX_FAR _Route3EndBattleText8
+	db "@"
+
+Route3AfterBattleText8: ; 5564e (15:564e)
+	TX_FAR _Route3AfterBattleText8
+	db "@"
+
+Route3Text10: ; 55653 (15:5653)
+	TX_FAR _Route3Text10
+	db "@"
--- /dev/null
+++ b/scripts/route4.asm
@@ -1,0 +1,63 @@
+Route4Script: ; 55658 (15:5658)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route4TrainerHeaders
+	ld de, Route4ScriptPointers
+	ld a, [W_ROUTE4CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE4CURSCRIPT], a
+	ret
+
+Route4ScriptPointers: ; 5566b (15:566b)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route4TextPointers: ; 55671 (15:5671)
+	dw Route4Text1
+	dw Route4Text2
+	dw Predef5CText
+	dw PokeCenterSignText
+	dw Route4Text5
+	dw Route4Text6
+
+Route4TrainerHeaders: ; 5567d (15:567d)
+Route4TrainerHeader0: ; 5567d (15:567d)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c5 ; flag's byte
+	dw Route4BattleText1 ; 0x5699 TextBeforeBattle
+	dw Route4AfterBattleText1 ; 0x56a3 TextAfterBattle
+	dw Route4EndBattleText1 ; 0x569e TextEndBattle
+	dw Route4EndBattleText1 ; 0x569e TextEndBattle
+
+	db $ff
+
+Route4Text1: ; 5568a (15:568a)
+	TX_FAR _Route4Text1
+	db "@"
+
+Route4Text2: ; 5568f (15:568f)
+	db $08 ; asm
+	ld hl, Route4TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route4BattleText1: ; 55699 (15:5699)
+	TX_FAR _Route4BattleText1
+	db "@"
+
+Route4EndBattleText1: ; 5569e (15:569e)
+	TX_FAR _Route4EndBattleText1
+	db "@"
+
+Route4AfterBattleText1: ; 556a3 (15:56a3)
+	TX_FAR _Route4AfterBattleText1
+	db "@"
+
+Route4Text5: ; 556a8 (15:56a8)
+	TX_FAR _Route4Text5
+	db "@"
+
+Route4Text6: ; 556ad (15:56ad)
+	TX_FAR _Route4Text6
+	db "@"
--- /dev/null
+++ b/scripts/route5.asm
@@ -1,0 +1,9 @@
+Route5Script: ; 556b2 (15:56b2)
+	jp EnableAutoTextBoxDrawing
+
+Route5TextPointers: ; 556b5 (15:56b5)
+	dw Route5Text1
+
+Route5Text1: ; 556b7 (15:56b7)
+	TX_FAR _Route5Text1
+	db "@"
--- /dev/null
+++ b/scripts/route5gate.asm
@@ -1,0 +1,121 @@
+Route5GateScript: ; 1df33 (7:5f33)
+	call EnableAutoTextBoxDrawing
+	ld a, [W_ROUTE5GATECURSCRIPT]
+	ld hl, Route5GateScriptPointers
+	jp CallFunctionInTable
+
+Route5GateScriptPointers: ; 1df3f (7:5f3f)
+	dw Route5GateScript0
+	dw Route5GateScript1
+
+Route5GateScript_1df43: ; 1df43 (7:5f43)
+	ld a, $40
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	jp Func_3486
+
+Route5GateScript0: ; 1df50 (7:5f50)
+	ld a, [$d728]
+	bit 6, a
+	ret nz
+	ld hl, CoordsData_1df8f
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $2
+	ld [$d528], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld b, BANK(RemoveGuardDrink)
+	ld hl, RemoveGuardDrink
+	call Bankswitch
+	ld a, [$ff00+$db]
+	and a
+	jr nz, .asm_1df82 ; 0x1df70 $10
+	ld a, $2
+	ld [$ff00+$8c], a
+	call DisplayTextID
+	call Route5GateScript_1df43
+	ld a, $1
+	ld [W_ROUTE5GATECURSCRIPT], a
+	ret
+.asm_1df82
+	ld a, $3
+	ld [$ff00+$8c], a
+	call DisplayTextID
+	ld hl, $d728
+	set 6, [hl]
+	ret
+
+CoordsData_1df8f: ; 1df8f (7:5f8f)
+	db 3,3
+	db 3,4
+	db $ff
+
+Route5GateScript1: ; 1df94 (7:5f94)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE5GATECURSCRIPT], a
+	ret
+	
+Route5GateTextPointers: ; 1dfa4 (7:5fa4)
+	dw Route5GateText1
+	dw Route5GateText2
+	dw Route5GateText3
+
+Route8GateText1: ; 1dfaa (7:5faa)
+Route7GateText1: ; 1dfaa (7:5faa)
+Route6GateText1: ; 1dfaa (7:5faa)
+Route5GateText1: ; 1dfaa (7:5faa)
+	db $8
+	ld a, [$d728]
+	bit 6, a
+	jr nz, .asm_88856 ; 0x1dfb0 $2c
+	ld b, BANK(RemoveGuardDrink)
+	ld hl, RemoveGuardDrink
+	call Bankswitch
+	ld a, [$ff00+$db]
+	and a
+	jr nz, .asm_768a2 ; 0x1dfbd $11
+	ld hl, Route5GateText2
+	call PrintText
+	call Route5GateScript_1df43
+	ld a, $1
+	ld [W_ROUTE5GATECURSCRIPT], a
+	jp TextScriptEnd
+.asm_768a2 ; 0x1dfd0
+	ld hl, Route5GateText3
+	call PrintText
+	ld hl, $d728
+	set 6, [hl]
+	jp TextScriptEnd
+.asm_88856 ; 0x1dfde
+	ld hl, SaffronGateText_1dff6
+	call PrintText
+	jp TextScriptEnd
+
+Route8GateText2: ; 1dfe7 (7:5fe7)
+Route7GateText2: ; 1dfe7 (7:5fe7)
+Route6GateText2: ; 1dfe7 (7:5fe7)
+Route5GateText2: ; 1dfe7 (7:5fe7)
+	TX_FAR _SaffronGateText_1dfe7
+	db "@"
+
+Route8GateText3: ; 1dfec (7:5fec)
+Route7GateText3: ; 1dfec (7:5fec)
+Route6GateText3: ; 1dfec (7:5fec)
+Route5GateText3: ; 1dfec (7:5fec)
+	TX_FAR _SaffronGateText_8aaa9 ; 0x8aaa9
+	db $11
+	TX_FAR _SaffronGateText_1dff1 ; 0x8aaef
+	db "@"
+
+SaffronGateText_1dff6: ; 1dff6 (7:5ff6)
+	TX_FAR _SaffronGateText_1dff6
+	db "@"
+
+
--- /dev/null
+++ b/scripts/route6.asm
@@ -1,0 +1,187 @@
+Route6Script: ; 590b0 (16:50b0)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route6TrainerHeaders
+	ld de, Route6ScriptPointers
+	ld a, [W_ROUTE6CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE6CURSCRIPT], a
+	ret
+
+Route6ScriptPointers: ; 590c3 (16:50c3)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route6TextPointers: ; 590c9 (16:50c9)
+	dw Route6Text1
+	dw Route6Text2
+	dw Route6Text3
+	dw Route6Text4
+	dw Route6Text5
+	dw Route6Text6
+	dw Route6Text7
+
+Route6TrainerHeaders: ; 590d7 (16:50d7)
+Route6TrainerHeader0: ; 590d7 (16:50d7)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText1 ; 0x512a TextBeforeBattle
+	dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
+	dw Route6EndBattleText1 ; 0x512f TextEndBattle
+	dw Route6EndBattleText1 ; 0x512f TextEndBattle
+
+Route6TrainerHeader1: ; 590e3 (16:50e3)
+	db $2 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText2 ; 0x5143 TextBeforeBattle
+	dw Route6AfterBattleText1 ; 0x5134 TextAfterBattle
+	dw Route6EndBattleText2 ; 0x5148 TextEndBattle
+	dw Route6EndBattleText2 ; 0x5148 TextEndBattle
+
+Route6TrainerHeader2: ; 590ef (16:50ef)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText3 ; 0x5157 TextBeforeBattle
+	dw Route6AfterBattleText3 ; 0x5161 TextAfterBattle
+	dw Route6EndBattleText3 ; 0x515c TextEndBattle
+	dw Route6EndBattleText3 ; 0x515c TextEndBattle
+
+Route6TrainerHeader3: ; 590fb (16:50fb)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText4 ; 0x5170 TextBeforeBattle
+	dw Route6AfterBattleText4 ; 0x517a TextAfterBattle
+	dw Route6EndBattleText4 ; 0x5175 TextEndBattle
+	dw Route6EndBattleText4 ; 0x5175 TextEndBattle
+
+Route6TrainerHeader4: ; 59107 (16:5107)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText5 ; 0x5189 TextBeforeBattle
+	dw Route6AfterBattleText5 ; 0x5193 TextAfterBattle
+	dw Route6EndBattleText5 ; 0x518e TextEndBattle
+	dw Route6EndBattleText5 ; 0x518e TextEndBattle
+
+Route6TrainerHeader5: ; 59113 (16:5113)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7c9 ; flag's byte
+	dw Route6BattleText6 ; 0x51a2 TextBeforeBattle
+	dw Route6AfterBattleText6 ; 0x51ac TextAfterBattle
+	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
+	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
+
+	db $ff
+
+Route6Text1: ; 59120 (16:5120)
+	db $8
+	ld hl, Route6TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText1: ; 5912a (16:512a)
+	TX_FAR _Route6BattleText1
+	db "@"
+
+Route6EndBattleText1: ; 5912f (16:512f)
+	TX_FAR _Route6EndBattleText1
+	db "@"
+
+Route6AfterBattleText1: ; 59134 (16:5134)
+	TX_FAR _Route6AfterBattleText1
+	db "@"
+
+Route6Text2: ; 59139 (16:5139)
+	db $08 ; asm
+	ld hl, Route6TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText2: ; 59143 (16:5143)
+	TX_FAR _Route6BattleText2
+	db "@"
+
+Route6EndBattleText2: ; 59148 (16:5148)
+	TX_FAR _Route6EndBattleText2
+	db "@"
+
+Route6Text3: ; 5914d (16:514d)
+	db $08 ; asm
+	ld hl, Route6TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText3: ; 59157 (16:5157)
+	TX_FAR _Route6BattleText3
+	db "@"
+
+Route6EndBattleText3: ; 5915c (16:515c)
+	TX_FAR _Route6EndBattleText3
+	db "@"
+
+Route6AfterBattleText3: ; 59161 (16:5161)
+	TX_FAR _Route6AfterBattleText3
+	db "@"
+
+Route6Text4: ; 59166 (16:5166)
+	db $08 ; asm
+	ld hl, Route6TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText4: ; 59170 (16:5170)
+	TX_FAR _Route6BattleText4
+	db "@"
+
+Route6EndBattleText4: ; 59175 (16:5175)
+	TX_FAR _Route6EndBattleText4
+	db "@"
+
+Route6AfterBattleText4: ; 5917a (16:517a)
+	TX_FAR _Route6AfterBattleText4
+	db "@"
+
+Route6Text5: ; 5917f (16:517f)
+	db $08 ; asm
+	ld hl, Route6TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText5: ; 59189 (16:5189)
+	TX_FAR _Route6BattleText5
+	db "@"
+
+Route6EndBattleText5: ; 5918e (16:518e)
+	TX_FAR _Route6EndBattleText5
+	db "@"
+
+Route6AfterBattleText5: ; 59193 (16:5193)
+	TX_FAR _Route6AfterBattleText5
+	db "@"
+
+Route6Text6: ; 59198 (16:5198)
+	db $08 ; asm
+	ld hl, Route6TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route6BattleText6: ; 591a2 (16:51a2)
+	TX_FAR _Route6BattleText6
+	db "@"
+
+Route6EndBattleText6: ; 591a7 (16:51a7)
+	TX_FAR _Route6EndBattleText6
+	db "@"
+
+Route6AfterBattleText6: ; 591ac (16:51ac)
+	TX_FAR _Route6AfterBattleText6
+	db "@"
+
+Route6Text7: ; 591b1 (16:51b1)
+	TX_FAR _Route6Text7
+	db "@"
--- /dev/null
+++ b/scripts/route6gate.asm
@@ -1,0 +1,72 @@
+Route6GateScript: ; 1e03d (7:603d)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route6GateScriptPointers
+	ld a, [W_ROUTE6GATECURSCRIPT]
+	call CallFunctionInTable
+	ret
+
+Route6GateScriptPointers: ; 1e04a (7:604a)
+	dw Route6GateScript0
+	dw Route6GateScript1
+
+Route6GateScript0: ; 1e04e (7:604e)
+	ld a, [$d728]
+	bit 6, a
+	ret nz
+	ld hl, CoordsData_1e08c
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $1
+	ld [$d528], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld b, BANK(RemoveGuardDrink)
+	ld hl, RemoveGuardDrink
+	call Bankswitch
+	ld a, [$ffdb]
+	and a
+	jr nz, .asm_1e080 ; 0x1e06e $10
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	call Route6GateScript_1e0a1
+	ld a, $1
+	ld [W_ROUTE6GATECURSCRIPT], a
+	ret
+.asm_1e080
+	ld hl, $d728
+	set 6, [hl]
+	ld a, $3
+	ld [$ff8c], a
+	jp DisplayTextID
+
+CoordsData_1e08c: ; 1e08c (7:608c)
+	db $02,$03
+	db $02,$04,$FF
+
+Route6GateScript1: ; 1e091 (7:6091)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE6GATECURSCRIPT], a
+	ret
+
+Route6GateScript_1e0a1: ; 1e0a1 (7:60a1)
+	ld hl, $d730
+	set 7, [hl]
+	ld a, $80
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	xor a
+	ld [$c206], a
+	ld [$cd3b], a
+	ret
+
+Route6GateTextPointers: ; 1e0b8 (7:60b8)
+	dw Route6GateText1
+	dw Route6GateText2
+	dw Route6GateText3
--- /dev/null
+++ b/scripts/route7.asm
@@ -1,0 +1,9 @@
+Route7Script: ; 48152 (12:4152)
+	jp EnableAutoTextBoxDrawing
+
+Route7TextPointers: ; 48155 (12:4155)
+	dw Route7Text1
+
+Route7Text1: ; 48157 (12:4157)
+	TX_FAR _Route7Text1
+	db "@"
--- /dev/null
+++ b/scripts/route7gate.asm
@@ -1,0 +1,75 @@
+Route7GateScript: ; 1e100 (7:6100)
+	call EnableAutoTextBoxDrawing
+	ld a, [W_ROUTE7GATECURSCRIPT]
+	ld hl, Route7GateScriptPointers
+	call CallFunctionInTable
+	ret
+
+Route7GateScriptPointers: ; 1e10d (7:610d)
+	dw Route7GateScript0
+	dw Route7GateScript1
+
+Route7GateScript_1e111: ; 1e111 (7:6111)
+	ld hl, $d730
+	set 7, [hl]
+	ld a, $20
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	xor a
+	ld [$c206], a
+	ld [$cd3b], a
+	ret
+
+Route7GateScript0: ; 1e128 (7:6128)
+	ld a, [$d728]
+	bit 6, a
+	ret nz
+	ld hl, CoordsData_1e167
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $8
+	ld [$d528], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld b, BANK(RemoveGuardDrink)
+	ld hl, RemoveGuardDrink
+	call Bankswitch
+	ld a, [$ffdb]
+	and a
+	jr nz, .asm_1e15a ; 0x1e148 $10
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	call Route7GateScript_1e111
+	ld a, $1
+	ld [W_ROUTE7GATECURSCRIPT], a
+	ret
+.asm_1e15a
+	ld a, $3
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $d728
+	set 6, [hl]
+	ret
+
+CoordsData_1e167: ; 1e167 (7:6167)
+	db 3,3
+	db 4,3
+	db $ff
+
+Route7GateScript1: ; 1e16c (7:616c)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE7GATECURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route7GateTextPointers: ; 1e17f (7:617f)
+	dw Route7GateText1
+	dw Route7GateText2
+	dw Route7GateText3
--- /dev/null
+++ b/scripts/route8.asm
@@ -1,0 +1,275 @@
+Route8Script: ; 591b6 (16:51b6)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route8TrainerHeaders
+	ld de, Route8ScriptPointers
+	ld a, [W_ROUTE8CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE8CURSCRIPT], a
+	ret
+
+Route8ScriptPointers: ; 591c9 (16:51c9)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route8TextPointers: ; 591cf (16:51cf)
+	dw Route8Text1
+	dw Route8Text2
+	dw Route8Text3
+	dw Route8Text4
+	dw Route8Text5
+	dw Route8Text6
+	dw Route8Text7
+	dw Route8Text8
+	dw Route8Text9
+	dw Route8Text10
+
+Route8TrainerHeaders: ; 591e3 (16:51e3)
+Route8TrainerHeader0: ; 591e3 (16:51e3)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText1 ; 0x525a TextBeforeBattle
+	dw Route8AfterBattleText1 ; 0x5264 TextAfterBattle
+	dw Route8EndBattleText1 ; 0x525f TextEndBattle
+	dw Route8EndBattleText1 ; 0x525f TextEndBattle
+
+Route8TrainerHeader1: ; 591ef (16:51ef)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText2 ; 0x5273 TextBeforeBattle
+	dw Route8AfterBattleText2 ; 0x527d TextAfterBattle
+	dw Route8EndBattleText2 ; 0x5278 TextEndBattle
+	dw Route8EndBattleText2 ; 0x5278 TextEndBattle
+
+Route8TrainerHeader2: ; 591fb (16:51fb)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText3 ; 0x528c TextBeforeBattle
+	dw Route8AfterBattleText3 ; 0x5296 TextAfterBattle
+	dw Route8EndBattleText3 ; 0x5291 TextEndBattle
+	dw Route8EndBattleText3 ; 0x5291 TextEndBattle
+
+Route8TrainerHeader3: ; 59207 (16:5207)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText4 ; 0x52a5 TextBeforeBattle
+	dw Route8AfterBattleText4 ; 0x52af TextAfterBattle
+	dw Route8EndBattleText4 ; 0x52aa TextEndBattle
+	dw Route8EndBattleText4 ; 0x52aa TextEndBattle
+
+Route8TrainerHeader4: ; 59213 (16:5213)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText5 ; 0x52be TextBeforeBattle
+	dw Route8AfterBattleText5 ; 0x52c8 TextAfterBattle
+	dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
+	dw Route8EndBattleText5 ; 0x52c3 TextEndBattle
+
+Route8TrainerHeader5: ; 5921f (16:521f)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText6 ; 0x52d7 TextBeforeBattle
+	dw Route8AfterBattleText6 ; 0x52e1 TextAfterBattle
+	dw Route8EndBattleText6 ; 0x52dc TextEndBattle
+	dw Route8EndBattleText6 ; 0x52dc TextEndBattle
+
+Route8TrainerHeader6: ; 5922b (16:522b)
+	db $7 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText7 ; 0x52f0 TextBeforeBattle
+	dw Route8AfterBattleText7 ; 0x52fa TextAfterBattle
+	dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
+	dw Route8EndBattleText7 ; 0x52f5 TextEndBattle
+
+Route8TrainerHeader7: ; 59237 (16:5237)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText8 ; 0x5309 TextBeforeBattle
+	dw Route8AfterBattleText8 ; 0x5313 TextAfterBattle
+	dw Route8EndBattleText8 ; 0x530e TextEndBattle
+	dw Route8EndBattleText8 ; 0x530e TextEndBattle
+
+Route8TrainerHeader8: ; 59243 (16:5243)
+	db $9 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cd ; flag's byte
+	dw Route8BattleText9 ; 0x5322 TextBeforeBattle
+	dw Route8AfterBattleText9 ; 0x532c TextAfterBattle
+	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
+	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
+
+	db $ff
+
+Route8Text1: ; 59250 (16:5250)
+	db $8
+	ld hl, Route8TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText1: ; 5925a (16:525a)
+	TX_FAR _Route8BattleText1
+	db "@"
+
+Route8EndBattleText1: ; 5925f (16:525f)
+	TX_FAR _Route8EndBattleText1
+	db "@"
+
+Route8AfterBattleText1: ; 59264 (16:5264)
+	TX_FAR _Route8AfterBattleText1
+	db "@"
+
+Route8Text2: ; 59269 (16:5269)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText2: ; 59273 (16:5273)
+	TX_FAR _Route8BattleText2
+	db "@"
+
+Route8EndBattleText2: ; 59278 (16:5278)
+	TX_FAR _Route8EndBattleText2
+	db "@"
+
+Route8AfterBattleText2: ; 5927d (16:527d)
+	TX_FAR _Route8AfterBattleText2
+	db "@"
+
+Route8Text3: ; 59282 (16:5282)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText3: ; 5928c (16:528c)
+	TX_FAR _Route8BattleText3
+	db "@"
+
+Route8EndBattleText3: ; 59291 (16:5291)
+	TX_FAR _Route8EndBattleText3
+	db "@"
+
+Route8AfterBattleText3: ; 59296 (16:5296)
+	TX_FAR _Route8AfterBattleText3
+	db "@"
+
+Route8Text4: ; 5929b (16:529b)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText4: ; 592a5 (16:52a5)
+	TX_FAR _Route8BattleText4
+	db "@"
+
+Route8EndBattleText4: ; 592aa (16:52aa)
+	TX_FAR _Route8EndBattleText4
+	db "@"
+
+Route8AfterBattleText4: ; 592af (16:52af)
+	TX_FAR _Route8AfterBattleText4
+	db "@"
+
+Route8Text5: ; 592b4 (16:52b4)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText5: ; 592be (16:52be)
+	TX_FAR _Route8BattleText5
+	db "@"
+
+Route8EndBattleText5: ; 592c3 (16:52c3)
+	TX_FAR _Route8EndBattleText5
+	db "@"
+
+Route8AfterBattleText5: ; 592c8 (16:52c8)
+	TX_FAR _Route8AfterBattleText5
+	db "@"
+
+Route8Text6: ; 592cd (16:52cd)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText6: ; 592d7 (16:52d7)
+	TX_FAR _Route8BattleText6
+	db "@"
+
+Route8EndBattleText6: ; 592dc (16:52dc)
+	TX_FAR _Route8EndBattleText6
+	db "@"
+
+Route8AfterBattleText6: ; 592e1 (16:52e1)
+	TX_FAR _Route8AfterBattleText6
+	db "@"
+
+Route8Text7: ; 592e6 (16:52e6)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText7: ; 592f0 (16:52f0)
+	TX_FAR _Route8BattleText7
+	db "@"
+
+Route8EndBattleText7: ; 592f5 (16:52f5)
+	TX_FAR _Route8EndBattleText7
+	db "@"
+
+Route8AfterBattleText7: ; 592fa (16:52fa)
+	TX_FAR _Route8AfterBattleText7
+	db "@"
+
+Route8Text8: ; 592ff (16:52ff)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText8: ; 59309 (16:5309)
+	TX_FAR _Route8BattleText8
+	db "@"
+
+Route8EndBattleText8: ; 5930e (16:530e)
+	TX_FAR _Route8EndBattleText8
+	db "@"
+
+Route8AfterBattleText8: ; 59313 (16:5313)
+	TX_FAR _Route8AfterBattleText8
+	db "@"
+
+Route8Text9: ; 59318 (16:5318)
+	db $08 ; asm
+	ld hl, Route8TrainerHeader8
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route8BattleText9: ; 59322 (16:5322)
+	TX_FAR _Route8BattleText9
+	db "@"
+
+Route8EndBattleText9: ; 59327 (16:5327)
+	TX_FAR _Route8EndBattleText9
+	db "@"
+
+Route8AfterBattleText9: ; 5932c (16:532c)
+	TX_FAR _Route8AfterBattleText9
+	db "@"
+
+Route8Text10: ; 59331 (16:5331)
+	TX_FAR _Route8Text10
+	db "@"
--- /dev/null
+++ b/scripts/route8gate.asm
@@ -1,0 +1,72 @@
+Route8GateScript: ; 1e1c7 (7:61c7)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route8GateScriptPointers
+	ld a, [W_ROUTE8GATECURSCRIPT]
+	jp CallFunctionInTable
+
+Route8GateScriptPointers: ; 1e1d3 (7:61d3)
+	dw Route8GateScript0
+	dw Route8GateScript1
+
+Route8GateScript_1e1d7: ; 1e1d7 (7:61d7)
+	ld hl, $d730
+	set 7, [hl]
+	ld a, $10
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	xor a
+	ld [$c206], a
+	ld [$cd3b], a
+	ret
+
+Route8GateScript0: ; 1e1ee (7:61ee)
+	ld a, [$d728]
+	bit 6, a
+	ret nz
+	ld hl, CoordsData_1e22c
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $2
+	ld [$d528], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld b, BANK(RemoveGuardDrink)
+	ld hl, RemoveGuardDrink
+	call Bankswitch
+	ld a, [$ffdb]
+	and a
+	jr nz, .asm_1e220 ; 0x1e20e $10
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	call Route8GateScript_1e1d7
+	ld a, $1
+	ld [W_ROUTE8GATECURSCRIPT], a
+	ret
+.asm_1e220
+	ld hl, $d728
+	set 6, [hl]
+	ld a, $3
+	ld [$ff8c], a
+	jp DisplayTextID
+
+CoordsData_1e22c: ; 1e22c (7:622c)
+	db 3,2
+	db 4,2
+	db $ff
+
+Route8GateScript1: ; 1e231 (7:6231)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROUTE8GATECURSCRIPT], a
+	ret
+
+Route8GateTextPointers: ; 1e241 (7:6241)
+	dw Route8GateText1
+	dw Route8GateText2
+	dw Route8GateText3
--- /dev/null
+++ b/scripts/route9.asm
@@ -1,0 +1,269 @@
+Route9Script: ; 556bc (15:56bc)
+	call EnableAutoTextBoxDrawing
+	ld hl, Route9TrainerHeaders
+	ld de, Route9ScriptPointers
+	ld a, [W_ROUTE9CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_ROUTE9CURSCRIPT], a
+	ret
+
+Route9ScriptPointers: ; 556cf (15:56cf)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+Route9TextPointers: ; 556d5 (15:56d5)
+	dw Route9Text1
+	dw Route9Text2
+	dw Route9Text3
+	dw Route9Text4
+	dw Route9Text5
+	dw Route9Text6
+	dw Route9Text7
+	dw Route9Text8
+	dw Route9Text9
+	dw Predef5CText
+	dw Route9Text11
+
+Route9TrainerHeaders: ; 556eb (15:56eb)
+Route9TrainerHeader0: ; 556eb (15:56eb)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText1 ; 0x5792 TextBeforeBattle
+	dw Route9AfterBattleText1 ; 0x579c TextAfterBattle
+	dw Route9EndBattleText1 ; 0x5797 TextEndBattle
+	dw Route9EndBattleText1 ; 0x5797 TextEndBattle
+
+Route9TrainerHeader2: ; 556f7 (15:56f7)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText2 ; 0x57a1 TextBeforeBattle
+	dw Route9AfterBattleText2 ; 0x57ab TextAfterBattle
+	dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
+	dw Route9EndBattleText2 ; 0x57a6 TextEndBattle
+
+Route9TrainerHeader3: ; 55703 (15:5703)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText3 ; 0x57b0 TextBeforeBattle
+	dw Route9AfterBattleText3 ; 0x57ba TextAfterBattle
+	dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
+	dw Route9EndBattleText3 ; 0x57b5 TextEndBattle
+
+Route9TrainerHeader4: ; 5570f (15:570f)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText4 ; 0x57bf TextBeforeBattle
+	dw Route9AfterBattleText4 ; 0x57c9 TextAfterBattle
+	dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
+	dw Route9EndBattleText4 ; 0x57c4 TextEndBattle
+
+Route9TrainerHeader5: ; 5571b (15:571b)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText5 ; 0x57ce TextBeforeBattle
+	dw Route9AfterBattleText5 ; 0x57d8 TextAfterBattle
+	dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
+	dw Route9EndBattleText5 ; 0x57d3 TextEndBattle
+
+Route9TrainerHeader6: ; 55727 (15:5727)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText6 ; 0x57dd TextBeforeBattle
+	dw Route9AfterBattleText6 ; 0x57e7 TextAfterBattle
+	dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
+	dw Route9EndBattleText6 ; 0x57e2 TextEndBattle
+
+Route9TrainerHeader7: ; 55733 (15:5733)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText7 ; 0x57ec TextBeforeBattle
+	dw Route9AfterBattleText7 ; 0x57f6 TextAfterBattle
+	dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
+	dw Route9EndBattleText7 ; 0x57f1 TextEndBattle
+
+Route9TrainerHeader8: ; 5573f (15:573f)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText8 ; 0x57fb TextBeforeBattle
+	dw Route9AfterBattleText8 ; 0x5805 TextAfterBattle
+	dw Route9EndBattleText8 ; 0x5800 TextEndBattle
+	dw Route9EndBattleText8 ; 0x5800 TextEndBattle
+
+Route9TrainerHeader9: ; 5574b (15:574b)
+	db $9 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d7cf ; flag's byte
+	dw Route9BattleText9 ; 0x580a TextBeforeBattle
+	dw Route9AfterBattleText9 ; 0x5814 TextAfterBattle
+	dw Route9EndBattleText9 ; 0x580f TextEndBattle
+	dw Route9EndBattleText9 ; 0x580f TextEndBattle
+
+	db $ff
+
+Route9Text1: ; 55758 (15:5758)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader0
+	jr asm_8be3d ; 0x5575c $2e
+
+Route9Text2: ; 5575e (15:575e)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader2
+	jr asm_8be3d ; 0x55762 $28
+
+Route9Text3: ; 55764 (15:5764)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader3
+	jr asm_8be3d ; 0x55768 $22
+
+Route9Text4: ; 5576a (15:576a)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader4
+	jr asm_8be3d ; 0x5576e $1c
+
+Route9Text5: ; 55770 (15:5770)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader5
+	jr asm_8be3d ; 0x55774 $16
+
+Route9Text6: ; 55776 (15:5776)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader6
+	jr asm_8be3d ; 0x5577a $10
+
+Route9Text7: ; 5577c (15:577c)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader7
+	jr asm_8be3d ; 0x55780 $a
+
+Route9Text8: ; 55782 (15:5782)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader8
+	jr asm_8be3d ; 0x55786 $4
+
+Route9Text9: ; 55788 (15:5788)
+	db $8 ; asm
+	ld hl, Route9TrainerHeader9
+asm_8be3d: ; 5578c (15:578c)
+	call TalkToTrainer
+	jp TextScriptEnd
+
+Route9BattleText1: ; 55792 (15:5792)
+	TX_FAR _Route9BattleText1
+	db "@"
+
+Route9EndBattleText1: ; 55797 (15:5797)
+	TX_FAR _Route9EndBattleText1
+	db "@"
+
+Route9AfterBattleText1: ; 5579c (15:579c)
+	TX_FAR _Route9AfterBattleText1
+	db "@"
+
+Route9BattleText2: ; 557a1 (15:57a1)
+	TX_FAR _Route9BattleText2
+	db "@"
+
+Route9EndBattleText2: ; 557a6 (15:57a6)
+	TX_FAR _Route9EndBattleText2
+	db "@"
+
+Route9AfterBattleText2: ; 557ab (15:57ab)
+	TX_FAR _Route9AfterBattleText2
+	db "@"
+
+Route9BattleText3: ; 557b0 (15:57b0)
+	TX_FAR _Route9BattleText3
+	db "@"
+
+Route9EndBattleText3: ; 557b5 (15:57b5)
+	TX_FAR _Route9EndBattleText3
+	db "@"
+
+Route9AfterBattleText3: ; 557ba (15:57ba)
+	TX_FAR _Route9AfterBattleText3
+	db "@"
+
+Route9BattleText4: ; 557bf (15:57bf)
+	TX_FAR _Route9BattleText4
+	db "@"
+
+Route9EndBattleText4: ; 557c4 (15:57c4)
+	TX_FAR _Route9EndBattleText4
+	db "@"
+
+Route9AfterBattleText4: ; 557c9 (15:57c9)
+	TX_FAR _Route9AfterBattleText4
+	db "@"
+
+Route9BattleText5: ; 557ce (15:57ce)
+	TX_FAR _Route9BattleText5
+	db "@"
+
+Route9EndBattleText5: ; 557d3 (15:57d3)
+	TX_FAR _Route9EndBattleText5
+	db "@"
+
+Route9AfterBattleText5: ; 557d8 (15:57d8)
+	TX_FAR _Route9AfterBattleText5
+	db "@"
+
+Route9BattleText6: ; 557dd (15:57dd)
+	TX_FAR _Route9BattleText6
+	db "@"
+
+Route9EndBattleText6: ; 557e2 (15:57e2)
+	TX_FAR _Route9EndBattleText6
+	db "@"
+
+Route9AfterBattleText6: ; 557e7 (15:57e7)
+	TX_FAR _Route9AfterBattleText6
+	db "@"
+
+Route9BattleText7: ; 557ec (15:57ec)
+	TX_FAR _Route9BattleText7
+	db "@"
+
+Route9EndBattleText7: ; 557f1 (15:57f1)
+	TX_FAR _Route9EndBattleText7
+	db "@"
+
+Route9AfterBattleText7: ; 557f6 (15:57f6)
+	TX_FAR _Route9AfterBattleText7
+	db "@"
+
+Route9BattleText8: ; 557fb (15:57fb)
+	TX_FAR _Route9BattleText8
+	db "@"
+
+Route9EndBattleText8: ; 55800 (15:5800)
+	TX_FAR _Route9EndBattleText8
+	db "@"
+
+Route9AfterBattleText8: ; 55805 (15:5805)
+	TX_FAR _Route9AfterBattleText8
+	db "@"
+
+Route9BattleText9: ; 5580a (15:580a)
+	TX_FAR _Route9BattleText9
+	db "@"
+
+Route9EndBattleText9: ; 5580f (15:580f)
+	TX_FAR _Route9EndBattleText9
+	db "@"
+
+Route9AfterBattleText9: ; 55814 (15:5814)
+	TX_FAR _Route9AfterBattleText9
+	db "@"
+
+Route9Text11: ; 55819 (15:5819)
+	TX_FAR _Route9Text11
+	db "@"
--- /dev/null
+++ b/scripts/safarizonecenter.asm
@@ -1,0 +1,15 @@
+SafariZoneCenterScript: ; 45bb2 (11:5bb2)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5)
+	dw Predef5CText
+	dw SafariZoneCenterText2
+	dw SafariZoneCenterText3
+
+SafariZoneCenterText2: ; 45bbb (11:5bbb)
+	TX_FAR _SafariZoneCenterText2
+	db "@"
+
+SafariZoneCenterText3: ; 45bc0 (11:5bc0)
+	TX_FAR _SafariZoneCenterText3
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneeast.asm
@@ -1,0 +1,23 @@
+SafariZoneEastScript: ; 4586b (11:586b)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneEastTextPointers: ; 4586e (11:586e)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneEastText5
+	dw SafariZoneEastText6
+	dw SafariZoneEastText7
+
+SafariZoneEastText5: ; 4587c (11:587c)
+	TX_FAR _SafariZoneEastText5
+	db "@"
+
+SafariZoneEastText6: ; 45881 (11:5881)
+	TX_FAR _SafariZoneEastText6
+	db "@"
+
+SafariZoneEastText7: ; 45886 (11:5886)
+	TX_FAR _SafariZoneEastText7
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneentrance.asm
@@ -1,0 +1,300 @@
+SafariZoneEntranceScript: ; 751cd (1d:51cd)
+	call EnableAutoTextBoxDrawing
+	ld hl, SafariZoneEntranceScriptPointers
+	ld a, [W_SAFARIZONEENTRANCECURSCRIPT]
+	jp CallFunctionInTable
+
+SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
+	dw SafariZoneEntranceScript0
+	dw SafariZoneEntranceScript1
+	dw SafariZoneEntranceScript2
+	dw SafariZoneEntranceScript3
+	dw SafariZoneEntranceScript4
+	dw SafariZoneEntranceScript5
+	dw SafariZoneEntranceScript6
+
+SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
+	ld hl, CoordsData_75221
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $3
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $c
+	ld [$c109], a
+	ld a, [$cd3d]
+	cp $1
+	jr z, .asm_7520f ; 0x75207 $6
+	ld a, $2
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	ret
+.asm_7520f
+	ld a, $10
+	ld c, $1
+	call SafariZoneEntranceScript_752a3
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $1
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	ret
+
+CoordsData_75221: ; 75221 (1d:5221)
+	db $02,$03
+	db $02,$04
+	db $FF
+
+SafariZoneEntranceScript1: ; 75226 (1d:5226)
+	call SafariZoneEntranceScript_752b4
+	ret nz
+SafariZoneEntranceScript2: ; 7522a (1d:522a)
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [wJoypadForbiddenButtonsMask], a
+	call UpdateSprites
+	ld a, $4
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+
+SafariZoneEntranceScript3: ; 75240 (1d:5240)
+	call SafariZoneEntranceScript_752b4
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $5
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	ret
+
+SafariZoneEntranceScript5: ; 7524e (1d:524e)
+	ld a, $4
+	ld [$d528], a
+	ld hl, $d790
+	bit 6, [hl]
+	res 6, [hl]
+	jr z, .asm_7527f ; 0x7525a $23
+	res 7, [hl]
+	call UpdateSprites
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $6
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [$da47], a
+	ld a, $80
+	ld c, $3
+	call SafariZoneEntranceScript_752a3
+	ld a, $4
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	jr .asm_75286 ; 0x7527d $7
+.asm_7527f
+	ld a, $5
+	ld [$ff8c], a
+	call DisplayTextID
+.asm_75286
+	ret
+
+SafariZoneEntranceScript4: ; 75287 (1d:5287)
+	call SafariZoneEntranceScript_752b4
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	ret
+
+SafariZoneEntranceScript6: ; 75295 (1d:5295)
+	call SafariZoneEntranceScript_752b4
+	ret nz
+	call Delay3
+	ld a, [$cf0d]
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	ret
+
+SafariZoneEntranceScript_752a3: ; 752a3 (1d:52a3)
+	push af
+	ld b, $0
+	ld a, c
+	ld [$cd38], a
+	ld hl, $ccd3
+	pop af
+	call FillMemory
+	jp Func_3486
+
+SafariZoneEntranceScript_752b4: ; 752b4 (1d:52b4)
+	ld a, [$cd38]
+	and a
+	ret
+
+SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
+	dw SafariZoneEntranceText1
+	dw SafariZoneEntranceText2
+	dw SafariZoneEntranceText3
+	dw SafariZoneEntranceText4
+	dw SafariZoneEntranceText5
+	dw SafariZoneEntranceText6
+
+SafariZoneEntranceText3: ; 752c5 (1d:52c5)
+SafariZoneEntranceText1: ; 752c5 (1d:52c5)
+	TX_FAR _SafariZoneEntranceText1
+	db "@"
+
+SafariZoneEntranceText4: ; 752ca (1d:52ca)
+	TX_FAR SafariZoneEntranceText_9e6e4 ; 0x9e6e4
+	db $8
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jp nz, .asm_75346
+	xor a
+	ld [$ff9f], a
+	ld a, $5
+	ld [$ffa0], a
+	ld a, $0
+	ld [$ffa1], a
+	call HasEnoughMoney
+	jr nc, .asm_752f9 ; 0x752ef $8
+	ld hl, SafariZoneEntranceText_7536a
+	call PrintText
+	jr .asm_7534c ; 0x752f7 $53
+.asm_752f9
+	xor a
+	ld [$cd3d], a
+	ld a, $5
+	ld [$cd3e], a
+	ld a, $0
+	ld [$cd3f], a
+	ld hl, $cd3f
+	ld de, $d349
+	ld c, $3
+	ld a, $c
+	call Predef
+	ld a, $13
+	ld [$d125], a
+	call DisplayTextBoxID
+	ld hl, SafariZoneEntranceText_7535b
+	call PrintText
+	ld a, $1e
+	ld [$da47], a
+	ld a, 502 / $100
+	ld [wSafariSteps], a
+	ld a, 502 % $100
+	ld [wSafariSteps + 1], a
+	ld a, $40
+	ld c, $3
+	call SafariZoneEntranceScript_752a3
+	ld hl, $d790
+	set 7, [hl]
+	res 6, [hl]
+	ld a, $3
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	jr .asm_75358 ; 0x75344 $12
+.asm_75346
+	ld hl, SafariZoneEntranceText_75365
+	call PrintText
+.asm_7534c
+	ld a, $80
+	ld c, $1
+	call SafariZoneEntranceScript_752a3
+	ld a, $4
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+.asm_75358
+	jp TextScriptEnd
+
+SafariZoneEntranceText_7535b: ; 7535b (1d:535b)
+	TX_FAR SafariZoneEntranceText_9e747 ; 0x9e747
+	db $0B
+
+SafariZoneEntranceText_75360: ; 75360 (1d:5360)
+	TX_FAR _SafariZoneEntranceText_75360
+	db "@"
+
+SafariZoneEntranceText_75365: ; 75365 (1d:5365)
+	TX_FAR _SafariZoneEntranceText_75365
+	db "@"
+
+SafariZoneEntranceText_7536a: ; 7536a (1d:536a)
+	TX_FAR _SafariZoneEntranceText_7536a
+	db "@"
+
+SafariZoneEntranceText5: ; 7536f (1d:536f)
+	TX_FAR SafariZoneEntranceText_9e814 ; 0x9e814
+	db $8
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_7539c ; 0x7537b $1f
+	ld hl, SafariZoneEntranceText_753bb
+	call PrintText
+	xor a
+	ld [$c109], a
+	ld a, $80
+	ld c, $3
+	call SafariZoneEntranceScript_752a3
+	ld hl, $d790
+	res 6, [hl]
+	res 7, [hl]
+	ld a, $0
+	ld [$cf0d], a
+	jr .asm_753b3 ; 0x7539a $17
+.asm_7539c
+	ld hl, SafariZoneEntranceText_753c0
+	call PrintText
+	ld a, $4
+	ld [$c109], a
+	ld a, $40
+	ld c, $1
+	call SafariZoneEntranceScript_752a3
+	ld a, $5
+	ld [$cf0d], a
+.asm_753b3
+	ld a, $6
+	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
+	jp TextScriptEnd
+
+SafariZoneEntranceText_753bb: ; 753bb (1d:53bb)
+	TX_FAR _SafariZoneEntranceText_753bb
+	db "@"
+
+SafariZoneEntranceText_753c0: ; 753c0 (1d:53c0)
+	TX_FAR _SafariZoneEntranceText_753c0
+	db "@"
+
+SafariZoneEntranceText6: ; 753c5 (1d:53c5)
+	TX_FAR _SafariZoneEntranceText_753c5
+	db "@"
+
+SafariZoneEntranceText2: ; 753ca (1d:53ca)
+	db $08 ; asm
+	ld hl, SafariZoneEntranceText_753e6
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	ld hl, SafariZoneEntranceText_753f0
+	jr nz, .asm_278a6 ; 0x753db
+	ld hl, SafariZoneEntranceText_753eb
+.asm_278a6 ; 0x753e0
+	call PrintText
+	jp TextScriptEnd
+
+SafariZoneEntranceText_753e6: ; 753e6 (1d:53e6)
+	TX_FAR _SafariZoneEntranceText_753e6
+	db "@"
+
+SafariZoneEntranceText_753eb: ; 753eb (1d:53eb)
+	TX_FAR _SafariZoneEntranceText_753eb
+	db "@"
+
+SafariZoneEntranceText_753f0: ; 753f0 (1d:53f0)
+	TX_FAR _SafariZoneEntranceText_753f0
+	db "@"
--- /dev/null
+++ b/scripts/safarizonenorth.asm
@@ -1,0 +1,31 @@
+SafariZoneNorthScript: ; 459ab (11:59ab)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneNorthTextPointers: ; 459ae (11:59ae)
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneNorthText3
+	dw SafariZoneNorthText4
+	dw SafariZoneNorthText5
+	dw SafariZoneNorthText6
+	dw SafariZoneNorthText7
+
+SafariZoneNorthText3: ; 459bc (11:59bc)
+	TX_FAR _SafariZoneNorthText3
+	db "@"
+
+SafariZoneNorthText4: ; 459c1 (11:59c1)
+	TX_FAR _SafariZoneNorthText4
+	db "@"
+
+SafariZoneNorthText5: ; 459c6 (11:59c6)
+	TX_FAR _SafariZoneNorthText5
+	db "@"
+
+SafariZoneNorthText6: ; 459cb (11:59cb)
+	TX_FAR _SafariZoneNorthText6
+	db "@"
+
+SafariZoneNorthText7: ; 459d0 (11:59d0)
+	TX_FAR _SafariZoneNorthText7
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneresthouse1.asm
@@ -1,0 +1,14 @@
+SafariZoneRestHouse1Script: ; 45ced (11:5ced)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneRestHouse1TextPointers: ; 45cf0 (11:5cf0)
+	dw SafariZoneRestHouse1Text1
+	dw SafariZoneRestHouse1Text2
+
+SafariZoneRestHouse1Text1: ; 45cf4 (11:5cf4)
+	TX_FAR _SafariZoneRestHouse1Text1
+	db "@"
+
+SafariZoneRestHouse1Text2: ; 45cf9 (11:5cf9)
+	TX_FAR _SafariZoneRestHouse1Text2
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneresthouse2.asm
@@ -1,0 +1,20 @@
+SafariZoneRestHouse2Script: ; 45d2a (11:5d2a)
+	call EnableAutoTextBoxDrawing
+	ret
+
+SafariZoneRestHouse2TextPointers: ; 45d2e (11:5d2e)
+	dw SafariZoneRestHouse2Text1
+	dw SafariZoneRestHouse2Text2
+	dw SafariZoneRestHouse2Text3
+
+SafariZoneRestHouse2Text1: ; 45d34 (11:5d34)
+	TX_FAR _SafariZoneRestHouse2Text1
+	db "@"
+
+SafariZoneRestHouse2Text2: ; 45d39 (11:5d39)
+	TX_FAR _SafariZoneRestHouse2Text2
+	db "@"
+
+SafariZoneRestHouse2Text3: ; 45d3e (11:5d3e)
+	TX_FAR _SafariZoneRestHouse2Text3
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneresthouse3.asm
@@ -1,0 +1,20 @@
+SafariZoneRestHouse3Script: ; 45d75 (11:5d75)
+	call EnableAutoTextBoxDrawing
+	ret
+
+SafariZoneRestHouse3TextPointers: ; 45d79 (11:5d79)
+	dw SafariZoneRestHouse3Text1
+	dw SafariZoneRestHouse3Text2
+	dw SafariZoneRestHouse3Text3
+
+SafariZoneRestHouse3Text1: ; 45d7f (11:5d7f)
+	TX_FAR _SafariZoneRestHouse3Text1
+	db "@"
+
+SafariZoneRestHouse3Text2: ; 45d84 (11:5d84)
+	TX_FAR _SafariZoneRestHouse3Text2
+	db "@"
+
+SafariZoneRestHouse3Text3: ; 45d89 (11:5d89)
+	TX_FAR _SafariZoneRestHouse3Text3
+	db "@"
--- /dev/null
+++ b/scripts/safarizoneresthouse4.asm
@@ -1,0 +1,20 @@
+SafariZoneRestHouse4Script: ; 45dc0 (11:5dc0)
+	call EnableAutoTextBoxDrawing
+	ret
+
+SafariZoneRestHouse4TextPointers: ; 45dc4 (11:5dc4)
+	dw SafariZoneRestHouse4Text1
+	dw SafariZoneRestHouse4Text2
+	dw SafariZoneRestHouse4Text3
+
+SafariZoneRestHouse4Text1: ; 45dca (11:5dca)
+	TX_FAR _SafariZoneRestHouse4Text1
+	db "@"
+
+SafariZoneRestHouse4Text2: ; 45dcf (11:5dcf)
+	TX_FAR _SafariZoneRestHouse4Text2
+	db "@"
+
+SafariZoneRestHouse4Text3: ; 45dd4 (11:5dd4)
+	TX_FAR _SafariZoneRestHouse4Text3
+	db "@"
--- /dev/null
+++ b/scripts/safarizonesecrethouse.asm
@@ -1,0 +1,46 @@
+SafariZoneSecretHouseScript: ; 4a317 (12:6317)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneSecretHouseTextPointers: ; 4a31a (12:631a)
+	dw SafariZoneSecretHouseText1
+
+SafariZoneSecretHouseText1: ; 4a31c (12:631c)
+	db $08 ; asm
+	ld a, [$d857]
+	bit 0, a
+	jr nz, .asm_20a9b ; 0x4a322
+	ld hl, SafariZoneSecretHouseText_4a350
+	call PrintText
+	ld bc, (HM_03 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedHM03Text
+	call PrintText
+	ld hl, $d857
+	set 0, [hl]
+	jr .asm_8f1fc ; 0x4a33d
+.BagFull
+	ld hl, HM03NoRoomText
+	call PrintText
+	jr .asm_8f1fc ; 0x4a345
+.asm_20a9b ; 0x4a347
+	ld hl, HM03ExplanationText
+	call PrintText
+.asm_8f1fc ; 0x4a34d
+	jp TextScriptEnd
+
+SafariZoneSecretHouseText_4a350: ; 4a350 (12:6350)
+	TX_FAR _SecretHouseText_4a350
+	db "@"
+
+ReceivedHM03Text: ; 4a355 (12:6355)
+	TX_FAR _ReceivedHM03Text
+	db $0B, "@"
+
+HM03ExplanationText: ; 4a35b (12:635b)
+	TX_FAR _HM03ExplanationText
+	db "@"
+
+HM03NoRoomText: ; 4a360 (12:6360)
+	TX_FAR _HM03NoRoomText
+	db "@"
--- /dev/null
+++ b/scripts/safarizonewest.asm
@@ -1,0 +1,28 @@
+SafariZoneWestScript: ; 4a1b5 (12:61b5)
+	jp EnableAutoTextBoxDrawing
+
+SafariZoneWestTextPointers: ; 4a1b8 (12:61b8)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneWestText5
+	dw SafariZoneWestText6
+	dw SafariZoneWestText7
+	dw SafariZoneWestText8
+
+SafariZoneWestText5: ; 4a1c8 (12:61c8)
+	TX_FAR _SafariZoneWestText5
+	db "@"
+
+SafariZoneWestText6: ; 4a1cd (12:61cd)
+	TX_FAR _SafariZoneWestText6
+	db "@"
+
+SafariZoneWestText7: ; 4a1d2 (12:61d2)
+	TX_FAR _SafariZoneWestText7
+	db "@"
+
+SafariZoneWestText8: ; 4a1d7 (12:61d7)
+	TX_FAR _SafariZoneWestText8
+	db "@"
--- /dev/null
+++ b/scripts/saffroncity.asm
@@ -1,0 +1,121 @@
+SaffronCityScript: ; 50c00 (14:4c00)
+	jp EnableAutoTextBoxDrawing
+
+SaffronCityTextPointers: ; 50c03 (14:4c03)
+	dw SaffronCityText1
+	dw SaffronCityText2
+	dw SaffronCityText3
+	dw SaffronCityText4
+	dw SaffronCityText5
+	dw SaffronCityText6
+	dw SaffronCityText7
+	dw SaffronCityText8
+	dw SaffronCityText9
+	dw SaffronCityText10
+	dw SaffronCityText11
+	dw SaffronCityText12
+	dw SaffronCityText13
+	dw SaffronCityText14
+	dw SaffronCityText15
+	dw SaffronCityText16
+	dw SaffronCityText17
+	dw SaffronCityText18
+	dw MartSignText
+	dw SaffronCityText20
+	dw SaffronCityText21
+	dw SaffronCityText22
+	dw PokeCenterSignText
+	dw SaffronCityText24
+	dw SaffronCityText25
+
+SaffronCityText1: ; 50c35 (14:4c35)
+	TX_FAR _SaffronCityText1
+	db "@"
+
+SaffronCityText2: ; 50c3a (14:4c3a)
+	TX_FAR _SaffronCityText2
+	db "@"
+
+SaffronCityText3: ; 50c3f (14:4c3f)
+	TX_FAR _SaffronCityText3
+	db "@"
+
+SaffronCityText4: ; 50c44 (14:4c44)
+	TX_FAR _SaffronCityText4
+	db "@"
+
+SaffronCityText5: ; 50c49 (14:4c49)
+	TX_FAR _SaffronCityText5
+	db "@"
+
+SaffronCityText6: ; 50c4e (14:4c4e)
+	TX_FAR _SaffronCityText6
+	db "@"
+
+SaffronCityText7: ; 50c53 (14:4c53)
+	TX_FAR _SaffronCityText7
+	db "@"
+
+SaffronCityText8: ; 50c58 (14:4c58)
+	TX_FAR _SaffronCityText8
+	db "@"
+
+SaffronCityText9: ; 50c5d (14:4c5d)
+	TX_FAR _SaffronCityText9
+	db "@"
+
+SaffronCityText10: ; 50c62 (14:4c62)
+	TX_FAR _SaffronCityText10
+	db "@"
+
+SaffronCityText11: ; 50c67 (14:4c67)
+	TX_FAR _SaffronCityText11
+	db "@"
+
+SaffronCityText12: ; 50c6c (14:4c6c)
+	TX_FAR _SaffronCityText12
+	db $15, "@"
+
+SaffronCityText13: ; 50c72 (14:4c72)
+	TX_FAR _SaffronCityText13
+	db "@"
+
+SaffronCityText14: ; 50c77 (14:4c77)
+	TX_FAR _SaffronCityText14
+	db "@"
+
+SaffronCityText15: ; 50c7c (14:4c7c)
+	TX_FAR _SaffronCityText15
+	db "@"
+
+SaffronCityText16: ; 50c81 (14:4c81)
+	TX_FAR _SaffronCityText16
+	db "@"
+
+SaffronCityText17: ; 50c86 (14:4c86)
+	TX_FAR _SaffronCityText17
+	db "@"
+
+SaffronCityText18: ; 50c8b (14:4c8b)
+	TX_FAR _SaffronCityText18
+	db "@"
+
+SaffronCityText20: ; 50c90 (14:4c90)
+	TX_FAR _SaffronCityText20
+	db "@"
+
+SaffronCityText21: ; 50c95 (14:4c95)
+	TX_FAR _SaffronCityText21
+	db "@"
+
+SaffronCityText22: ; 50c9a (14:4c9a)
+	TX_FAR _SaffronCityText22
+	db "@"
+
+SaffronCityText24: ; 50c9f (14:4c9f)
+	TX_FAR _SaffronCityText24
+	db "@"
+
+SaffronCityText25: ; 50ca4 (14:4ca4)
+	TX_FAR _SaffronCityText25
+	db "@"
--- /dev/null
+++ b/scripts/saffrongym.asm
@@ -1,0 +1,367 @@
+SaffronGymScript: ; 5d00d (17:500d)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, .extra
+	call EnableAutoTextBoxDrawing
+	ld hl, SaffronGymTrainerHeader0
+	ld de, SaffronGymScriptPointers
+	ld a, [W_SAFFRONGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SAFFRONGYMCURSCRIPT], a
+	ret
+
+.extra
+	ld hl, Gym6CityName ; $5033
+	ld de, Gym6LeaderName ; $5040
+	jp LoadGymLeaderAndCityName
+
+Gym6CityName: ; 5d033 (17:5033)
+	db "SAFFRON CITY@"
+
+Gym6LeaderName: ; 5d040 (17:5040)
+	db "SABRINA@"
+
+SaffronGymText_5d048: ; 5d048 (17:5048)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_SAFFRONGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+SaffronGymScriptPointers: ; 5d053 (17:5053)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SaffronGymScript3
+
+SaffronGymScript3: ; 5d05b (17:505b)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, SaffronGymText_5d048
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+SaffronGymText_5d068: ; 5d068 (17:5068)
+	ld a, $a
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d7b3
+	set 1, [hl]
+	ld bc, (TM_46 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d7b3
+	set 0, [hl]
+	jr .asm_5d091
+.BagFull
+	ld a, $c
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_5d091
+	ld hl, W_OBTAINEDBADGES
+	set 5, [hl]
+	ld hl, $d72a
+	set 5, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d7b3]
+	or %11111100
+	ld [$d7b3], a
+	ld hl, $d7b4
+	set 0, [hl]
+
+	jp SaffronGymText_5d048
+
+SaffronGymTextPointers: ; 5d0ab (17:50ab)
+	dw SaffronGymText1
+	dw SaffronGymText2
+	dw SaffronGymText3
+	dw SaffronGymText4
+	dw SaffronGymText5
+	dw SaffronGymText6
+	dw SaffronGymText7
+	dw SaffronGymText8
+	dw SaffronGymText9
+	dw SaffronGymText10
+	dw SaffronGymText11
+	dw SaffronGymText12
+
+SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3)
+SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle
+	dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle
+	dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
+	dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle
+
+SaffronGymTrainerHeader1: ; 5d0cf (17:50cf)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle
+	dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle
+	dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
+	dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle
+
+SaffronGymTrainerHeader2: ; 5d0db (17:50db)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle
+	dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle
+	dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
+	dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle
+
+SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle
+	dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle
+	dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
+	dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle
+
+SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle
+	dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle
+	dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
+	dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle
+
+SaffronGymTrainerHeader5: ; 5d0ff (17:50ff)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle
+	dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle
+	dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
+	dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle
+
+SaffronGymTrainerHeader6: ; 5d10b (17:510b)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7b3 ; flag's byte
+	dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle
+	dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle
+	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
+	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
+
+	db $ff
+
+SaffronGymText1: ; 5d118 (17:5118)
+	db $08 ; asm
+	ld a, [$d7b3]
+	bit 1, a
+	jr z, .asm_e3544 ; 0x5d11e
+	bit 0, a
+	jr nz, .asm_8d2f6 ; 0x5d122
+	call z, SaffronGymText_5d068
+	call DisableWaitingAfterTextDisplay
+	jr .asm_34c2c ; 0x5d12a
+.asm_8d2f6 ; 0x5d12c
+	ld hl, SaffronGymText_5d16e
+	call PrintText
+	jr .asm_34c2c ; 0x5d132
+.asm_e3544 ; 0x5d134
+	ld hl, SaffronGymText_5d162
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, SaffronGymText_5d167
+	ld de, SaffronGymText_5d167
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $6
+	ld [$d05c], a
+	ld a, $3
+	ld [W_SAFFRONGYMCURSCRIPT], a
+.asm_34c2c ; 0x5d15f
+	jp TextScriptEnd
+
+SaffronGymText_5d162: ; 5d162 (17:5162)
+	TX_FAR _SaffronGymText_5d162
+	db "@"
+
+SaffronGymText_5d167: ; 5d167 (17:5167)
+	TX_FAR _SaffronGymText_5d167 ; 0xa1c73
+	db $11 ; play same sound as red giving oak parcel
+	db $6 ; wait for keypress
+	db "@"
+
+SaffronGymText_5d16e: ; 5d16e (17:516e)
+	TX_FAR _SaffronGymText_5d16e
+	db "@"
+
+SaffronGymText10: ; 5d173 (17:5173)
+	TX_FAR _SaffronGymText_5d173
+	db "@"
+
+SaffronGymText11: ; 5d178 (17:5178)
+	TX_FAR ReceivedTM46Text
+	db $b
+	TX_FAR _TM46ExplanationText
+	db "@"
+
+SaffronGymText12: ; 5d182 (17:5182)
+	TX_FAR _TM46NoRoomText
+	db "@"
+
+SaffronGymText2: ; 5d187 (17:5187)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText3: ; 5d191 (17:5191)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText4: ; 5d19b (17:519b)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText5: ; 5d1a5 (17:51a5)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText6: ; 5d1af (17:51af)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText7: ; 5d1b9 (17:51b9)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText8: ; 5d1c3 (17:51c3)
+	db $08 ; asm
+	ld hl, SaffronGymTrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SaffronGymText9: ; 5d1cd (17:51cd)
+	db $08 ; asm
+	ld a, [$d7b3]
+	bit 1, a
+	jr nz, .asm_13f3c ; 0x5d1d3
+	ld hl, SaffronGymText_5d1e6
+	call PrintText
+	jr .asm_e9907 ; 0x5d1db
+.asm_13f3c ; 0x5d1dd
+	ld hl, SaffronGymText_5d1eb
+	call PrintText
+.asm_e9907 ; 0x5d1e3
+	jp TextScriptEnd
+
+SaffronGymText_5d1e6: ; 5d1e6 (17:51e6)
+	TX_FAR _SaffronGymText_5d1e6
+	db "@"
+
+SaffronGymText_5d1eb: ; 5d1eb (17:51eb)
+	TX_FAR _SaffronGymText_5d1eb
+	db "@"
+
+SaffronGymBattleText1: ; 5d1f0 (17:51f0)
+	TX_FAR _SaffronGymBattleText1
+	db "@"
+
+SaffronGymEndBattleText1: ; 5d1f5 (17:51f5)
+	TX_FAR _SaffronGymEndBattleText1
+	db "@"
+
+SaffronGymAfterBattleText1: ; 5d1fa (17:51fa)
+	TX_FAR _SaffronGymAfterBattleText1
+	db "@"
+
+SaffronGymBattleText2: ; 5d1ff (17:51ff)
+	TX_FAR _SaffronGymBattleText2
+	db "@"
+
+SaffronGymEndBattleText2: ; 5d204 (17:5204)
+	TX_FAR _SaffronGymEndBattleText2
+	db "@"
+
+SaffronGymAfterBattleText2: ; 5d209 (17:5209)
+	TX_FAR _SaffronGymAfterBattleText2
+	db "@"
+
+SaffronGymBattleText3: ; 5d20e (17:520e)
+	TX_FAR _SaffronGymBattleText3
+	db "@"
+
+SaffronGymEndBattleText3: ; 5d213 (17:5213)
+	TX_FAR _SaffronGymEndBattleText3
+	db "@"
+
+SaffronGymAfterBattleText3: ; 5d218 (17:5218)
+	TX_FAR _SaffronGymAfterBattleText3
+	db "@"
+
+SaffronGymBattleText4: ; 5d21d (17:521d)
+	TX_FAR _SaffronGymBattleText4
+	db "@"
+
+SaffronGymEndBattleText4: ; 5d222 (17:5222)
+	TX_FAR _SaffronGymEndBattleText4
+	db "@"
+
+SaffronGymAfterBattleText4: ; 5d227 (17:5227)
+	TX_FAR _SaffronGymAfterBattleText4
+	db "@"
+
+SaffronGymBattleText5: ; 5d22c (17:522c)
+	TX_FAR _SaffronGymBattleText5
+	db "@"
+
+SaffronGymEndBattleText5: ; 5d231 (17:5231)
+	TX_FAR _SaffronGymEndBattleText5
+	db "@"
+
+SaffronGymAfterBattleText5: ; 5d236 (17:5236)
+	TX_FAR _SaffronGymAfterBattleText5
+	db "@"
+
+SaffronGymBattleText6: ; 5d23b (17:523b)
+	TX_FAR _SaffronGymBattleText6
+	db "@"
+
+SaffronGymEndBattleText6: ; 5d240 (17:5240)
+	TX_FAR _SaffronGymEndBattleText6
+	db "@"
+
+SaffronGymAfterBattleText6: ; 5d245 (17:5245)
+	TX_FAR _SaffronGymAfterBattleText6
+	db "@"
+
+SaffronGymBattleText7: ; 5d24a (17:524a)
+	TX_FAR _SaffronGymBattleText7
+	db "@"
+
+SaffronGymEndBattleText7: ; 5d24f (17:524f)
+	TX_FAR _SaffronGymEndBattleText7
+	db "@"
+
+SaffronGymAfterBattleText7: ; 5d254 (17:5254)
+	TX_FAR _SaffronGymAfterBattleText7
+	db "@"
--- /dev/null
+++ b/scripts/saffronhouse1.asm
@@ -1,0 +1,27 @@
+SaffronHouse1Script: ; 1dddd (7:5ddd)
+	jp EnableAutoTextBoxDrawing
+
+SaffronHouse1TextPointers: ; 1dde0 (7:5de0)
+	dw SaffronHouse1Text1
+	dw SaffronHouse1Text2
+	dw SaffronHouse1Text3
+	dw SaffronHouse1Text4
+
+SaffronHouse1Text1: ; 1dde8 (7:5de8)
+	TX_FAR _SaffronHouse1Text1
+	db "@"
+
+SaffronHouse1Text2: ; 1dded (7:5ded)
+	TX_FAR _SaffronHouse1Text2
+	db $8
+	ld a, PIDGEY
+	call PlayCry
+	jp TextScriptEnd
+
+SaffronHouse1Text3: ; 1ddfa (7:5dfa)
+	TX_FAR _SaffronHouse1Text3
+	db "@"
+
+SaffronHouse1Text4: ; 1ddff (7:5dff)
+	TX_FAR _SaffronHouse1Text4
+	db "@"
--- /dev/null
+++ b/scripts/saffronhouse2.asm
@@ -1,0 +1,46 @@
+SaffronHouse2Script: ; 1de3c (7:5e3c)
+	jp EnableAutoTextBoxDrawing
+
+SaffronHouse2TextPointers: ; 1de3f (7:5e3f)
+	dw SaffronHouse2Text1
+
+SaffronHouse2Text1: ; 1de41 (7:5e41)
+	db $08 ; asm
+	ld a, [$d7bd]
+	bit 0, a
+	jr nz, .asm_9e72b ; 0x1de47
+	ld hl, TM29PreReceiveText
+	call PrintText
+	ld bc,(TM_29 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM29Text
+	call PrintText
+	ld hl, $d7bd
+	set 0, [hl]
+	jr .asm_fe4e1 ; 0x1de62
+.BagFull
+	ld hl, TM29NoRoomText
+	call PrintText
+	jr .asm_fe4e1 ; 0x1de6a
+.asm_9e72b ; 0x1de6c
+	ld hl, TM29ExplanationText
+	call PrintText
+.asm_fe4e1 ; 0x1de72
+	jp TextScriptEnd
+
+TM29PreReceiveText: ; 1de75 (7:5e75)
+	TX_FAR _TM29PreReceiveText
+	db "@"
+
+ReceivedTM29Text: ; 1de7a (7:5e7a)
+	TX_FAR _ReceivedTM29Text
+	db $0B, "@"
+
+TM29ExplanationText: ; 1de80 (7:5e80)
+	TX_FAR _TM29ExplanationText
+	db "@"
+
+TM29NoRoomText: ; 1de85 (7:5e85)
+	TX_FAR _TM29NoRoomText
+	db "@"
--- /dev/null
+++ b/scripts/saffronmart.asm
@@ -1,0 +1,15 @@
+SaffronMartScript: ; 5d409 (17:5409)
+	jp EnableAutoTextBoxDrawing
+
+SaffronMartTextPointers: ; 5d40c (17:540c)
+	dw SaffronMartText1
+	dw SaffronMartText2
+	dw SaffronMartText3
+
+SaffronMartText2: ; 5d412 (17:5412)
+	TX_FAR _SaffronMartText2
+	db "@"
+
+SaffronMartText3: ; 5d417 (17:5417)
+	TX_FAR _SaffronMartText3
+	db "@"
--- /dev/null
+++ b/scripts/saffronpokecenter.asm
@@ -1,0 +1,23 @@
+SaffronPokecenterScript: ; 5d535 (17:5535)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+SaffronPokecenterTextPointers: ; 5d53b (17:553b)
+	dw SaffronPokecenterText1
+	dw SaffronPokecenterText2
+	dw SaffronPokecenterText3
+	dw SaffronPokecenterText4
+
+SaffronPokecenterText1: ; 5d543 (17:5543)
+	db $ff
+
+SaffronPokecenterText2: ; 5d544 (17:5544)
+	TX_FAR _SaffronPokecenterText1
+	db "@"
+
+SaffronPokecenterText3: ; 5d549 (17:5549)
+	TX_FAR _SaffronPokecenterText3
+	db "@"
+
+SaffronPokecenterText4: ; 5d54e (17:554e)
+	db $f6
--- /dev/null
+++ b/scripts/school.asm
@@ -1,0 +1,14 @@
+SchoolScript: ; 1d54c (7:554c)
+	jp EnableAutoTextBoxDrawing
+
+SchoolTextPointers: ; 1d54f (7:554f)
+	dw SchoolText1
+	dw SchoolText2
+
+SchoolText1: ; 1d553 (7:5553)
+	TX_FAR _SchoolText1
+	db "@"
+
+SchoolText2: ; 1d558 (7:5558)
+	TX_FAR _SchoolText2
+	db "@"
--- /dev/null
+++ b/scripts/seafoamislands1.asm
@@ -1,0 +1,50 @@
+SeafoamIslands1Script: ; 447e9 (11:47e9)
+	call EnableAutoTextBoxDrawing
+	ld hl, $d7e7
+	set 0, [hl]
+	ld hl, wFlags_0xcd60
+	bit 7, [hl]
+	res 7, [hl]
+	jr z, .asm_4483b ; 0x447f8 $41
+	ld hl, Seafoam1HolesCoords
+	call CheckBoulderCoords
+	ret nc
+	ld hl, $d7e8
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_44819 ; 0x44809 $e
+	set 6, [hl]
+	ld a, $d7
+	ld [$d079], a
+	ld a, $d9
+	ld [$d07a], a
+	jr .asm_44825 ; 0x44817 $c
+.asm_44819
+	set 7, [hl]
+	ld a, $d8
+	ld [$d079], a
+	ld a, $da
+	ld [$d07a], a
+.asm_44825
+	ld a, [$d079]
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, [$d07a]
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef
+.asm_4483b
+	ld a, $9f
+	ld [$d71d], a
+	ld hl, Seafoam1HolesCoords
+	jp Func_46981
+
+Seafoam1HolesCoords: ; 44846 (11:4846)
+	db $06,$11
+	db $06,$18
+	db $ff
+
+SeafoamIslands1TextPointers: ; 4484b (11:484b)
+	dw BoulderText
+	dw BoulderText
--- /dev/null
+++ b/scripts/seafoamislands2.asm
@@ -1,0 +1,48 @@
+SeafoamIslands2Script: ; 46315 (11:6315)
+	call EnableAutoTextBoxDrawing
+	ld hl, wFlags_0xcd60
+	bit 7, [hl]
+	res 7, [hl]
+	jr z, .asm_46362 ; 0x4631f $41
+	ld hl, Seafoam2HolesCoords
+	call CheckBoulderCoords
+	ret nc
+	ld hl, $d87f
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_46340 ; 0x46330 $e
+	set 0, [hl]
+	ld a, $d9
+	ld [$d079], a
+	ld a, $db
+	ld [$d07a], a
+	jr .asm_4634c ; 0x4633e $c
+.asm_46340
+	set 1, [hl]
+	ld a, $da
+	ld [$d079], a
+	ld a, $dc
+	ld [$d07a], a
+.asm_4634c
+	ld a, [$d079]
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, [$d07a]
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef
+.asm_46362
+	ld a, $a0
+	ld [$d71d], a
+	ld hl, Seafoam2HolesCoords
+	jp Func_46981
+
+Seafoam2HolesCoords: ; 4636d (11:636d)
+	db $06,$12
+	db $06,$17
+	db $ff
+
+SeafoamIslands2TextPointers: ; 46372 (11:6372)
+	dw BoulderText
+	dw BoulderText
--- /dev/null
+++ b/scripts/seafoamislands3.asm
@@ -1,0 +1,48 @@
+SeafoamIslands3Script: ; 46451 (11:6451)
+	call EnableAutoTextBoxDrawing
+	ld hl, wFlags_0xcd60
+	bit 7, [hl]
+	res 7, [hl]
+	jr z, .asm_4649e ; 0x4645b $41
+	ld hl, Seafoam3HolesCoords
+	call CheckBoulderCoords
+	ret nc
+	ld hl, $d880
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_4647c ; 0x4646c $e
+	set 0, [hl]
+	ld a, $db
+	ld [$d079], a
+	ld a, $df
+	ld [$d07a], a
+	jr .asm_46488 ; 0x4647a $c
+.asm_4647c
+	set 1, [hl]
+	ld a, $dc
+	ld [$d079], a
+	ld a, $e0
+	ld [$d07a], a
+.asm_46488
+	ld a, [$d079]
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, [$d07a]
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef
+.asm_4649e
+	ld a, $a1
+	ld [$d71d], a
+	ld hl, Seafoam3HolesCoords
+	jp Func_46981
+
+Seafoam3HolesCoords: ; 464a9 (11:64a9)
+	db $06,$13
+	db $06,$16
+	db $ff
+
+SeafoamIslands3TextPointers: ; 464ae (11:64ae)
+	dw BoulderText
+	dw BoulderText
--- /dev/null
+++ b/scripts/seafoamislands4.asm
@@ -1,0 +1,148 @@
+SeafoamIslands4Script: ; 4658d (11:658d)
+	call EnableAutoTextBoxDrawing
+	ld hl, wFlags_0xcd60
+	bit 7, [hl]
+	res 7, [hl]
+	jr z, .asm_465dc ; 0x46597 $43
+	ld hl, Seafoam4HolesCoords
+	call CheckBoulderCoords
+	ret nc
+	ld hl, $d881
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_465b8 ; 0x465a8 $e
+	set 0, [hl]
+	ld a, $dd
+	ld [$d079], a
+	ld a, $e1
+	ld [$d07a], a
+	jr .asm_465c4 ; 0x465b6 $c
+.asm_465b8
+	set 1, [hl]
+	ld a, $de
+	ld [$d079], a
+	ld a, $e2
+	ld [$d07a], a
+.asm_465c4
+	ld a, [$d079]
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, [$d07a]
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	jr .asm_465ed ; 0x465da $11
+.asm_465dc
+	ld a, $a2
+	ld [$d71d], a
+	ld hl, Seafoam4HolesCoords
+	call Func_46981
+	ld a, [$d732]
+	bit 4, a
+	ret nz
+.asm_465ed
+	ld hl, SeafoamIslands4ScriptPointers
+	ld a, [W_SEAFOAMISLANDS4CURSCRIPT]
+	jp CallFunctionInTable
+
+Seafoam4HolesCoords: ; 465f6 (11:65f6)
+	db $10,$03
+	db $10,$06
+	db $ff
+
+SeafoamIslands4ScriptPointers: ; 465fb (11:65fb)
+	dw SeafoamIslands4Script0
+	dw SeafoamIslands4Script1
+	dw SeafoamIslands4Script2
+	dw SeafoamIslands4Script3
+
+SeafoamIslands4Script0: ; 46603 (11:6603)
+	ld a, [$d880]
+	and $3
+	cp $3
+	ret z
+	ld a, [W_YCOORD]
+	cp $8
+	ret nz
+	ld a, [W_XCOORD]
+	cp $f
+	ret nz
+	ld hl, $ccd3
+	ld de, RLEMovement46632
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld hl, W_FLAGS_D733
+	set 2, [hl]
+	ld a, $1
+	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
+	ret
+
+RLEMovement46632: ; 46632 (11:6632)
+	db $80,6
+	db $10,5
+	db $80,3
+	db $ff
+
+SeafoamIslands4Script1: ; 46639 (11:6639)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $0
+	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
+	ret
+
+SeafoamIslands4Script2: ; 46644 (11:6644)
+	ld a, [$d880]
+	and $3
+	cp $3
+	ret z
+	ld a, [W_XCOORD]
+	cp $12
+	jr z, .asm_4665e
+	cp $13
+	ld a, $0
+	jr nz, .asm_4667b
+	ld de, RLEData_4667f
+	jr .asm_46661
+.asm_4665e
+	ld de, RLEData_46688
+.asm_46661
+	ld hl, $ccd3
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	xor a
+	ld [$c206], a
+	ld hl, $d730
+	set 7, [hl]
+	ld hl, W_FLAGS_D733
+	set 2, [hl]
+	ld a, $3
+.asm_4667b
+	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
+	ret
+
+RLEData_4667f: ; 4667f (11:667f)
+	db $80,$06,$10,$02,$80,$04,$20,$01,$FF
+
+RLEData_46688: ; 46688 (11:6688)
+	db $80,$06,$10,$02,$80,$04,$FF
+
+SeafoamIslands4Script3: ; 4668f (11:668f)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $0
+	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
+	ret
+
+SeafoamIslands4TextPointers: ; 4669a (11:669a)
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
--- /dev/null
+++ b/scripts/seafoamislands5.asm
@@ -1,0 +1,178 @@
+SeafoamIslands5Script: ; 46799 (11:6799)
+	call EnableAutoTextBoxDrawing
+	ld a, [W_SEAFOAMISLANDS5CURSCRIPT]
+	ld hl, SeafoamIslands5ScriptPointers
+	jp CallFunctionInTable
+
+SeafoamIslands5Script_467a5: ; 467a5 (11:67a5)
+	xor a
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+
+SeafoamIslands5ScriptPointers: ; 467ad (11:67ad)
+	dw SeafoamIslands5Script0
+	dw SeafoamIslands5Script1
+	dw SeafoamIslands5Script2
+	dw SeafoamIslands5Script3
+	dw SeafoamIslands5Script4
+
+SeafoamIslands5Script4: ; 467b7 (11:67b7)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jr z, SeafoamIslands5Script_467a5
+	call EndTrainerBattle
+	ld a, $0
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+SeafoamIslands5Script0: ; 467c7 (11:67c7)
+	ld a, [$d880]
+	and $3
+	cp $3
+	ret z
+	ld hl, CoordsData_467fe
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, [$cd3d]
+	cp $3
+	jr nc, .asm_467e6
+	ld a, $40
+	ld [$ccd4], a
+	ld a, $2
+	jr .asm_467e8
+.asm_467e6
+	ld a, $1
+.asm_467e8
+	ld [$cd38], a
+	ld a, $40
+	ld [$ccd3], a
+	call Func_3486
+	ld hl, W_FLAGS_D733
+	res 2, [hl]
+	ld a, $1
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+CoordsData_467fe: ; 467fe (11:67fe)
+	db $11,$14
+	db $11,$15
+	db $10,$14
+	db $10,$15
+	db $FF
+
+SeafoamIslands5Script1: ; 46807 (11:6807)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+SeafoamIslands5Script2: ; 46816 (11:6816)
+	ld a, [$d881]
+	and $3
+	cp $3
+	ld a, $0
+	jr z, .asm_46849
+	ld hl, CoordsData_4684d
+	call ArePlayerCoordsInArray
+	ld a, $0
+	jr nc, .asm_46849
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_46837
+	ld de, RLEMovementData_46859
+	jr .asm_4683a
+.asm_46837
+	ld de, RLEMovementData_46852
+.asm_4683a
+	ld hl, $ccd3
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+.asm_46849
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+CoordsData_4684d: ; 4684d (11:684d)
+	db $0E,$04
+	db $0E,$05
+	db $FF
+
+RLEMovementData_46852: ; 46852 (11:6852)
+	db $40,$03
+	db $10,$02
+	db $40,$01
+	db $FF
+
+RLEMovementData_46859: ; 46859 (11:6859)
+	db $40,$03
+	db $10,$03
+	db $40,$01
+	db $FF
+
+SeafoamIslands5Script3: ; 46860 (11:6860)
+	ld a, [$cd38]
+	ld b, a
+	cp $1
+	call z, SeaFoamIslands5Script_46872
+	ld a, b
+	and a
+	ret nz
+	ld a, $0
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+SeaFoamIslands5Script_46872: ; 46872 (11:6872)
+	xor a
+	ld [$d700], a
+	ld [$d11a], a
+	jp ForceBikeOrSurf
+
+SeafoamIslands5TextPointers: ; 4687c (11:687c)
+	dw BoulderText
+	dw BoulderText
+	dw SeafoamIslands5Text3
+	dw SeafoamIslands5Text4
+	dw SeafoamIslands5Text5
+
+SeafoamIslands5TrainerHeaders: ; 46886 (11:6886)
+SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
+	db $2 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d882 ; flag's byte
+	dw SeafoamIslands5BattleText2 ; 0x68a2 TextBeforeBattle
+	dw SeafoamIslands5BattleText2 ; 0x68a2 TextAfterBattle
+	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
+	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
+
+	db $ff
+
+SeafoamIslands5Text3: ; 46893 (11:6893)
+	db $08 ; asm
+	ld hl, SeafoamIslands5TrainerHeader0
+	call TalkToTrainer
+	ld a, $4
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	jp TextScriptEnd
+
+SeafoamIslands5BattleText2: ; 468a2 (11:68a2)
+	TX_FAR _SeafoamIslands5BattleText2
+	db $8
+	ld a, ARTICUNO
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+SeafoamIslands5Text4: ; 468b2 (11:68b2)
+	TX_FAR _SeafoamIslands5Text4
+	db "@"
+
+SeafoamIslands5Text5: ; 468b7 (11:68b7)
+	TX_FAR _SeafoamIslands5Text5
+	db "@"
--- /dev/null
+++ b/scripts/silphco1.asm
@@ -1,0 +1,20 @@
+SilphCo1Script: ; 5d44e (17:544e)
+	call EnableAutoTextBoxDrawing
+	ld a, [$d838]
+	bit 7, a
+	ret z
+	ld hl, $d7b9
+	bit 7, [hl]
+	set 7, [hl]
+	ret nz
+	ld a, $4c
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef
+
+SilphCo1TextPointers: ; 5d469 (17:5469)
+	dw SilphCo1Text1
+
+SilphCo1Text1: ; 5d46b (17:546b)
+	TX_FAR _SilphCo1Text1
+	db "@"
--- /dev/null
+++ b/scripts/silphco10.asm
@@ -1,0 +1,126 @@
+SilphCo10Script: ; 5a139 (16:6139)
+	call SilphCo10Script_5a14f
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo10TrainerHeaders
+	ld de, SilphCo10ScriptPointers
+	ld a, [W_SILPHCO10CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO10CURSCRIPT], a
+	ret
+
+SilphCo10Script_5a14f: ; 5a14f (16:614f)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_5a173 ; $6173
+	call SilphCo2Script_59d43
+	call SilphCo10Text_5a176
+	ld a, [$d836]
+	bit 0, a
+	ret nz
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $405
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_5a173: ; 5a173 (16:6173)
+	db $04,$05,$FF
+
+SilphCo10Text_5a176: ; 5a176 (16:6176)
+	ld a, [$ffe0]
+	and a
+	ret z
+	ld hl, $d836
+	set 0, [hl]
+	ret
+
+SilphCo10ScriptPointers: ; 5a180 (16:6180)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo10TextPointers: ; 5a186 (16:6186)
+	dw SilphCo10Text1
+	dw SilphCo10Text2
+	dw SilphCo10Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+SilphCo10TrainerHeaders: ; 5a192 (16:6192)
+SilphCo10TrainerHeader0: ; 5a192 (16:6192)
+	db $1 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d835 ; flag's byte
+	dw SilphCo10BattleText1 ; 0x61dd TextBeforeBattle
+	dw SilphCo10AfterBattleText1 ; 0x61e7 TextAfterBattle
+	dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
+	dw SilphCo10EndBattleText1 ; 0x61e2 TextEndBattle
+
+SilphCo10TrainerHeader1: ; 5a19e (16:619e)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d835 ; flag's byte
+	dw SilphCo10BattleText2 ; 0x61ec TextBeforeBattle
+	dw SilphCo10AfterBattleText2 ; 0x61f6 TextAfterBattle
+	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
+	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
+
+	db $ff
+
+SilphCo10Text1: ; 5a1ab (16:61ab)
+	db $08 ; asm
+	ld hl, SilphCo10TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo10Text2: ; 5a1b5 (16:61b5)
+	db $08 ; asm
+	ld hl, SilphCo10TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo10Text3: ; 5a1bf (16:61bf)
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a
+	ld hl, SilphCo10Text_5a1d8
+	jr nz, .asm_cf85f
+	ld hl, SilphCo10Text_5a1d3
+.asm_cf85f
+	call PrintText
+	jp TextScriptEnd
+
+SilphCo10Text_5a1d3: ; 5a1d3 (16:61d3)
+	TX_FAR _SilphCo10Text_5a1d3
+	db "@"
+
+SilphCo10Text_5a1d8: ; 5a1d8 (16:61d8)
+	TX_FAR _SilphCo10Text_5a1d8
+	db "@"
+
+SilphCo10BattleText1: ; 5a1dd (16:61dd)
+	TX_FAR _SilphCo10BattleText1
+	db "@"
+
+SilphCo10EndBattleText1: ; 5a1e2 (16:61e2)
+	TX_FAR _SilphCo10EndBattleText1
+	db "@"
+
+SilphCo10AfterBattleText1: ; 5a1e7 (16:61e7)
+	TX_FAR _SilphCo10AfterBattleText1
+	db "@"
+
+SilphCo10BattleText2: ; 5a1ec (16:61ec)
+	TX_FAR _SilphCo10BattleText2
+	db "@"
+
+SilphCo10EndBattleText2: ; 5a1f1 (16:61f1)
+	TX_FAR _SilphCo10EndBattleText2
+	db "@"
+
+SilphCo10AfterBattleText2: ; 5a1f6 (16:61f6)
+	TX_FAR _SilphCo10AfterBattleText2
+	db "@"
--- /dev/null
+++ b/scripts/silphco11.asm
@@ -1,0 +1,369 @@
+SilphCo11Script: ; 620fa (18:60fa)
+	call SilphCo11Script_62110
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo11TrainerHeaders
+	ld de, SilphCo11ScriptPointers
+	ld a, [W_SILPHCO11CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO11CURSCRIPT], a
+	ret
+
+SilphCo11Script_62110: ; 62110 (18:6110)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_62134 ; $6134
+	call SilphCo11Script_62137
+	call SilphCo11Script_62163
+	ld a, [$d838]
+	bit 0, a
+	ret nz
+	ld a, $20
+	ld [$d09f], a
+	ld bc, $603
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_62134: ; 62134 (18:6134)
+	db $06,$03,$FF
+
+SilphCo11Script_62137: ; 62137 (18:6137)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_62143
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_6215f
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_62154
+	inc hl
+	jr .asm_62143
+.asm_62154
+	ld a, [hli]
+	cp c
+	jr nz, .asm_62143
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_6215f
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo11Script_62163: ; 62163 (18:6163)
+	ld a, [$ffe0]
+	and a
+	ret z
+	ld hl, $d838
+	set 0, [hl]
+	ret
+
+SilphCo11Script_6216d: ; 6216d (18:616d)
+	ld hl, MissableObjectIDs_6219b ; $619b
+.asm_62170
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_62181
+	push hl
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	pop hl
+	jr .asm_62170
+.asm_62181
+	ld hl, MissableObjectIDs_62194 ; $6194
+.asm_62184
+	ld a, [hli]
+	cp $ff
+	ret z
+	push hl
+	ld [$cc4d], a
+	ld a, $15
+	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+	pop hl
+	jr .asm_62184
+
+MissableObjectIDs_62194: ; 62194 (18:6194)
+	db $11,$12,$13,$14,$15,$16,$FF
+
+MissableObjectIDs_6219b: ; 6219b (18:619b)
+	db $0A,$0B,$0C,$0D,$0E,$0F,$10,$17
+	db $18,$8A,$8B,$8C,$8D,$8E,$8F,$91
+	db $92,$93,$97,$98,$99,$9A,$9E,$9F
+	db $A0,$A3,$A4,$A5,$A6,$AB,$AC,$AD
+	db $AE,$AF,$B0,$B1,$B2,$B7,$B8,$B9
+	db $FF
+
+SilphCo11Script_621c4: ; 621c4 (18:61c4)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+
+SilphCo11Script_621c8: ; 621c8 (18:61c8)
+	ld [W_SILPHCO11CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+SilphCo11ScriptPointers: ; 621cf (18:61cf)
+	dw SilphCo11Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SilphCo11Script3
+	dw SilphCo11Script4
+	dw SilphCo11Script5
+
+SilphCo11Script0: ; 621db (18:61db)
+	ld a, [$d838]
+	bit 7, a
+	ret nz
+	ld hl, CoordsData_62211 ; $6211
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	ld a, [wWhichTrade] ; $cd3d
+	ld [$cf0d], a
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $3
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call SetSpriteMovementBytesToFF
+	ld de, MovementData_62216
+	call MoveSprite
+	ld a, $3
+	jp SilphCo11Script_621c8
+
+CoordsData_62211: ; 62211 (18:6211)
+	db $0D,$06
+	db $0C,$07
+	db $FF
+
+MovementData_62216: ; 62216 (18:6216)
+	db $00,$00,$00,$FF
+
+SilphCo11Script_6221a: ; 6221a (18:621a)
+	ld [$d528], a
+	ld a, $3
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld a, b
+	ld [$ff8d], a
+	jp Func_34a6
+
+SilphCo11Script5: ; 62227 (18:6227)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, SilphCo11Script_621c4
+	ld a, [$cf0d]
+	cp $1
+	jr z, .asm_6223c
+	ld a, $2
+	ld b, $c
+	jr .asm_62240
+.asm_6223c
+	ld a, $8
+	ld b, $0
+.asm_62240
+	call SilphCo11Script_6221a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	call GBFadeIn1
+	call SilphCo11Script_6216d
+	call UpdateSprites
+	call Delay3
+	call GBFadeOut1
+	ld hl, $d838
+	set 7, [hl]
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	jp SilphCo11Script_621c8
+
+SilphCo11Script3: ; 6226a (18:626a)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $3
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call SetSpriteMovementBytesToFF
+	ld a, [$cf0d]
+	cp $1
+	jr z, .asm_62284
+	ld a, $2
+	ld b, $c
+	jr .asm_62288
+.asm_62284
+	ld a, $8
+	ld b, $0
+.asm_62288
+	call SilphCo11Script_6221a
+	call Delay3
+	ld a, $4
+	jp SilphCo11Script_621c8
+
+SilphCo11Script4: ; 62293 (18:6293)
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, SilphCo10Text_62330 ; $6330
+	ld de, SilphCo10Text_62330 ; $6330
+	call PreBattleSaveRegisters
+	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $5
+	jp SilphCo11Script_621c8
+
+SilphCo11TextPointers: ; 622b7 (18:62b7)
+	dw SilphCo11Text1
+	dw SilphCo11Text2
+	dw SilphCo11Text3
+	dw SilphCo11Text4
+	dw SilphCo11Text5
+	dw SilphCo11Text6
+
+SilphCo11TrainerHeaders: ; 622c3 (18:62c3)
+SilphCo11TrainerHeader0: ; 622c3 (18:62c3)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d837 ; flag's byte
+	dw SilphCo11BattleText1 ; 0x6344 TextBeforeBattle
+	dw SilphCo11AfterBattleText1 ; 0x634e TextAfterBattle
+	dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
+	dw SilphCo11EndBattleText1 ; 0x6349 TextEndBattle
+
+SilphCo11TrainerHeader1: ; 622cf (18:62cf)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d837 ; flag's byte
+	dw SilphCo11BattleText2 ; 0x635d TextBeforeBattle
+	dw SilphCo11AfterBattleText2 ; 0x6367 TextAfterBattle
+	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
+	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
+
+	db $ff
+
+SilphCo11Text1: ; 622dc (18:62dc)
+	db $08 ; asm
+	ld a, [$d838]
+	bit 5, a
+	jp nz, .asm_62308
+	ld hl, SilphCoPresidentText
+	call PrintText
+	ld bc, (MASTER_BALL << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedSilphCoMasterBallText
+	call PrintText
+	ld hl, $d838
+	set 5, [hl]
+	jr .asm_fd405 ; 0x622fe
+.BagFull
+	ld hl, SilphCoMasterBallNoRoomText
+	call PrintText
+	jr .asm_fd405 ; 0x62306
+.asm_62308 ; 0x62308
+	ld hl, SilphCo10Text_6231c
+	call PrintText
+.asm_fd405 ; 0x6230e
+	jp TextScriptEnd
+
+SilphCoPresidentText: ; 62311 (18:6311)
+	TX_FAR _SilphCoPresidentText
+	db "@"
+
+ReceivedSilphCoMasterBallText: ; 62316 (18:6316)
+	TX_FAR _ReceivedSilphCoMasterBallText
+	db $11, "@"
+
+SilphCo10Text_6231c: ; 6231c (18:631c)
+	TX_FAR _SilphCo10Text_6231c
+	db "@"
+
+SilphCoMasterBallNoRoomText: ; 62321 (18:6321)
+	TX_FAR _SilphCoMasterBallNoRoomText
+	db "@"
+
+SilphCo11Text2: ; 62326 (18:6326)
+	TX_FAR _SilphCo11Text2
+	db "@"
+
+SilphCo11Text3: ; 6232b (18:632b)
+	TX_FAR _SilphCo11Text3
+	db "@"
+
+SilphCo10Text_62330: ; 62330 (18:6330)
+	TX_FAR _SilphCo10Text_62330
+	db "@"
+
+SilphCo11Text6: ; 62335 (18:6335)
+	TX_FAR _SilphCo10Text_62335
+	db "@"
+
+SilphCo11Text4: ; 6233a (18:633a)
+	db $08 ; asm
+	ld hl, SilphCo11TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo11BattleText1: ; 62344 (18:6344)
+	TX_FAR _SilphCo11BattleText1
+	db "@"
+
+SilphCo11EndBattleText1: ; 62349 (18:6349)
+	TX_FAR _SilphCo11EndBattleText1
+	db "@"
+
+SilphCo11AfterBattleText1: ; 6234e (18:634e)
+	TX_FAR _SilphCo11AfterBattleText1
+	db "@"
+
+SilphCo11Text5: ; 62353 (18:6353)
+	db $08 ; asm
+	ld hl, SilphCo11TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo11BattleText2: ; 6235d (18:635d)
+	TX_FAR _SilphCo11BattleText2
+	db "@"
+
+SilphCo11EndBattleText2: ; 62362 (18:6362)
+	TX_FAR _SilphCo11EndBattleText2
+	db "@"
+
+SilphCo11AfterBattleText2: ; 62367 (18:6367)
+	TX_FAR _SilphCo11AfterBattleText2
+	db "@"
+
+SilphCo10Text_6236c: ; 6236c (18:636c)
+	db $8
+	ld hl, SilphCo10Text_6237b
+	call PrintText
+	ld a, PORYGON
+	call DisplayPokedex
+	jp TextScriptEnd
+
+SilphCo10Text_6237b: ; 6237b (18:637b)
+	TX_FAR _SilphCo10Text_6237b
+	db "@"
--- /dev/null
+++ b/scripts/silphco2.asm
@@ -1,0 +1,248 @@
+SilphCo2Script: ; 59cf1 (16:5cf1)
+	call SilphCo2Script_59d07
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo2TrainerHeaders
+	ld de, SilphCo2ScriptPointers
+	ld a, [W_SILPHCO2CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO2CURSCRIPT], a
+	ret
+
+SilphCo2Script_59d07: ; 59d07 (16:5d07)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_59d3e
+	call SilphCo2Script_59d43
+	call SilphCo2Script_59d6f
+	ld a, [$d826]
+	bit 5, a
+	jr nz, .asm_59d2e
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0202
+	ld a, $17
+	call Predef
+	pop af
+.asm_59d2e
+	bit 6, a
+	ret nz
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0502
+	ld a, $17
+	jp Predef
+
+DataTable_59d3e: ; 59d3e (16:5d3e)
+	db $02,$02,$05,$02,$FF
+
+SilphCo2Script_59d43: ; 59d43 (16:5d43)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_59d4f
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_59d6b
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_59d60
+	inc hl
+	jr .asm_59d4f
+.asm_59d60
+	ld a, [hli]
+	cp c
+	jr nz, .asm_59d4f
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_59d6b
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo2Script_59d6f: ; 59d6f (16:5d6f)
+	ld hl, $d826
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_59d7d
+	set 5, [hl]
+	ret
+.asm_59d7d
+	set 6, [hl]
+	ret
+
+SilphCo2ScriptPointers: ; 59d80 (16:5d80)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo2TextPointers: ; 59d86 (16:5d86)
+	dw SilphCo2Text1
+	dw SilphCo2Text2
+	dw SilphCo2Text3
+	dw SilphCo2Text4
+	dw SilphCo2Text5
+
+SilphCo2TrainerHeaders: ; 59d90 (16:5d90)
+SilphCo2TrainerHeader0: ; 59d90 (16:5d90)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d825 ; flag's byte
+	dw SilphCo2BattleText1 ; 0x5e2a TextBeforeBattle
+	dw SilphCo2AfterBattleText1 ; 0x5e34 TextAfterBattle
+	dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
+	dw SilphCo2EndBattleText1 ; 0x5e2f TextEndBattle
+
+SilphCo2TrainerHeader1: ; 59d9c (16:5d9c)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d825 ; flag's byte
+	dw SilphCo2BattleText2 ; 0x5e39 TextBeforeBattle
+	dw SilphCo2AfterBattleText2 ; 0x5e43 TextAfterBattle
+	dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
+	dw SilphCo2EndBattleText2 ; 0x5e3e TextEndBattle
+
+SilphCo2TrainerHeader2: ; 59da8 (16:5da8)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d825 ; flag's byte
+	dw SilphCo2BattleText3 ; 0x5e48 TextBeforeBattle
+	dw SilphCo2AfterBattleText3 ; 0x5e52 TextAfterBattle
+	dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
+	dw SilphCo2EndBattleText3 ; 0x5e4d TextEndBattle
+
+SilphCo2TrainerHeader3: ; 59db4 (16:5db4)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d825 ; flag's byte
+	dw SilphCo2BattleText4 ; 0x5e57 TextBeforeBattle
+	dw SilphCo2AfterBattleText4 ; 0x5e61 TextAfterBattle
+	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
+	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
+
+	db $ff
+
+SilphCo2Text1: ; 59dc1 (16:5dc1)
+	db $08 ; asm
+	ld a, [$d826]
+	bit 7, a
+	jr nz, asm_b8a0d ; 0x59dc7
+	ld hl, SilphCo2Text_59ded
+	call PrintText
+	ld bc, (TM_36 << 8) | 1
+	call GiveItem
+	ld hl, TM36NoRoomText
+	jr nc, asm_2c1e0 ; 0x59dd8
+	ld hl, $d826
+	set 7, [hl]
+	ld hl, ReceivedTM36Text
+	jr asm_2c1e0 ; 0x59de2
+asm_b8a0d ; 0x59de4
+	ld hl, TM36ExplanationText
+asm_2c1e0 ; 0x59de7
+	call PrintText
+	jp TextScriptEnd
+
+SilphCo2Text_59ded: ; 59ded (16:5ded)
+	TX_FAR _SilphCo2Text_59ded
+	db "@"
+
+ReceivedTM36Text: ; 59df2 (16:5df2)
+	TX_FAR _ReceivedTM36Text
+	db $0B, "@"
+
+TM36ExplanationText: ; 59df8 (16:5df8)
+	TX_FAR _TM36ExplanationText
+	db "@"
+
+TM36NoRoomText: ; 59dfd (16:5dfd)
+	TX_FAR _TM36NoRoomText
+	db "@"
+
+SilphCo2Text2: ; 59e02 (16:5e02)
+	db $08 ; asm
+	ld hl, SilphCo2TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo2Text3: ; 59e0c (16:5e0c)
+	db $08 ; asm
+	ld hl, SilphCo2TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo2Text4: ; 59e16 (16:5e16)
+	db $08 ; asm
+	ld hl, SilphCo2TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo2Text5: ; 59e20 (16:5e20)
+	db $08 ; asm
+	ld hl, SilphCo2TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo2BattleText1: ; 59e2a (16:5e2a)
+	TX_FAR _SilphCo2BattleText1
+	db "@"
+
+SilphCo2EndBattleText1: ; 59e2f (16:5e2f)
+	TX_FAR _SilphCo2EndBattleText1
+	db "@"
+
+SilphCo2AfterBattleText1: ; 59e34 (16:5e34)
+	TX_FAR _SilphCo2AfterBattleText1
+	db "@"
+
+SilphCo2BattleText2: ; 59e39 (16:5e39)
+	TX_FAR _SilphCo2BattleText2
+	db "@"
+
+SilphCo2EndBattleText2: ; 59e3e (16:5e3e)
+	TX_FAR _SilphCo2EndBattleText2
+	db "@"
+
+SilphCo2AfterBattleText2: ; 59e43 (16:5e43)
+	TX_FAR _SilphCo2AfterBattleText2
+	db "@"
+
+SilphCo2BattleText3: ; 59e48 (16:5e48)
+	TX_FAR _SilphCo2BattleText3
+	db "@"
+
+SilphCo2EndBattleText3: ; 59e4d (16:5e4d)
+	TX_FAR _SilphCo2EndBattleText3
+	db "@"
+
+SilphCo2AfterBattleText3: ; 59e52 (16:5e52)
+	TX_FAR _SilphCo2AfterBattleText3
+	db "@"
+
+SilphCo2BattleText4: ; 59e57 (16:5e57)
+	TX_FAR _SilphCo2BattleText4
+	db "@"
+
+SilphCo2EndBattleText4: ; 59e5c (16:5e5c)
+	TX_FAR _SilphCo2EndBattleText4
+	db "@"
+
+SilphCo2AfterBattleText4: ; 59e61 (16:5e61)
+	TX_FAR _SilphCo2AfterBattleText4
+	db "@"
--- /dev/null
+++ b/scripts/silphco3.asm
@@ -1,0 +1,139 @@
+SilphCo3Script: ; 59f5b (16:5f5b)
+	call SilphCo3Script_59f71
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo3TrainerHeaders
+	ld de, SilphCo3ScriptPointers
+	ld a, [W_SILPHCO3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO3CURSCRIPT], a
+	ret
+
+SilphCo3Script_59f71: ; 59f71 (16:5f71)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_59fa8 ; $5fa8
+	call SilphCo2Script_59d43
+	call SilphCo3Script_59fad
+	ld a, [$d828]
+	bit 0, a
+	jr nz, .asm_59f98
+	push af
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $404
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_59f98
+	bit 1, a
+	ret nz
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $408
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_59fa8: ; 59fa8 (16:5fa8)
+	db $04,$04,$04,$08,$FF
+
+SilphCo3Script_59fad: ; 59fad (16:5fad)
+	ld hl, $d828
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_59fbb
+	set 0, [hl]
+	ret
+.asm_59fbb
+	set 1, [hl]
+	ret
+
+SilphCo3ScriptPointers: ; 59fbe (16:5fbe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo3TextPointers: ; 59fc4 (16:5fc4)
+	dw SilphCo3Text1
+	dw SilphCo3Text2
+	dw SilphCo3Text3
+	dw Predef5CText
+
+SilphCo3TrainerHeaders: ; 59fcc (16:5fcc)
+SilphCo3TrainerHeader0: ; 59fcc (16:5fcc)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d827 ; flag's byte
+	dw SilphCo3BattleText1 ; 0x600d TextBeforeBattle
+	dw SilphCo3AfterBattleText1 ; 0x6017 TextAfterBattle
+	dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
+	dw SilphCo3EndBattleText1 ; 0x6012 TextEndBattle
+
+SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d827 ; flag's byte
+	dw SilphCo3BattleText2 ; 0x6026 TextBeforeBattle
+	dw SilphCo3AfterBattleText2 ; 0x6030 TextAfterBattle
+	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
+	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
+
+	db $ff
+
+SilphCo3Text1: ; 59fe5 (16:5fe5)
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a
+	ld hl, SilphCo3Text_59ffe
+	jr nz, asm_8c56f ; 0x59fee
+	ld hl, SilphCo3Text_59ff9
+asm_8c56f ; 0x59ff3
+	call PrintText
+	jp TextScriptEnd
+
+SilphCo3Text_59ff9: ; 59ff9 (16:5ff9)
+	TX_FAR _SilphCo3Text_59ff9
+	db "@"
+
+SilphCo3Text_59ffe: ; 59ffe (16:5ffe)
+	TX_FAR _SilphCo3Text_59ffe
+	db "@"
+
+SilphCo3Text2: ; 5a003 (16:6003)
+	db $08 ; asm
+	ld hl, SilphCo3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo3BattleText1: ; 5a00d (16:600d)
+	TX_FAR _SilphCo3BattleText1
+	db "@"
+
+SilphCo3EndBattleText1: ; 5a012 (16:6012)
+	TX_FAR _SilphCo3EndBattleText1
+	db "@"
+
+SilphCo3AfterBattleText1: ; 5a017 (16:6017)
+	TX_FAR _SilphCo3AfterBattleText1
+	db "@"
+
+SilphCo3Text3: ; 5a01c (16:601c)
+	db $08 ; asm
+	ld hl, SilphCo3TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo3BattleText2: ; 5a026 (16:6026)
+	TX_FAR _SilphCo3BattleText2
+	db "@"
+
+SilphCo3EndBattleText2: ; 5a02b (16:602b)
+	TX_FAR _SilphCo3EndBattleText2
+	db "@"
+
+SilphCo3AfterBattleText2: ; 5a030 (16:6030)
+	TX_FAR _SilphCo3AfterBattleText2
+	db "@"
--- /dev/null
+++ b/scripts/silphco4.asm
@@ -1,0 +1,201 @@
+SilphCo4Script: ; 19d0b (6:5d0b)
+	call SilphCo4Script_19d21
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo4TrainerHeaders
+	ld de, SilphCo4ScriptPointers
+	ld a, [W_SILPHCO4CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO4CURSCRIPT], a
+	ret
+
+SilphCo4Script_19d21: ; 19d21 (6:5d21)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, SilphCo4Data19d58
+	call SilphCo4Script_19d5d
+	call SilphCo4Script_19d89
+	ld a, [$d82a]
+	bit 0, a
+	jr nz, .asm_19d48
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0602
+	ld a, $17
+	call Predef
+	pop af
+.asm_19d48
+	bit 1, a
+	ret nz
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0406
+	ld a, $17
+	jp Predef
+
+SilphCo4Data19d58: ; 19d58 (6:5d58)
+	db $06, $02, $04, $06, $ff
+
+SilphCo4Script_19d5d: ; 19d5d (6:5d5d)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_19d69
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_19d85 ; 0x19d6c $17
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_19d7a ; 0x19d75 $3
+	inc hl
+	jr .asm_19d69 ; 0x19d78 $ef
+.asm_19d7a
+	ld a, [hli]
+	cp c
+	jr nz, .asm_19d69 ; 0x19d7c $eb
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_19d85
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo4Script_19d89: ; 19d89 (6:5d89)
+	ld hl, $d82a
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_19d97 ; 0x19d92 $3
+	set 0, [hl]
+	ret
+.asm_19d97
+	set 1, [hl]
+	ret
+
+SilphCo4ScriptPointers: ; 19d9a (6:5d9a)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo4TextPointers: ; 19da0 (6:5da0)
+	dw SilphCo4Text1
+	dw SilphCo4Text2
+	dw SilphCo4Text3
+	dw SilphCo4Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+SilphCo4TrainerHeaders: ; 19dae (6:5dae)
+SilphCo4TrainerHeader0: ; 19dae (6:5dae)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d829 ; flag's byte
+	dw SilphCo4BattleText2 ; 0x5df4 TextBeforeBattle
+	dw SilphCo4AfterBattleText2 ; 0x5dfe TextAfterBattle
+	dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
+	dw SilphCo4EndBattleText2 ; 0x5df9 TextEndBattle
+
+SilphCo4TrainerHeader2: ; 19dba (6:5dba)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d829 ; flag's byte
+	dw SilphCo4BattleText3 ; 0x5e0d TextBeforeBattle
+	dw SilphCo4AfterBattleText3 ; 0x5e17 TextAfterBattle
+	dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
+	dw SilphCo4EndBattleText3 ; 0x5e12 TextEndBattle
+
+SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d829 ; flag's byte
+	dw SilphCo4BattleText4 ; 0x5e26 TextBeforeBattle
+	dw SilphCo4AfterBattleText4 ; 0x5e30 TextAfterBattle
+	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
+	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
+
+	db $ff
+
+SilphCo4Text1: ; 19dd3 (6:5dd3)
+	db $08 ; asm
+	ld hl, SilphCo4Text_19de0
+	ld de, SilphCo4Text_19de5
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo4Text_19de0: ; 19de0 (6:5de0)
+	TX_FAR _SilphCo4Text_19de0
+	db "@"
+
+SilphCo4Text_19de5: ; 19de5 (6:5de5)
+	TX_FAR _SilphCo4Text_19de5
+	db "@"
+
+SilphCo4Text2: ; 19dea (6:5dea)
+	db $08 ; asm
+	ld hl, SilphCo4TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo4BattleText2: ; 19df4 (6:5df4)
+	TX_FAR _SilphCo4BattleText2
+	db "@"
+
+SilphCo4EndBattleText2: ; 19df9 (6:5df9)
+	TX_FAR _SilphCo4EndBattleText2
+	db "@"
+
+SilphCo4AfterBattleText2: ; 19dfe (6:5dfe)
+	TX_FAR _SilphCo4AfterBattleText2
+	db "@"
+
+SilphCo4Text3: ; 19e03 (6:5e03)
+	db $08 ; asm
+	ld hl, SilphCo4TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo4BattleText3: ; 19e0d (6:5e0d)
+	TX_FAR _SilphCo4BattleText3
+	db "@"
+
+SilphCo4EndBattleText3: ; 19e12 (6:5e12)
+	TX_FAR _SilphCo4EndBattleText3
+	db "@"
+
+SilphCo4AfterBattleText3: ; 19e17 (6:5e17)
+	TX_FAR _SilphCo4AfterBattleText3
+	db "@"
+
+SilphCo4Text4: ; 19e1c (6:5e1c)
+	db $08 ; asm
+	ld hl, SilphCo4TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo4BattleText4: ; 19e26 (6:5e26)
+	TX_FAR _SilphCo4BattleText4
+	db "@"
+
+SilphCo4EndBattleText4: ; 19e2b (6:5e2b)
+	TX_FAR _SilphCo4EndBattleText4
+	db "@"
+
+SilphCo4AfterBattleText4: ; 19e30 (6:5e30)
+	TX_FAR _SilphCo4AfterBattleText4
+	db "@"
--- /dev/null
+++ b/scripts/silphco5.asm
@@ -1,0 +1,223 @@
+SilphCo5Script: ; 19f37 (6:5f37)
+	call SilphCo5Script_19f4d
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo5TrainerHeaders
+	ld de, SilphCo5ScriptPointers
+	ld a, [W_SILPHCO5CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO5CURSCRIPT], a
+	ret
+
+SilphCo5Script_19f4d: ; 19f4d (6:5f4d)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, SilphCo5Coords
+	call SilphCo4Script_19d5d
+	call SilphCo5Script_19f9e
+	ld a, [$d82c]
+	bit 0, a
+	jr nz, .asm_19f74 ; 0x19f63 $f
+	push af
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $0203
+	ld a, $17
+	call Predef
+	pop af
+.asm_19f74
+	bit 1, a
+	jr nz, .asm_19f87 ; 0x19f76 $f
+	push af
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $0603
+	ld a, $17
+	call Predef
+	pop af
+.asm_19f87
+	bit 2, a
+	ret nz
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $0507
+	ld a, $17
+	jp Predef
+
+SilphCo5Coords: ; 19f97 (6:5f97) ; coords?
+	db $02, $03, $06, $03, $05, $07, $ff
+
+SilphCo5Script_19f9e: ; 19f9e (6:5f9e)
+	ld hl, $d82c
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_19fac ; 0x19fa7 $3
+	set 0, [hl]
+	ret
+.asm_19fac
+	cp $2
+	jr nz, .asm_19fb3 ; 0x19fae $3
+	set 1, [hl]
+	ret
+.asm_19fb3
+	set 2, [hl]
+	ret
+
+SilphCo5ScriptPointers: ; 19fb6 (6:5fb6)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo5TextPointers: ; 19fbc (6:5fbc)
+	dw SilphCo5Text1
+	dw SilphCo5Text2
+	dw SilphCo5Text3
+	dw SilphCo5Text4
+	dw SilphCo5Text5
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SilphCo5Text9
+	dw SilphCo5Text10
+	dw SilphCo5Text11
+
+SilphCo5TrainerHeaders: ; 19fd2 (6:5fd2)
+Silphco5TrainerHeader0: ; 19fd2 (6:5fd2)
+	db $2 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d82b ; flag's byte
+	dw SilphCo5BattleText2 ; 0x6024 TextBeforeBattle
+	dw SilphCo5AfterBattleText2 ; 0x602e TextAfterBattle
+	dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
+	dw SilphCo5EndBattleText2 ; 0x6029 TextEndBattle
+
+Silphco5TrainerHeader2: ; 19fde (6:5fde)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d82b ; flag's byte
+	dw SilphCo5BattleText3 ; 0x603d TextBeforeBattle
+	dw SilphCo5AfterBattleText3 ; 0x6047 TextAfterBattle
+	dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
+	dw SilphCo5EndBattleText3 ; 0x6042 TextEndBattle
+
+Silphco5TrainerHeader3: ; 19fea (6:5fea)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d82b ; flag's byte
+	dw SilphCo5BattleText4 ; 0x6056 TextBeforeBattle
+	dw SilphCo5AfterBattleText4 ; 0x6060 TextAfterBattle
+	dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
+	dw SilphCo5EndBattleText4 ; 0x605b TextEndBattle
+
+Silphco5TrainerHeader4: ; 19ff6 (6:5ff6)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d82b ; flag's byte
+	dw SilphCo5BattleText5 ; 0x606f TextBeforeBattle
+	dw SilphCo5AfterBattleText5 ; 0x6079 TextAfterBattle
+	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
+	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
+
+	db $ff
+
+SilphCo5Text1: ; 1a003 (6:6003)
+	db $08 ; asm
+	ld hl, SilphCo5Text_1a010
+	ld de, SilphCo5Text_1a015
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo5Text_1a010: ; 1a010 (6:6010)
+	TX_FAR _SilphCo5Text_1a010
+	db "@"
+
+SilphCo5Text_1a015: ; 1a015 (6:6015)
+	TX_FAR _SilphCo5Text_1a015
+	db "@"
+
+SilphCo5Text2: ; 1a01a (6:601a)
+	db $08 ; asm
+	ld hl, Silphco5TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo5BattleText2: ; 1a024 (6:6024)
+	TX_FAR _SilphCo5BattleText2
+	db "@"
+
+SilphCo5EndBattleText2: ; 1a029 (6:6029)
+	TX_FAR _SilphCo5EndBattleText2
+	db "@"
+
+SilphCo5AfterBattleText2: ; 1a02e (6:602e)
+	TX_FAR _SilphCo5AfterBattleText2
+	db "@"
+
+SilphCo5Text3: ; 1a033 (6:6033)
+	db $08 ; asm
+	ld hl, Silphco5TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo5BattleText3: ; 1a03d (6:603d)
+	TX_FAR _SilphCo5BattleText3
+	db "@"
+
+SilphCo5EndBattleText3: ; 1a042 (6:6042)
+	TX_FAR _SilphCo5EndBattleText3
+	db "@"
+
+SilphCo5AfterBattleText3: ; 1a047 (6:6047)
+	TX_FAR _SilphCo5AfterBattleText3
+	db "@"
+
+SilphCo5Text4: ; 1a04c (6:604c)
+	db $08 ; asm
+	ld hl, Silphco5TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo5BattleText4: ; 1a056 (6:6056)
+	TX_FAR _SilphCo5BattleText4
+	db "@"
+
+SilphCo5EndBattleText4: ; 1a05b (6:605b)
+	TX_FAR _SilphCo5EndBattleText4
+	db "@"
+
+SilphCo5AfterBattleText4: ; 1a060 (6:6060)
+	TX_FAR _SilphCo5AfterBattleText4
+	db "@"
+
+SilphCo5Text5: ; 1a065 (6:6065)
+	db $08 ; asm
+	ld hl, Silphco5TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo5BattleText5: ; 1a06f (6:606f)
+	TX_FAR _SilphCo5BattleText5
+	db "@"
+
+SilphCo5EndBattleText5: ; 1a074 (6:6074)
+	TX_FAR _SilphCo5EndBattleText5
+	db "@"
+
+SilphCo5AfterBattleText5: ; 1a079 (6:6079)
+	TX_FAR _SilphCo5AfterBattleText5
+	db "@"
+
+SilphCo5Text9: ; 1a07e (6:607e)
+	TX_FAR _SilphCo5Text9
+	db "@"
+
+SilphCo5Text10: ; 1a083 (6:6083)
+	TX_FAR _SilphCo5Text10
+	db "@"
+
+SilphCo5Text11: ; 1a088 (6:6088)
+	TX_FAR _SilphCo5Text11
+	db "@"
--- /dev/null
+++ b/scripts/silphco6.asm
@@ -1,0 +1,225 @@
+SilphCo6Script: ; 1a1a9 (6:61a9)
+	call SilphCo6Script_1a1bf
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo6TrainerHeaders
+	ld de, SilphCo6ScriptPointers
+	ld a, [W_SILPHCO6CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO6CURSCRIPT], a
+	ret
+
+SilphCo6Script_1a1bf: ; 1a1bf (6:61bf)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, SilphCo6Coords1
+	call SilphCo4Script_19d5d
+	call SilphCo6Script_1a1e6
+	ld a, [$d82e]
+	bit 7, a
+	ret nz
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $0602
+	ld a, $17
+	jp Predef
+
+SilphCo6Coords1: ; 1a1e3 (6:61e3)
+	db $06, $02
+	db $ff
+
+SilphCo6Script_1a1e6: ; 1a1e6 (6:61e6)
+	ld a, [$ffe0]
+	and a
+	ret z
+	ld hl, $d82e
+	set 7, [hl]
+	ret
+
+SilphCo6ScriptPointers: ; 1a1f0 (6:61f0)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo6TextPointers: ; 1a1f6 (6:61f6)
+	dw SilphCo6Text1
+	dw SilphCo6Text2
+	dw SilphCo6Text3
+	dw SilphCo6Text4
+	dw SilphCo6Text5
+	dw SilphCo6Text6
+	dw SilphCo6Text7
+	dw SilphCo6Text8
+	dw Predef5CText
+	dw Predef5CText
+
+SilphCo6TrainerHeaders: ; 1a20a (6:620a)
+SilphCo6TrainerHeader0: ; 1a20a (6:620a)
+	db $6 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d82d ; flag's byte
+	dw SilphCo6BattleText2 ; 0x62ba TextBeforeBattle
+	dw SilphCo6AfterBattleText2 ; 0x62c4 TextAfterBattle
+	dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
+	dw SilphCo6EndBattleText2 ; 0x62bf TextEndBattle
+
+SilphCo6TrainerHeader2: ; 1a216 (6:6216)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d82d ; flag's byte
+	dw SilphCo6BattleText3 ; 0x62d3 TextBeforeBattle
+	dw SilphCo6AfterBattleText3 ; 0x62dd TextAfterBattle
+	dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
+	dw SilphCo6EndBattleText3 ; 0x62d8 TextEndBattle
+
+SilphCo6TrainerHeader3: ; 1a222 (6:6222)
+	db $8 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d82d ; flag's byte
+	dw SilphCo6BattleText4 ; 0x62ec TextBeforeBattle
+	dw SilphCo6AfterBattleText4 ; 0x62f6 TextAfterBattle
+	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
+	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
+
+	db $ff
+
+SilphCo6Script_1a22f: ; 1a22f (6:622f)
+	ld a, [$d838]
+	bit 7, a
+	jr nz, .asm_1a238 ; 0x1a234 $2
+	jr .asm_1a23a ; 0x1a236 $2
+.asm_1a238
+	ld h, d
+	ld l, e
+.asm_1a23a
+	jp PrintText
+
+SilphCo6Text1: ; 1a23d (6:623d)
+	db $08 ; asm
+	ld hl, SilphCo6Text_1a24a
+	ld de, SilphCo6Text_1a24f
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo6Text_1a24a: ; 1a24a (6:624a)
+	TX_FAR _SilphCo6Text_1a24a
+	db "@"
+
+SilphCo6Text_1a24f: ; 1a24f (6:624f)
+	TX_FAR _SilphCo6Text_1a24f
+	db "@"
+
+SilphCo6Text2: ; 1a254 (6:6254)
+	db $08 ; asm
+	ld hl, SilphCo6Text_1a261
+	ld de, SilphCo6Text_1a266
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo6Text_1a261: ; 1a261 (6:6261)
+	TX_FAR _SilphCo6Text_1a261
+	db "@"
+
+SilphCo6Text_1a266: ; 1a266 (6:6266)
+	TX_FAR _SilphCo6Text_1a266
+	db "@"
+
+SilphCo6Text3: ; 1a26b (6:626b)
+	db $08 ; asm
+	ld hl, SilphCo6Text_1a278
+	ld de, SilphCo6Text_1a27d
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo6Text_1a278: ; 1a278 (6:6278)
+	TX_FAR _SilphCo6Text_1a278
+	db "@"
+
+SilphCo6Text_1a27d: ; 1a27d (6:627d)
+	TX_FAR _SilphCo6Text_1a27d
+	db "@"
+
+SilphCo6Text4: ; 1a282 (6:6282)
+	db $08 ; asm
+	ld hl, SilphCo6Text_1a28f
+	ld de, SilphCo6Text_1a294
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo6Text_1a28f: ; 1a28f (6:628f)
+	TX_FAR _SilphCo6Text_1a28f
+	db "@"
+
+SilphCo6Text_1a294: ; 1a294 (6:6294)
+	TX_FAR _SilphCo6Text_1a294
+	db "@"
+
+SilphCo6Text5: ; 1a299 (6:6299)
+	db $08 ; asm
+	ld hl, SilphCo6Text_1a2a6
+	ld de, SilphCo6Text_1a2ab
+	call SilphCo6Script_1a22f
+	jp TextScriptEnd
+
+SilphCo6Text_1a2a6: ; 1a2a6 (6:62a6)
+	TX_FAR _SilphCo6Text_1a2a6
+	db "@"
+
+SilphCo6Text_1a2ab: ; 1a2ab (6:62ab)
+	TX_FAR _SilphCo6Text_1a2ab
+	db "@"
+
+SilphCo6Text6: ; 1a2b0 (6:62b0)
+	db $08 ; asm
+	ld hl, SilphCo6TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo6BattleText2: ; 1a2ba (6:62ba)
+	TX_FAR _SilphCo6BattleText2
+	db "@"
+
+SilphCo6EndBattleText2: ; 1a2bf (6:62bf)
+	TX_FAR _SilphCo6EndBattleText2
+	db "@"
+
+SilphCo6AfterBattleText2: ; 1a2c4 (6:62c4)
+	TX_FAR _SilphCo6AfterBattleText2
+	db "@"
+
+SilphCo6Text7: ; 1a2c9 (6:62c9)
+	db $08 ; asm
+	ld hl, SilphCo6TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo6BattleText3: ; 1a2d3 (6:62d3)
+	TX_FAR _SilphCo6BattleText3
+	db "@"
+
+SilphCo6EndBattleText3: ; 1a2d8 (6:62d8)
+	TX_FAR _SilphCo6EndBattleText3
+	db "@"
+
+SilphCo6AfterBattleText3: ; 1a2dd (6:62dd)
+	TX_FAR _SilphCo6AfterBattleText3
+	db "@"
+
+SilphCo6Text8: ; 1a2e2 (6:62e2)
+	db $08 ; asm
+	ld hl, SilphCo6TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo6BattleText4: ; 1a2ec (6:62ec)
+	TX_FAR _SilphCo6BattleText4
+	db "@"
+
+SilphCo6EndBattleText4: ; 1a2f1 (6:62f1)
+	TX_FAR _SilphCo6EndBattleText4
+	db "@"
+
+SilphCo6AfterBattleText4: ; 1a2f6 (6:62f6)
+	TX_FAR _SilphCo6AfterBattleText4
+	db "@"
--- /dev/null
+++ b/scripts/silphco7.asm
@@ -1,0 +1,525 @@
+SilphCo7Script: ; 51b61 (14:5b61)
+	call SilphCo7Script_51b77
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo7TrainerHeaders
+	ld de, SilphCo7ScriptPointers
+	ld a, [W_SILPHCO7CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO7CURSCRIPT], a
+	ret
+
+SilphCo7Script_51b77: ; 51b77 (14:5b77)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_51bc1 ; $5bc1
+	call SilphCo7Text_51bc8
+	call SilphCo7Text_51bf4
+	ld a, [$d830]
+	bit 4, a
+	jr nz, .asm_51b9e
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $305
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_51b9e
+	bit 5, a
+	jr nz, .asm_51bb1
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $20a
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_51bb1
+	bit 6, a
+	ret nz
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $60a
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_51bc1: ; 51bc1 (14:5bc1)
+	db $03,$05,$02,$0A,$06,$0A,$FF
+
+SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_51bd4
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_51bf0
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_51be5
+	inc hl
+	jr .asm_51bd4
+.asm_51be5
+	ld a, [hli]
+	cp c
+	jr nz, .asm_51bd4
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_51bf0
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo7Text_51bf4: ; 51bf4 (14:5bf4)
+	ld hl, $d830
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_51c02
+	set 4, [hl]
+	ret
+.asm_51c02
+	cp $2
+	jr nz, .asm_51c09
+	set 5, [hl]
+	ret
+.asm_51c09
+	set 6, [hl]
+	ret
+
+SilphCo7Text_51c0c: ; 51c0c (14:5c0c)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+
+SilphCo7Text_51c10: ; 51c10 (14:5c10)
+	ld [W_SILPHCO7CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+SilphCo7ScriptPointers: ; 51c17 (14:5c17)
+	dw SilphCo7Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SilphCo7Script3
+	dw SilphCo7Script4
+	dw SilphCo7Script5
+
+SilphCo7Script0: ; 51c23 (14:5c23)
+	ld a, [$d82f]
+	bit 0, a
+	jp nz, CheckFightingMapTrainers
+	ld hl, CoordsData_51c78
+	call ArePlayerCoordsInArray
+	jp nc, CheckFightingMapTrainers
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $4
+	ld [$d528], a
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call SetSpriteMovementBytesToFF
+	ld de, MovementData_51c7d
+	ld a, [wWhichTrade] ; $cd3d
+	ld [$cf0d], a
+	cp $1
+	jr z, .asm_51c6c
+	inc de
+.asm_51c6c
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call MoveSprite
+	ld a, $3
+	jp SilphCo7Text_51c10
+
+CoordsData_51c78: ; 51c78 (14:5c78)
+	db $02,$03
+	db $03,$03
+	db $FF
+
+MovementData_51c7d: ; 51c7d (14:5c7d)
+	db $40,$40,$40,$40,$FF
+
+SilphCo7Script3: ; 51c82 (14:5c82)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $d
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	call Delay3
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, SilphCo7Text14 ; $5ec8
+	ld de, SilphCo7Text_51ecd ; $5ecd
+	call PreBattleSaveRegisters
+	ld a, SONY2 + $c8
+	ld [W_CUROPPONENT], a ; $d059
+	ld a, [W_RIVALSTARTER] ; $d715
+	cp SQUIRTLE
+	jr nz, .asm_51cb6
+	ld a, $7
+	jr .asm_51cc0
+.asm_51cb6
+	cp BULBASAUR
+	jr nz, .asm_51cbe
+	ld a, $8
+	jr .asm_51cc0
+.asm_51cbe
+	ld a, $9
+.asm_51cc0
+	ld [W_TRAINERNO], a ; $d05d
+	ld a, $4
+	jp SilphCo7Text_51c10
+
+SilphCo7Script4: ; 51cc8 (14:5cc8)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, SilphCo7Text_51c0c
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d82f
+	set 0, [hl]
+	ld a, $4
+	ld [$d528], a
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld a, $4
+	ld [$ff8d], a
+	call Func_34a6
+	ld a, $f
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld de, MovementData_51d1d
+	ld a, [$cf0d]
+	cp $1
+	jr nz, .asm_51d0e
+	ld de, MovementData_51d1a
+.asm_51d0e
+	ld a, $9
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call MoveSprite
+	ld a, $5
+	jp SilphCo7Text_51c10
+
+MovementData_51d1a: ; 51d1a (14:5d1a)
+	db $C0,$C0,$FF
+
+MovementData_51d1d: ; 51d1d (14:5d1d)
+	db $80,$40,$40,$C0,$C0,$C0,$00,$FF
+
+SilphCo7Script5: ; 51d25 (14:5d25)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	ld a, $a7
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	call Func_2307
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	jp SilphCo7Text_51c10
+
+SilphCo7TextPointers: ; 51d3f (14:5d3f)
+	dw SilphCo7Text1
+	dw SilphCo7Text2
+	dw SilphCo7Text3
+	dw SilphCo7Text4
+	dw SilphCo7Text5
+	dw SilphCo7Text6
+	dw SilphCo7Text7
+	dw SilphCo7Text8
+	dw SilphCo7Text9
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SilphCo7Text13
+	dw SilphCo7Text14
+	dw SilphCo7Text15
+
+SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
+SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d82f ; flag's byte
+	dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle
+	dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle
+	dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
+	dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
+
+SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d82f ; flag's byte
+	dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle
+	dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle
+	dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
+	dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
+
+SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
+	db $7 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d82f ; flag's byte
+	dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle
+	dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle
+	dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
+	dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
+
+SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
+	db $8 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d82f ; flag's byte
+	dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle
+	dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle
+	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
+	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
+
+	db $ff
+
+SilphCo7Text1:
+; lapras guy
+	db $08 ; asm
+	ld a, [$d72e]
+	bit 0, a ; got lapras?
+	jr z, .givelapras
+	ld a, [$d838]
+	bit 7, a ; saved silph?
+	jr nz, .savedsilph
+	ld hl, .LaprasGuyText
+	call PrintText
+	jr .done
+.givelapras
+	ld hl, .MeetLaprasGuyText
+	call PrintText
+	ld bc, (LAPRAS << 8) | 15
+	call GivePokemon
+	jr nc, .done
+	ld a, [$ccd3]
+	and a
+	call z, WaitForTextScrollButtonPress
+	call EnableAutoTextBoxDrawing
+	ld hl, .HeresYourLaprasText
+	call PrintText
+	ld hl, $d72e
+	set 0, [hl]
+	jr .done
+.savedsilph
+	ld hl, .LaprasGuySavedText
+	call PrintText
+.done
+	jp TextScriptEnd
+
+.MeetLaprasGuyText
+	TX_FAR _MeetLaprasGuyText
+	db "@"
+
+.HeresYourLaprasText
+	TX_FAR _HeresYourLaprasText
+	db "@"
+
+.LaprasGuyText
+	TX_FAR _LaprasGuyText
+	db "@"
+
+.LaprasGuySavedText
+	TX_FAR _LaprasGuySavedText
+	db "@"
+
+SilphCo7Text2:
+	db $8
+	ld a, [$d838]
+	bit 7, a ; saved silph?
+	jr nz, .savedsilph
+	ld hl, .rockettext
+	call PrintText
+	jr .done
+.savedsilph
+	ld hl, .savedtext
+	call PrintText
+.done
+	jp TextScriptEnd
+
+.rockettext
+	TX_FAR _SilphCo7Text_51e00
+	db "@"
+
+.savedtext
+	TX_FAR _CanceledMasterBallText
+	db "@"
+
+SilphCo7Text3:
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a ; saved silph?
+	jr nz, .savedsilph
+	ld hl, .rockettext
+	call PrintText
+	jr .done
+.savedsilph
+	ld hl, .savedtext
+	call PrintText
+.done
+	jp TextScriptEnd
+
+.rockettext
+	TX_FAR _SilphCo7Text_51e23
+	db "@"
+
+.savedtext
+	TX_FAR _SilphCo7Text_51e28
+	db "@"
+
+SilphCo7Text4:
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a ; saved silph?
+	jr nz, .savedsilph
+	ld hl, .rockettext
+	call PrintText
+	jr .done
+.savedsilph
+	ld hl, .savedtext
+	call PrintText
+.done
+	jp TextScriptEnd
+
+.rockettext
+	TX_FAR _SilphCo7Text_51e46
+	db "@"
+
+.savedtext
+	TX_FAR _SilphCo7Text_51e4b
+	db "@"
+
+SilphCo7Text5: ; 51e50 (14:5e50)
+	db $08 ; asm
+	ld hl, SilphCo7TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo7BattleText1: ; 51e5a (14:5e5a)
+	TX_FAR _SilphCo7BattleText1
+	db "@"
+
+SilphCo7EndBattleText1: ; 51e5f (14:5e5f)
+	TX_FAR _SilphCo7EndBattleText1
+	db "@"
+
+SilphCo7AfterBattleText1: ; 51e64 (14:5e64)
+	TX_FAR _SilphCo7AfterBattleText1
+	db "@"
+
+SilphCo7Text6: ; 51e69 (14:5e69)
+	db $08 ; asm
+	ld hl, SilphCo7TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo7BattleText2: ; 51e73 (14:5e73)
+	TX_FAR _SilphCo7BattleText2
+	db "@"
+
+SilphCo7EndBattleText2: ; 51e78 (14:5e78)
+	TX_FAR _SilphCo7EndBattleText2
+	db "@"
+
+SilphCo7AfterBattleText2: ; 51e7d (14:5e7d)
+	TX_FAR _SilphCo7AfterBattleText2
+	db "@"
+
+SilphCo7Text7: ; 51e82 (14:5e82)
+	db $08 ; asm
+	ld hl, SilphCo7TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo7BattleText3: ; 51e8c (14:5e8c)
+	TX_FAR _SilphCo7BattleText3
+	db "@"
+
+SilphCo7EndBattleText3: ; 51e91 (14:5e91)
+	TX_FAR _SilphCo7EndBattleText3
+	db "@"
+
+SilphCo7AfterBattleText3: ; 51e96 (14:5e96)
+	TX_FAR _SilphCo7AfterBattleText3
+	db "@"
+
+SilphCo7Text8: ; 51e9b (14:5e9b)
+	db $08 ; asm
+	ld hl, SilphCo7TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo7BattleText4: ; 51ea5 (14:5ea5)
+	TX_FAR _SilphCo7BattleText4
+	db "@"
+
+SilphCo7EndBattleText4: ; 51eaa (14:5eaa)
+	TX_FAR _SilphCo7EndBattleText4
+	db "@"
+
+SilphCo7AfterBattleText4: ; 51eaf (14:5eaf)
+	TX_FAR _SilphCo7AfterBattleText4
+	db "@"
+
+SilphCo7Text9: ; 51eb4 (14:5eb4)
+	db $08 ; asm
+	ld hl, SilphCo7Text_51ebe
+	call PrintText
+	jp TextScriptEnd
+
+SilphCo7Text_51ebe: ; 51ebe (14:5ebe)
+	TX_FAR _SilphCo7Text_51ebe
+	db "@"
+
+SilphCo7Text13: ; 51ec3 (14:5ec3)
+	TX_FAR _SilphCo7Text_51ec3
+	db "@"
+
+SilphCo7Text14: ; 51ec8 (14:5ec8)
+	TX_FAR _SilphCo7Text_51ec8
+	db "@"
+
+SilphCo7Text_51ecd: ; 51ecd (14:5ecd)
+	TX_FAR _SilphCo7Text_51ecd
+	db "@"
+
+SilphCo7Text15: ; 51ed2 (14:5ed2)
+	TX_FAR _SilphCo7Text_51ed2
+	db "@"
--- /dev/null
+++ b/scripts/silphco8.asm
@@ -1,0 +1,187 @@
+SilphCo8Script: ; 56504 (15:6504)
+	call SilphCo8Script_5651a
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo8TrainerHeader0
+	ld de, SilphCo8ScriptPointers
+	ld a, [W_SILPHCO8CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO8CURSCRIPT], a
+	ret
+
+SilphCo8Script_5651a: ; 5651a (15:651a)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_5653e ; $653e
+	call SilphCo8Script_56541
+	call SilphCo8Script_5656d
+	ld a, [$d832]
+	bit 0, a
+	ret nz
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $403
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_5653e: ; 5653e (15:653e)
+	db $04,$03,$FF
+
+SilphCo8Script_56541: ; 56541 (15:6541)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_5654d
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_56569
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_5655e
+	inc hl
+	jr .asm_5654d
+.asm_5655e
+	ld a, [hli]
+	cp c
+	jr nz, .asm_5654d
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_56569
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo8Script_5656d: ; 5656d (15:656d)
+	ld a, [$ffe0]
+	and a
+	ret z
+	ld hl, $d832
+	set 0, [hl]
+	ret
+
+SilphCo8ScriptPointers: ; 56577 (15:6577)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo8TextPointers: ; 5657d (15:657d)
+	dw SilphCo8Text1
+	dw SilphCo8Text2
+	dw SilphCo8Text3
+	dw SilphCo8Text4
+
+SilphCo8TrainerHeaders: ; 56585 (15:6585)
+SilphCo8TrainerHeader0: ; 56585 (15:6585)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d831 ; flag's byte
+	dw SilphCo8BattleText1 ; 0x65e6 TextBeforeBattle
+	dw SilphCo8AfterBattleText1 ; 0x65f0 TextAfterBattle
+	dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
+	dw SilphCo8EndBattleText1 ; 0x65eb TextEndBattle
+
+SilphCo8TrainerHeader1: ; 56591 (15:6591)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d831 ; flag's byte
+	dw SilphCo8BattleText2 ; 0x65f5 TextBeforeBattle
+	dw SilphCo8AfterBattleText2 ; 0x65ff TextAfterBattle
+	dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
+	dw SilphCo8EndBattleText2 ; 0x65fa TextEndBattle
+
+SilphCo8TrainerHeader2: ; 5659d (15:659d)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d831 ; flag's byte
+	dw SilphCo8BattleText3 ; 0x6604 TextBeforeBattle
+	dw SilphCo8AfterBattleText3 ; 0x660e TextAfterBattle
+	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
+	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
+
+	db $ff
+
+SilphCo8Text1: ; 565aa (15:65aa)
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a
+	ld hl, SilphCo8Text_565c3
+	jr nz, asm_a468f ; 0x565b3
+	ld hl, SilphCo8Text_565be
+asm_a468f ; 0x565b8
+	call PrintText
+	jp TextScriptEnd
+
+SilphCo8Text_565be: ; 565be (15:65be)
+	TX_FAR _SilphCo8Text_565be
+	db "@"
+
+SilphCo8Text_565c3: ; 565c3 (15:65c3)
+	TX_FAR _SilphCo8Text_565c3
+	db "@"
+
+SilphCo8Text2: ; 565c8 (15:65c8)
+	db $08 ; asm
+	ld hl, SilphCo8TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo8Text3: ; 565d2 (15:65d2)
+	db $08 ; asm
+	ld hl, SilphCo8TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo8Text4: ; 565dc (15:65dc)
+	db $08 ; asm
+	ld hl, SilphCo8TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo8BattleText1: ; 565e6 (15:65e6)
+	TX_FAR _SilphCo8BattleText1
+	db "@"
+
+SilphCo8EndBattleText1: ; 565eb (15:65eb)
+	TX_FAR _SilphCo8EndBattleText1
+	db "@"
+
+SilphCo8AfterBattleText1: ; 565f0 (15:65f0)
+	TX_FAR _SilphCo8AfterBattleText1
+	db "@"
+
+SilphCo8BattleText2: ; 565f5 (15:65f5)
+	TX_FAR _SilphCo8BattleText2
+	db "@"
+
+SilphCo8EndBattleText2: ; 565fa (15:65fa)
+	TX_FAR _SilphCo8EndBattleText2
+	db "@"
+
+SilphCo8AfterBattleText2: ; 565ff (15:65ff)
+	TX_FAR _SilphCo8AfterBattleText2
+	db "@"
+
+SilphCo8BattleText3: ; 56604 (15:6604)
+	TX_FAR _SilphCo8BattleText3
+	db "@"
+
+SilphCo8EndBattleText3: ; 56609 (15:6609)
+	TX_FAR _SilphCo8EndBattleText3
+	db "@"
+
+SilphCo8AfterBattleText3: ; 5660e (15:660e)
+	TX_FAR _SilphCo8AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/silphco9.asm
@@ -1,0 +1,248 @@
+SilphCo9Script: ; 5d7bb (17:57bb)
+	call SilphCo9Script_5d7d1
+	call EnableAutoTextBoxDrawing
+	ld hl, SilphCo9TrainerHeaders
+	ld de, SilphCo9ScriptPointers
+	ld a, [W_SILPHCO9CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SILPHCO9CURSCRIPT], a
+	ret
+
+SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, DataTable_5d82e ; $582e
+	call SilphCo9Script_5d837
+	call SilphCo9Script_5d863
+	ld a, [$d834]
+	bit 0, a
+	jr nz, .asm_5d7f8
+	push af
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $401
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_5d7f8
+	bit 1, a
+	jr nz, .asm_5d80b
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $209
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_5d80b
+	bit 2, a
+	jr nz, .asm_5d81e
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $509
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	pop af
+.asm_5d81e
+	bit 3, a
+	ret nz
+	ld a, $5f
+	ld [$d09f], a
+	ld bc, $605
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_5d82e: ; 5d82e (17:582e)
+	db $04,$01,$02,$09,$05,$09,$06,$05,$FF
+
+SilphCo9Script_5d837: ; 5d837 (17:5837)
+	push hl
+	ld hl, $d73f
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	xor a
+	ld [$ffe0], a
+	pop hl
+.asm_5d843
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_5d85f
+	push hl
+	ld hl, $ffe0
+	inc [hl]
+	pop hl
+	cp b
+	jr z, .asm_5d854
+	inc hl
+	jr .asm_5d843
+.asm_5d854
+	ld a, [hli]
+	cp c
+	jr nz, .asm_5d843
+	ld hl, $d73f
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ret
+.asm_5d85f
+	xor a
+	ld [$ffe0], a
+	ret
+
+SilphCo9Script_5d863: ; 5d863 (17:5863)
+	ld hl, $d834
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_5d871
+	set 0, [hl]
+	ret
+.asm_5d871
+	cp $2
+	jr nz, .asm_5d878
+	set 1, [hl]
+	ret
+.asm_5d878
+	cp $3
+	jr nz, .asm_5d87f
+	set 2, [hl]
+	ret
+.asm_5d87f
+	cp $4
+	ret nz
+	set 3, [hl]
+	ret
+
+SilphCo9ScriptPointers: ; 5d885 (17:5885)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SilphCo9TextPointers: ; 5d88b (17:588b)
+	dw SilphCo9Text1
+	dw SilphCo9Text2
+	dw SilphCo9Text3
+	dw SilphCo9Text4
+
+SilphCo9TrainerHeaders: ; 5d893 (17:5893)
+SilphCo9TrainerHeader0: ; 5d893 (17:5893)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d833 ; flag's byte
+	dw SilphCo9BattleText1 ; 0x5912 TextBeforeBattle
+	dw SilphCo9AfterBattleText1 ; 0x591c TextAfterBattle
+	dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
+	dw SilphCo9EndBattleText1 ; 0x5917 TextEndBattle
+
+SilphCo9TrainerHeader1: ; 5d89f (17:589f)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d833 ; flag's byte
+	dw SilphCo9BattleText2 ; 0x5921 TextBeforeBattle
+	dw SilphCo9AfterBattleText2 ; 0x592b TextAfterBattle
+	dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
+	dw SilphCo9EndBattleText2 ; 0x5926 TextEndBattle
+
+SilphCo9TrainerHeader2: ; 5d8ab (17:58ab)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d833 ; flag's byte
+	dw SilphCo9BattleText3 ; 0x5930 TextBeforeBattle
+	dw SilphCo9AfterBattleText3 ; 0x593a TextAfterBattle
+	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
+	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
+
+	db $ff
+
+SilphCo9Text1: ; 5d8b8 (17:58b8)
+	db $08 ; asm
+	ld a, [$d838]
+	bit 7, a
+	jr nz, .asm_a14c3 ; 0x5d8be
+	ld hl, SilphCo9Text_5d8e5
+	call PrintText
+	ld a, $7
+	call Predef
+	call GBFadeOut2
+	call Delay3
+	call GBFadeIn2
+	ld hl, SilphCo9Text_5d8ea
+	call PrintText
+	jr .asm_b6e28 ; 0x5d8da
+.asm_a14c3 ; 0x5d8dc
+	ld hl, SilphCo9Text_5d8ef
+	call PrintText
+.asm_b6e28 ; 0x5d8e2
+	jp TextScriptEnd
+
+SilphCo9Text_5d8e5: ; 5d8e5 (17:58e5)
+	TX_FAR _SilphCo9Text_5d8e5
+	db "@"
+
+SilphCo9Text_5d8ea: ; 5d8ea (17:58ea)
+	TX_FAR _SilphCo9Text_5d8ea
+	db "@"
+
+SilphCo9Text_5d8ef: ; 5d8ef (17:58ef)
+	TX_FAR _SilphCo9Text_5d8ef
+	db "@"
+
+SilphCo9Text2: ; 5d8f4 (17:58f4)
+	db $08 ; asm
+	ld hl, SilphCo9TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo9Text3: ; 5d8fe (17:58fe)
+	db $08 ; asm
+	ld hl, SilphCo9TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo9Text4: ; 5d908 (17:5908)
+	db $08 ; asm
+	ld hl, SilphCo9TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SilphCo9BattleText1: ; 5d912 (17:5912)
+	TX_FAR _SilphCo9BattleText1
+	db "@"
+
+SilphCo9EndBattleText1: ; 5d917 (17:5917)
+	TX_FAR _SilphCo9EndBattleText1
+	db "@"
+
+SilphCo9AfterBattleText1: ; 5d91c (17:591c)
+	TX_FAR _SilphCo9AfterBattleText1
+	db "@"
+
+SilphCo9BattleText2: ; 5d921 (17:5921)
+	TX_FAR _SilphCo9BattleText2
+	db "@"
+
+SilphCo9EndBattleText2: ; 5d926 (17:5926)
+	TX_FAR _SilphCo9EndBattleText2
+	db "@"
+
+SilphCo9AfterBattleText2: ; 5d92b (17:592b)
+	TX_FAR _SilphCo9AfterBattleText2
+	db "@"
+
+SilphCo9BattleText3: ; 5d930 (17:5930)
+	TX_FAR _SilphCo9BattleText3
+	db "@"
+
+SilphCo9EndBattleText3: ; 5d935 (17:5935)
+	TX_FAR _SilphCo9EndBattleText3
+	db "@"
+
+SilphCo9AfterBattleText3: ; 5d93a (17:593a)
+	TX_FAR _SilphCo9AfterBattleText3
+	db "@"
--- /dev/null
+++ b/scripts/silphcoelevator.asm
@@ -1,0 +1,80 @@
+SilphCoElevatorScript: ; 457c0 (11:57c0)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	push hl
+	call nz, SilphCoElevatorScript_457dc
+	pop hl
+	bit 7, [hl]
+	res 7, [hl]
+	call nz, SilphCoElevatorScript_45827
+	xor a
+	ld [$cf0c], a
+	inc a
+	ld [$cc3c], a
+	ret
+
+SilphCoElevatorScript_457dc: ; 457dc (11:57dc)
+	ld hl, $d3af
+	ld a, [$d73b]
+	ld b, a
+	ld a, [$d73c]
+	ld c, a
+	call SilphCoElevatorScript_457ea
+
+SilphCoElevatorScript_457ea: ; 457ea (11:57ea)
+	inc hl
+	inc hl
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ret
+
+SilphCoElevatorScript_457f1: ; 457f1 (11:57f1)
+	ld hl, SilphCoElavatorFloors ; $5804
+	call LoadItemList
+	ld hl, SilphCoElevatorWarpMaps ; $5811
+	ld de, $cc5b
+	ld bc, $16
+	call CopyData
+	ret
+
+SilphCoElavatorFloors: ; 45804 (11:45804)
+	db $0B ; num elements in list
+	db $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60 ; "1F", "2F", "3F", "4F", ... , "11F"
+	db $FF ; terminator
+
+SilphCoElevatorWarpMaps: ; 45811 (11:45811)
+; first byte is warp number
+; second byte is map number
+; These specify where the player goes after getting out of the elevator.
+	db $03, SILPH_CO_1F
+	db $02, SILPH_CO_2F
+	db $02, SILPH_CO_3F
+	db $02, SILPH_CO_4F
+	db $02, SILPH_CO_5F
+	db $02, SILPH_CO_6F
+	db $02, SILPH_CO_7F
+	db $02, SILPH_CO_8F
+	db $02, SILPH_CO_9F
+	db $02, SILPH_CO_10F
+	db $01, SILPH_CO_11F
+
+SilphCoElevatorScript_45827: ; 45827 (11:5827)
+	call Delay3
+	ld b, BANK(ShakeElevator)
+	ld hl, ShakeElevator
+	call Bankswitch
+	ret
+
+SilphCoElevatorTextPointers: ; 45833 (11:5833)
+	dw SilphCoElevatorText1
+
+SilphCoElevatorText1: ; 45835 (11:5835)
+	db $08 ; asm
+	call SilphCoElevatorScript_457f1
+	ld hl, SilphCoElevatorWarpMaps ; $5811
+	ld a, $61
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/ssanne1.asm
@@ -1,0 +1,15 @@
+SSAnne1Script: ; 61265 (18:5265)
+	call EnableAutoTextBoxDrawing
+	ret
+
+SSAnne1TextPointers: ; 61269 (18:5269)
+	dw SSAnne1Text1
+	dw SSAnne1Text2
+
+SSAnne1Text1: ; 6126d (18:526d)
+	TX_FAR _SSAnne1Text1
+	db "@"
+
+SSAnne1Text2: ; 61272 (18:5272)
+	TX_FAR _SSAnne1Text2
+	db "@"
--- /dev/null
+++ b/scripts/ssanne10.asm
@@ -1,0 +1,202 @@
+SSAnne10Script: ; 61d55 (18:5d55)
+	call EnableAutoTextBoxDrawing
+	ld hl, SSAnne10TrainerHeaders
+	ld de, SSAnne10ScriptPointers
+	ld a, [W_SSANNE10CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SSANNE10CURSCRIPT], a
+	ret
+
+SSAnne10ScriptPointers: ; 61d68 (18:5d68)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SSAnne10TextPointers: ; 61d6e (18:5d6e)
+	dw SSAnne10Text1
+	dw SSAnne10Text2
+	dw SSAnne10Text3
+	dw SSAnne10Text4
+	dw SSAnne10Text5
+	dw SSAnne10Text6
+	dw SSAnne10Text7
+	dw SSAnne10Text8
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+
+SSAnne10TrainerHeaders: ; 61d84 (18:5d84)
+SSAnne10TrainerHeader0: ; 61d84 (18:5d84)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText1 ; 0x5e16 TextBeforeBattle
+	dw SSAnne10AfterBattleText1 ; 0x5e20 TextAfterBattle
+	dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
+	dw SSAnne10EndBattleText1 ; 0x5e1b TextEndBattle
+
+SSAnne10TrainerHeader1: ; 61d90 (18:5d90)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText2 ; 0x5e25 TextBeforeBattle
+	dw SSAnne10AfterBattleText2 ; 0x5e2f TextAfterBattle
+	dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
+	dw SSAnne10EndBattleText2 ; 0x5e2a TextEndBattle
+
+SSAnne10TrainerHeader2: ; 61d9c (18:5d9c)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText3 ; 0x5e34 TextBeforeBattle
+	dw SSAnne10AfterBattleText3 ; 0x5e3e TextAfterBattle
+	dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
+	dw SSAnne10EndBattleText3 ; 0x5e39 TextEndBattle
+
+SSAnne10TrainerHeader3: ; 61da8 (18:5da8)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText4 ; 0x5e43 TextBeforeBattle
+	dw SSAnne10AfterBattleText4 ; 0x5e4d TextAfterBattle
+	dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
+	dw SSAnne10EndBattleText4 ; 0x5e48 TextEndBattle
+
+SSAnne10TrainerHeader4: ; 61db4 (18:5db4)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText5 ; 0x5e52 TextBeforeBattle
+	dw SSAnne10AfterBattleText5 ; 0x5e5c TextAfterBattle
+	dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
+	dw SSAnne10EndBattleText5 ; 0x5e57 TextEndBattle
+
+SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d809 ; flag's byte
+	dw SSAnne10BattleText6 ; 0x5e61 TextBeforeBattle
+	dw SSAnne10AfterBattleText6 ; 0x5e6b TextAfterBattle
+	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
+	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
+
+	db $ff
+
+SSAnne10Text1: ; 61dcd (18:5dcd)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text2: ; 61dd7 (18:5dd7)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text3: ; 61de1 (18:5de1)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text4: ; 61deb (18:5deb)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text5: ; 61df5 (18:5df5)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text6: ; 61dff (18:5dff)
+	db $08 ; asm
+	ld hl, SSAnne10TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne10Text8: ; 61e09 (18:5e09)
+	TX_FAR _SSAnne10Text8
+	db $8 ; 0x61e0d
+	ld a, MACHOKE
+	call PlayCry
+	jp TextScriptEnd
+
+SSAnne10BattleText1: ; 61e16 (18:5e16)
+	TX_FAR _SSAnne10BattleText1
+	db "@"
+
+SSAnne10EndBattleText1: ; 61e1b (18:5e1b)
+	TX_FAR _SSAnne10EndBattleText1
+	db "@"
+
+SSAnne10AfterBattleText1: ; 61e20 (18:5e20)
+	TX_FAR _SSAnne10AfterBattleText1
+	db "@"
+
+SSAnne10BattleText2: ; 61e25 (18:5e25)
+	TX_FAR _SSAnne10BattleText2
+	db "@"
+
+SSAnne10EndBattleText2: ; 61e2a (18:5e2a)
+	TX_FAR _SSAnne10EndBattleText2
+	db "@"
+
+SSAnne10AfterBattleText2: ; 61e2f (18:5e2f)
+	TX_FAR _SSAnne10AfterBattleText2
+	db "@"
+
+SSAnne10BattleText3: ; 61e34 (18:5e34)
+	TX_FAR _SSAnne10BattleText3
+	db "@"
+
+SSAnne10EndBattleText3: ; 61e39 (18:5e39)
+	TX_FAR _SSAnne10EndBattleText3
+	db "@"
+
+SSAnne10AfterBattleText3: ; 61e3e (18:5e3e)
+	TX_FAR _SSAnne10AfterBattleText3
+	db "@"
+
+SSAnne10BattleText4: ; 61e43 (18:5e43)
+	TX_FAR _SSAnne10BattleText4
+	db "@"
+
+SSAnne10EndBattleText4: ; 61e48 (18:5e48)
+	TX_FAR _SSAnne10EndBattleText4
+	db "@"
+
+SSAnne10AfterBattleText4: ; 61e4d (18:5e4d)
+	TX_FAR _SSAnne10AfterBattleText4
+	db "@"
+
+SSAnne10BattleText5: ; 61e52 (18:5e52)
+	TX_FAR _SSAnne10BattleText5
+	db "@"
+
+SSAnne10EndBattleText5: ; 61e57 (18:5e57)
+	TX_FAR _SSAnne10EndBattleText5
+	db "@"
+
+SSAnne10AfterBattleText5: ; 61e5c (18:5e5c)
+	TX_FAR _SSAnne10AfterBattleText5
+	db "@"
+
+SSAnne10BattleText6: ; 61e61 (18:5e61)
+	TX_FAR _SSAnne10BattleText6
+	db "@"
+
+SSAnne10EndBattleText6: ; 61e66 (18:5e66)
+	TX_FAR _SSAnne10EndBattleText6
+	db "@"
+
+SSAnne10AfterBattleText6: ; 61e6b (18:5e6b)
+	TX_FAR _SSAnne10AfterBattleText6
+	db "@"
+
+SSAnne10Text7: ; 61e70 (18:5e70)
+	TX_FAR _SSAnne10Text7
+	db "@"
--- /dev/null
+++ b/scripts/ssanne2.asm
@@ -1,0 +1,210 @@
+SSAnne2Script: ; 6139f (18:539f)
+	call EnableAutoTextBoxDrawing
+	ld hl, SSAnne2ScriptPointers
+	ld a, [W_SSANNE2CURSCRIPT]
+	jp CallFunctionInTable
+
+SSAnne2Script_613ab: ; 613ab (18:53ab)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_SSANNE2CURSCRIPT], a
+	ret
+
+SSAnne2ScriptPointers: ; 613b3 (18:53b3)
+	dw SSAnne2Script0
+	dw SSAnne2Script1
+	dw SSAnne2Script2
+	dw SSAnne2Script3
+	dw SSAnne2Script4
+
+SSAnne2Script4: ; 613bd (18:53bd)
+	ret
+
+SSAnne2Script0: ; 613be (18:53be)
+	ld hl, CoordsData_61411 ; $5411
+	call ArePlayerCoordsInArray
+	ret nc
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld c, BANK(Music_MeetRival)
+	ld a, MUSIC_MEET_RIVAL
+	call PlayMusic
+	ld a, [$cd3d]
+	ld [$ffdb], a
+	ld a, $71
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	call Delay3
+	ld a, $2
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, [$ffdb]
+	cp $2
+	jr nz, .asm_61400 ; 0x613f9 $5
+	ld de, MovementData_6140c
+	jr .asm_61403 ; 0x613fe $3
+.asm_61400
+	ld de, MovementData_6140d
+.asm_61403
+	call MoveSprite
+	ld a, $1
+	ld [W_SSANNE2CURSCRIPT], a
+	ret
+
+MovementData_6140c: ; 6140c (18:540c)
+	db $00
+
+MovementData_6140d: ; 6140d (18:540d)
+	db $00,$00,$00,$FF
+
+CoordsData_61411: ; 61411 (18:5411)
+	db $08,$24,$08,$25,$FF
+
+SSAnne2Script_61416: ; 61416 (18:5416)
+	ld a, [W_XCOORD] ; $d362
+	cp $25
+	jr nz, .asm_61426
+	ld a, $2
+	ld [$d528], a
+	ld a, $c
+	jr .asm_61427
+.asm_61426
+	xor a
+.asm_61427
+	ld [$ff8d], a
+	ld a, $2
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	jp Func_34a6
+
+SSAnne2Script1: ; 61430 (18:5430)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	call SSAnne2Script_61416
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $2
+	ld [$ff8c], a
+	call DisplayTextID
+	call Delay3
+	ld a, SONY2 + $c8
+	ld [W_CUROPPONENT], a
+
+	; select which team to use during the encounter
+	ld a, [W_RIVALSTARTER]
+	cp SQUIRTLE
+	jr nz, .NotSquirtle ; 0x61451 $4
+	ld a, $1
+	jr .done
+.NotSquirtle
+	cp BULBASAUR
+	jr nz, .Charmander ; 0x61459 $4
+	ld a, $2
+	jr .done
+.Charmander
+	ld a, $3
+.done
+	ld [W_TRAINERNO], a
+
+	call SSAnne2Script_61416
+	ld a, $2
+	ld [W_SSANNE2CURSCRIPT], a
+	ret
+
+SSAnne2Script2: ; 6146d (18:546d)
+	ld a, [$d057]
+	cp $ff
+	jp z, SSAnne2Script_613ab
+	call SSAnne2Script_61416
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, $2
+	ld [$ff8c], a
+	call SetSpriteMovementBytesToFF
+	ld a, [W_XCOORD]
+	cp $25
+	jr nz, .asm_61497 ; 0x61490 $5
+	ld de, MovementData_614b9
+	jr .asm_6149a ; 0x61495 $3
+.asm_61497
+	ld de, MovementData_614b7
+.asm_6149a
+	ld a, $2
+	ld [$ff8c], a
+	call MoveSprite
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld b, BANK(Music_RivalAlternateStart)
+	ld hl, Music_RivalAlternateStart
+	call Bankswitch
+	ld a, $3
+	ld [W_SSANNE2CURSCRIPT], a
+	ret
+
+MovementData_614b7: ; 614b7 (18:54b7)
+	db $C0,$00
+
+MovementData_614b9: ; 614b9 (18:54b9)
+	db $00,$00,$00,$00,$FF
+
+SSAnne2Script3: ; 614be (18:54be)
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $71
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	call Func_2307
+	ld a, $4
+	ld [W_SSANNE2CURSCRIPT], a
+	ret
+
+SSAnne2TextPointers: ; 614db (18:54db)
+	dw SSAnne2Text1
+	dw SSAnne2Text2
+	dw SSAnne2Text3
+
+SSAnne2Text1: ; 614e1 (18:54e1)
+	TX_FAR _SSAnne2Text1
+	db "@"
+
+SSAnne2Text2: ; 614e6 (18:54e6)
+	db $8
+	ld hl, SSAnneRivalBeforeBattleText
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, SSAnneRivalDefeatedText
+	ld de, SSAnneRivalWonText
+	call PreBattleSaveRegisters
+	jp TextScriptEnd
+
+SSAnneRivalBeforeBattleText: ; 61500 (18:5500)
+	TX_FAR _SSAnneRivalBeforeBattleText
+	db "@"
+
+SSAnneRivalDefeatedText: ; 61505 (18:5505)
+	TX_FAR _SSAnneRivalDefeatedText
+	db "@"
+
+SSAnneRivalWonText: ; 6150a (18:550a)
+	TX_FAR _SSAnneRivalWonText
+	db "@"
+
+SSAnne2Text3: ; 6150f (18:550f)
+	TX_FAR _SSAnneRivalCaptainText
+	db "@"
--- /dev/null
+++ b/scripts/ssanne3.asm
@@ -1,0 +1,9 @@
+SSAnne3Script: ; 44932 (11:4932)
+	jp EnableAutoTextBoxDrawing
+
+SSAnne3TextPointers: ; 44935 (11:4935)
+	dw SSAnne3Text1
+
+SSAnne3Text1: ; 44937 (11:4937)
+	TX_FAR _SSAnne3Text1
+	db "@"
--- /dev/null
+++ b/scripts/ssanne4.asm
@@ -1,0 +1,5 @@
+SSAnne4Script: ; 6162e (18:562e)
+	jp EnableAutoTextBoxDrawing
+
+SSAnne4TextPointers: ; 61631 (18:5631)
+	db "@"
--- /dev/null
+++ b/scripts/ssanne5.asm
@@ -1,0 +1,89 @@
+SSAnne5Script: ; 616ae (18:56ae)
+	call EnableAutoTextBoxDrawing
+	ld hl, SSAnne5TrainerHeader0 ; $56d1
+	ld de, SSAnne5ScriptPointers
+	ld a, [W_SSANNE5CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SSANNE5CURSCRIPT], a
+	ret
+
+SSAnne5ScriptPointers: ; 616c1 (18:56c1)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SSAnne5TextPointers: ; 616c7 (18:56c7)
+	dw SSAnne5Text1
+	dw SSAnne5Text2
+	dw SSAnne5Text3
+	dw SSAnne5Text4
+	dw SSAnne5Text5
+
+SSAnne5TrainerHeaders: ; 616d1 (18:56d1)
+SSAnne5TrainerHeader0: ; 616d1 (18:56d1)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7ff ; flag's byte
+	dw SSAnne5BattleText1 ; 0x5703 TextBeforeBattle
+	dw SSAnne5AfterBattleText1 ; 0x570d TextAfterBattle
+	dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle
+	dw SSAnne5EndBattleText1 ; 0x5708 TextEndBattle
+
+SSAnne5TrainerHeader1: ; 616dd (18:56dd)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7ff ; flag's byte
+	dw SSAnne5BattleText2 ; 0x571c TextBeforeBattle
+	dw SSAnne5AfterBattleText2 ; 0x5726 TextAfterBattle
+	dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle
+	dw SSAnne5EndBattleText2 ; 0x5721 TextEndBattle
+
+	db $ff
+
+SSAnne5Text1: ; 616ea (18:56ea)
+	TX_FAR _SSAnne5Text1
+	db "@"
+
+SSAnne5Text2: ; 616ef (18:56ef)
+	TX_FAR _SSAnne5Text2
+	db "@"
+
+SSAnne5Text3: ; 616f4 (18:56f4)
+	TX_FAR _SSAnne5Text3
+	db "@"
+
+SSAnne5Text4: ; 616f9 (18:56f9)
+	db $08 ; asm
+	ld hl, SSAnne5TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne5BattleText1: ; 61703 (18:5703)
+	TX_FAR _SSAnne5BattleText1
+	db "@"
+
+SSAnne5EndBattleText1: ; 61708 (18:5708)
+	TX_FAR _SSAnne5EndBattleText1
+	db "@"
+
+SSAnne5AfterBattleText1: ; 6170d (18:570d)
+	TX_FAR _SSAnne5AfterBattleText1
+	db "@"
+
+SSAnne5Text5: ; 61712 (18:5712)
+	db $08 ; asm
+	ld hl, SSAnne5TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne5BattleText2: ; 6171c (18:571c)
+	TX_FAR _SSAnne5BattleText2
+	db "@"
+
+SSAnne5EndBattleText2: ; 61721 (18:5721)
+	TX_FAR _SSAnne5EndBattleText2
+	db "@"
+
+SSAnne5AfterBattleText2: ; 61726 (18:5726)
+	TX_FAR _SSAnne5AfterBattleText2
+	db "@"
--- /dev/null
+++ b/scripts/ssanne6.asm
@@ -1,0 +1,72 @@
+SSAnne6Script: ; 617b3 (18:57b3)
+	call EnableAutoTextBoxDrawing
+	ret
+
+SSAnne6TextPointers: ; 617b7 (18:57b7)
+	dw SSAnne6Text1
+	dw SSAnne6Text2
+	dw SSAnne6Text3
+	dw SSAnne6Text4
+	dw SSAnne6Text5
+	dw SSAnne6Text6
+	dw SSAnne6Text7
+
+SSAnne6Text1: ; 617c5 (18:57c5)
+	TX_FAR _SSAnne6Text1
+	db "@"
+
+SSAnne6Text2: ; 617ca (18:57ca)
+	TX_FAR _SSAnne6Text2
+	db "@"
+
+SSAnne6Text3: ; 617cf (18:57cf)
+	TX_FAR _SSAnne6Text3
+	db "@"
+
+SSAnne6Text4: ; 617d4 (18:57d4)
+	TX_FAR _SSAnne6Text4
+	db "@"
+
+SSAnne6Text5: ; 617d9 (18:57d9)
+	TX_FAR _SSAnne6Text5
+	db "@"
+
+SSAnne6Text6: ; 617de (18:57de)
+	TX_FAR _SSAnne6Text6
+	db "@"
+
+SSAnne6Text7: ; 617e3 (18:57e3)
+	db $08 ; asm
+	ld hl, SSAnne6Text_61807
+	call PrintText
+	ldh a, [$d3]
+	bit 7, a
+	jr z, .asm_93eb1 ; 0x617ee
+	ld hl, SSAnne6Text_6180c
+	jr .asm_63292 ; 0x617f3
+.asm_93eb1 ; 0x617f5
+	bit 4, a
+	jr z, .asm_7436c ; 0x617f7
+	ld hl, SSAnne6Text_61811
+	jr .asm_63292 ; 0x617fc
+.asm_7436c ; 0x617fe
+	ld hl, SSAnne6Text_61816
+.asm_63292 ; 0x61801
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne6Text_61807: ; 61807 (18:5807)
+	TX_FAR _SSAnne6Text_61807
+	db "@"
+
+SSAnne6Text_6180c: ; 6180c (18:580c)
+	TX_FAR _SSAnne6Text_6180c
+	db "@"
+
+SSAnne6Text_61811: ; 61811 (18:5811)
+	TX_FAR _SSAnne6Text_61811
+	db "@"
+
+SSAnne6Text_61816: ; 61816 (18:5816)
+	TX_FAR _SSAnne6Text_61816
+	db "@"
--- /dev/null
+++ b/scripts/ssanne7.asm
@@ -1,0 +1,96 @@
+SSAnne7Script: ; 61895 (18:5895)
+	call SSAnne7Script_6189b
+	jp EnableAutoTextBoxDrawing
+
+SSAnne7Script_6189b: ; 6189b (18:589b)
+	ld a, [$d803]
+	bit 1, a
+	ret nz
+	ld hl, $d72d
+	set 5, [hl]
+	ret
+
+SSAnne7TextPointers: ; 618a7 (18:58a7)
+	dw SSAnne7Text1
+	dw SSAnne7Text2
+	dw SSAnne7Text3
+
+SSAnne7Text1: ; 618ad (18:58ad)
+	db $08 ; asm
+	ld a, [$d803]
+	bit 0, a
+	jr nz, .asm_797c4 ; 0x618b3
+	ld hl, SSAnne7RubText
+	call PrintText
+	ld hl, ReceivingHM01Text
+	call PrintText
+	ld bc, (HM_01 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedHM01Text
+	call PrintText
+	ld hl, $d803
+	set 0, [hl]
+	jr .asm_0faf5 ; 0x618d4
+.BagFull
+	ld hl, HM01NoRoomText
+	call PrintText
+	ld hl, $d72d
+	set 5, [hl]
+	jr .asm_0faf5 ; 0x618e1
+.asm_797c4 ; 0x618e3
+	ld hl, SSAnne7Text_61932
+	call PrintText
+.asm_0faf5 ; 0x618e9
+	jp TextScriptEnd
+
+SSAnne7RubText: ; 618ec (18:58ec)
+	TX_FAR _SSAnne7RubText
+	db $8
+	ld a, [$c0ef]
+	cp $1f
+	ld [$c0f0], a
+	jr nz, .asm_61908 ; 0x618f9 $d
+	ld a, $ff
+	ld [$c0ee], a
+	call PlaySound
+	ld a, Bank(Func_9876)
+	ld [$c0ef], a
+.asm_61908
+	ld a, MUSIC_PKMN_HEALED
+	ld [$c0ee], a
+	call PlaySound
+.asm_61910
+	ld a, [$c026]
+	cp MUSIC_PKMN_HEALED
+	jr z, .asm_61910 ; 0x61915 $f9
+	call Func_2307
+	ld hl, $d803
+	set 1, [hl]
+	ld hl, $d72d
+	res 5, [hl]
+	jp TextScriptEnd
+
+ReceivingHM01Text: ; 61927 (18:5927)
+	TX_FAR _ReceivingHM01Text
+	db "@"
+
+ReceivedHM01Text: ; 6192c (18:592c)
+	TX_FAR _ReceivedHM01Text
+	db $11, "@"
+
+SSAnne7Text_61932: ; 61932 (18:5932)
+	TX_FAR _SSAnne7Text_61932
+	db "@"
+
+HM01NoRoomText: ; 61937 (18:5937)
+	TX_FAR _HM01NoRoomText
+	db "@"
+
+SSAnne7Text2: ; 6193c (18:593c)
+	TX_FAR _SSAnne7Text2
+	db "@"
+
+SSAnne7Text3: ; 61941 (18:5941)
+	TX_FAR _SSAnne7Text3
+	db "@"
--- /dev/null
+++ b/scripts/ssanne8.asm
@@ -1,0 +1,164 @@
+SSAnne8Script: ; 61976 (18:5976)
+	call EnableAutoTextBoxDrawing
+	ld hl, SSAnne8TrainerHeaders
+	ld de, SSAnne8ScriptPointers
+	ld a, [W_SSANNE8CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SSANNE8CURSCRIPT], a
+	ret
+
+SSAnne8ScriptPointers: ; 61989 (18:5989)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SSAnne8TextPointers: ; 6198f (18:598f)
+	dw SSAnne8Text1
+	dw SSAnne8Text2
+	dw SSAnne8Text3
+	dw SSAnne8Text4
+	dw SSAnne8Text5
+	dw SSAnne8Text6
+	dw SSAnne8Text7
+	dw SSAnne8Text8
+	dw SSAnne8Text9
+	dw Predef5CText
+	dw SSAnne8Text11
+
+SSAnne8TrainerHeaders: ; 619a5 (18:59a5)
+SSAnne8TrainerHeader0: ; 619a5 (18:59a5)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d805 ; flag's byte
+	dw SSAnne8BattleText1 ; 0x5a0b TextBeforeBattle
+	dw SSAnne8AfterBattleText1 ; 0x5a15 TextAfterBattle
+	dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
+	dw SSAnne8EndBattleText1 ; 0x5a10 TextEndBattle
+
+SSAnne8TrainerHeader1: ; 619b1 (18:59b1)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d805 ; flag's byte
+	dw SSAnne8BattleText2 ; 0x5a1a TextBeforeBattle
+	dw SSAnne8AfterBattleText2 ; 0x5a24 TextAfterBattle
+	dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
+	dw SSAnne8EndBattleText2 ; 0x5a1f TextEndBattle
+
+SSAnne8TrainerHeader2: ; 619bd (18:59bd)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d805 ; flag's byte
+	dw SSAnne8BattleText3 ; 0x5a29 TextBeforeBattle
+	dw SSAnne8AfterBattleText3 ; 0x5a33 TextAfterBattle
+	dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
+	dw SSAnne8EndBattleText3 ; 0x5a2e TextEndBattle
+
+SSAnne8TrainerHeader3: ; 619c9 (18:59c9)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d805 ; flag's byte
+	dw SSAnne8BattleText4 ; 0x5a38 TextBeforeBattle
+	dw SSAnne8AfterBattleText4 ; 0x5a42 TextAfterBattle
+	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
+	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
+
+	db $ff
+
+SSAnne8Text1: ; 619d6 (18:59d6)
+	db $08 ; asm
+	ld hl, SSAnne8TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne8Text2: ; 619e0 (18:59e0)
+	db $08 ; asm
+	ld hl, SSAnne8TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne8Text3: ; 619ea (18:59ea)
+	db $08 ; asm
+	ld hl, SSAnne8TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne8Text4: ; 619f4 (18:59f4)
+	db $08 ; asm
+	ld hl, SSAnne8TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne8Text8: ; 619fe (18:59fe)
+	TX_FAR _SSAnne8Text8
+	db $08 ; asm
+	ld a, WIGGLYTUFF
+	call PlayCry
+	jp TextScriptEnd
+
+SSAnne8BattleText1: ; 61a0b (18:5a0b)
+	TX_FAR _SSAnne8BattleText1
+	db "@"
+
+SSAnne8EndBattleText1: ; 61a10 (18:5a10)
+	TX_FAR _SSAnne8EndBattleText1
+	db "@"
+
+SSAnne8AfterBattleText1: ; 61a15 (18:5a15)
+	TX_FAR _SSAnne8AfterBattleText1
+	db "@"
+
+SSAnne8BattleText2: ; 61a1a (18:5a1a)
+	TX_FAR _SSAnne8BattleText2
+	db "@"
+
+SSAnne8EndBattleText2: ; 61a1f (18:5a1f)
+	TX_FAR _SSAnne8EndBattleText2
+	db "@"
+
+SSAnne8Text_61a24: ; 61a24 (18:5a24)
+	TX_FAR _SSAnne8Text_61a24
+	db "@"
+
+SSAnne8BattleText3: ; 61a29 (18:5a29)
+	TX_FAR _SSAnne8BattleText3
+	db "@"
+
+SSAnne8EndBattleText3: ; 61a2e (18:5a2e)
+	TX_FAR _SSAnne8EndBattleText3
+	db "@"
+
+SSAnne8AfterBattleText3: ; 61a33 (18:5a33)
+	TX_FAR _SSAnne8AfterBattleText3
+	db "@"
+
+SSAnne8BattleText4: ; 61a38 (18:5a38)
+	TX_FAR _SSAnne8BattleText4
+	db "@"
+
+SSAnne8EndBattleText4: ; 61a3d (18:5a3d)
+	TX_FAR _SSAnne8EndBattleText4
+	db "@"
+
+SSAnne8AfterBattleText4: ; 61a42 (18:5a42)
+	TX_FAR _SSAnne8AfterBattleText4
+	db "@"
+
+SSAnne8Text5: ; 61a47 (18:5a47)
+	TX_FAR _SSAnne8Text5
+	db "@"
+
+SSAnne8Text6: ; 61a4c (18:5a4c)
+	TX_FAR _SSAnne8Text6
+	db "@"
+
+SSAnne8Text7: ; 61a51 (18:5a51)
+	TX_FAR _SSAnne8Text7
+	db "@"
+
+SSAnne8Text9: ; 61a56 (18:5a56)
+	TX_FAR _SSAnne8Text9
+	db "@"
+
+SSAnne8Text11: ; 61a5b (18:5a5b)
+	TX_FAR _SSAnne8Text11
+	db "@"
--- /dev/null
+++ b/scripts/ssanne9.asm
@@ -1,0 +1,216 @@
+SSAnne9Script: ; 61b4b (18:5b4b)
+	ld a, $1
+	ld [$cf0c], a
+	xor a
+	ld [$cc3c], a
+	ld hl, SSAnne9TrainerHeaders
+	ld de, SSAnne9ScriptPointers
+	ld a, [W_SSANNE9CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_SSANNE9CURSCRIPT], a
+	ret
+
+SSAnne9ScriptPointers: ; 61b64 (18:5b64)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+SSAnne9TextPointers: ; 61b6a (18:5b6a)
+	dw SSAnne9Text1
+	dw SSAnne9Text2
+	dw SSAnne9Text3
+	dw SSAnne9Text4
+	dw SSAnne9Text5
+	dw Predef5CText
+	dw SSAnne9Text7
+	dw SSAnne9Text8
+	dw Predef5CText
+	dw SSAnne9Text10
+	dw SSAnne9Text11
+	dw SSAnne9Text12
+	dw SSAnne9Text13
+
+SSAnne9TrainerHeaders: ; 61b84 (18:5b84)
+SSAnne9TrainerHeader0: ; 61b84 (18:5b84)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d807 ; flag's byte
+	dw SSAnne9BattleText1 ; 0x5c51 TextBeforeBattle
+	dw SSAnne9AfterBattleText1 ; 0x5c5b TextAfterBattle
+	dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
+	dw SSAnne9EndBattleText1 ; 0x5c56 TextEndBattle
+
+SSAnne9TrainerHeader1: ; 61b90 (18:5b90)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d807 ; flag's byte
+	dw SSAnne9BattleText2 ; 0x5c60 TextBeforeBattle
+	dw SSAnne9AfterBattleText2 ; 0x5c6a TextAfterBattle
+	dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
+	dw SSAnne9EndBattleText2 ; 0x5c65 TextEndBattle
+
+SSAnne9TrainerHeader2: ; 61b9c (18:5b9c)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d807 ; flag's byte
+	dw SSAnne9BattleText3 ; 0x5c6f TextBeforeBattle
+	dw SSAnne9AfterBattleText3 ; 0x5c79 TextAfterBattle
+	dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
+	dw SSAnne9EndBattleText3 ; 0x5c74 TextEndBattle
+
+SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8)
+	db $4 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d807 ; flag's byte
+	dw SSAnne9BattleText4 ; 0x5c7e TextBeforeBattle
+	dw SSAnne9AfterBattleText4 ; 0x5c88 TextAfterBattle
+	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
+	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
+
+	db $ff
+
+SSAnne9Text1: ; 61bb5 (18:5bb5)
+	db $08 ; asm
+	ld hl, SSAnne9TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne9Text2: ; 61bbf (18:5bbf)
+	db $08 ; asm
+	ld hl, SSAnne9TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne9Text3: ; 61bc9 (18:5bc9)
+	db $08 ; asm
+	ld hl, SSAnne9TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne9Text4: ; 61bd3 (18:5bd3)
+	db $08 ; asm
+	ld hl, SSAnne9TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+SSAnne9Text5: ; 61bdd (18:5bdd)
+	db $08 ; asm
+	call SaveScreenTilesToBuffer1
+	ld hl, SSAnne9Text_61bf2
+	call PrintText
+	call LoadScreenTilesFromBuffer1
+	ld a, SNORLAX
+	call DisplayPokedex
+	jp TextScriptEnd
+
+SSAnne9Text_61bf2: ; 61bf2 (18:5bf2)
+	TX_FAR _SSAnne9Text_61bf2
+	db "@"
+
+SSAnne9Text7: ; 61bf7 (18:5bf7)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c01
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c01: ; 61c01 (18:5c01)
+	TX_FAR _SSAnne9Text_61c01
+	db "@"
+
+SSAnne9Text8: ; 61c06 (18:5c06)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c10
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c10: ; 61c10 (18:5c10)
+	TX_FAR _SSAnne9Text_61c10
+	db "@"
+
+SSAnne9Text10: ; 61c15 (18:5c15)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c1f
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c1f: ; 61c1f (18:5c1f)
+	TX_FAR _SSAnne9Text_61c1f
+	db "@"
+
+SSAnne9Text11: ; 61c24 (18:5c24)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c2e
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c2e: ; 61c2e (18:5c2e)
+	TX_FAR _SSAnne9Text_61c2e
+	db "@"
+
+SSAnne9Text12: ; 61c33 (18:5c33)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c3d
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c3d: ; 61c3d (18:5c3d)
+	TX_FAR _SSAnne9Text_61c3d
+	db "@"
+
+SSAnne9Text13: ; 61c42 (18:5c42)
+	db $08 ; asm
+	ld hl, SSAnne9Text_61c4c
+	call PrintText
+	jp TextScriptEnd
+
+SSAnne9Text_61c4c: ; 61c4c (18:5c4c)
+	TX_FAR _SSAnne9Text_61c4c
+	db "@"
+
+SSAnne9BattleText1: ; 61c51 (18:5c51)
+	TX_FAR _SSAnne9BattleText1
+	db "@"
+
+SSAnne9EndBattleText1: ; 61c56 (18:5c56)
+	TX_FAR _SSAnne9EndBattleText1
+	db "@"
+
+SSAnne9AfterBattleText1: ; 61c5b (18:5c5b)
+	TX_FAR _SSAnne9AfterBattleText1
+	db "@"
+
+SSAnne9BattleText2: ; 61c60 (18:5c60)
+	TX_FAR _SSAnne9BattleText2
+	db "@"
+
+SSAnne9EndBattleText2: ; 61c65 (18:5c65)
+	TX_FAR _SSAnne9EndBattleText2
+	db "@"
+
+SSAnne9AfterBattleText2: ; 61c6a (18:5c6a)
+	TX_FAR _SSAnne9AfterBattleText2
+	db "@"
+
+SSAnne9BattleText3: ; 61c6f (18:5c6f)
+	TX_FAR _SSAnne9BattleText3
+	db "@"
+
+SSAnne9EndBattleText3: ; 61c74 (18:5c74)
+	TX_FAR _SSAnne9EndBattleText3
+	db "@"
+
+SSAnne9AfterBattleText3: ; 61c79 (18:5c79)
+	TX_FAR _SSAnne9AfterBattleText3
+	db "@"
+
+SSAnne9BattleText4: ; 61c7e (18:5c7e)
+	TX_FAR _SSAnne9BattleText4
+	db "@"
+
+SSAnne9EndBattleText4: ; 61c83 (18:5c83)
+	TX_FAR _SSAnne9EndBattleText4
+	db "@"
+
+SSAnne9AfterBattleText4: ; 61c88 (18:5c88)
+	TX_FAR _SSAnne9AfterBattleText4
+	db "@"
--- /dev/null
+++ b/scripts/tradecenterm.asm
@@ -1,0 +1,9 @@
+TradeCenterMScript: ; 4fd7d (13:7d7d)
+	jp BattleCenterMScript
+
+TradeCenterMTextPointers: ; 4fd80 (13:7d80)
+	dw TradeCenterMText1
+
+TradeCenterMText1: ; 4fd82 (13:7d82)
+	TX_FAR _TradeCenterMText1
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathentranceroute5.asm
@@ -1,0 +1,19 @@
+UndergroundPathEntranceRoute5Script: ; 5d6a9 (17:56a9)
+	ld a, $10
+	ld [$d365], a
+	ret
+
+UndergroundPathEntranceRoute5_5d6af: ; 5d6af (17:56af)
+	db "@"
+
+UndergroundPathEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
+	dw UndergroundPathEntranceRoute5Text1
+
+UndergroundPathEntranceRoute5Text1: ; 5d6b2 (17:56b2)
+	db $08 ; asm
+	ld a, $9
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	ld hl, UndergroundPathEntranceRoute5_5d6af
+	ret
--- /dev/null
+++ b/scripts/undergroundpathentranceroute6.asm
@@ -1,0 +1,11 @@
+UndergroundPathEntranceRoute6Script: ; 5d6ef (17:56ef)
+	ld a, $11
+	ld [$d365], a
+	jp EnableAutoTextBoxDrawing
+
+UndergroundPathEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
+	dw UndergroundPathEntranceRoute6Text1
+
+UndergroundPathEntranceRoute6Text1: ; 5d6f9 (17:56f9)
+	TX_FAR _UndergrdTunnelEntRoute6Text1
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathentranceroute7.asm
@@ -1,0 +1,11 @@
+UndergroundPathEntranceRoute7Script: ; 5d72c (17:572c)
+	ld a, $12
+	ld [$d365], a
+	jp EnableAutoTextBoxDrawing
+
+UndergroundPathEntranceRoute7TextPointers: ; 5d734 (17:5734)
+	dw UndergroundPathEntranceRoute7Text1
+
+UndergroundPathEntranceRoute7Text1: ; 5d736 (17:5736)
+	TX_FAR _UndergroundPathEntRoute7Text1
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathentranceroute7copy.asm
@@ -1,0 +1,24 @@
+UndergroundPathEntranceRoute7CopyScript: ; 5d769 (17:5769)
+	ld a, $12
+	ld [$d365], a
+	ret
+
+UndergroundPathEntranceRoute7CopyTextPointers: ; 5d76f (17:576f)
+	dw UnnamedText_5d773
+	dw UnnamedText_5d77d
+
+UnnamedText_5d773: ; 5d773 (17:5773)
+	TX_FAR _UnnamedText_5d773
+	db "@"
+
+UnnamedText_5d778: ; 5d778 (17:5778)
+	TX_FAR _UnnamedText_5d778
+	db "@"
+
+UnnamedText_5d77d: ; 5d77d (17:577d)
+	TX_FAR _UnnamedText_5d77d
+	db "@"
+
+UnnamedText_5d782: ; 5d782 (17:5782)
+	TX_FAR _UnnamedText_5d782
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathentranceroute8.asm
@@ -1,0 +1,11 @@
+UndergroundPathEntranceRoute8Script: ; 1e289 (7:6289)
+	ld a, $13
+	ld [$d365], a
+	jp EnableAutoTextBoxDrawing
+
+UndergroundPathEntranceRoute8TextPointers: ; 1e291 (7:6291)
+	dw UndergroundPathEntranceRoute8Text1
+
+UndergroundPathEntranceRoute8Text1: ; 1e293 (7:6293)
+	TX_FAR _UndergroundPathEntRoute8Text1
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathns.asm
@@ -1,0 +1,5 @@
+UndergroundPathNSScript: ; 61f26 (18:5f26)
+	jp EnableAutoTextBoxDrawing
+
+UndergroundPathNSTextPointers: ; 61f29 (18:5f29)
+	db "@"
--- /dev/null
+++ b/scripts/undergroundpathwe.asm
@@ -1,0 +1,5 @@
+UndergroundPathWEScript: ; 61f4a (18:5f4a)
+	jp EnableAutoTextBoxDrawing
+
+UndergroundPathWETextPointers: ; 61f4d (18:5f4d)
+	db "@"
--- /dev/null
+++ b/scripts/unknowndungeon1.asm
@@ -1,0 +1,7 @@
+UnknownDungeon1Script: ; 74d0c (1d:4d0c)
+	jp EnableAutoTextBoxDrawing
+
+UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
--- /dev/null
+++ b/scripts/unknowndungeon2.asm
@@ -1,0 +1,7 @@
+UnknownDungeon2Script: ; 45e0b (11:5e0b)
+	jp EnableAutoTextBoxDrawing
+
+UnknownDungeon2TextPointers: ; 45e0e (11:5e0e)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
--- /dev/null
+++ b/scripts/unknowndungeon3.asm
@@ -1,0 +1,44 @@
+UnknownDungeon3Script: ; 45ef0 (11:5ef0)
+	call EnableAutoTextBoxDrawing
+	ld hl, UnknownDungeon3TrainerHeaders
+	ld de, UnknownDungeon3ScriptPointers
+	ld a, [W_UNKNOWNDUNGEON3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_UNKNOWNDUNGEON3CURSCRIPT], a
+	ret
+
+UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+UnknownDungeon3TextPointers: ; 45f09 (11:5f09)
+	dw UnknownDungeon3Text1
+	dw Predef5CText
+	dw Predef5CText
+
+UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f)
+UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
+	db $1 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d85f ; flag's byte
+	dw UnknownDungeon3MewtwoText ; 0x5f26 TextBeforeBattle
+	dw UnknownDungeon3MewtwoText ; 0x5f26 TextAfterBattle
+	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
+	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
+
+	db $ff
+
+UnknownDungeon3Text1: ; 45f1c (11:5f1c)
+	db $08 ; asm
+	ld hl, UnknownDungeon3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+UnknownDungeon3MewtwoText: ; 45f26 (11:5f26)
+	TX_FAR _UnknownDungeon3MewtwoText
+	db $8
+	ld a, MEWTWO
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/vermilioncity.asm
@@ -1,0 +1,263 @@
+VermilionCityScript: ; 197a1 (6:57a1)
+	call EnableAutoTextBoxDrawing
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	push hl
+	call nz, VermilionCityScript_197cb
+	pop hl
+	bit 5, [hl]
+	res 5, [hl]
+	call nz, VermilionCityScript_197c0
+	ld hl, VermilionCityScriptPointers
+	ld a, [W_VERMILIONCITYCURSCRIPT]
+	jp CallFunctionInTable
+
+VermilionCityScript_197c0: ; 197c0 (6:57c0)
+	call GenRandom
+	ld a, [$ffd4]
+	and $e
+	ld [$d743], a
+	ret
+
+VermilionCityScript_197cb: ; 197cb (6:57cb)
+	ld hl, $d803
+	bit 2, [hl]
+	ret z
+	bit 3, [hl]
+	set 3, [hl]
+	ret nz
+	ld a, $2
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+VermilionCityScriptPointers: ; 197dc (6:57dc)
+	dw VermilionCityScript0
+	dw VermilionCityScript1
+	dw VermilionCityScript2
+	dw VermilionCityScript3
+	dw VermilionCityScript4
+
+VermilionCityScript0: ; 197e6 (6:57e6)
+	ld a, [$c109]
+	and a
+	ret nz
+	ld hl, CoordsData_19823
+	call ArePlayerCoordsInArray
+	ret nc
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$cf0d], a
+	ld a, $3
+	ld [$ff8c], a
+	call DisplayTextID
+	ld a, [$d803]
+	bit 2, a
+	jr nz, .asm_19810 ; 0x19804 $a
+	ld b, $3f
+	ld a, $1c
+	call Predef
+	ld a, b
+	and a
+	ret nz
+.asm_19810
+	ld a, $40
+	ld [$ccd3], a
+	ld a, $1
+	ld [$cd38], a
+	call Func_3486
+	ld a, $1
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+CoordsData_19823: ; 19823 (6:5823)
+	db $1e,$12
+	db $ff
+
+VermilionCityScript4: ; 19826 (6:5826)
+	ld hl, CoordsData_19823
+	call ArePlayerCoordsInArray
+	ret c
+	ld a, $0
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+VermilionCityScript2: ; 19833 (6:5833)
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $40
+	ld [$ccd3], a
+	ld [$ccd4], a
+	ld a, $2
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+VermilionCityScript3: ; 1984e (6:584e)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $0
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+VermilionCityScript1: ; 1985f (6:585f)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld c, $a
+	call DelayFrames
+	ld a, $0
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	ret
+
+VermilionCityTextPointers: ; 1986f (6:586f)
+	dw VermilionCityText1
+	dw VermilionCityText2
+	dw VermilionCityText3
+	dw VermilionCityText4
+	dw VermilionCityText5
+	dw VermilionCityText6
+	dw VermilionCityText7
+	dw VermilionCityText8
+	dw MartSignText
+	dw PokeCenterSignText
+	dw VermilionCityText11
+	dw VermilionCityText12
+	dw VermilionCityText13
+
+VermilionCityText1: ; 19889 (6:5889)
+	TX_FAR _VermilionCityText1
+	db "@"
+
+VermilionCityText2: ; 1988e (6:588e)
+	db $08 ; asm
+	ld a, [$d803]
+	bit 2, a
+	jr nz, .asm_359bd ; 0x19894
+	ld hl, VermilionCityText_198a7
+	call PrintText
+	jr .asm_735d9 ; 0x1989c
+.asm_359bd ; 0x1989e
+	ld hl, VermilionCityText_198ac
+	call PrintText
+.asm_735d9 ; 0x198a4
+	jp TextScriptEnd
+
+VermilionCityText_198a7: ; 198a7 (6:58a7)
+	TX_FAR _VermilionCityText_198a7
+	db "@"
+
+VermilionCityText_198ac: ; 198ac (6:58ac)
+	TX_FAR _VermilionCityText_198ac
+	db "@"
+
+VermilionCityText3: ; 198b1 (6:58b1)
+	db $08 ; asm
+	ld a, [$d803]
+	bit 2, a
+	jr nz, .asm_3e0e9 ; 0x198b7
+	ld a, [$c109]
+	cp $c
+	jr z, .asm_07af3 ; 0x198be
+	ld hl, VermilionCityCoords1
+	call ArePlayerCoordsInArray
+	jr nc, .asm_57b73 ; 0x198c6
+.asm_07af3 ; 0x198c8
+	ld hl, SSAnneWelcomeText4
+	call PrintText
+	jr .asm_79bd1 ; 0x198ce
+.asm_57b73 ; 0x198d0
+	ld hl, SSAnneWelcomeText9
+	call PrintText
+	ld b, S_S__TICKET
+	ld a, $1c
+	call Predef
+	ld a, b
+	and a
+	jr nz, .asm_0419b ; 0x198df
+	ld hl, SSAnneNoTicketText
+	call PrintText
+	jr .asm_79bd1 ; 0x198e7
+.asm_0419b ; 0x198e9
+	ld hl, SSAnneFlashedTicketText
+	call PrintText
+	ld a, $4
+	ld [W_VERMILIONCITYCURSCRIPT], a
+	jr .asm_79bd1 ; 0x198f4
+.asm_3e0e9 ; 0x198f6
+	ld hl, SSAnneNotHereText
+	call PrintText
+.asm_79bd1 ; 0x198fc
+	jp TextScriptEnd
+
+VermilionCityCoords1: ; 198ff (6:58ff)
+	db $1d,$13
+	db $1f,$13
+	db $ff
+
+SSAnneWelcomeText4: ; 19904 (6:5904)
+	TX_FAR _SSAnneWelcomeText4
+	db "@"
+
+SSAnneWelcomeText9: ; 19909 (6:5909)
+	TX_FAR _SSAnneWelcomeText9
+	db "@"
+
+SSAnneFlashedTicketText: ; 1990e (6:590e)
+	TX_FAR _SSAnneFlashedTicketText
+	db "@"
+
+SSAnneNoTicketText: ; 19913 (6:5913)
+	TX_FAR _SSAnneNoTicketText
+	db "@"
+
+SSAnneNotHereText: ; 19918 (6:5918)
+	TX_FAR _SSAnneNotHereText
+	db "@"
+
+VermilionCityText4: ; 1991d (6:591d)
+	TX_FAR _VermilionCityText4
+	db "@"
+
+VermilionCityText5: ; 19922 (6:5922)
+	TX_FAR _VermilionCityText5
+	db $08 ; asm
+	ld a, MACHOP
+	call PlayCry
+	call WaitForSoundToFinish
+	ld hl, VermilionCityText14 ; $5933
+	ret
+
+VermilionCityText14: ; 19933 (6:5933)
+	TX_FAR _VermilionCityText14
+	db "@"
+
+VermilionCityText6: ; 19938 (6:5938)
+	TX_FAR _VermilionCityText6
+	db "@"
+
+VermilionCityText7: ; 1993d (6:593d)
+	TX_FAR _VermilionCityText7
+	db "@"
+
+VermilionCityText8: ; 19942 (6:5942)
+	TX_FAR _VermilionCityText8
+	db "@"
+
+VermilionCityText11: ; 19947 (6:5947)
+	TX_FAR _VermilionCityText11
+	db "@"
+
+VermilionCityText12: ; 1994c (6:594c)
+	TX_FAR _VermilionCityText12
+	db "@"
+
+VermilionCityText13: ; 19951 (6:5951)
+	TX_FAR _VermilionCityText13
+	db "@"
--- /dev/null
+++ b/scripts/vermiliondock.asm
@@ -1,0 +1,210 @@
+VermilionDockScript: ; 1db52 (7:5b52)
+	call EnableAutoTextBoxDrawing
+	ld hl, $d803
+	bit 4, [hl]
+	jr nz, .asm_1db8d ; 0x1db5a $31
+	bit 0, [hl]
+	ret z
+	ld a, [$d42f]
+	cp $1
+	ret nz
+	bit 2, [hl]
+	jp z, VermilionDock_1db9b
+	set 4, [hl]
+	call Delay3
+	ld hl, $d730
+	set 7, [hl]
+	ld hl, $ccd3
+	ld a, $40
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld a, $3
+	ld [$cd38], a
+	xor a
+	ld [$c206], a
+	ld [$cd3b], a
+	dec a
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+.asm_1db8d
+	bit 5, [hl]
+	ret nz
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld [wJoypadForbiddenButtonsMask], a
+	set 5, [hl]
+	ret
+
+VermilionDock_1db9b: ; 1db9b (7:5b9b)
+	set 2, [hl]
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [$c0ee], a
+	call PlaySound
+	ld c, BANK(Music_Surfing)
+	ld a, MUSIC_SURFING
+	call PlayMusic
+	ld b, BANK(LoadSmokeTileFourTimes)
+	ld hl, LoadSmokeTileFourTimes
+	call Bankswitch
+	xor a
+	ld [$c102], a
+	ld c, $78
+	call DelayFrames
+	ld b, $9c
+	call CopyScreenTileBufferToVRAM
+	FuncCoord 0, 10 ; $c468
+	ld hl, Coord
+	ld bc, $0078
+	ld a, $14
+	call FillMemory
+	ld a, $1
+	ld [$ffba], a
+	call Delay3
+	xor a
+	ld [$ffba], a
+	ld [$cd3d], a
+	ld [$ff49], a
+	ld a, $58
+	ld [$cd3e], a
+	ld hl, $d526
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	push bc
+	push hl
+	ld a, (SFX_02_54 - SFX_Headers_02) / 3
+	call PlaySoundWaitForCurrent
+	ld a, $ff
+	ld [$cfcb], a
+	ld d, $0
+	ld e, $8
+.asm_1dbfa
+	ld hl, $0002
+	add hl, bc
+	ld a, l
+	ld [$d526], a
+	ld a, h
+	ld [$d527], a
+	push hl
+	push de
+	call ScheduleEastColumnRedraw
+	call VermilionDock_1dc59
+	pop de
+	ld b, $10
+.asm_1dc11
+	call VermilionDock_1dc42
+	ld c, $8
+.asm_1dc16
+	call VermilionDock_1dc7c
+	dec c
+	jr nz, .asm_1dc16 ; 0x1dc1a $fa
+	inc d
+	dec b
+	jr nz, .asm_1dc11 ; 0x1dc1e $f1
+	pop bc
+	dec e
+	jr nz, .asm_1dbfa ; 0x1dc22 $d6
+	xor a
+	ld [$ff4a], a
+	ld [$ffb0], a
+	call VermilionDock_1dc94
+	ld a, $90
+	ld [$ffb0], a
+	ld a, $1
+	ld [$cfcb], a
+	pop hl
+	pop bc
+	ld [hl], b
+	dec hl
+	ld [hl], c
+	call LoadPlayerSpriteGraphics
+	ld hl, $d3ae
+	dec [hl]
+	ret
+
+VermilionDock_1dc42: ; 1dc42 (7:5c42)
+	push bc
+	push de
+	ld hl, $c311
+	ld a, [$cd3d]
+	swap a
+	ld c, a
+	ld de, $0004
+.asm_1dc50
+	inc [hl]
+	inc [hl]
+	add hl, de
+	dec c
+	jr nz, .asm_1dc50 ; 0x1dc54 $fa
+	pop de
+	pop bc
+	ret
+
+VermilionDock_1dc59: ; 1dc59 (7:5c59)
+	ld a, [$cd3e]
+	sub $10
+	ld [$cd3e], a
+	ld c, a
+	ld b, $64
+	ld a, [$cd3d]
+	inc a
+	ld [$cd3d], a
+	ld a, $1
+	ld de, VermilionDockOAMBlock
+	call WriteOAMBlock
+	ret
+
+VermilionDockOAMBlock: ; 1dc74 (7:5c74)
+	db $fc, $10
+	db $fd, $10
+	db $fe, $10
+	db $ff, $10
+
+VermilionDock_1dc7c: ; 1dc7c (7:5c7c)
+	ld h, d
+	ld l, $50
+	call .asm_1dc86
+	ld h, $0
+	ld l, $80
+.asm_1dc86
+	ld a, [$ff44]
+	cp l
+	jr nz, .asm_1dc86 ; 0x1dc89 $fb
+	ld a, h
+	ld [$ff43], a
+.asm_1dc8e
+	ld a, [$ff44]
+	cp h
+	jr z, .asm_1dc8e ; 0x1dc91 $fb
+	ret
+
+VermilionDock_1dc94: ; 1dc94 (7:5c94)
+	ld hl, $cc5b
+	ld bc, $00b4
+	ld a, $14
+	call FillMemory
+	ld hl, $9940
+	ld de, $cc5b
+	ld bc, $000c
+	call CopyVideoData
+	ld hl, $c754
+	ld a, $d
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld a, (SFX_02_54 - SFX_Headers_02) / 3
+	call PlaySound
+	ld c, $78
+	call DelayFrames
+	ret
+
+VermilionDockTextPointers: ; 1dcbf (7:5cbf)
+	dw VermilionDockText1
+
+VermilionDockText1: ; 1dcc1 (7:5cc1)
+	TX_FAR _VermilionDockText1
+	db "@"
--- /dev/null
+++ b/scripts/vermiliongym.asm
@@ -1,0 +1,275 @@
+VermilionGymScript: ; 5ca26 (17:4a26)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	push hl
+	call nz, VermilionGymScript_5ca4c
+	pop hl
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, VermilionGymScript_5ca6d
+	call EnableAutoTextBoxDrawing
+	ld hl, VermilionGymTrainerHeader0
+	ld de, VermilionGymScriptPointers
+	ld a, [W_VERMILIONGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VERMILIONGYMCURSCRIPT], a
+	ret
+
+VermilionGymScript_5ca4c: ; 5ca4c (17:4a4c)
+	ld hl, Gym3CityName ; $4a55
+	ld de, Gym3LeaderName ; $4a64
+	jp LoadGymLeaderAndCityName
+
+Gym3CityName: ; 5ca55 (17:4a55)
+	db "VERMILION CITY@"
+
+Gym3LeaderName: ; 5ca64 (17:4a64)
+	db "LT.SURGE@"
+
+VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
+	ld a, [$d773]
+	bit 0, a
+	jr nz, .asm_5ca78
+	ld a, $24
+	jr .asm_5ca7f
+.asm_5ca78
+	ld a, (SFX_02_57 - SFX_Headers_02) / 3
+	call PlaySound
+	ld a, $5
+.asm_5ca7f
+	ld [$d09f], a
+	ld bc, $202
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_VERMILIONGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+VermilionGymScriptPointers: ; 5ca95 (17:4a95)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw VermilionGymScript3
+
+VermilionGymScript3: ; 5ca9d (17:4a9d)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, VermilionGymScript_5ca8a
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+VermilionGymScript_5caaa: ; 5caaa (17:4aaa)
+	ld a, $6
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d773
+	set 7, [hl]
+	ld bc, (TM_24 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $7
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d773
+	set 6, [hl]
+	jr .asm_5cad3
+.BagFull
+	ld a, $8
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_5cad3
+	ld hl, W_OBTAINEDBADGES
+	set 2, [hl]
+	ld hl, $d72a
+	set 2, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d773]
+	or %00011100
+	ld [$d773], a
+
+	jp VermilionGymScript_5ca8a
+
+VermilionGymTextPointers: ; 5cae8 (17:4ae8)
+	dw VermilionGymText1
+	dw VermilionGymText2
+	dw VermilionGymText3
+	dw VermilionGymText4
+	dw VermilionGymText5
+	dw VermilionGymText6
+	dw VermilionGymText7
+	dw VermilionGymText8
+
+VermilionGymTrainerHeaders: ; 5caf8 (17:4af8)
+VermilionGymTrainerHeader0: ; 5caf8 (17:4af8)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d773 ; flag's byte
+	dw VermilionGymBattleText1 ; 0x4b9a TextBeforeBattle
+	dw VermilionGymAfterBattleText1 ; 0x4ba4 TextAfterBattle
+	dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
+	dw VermilionGymEndBattleText1 ; 0x4b9f TextEndBattle
+
+VermilionGymTrainerHeader1: ; 5cb04 (17:4b04)
+	db $3 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d773 ; flag's byte
+	dw VermilionGymBattleText2 ; 0x4bb3 TextBeforeBattle
+	dw VermilionGymAfterBattleText2 ; 0x4bbd TextAfterBattle
+	dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
+	dw VermilionGymEndBattleText2 ; 0x4bb8 TextEndBattle
+
+VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d773 ; flag's byte
+	dw VermilionGymBattleText3 ; 0x4bcc TextBeforeBattle
+	dw VermilionGymAfterBattleText3 ; 0x4bd6 TextAfterBattle
+	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
+	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
+
+	db $ff
+
+VermilionGymText1: ; 5cb1d (17:4b1d)
+	db $08 ; asm
+	ld a, [$d773]
+	bit 7, a
+	jr z, .asm_7cc29 ; 0x5cb23
+	bit 6, a
+	jr nz, .asm_41203 ; 0x5cb27
+	call z, VermilionGymScript_5caaa
+	call DisableWaitingAfterTextDisplay
+	jr .asm_23621 ; 0x5cb2f
+.asm_41203 ; 0x5cb31
+	ld hl, VermilionGymText_5cb72
+	call PrintText
+	jr .asm_23621 ; 0x5cb37
+.asm_7cc29 ; 0x5cb39
+	ld hl, VermilionGymText_5cb6d
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, ReceivedThunderbadgeText
+	ld de, ReceivedThunderbadgeText
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $3
+	ld [$d05c], a
+	xor a
+	ldh [$b4], a
+	ld a, $3
+	ld [W_VERMILIONGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+.asm_23621 ; 0x5cb6a
+	jp TextScriptEnd
+
+VermilionGymText_5cb6d: ; 5cb6d (17:4b6d)
+	TX_FAR _VermilionGymText_5cb6d
+	db "@"
+
+VermilionGymText_5cb72: ; 5cb72 (17:4b72)
+	TX_FAR _VermilionGymText_5cb72
+	db "@"
+
+VermilionGymText6: ; 5cb77 (17:4b77)
+	TX_FAR _VermilionGymText_5cb77
+	db "@"
+
+VermilionGymText7: ; 5cb7c (17:4b7c)
+	TX_FAR _ReceivedTM24Text
+	db $11
+	TX_FAR _TM24ExplanationText
+	db "@"
+
+VermilionGymText8: ; 5cb86 (17:4b86)
+	TX_FAR _TM24NoRoomText
+	db "@"
+
+ReceivedThunderbadgeText: ; 5cb8b (17:4b8b)
+	TX_FAR _ReceivedThunderbadgeText
+	db "@"
+
+VermilionGymText2: ; 5cb90 (17:4b90)
+	db $08 ; asm
+	ld hl, VermilionGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VermilionGymBattleText1: ; 5cb9a (17:4b9a)
+	TX_FAR _VermilionGymBattleText1
+	db "@"
+
+VermilionGymEndBattleText1: ; 5cb9f (17:4b9f)
+	TX_FAR _VermilionGymEndBattleText1
+	db "@"
+
+VermilionGymAfterBattleText1: ; 5cba4 (17:4ba4)
+	TX_FAR _VermilionGymAfterBattleText1
+	db "@"
+
+VermilionGymText3: ; 5cba9 (17:4ba9)
+	db $08 ; asm
+	ld hl, VermilionGymTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VermilionGymBattleText2: ; 5cbb3 (17:4bb3)
+	TX_FAR _VermilionGymBattleText2
+	db "@"
+
+VermilionGymEndBattleText2: ; 5cbb8 (17:4bb8)
+	TX_FAR _VermilionGymEndBattleText2
+	db "@"
+
+VermilionGymAfterBattleText2: ; 5cbbd (17:4bbd)
+	TX_FAR _VermilionGymAfterBattleText2
+	db "@"
+
+VermilionGymText4: ; 5cbc2 (17:4bc2)
+	db $08 ; asm
+	ld hl, VermilionGymTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VermilionGymBattleText3: ; 5cbcc (17:4bcc)
+	TX_FAR _VermilionGymBattleText3
+	db "@"
+
+VermilionGymEndBattleText3: ; 5cbd1 (17:4bd1)
+	TX_FAR _VermilionGymEndBattleText3
+	db "@"
+
+VermilionGymAfterBattleText3: ; 5cbd6 (17:4bd6)
+	TX_FAR _VermilionGymAfterBattleText3
+	db "@"
+
+VermilionGymText5: ; 5cbdb (17:4bdb)
+	db $08 ; asm
+	ld a, [$d72a]
+	bit 2, a
+	jr nz, .asm_13b67 ; 0x5cbe1
+	ld hl, VermilionGymText_5cbf4
+	call PrintText
+	jr .asm_c2b38 ; 0x5cbe9
+.asm_13b67 ; 0x5cbeb
+	ld hl, VermilionGymText_5cbf9
+	call PrintText
+.asm_c2b38 ; 0x5cbf1
+	jp TextScriptEnd
+
+VermilionGymText_5cbf4: ; 5cbf4 (17:4bf4)
+	TX_FAR _VermilionGymText_5cbf4
+	db "@"
+
+VermilionGymText_5cbf9: ; 5cbf9 (17:4bf9)
+	TX_FAR _VermilionGymText_5cbf9
+	db "@"
--- /dev/null
+++ b/scripts/vermilionhouse1.asm
@@ -1,0 +1,24 @@
+VermilionHouse1Script: ; 1dafc (7:5afc)
+	call EnableAutoTextBoxDrawing
+	ret
+
+VermilionHouse1TextPointers: ; 1db00 (7:5b00)
+	dw VermilionHouse1Text1
+	dw VermilionHouse1Text2
+	dw VermilionHouse1Text3
+
+VermilionHouse1Text1: ; 1db06 (7:5b06)
+	TX_FAR _VermilionHouse1Text1
+	db "@"
+
+VermilionHouse1Text2: ; 1db0b (7:5b0b)
+	TX_FAR _VermilionHouse1Text2
+	db $08 ; asm
+	ld a, PIDGEY
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+VermilionHouse1Text3: ; 1db1b (7:5b1b)
+	TX_FAR _VermilionHouse1Text3
+	db "@"
--- /dev/null
+++ b/scripts/vermilionhouse2.asm
@@ -1,0 +1,57 @@
+VermilionHouse2Script: ; 56070 (15:6070)
+	jp EnableAutoTextBoxDrawing
+
+VermilionHouse2TextPointers: ; 56073 (15:6073)
+	dw VermilionHouse2Text1
+
+VermilionHouse2Text1: ; 56075 (15:6075)
+	db $08 ; asm
+	ld a, [$d728]
+	bit 3, a
+	jr nz, .asm_03ef5
+	ld hl, VermilionHouse2Text_560b1
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_eb1b7
+	ld bc, (OLD_ROD << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, $d728
+	set 3, [hl]
+	ld hl, VermilionHouse2Text_560b6
+	jr .asm_5dd95
+.BagFull
+	ld hl, VermilionHouse2Text_560ca
+	jr .asm_5dd95
+.asm_eb1b7
+	ld hl, VermilionHouse2Text_560c0
+	jr .asm_5dd95
+.asm_03ef5
+	ld hl, VermilionHouse2Text_560c5
+.asm_5dd95
+	call PrintText
+	jp TextScriptEnd
+
+VermilionHouse2Text_560b1: ; 560b1 (15:60b1)
+	TX_FAR _VermilionHouse2Text_560b1
+	db "@"
+
+VermilionHouse2Text_560b6: ; 560b6 (15:60b6)
+	TX_FAR _VermilionHouse2Text_560b6 ; 0x9c554
+	db $0B
+	TX_FAR _VermilionHouse2Text_560bb ; 0x9c5a4
+	db "@"
+
+VermilionHouse2Text_560c0: ; 560c0 (15:60c0)
+	TX_FAR _VermilionHouse2Text_560c0
+	db "@"
+
+VermilionHouse2Text_560c5: ; 560c5 (15:60c5)
+	TX_FAR _VermilionHouse2Text_560c5
+	db "@"
+
+VermilionHouse2Text_560ca: ; 560ca (15:60ca)
+	TX_FAR _VermilionHouse2Text_560ca
+	db "@"
--- /dev/null
+++ b/scripts/vermilionhouse3.asm
@@ -1,0 +1,13 @@
+VermilionHouse3Script: ; 19c12 (6:5c12)
+	jp EnableAutoTextBoxDrawing
+
+VermilionHouse3TextPointers: ; 19c15 (6:5c15)
+	dw VermilionHouse3Text1
+
+VermilionHouse3Text1: ; 19c17 (6:5c17)
+	db $08 ; asm
+	ld a, $4
+	ld [wWhichTrade], a
+	ld a, $54
+	call Predef
+	jp TextScriptEnd
--- /dev/null
+++ b/scripts/vermilionmart.asm
@@ -1,0 +1,15 @@
+VermilionMartScript: ; 5c9e1 (17:49e1)
+	jp EnableAutoTextBoxDrawing
+
+VermilionMartTextPointers: ; 5c9e4 (17:49e4)
+	dw VermilionMartText1
+	dw VermilionMartText2
+	dw VermilionMartText3
+
+VermilionMartText2: ; 5c9ea (17:49ea)
+	TX_FAR _VermilionMartText2
+	db "@"
+
+VermilionMartText3: ; 5c9ef (17:49ef)
+	TX_FAR _VermilionMartText3
+	db "@"
--- /dev/null
+++ b/scripts/vermilionpokecenter.asm
@@ -1,0 +1,23 @@
+VermilionPokecenterScript: ; 5c98f (17:498f)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+VermilionPokecenterTextPointers: ; 5c995 (17:4995)
+	dw VermilionPokecenterText1
+	dw VermilionPokecenterText2
+	dw VermilionPokecenterText3
+	dw VermilionPokecenterText4
+
+VermilionPokecenterText1: ; 5c99d (17:499d)
+	db $ff
+
+VermilionPokecenterText2: ; 5c99e (17:499e)
+	TX_FAR _VermilionPokecenterText1
+	db "@"
+
+VermilionPokecenterText3: ; 5c9a3 (17:49a3)
+	TX_FAR _VermilionPokecenterText3
+	db "@"
+
+VermilionPokecenterText4: ; 5c9a8 (17:49a8)
+	db $f6
--- /dev/null
+++ b/scripts/victoryroad1.asm
@@ -1,0 +1,108 @@
+VictoryRoad1Script: ; 5da0a (17:5a0a)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	call nz, .next
+	call EnableAutoTextBoxDrawing
+	ld hl, VictoryRoad1TrainerHeaders
+	ld de, VictoryRoad1ScriptPointers
+	ld a, [W_VICTORYROAD1CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VICTORYROAD1CURSCRIPT], a
+	ret
+.next
+	ld a, [$d869]
+	bit 7, a
+	ret z
+	ld a, $1d
+	ld [$d09f], a
+	ld bc, $604
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
+	dw VictoryRoad1Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad1Script0: ; 5da40 (17:5a40)
+	ld a, [$d869]
+	bit 7, a
+	jp nz, CheckFightingMapTrainers
+	ld hl, CoordsData_5da5c ; $5a5c
+	call CheckBoulderCoords
+	jp nc, CheckFightingMapTrainers
+	ld hl, $d126
+	set 5, [hl]
+	ld hl, $d869
+	set 7, [hl]
+	ret
+
+CoordsData_5da5c: ; 5da5c (17:5a5c)
+	db $0D,$11,$FF
+
+VictoryRoad1TextPointers: ; 5da5f (17:5a5f)
+	dw VictoryRoad1Text1
+	dw VictoryRoad1Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+
+VictoryRoad1TrainerHeaders: ; 5da6d (17:5a6d)
+VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d)
+	db $1 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d869 ; flag's byte
+	dw VictoryRoad1BattleText1 ; 0x5a9a TextBeforeBattle
+	dw VictoryRoad1AfterBattleText1 ; 0x5aa4 TextAfterBattle
+	dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
+	dw VictoryRoad1EndBattleText1 ; 0x5a9f TextEndBattle
+
+VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79)
+	db $2 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d869 ; flag's byte
+	dw VictoryRoad1BattleText2 ; 0x5aa9 TextBeforeBattle
+	dw VictoryRoad1AfterBattleText2 ; 0x5ab3 TextAfterBattle
+	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
+	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
+
+	db $ff
+
+VictoryRoad1Text1: ; 5da86 (17:5a86)
+	db $08 ; asm
+	ld hl, VictoryRoad1TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad1Text2: ; 5da90 (17:5a90)
+	db $08 ; asm
+	ld hl, VictoryRoad1TrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad1BattleText1: ; 5da9a (17:5a9a)
+	TX_FAR _VictoryRoad1BattleText1
+	db "@"
+
+VictoryRoad1EndBattleText1: ; 5da9f (17:5a9f)
+	TX_FAR _VictoryRoad1EndBattleText1
+	db "@"
+
+VictoryRoad1AfterBattleText1: ; 5daa4 (17:5aa4)
+	TX_FAR _VictoryRoad1AfterBattleText1
+	db "@"
+
+VictoryRoad1BattleText2: ; 5daa9 (17:5aa9)
+	TX_FAR _VictoryRoad1BattleText2
+	db "@"
+
+VictoryRoad1EndBattleText2: ; 5daae (17:5aae)
+	TX_FAR _VictoryRoad1EndBattleText2
+	db "@"
+
+VictoryRoad1AfterBattleText2: ; 5dab3 (17:5ab3)
+	TX_FAR _VictoryRoad1AfterBattleText2
+	db "@"
--- /dev/null
+++ b/scripts/victoryroad2.asm
@@ -1,0 +1,248 @@
+VictoryRoad2Script: ; 5179d (14:579d)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	call nz, VictoryRoad2Script_517c4
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	call nz, VictoryRoad2Script_517c9
+	call EnableAutoTextBoxDrawing
+	ld hl, VictoryRoad2TrainerHeaders
+	ld de, VictoryRoad2ScriptPointers
+	ld a, [W_VICTORYROAD2CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VICTORYROAD2CURSCRIPT], a
+	ret
+
+VictoryRoad2Script_517c4: ; 517c4 (14:57c4)
+	ld hl, $d869
+	res 7, [hl]
+
+VictoryRoad2Script_517c9: ; 517c9 (14:57c9)
+	ld a, [$d7ee]
+	bit 0, a
+	jr z, .asm_517da
+	push af
+	ld a, $15
+	ld bc, $403
+	call VictoryRoad2Script_517e2
+	pop af
+.asm_517da
+	bit 7, a
+	ret z
+	ld a, $1d
+	ld bc, $70b
+
+VictoryRoad2Script_517e2: ; 517e2 (14:57e2)
+	ld [$d09f], a
+	ld a, $17
+	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+	ret
+
+VictoryRoad2ScriptPointers: ; 517eb (14:57eb)
+	dw VictoryRoad2Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad2Script0: ; 517f1 (14:57f1)
+	ld hl, CoordsData_51816 ; $5816
+	call CheckBoulderCoords
+	jp nc, CheckFightingMapTrainers
+	ld hl, $d7ee
+	ld a, [wWhichTrade] ; $cd3d
+	cp $2
+	jr z, .asm_5180b
+	bit 0, [hl]
+	set 0, [hl]
+	ret nz
+	jr .asm_51810
+.asm_5180b
+	bit 7, [hl]
+	set 7, [hl]
+	ret nz
+.asm_51810
+	ld hl, $d126
+	set 5, [hl]
+	ret
+
+CoordsData_51816: ; 51816 (14:5816)
+	db $10,$01
+	db $10,$09
+	db $FF
+
+VictoryRoad2TextPointers: ; 5181b (14:581b)
+	dw VictoryRoad2Text1
+	dw VictoryRoad2Text2
+	dw VictoryRoad2Text3
+	dw VictoryRoad2Text4
+	dw VictoryRoad2Text5
+	dw VictoryRoad2Text6
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+
+VictoryRoad2TrainerHeaders: ; 51835 (14:5835)
+VictoryRoad2TrainerHeader0: ; 51835 (14:5835)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText1 ; 0x58ca TextBeforeBattle
+	dw VictoryRoad2AfterBattleText1 ; 0x58d4 TextAfterBattle
+	dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
+	dw VictoryRoad2EndBattleText1 ; 0x58cf TextEndBattle
+
+VictoryRoad2TrainerHeader2: ; 51841 (14:5841)
+	db $2 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText2 ; 0x58d9 TextBeforeBattle
+	dw VictoryRoad2AfterBattleText2 ; 0x58e3 TextAfterBattle
+	dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
+	dw VictoryRoad2EndBattleText2 ; 0x58de TextEndBattle
+
+VictoryRoad2TrainerHeader3: ; 5184d (14:584d)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText3 ; 0x58e8 TextBeforeBattle
+	dw VictoryRoad2AfterBattleText3 ; 0x58f2 TextAfterBattle
+	dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
+	dw VictoryRoad2EndBattleText3 ; 0x58ed TextEndBattle
+
+VictoryRoad2TrainerHeader4: ; 51859 (14:5859)
+	db $4 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText4 ; 0x58f7 TextBeforeBattle
+	dw VictoryRoad2AfterBattleText4 ; 0x5901 TextAfterBattle
+	dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
+	dw VictoryRoad2EndBattleText4 ; 0x58fc TextEndBattle
+
+VictoryRoad2TrainerHeader5: ; 51865 (14:5865)
+	db $5 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText5 ; 0x5906 TextBeforeBattle
+	dw VictoryRoad2AfterBattleText5 ; 0x5910 TextAfterBattle
+	dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
+	dw VictoryRoad2EndBattleText5 ; 0x590b TextEndBattle
+
+VictoryRoad2TrainerHeader6: ; 51871 (14:5871)
+	db $6 ; flag's bit
+	db ($0 << 4) ; trainer's view range
+	dw $d7ee ; flag's byte
+	dw VictoryRoad2BattleText6 ; 0x58ba TextBeforeBattle
+	dw VictoryRoad2BattleText6 ; 0x58ba TextAfterBattle
+	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
+	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
+
+	db $ff
+
+VictoryRoad2Text1: ; 5187e (14:587e)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2Text2: ; 51888 (14:5888)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2Text3: ; 51892 (14:5892)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2Text4: ; 5189c (14:589c)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2Text5: ; 518a6 (14:58a6)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2Text6: ; 518b0 (14:58b0)
+	db $08 ; asm
+	ld hl, VictoryRoad2TrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad2BattleText6: ; 518ba (14:58ba)
+	TX_FAR _VictoryRoad2BattleText6
+	db $8
+	ld a, MOLTRES
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+VictoryRoad2BattleText1: ; 518ca (14:58ca)
+	TX_FAR _VictoryRoad2BattleText1
+	db "@"
+
+VictoryRoad2EndBattleText1: ; 518cf (14:58cf)
+	TX_FAR _VictoryRoad2EndBattleText1
+	db "@"
+
+VictoryRoad2AfterBattleText1: ; 518d4 (14:58d4)
+	TX_FAR _VictoryRoad2AfterBattleText1
+	db "@"
+
+VictoryRoad2BattleText2: ; 518d9 (14:58d9)
+	TX_FAR _VictoryRoad2BattleText2
+	db "@"
+
+VictoryRoad2EndBattleText2: ; 518de (14:58de)
+	TX_FAR _VictoryRoad2EndBattleText2
+	db "@"
+
+VictoryRoad2AfterBattleText2: ; 518e3 (14:58e3)
+	TX_FAR _VictoryRoad2AfterBattleText2
+	db "@"
+
+VictoryRoad2BattleText3: ; 518e8 (14:58e8)
+	TX_FAR _VictoryRoad2BattleText3
+	db "@"
+
+VictoryRoad2EndBattleText3: ; 518ed (14:58ed)
+	TX_FAR _VictoryRoad2EndBattleText3
+	db "@"
+
+VictoryRoad2AfterBattleText3: ; 518f2 (14:58f2)
+	TX_FAR _VictoryRoad2AfterBattleText3
+	db "@"
+
+VictoryRoad2BattleText4: ; 518f7 (14:58f7)
+	TX_FAR _VictoryRoad2BattleText4
+	db "@"
+
+VictoryRoad2EndBattleText4: ; 518fc (14:58fc)
+	TX_FAR _VictoryRoad2EndBattleText4
+	db "@"
+
+VictoryRoad2AfterBattleText4: ; 51901 (14:5901)
+	TX_FAR _VictoryRoad2AfterBattleText4
+	db "@"
+
+VictoryRoad2BattleText5: ; 51906 (14:5906)
+	TX_FAR _VictoryRoad2BattleText5
+	db "@"
+
+VictoryRoad2EndBattleText5: ; 5190b (14:590b)
+	TX_FAR _VictoryRoad2EndBattleText5
+	db "@"
+
+VictoryRoad2AfterBattleText5: ; 51910 (14:5910)
+	TX_FAR _VictoryRoad2AfterBattleText5
+	db "@"
--- /dev/null
+++ b/scripts/victoryroad3.asm
@@ -1,0 +1,205 @@
+VictoryRoad3Script: ; 44980 (11:4980)
+	call VictoryRoad3Script_44996
+	call EnableAutoTextBoxDrawing
+	ld hl, VictoryRoad3TrainerHeaders
+	ld de, VictoryRoad3ScriptPointers
+	ld a, [W_VICTORYROAD3CURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VICTORYROAD3CURSCRIPT], a
+	ret
+
+VictoryRoad3Script_44996: ; 44996 (11:4996)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, $d813
+	bit 0, [hl]
+	ret z
+	ld a, $1d
+	ld [$d09f], a
+	ld bc, $503
+	ld a, $17
+	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
+	dw VictoryRoad3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad3Script0: ; 449b7 (11:49b7)
+	ld hl, wFlags_0xcd60
+	bit 7, [hl]
+	res 7, [hl]
+	jp z, .asm_449fe
+	ld hl, .coordsData_449f9 ; $49f9
+	call CheckBoulderCoords
+	jp nc, .asm_449fe
+	ld a, [wWhichTrade] ; $cd3d
+	cp $1
+	jr nz, .asm_449dc
+	ld hl, $d126
+	set 5, [hl]
+	ld hl, $d813
+	set 0, [hl]
+	ret
+.asm_449dc
+	ld hl, $d813
+	bit 6, [hl]
+	set 6, [hl]
+	jr nz, .asm_449fe
+	ld a, $7a
+	ld [$cc4d], a
+	ld a, $11
+	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+	ld a, $60
+	ld [$cc4d], a
+	ld a, $15
+	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+
+.coordsData_449f9: ; 449f9 (11:49f9)
+	db $05,$03
+	db $0F,$17
+	db $FF
+
+.asm_449fe
+	ld a, $c2
+	ld [$d71d], a
+	ld hl, .coordsData_449f9 ; $49f9
+	call Func_46981
+	ld a, [wWhichTrade] ; $cd3d
+	cp $1
+	jr nz, .asm_44a1b
+	ld hl, $d72d
+	res 4, [hl]
+	ld hl, $d732
+	res 4, [hl]
+	ret
+.asm_44a1b
+	ld a, [$d72d]
+	bit 4, a
+	jp z, CheckFightingMapTrainers
+	ret
+
+VictoryRoad3TextPointers: ; 44a24 (11:4a24)
+	dw VictoryRoad3Text1
+	dw VictoryRoad3Text2
+	dw VictoryRoad3Text3
+	dw VictoryRoad3Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+
+VictoryRoad3TrainerHeaders: ; 44a38 (11:4a38)
+VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38)
+	db $1 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d813 ; flag's byte
+	dw VictoryRoad3BattleText2 ; 0x4a91 TextBeforeBattle
+	dw VictoryRoad3AfterBattleText2 ; 0x4a9b TextAfterBattle
+	dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
+	dw VictoryRoad3EndBattleText2 ; 0x4a96 TextEndBattle
+
+VictoryRoad3TrainerHeader2: ; 44a44 (11:4a44)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d813 ; flag's byte
+	dw VictoryRoad3BattleText3 ; 0x4aa0 TextBeforeBattle
+	dw VictoryRoad3AfterBattleText3 ; 0x4aaa TextAfterBattle
+	dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
+	dw VictoryRoad3EndBattleText3 ; 0x4aa5 TextEndBattle
+
+VictoryRoad3TrainerHeader3: ; 44a50 (11:4a50)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d813 ; flag's byte
+	dw VictoryRoad3BattleText4 ; 0x4aaf TextBeforeBattle
+	dw VictoryRoad3AfterBattleText4 ; 0x4ab9 TextAfterBattle
+	dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
+	dw VictoryRoad3EndBattleText4 ; 0x4ab4 TextEndBattle
+
+VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d813 ; flag's byte
+	dw VictoryRoad3BattleText5 ; 0x4abe TextBeforeBattle
+	dw VictoryRoad3AfterBattleText5 ; 0x4ac8 TextAfterBattle
+	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
+	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
+
+	db $ff
+
+VictoryRoad3Text1: ; 44a69 (11:4a69)
+	db $08 ; asm
+	ld hl, VictoryRoad3TrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad3Text2: ; 44a73 (11:4a73)
+	db $08 ; asm
+	ld hl, VictoryRoad3TrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad3Text3: ; 44a7d (11:4a7d)
+	db $08 ; asm
+	ld hl, VictoryRoad3TrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad3Text4: ; 44a87 (11:4a87)
+	db $08 ; asm
+	ld hl, VictoryRoad3TrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+VictoryRoad3BattleText2: ; 44a91 (11:4a91)
+	TX_FAR _VictoryRoad3BattleText2
+	db "@"
+
+VictoryRoad3EndBattleText2: ; 44a96 (11:4a96)
+	TX_FAR _VictoryRoad3EndBattleText2
+	db "@"
+
+VictoryRoad3AfterBattleText2: ; 44a9b (11:4a9b)
+	TX_FAR _VictoryRoad3AfterBattleText2
+	db "@"
+
+VictoryRoad3BattleText3: ; 44aa0 (11:4aa0)
+	TX_FAR _VictoryRoad3BattleText3
+	db "@"
+
+VictoryRoad3EndBattleText3: ; 44aa5 (11:4aa5)
+	TX_FAR _VictoryRoad3EndBattleText3
+	db "@"
+
+VictoryRoad3AfterBattleText3: ; 44aaa (11:4aaa)
+	TX_FAR _VictoryRoad3AfterBattleText3
+	db "@"
+
+VictoryRoad3BattleText4: ; 44aaf (11:4aaf)
+	TX_FAR _VictoryRoad3BattleText4
+	db "@"
+
+VictoryRoad3EndBattleText4: ; 44ab4 (11:4ab4)
+	TX_FAR _VictoryRoad3EndBattleText4
+	db "@"
+
+VictoryRoad3AfterBattleText4: ; 44ab9 (11:4ab9)
+	TX_FAR _VictoryRoad3AfterBattleText4
+	db "@"
+
+VictoryRoad3BattleText5: ; 44abe (11:4abe)
+	TX_FAR _VictoryRoad3BattleText5
+	db "@"
+
+VictoryRoad3EndBattleText5: ; 44ac3 (11:4ac3)
+	TX_FAR _VictoryRoad3EndBattleText5
+	db "@"
+
+VictoryRoad3AfterBattleText5: ; 44ac8 (11:4ac8)
+	TX_FAR _VictoryRoad3AfterBattleText5
+	db "@"
--- /dev/null
+++ b/scripts/viridiancity.asm
@@ -1,0 +1,333 @@
+ViridianCityScript: ; 18ff1 (6:4ff1)
+	call EnableAutoTextBoxDrawing
+	ld hl, ViridianCityScriptPointers
+	ld a, [W_VIRIDIANCITYCURSCRIPT]
+	jp CallFunctionInTable
+
+ViridianCityScriptPointers: ; 18ffd (6:4ffd)
+	dw ViridianCityScript0
+	dw ViridianCityScript1
+	dw ViridianCityScript2
+	dw ViridianCityScript3
+
+ViridianCityScript0: ; 19005 (6:5005)
+	call ViridianCityScript_1900b
+	jp ViridianCityScript_1903d
+
+ViridianCityScript_1900b: ; 1900b (6:500b)
+	ld a, [$d74c]
+	bit 0, a
+	ret nz
+	ld a, [W_OBTAINEDBADGES]
+	cp %01111111
+	jr nz, .asm_1901e ; 0x19016 $6
+	ld hl, $d74c
+	set 0, [hl]
+	ret
+.asm_1901e
+	ld a, [W_YCOORD]
+	cp $8
+	ret nz
+	ld a, [W_XCOORD]
+	cp $20
+	ret nz
+	ld a, $e
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	call ViridianCityScript_190cf
+	ld a, $3
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	ret
+
+ViridianCityScript_1903d: ; 1903d (6:503d)
+	ld a, [$d74b]
+	bit 5, a
+	ret nz
+	ld a, [W_YCOORD]
+	cp $9
+	ret nz
+	ld a, [W_XCOORD]
+	cp $13
+	ret nz
+	ld a, $5
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	call ViridianCityScript_190cf
+	ld a, $3
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	ret
+
+ViridianCityScript1: ; 19062 (6:5062)
+	ld a, [$c134]
+	ld [$ffeb], a
+	ld a, [$c136]
+	ld [$ffec], a
+	ld a, [$c234]
+	ld [$ffed], a
+	ld a, [$c235]
+	ld [$ffee], a
+	xor a
+	ld [wListScrollOffset], a
+
+	; set up battle for Old Man
+	ld a, $1
+	ld [W_BATTLETYPE], a
+	ld a, 5
+	ld [W_CURENEMYLVL], a
+	ld a, WEEDLE
+	ld [W_CUROPPONENT], a
+	ld a, $2
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	ret
+
+ViridianCityScript2: ; 1908f (6:508f)
+	ld a, [$ffeb]
+	ld [$c134], a
+	ld a, [$ffec]
+	ld [$c136], a
+	ld a, [$ffed]
+	ld [$c234], a
+	ld a, [$ffee]
+	ld [$c235], a
+	call UpdateSprites
+	call Delay3
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $f
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [W_BATTLETYPE], a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $0
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	ret
+
+ViridianCityScript3: ; 190c1 (6:50c1)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	ld a, 0
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	ret
+
+ViridianCityScript_190cf: ; 190cf (6:50cf)
+	call Func_3486
+	ld a, $1
+	ld [$cd38], a
+	ld a, $80
+	ld [$ccd3], a
+	xor a
+	ld [$c109], a
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
+
+ViridianCityTextPointers: ; 190e4 (6:50e4)
+	dw ViridianCityText1
+	dw ViridianCityText2
+	dw ViridianCityText3
+	dw ViridianCityText4
+	dw ViridianCityText5
+	dw ViridianCityText6
+	dw ViridianCityText7
+	dw ViridianCityText8
+	dw ViridianCityText9
+	dw ViridianCityText10
+	dw MartSignText
+	dw PokeCenterSignText
+	dw ViridianCityText13
+	dw ViridianCityText14
+	dw ViridianCityText15
+
+ViridianCityText1: ; 19102 (6:5102)
+	TX_FAR _ViridianCityText1
+	db "@"
+
+ViridianCityText2: ; 19107 (6:5107)
+	db $08 ; asm
+	ld a, [W_OBTAINEDBADGES]
+	cp %01111111
+	ld hl, ViridianCityText_19127
+	jr z, .asm_ae9fe ; 0x19110
+	ld a, [$d751]
+	bit 1, a
+	jr nz, .asm_ae9fe ; 0x19117
+	ld hl, ViridianCityText_19122
+.asm_ae9fe ; 0x1911c
+	call PrintText
+	jp TextScriptEnd
+
+ViridianCityText_19122: ; 19122 (6:5122)
+	TX_FAR _ViridianCityText_19122
+	db "@"
+
+ViridianCityText_19127: ; 19127 (6:5127)
+	TX_FAR _ViridianCityText_19127
+	db "@"
+
+ViridianCityText3: ; 1912c (6:512c)
+	db $08 ; asm
+	ld hl, ViridianCityText_1914d
+	call PrintText
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr nz, .asm_6dfea ; 0x1913a
+	ld hl, ViridianCityText_19157
+	call PrintText
+	jr .asm_d611f ; 0x19142
+.asm_6dfea ; 0x19144
+	ld hl, ViridianCityText_19152
+	call PrintText
+.asm_d611f ; 0x1914a
+	jp TextScriptEnd
+
+ViridianCityText_1914d: ; 1914d (6:514d)
+	TX_FAR _ViridianCityText_1914d
+	db "@"
+
+ViridianCityText_19152: ; 19152 (6:5152)
+	TX_FAR _ViridianCityText_19152
+	db "@"
+
+ViridianCityText_19157: ; 19157 (6:5157)
+	TX_FAR _ViridianCityText_19157
+	db "@"
+
+ViridianCityText4: ; 1915c (6:515c)
+	db $08 ; asm
+	ld a, [$d74b]
+	bit 5, a
+	jr nz, .asm_83894 ; 0x19162
+	ld hl, ViridianCityText_19175
+	call PrintText
+	jr .asm_700a6 ; 0x1916a
+.asm_83894 ; 0x1916c
+	ld hl, ViridianCityText_1917a
+	call PrintText
+.asm_700a6 ; 0x19172
+	jp TextScriptEnd
+
+ViridianCityText_19175: ; 19175 (6:5175)
+	TX_FAR _ViridianCityText_19175
+	db "@"
+
+ViridianCityText_1917a: ; 1917a (6:517a)
+	TX_FAR _ViridianCityText_1917a
+	db "@"
+
+ViridianCityText5: ; 1917f (6:517f)
+	db $08 ; asm
+	ld hl, ViridianCityText_19191
+	call PrintText
+	call ViridianCityScript_190cf
+	ld a, $3
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	jp TextScriptEnd
+
+ViridianCityText_19191: ; 19191 (6:5191)
+	TX_FAR _ViridianCityText_19191
+	db "@"
+
+ViridianCityText6: ; 19196 (6:5196)
+	db $08 ; asm
+	ld a, [$d74c]
+	bit 1, a
+	jr nz, .asm_4e5a0 ; 0x1919c
+	ld hl, ViridianCityText_191ca
+	call PrintText
+	ld bc, (TM_42 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld hl, ReceivedTM42Text
+	call PrintText
+	ld hl, $d74c
+	set 1, [hl]
+	jr .asm_3c73c ; 0x191b7
+.BagFull
+	ld hl, TM42NoRoomText
+	call PrintText
+	jr .asm_3c73c ; 0x191bf
+.asm_4e5a0 ; 0x191c1
+	ld hl, TM42Explanation
+	call PrintText
+.asm_3c73c ; 0x191c7
+	jp TextScriptEnd
+
+ViridianCityText_191ca: ; 191ca (6:51ca)
+	TX_FAR _ViridianCityText_191ca
+	db "@"
+
+ReceivedTM42Text: ; 191cf (6:51cf)
+	TX_FAR _ReceivedTM42Text
+	db $10, "@"
+
+TM42Explanation: ; 191d5 (6:51d5)
+	TX_FAR _TM42Explanation
+	db "@"
+
+TM42NoRoomText: ; 191da (6:51da)
+	TX_FAR _TM42NoRoomText
+	db "@"
+
+ViridianCityText7: ; 191df (6:51df)
+	db $08 ; asm
+	ld hl, ViridianCityText_1920a
+	call PrintText
+	ld c, $2
+	call DelayFrames
+	call YesNoChoice
+	ld a, [$cc26]
+	and a
+	jr z, .asm_42f68 ; 0x191f2
+	ld hl, ViridianCityText_1920f
+	call PrintText
+	ld a, $1
+	ld [W_VIRIDIANCITYCURSCRIPT], a
+	jr .asm_2413a ; 0x191ff
+.asm_42f68 ; 0x19201
+	ld hl, ViridianCityText_19214
+	call PrintText
+.asm_2413a ; 0x19207
+	jp TextScriptEnd
+
+ViridianCityText_1920a: ; 1920a (6:520a)
+	TX_FAR _ViridianCityText_1920a
+	db "@"
+
+ViridianCityText_1920f: ; 1920f (6:520f)
+	TX_FAR _ViridianCityText_1920f
+	db "@"
+
+ViridianCityText_19214: ; 19214 (6:5214)
+	TX_FAR _ViridianCityText_19214
+	db "@"
+
+ViridianCityText15: ; 19219 (6:5219)
+	TX_FAR _ViridianCityText_19219
+	db "@"
+
+ViridianCityText8: ; 1921e (6:521e)
+	TX_FAR _ViridianCityText8
+	db "@"
+
+ViridianCityText9: ; 19223 (6:5223)
+	TX_FAR _ViridianCityText9
+	db "@"
+
+ViridianCityText10: ; 19228 (6:5228)
+	TX_FAR _ViridianCityText10
+	db "@"
+
+ViridianCityText13: ; 1922d (6:522d)
+	TX_FAR _ViridianCityText13
+	db "@"
+
+ViridianCityText14: ; 19232 (6:5232)
+	TX_FAR _ViridianCityText14
+	db "@"
--- /dev/null
+++ b/scripts/viridianforest.asm
@@ -1,0 +1,145 @@
+ViridianForestScript: ; 6110d (18:510d)
+	call EnableAutoTextBoxDrawing
+	ld hl, ViridianForestTrainerHeaders
+	ld de, ViridianForestScriptPointers
+	ld a, [W_VIRIDIANFORESTCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VIRIDIANFORESTCURSCRIPT], a
+	ret
+
+ViridianForestScriptPointers: ; 61120 (18:5120)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+
+ViridianForestTextPointers: ; 61126 (18:5126)
+	dw ViridianForestText1
+	dw ViridianForestText2
+	dw ViridianForestText3
+	dw ViridianForestText4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw ViridianForestText8
+	dw ViridianForestText9
+	dw ViridianForestText10
+	dw ViridianForestText11
+	dw ViridianForestText12
+	dw ViridianForestText13
+	dw ViridianForestText14
+
+ViridianForestTrainerHeaders: ; 61142 (18:5142)
+ViridianForestTrainerHeader0: ; 61142 (18:5142)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f3 ; flag's byte
+	dw ViridianForestBattleText1 ; 0x518a TextBeforeBattle
+	dw ViridianForestAfterBattleText1 ; 0x5194 TextAfterBattle
+	dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
+	dw ViridianForestEndBattleText1 ; 0x518f TextEndBattle
+
+ViridianForestTrainerHeader1: ; 6114e (18:514e)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7f3 ; flag's byte
+	dw ViridianForestBattleText2 ; 0x5199 TextBeforeBattle
+	dw ViridianForestAfterBattleText2 ; 0x51a3 TextAfterBattle
+	dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
+	dw ViridianForestEndBattleText2 ; 0x519e TextEndBattle
+
+ViridianForestTrainerHeader2: ; 6115a (18:515a)
+	db $4 ; flag's bit
+	db ($1 << 4) ; trainer's view range
+	dw $d7f3 ; flag's byte
+	dw ViridianForestBattleText3 ; 0x51a8 TextBeforeBattle
+	dw ViridianForestAfterBattleText3 ; 0x51b2 TextAfterBattle
+	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
+	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
+
+	db $ff
+
+ViridianForestText1: ; 61167 (18:5167)
+	TX_FAR _ViridianForestText1
+	db "@"
+
+ViridianForestText2: ; 6116c (18:516c)
+	db $08 ; asm
+	ld hl, ViridianForestTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianForestText3: ; 61176 (18:5176)
+	db $08 ; asm
+	ld hl, ViridianForestTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianForestText4: ; 61180 (18:5180)
+	db $08 ; asm
+	ld hl, ViridianForestTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianForestBattleText1: ; 6118a (18:518a)
+	TX_FAR _ViridianForestBattleText1
+	db "@"
+
+ViridianForestEndBattleText1: ; 6118f (18:518f)
+	TX_FAR _ViridianForestEndBattleText1
+	db "@"
+
+ViridianForestAfterBattleText1: ; 61194 (18:5194)
+	TX_FAR _ViridianFrstAfterBattleText1
+	db "@"
+
+ViridianForestBattleText2: ; 61199 (18:5199)
+	TX_FAR _ViridianForestBattleText2
+	db "@"
+
+ViridianForestEndBattleText2: ; 6119e (18:519e)
+	TX_FAR _ViridianForestEndBattleText2
+	db "@"
+
+ViridianForestAfterBattleText2: ; 611a3 (18:51a3)
+	TX_FAR _ViridianFrstAfterBattleText2
+	db "@"
+
+ViridianForestBattleText3: ; 611a8 (18:51a8)
+	TX_FAR _ViridianForestBattleText3
+	db "@"
+
+ViridianForestEndBattleText3: ; 611ad (18:51ad)
+	TX_FAR _ViridianForestEndBattleText3
+	db "@"
+
+ViridianForestAfterBattleText3: ; 611b2 (18:51b2)
+	TX_FAR _ViridianFrstAfterBattleText3
+	db "@"
+
+ViridianForestText8: ; 611b7 (18:51b7)
+	TX_FAR _ViridianForestText8
+	db "@"
+
+ViridianForestText9: ; 611bc (18:51bc)
+	TX_FAR _ViridianForestText9
+	db "@"
+
+ViridianForestText10: ; 611c1 (18:51c1)
+	TX_FAR _ViridianForestText10
+	db "@"
+
+ViridianForestText11: ; 611c6 (18:51c6)
+	TX_FAR _ViridianForestText11
+	db "@"
+
+ViridianForestText12: ; 611cb (18:51cb)
+	TX_FAR _ViridianForestText12
+	db "@"
+
+ViridianForestText13: ; 611d0 (18:51d0)
+	TX_FAR _ViridianForestText13
+	db "@"
+
+ViridianForestText14: ; 611d5 (18:51d5)
+	TX_FAR _ViridianForestText14
+	db "@"
--- /dev/null
+++ b/scripts/viridianforestentrance.asm
@@ -1,0 +1,14 @@
+ViridianForestEntranceScript: ; 5d65c (17:565c)
+	jp EnableAutoTextBoxDrawing
+
+ViridianForestEntranceTextPointers: ; 5d65f (17:565f)
+	dw ViridianForestEntranceText1
+	dw ViridianForestEntranceText2
+
+ViridianForestEntranceText1: ; 5d663 (17:5663)
+	TX_FAR _ViridianForestEntranceText1
+	db "@"
+
+ViridianForestEntranceText2: ; 5d668 (17:5668)
+	TX_FAR _ViridianForestEntranceText2
+	db "@"
--- /dev/null
+++ b/scripts/viridianforestexit.asm
@@ -1,0 +1,14 @@
+ViridianForestExitScript: ; 5d587 (17:5587)
+	jp EnableAutoTextBoxDrawing
+
+ViridianForestExitTextPointers: ; 5d58a (17:558a)
+	dw ViridianForestExitText1
+	dw ViridianForestExitText2
+
+ViridianForestExitText1: ; 5d58e (17:558e)
+	TX_FAR _ViridianForestExitText1
+	db "@"
+
+ViridianForestExitText2: ; 5d593 (17:5593)
+	TX_FAR _ViridianForestExitText2
+	db "@"
--- /dev/null
+++ b/scripts/viridiangym.asm
@@ -1,0 +1,514 @@
+ViridianGymScript: ; 748a3 (1d:48a3)
+	ld hl, Gym8CityName
+	ld de, Gym8LeaderName
+	call LoadGymLeaderAndCityName
+	call EnableAutoTextBoxDrawing
+	ld hl, ViridianGymTrainerHeaders
+	ld de, ViridianGymScriptPointers
+	ld a, [W_VIRIDIANGYMCURSCRIPT]
+	call ExecuteCurMapScriptInTable
+	ld [W_VIRIDIANGYMCURSCRIPT], a
+	ret
+
+Gym8CityName: ; 748bf (1d:48bf)
+	db "VIRIDIAN CITY@"
+Gym8LeaderName: ; 748cd (1d:48cd)
+	db "GIOVANNI@"
+
+ViridianGymScript_748d6: ; 748d6 (1d:48d6)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_VIRIDIANGYMCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+ViridianGymScriptPointers: ; 748e1 (1d:48e1)
+	dw ViridianGymScript0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw ViridianGymScript3
+	dw ViridianGymScript4
+
+ViridianGymScript0: ; 748eb (1d:48eb)
+	ld a, [W_YCOORD] ; $d361
+	ld b, a
+	ld a, [W_XCOORD] ; $d362
+	ld c, a
+	ld hl, ViridianGymArrowTilePlayerMovement
+	call Func_3442
+	cp $ff
+	jp z, CheckFightingMapTrainers
+	call Func_3486
+	ld hl, $d736
+	set 7, [hl]
+	ld a, (SFX_02_52 - SFX_Headers_02) / 3
+	call PlaySound
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $4
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+;format:
+;db y,x
+;dw pointer to movement
+ViridianGymArrowTilePlayerMovement: ; 74916 (1d:4916)
+	db $b,$13
+	dw ViridianGymArrowMovement1
+	db $1,$13
+	dw ViridianGymArrowMovement2
+	db $2,$12
+	dw ViridianGymArrowMovement3
+	db $2,$b
+	dw ViridianGymArrowMovement4
+	db $a,$10
+	dw ViridianGymArrowMovement5
+	db $6,$4
+	dw ViridianGymArrowMovement6
+	db $d,$5
+	dw ViridianGymArrowMovement7
+	db $e,$4
+	dw ViridianGymArrowMovement8
+	db $f,$0
+	dw ViridianGymArrowMovement9
+	db $f,$1
+	dw ViridianGymArrowMovement10
+	db $10,$d
+	dw ViridianGymArrowMovement11
+	db $11,$d
+	dw ViridianGymArrowMovement12
+	db $FF
+
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+ViridianGymArrowMovement1: ; 74947 (1d:4947)
+	db $40,$09,$FF
+
+ViridianGymArrowMovement2: ; 7494a (1d:494a)
+	db $20,$08,$FF
+
+ViridianGymArrowMovement3: ; 7494d (1d:494d)
+	db $80,$09,$FF
+
+ViridianGymArrowMovement4: ; 74950 (1d:4950)
+	db $10,$06,$FF
+
+ViridianGymArrowMovement5: ; 74953 (1d:4953)
+	db $80,$02,$FF
+
+ViridianGymArrowMovement6: ; 74956 (1d:4956)
+	db $80,$07,$FF
+
+ViridianGymArrowMovement7: ; 74959 (1d:4959)
+	db $10,$08,$FF
+
+ViridianGymArrowMovement8: ; 7495c (1d:495c)
+	db $10,$09,$FF
+
+ViridianGymArrowMovement9: ; 7495f (1d:495f)
+	db $40,$08,$FF
+
+ViridianGymArrowMovement10: ; 74962 (1d:4962)
+	db $40,$06,$FF
+
+ViridianGymArrowMovement11: ; 74965 (1d:4965)
+	db $20,$06,$FF
+
+ViridianGymArrowMovement12: ; 74968 (1d:4968)
+	db $20,$0C,$FF
+
+ViridianGymScript4: ; 7496b (1d:496b)
+	ld a, [$cd38]
+	and a
+	jr nz, .asm_74980
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d736
+	res 7, [hl]
+	ld a, $0
+	ld [W_CURMAPSCRIPT], a
+	ret
+.asm_74980
+	ld b, BANK(LoadSpinnerArrowTiles)
+	ld hl, LoadSpinnerArrowTiles
+	jp Bankswitch
+
+ViridianGymScript3: ; 74988 (1d:4988)
+	ld a, [W_ISINBATTLE] ; $d057
+	cp $ff
+	jp z, ViridianGymScript_748d6
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+ViridianGymScript3_74995: ; 74995 (1d:4995)
+	ld a, $c
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d751
+	set 1, [hl]
+	ld bc, (TM_27 << 8) | 1
+	call GiveItem
+	jr nc, .BagFull
+	ld a, $d
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+	ld hl, $d751
+	set 0, [hl]
+	jr .asm_749be
+.BagFull
+	ld a, $e
+	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	call DisplayTextID
+.asm_749be
+	ld hl, W_OBTAINEDBADGES
+	set 7, [hl]
+	ld hl, $d72a
+	set 7, [hl]
+
+	; deactivate gym trainers
+	ld a, [$d751]
+	or %11111100
+	ld [$d751], a
+	ld a, [$d752]
+	or %00000011
+	ld [$d752], a
+
+	ld a, $23
+	ld [$cc4d], a
+	ld a, $15
+	call Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
+	ld hl, $d7eb
+	set 1, [hl]
+	set 7, [hl]
+	jp ViridianGymScript_748d6
+
+ViridianGymTextPointers: ; 749ec (1d:49ec)
+	dw ViridianGymText1
+	dw ViridianGymText2
+	dw ViridianGymText3
+	dw ViridianGymText4
+	dw ViridianGymText5
+	dw ViridianGymText6
+	dw ViridianGymText7
+	dw ViridianGymText8
+	dw ViridianGymText9
+	dw ViridianGymText10
+	dw Predef5CText
+	dw ViridianGymText12
+	dw ViridianGymText13
+	dw ViridianGymText14
+
+ViridianGymTrainerHeaders: ; 74a08 (1d:4a08)
+ViridianGymTrainerHeader0: ; 74a08 (1d:4a08)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText1 ; 0x4afd TextBeforeBattle
+	dw ViridianGymAfterBattleText1 ; 0x4b07 TextAfterBattle
+	dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
+	dw ViridianGymEndBattleText1 ; 0x4b02 TextEndBattle
+
+ViridianGymTrainerHeader1: ; 74a14 (1d:4a14)
+	db $3 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText2 ; 0x4b16 TextBeforeBattle
+	dw ViridianGymAfterBattleText2 ; 0x4b20 TextAfterBattle
+	dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
+	dw ViridianGymEndBattleText2 ; 0x4b1b TextEndBattle
+
+ViridianGymTrainerHeader2: ; 74a20 (1d:4a20)
+	db $4 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText3 ; 0x4b2f TextBeforeBattle
+	dw ViridianGymAfterBattleText3 ; 0x4b39 TextAfterBattle
+	dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
+	dw ViridianGymEndBattleText3 ; 0x4b34 TextEndBattle
+
+ViridianGymTrainerHeader3: ; 74a2c (1d:4a2c)
+	db $5 ; flag's bit
+	db ($2 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText4 ; 0x4b48 TextBeforeBattle
+	dw ViridianGymAfterBattleText4 ; 0x4b52 TextAfterBattle
+	dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
+	dw ViridianGymEndBattleText4 ; 0x4b4d TextEndBattle
+
+ViridianGymTrainerHeader4: ; 74a38 (1d:4a38)
+	db $6 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText5 ; 0x4b61 TextBeforeBattle
+	dw ViridianGymAfterBattleText5 ; 0x4b6b TextAfterBattle
+	dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
+	dw ViridianGymEndBattleText5 ; 0x4b66 TextEndBattle
+
+ViridianGymTrainerHeader5: ; 74a44 (1d:4a44)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText6 ; 0x4b7a TextBeforeBattle
+	dw ViridianGymAfterBattleText6 ; 0x4b84 TextAfterBattle
+	dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
+	dw ViridianGymEndBattleText6 ; 0x4b7f TextEndBattle
+
+ViridianGymTrainerHeader6: ; 74a50 (1d:4a50)
+	db $8 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText7 ; 0x4b93 TextBeforeBattle
+	dw ViridianGymAfterBattleText7 ; 0x4b9d TextAfterBattle
+	dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
+	dw ViridianGymEndBattleText7 ; 0x4b98 TextEndBattle
+
+ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c)
+	db $9 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d751 ; flag's byte
+	dw ViridianGymBattleText8 ; 0x4bac TextBeforeBattle
+	dw ViridianGymAfterBattleText8 ; 0x4bb6 TextAfterBattle
+	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
+	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
+
+	db $ff
+
+ViridianGymText1: ; 74a69 (1d:4a69)
+	db $08 ; asm
+	ld a, [$d751]
+	bit 1, a
+	jr z, .asm_6de66 ; 0x74a6f
+	bit 0, a
+	jr nz, .asm_9fc95 ; 0x74a73
+	call z, ViridianGymScript3_74995
+	call DisableWaitingAfterTextDisplay
+	jr .asm_6dff7 ; 0x74a7b
+.asm_9fc95 ; 0x74a7d
+	ld a, $1
+	ld [$cc3c], a
+	ld hl, ViridianGymText_74ad9
+	call PrintText
+	call GBFadeIn1
+	ld a, $32
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	call UpdateSprites
+	call Delay3
+	call GBFadeOut1
+	jr .asm_6dff7 ; 0x74a9e
+.asm_6de66 ; 0x74aa0
+	ld hl, ViridianGymText_74ace
+	call PrintText
+	ld hl, $d72d
+	set 6, [hl]
+	set 7, [hl]
+	ld hl, ViridianGymText_74ad3
+	ld de, ViridianGymText_74ad3
+	call PreBattleSaveRegisters
+	ldh a, [$8c]
+	ld [$cf13], a
+	call EngageMapTrainer
+	call InitBattleEnemyParameters
+	ld a, $8
+	ld [$d05c], a
+	ld a, $3
+	ld [W_VIRIDIANGYMCURSCRIPT], a
+.asm_6dff7 ; 0x74acb
+	jp TextScriptEnd
+
+ViridianGymText_74ace: ; 74ace (1d:4ace)
+	TX_FAR _ViridianGymText_74ace
+	db "@"
+
+ViridianGymText_74ad3: ; 74ad3 (1d:4ad3)
+	TX_FAR _ViridianGymText_74ad3
+	db $0b, "@"
+
+ViridianGymText_74ad9: ; 74ad9 (1d:4ad9)
+	TX_FAR _ViridianGymText_74ad9
+	db $0d, "@"
+
+ViridianGymText12: ; 74adf (1d:4adf)
+	TX_FAR _ViridianGymText12
+	db "@"
+
+ViridianGymText13: ; 74ae4 (1d:4ae4)
+	TX_FAR _ReceivedTM27Text
+	db $0b
+
+TM27ExplanationText: ; 74ae9 (1d:4ae9)
+	TX_FAR _TM27ExplanationText
+	db "@"
+
+ViridianGymText14: ; 74aee (1d:4aee)
+	TX_FAR _TM27NoRoomText
+	db "@"
+
+ViridianGymText2: ; 74af3 (1d:4af3)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader0
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText1: ; 74afd (1d:4afd)
+	TX_FAR _ViridianGymBattleText1
+	db "@"
+
+ViridianGymEndBattleText1: ; 74b02 (1d:4b02)
+	TX_FAR _ViridianGymEndBattleText1
+	db "@"
+
+ViridianGymAfterBattleText1: ; 74b07 (1d:4b07)
+	TX_FAR _ViridianGymAfterBattleText1
+	db "@"
+
+ViridianGymText3: ; 74b0c (1d:4b0c)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader1
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText2: ; 74b16 (1d:4b16)
+	TX_FAR _ViridianGymBattleText2
+	db "@"
+
+ViridianGymEndBattleText2: ; 74b1b (1d:4b1b)
+	TX_FAR _ViridianGymEndBattleText2
+	db "@"
+
+ViridianGymAfterBattleText2: ; 74b20 (1d:4b20)
+	TX_FAR _ViridianGymAfterBattleText2
+	db "@"
+
+ViridianGymText4: ; 74b25 (1d:4b25)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader2
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText3: ; 74b2f (1d:4b2f)
+	TX_FAR _ViridianGymBattleText3
+	db "@"
+
+ViridianGymEndBattleText3: ; 74b34 (1d:4b34)
+	TX_FAR _ViridianGymEndBattleText3
+	db "@"
+
+ViridianGymAfterBattleText3: ; 74b39 (1d:4b39)
+	TX_FAR _ViridianGymAfterBattleText3
+	db "@"
+
+ViridianGymText5: ; 74b3e (1d:4b3e)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader3
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText4: ; 74b48 (1d:4b48)
+	TX_FAR _ViridianGymBattleText4
+	db "@"
+
+ViridianGymEndBattleText4: ; 74b4d (1d:4b4d)
+	TX_FAR _ViridianGymEndBattleText4
+	db "@"
+
+ViridianGymAfterBattleText4: ; 74b52 (1d:4b52)
+	TX_FAR _ViridianGymAfterBattleText4
+	db "@"
+
+ViridianGymText6: ; 74b57 (1d:4b57)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader4
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText5: ; 74b61 (1d:4b61)
+	TX_FAR _ViridianGymBattleText5
+	db "@"
+
+ViridianGymEndBattleText5: ; 74b66 (1d:4b66)
+	TX_FAR _ViridianGymEndBattleText5
+	db "@"
+
+ViridianGymAfterBattleText5: ; 74b6b (1d:4b6b)
+	TX_FAR _ViridianGymAfterBattleText5
+	db "@"
+
+ViridianGymText7: ; 74b70 (1d:4b70)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader5
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText6: ; 74b7a (1d:4b7a)
+	TX_FAR _ViridianGymBattleText6
+	db "@"
+
+ViridianGymEndBattleText6: ; 74b7f (1d:4b7f)
+	TX_FAR _ViridianGymEndBattleText6
+	db "@"
+
+ViridianGymAfterBattleText6: ; 74b84 (1d:4b84)
+	TX_FAR _ViridianGymAfterBattleText6
+	db "@"
+
+ViridianGymText8: ; 74b89 (1d:4b89)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader6
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText7: ; 74b93 (1d:4b93)
+	TX_FAR _ViridianGymBattleText7
+	db "@"
+
+ViridianGymEndBattleText7: ; 74b98 (1d:4b98)
+	TX_FAR _ViridianGymEndBattleText7
+	db "@"
+
+ViridianGymAfterBattleText7: ; 74b9d (1d:4b9d)
+	TX_FAR _ViridianGymAfterBattleText7
+	db "@"
+
+ViridianGymText9: ; 74ba2 (1d:4ba2)
+	db $08 ; asm
+	ld hl, ViridianGymTrainerHeader7
+	call TalkToTrainer
+	jp TextScriptEnd
+
+ViridianGymBattleText8: ; 74bac (1d:4bac)
+	TX_FAR _ViridianGymBattleText8
+	db "@"
+
+ViridianGymEndBattleText8: ; 74bb1 (1d:4bb1)
+	TX_FAR _ViridianGymEndBattleText8
+	db "@"
+
+ViridianGymAfterBattleText8: ; 74bb6 (1d:4bb6)
+	TX_FAR _ViridianGymAfterBattleText8
+	db "@"
+
+ViridianGymText10: ; 74bbb (1d:4bbb)
+	db $08 ; asm
+	ld a, [$d751]
+	bit 1, a
+	jr nz, .asm_1abd1 ; 0x74bc1
+	ld hl, ViridianGymText_74bd4
+	call PrintText
+	jr .asm_6064d ; 0x74bc9
+.asm_1abd1 ; 0x74bcb
+	ld hl, ViridianGymText_74bd9
+	call PrintText
+.asm_6064d ; 0x74bd1
+	jp TextScriptEnd
+
+ViridianGymText_74bd4: ; 74bd4 (1d:4bd4)
+	TX_FAR _ViridianGymText_74bd4
+	db "@"
+
+ViridianGymText_74bd9: ; 74bd9 (1d:4bd9)
+	TX_FAR _ViridianGymText_74bd9
+	db "@"
--- /dev/null
+++ b/scripts/viridianhouse.asm
@@ -1,0 +1,33 @@
+ViridianHouseScript: ; 1d58a (7:558a)
+	jp EnableAutoTextBoxDrawing
+
+ViridianHouseTextPointers: ; 1d58d (7:558d)
+	dw ViridianHouseText1
+	dw ViridianHouseText2
+	dw ViridianHouseText3
+	dw ViridianHouseText4
+
+ViridianHouseText1: ; 1d595 (7:5595)
+	TX_FAR _ViridianHouseText1
+	db "@"
+
+ViridianHouseText2: ; 1d59a (7:559a)
+	TX_FAR _ViridianHouseText2
+	db "@"
+
+ViridianHouseText3: ; 1d59f (7:559f)
+	db $08 ; asm
+	ld hl, ViridianHouseText_1d5b1
+	call PrintText
+	ld a, SPEAROW
+	call PlayCry
+	call WaitForSoundToFinish
+	jp TextScriptEnd
+
+ViridianHouseText_1d5b1: ; 1d5b1 (7:55b1)
+	TX_FAR _ViridianHouseText_1d5b1
+	db "@"
+
+ViridianHouseText4: ; 1d5b6 (7:55b6)
+	TX_FAR _ViridianHouseText4
+	db "@"
--- /dev/null
+++ b/scripts/viridianmart.asm
@@ -1,0 +1,95 @@
+ViridianMartScript: ; 1d46e (7:546e)
+	call ViridianMartScript_1d47d
+	call EnableAutoTextBoxDrawing
+	ld hl, ViridianMartScriptPointers
+	ld a, [W_VIRIDIANMARKETCURSCRIPT]
+	jp CallFunctionInTable
+
+ViridianMartScript_1d47d: ; 1d47d (7:547d)
+	ld a, [$d74e]
+	bit 0, a
+	jr nz, .asm_1d489 ; 0x1d482 $5
+	ld hl, ViridianMartTextPointers ; $54e0
+	jr .asm_1d48c ; 0x1d487 $3
+.asm_1d489
+	ld hl, ViridianMartTextPointers + $a ; $54ea ; starts at ViridianMartText6
+.asm_1d48c
+	ld a, l
+	ld [W_MAPTEXTPTR], a
+	ld a, h
+	ld [W_MAPTEXTPTR+1], a
+	ret
+
+ViridianMartScriptPointers: ; 1d495 (7:5495)
+	dw ViridianMartScript0
+	dw ViridianMartScript1
+	dw ViridianMartScript2
+
+ViridianMartScript0: ; 1d49b (7:549b)
+	call UpdateSprites
+	ld a, $4
+	ld [$ff8c], a
+	call DisplayTextID
+	ld hl, $ccd3
+	ld de, RLEMovement1d4bb
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $1
+	ld [W_VIRIDIANMARKETCURSCRIPT], a
+	ret
+
+RLEMovement1d4bb: ; 1d4bb (7:54bb)
+	db $20, $01
+	db $40, $02
+	db $ff
+
+ViridianMartScript1: ; 1d4c0 (7:54c0)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	ld a, $5
+	ld [$ff8c], a
+	call DisplayTextID
+	ld bc, (OAKS_PARCEL << 8) + 1
+	call GiveItem
+	ld hl, $d74e
+	set 1, [hl]
+	ld a, $2
+	ld [W_VIRIDIANMARKETCURSCRIPT], a
+	; fallthrough
+ViridianMartScript2: ; 1d4df (7:54df)
+	ret
+
+ViridianMartTextPointers: ; 1d4e0 (7:54e0)
+	dw ViridianMartText1
+	dw ViridianMartText2
+	dw ViridianMartText3
+	dw ViridianMartText4
+	dw ViridianMartText5
+	dw ViridianMartText6
+	dw ViridianMartText2
+	dw ViridianMartText3
+
+ViridianMartText1: ; 1d4f0 (7:54f0)
+	TX_FAR _ViridianMartText1
+	db "@"
+
+ViridianMartText4: ; 1d4f5 (7:54f5)
+	TX_FAR _ViridianMartText4
+	db "@"
+
+ViridianMartText5: ; 1d4fa (7:54fa)
+	TX_FAR ViridianMartParcelQuestText
+	db $11
+	db "@"
+
+ViridianMartText2: ; 1d500 (7:5500)
+	TX_FAR _ViridianMartText2
+	db "@"
+
+ViridianMartText3: ; 1d505 (7:5505)
+	TX_FAR _ViridianMartText3
+	db "@"
--- /dev/null
+++ b/scripts/viridianpokecenter.asm
@@ -1,0 +1,23 @@
+ViridianPokeCenterScript: ; 4425d (11:425d)
+	call Func_22fa
+	jp EnableAutoTextBoxDrawing
+
+ViridianPokecenterTextPointers: ; 44263 (11:4263)
+	dw ViridianPokeCenterText1
+	dw ViridianPokeCenterText2
+	dw ViridianPokeCenterText3
+	dw ViridianPokeCenterText4
+
+ViridianPokeCenterText1: ; 4426b (11:426b)
+	db $ff
+
+ViridianPokeCenterText2: ; 4426c (11:426c)
+	TX_FAR _ViridianPokeCenterText1
+	db "@"
+
+ViridianPokeCenterText3: ; 44271 (11:4271)
+	TX_FAR _ViridianPokeCenterText3
+	db "@"
+
+ViridianPokeCenterText4: ; 44276 (11:4276)
+	db $f6
--- a/text/maps/bike_shop.asm
+++ b/text/maps/bike_shop.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1d810:: ; 98e03 (26:4e03)
+_BikeShopText_1d810:: ; 98e03 (26:4e03)
 	text "Hi! Welcome to"
 	line "our BIKE SHOP."
 
@@ -6,17 +6,17 @@
 	line "the BIKE for you!"
 	prompt
 
-_UnnamedText_1d815:: ; 98e45 (26:4e45)
+_BikeShopText_1d815:: ; 98e45 (26:4e45)
 	text "It's a cool BIKE!"
 	line "Do you want it?"
 	done
 
-_UnnamedText_1d81a:: ; 98e67 (26:4e67)
+_BikeShopText_1d81a:: ; 98e67 (26:4e67)
 	text "Sorry! You can't"
 	line "afford it!"
 	prompt
 
-_UnnamedText_1d81f:: ; 98e83 (26:4e83)
+_BikeShopText_1d81f:: ; 98e83 (26:4e83)
 	text "Oh, that's..."
 
 	para "A BIKE VOUCHER!"
@@ -24,17 +24,17 @@
 	para "OK! Here you go!"
 	prompt
 
-_UnnamedText_1d824:: ; 98eb2 (26:4eb2)
+_BikeShopText_1d824:: ; 98eb2 (26:4eb2)
 	text $52, " exchanged"
 	line "the BIKE VOUCHER"
 	cont "for a BICYCLE.@@"
 
-_UnnamedText_1d82a:: ; 98ee0 (26:4ee0)
+_BikeShopText_1d82a:: ; 98ee0 (26:4ee0)
 	text "Come back again"
 	line "some time!"
 	done
 
-_UnnamedText_1d82f:: ; 98efc (26:4efc)
+_BikeShopText_1d82f:: ; 98efc (26:4efc)
 	text "How do you like"
 	line "your new BICYCLE?"
 
@@ -43,12 +43,12 @@
 	cont "and in caves!"
 	done
 
-_UnnamedText_1d834:: ; 98f4d (26:4f4d)
+_BikeShopText_1d834:: ; 98f4d (26:4f4d)
 	text "You better make"
 	line "room for this!"
 	done
 
-_UnnamedText_1d843:: ; 98f6d (26:4f6d)
+_BikeShopText_1d843:: ; 98f6d (26:4f6d)
 	text "A plain city BIKE"
 	line "is good enough"
 	cont "for me!"
@@ -58,13 +58,13 @@
 	cont "on an MTB!"
 	done
 
-_UnnamedText_1d85c:: ; 98fc1 (26:4fc1)
+_BikeShopText_1d85c:: ; 98fc1 (26:4fc1)
 	text "These BIKEs are"
 	line "cool, but they're"
 	cont "way expensive!"
 	done
 
-_UnnamedText_1d861:: ; 98ff2 (26:4ff2)
+_BikeShopText_1d861:: ; 98ff2 (26:4ff2)
 	text "Wow. Your BIKE is"
 	line "really cool!"
 	done
--- a/text/maps/bills_house.asm
+++ b/text/maps/bills_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1e865:: ; 8d267 (23:5267)
+_BillsHouseText_1e865:: ; 8d267 (23:5267)
 	text "Hiya! I'm a"
 	line "#MON..."
 	cont "...No I'm not!"
@@ -19,7 +19,7 @@
 	line "Help me out here!"
 	done
 
-_UnnamedText_1e86a:: ; 8d345 (23:5345)
+_BillsHouseText_1e86a:: ; 8d345 (23:5345)
 	text "When I'm in the"
 	line "TELEPORTER, go to"
 	cont "my PC and run the"
@@ -27,7 +27,7 @@
 	cont "System!"
 	done
 
-_UnnamedText_1e86f:: ; 8d391 (23:5391)
+_BillsHouseText_1e86f:: ; 8d391 (23:5391)
 	text "No!? Come on, you"
 	line "gotta help a guy"
 	cont "in deep trouble!"
@@ -64,7 +64,7 @@
 	line "much stuff, bud!"
 	done
 
-_UnnamedText_1e8cb:: ; 8d4d0 (23:54d0)
+_BillsHouseText_1e8cb:: ; 8d4d0 (23:54d0)
 	text "That cruise ship,"
 	line "S.S.ANNE, is in"
 	cont "VERMILION CITY."
@@ -79,7 +79,7 @@
 	cont "instead of me?"
 	done
 
-_UnnamedText_1e8da:: ; 8d57f (23:557f)
+_BillsHouseText_1e8da:: ; 8d57f (23:557f)
 	text "BILL: Look, bud,"
 	line "just check out"
 	cont "some of my rare"
--- a/text/maps/celadon_dept_store_roof.asm
+++ b/text/maps/celadon_dept_store_roof.asm
@@ -1,9 +1,9 @@
-_UnnamedText_484ee:: ; 9cbb5 (27:4bb5)
+_CeladonMartRoofText_484ee:: ; 9cbb5 (27:4bb5)
 	text "Give her which"
 	line "drink?"
 	done
 
-_UnnamedText_484f3:: ; 9cbcc (27:4bcc)
+_CeladonMartRoofText_484f3:: ; 9cbcc (27:4bcc)
 	text "Yay!"
 
 	para "FRESH WATER!"
@@ -13,13 +13,13 @@
 	para "You can have this"
 	line "from me!@@"
 
-_UnnamedText_484f9:: ; 9cc06 (27:4c06)
+_CeladonMartRoofText_484f9:: ; 9cc06 (27:4c06)
 	text $52, " received"
 	line "@"
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_484fe:: ; 9cc1a (27:4c1a)
+_CeladonMartRoofText_484fe:: ; 9cc1a (27:4c1a)
 	db $0
 	para "@"
 	TX_RAM $cf4b
@@ -29,7 +29,7 @@
 	para "It can freeze the"
 	line "target sometimes!@@"
 
-_UnnamedText_48504:: ; 9cc5a (27:4c5a)
+_CeladonMartRoofText_48504:: ; 9cc5a (27:4c5a)
 	text "Yay!"
 
 	para "SODA POP!"
@@ -39,13 +39,13 @@
 	para "You can have this"
 	line "from me!@@"
 
-_UnnamedText_4850a:: ; 9cc91 (27:4c91)
+_CeladonMartRoofText_4850a:: ; 9cc91 (27:4c91)
 	text $52, " received"
 	line "@"
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_4850f:: ; 9cca5 (27:4ca5)
+_CeladonMartRoofText_4850f:: ; 9cca5 (27:4ca5)
 	db $0
 	para "@"
 	TX_RAM $cf4b
@@ -55,7 +55,7 @@
 	para "It can spook the"
 	line "target sometimes!@@"
 
-_UnnamedText_48515:: ; 9cce6 (27:4ce6)
+_CeladonMartRoofText_48515:: ; 9cce6 (27:4ce6)
 	text "Yay!"
 
 	para "LEMONADE!"
@@ -69,16 +69,16 @@
 	text $52, " received"
 	line "TM49!@@"
 
-_UnnamedText_48520:: ; 9cd30 (27:4d30)
+_CeladonMartRoofText_48520:: ; 9cd30 (27:4d30)
 	db $0
 	para "TM49 contains"
 	line "TRI ATTACK!@@"
 
-_UnnamedText_48526:: ; 9cd4d (27:4d4d)
+_CeladonMartRoofText_48526:: ; 9cd4d (27:4d4d)
 	text "You don't have"
 	line "space for this!@@"
 
-_UnnamedText_4852c:: ; 9cd6d (27:4d6d)
+_CeladonMartRoofText_4852c:: ; 9cd6d (27:4d6d)
 	text "No thank you!"
 	line "I'm not thirsty"
 	cont "after all!@@"
@@ -93,7 +93,7 @@
 	cont "drives me nuts!"
 	done
 
-_UnnamedText_48598:: ; 9cdee (27:4dee)
+_CeladonMartRoofText_48598:: ; 9cdee (27:4dee)
 	text "I'm thirsty!"
 	line "I want something"
 	cont "to drink!"
--- a/text/maps/celadon_diner.asm
+++ b/text/maps/celadon_diner.asm
@@ -26,7 +26,7 @@
 	cont "at the slots."
 	done
 
-_UnnamedText_491a7:: ; 9e003 (27:6003)
+_CeladonDinerText_491a7:: ; 9e003 (27:6003)
 	text "Go ahead! Laugh!"
 
 	para "I'm flat out"
@@ -52,7 +52,7 @@
 	line "this!"
 	done
 
-_UnnamedText_491b7:: ; 9e0a5 (27:60a5)
+_CeladonDinerText_491b7:: ; 9e0a5 (27:60a5)
 	text "I always thought"
 	line "I was going to"
 	cont "win it back..."
--- a/text/maps/celadon_game_corner.asm
+++ b/text/maps/celadon_game_corner.asm
@@ -7,7 +7,7 @@
 	cont "next door."
 	done
 
-_UnnamedText_48d22:: ; 9d91a (27:591a)
+_CeladonGameCornerText_48d22:: ; 9d91a (27:591a)
 	text "Welcome to ROCKET"
 	line "GAME CORNER!"
 
@@ -19,27 +19,27 @@
 	cont "like some?"
 	done
 
-_UnnamedText_48d27:: ; 9d984 (27:5984)
+_CeladonGameCornerText_48d27:: ; 9d984 (27:5984)
 	text "Thanks! Here are"
 	line "your 50 coins!"
 	done
 
-_UnnamedText_48d2c:: ; 9d9a5 (27:59a5)
+_CeladonGameCornerText_48d2c:: ; 9d9a5 (27:59a5)
 	text "No? Please come"
 	line "play sometime!"
 	done
 
-_UnnamedText_48d31:: ; 9d9c5 (27:59c5)
+_CeladonGameCornerText_48d31:: ; 9d9c5 (27:59c5)
 	text "You can't afford"
 	line "the coins!"
 	done
 
-_UnnamedText_48d36:: ; 9d9e1 (27:59e1)
+_CeladonGameCornerText_48d36:: ; 9d9e1 (27:59e1)
 	text "Oops! Your COIN"
 	line "CASE is full."
 	done
 
-_UnnamedText_48d3b:: ; 9da00 (27:5a00)
+_CeladonGameCornerText_48d3b:: ; 9da00 (27:5a00)
 	text "You don't have a"
 	line "COIN CASE!"
 	done
@@ -58,7 +58,7 @@
 	cont "different odds."
 	done
 
-_UnnamedText_48d9c:: ; 9da8e (27:5a8e)
+_CeladonGameCornerText_48d9c:: ; 9da8e (27:5a8e)
 	text "Kid, do you want"
 	line "to play?"
 	prompt
@@ -67,12 +67,12 @@
 	text $52, " received"
 	line "10 coins!@@"
 
-_UnnamedText_48da7:: ; 9dac0 (27:5ac0)
+_CeladonGameCornerText_48da7:: ; 9dac0 (27:5ac0)
 	text "You don't need my"
 	line "coins!"
 	done
 
-_UnnamedText_48dac:: ; 9dad9 (27:5ad9)
+_CeladonGameCornerText_48dac:: ; 9dad9 (27:5ad9)
 	text "Wins seem to come"
 	line "and go."
 	done
@@ -82,7 +82,7 @@
 	line "wonderful time!"
 	done
 
-_UnnamedText_48dca:: ; 9db11 (27:5b11)
+_CeladonGameCornerText_48dca:: ; 9db11 (27:5b11)
 	text "Hey!"
 
 	para "You have better"
@@ -99,7 +99,7 @@
 	cont "be fooled!"
 	done
 
-_UnnamedText_48dcf:: ; 9dbac (27:5bac)
+_CeladonGameCornerText_48dcf:: ; 9dbac (27:5bac)
 	text "They offer rare"
 	line "#MON that can"
 	cont "be exchanged for"
@@ -115,7 +115,7 @@
 	cont "get hooked!"
 	done
 
-_UnnamedText_48e26:: ; 9dc33 (27:5c33)
+_CeladonGameCornerText_48e26:: ; 9dc33 (27:5c33)
 	text "What's up? Want"
 	line "some coins?"
 	prompt
@@ -124,18 +124,18 @@
 	text $52, " received"
 	line "20 coins!@@"
 
-_UnnamedText_48e31:: ; 9dc66 (27:5c66)
+_CeladonGameCornerText_48e31:: ; 9dc66 (27:5c66)
 	text "You have lots of"
 	line "coins!"
 	done
 
-_UnnamedText_48e36:: ; 9dc7f (27:5c7f)
+_CeladonGameCornerText_48e36:: ; 9dc7f (27:5c7f)
 	text "Darn! I need more"
 	line "coins for the"
 	cont "#MON I want!"
 	done
 
-_UnnamedText_48e88:: ; 9dcad (27:5cad)
+_CeladonGameCornerText_48e88:: ; 9dcad (27:5cad)
 	text "Hey, what? You're"
 	line "throwing me off!"
 	cont "Here are some"
@@ -142,38 +142,38 @@
 	cont "coins, shoo!"
 	prompt
 
-_UnnamedText_48e8d:: ; 9dceb (27:5ceb)
+_CeladonGameCornerText_48e8d:: ; 9dceb (27:5ceb)
 	text $52, " received"
 	line "20 coins!@@"
 
-_UnnamedText_48e93:: ; 9dd02 (27:5d02)
+_CeladonGameCornerText_48e93:: ; 9dd02 (27:5d02)
 	text "You've got your"
 	line "own coins!"
 	done
 
-_UnnamedText_48e98:: ; 9dd1d (27:5d1d)
+_CeladonGameCornerText_48e98:: ; 9dd1d (27:5d1d)
 	text "The trick is to"
 	line "watch the reels"
 	cont "closely!"
 	done
 
-_UnnamedText_48ece:: ; 9dd47 (27:5d47)
+_CeladonGameCornerText_48ece:: ; 9dd47 (27:5d47)
 	text "I'm guarding this"
 	line "poster!"
 	cont "Go away, or else!"
 	done
 
-_UnnamedText_48ed3:: ; 9dd73 (27:5d73)
+_CeladonGameCornerText_48ed3:: ; 9dd73 (27:5d73)
 	text "Dang!"
 	prompt
 
-_UnnamedText_48ed8:: ; 9dd7a (27:5d7a)
+_CeladonGameCornerText_48ed8:: ; 9dd7a (27:5d7a)
 	text "Our hideout might"
 	line "be discovered! I"
 	cont "better tell BOSS!"
 	done
 
-_UnnamedText_48f09:: ; 9ddb0 (27:5db0)
+_CeladonGameCornerText_48f09:: ; 9ddb0 (27:5db0)
 	text "Hey!"
 
 	para "A switch behind"
@@ -180,7 +180,7 @@
 	line "the poster!?"
 	cont "Let's push it!@@"
 
-_UnnamedText_48f19:: ; 9dde2 (27:5de2)
+_CeladonGameCornerText_48f19:: ; 9dde2 (27:5de2)
 	text "Oops! Forgot the"
 	line "COIN CASE!"
 	done
--- a/text/maps/celadon_gym.asm
+++ b/text/maps/celadon_gym.asm
@@ -1,4 +1,4 @@
-_UnnamedText_48a5e:: ; 9d28f (27:528f)
+_CeladonGymText_48a5e:: ; 9d28f (27:528f)
 	text "Hello. Lovely"
 	line "weather isn't it?"
 	cont "It's so pleasant."
@@ -25,7 +25,7 @@
 	line "shall not lose."
 	done
 
-_UnnamedText_48a63:: ; 9d3c2 (27:53c2)
+_CeladonGymText_48a63:: ; 9d3c2 (27:53c2)
 	text "Oh!"
 	line "I concede defeat."
 
@@ -36,7 +36,7 @@
 	line "the RAINBOWBADGE."
 	prompt
 
-_UnnamedText_48a68:: ; 9d418 (27:5418)
+_CeladonGymText_48a68:: ; 9d418 (27:5418)
 	text "You are cataloging"
 	line "#MON? I must"
 	cont "say I'm impressed."
@@ -47,7 +47,7 @@
 	cont "unattractive."
 	done
 
-_UnnamedText_48a6d:: ; 9d481 (27:5481)
+_CeladonGymText9:: ; 9d481 (27:5481)
 	text "The RAINBOWBADGE"
 	line "will make #MON"
 	cont "up to L50 obey."
--- a/text/maps/cerulean_badge_house.asm
+++ b/text/maps/cerulean_badge_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_74e77:: ; 990c9 (26:50c9)
+_CeruleanHouse2Text_74e77:: ; 990c9 (26:50c9)
 	text "#MON BADGEs"
 	line "are owned only by"
 	cont "skilled trainers."
@@ -10,7 +10,7 @@
 	line "amazing secrets!"
 	prompt
 
-_UnnamedText_74e7c:: ; 9913a (26:513a)
+_CeruleanHouse2Text_74e7c:: ; 9913a (26:513a)
 	text "Now then..."
 
 	para "Which of the 8"
@@ -18,12 +18,12 @@
 	cont "describe?"
 	done
 
-_UnnamedText_74e81:: ; 99170 (26:5170)
+_CeruleanHouse2Text_74e81:: ; 99170 (26:5170)
 	text "Come visit me any"
 	line "time you wish."
 	done
 
-_UnnamedText_74e96:: ; 99192 (26:5192)
+_CeruleanHouse2Text_74e96:: ; 99192 (26:5192)
 	text "The ATTACK of all"
 	line "#MON increases"
 	cont "a little bit."
@@ -33,7 +33,7 @@
 	cont "time you desire."
 	prompt
 
-_UnnamedText_74e9b:: ; 991f2 (26:51f2)
+_CeruleanHouse2Text_74e9b:: ; 991f2 (26:51f2)
 	text "#MON up to L30"
 	line "will obey you."
 
@@ -45,7 +45,7 @@
 	cont "of battle."
 	prompt
 
-_UnnamedText_74ea0:: ; 9925d (26:525d)
+_CeruleanHouse2Text_74ea0:: ; 9925d (26:525d)
 	text "The SPEED of all"
 	line "#MON increases"
 	cont "a little bit."
@@ -55,7 +55,7 @@
 	cont "of battle."
 	prompt
 
-_UnnamedText_74ea5:: ; 992b8 (26:52b8)
+_CeruleanHouse2Text_74ea5:: ; 992b8 (26:52b8)
 	text "#MON up to L50"
 	line "will obey you."
 
@@ -67,7 +67,7 @@
 	cont "side of battle."
 	prompt
 
-_UnnamedText_74eaa:: ; 9932a (26:532a)
+_CeruleanHouse2Text_74eaa:: ; 9932a (26:532a)
 	text "The DEFENSE of all"
 	line "#MON increases"
 	cont "a little bit."
@@ -77,7 +77,7 @@
 	cont "of battle."
 	prompt
 
-_UnnamedText_74eaf:: ; 99388 (26:5388)
+_CeruleanHouse2Text_74eaf:: ; 99388 (26:5388)
 	text "#MON up to L70"
 	line "will obey you."
 
@@ -85,13 +85,13 @@
 	line "become unruly!"
 	prompt
 
-_UnnamedText_74eb4:: ; 993c7 (26:53c7)
+_CeruleanHouse2Text_74eb4:: ; 993c7 (26:53c7)
 	text "Your #MON's"
 	line "SPECIAL abilities"
 	cont "increase a bit."
 	prompt
 
-_UnnamedText_74eb9:: ; 993f5 (26:53f5)
+_CeruleanHouse2Text_74eb9:: ; 993f5 (26:53f5)
 	text "All #MON will"
 	line "obey you!"
 	prompt
--- a/text/maps/cerulean_city.asm
+++ b/text/maps/cerulean_city.asm
@@ -1,4 +1,4 @@
-_UnnamedText_19668:: ; a4d2b (29:4d2b)
+_CeruleanCityText_19668:: ; a4d2b (29:4d2b)
 	text $53, ": Yo!"
 	line $52, "!"
 
@@ -16,19 +16,19 @@
 	cont $52, "!"
 	done
 
-_UnnamedText_1966d:: ; a4dbe (29:4dbe)
+_CeruleanCityText_1966d:: ; a4dbe (29:4dbe)
 	text "Hey!"
 	line "Take it easy!"
 	cont "You won already!"
 	prompt
 
-_UnnamedText_19672:: ; a4de3 (29:4de3)
+_CeruleanCityText_19672:: ; a4de3 (29:4de3)
 	text "Heh!"
 	line "You're no match"
 	cont "for my genius!"
 	prompt
 
-_UnnamedText_19677:: ; a4e07 (29:4e07)
+_CeruleanCityText_19677:: ; a4e07 (29:4e07)
 	text $53, ": Hey,"
 	line "guess what?"
 
@@ -58,7 +58,7 @@
 	cont "Smell ya later!"
 	done
 
-_UnnamedText_196d9:: ; a4f27 (29:4f27)
+_CeruleanCityText_196d9:: ; a4f27 (29:4f27)
 	text "Hey! Stay out!"
 	line "It's not your"
 	cont "yard! Huh? Me?"
@@ -85,13 +85,13 @@
 	line "I give it to you!"
 	done
 
-_UnnamedText_196ee:: ; a4feb (29:4feb)
+_CeruleanCityText_196ee:: ; a4feb (29:4feb)
 	text "Stop!"
 	line "I give up! I'll"
 	cont "leave quietly!"
 	prompt
 
-_UnnamedText_196f3:: ; a5010 (29:5010)
+_CeruleanCityText_196f3:: ; a5010 (29:5010)
 	text "OK! I'll return"
 	line "the TM I stole!"
 	prompt
@@ -133,7 +133,7 @@
 	cont "with the ROCKETs!"
 	done
 
-_UnnamedText_19730:: ; a5188 (29:5188)
+_CeruleanCityText_19730:: ; a5188 (29:5188)
 	text "OK! SLOWBRO!"
 	line "Use SONICBOOM!"
 	cont "Come on, SLOWBRO"
@@ -140,13 +140,13 @@
 	cont "pay attention!"
 	done
 
-_UnnamedText_19735:: ; a51c5 (29:51c5)
+_CeruleanCityText_19735:: ; a51c5 (29:51c5)
 	text "SLOWBRO punch!"
 	line "No! You blew it"
 	cont "again!"
 	done
 
-_UnnamedText_1973a:: ; a51ec (29:51ec)
+_CeruleanCityText_1973a:: ; a51ec (29:51ec)
 	text "SLOWBRO, WITHDRAW!"
 	line "No! That's wrong!"
 
@@ -159,22 +159,22 @@
 	cont "as a trainer!"
 	done
 
-_UnnamedText_1976f:: ; a526b (29:526b)
+_CeruleanCityText_1976f:: ; a526b (29:526b)
 	text "SLOWBRO took a"
 	line "snooze..."
 	done
 
-_UnnamedText_19774:: ; a5285 (29:5285)
+_CeruleanCityText_19774:: ; a5285 (29:5285)
 	text "SLOWBRO is"
 	line "loafing around..."
 	done
 
-_UnnamedText_19779:: ; a52a3 (29:52a3)
+_CeruleanCityText_19779:: ; a52a3 (29:52a3)
 	text "SLOWBRO turned"
 	line "away..."
 	done
 
-_UnnamedText_1977e:: ; a52bb (29:52bb)
+_CeruleanCityText_1977e:: ; a52bb (29:52bb)
 	text "SLOWBRO"
 	line "ignored orders..."
 	done
--- a/text/maps/cerulean_gym.asm
+++ b/text/maps/cerulean_gym.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5c7be:: ; 989c1 (26:49c1)
+_CeruleanGymText_5c7be:: ; 989c1 (26:49c1)
 	text "Hi, you're a new"
 	line "face!"
 
@@ -17,7 +17,7 @@
 	cont "#MON!"
 	done
 
-_UnnamedText_5c7c3:: ; 98a7b (26:4a7b)
+_CeruleanGymText_5c7c3:: ; 98a7b (26:4a7b)
 	text "TM11 teaches"
 	line "BUBBLEBEAM!"
 
@@ -25,7 +25,7 @@
 	line "aquatic #MON!"
 	done
 
-_UnnamedText_5c7c8:: ; 98ab0 (26:4ab0)
+_CeruleanGymText_5c7c8:: ; 98ab0 (26:4ab0)
 	text "The CASCADEBADGE"
 	line "makes all #MON"
 	cont "up to L30 obey!"
@@ -49,12 +49,12 @@
 	text $52, " received"
 	line "TM11!@@"
 
-_UnnamedText_5c7d3:: ; 98b90 (26:4b90)
+_CeruleanGymText_5c7d3:: ; 98b90 (26:4b90)
 	text "You better make"
 	line "room for this!"
 	done
 
-_UnnamedText_5c7d8:: ; 98bb0 (26:4bb0)
+_CeruleanGymText_5c7d8:: ; 98bb0 (26:4bb0)
 	text "Wow!"
 	line "You're too much!"
 
@@ -103,7 +103,7 @@
 	line "someone like you!"
 	done
 
-_UnnamedText_5c82a:: ; 98d0a (26:4d0a)
+_CeruleanGymText_5c82a:: ; 98d0a (26:4d0a)
 	text "Yo! Champ in"
 	line "making!"
 
@@ -121,7 +121,7 @@
 	line "electricity!"
 	done
 
-_UnnamedText_5c82f:: ; 98db0 (26:4db0)
+_CeruleanGymText_5c82f:: ; 98db0 (26:4db0)
 	text "You beat MISTY!"
 	line "What'd I tell ya?"
 
--- a/text/maps/cerulean_trashed_house.asm
+++ b/text/maps/cerulean_trashed_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1d6ab:: ; 9875c (26:475c)
+_CeruleanTrashedText_1d6ab:: ; 9875c (26:475c)
 	text "Those miserable"
 	line "ROCKETs!"
 
@@ -14,7 +14,7 @@
 	line "bundle, it did!"
 	done
 
-_UnnamedText_1d6b0:: ; 987e2 (26:47e2)
+_CeruleanTrashedText_1d6b0:: ; 987e2 (26:47e2)
 	text "I figure what's"
 	line "lost is lost!"
 
--- a/text/maps/champion.asm
+++ b/text/maps/champion.asm
@@ -1,4 +1,4 @@
-_UnnamedText_760f4:: ; 860e1 (21:60e1)
+_GaryText_760f4:: ; 860e1 (21:60e1)
 	text $53, ": Hey!"
 
 	para "I was looking"
@@ -35,7 +35,7 @@
 	cont "in the world!"
 	done
 
-_UnnamedText_760f9:: ; 8623b (21:623b)
+_GaryText_760f9:: ; 8623b (21:623b)
 	text "NO!"
 	line "That can't be!"
 	cont "You beat my best!"
@@ -49,7 +49,7 @@
 	cont "It's not fair!"
 	prompt
 
-_UnnamedText_760fe:: ; 862b4 (21:62b4)
+_GaryText_760fe:: ; 862b4 (21:62b4)
 	text "Hahaha!"
 	line "I won, I won!"
 
@@ -65,7 +65,7 @@
 	line "Hahaha!"
 	prompt
 
-_UnnamedText_76103:: ; 8632f (21:632f)
+_GaryText_76103:: ; 8632f (21:632f)
 	text "Why?"
 	line "Why did I lose?"
 
@@ -85,7 +85,7 @@
 	text "OAK: ", $52, "!"
 	done
 
-_UnnamedText_76120:: ; 863ca (21:63ca)
+_GaryText_76120:: ; 863ca (21:63ca)
 	text "OAK: So, you won!"
 	line "Congratulations!"
 	cont "You're the new"
@@ -103,7 +103,7 @@
 	line "come of age!"
 	done
 
-_UnnamedText_76125:: ; 86463 (21:6463)
+_GaryText_76125:: ; 86463 (21:6463)
 	text "OAK: ", $53, "! I'm"
 	line "disappointed!"
 
@@ -129,7 +129,7 @@
 	cont "a champ again!"
 	done
 
-_UnnamedText_7612a:: ; 86567 (21:6567)
+_GaryText_7612a:: ; 86567 (21:6567)
 	text "OAK: ", $52, "!"
 
 	para "You understand"
--- a/text/maps/cinnabar_gym.asm
+++ b/text/maps/cinnabar_gym.asm
@@ -65,18 +65,18 @@
 	line "gift!"
 	done
 
-_UnnamedText_7595f:: ; a0a36 (28:4a36)
+_CinnabarGymText_7595f:: ; a0a36 (28:4a36)
 	text "Do you know how"
 	line "hot #MON fire"
 	cont "breath can get?"
 	done
 
-_UnnamedText_75964:: ; a0a65 (28:4a65)
+_CinnabarGymText_75964:: ; a0a65 (28:4a65)
 	text "Yow!"
 	line "Hot, hot, hot!"
 	prompt
 
-_UnnamedText_75969:: ; a0a7a (28:4a7a)
+_CinnabarGymText_75969:: ; a0a7a (28:4a7a)
 	text "Fire, or to be"
 	line "more precise,"
 	cont "combustion..."
@@ -85,66 +85,66 @@
 	line "blah..."
 	done
 
-_UnnamedText_75994:: ; a0ac0 (28:4ac0)
+_CinnabarGymText_75994:: ; a0ac0 (28:4ac0)
 	text "I was a thief, but"
 	line "I became straight"
 	cont "as a trainer!"
 	done
 
-_UnnamedText_75999:: ; a0af4 (28:4af4)
+_CinnabarGymText_75999:: ; a0af4 (28:4af4)
 	text "I"
 	line "surrender!"
 	prompt
 
-_UnnamedText_7599e:: ; a0b02 (28:4b02)
+_CinnabarGymText_7599e:: ; a0b02 (28:4b02)
 	text "I can't help"
 	line "stealing other"
 	cont "people's #MON!"
 	done
 
-_UnnamedText_759c9:: ; a0b2c (28:4b2c)
+_CinnabarGymText_759c9:: ; a0b2c (28:4b2c)
 	text "You can't win!"
 	line "I have studied"
 	cont "#MON totally!"
 	done
 
-_UnnamedText_759ce:: ; a0b58 (28:4b58)
+_CinnabarGymText_759ce:: ; a0b58 (28:4b58)
 	text "Waah!"
 	line "My studies!"
 	prompt
 
-_UnnamedText_759d3:: ; a0b6b (28:4b6b)
+_CinnabarGymText_759d3:: ; a0b6b (28:4b6b)
 	text "My theories are"
 	line "too complicated"
 	cont "for you!"
 	done
 
-_UnnamedText_759fe:: ; a0b95 (28:4b95)
+_CinnabarGymText_759fe:: ; a0b95 (28:4b95)
 	text "I just like using"
 	line "fire #MON!"
 	done
 
-_UnnamedText_75a03:: ; a0bb3 (28:4bb3)
+_CinnabarGymText_75a03:: ; a0bb3 (28:4bb3)
 	text "Too hot"
 	line "to handle!"
 	prompt
 
-_UnnamedText_75a08:: ; a0bc7 (28:4bc7)
+_CinnabarGymText_75a08:: ; a0bc7 (28:4bc7)
 	text "I wish there was"
 	line "a thief #MON!"
 	cont "I'd use that!"
 	done
 
-_UnnamedText_75a33:: ; a0bf4 (28:4bf4)
+_CinnabarGymText_75a33:: ; a0bf4 (28:4bf4)
 	text "I know why BLAINE"
 	line "became a trainer!"
 	done
 
-_UnnamedText_75a38:: ; a0c19 (28:4c19)
+_CinnabarGymText_75a38:: ; a0c19 (28:4c19)
 	text "Ow!"
 	prompt
 
-_UnnamedText_75a3d:: ; a0c1e (28:4c1e)
+_CinnabarGymText_75a3d:: ; a0c1e (28:4c1e)
 	text "BLAINE was lost"
 	line "in the mountains"
 	cont "when a fiery bird"
@@ -155,40 +155,40 @@
 	cont "his way down!"
 	done
 
-_UnnamedText_75a68:: ; a0c90 (28:4c90)
+_CinnabarGymText_75a68:: ; a0c90 (28:4c90)
 	text "I've been to many"
 	line "GYMs, but this is"
 	cont "my favorite!"
 	done
 
-_UnnamedText_75a6d:: ; a0cc1 (28:4cc1)
+_CinnabarGymText_75a6d:: ; a0cc1 (28:4cc1)
 	text "Yowza!"
 	line "Too hot!"
 	prompt
 
-_UnnamedText_75a72:: ; a0cd2 (28:4cd2)
+_CinnabarGymText_75a72:: ; a0cd2 (28:4cd2)
 	text "Us fire #MON"
 	line "fans like PONYTA"
 	cont "and NINETALES!"
 	done
 
-_UnnamedText_75a9d:: ; a0d00 (28:4d00)
+_CinnabarGymText_75a9d:: ; a0d00 (28:4d00)
 	text "Fire is weak"
 	line "against H2O!"
 	done
 
-_UnnamedText_75aa2:: ; a0d1b (28:4d1b)
+_CinnabarGymText_75aa2:: ; a0d1b (28:4d1b)
 	text "Oh!"
 	line "Snuffed out!"
 	prompt
 
-_UnnamedText_75aa7:: ; a0d2d (28:4d2d)
+_CinnabarGymText_75aa7:: ; a0d2d (28:4d2d)
 	text "Water beats fire!"
 	line "But, fire melts"
 	cont "ice #MON!"
 	done
 
-_UnnamedText_75ac2:: ; a0d5a (28:4d5a)
+_CinnabarGymText_75ac2:: ; a0d5a (28:4d5a)
 	text "Yo! Champ in"
 	line "making!"
 
@@ -203,7 +203,7 @@
 	line "some BURN HEALs!"
 	done
 
-_UnnamedText_75ac7:: ; a0dd9 (28:4dd9)
+_CinnabarGymText_75ac7:: ; a0dd9 (28:4dd9)
 	text $52, "! You beat"
 	line "that fire brand!"
 	done
--- a/text/maps/cinnabar_lab_fossil_room.asm
+++ b/text/maps/cinnabar_lab_fossil_room.asm
@@ -1,4 +1,4 @@
-_UnnamedText_75dc6:: ; a10e8 (28:50e8)
+_Lab4Text_75dc6:: ; a10e8 (28:50e8)
 	text "Hiya!"
 
 	para "I am important"
@@ -11,11 +11,11 @@
 	line "fossil for me?"
 	prompt
 
-_UnnamedText_75dcb:: ; a1145 (28:5145)
+_Lab4Text_75dcb:: ; a1145 (28:5145)
 	text "No! Is too bad!"
 	done
 
-_UnnamedText_75dd0:: ; a1156 (28:5156)
+_Lab4Text_75dd0:: ; a1156 (28:5156)
 	text "I take a little"
 	line "time!"
 
@@ -23,7 +23,7 @@
 	line "little while!"
 	done
 
-_UnnamedText_75dd5:: ; a118d (28:518d)
+_Lab4Text_75dd5:: ; a118d (28:518d)
 	text "Where were you?"
 
 	para "Your fossil is"
@@ -35,7 +35,7 @@
 	line "like I think!"
 	prompt
 
-_UnnamedText_610ae:: ; a11d6 (28:51d6)
+_Lab4Text_610ae:: ; a11d6 (28:51d6)
 	text "Oh! That is"
 	line "@"
 	TX_RAM $cd6d
@@ -54,7 +54,7 @@
 	cont "again!"
 	done
 
-_UnnamedText_610b3:: ; a1259 (28:5259)
+_Lab4Text_610b3:: ; a1259 (28:5259)
 	text "So! You hurry and"
 	line "give me that!"
 
@@ -64,7 +64,7 @@
 	text "!"
 	prompt
 
-_UnnamedText_610b8:: ; a128f (28:528f)
+_Lab4Text_610b8:: ; a128f (28:528f)
 	text "I take a little"
 	line "time!"
 
@@ -72,7 +72,7 @@
 	line "little while!"
 	done
 
-_UnnamedText_610bd:: ; a12c6 (28:52c6)
+_Lab4Text_610bd:: ; a12c6 (28:52c6)
 	text "Aiyah! You come"
 	line "again!"
 	done
--- a/text/maps/copycats_house_2f.asm
+++ b/text/maps/copycats_house_2f.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5ccd4:: ; a15ad (28:55ad)
+_CopycatsHouse2FText_5ccd4:: ; a15ad (28:55ad)
 	text $52, ": Hi! Do"
 	line "you like #MON?"
 
@@ -79,7 +79,7 @@
 	cont "on his head!"
 	done
 
-_UnnamedText_5cd17:: ; a17ef (28:57ef)
+_CopycatsHouse2FText_5cd17:: ; a17ef (28:57ef)
 	text "..."
 
 	para "My Secrets!"
@@ -91,7 +91,7 @@
 	cont "CLEFAIRY!"
 	done
 
-_UnnamedText_5cd1c:: ; a1842 (28:5842)
+_CopycatsHouse2FText_5cd1c:: ; a1842 (28:5842)
 	text "Huh? Can't see!"
 	done
 
--- a/text/maps/daycare_1.asm
+++ b/text/maps/daycare_1.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5640f:: ; 8ab95 (22:6b95)
+_DayCareMText_5640f:: ; 8ab95 (22:6b95)
 	text "I run a DAYCARE."
 	line "Would you like me"
 	cont "to raise one of"
@@ -5,12 +5,12 @@
 	cont "your #MON?"
 	done
 
-_UnnamedText_56414:: ; 8abd4 (22:6bd4)
+_DayCareMText_56414:: ; 8abd4 (22:6bd4)
 	text "Which #MON"
 	line "should I raise?"
 	prompt
 
-_UnnamedText_56419:: ; 8abf0 (22:6bf0)
+_DayCareMText_56419:: ; 8abf0 (22:6bf0)
 	text "Fine, I'll look"
 	line "after @"
 	TX_RAM $cd6d
@@ -18,12 +18,12 @@
 	cont "for a while."
 	prompt
 
-_UnnamedText_5641e:: ; 8ac19 (22:6c19)
+_DayCareMText_5641e:: ; 8ac19 (22:6c19)
 	text "Come see me in"
 	line "a while."
 	done
 
-_UnnamedText_56423:: ; 8ac32 (22:6c32)
+_DayCareMText_56423:: ; 8ac32 (22:6c32)
 	text "Your @"
 	TX_RAM $cd6d
 	db $0
@@ -32,7 +32,7 @@
 	para "By level, it's"
 	line "grown by @"
 
-UnnamedText_8ac67:: ; 8ac67 (22:6c67)
+DayCareMText_8ac67:: ; 8ac67 (22:6c67)
 	TX_NUM $cd3e,$1,$3
 	text "!"
 
@@ -39,7 +39,7 @@
 	para "Aren't I great?"
 	prompt
 
-_UnnamedText_56428:: ; 8ac7d (22:6c7d)
+_DayCareMText_56428:: ; 8ac7d (22:6c7d)
 	text "You owe me ¥@"
 	db $2, $3f, $cd, $c2
 	db $0
@@ -47,7 +47,7 @@
 	cont "of this #MON."
 	done
 
-_UnnamedText_5642d:: ; 8acae (22:6cae)
+_DayCareMText_5642d:: ; 8acae (22:6cae)
 	text $52, " got"
 	line "@"
 	TX_RAM W_DAYCAREMONNAME
@@ -54,7 +54,7 @@
 	text " back!"
 	done
 
-_UnnamedText_56432:: ; 8acc1 (22:6cc1)
+_DayCareMText_56432:: ; 8acc1 (22:6cc1)
 	text "Back already?"
 	line "Your @"
 	TX_RAM $cd6d
--- a/text/maps/daycare_2.asm
+++ b/text/maps/daycare_2.asm
@@ -1,33 +1,33 @@
-_UnnamedText_56437:: ; 8c000 (23:4000)
+_DayCareMText_56437:: ; 8c000 (23:4000)
 	text "All right then,"
 	line "@@"
 
-_UnnamedText_5643b:: ; 8c013 (23:4013)
+_DayCareMText_5643b:: ; 8c013 (23:4013)
 	text "come again."
 	done
 
-_UnnamedText_56440:: ; 8c020 (23:4020)
+_DayCareMText_56440:: ; 8c020 (23:4020)
 	text "You have no room"
 	line "for this #MON!"
 	done
 
-_UnnamedText_56445:: ; 8c041 (23:4041)
+_DayCareMText_56445:: ; 8c041 (23:4041)
 	text "You only have one"
 	line "#MON with you."
 	done
 
-_UnnamedText_5644a:: ; 8c063 (23:4063)
+_DayCareMText_5644a:: ; 8c063 (23:4063)
 	text "I can't accept a"
 	line "#MON that"
 	cont "knows an HM move."
 	done
 
-_UnnamedText_5644f:: ; 8c090 (23:4090)
+_DayCareMText_5644f:: ; 8c090 (23:4090)
 	text "Thank you! Here's"
 	line "your #MON!"
 	prompt
 
-_UnnamedText_56454:: ; 8c0ad (23:40ad)
+_DayCareMText_56454:: ; 8c0ad (23:40ad)
 	text "Hey, you don't"
 	line "have enough ¥!"
 	done
--- a/text/maps/fighting_dojo.asm
+++ b/text/maps/fighting_dojo.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5ce8e:: ; a1852 (28:5852)
+_FightingDojoText_5ce8e:: ; a1852 (28:5852)
 	text "Grunt!"
 
 	para "I am the KARATE"
@@ -12,12 +12,12 @@
 	para "Fwaaa!"
 	done
 
-_UnnamedText_5ce93:: ; a18ba (28:58ba)
+_FightingDojoText_5ce93:: ; a18ba (28:58ba)
 	text "Hwa!"
 	line "Arrgh! Beaten!"
 	prompt
 
-_UnnamedText_5ce98:: ; a18cf (28:58cf)
+_FightingDojoText_5ce98:: ; a18cf (28:58cf)
 	text "Indeed, I have"
 	line "lost!"
 
@@ -34,7 +34,7 @@
 	line "one you like!"
 	done
 
-_UnnamedText_5ce9d:: ; a1972 (28:5972)
+_FightingDojoText_5ce9d:: ; a1972 (28:5972)
 	text "Ho!"
 
 	para "Stay and train at"
--- a/text/maps/fuchsia_city.asm
+++ b/text/maps/fuchsia_city.asm
@@ -114,7 +114,7 @@
 	cont "from a fossil."
 	prompt
 
-_UnnamedText_19b2a:: ; a61ca (29:61ca)
+_FuchsiaCityText_19b2a:: ; a61ca (29:61ca)
 	text "..."
 	done
 
--- a/text/maps/fuchsia_fishing_house.asm
+++ b/text/maps/fuchsia_fishing_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_561bd:: ; a0695 (28:4695)
+_FuchsiaHouse3Text_561bd:: ; a0695 (28:4695)
 	text "I'm the FISHING"
 	line "GURU's older"
 	cont "brother!"
@@ -10,7 +10,7 @@
 	line "fish?"
 	done
 
-_UnnamedText_561c2:: ; a06e8 (28:46e8)
+_FuchsiaHouse3Text_561c2:: ; a06e8 (28:46e8)
 	text "Grand! I like"
 	line "your style!"
 
@@ -22,12 +22,12 @@
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_56212:: ; a0737 (28:4737)
+_FuchsiaHouse3Text_56212:: ; a0737 (28:4737)
 	text "Oh... That's so"
 	line "disappointing..."
 	done
 
-_UnnamedText_56217:: ; a0758 (28:4758)
+_FuchsiaHouse3Text_56217:: ; a0758 (28:4758)
 	text "Hello there,"
 	line $52, "!"
 
@@ -35,7 +35,7 @@
 	line "biting?"
 	done
 
-_UnnamedText_5621c:: ; a0782 (28:4782)
+_FuchsiaHouse3Text_5621c:: ; a0782 (28:4782)
 	text "Oh no!"
 
 	para "You have no room"
--- a/text/maps/fujis_house.asm
+++ b/text/maps/fujis_house.asm
@@ -1,16 +1,16 @@
-_UnnamedText_1d8d1:: ; 99e8d (26:5e8d)
+_LavenderHouse1Text_1d8d1:: ; 99e8d (26:5e8d)
 	text "That's odd, MR.FUJI"
 	line "isn't here."
 	cont "Where'd he go?"
 	done
 
-_UnnamedText_1d8d6:: ; 99eba (26:5eba)
+_LavenderHouse1Text_1d8d6:: ; 99eba (26:5eba)
 	text "MR.FUJI had been"
 	line "praying alone for"
 	cont "CUBONE's mother."
 	done
 
-_UnnamedText_1d8f4:: ; 99eee (26:5eee)
+_LavenderHouse1Text_1d8f4:: ; 99eee (26:5eee)
 	text "This is really"
 	line "MR.FUJI's house."
 
@@ -21,7 +21,7 @@
 	cont "orphaned #MON!"
 	done
 
-_UnnamedText_1d8f9:: ; 99f4b (26:5f4b)
+_LavenderHouse1Text_1d8f9:: ; 99f4b (26:5f4b)
 	text "It's so warm!"
 	line "#MON are so"
 	cont "nice to hug!"
@@ -33,7 +33,7 @@
 _LavenderHouse1Text4:: ; 99f85 (26:5f85)
 	text "NIDORINO: Gaoo!@@"
 
-_UnnamedText_1d94c:: ; 99f97 (26:5f97)
+_LavenderHouse1Text_1d94c:: ; 99f97 (26:5f97)
 	text "MR.FUJI: ", $52, "."
 
 	para "Your #DEX quest"
--- a/text/maps/lavender_house.asm
+++ b/text/maps/lavender_house.asm
@@ -1,7 +1,7 @@
 _LavenderHouse2Text1:: ; 9a238 (26:6238)
 	text "CUBONE: Kyarugoo!@@"
 
-_UnnamedText_1d9dc:: ; 9a24c (26:624c)
+_LavenderHouse2Text_1d9dc:: ; 9a24c (26:624c)
 	text "I hate those"
 	line "horrible ROCKETs!"
 
@@ -13,7 +13,7 @@
 	cont "from TEAM ROCKET!"
 	done
 
-_UnnamedText_1d9e1:: ; 9a2b9 (26:62b9)
+_LavenderHouse2Text_1d9e1:: ; 9a2b9 (26:62b9)
 	text "The GHOST of"
 	line "#MON TOWER is"
 	cont "gone!"
--- a/text/maps/lavender_mart.asm
+++ b/text/maps/lavender_mart.asm
@@ -14,13 +14,13 @@
 	line "I can get them?"
 	done
 
-_UnnamedText_5c953:: ; 9a1b4 (26:61b4)
+_LavenderMart_5c953:: ; 9a1b4 (26:61b4)
 	text "You know REVIVE?"
 	line "It revives any"
 	cont "fainted #MON!"
 	done
 
-_UnnamedText_5c958:: ; 9a1e3 (26:61e3)
+_LavenderMart_5c958:: ; 9a1e3 (26:61e3)
 	text "I found a NUGGET"
 	line "in the mountains."
 
--- a/text/maps/lavender_town.asm
+++ b/text/maps/lavender_town.asm
@@ -1,14 +1,14 @@
-_UnnamedText_4413c:: ; a5482 (29:5482)
+_LavenderTownText_4413c:: ; a5482 (29:5482)
 	text "Do you believe in"
 	line "GHOSTs?"
 	done
 
-_UnnamedText_44141:: ; a549d (29:549d)
+_LavenderTownText_44141:: ; a549d (29:549d)
 	text "Really? So there"
 	line "are believers..."
 	done
 
-_UnnamedText_44146:: ; a54c0 (29:54c0)
+_LavenderTownText_44146:: ; a54c0 (29:54c0)
 	text "Hahaha, I guess"
 	line "not."
 
--- a/text/maps/lorelei.asm
+++ b/text/maps/lorelei.asm
@@ -36,7 +36,7 @@
 	cont "LEAGUE power!"
 	done
 
-_UnnamedText_7627b:: ; 86729 (21:6729)
+_LoreleiText2:: ; 86729 (21:6729)
 	text "Someone's voice:"
 	line "Don't run away!"
 	done
--- a/text/maps/mansion_2f.asm
+++ b/text/maps/mansion_2f.asm
@@ -32,17 +32,17 @@
 	cont "#MON, MEW."
 	done
 
-_UnnamedText_520c2:: ; 853c7 (21:53c7)
+_Mansion2Text_520c2:: ; 853c7 (21:53c7)
 	text "A secret switch!"
 
 	para "Press it?"
 	done
 
-_UnnamedText_520c7:: ; 853e3 (21:53e3)
+_Mansion2Text_520c7:: ; 853e3 (21:53e3)
 	text "Who wouldn't?"
 	prompt
 
-_UnnamedText_520cc:: ; 853f1 (21:53f1)
+_Mansion2Text_520cc:: ; 853f1 (21:53f1)
 	text "Not quite yet!"
 	done
 
--- a/text/maps/mt_moon_b1f.asm
+++ b/text/maps/mt_moon_b1f.asm
@@ -1,4 +1,4 @@
-_UnnamedText_51a48:: ; 8095c (20:495c)
+_MtMoonText1:: ; 8095c (20:495c)
 	db $0
 	done
 
--- a/text/maps/mt_moon_b2f.asm
+++ b/text/maps/mt_moon_b2f.asm
@@ -1,24 +1,24 @@
-_UnnamedText_49f24:: ; 8095e (20:495e)
+_MtMoon3Text_49f24:: ; 8095e (20:495e)
 	text "You want the"
 	line "DOME FOSSIL?"
 	done
 
-_UnnamedText_49f64:: ; 80979 (20:4979)
+_MtMoon3Text_49f64:: ; 80979 (20:4979)
 	text "You want the"
 	line "HELIX FOSSIL?"
 	done
 
-_UnnamedText_49f6f:: ; 80995 (20:4995)
+_MtMoon3Text_49f6f:: ; 80995 (20:4995)
 	text $52, " got the"
 	line "@"
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_49f7f:: ; 809a8 (20:49a8)
+_MtMoon3Text_49f7f:: ; 809a8 (20:49a8)
 	text "Look, you've got"
 	line "no room for this.@@"
 
-_UnnamedText_49f85:: ; 809cc (20:49cc)
+_MtMoon3Text_49f85:: ; 809cc (20:49cc)
 	text "Hey, stop!"
 
 	para "I found these"
@@ -26,18 +26,18 @@
 	cont "both mine!"
 	done
 
-_UnnamedText_49f8a:: ; 80a01 (20:4a01)
+_MtMoon3Text_49f8a:: ; 80a01 (20:4a01)
 	text "OK!"
 	line "I'll share!"
 	prompt
 
-_UnnamedText_49f8f:: ; 80a11 (20:4a11)
+_MtMoon3Text_49f8f:: ; 80a11 (20:4a11)
 	text "We'll each take"
 	line "one!"
 	cont "No being greedy!"
 	done
 
-_UnnamedText_49f94:: ; 80a37 (20:4a37)
+_MtMoon3Text_49f94:: ; 80a37 (20:4a37)
 	text "Far away, on"
 	line "CINNABAR ISLAND,"
 	cont "there's a #MON"
@@ -48,7 +48,7 @@
 	cont "fossils."
 	done
 
-_UnnamedText_49f99:: ; 80a93 (20:4a93)
+_MtMoon3Text_49f99:: ; 80a93 (20:4a93)
 	text "All right. Then"
 	line "this is mine!@@"
 
--- a/text/maps/mt_moon_pokecenter.asm
+++ b/text/maps/mt_moon_pokecenter.asm
@@ -16,7 +16,7 @@
 	cont "news!"
 	done
 
-_UnnamedText_4935c:: ; 8a976 (22:6976)
+_MtMoonPokecenterText_4935c:: ; 8a976 (22:6976)
 	text "MAN: Hello, there!"
 	line "Have I got a deal"
 	cont "just for you!"
@@ -27,18 +27,18 @@
 	cont "What do you say?"
 	done
 
-_UnnamedText_49361:: ; 8a9ec (22:69ec)
+_MtMoonPokecenterText_49361:: ; 8a9ec (22:69ec)
 	text "No? I'm only"
 	line "doing this as a"
 	cont "favor to you!"
 	done
 
-_UnnamedText_49366:: ; 8aa17 (22:6a17)
+_MtMoonPokecenterText_49366:: ; 8aa17 (22:6a17)
 	text "You'll need more"
 	line "money than that!"
 	done
 
-_UnnamedText_4936b:: ; 8aa39 (22:6a39)
+_MtMoonPokecenterText_4936b:: ; 8aa39 (22:6a39)
 	text "MAN: Well, I don't"
 	line "give refunds!"
 	done
--- a/text/maps/museum_1f.asm
+++ b/text/maps/museum_1f.asm
@@ -1,8 +1,8 @@
-_UnnamedText_5c21a:: ; 9652c (25:652c)
+_Museum1FText_5c21a:: ; 9652c (25:652c)
 	text "Come again!"
 	done
 
-_UnnamedText_5c21f:: ; 96539 (25:6539)
+_Museum1FText_5c21f:: ; 96539 (25:6539)
 	text "It's ¥50 for a"
 	line "child's ticket."
 
@@ -10,17 +10,17 @@
 	line "come in?"
 	done
 
-_UnnamedText_5c224:: ; 96572 (25:6572)
+_Museum1FText_5c224:: ; 96572 (25:6572)
 	text "Right, ¥50!"
 	line "Thank you!"
 	done
 
-_UnnamedText_5c229:: ; 9658a (25:658a)
+_Museum1FText_5c229:: ; 9658a (25:658a)
 	text "You don't have"
 	line "enough money."
 	prompt
 
-_UnnamedText_5c22e:: ; 965a7 (25:65a7)
+_Museum1FText_5c22e:: ; 965a7 (25:65a7)
 	text "You can't sneak"
 	line "in the back way!"
 
@@ -29,7 +29,7 @@
 	cont "AMBER is?"
 	done
 
-_UnnamedText_5c233:: ; 965f1 (25:65f1)
+_Museum1FText_5c233:: ; 965f1 (25:65f1)
 	text "There's a lab"
 	line "somewhere trying"
 	cont "to resurrect"
@@ -37,28 +37,28 @@
 	cont "from AMBER."
 	done
 
-_UnnamedText_5c238:: ; 96636 (25:6636)
+_Museum1FText_5c238:: ; 96636 (25:6636)
 	text "AMBER is fossil-"
 	line "ized tree sap."
 	done
 
-_UnnamedText_5c23d:: ; 96657 (25:6657)
+_Museum1FText_5c23d:: ; 96657 (25:6657)
 	text "Please go to the"
 	line "other side!"
 	done
 
-_UnnamedText_5c242:: ; 96675 (25:6675)
+_Museum1FText_5c242:: ; 96675 (25:6675)
 	text "Take plenty of"
 	line "time to look!"
 	done
 
-_UnnamedText_5c251:: ; 96693 (25:6693)
+_Museum1FText_5c251:: ; 96693 (25:6693)
 	text "That is one"
 	line "magnificent"
 	cont "fossil!"
 	done
 
-_UnnamedText_5c28e:: ; 966b4 (25:66b4)
+_Museum1FText_5c28e:: ; 966b4 (25:66b4)
 	text "Ssh! I think that"
 	line "this chunk of"
 	cont "AMBER contains"
@@ -84,17 +84,17 @@
 	text $52, " received"
 	line "OLD AMBER!@@"
 
-_UnnamedText_5c299:: ; 967a8 (25:67a8)
+_Museum1FText_5c299:: ; 967a8 (25:67a8)
 	text "Ssh! Get the OLD"
 	line "AMBER checked!"
 	done
 
-_UnnamedText_5c29e:: ; 967c9 (25:67c9)
+_Museum1FText_5c29e:: ; 967c9 (25:67c9)
 	text "You don't have"
 	line "space for this!"
 	done
 
-_UnnamedText_5c2ad:: ; 967e8 (25:67e8)
+_Museum1FText_5c2ad:: ; 967e8 (25:67e8)
 	text "We are proud of 2"
 	line "fossils of very"
 	cont "rare, prehistoric"
@@ -101,7 +101,7 @@
 	cont "#MON!"
 	done
 
-_UnnamedText_5c2bc:: ; 96823 (25:6823)
+_Museum1FText_5c2bc:: ; 96823 (25:6823)
 	text "The AMBER is"
 	line "clear and gold!"
 	done
--- a/text/maps/name_rater.asm
+++ b/text/maps/name_rater.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1dab3:: ; 9a308 (26:6308)
+_NameRaterText_1dab3:: ; 9a308 (26:6308)
 	text "Hello, hello!"
 	line "I am the official"
 	cont "NAME RATER!"
@@ -8,12 +8,12 @@
 	cont "your #MON?"
 	done
 
-_UnnamedText_1dab8:: ; 9a361 (26:6361)
+_NameRaterText_1dab8:: ; 9a361 (26:6361)
 	text "Which #MON"
 	line "should I look at?"
 	prompt
 
-_UnnamedText_1dabd:: ; 9a37f (26:637f)
+_NameRaterText_1dabd:: ; 9a37f (26:637f)
 	TX_RAM $cd6d
 	text ", is it?"
 	line "That is a decent"
@@ -26,12 +26,12 @@
 	para "How about it?"
 	done
 
-_UnnamedText_1dac2:: ; 9a3e5 (26:63e5)
+_NameRaterText_1dac2:: ; 9a3e5 (26:63e5)
 	text "Fine! What should"
 	line "we name it?"
 	prompt
 
-_UnnamedText_1dac7:: ; 9a404 (26:6404)
+_NameRaterText_1dac7:: ; 9a404 (26:6404)
 	text "OK! This #MON"
 	line "has been renamed"
 	cont "@"
@@ -42,12 +42,12 @@
 	line "name than before!"
 	done
 
-_UnnamedText_1dacc:: ; 9a44c (26:644c)
+_NameRaterText_1dacc:: ; 9a44c (26:644c)
 	text "Fine! Come any"
 	line "time you like!"
 	done
 
-_UnnamedText_1dad1:: ; 9a46b (26:646b)
+_NameRaterText_1dad1:: ; 9a46b (26:646b)
 	TX_RAM $cd6d
 	text ", is it?"
 	line "That is a truly"
--- a/text/maps/oaks_lab.asm
+++ b/text/maps/oaks_lab.asm
@@ -59,13 +59,13 @@
 	line "last #MON!"
 	done
 
-_UnnamedText_1d2f0:: ; 94ed2 (25:4ed2)
+_OaksLabText_1d2f0:: ; 94ed2 (25:4ed2)
 	text "OAK: Now, ", $52, ","
 	line "which #MON do"
 	cont "you want?"
 	done
 
-_UnnamedText_1d2f5:: ; 94ef8 (25:4ef8)
+_OaksLabText_1d2f5:: ; 94ef8 (25:4ef8)
 	text "OAK: If a wild"
 	line "#MON appears,"
 	cont "your #MON can"
@@ -72,7 +72,7 @@
 	cont "fight against it!"
 	done
 
-_UnnamedText_1d2fa:: ; 94f36 (25:4f36)
+_OaksLabText_1d2fa:: ; 94f36 (25:4f36)
 	text "OAK: ", $52, ","
 	line "raise your young"
 	cont "#MON by making"
@@ -153,7 +153,7 @@
 	cont "coming along."
 	done
 
-_UnnamedText_1d31d:: ; 951e9 (25:51e9)
+_OaksLabText_1d31d:: ; 951e9 (25:51e9)
 	text "OAK: Good to see "
 	line "you! How is your "
 	cont "#DEX coming? "
@@ -161,7 +161,7 @@
 	cont "a look!"
 	prompt
 
-_UnnamedText_1d32c:: ; 95236 (25:5236)
+_OaksLabText_1d32c:: ; 95236 (25:5236)
 	text "It's encyclopedia-"
 	line "like, but the"
 	cont "pages are blank!"
@@ -171,7 +171,7 @@
 	text "?"
 	done
 
-_UnnamedText_1d340:: ; 9526b (25:526b)
+_OaksLabText_1d340:: ; 9526b (25:526b)
 	text "PROF.OAK is the"
 	line "authority on"
 	cont "#MON!"
@@ -253,7 +253,7 @@
 	line "you on!"
 	done
 
-_UnnamedText_1d3be:: ; 954b6 (25:54b6)
+_OaksLabText_1d3be:: ; 954b6 (25:54b6)
 	text "WHAT?"
 	line "Unbelievable!"
 	cont "I picked the"
@@ -260,7 +260,7 @@
 	cont "wrong #MON!"
 	prompt
 
-_UnnamedText_1d3c3:: ; 954e4 (25:54e4)
+_OaksLabText_1d3c3:: ; 954e4 (25:54e4)
 	text $53, ": Yeah! Am"
 	line "I great or what?"
 	prompt
@@ -353,12 +353,12 @@
 	cont $52, "! Hahaha!"
 	done
 
-_UnnamedText_1d405:: ; 957eb (25:57eb)
+_OaksLabText_1d405:: ; 957eb (25:57eb)
 	text "I study #MON as"
 	line "PROF.OAK's AIDE."
 	done
 
-_UnnamedText_441cc:: ; 9580c (25:580c)
+_OaksLabText_441cc:: ; 9580c (25:580c)
 	text "#DEX comp-"
 	line "letion is:"
 
@@ -373,7 +373,7 @@
 	line "Rating:"
 	prompt
 
-_UnnamedText_44201:: ; 95858 (25:5858)
+_OaksLabText_44201:: ; 95858 (25:5858)
 	text "You still have"
 	line "lots to do."
 	cont "Look for #MON"
@@ -380,7 +380,7 @@
 	cont "in grassy areas!"
 	done
 
-_UnnamedText_44206:: ; 95893 (25:5893)
+_OaksLabText_44206:: ; 95893 (25:5893)
 	text "You're on the"
 	line "right track! "
 	cont "Get a FLASH HM"
@@ -387,7 +387,7 @@
 	cont "from my AIDE!"
 	done
 
-_UnnamedText_4420b:: ; 958cc (25:58cc)
+_OaksLabText_4420b:: ; 958cc (25:58cc)
 	text "You still need"
 	line "more #MON!"
 	cont "Try to catch"
@@ -394,7 +394,7 @@
 	cont "other species!"
 	done
 
-_UnnamedText_44210:: ; 95903 (25:5903)
+_OaksLabText_44210:: ; 95903 (25:5903)
 	text "Good, you're"
 	line "trying hard!"
 	cont "Get an ITEMFINDER"
@@ -401,13 +401,13 @@
 	cont "from my AIDE!"
 	done
 
-_UnnamedText_44215:: ; 9593d (25:593d)
+_OaksLabText_44215:: ; 9593d (25:593d)
 	text "Looking good!"
 	line "Go find my AIDE"
 	cont "when you get 50!"
 	done
 
-_UnnamedText_4421a:: ; 9596d (25:596d)
+_OaksLabText_4421a:: ; 9596d (25:596d)
 	text "You finally got at"
 	line "least 50 species!"
 	cont "Be sure to get"
@@ -415,30 +415,30 @@
 	cont "AIDE!"
 	done
 
-_UnnamedText_4421f:: ; 959b8 (25:59b8)
+_OaksLabText_4421f:: ; 959b8 (25:59b8)
 	text "Ho! This is geting"
 	line "even better!"
 	done
 
-_UnnamedText_44224:: ; 959d9 (25:59d9)
+_OaksLabText_44224:: ; 959d9 (25:59d9)
 	text "Very good!"
 	line "Go fish for some"
 	cont "marine #MON!"
 	done
 
-_UnnamedText_44229:: ; 95a03 (25:5a03)
+_OaksLabText_44229:: ; 95a03 (25:5a03)
 	text "Wonderful!"
 	line "Do you like to"
 	cont "collect things?"
 	done
 
-_UnnamedText_4422e:: ; 95a2e (25:5a2e)
+_OaksLabText_4422e:: ; 95a2e (25:5a2e)
 	text "I'm impressed!"
 	line "It must have been"
 	cont "difficult to do!"
 	done
 
-_UnnamedText_44233:: ; 95a60 (25:5a60)
+_OaksLabText_44233:: ; 95a60 (25:5a60)
 	text "You finally got at"
 	line "least 100 species!"
 	cont "I can't believe"
@@ -445,25 +445,25 @@
 	cont "how good you are!"
 	done
 
-_UnnamedText_44238:: ; 95aa8 (25:5aa8)
+_OaksLabText_44238:: ; 95aa8 (25:5aa8)
 	text "You even have the"
 	line "evolved forms of"
 	cont "#MON! Super!"
 	done
 
-_UnnamedText_4423d:: ; 95ad9 (25:5ad9)
+_OaksLabText_4423d:: ; 95ad9 (25:5ad9)
 	text "Excellent! Trade"
 	line "with friends to"
 	cont "get some more!"
 	done
 
-_UnnamedText_44242:: ; 95b0a (25:5b0a)
+_OaksLabText_44242:: ; 95b0a (25:5b0a)
 	text "Outstanding!"
 	line "You've become a"
 	cont "real pro at this!"
 	done
 
-_UnnamedText_44247:: ; 95b39 (25:5b39)
+_OaksLabText_44247:: ; 95b39 (25:5b39)
 	text "I have nothing"
 	line "left to say!"
 	cont "You're the"
@@ -470,7 +470,7 @@
 	cont "authority now!"
 	done
 
-_UnnamedText_4424c:: ; 95b6f (25:5b6f)
+_OaksLabText_4424c:: ; 95b6f (25:5b6f)
 	text "Your #DEX is"
 	line "entirely complete!"
 	cont "Congratulations!"
--- a/text/maps/pewter_city.asm
+++ b/text/maps/pewter_city.asm
@@ -20,18 +20,18 @@
 	cont "into it!"
 	done
 
-_UnnamedText_193f1:: ; a4a56 (29:4a56)
+_PewterCityText_193f1:: ; a4a56 (29:4a56)
 	text "Did you check out"
 	line "the MUSEUM?"
 	done
 
-_UnnamedText_193f6:: ; a4a75 (29:4a75)
+_PewterCityText_193f6:: ; a4a75 (29:4a75)
 	text "Weren't those"
 	line "fossils from MT."
 	cont "MOON amazing?"
 	done
 
-_UnnamedText_193fb:: ; a4aa2 (29:4aa2)
+_PewterCityText_193fb:: ; a4aa2 (29:4aa2)
 	text "Really?"
 	line "You absolutely"
 	cont "have to go!"
@@ -45,24 +45,24 @@
 	cont "See you around!"
 	done
 
-_UnnamedText_19427:: ; a4b14 (29:4b14)
+_PewterCityText_19427:: ; a4b14 (29:4b14)
 	text "Psssst!"
 	line "Do you know what"
 	cont "I'm doing?"
 	done
 
-_UnnamedText_1942c:: ; a4b38 (29:4b38)
+_PewterCityText_1942c:: ; a4b38 (29:4b38)
 	text "That's right!"
 	line "It's hard work!"
 	done
 
-_UnnamedText_19431:: ; a4b55 (29:4b55)
+_PewterCityText_19431:: ; a4b55 (29:4b55)
 	text "I'm spraying REPEL"
 	line "to keep #MON"
 	cont "out of my garden!"
 	done
 
-_UnnamedText_1945d:: ; a4b87 (29:4b87)
+_PewterCityText_1945d:: ; a4b87 (29:4b87)
 	text "You're a trainer"
 	line "right? BROCK's"
 	cont "looking for new"
@@ -70,7 +70,7 @@
 	cont "Follow me!"
 	done
 
-_UnnamedText_19462:: ; a4bce (29:4bce)
+_PewterCityText_19462:: ; a4bce (29:4bce)
 	text "If you have the"
 	line "right stuff, go"
 	cont "take on BROCK!"
--- a/text/maps/pewter_gym_1.asm
+++ b/text/maps/pewter_gym_1.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5c49e:: ; 9697a (25:697a)
+_PewterGymText_5c49e:: ; 9697a (25:697a)
 	text "I'm BROCK!"
 	line "I'm PEWTER's GYM"
 	cont "LEADER!"
--- a/text/maps/pewter_gym_2.asm
+++ b/text/maps/pewter_gym_2.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5c4a3:: ; 98000 (26:4000)
+_PewterGymText_5c4a3:: ; 98000 (26:4000)
 	text "There are all"
 	line "kinds of trainers"
 	cont "in the world!"
@@ -49,7 +49,7 @@
 	line "room for this!"
 	done
 
-_UnnamedText_5c4bc:: ; 981c9 (26:41c9)
+_PewterGymText_5c4bc:: ; 981c9 (26:41c9)
 	text "I took"
 	line "you for granted."
 
@@ -60,7 +60,7 @@
 	para $52, " received"
 	line "the BOULDERBADGE!@@"
 
-_UnnamedText_5c4c1:: ; 98232 (26:4232)
+_PewterGymText_5c4c1:: ; 98232 (26:4232)
 	db $0
 	para "That's an official"
 	line "#MON LEAGUE"
@@ -98,7 +98,7 @@
 	cont "as BROCK!"
 	done
 
-_UnnamedText_5c515:: ; 98351 (26:4351)
+_PewterGymText_5c515:: ; 98351 (26:4351)
 	text "Hiya! I can tell"
 	line "you have what it"
 	cont "takes to become a"
@@ -112,12 +112,12 @@
 	line "to the top!"
 	done
 
-_UnnamedText_5c51a:: ; 983dc (26:43dc)
+_PewterGymText_5c51a:: ; 983dc (26:43dc)
 	text "All right! Let's"
 	line "get happening!"
 	prompt
 
-_UnnamedText_5c51f:: ; 983fc (26:43fc)
+_PewterGymText_5c51f:: ; 983fc (26:43fc)
 	text "The 1st #MON"
 	line "out in a match is"
 	cont "at the top of the"
@@ -129,13 +129,13 @@
 	cont "made easier!"
 	done
 
-_UnnamedText_5c524:: ; 98476 (26:4476)
+_PewterGymText_5c524:: ; 98476 (26:4476)
 	text "It's a free"
 	line "service! Let's"
 	cont "get happening!"
 	prompt
 
-_UnnamedText_5c529:: ; 9849f (26:449f)
+_PewterGymText_5c529:: ; 9849f (26:449f)
 	text "Just as I thought!"
 	line "You're #MON"
 	cont "champ material!"
--- a/text/maps/pewter_mart.asm
+++ b/text/maps/pewter_mart.asm
@@ -1,4 +1,4 @@
-_UnnamedText_74cc6:: ; 985ac (26:45ac)
+_PewterMartText_74cc6:: ; 985ac (26:45ac)
 	text "A shady, old man"
 	line "got me to buy"
 	cont "this really weird"
@@ -8,7 +8,7 @@
 	line "and it cost ¥500!"
 	done
 
-_UnnamedText_74cd5:: ; 9860c (26:460c)
+_PewterMartText_74cd5:: ; 9860c (26:460c)
 	text "Good things can"
 	line "happen if you"
 	cont "raise #MON"
--- a/text/maps/pokemon_league_gate.asm
+++ b/text/maps/pokemon_league_gate.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1e704:: ; 8cfbb (23:4fbb)
+_Route22GateText_1e704:: ; 8cfbb (23:4fbb)
 	text "Only truly skilled"
 	line "trainers are"
 	cont "allowed through."
@@ -6,7 +6,7 @@
 	para "You don't have the"
 	line "BOULDERBADGE yet!@@"
 
-_UnnamedText_1e715:: ; 8d012 (23:5012)
+_Route22GateText_1e715:: ; 8d012 (23:5012)
 	db $0
 	para "The rules are"
 	line "rules. I can't"
@@ -13,7 +13,7 @@
 	cont "let you pass."
 	done
 
-_UnnamedText_1e71a:: ; 8d03e (23:503e)
+_Route22GateText_1e71a:: ; 8d03e (23:503e)
 	text "Oh! That is the"
 	line "BOULDERBADGE!"
 	cont "Go right ahead!@@"
--- a/text/maps/pokemon_tower_2f.asm
+++ b/text/maps/pokemon_tower_2f.asm
@@ -1,4 +1,4 @@
-_UnnamedText_6062d:: ; 9957b (26:557b)
+_PokemonTower2Text_6062d:: ; 9957b (26:557b)
 	text $53, ": Hey,"
 	line $52, "! What"
 	cont "brings you here?"
@@ -10,7 +10,7 @@
 	cont "Let's go, pal!"
 	done
 
-_UnnamedText_60632:: ; 995e5 (26:55e5)
+_PokemonTower2Text_60632:: ; 995e5 (26:55e5)
 	text "What?"
 	line "You stinker!"
 
@@ -18,7 +18,7 @@
 	line "you too!"
 	prompt
 
-_UnnamedText_60637:: ; 99614 (26:5614)
+_PokemonTower2Text_60637:: ; 99614 (26:5614)
 	text $53, ": Well,"
 	line "look at all your"
 	cont "wimpy #MON!"
@@ -27,7 +27,7 @@
 	line "bit more!"
 	prompt
 
-_UnnamedText_6063c:: ; 99657 (26:5657)
+_PokemonTower2Text_6063c:: ; 99657 (26:5657)
 	text "How's your #DEX"
 	line "coming, pal?"
 	cont "I just caught a"
--- a/text/maps/pokemon_tower_5f.asm
+++ b/text/maps/pokemon_tower_5f.asm
@@ -62,7 +62,7 @@
 	cont "my training!"
 	done
 
-_UnnamedText_60a43:: ; 99a8b (26:5a8b)
+_PokemonTower5Text7:: ; 99a8b (26:5a8b)
 	text "Entered purified,"
 	line "protected zone!"
 
--- a/text/maps/pokemon_tower_6f.asm
+++ b/text/maps/pokemon_tower_6f.asm
@@ -1,10 +1,10 @@
-_UnnamedText_60c1f:: ; 99ac8 (26:5ac8)
+_PokemonTower2Text_60c1f:: ; 99ac8 (26:5ac8)
 	text "The GHOST was the"
 	line "restless soul of"
 	cont "CUBONE's mother!"
 	done
 
-_UnnamedText_60c24:: ; 99afc (26:5afc)
+_PokemonTower2Text_60c24:: ; 99afc (26:5afc)
 	text "The mother's soul"
 	line "was calmed."
 
@@ -55,7 +55,7 @@
 	line "here?"
 	done
 
-_UnnamedText_60c56:: ; 99c01 (26:5c01)
+_PokemonTower6Text6:: ; 99c01 (26:5c01)
 	text "Be gone..."
 	line "Intruders..."
 	done
--- a/text/maps/pokemon_tower_7f.asm
+++ b/text/maps/pokemon_tower_7f.asm
@@ -1,4 +1,4 @@
-_UnnamedText_60ec4:: ; 99c1a (26:5c1a)
+_PokemonTower7Text_60ec4:: ; 99c1a (26:5c1a)
 	text "MR.FUJI: Heh? You"
 	line "came to save me?"
 
--- a/text/maps/rocket_hideout_b4f.asm
+++ b/text/maps/rocket_hideout_b4f.asm
@@ -1,15 +1,15 @@
-_UnnamedText_4557a:: ; 8223e (20:623e)
+_RocketHideout4Text_4557a:: ; 8223e (20:623e)
 	text "So! I must say, I"
 	line "am impressed you"
 	cont "got here!"
 	done
 
-_UnnamedText_4557f:: ; 8226c (20:626c)
+_RocketHideout4Text_4557f:: ; 8226c (20:626c)
 	text "WHAT!"
 	line "This cannot be!"
 	prompt
 
-_UnnamedText_45584:: ; 82283 (20:6283)
+_RocketHideout4Text_45584:: ; 82283 (20:6283)
 	text "I see that you"
 	line "raise #MON"
 	cont "with utmost care."
@@ -68,7 +68,7 @@
 	text "No!"
 	prompt
 
-_UnnamedText_455ec:: ; 82418 (20:6418)
+_RocketHideout4Text_455ec:: ; 82418 (20:6418)
 	text "Oh no! I dropped"
 	line "the LIFT KEY!"
 	done
--- a/text/maps/rocket_hideout_elevator.asm
+++ b/text/maps/rocket_hideout_elevator.asm
@@ -1,4 +1,4 @@
-_UnnamedText_4578b:: ; 82438 (20:6438)
+_RocketElevatorText_4578b:: ; 82438 (20:6438)
 	text "It appears to"
 	line "need a key.@@"
 
--- a/text/maps/route_1.asm
+++ b/text/maps/route_1.asm
@@ -12,19 +12,19 @@
 	cont "Here you go!"
 	prompt
 
-_UnnamedText_1cae8:: ; 8d643 (23:5643)
+_Route1Text_1cae8:: ; 8d643 (23:5643)
 	text $52, " got"
 	line "@"
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_1caee:: ; 8d652 (23:5652)
+_Route1Text_1caee:: ; 8d652 (23:5652)
 	text "We also carry"
 	line "# BALLs for"
 	cont "catching #MON!"
 	done
 
-_UnnamedText_1caf3:: ; 8d67c (23:567c)
+_Route1Text_1caf3:: ; 8d67c (23:567c)
 	text "You have too much"
 	line "stuff with you!"
 	done
--- a/text/maps/route_11_gate_upstairs.asm
+++ b/text/maps/route_11_gate_upstairs.asm
@@ -1,4 +1,4 @@
-_UnnamedText_494a3:: ; 8c689 (23:4689)
+_Route11GateUpstairsText_494a3:: ; 8c689 (23:4689)
 	text "There are items on"
 	line "the ground that"
 	cont "can't be seen."
@@ -28,7 +28,7 @@
 	line "view!"
 	done
 
-_UnnamedText_494d5:: ; 8c78b (23:478b)
+_Route11GateUpstairsText_494d5:: ; 8c78b (23:478b)
 	text "Looked into the"
 	line "binoculars."
 
--- a/text/maps/route_12.asm
+++ b/text/maps/route_12.asm
@@ -3,7 +3,7 @@
 	line "blocks the way!"
 	done
 
-_UnnamedText_596eb:: ; 900bf (24:40bf)
+_Route12Text13:: ; 900bf (24:40bf)
 	text "SNORLAX woke up!"
 
 	para "It attacked in a"
@@ -10,7 +10,7 @@
 	line "grumpy rage!"
 	done
 
-_UnnamedText_596f0:: ; 900ef (24:40ef)
+_Route12Text14:: ; 900ef (24:40ef)
 	text "SNORLAX calmed"
 	line "down! With a big"
 	cont "yawn, it returned"
--- a/text/maps/route_12_gate_upstairs.asm
+++ b/text/maps/route_12_gate_upstairs.asm
@@ -27,7 +27,7 @@
 	line "room for this."
 	done
 
-_UnnamedText_495b8:: ; 8c95a (23:495a)
+_Route12GateUpstairsText_495b8:: ; 8c95a (23:495a)
 	text "Looked into the"
 	line "binoculars."
 
@@ -34,7 +34,7 @@
 	para "A man fishing!"
 	done
 
-_UnnamedText_495c4:: ; 8c986 (23:4986)
+_Route12GateUpstairsText_495c4:: ; 8c986 (23:4986)
 	text "Looked into the"
 	line "binoculars."
 
--- a/text/maps/route_12_house.asm
+++ b/text/maps/route_12_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_564c0:: ; 8c9b3 (23:49b3)
+_Route12HouseText_564c0:: ; 8c9b3 (23:49b3)
 	text "I'm the FISHING"
 	line "GURU's brother!"
 
@@ -9,7 +9,7 @@
 	line "fish?"
 	done
 
-_UnnamedText_564c5:: ; 8ca00 (23:4a00)
+_Route12HouseText_564c5:: ; 8ca00 (23:4a00)
 	text "Grand! I like"
 	line "your style!"
 
@@ -21,7 +21,7 @@
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_564ca:: ; 8ca4f (23:4a4f)
+_Route12HouseText_564ca:: ; 8ca4f (23:4a4f)
 	db $0
 	para "Fishing is a way"
 	line "of life!"
@@ -32,12 +32,12 @@
 	cont "one!"
 	done
 
-_UnnamedText_564cf:: ; 8caa1 (23:4aa1)
+_Route12HouseText_564cf:: ; 8caa1 (23:4aa1)
 	text "Oh... That's so"
 	line "disappointing..."
 	done
 
-_UnnamedText_564d4:: ; 8cac2 (23:4ac2)
+_Route12HouseText_564d4:: ; 8cac2 (23:4ac2)
 	text "Hello there,"
 	line $52, "!"
 
@@ -51,7 +51,7 @@
 	line "wherever you can!"
 	done
 
-_UnnamedText_564d9:: ; 8cb38 (23:4b38)
+_Route12HouseText_564d9:: ; 8cb38 (23:4b38)
 	text "Oh no!"
 
 	para "I had a gift for"
--- a/text/maps/route_15_gate_upstairs.asm
+++ b/text/maps/route_15_gate_upstairs.asm
@@ -1,4 +1,4 @@
-_UnnamedText_4968c:: ; 8cbac (23:4bac)
+_Route15GateUpstairsText_4968c:: ; 8cbac (23:4bac)
 	text "EXP.ALL gives"
 	line "EXP points to all"
 	cont "the #MON with"
@@ -15,7 +15,7 @@
 	cont "store it via PC."
 	done
 
-_UnnamedText_49698:: ; 8cc65 (23:4c65)
+_Route15GateUpstairsText_49698:: ; 8cc65 (23:4c65)
 	text "Looked into the"
 	line "binoculars."
 
--- a/text/maps/route_16.asm
+++ b/text/maps/route_16.asm
@@ -95,7 +95,7 @@
 	line "blocks the way!"
 	done
 
-_UnnamedText_59ab3:: ; 912a8 (24:52a8)
+_Route16Text10:: ; 912a8 (24:52a8)
 	text "SNORLAX woke up!"
 
 	para "It attacked in a"
@@ -102,7 +102,7 @@
 	line "grumpy rage!"
 	done
 
-_UnnamedText_59ab8:: ; 912d8 (24:52d8)
+_Route16Text11:: ; 912d8 (24:52d8)
 	text "With a big yawn,"
 	line "SNORLAX returned"
 	cont "to the mountains!"
--- a/text/maps/route_16_gate.asm
+++ b/text/maps/route_16_gate.asm
@@ -1,10 +1,10 @@
-_UnnamedText_49777:: ; 8cca0 (23:4ca0)
+_Route16GateText_49777:: ; 8cca0 (23:4ca0)
 	text "No pedestrians"
 	line "are allowed on"
 	cont "CYCLING ROAD!"
 	done
 
-_UnnamedText_4977c:: ; 8cccd (23:4ccd)
+_Route16GateText_4977c:: ; 8cccd (23:4ccd)
 	text "CYCLING ROAD is a"
 	line "downhill course"
 	cont "by the sea. It's"
@@ -11,7 +11,7 @@
 	cont "a great ride."
 	done
 
-_UnnamedText_49781:: ; 8cd0e (23:4d0e)
+_Route16GateText_49781:: ; 8cd0e (23:4d0e)
 	text "Excuse me! Wait"
 	line "up please!"
 	done
--- a/text/maps/route_16_gate_upstairs.asm
+++ b/text/maps/route_16_gate_upstairs.asm
@@ -1,15 +1,15 @@
-_UnnamedText_49820:: ; 8cd49 (23:4d49)
+_Route16GateUpstairsText_49820:: ; 8cd49 (23:4d49)
 	text "I'm going for a"
 	line "ride with my girl"
 	cont "friend!"
 	done
 
-_UnnamedText_4982f:: ; 8cd73 (23:4d73)
+_Route16GateUpstairsText_4982f:: ; 8cd73 (23:4d73)
 	text "We're going"
 	line "riding together!"
 	done
 
-_UnnamedText_4983b:: ; 8cd90 (23:4d90)
+_Route16GateUpstairsText_4983b:: ; 8cd90 (23:4d90)
 	text "Looked into the"
 	line "binoculars."
 
@@ -17,7 +17,7 @@
 	line "STORE!"
 	done
 
-_UnnamedText_49847:: ; 8cdc6 (23:4dc6)
+_Route16GateUpstairsText_49847:: ; 8cdc6 (23:4dc6)
 	text "Looked into the"
 	line "binoculars."
 
--- a/text/maps/route_16_house.asm
+++ b/text/maps/route_16_house.asm
@@ -26,7 +26,7 @@
 	line "room for this."
 	done
 
-_UnnamedText_1e652:: ; 8cee0 (23:4ee0)
+_Route16HouseText_1e652:: ; 8cee0 (23:4ee0)
 	text "FEAROW: Kyueen!"
 	done
 
--- a/text/maps/route_18_gate.asm
+++ b/text/maps/route_18_gate.asm
@@ -1,15 +1,15 @@
-_UnnamedText_49928:: ; 8cef1 (23:4ef1)
+_Route18GateText_49928:: ; 8cef1 (23:4ef1)
 	text "You need a BICYCLE"
 	line "for CYCLING ROAD!"
 	done
 
-_UnnamedText_4992d:: ; 8cf17 (23:4f17)
+_Route18GateText_4992d:: ; 8cf17 (23:4f17)
 	text "CYCLING ROAD is"
 	line "all uphill from"
 	cont "here."
 	done
 
-_UnnamedText_49932:: ; 8cf3e (23:4f3e)
+_Route18GateText_49932:: ; 8cf3e (23:4f3e)
 	text "Excuse me!"
 	done
 
--- a/text/maps/route_18_gate_upstairs.asm
+++ b/text/maps/route_18_gate_upstairs.asm
@@ -1,4 +1,4 @@
-_UnnamedText_49993:: ; 8cf4a (23:4f4a)
+_Route18GateUpstairsText_49993:: ; 8cf4a (23:4f4a)
 	text "Looked into the"
 	line "binoculars."
 
@@ -6,7 +6,7 @@
 	line "the west!"
 	done
 
-_UnnamedText_4999f:: ; 8cf83 (23:4f83)
+_Route18GateUpstairsText_4999f:: ; 8cf83 (23:4f83)
 	text "Looked into the"
 	line "binoculars."
 
--- a/text/maps/route_22.asm
+++ b/text/maps/route_22.asm
@@ -1,4 +1,4 @@
-_UnnamedText_511ad:: ; 922cd (24:62cd)
+_Route22Text_511ad:: ; 922cd (24:62cd)
 	text $53, ": Hey!"
 	line $52, "!"
 
@@ -17,7 +17,7 @@
 	cont "get any stronger?"
 	done
 
-_UnnamedText_511b2:: ; 9236f (24:636f)
+_Route22Text_511b2:: ; 9236f (24:636f)
 	text "I heard #MON"
 	line "LEAGUE has many"
 	cont "tough trainers!"
@@ -31,13 +31,13 @@
 	cont "a move on!"
 	done
 
-_UnnamedText_511b7:: ; 923f4 (24:63f4)
+_Route22Text_511b7:: ; 923f4 (24:63f4)
 	text "Awww!"
 	line "You just lucked"
 	cont "out!"
 	prompt
 
-_UnnamedText_511bc:: ; 92410 (24:6410)
+_Route22Text_511bc:: ; 92410 (24:6410)
 	text $53, ": What?"
 	line "Why do I have 2"
 	cont "#MON?"
@@ -46,7 +46,7 @@
 	cont "some more too!"
 	prompt
 
-_UnnamedText_511c1:: ; 92450 (24:6450)
+_Route22Text_511c1:: ; 92450 (24:6450)
 	text $53, ": What?"
 	line $52, "! What a"
 	cont "surprise to see"
@@ -67,7 +67,7 @@
 	para "Come on!"
 	done
 
-_UnnamedText_511c6:: ; 92506 (24:6506)
+_Route22Text_511c6:: ; 92506 (24:6506)
 	text "That loosened me"
 	line "up! I'm ready for"
 	cont "#MON LEAGUE!"
@@ -80,7 +80,7 @@
 	cont "here. Smell ya!"
 	done
 
-_UnnamedText_511cb:: ; 92583 (24:6583)
+_Route22Text_511cb:: ; 92583 (24:6583)
 	text "What!?"
 
 	para "I was just"
@@ -87,7 +87,7 @@
 	line "careless!"
 	prompt
 
-_UnnamedText_511d0:: ; 925a0 (24:65a0)
+_Route22Text_511d0:: ; 925a0 (24:65a0)
 	text $53, ": Hahaha!"
 	line $52, "! That's"
 	cont "your best? You're"
--- a/text/maps/route_23.asm
+++ b/text/maps/route_23.asm
@@ -26,7 +26,7 @@
 	TX_RAM $cd6d
 	text "!@@"
 
-_UnnamedText_513a3:: ; 926dd (24:66dd)
+_VictoryRoadGuardText_513a3:: ; 926dd (24:66dd)
 	db $0
 	para "OK then! Please,"
 	line "go right ahead!"
--- a/text/maps/route_24_1.asm
+++ b/text/maps/route_24_1.asm
@@ -1,26 +1,26 @@
-_UnnamedText_51510:: ; 92721 (24:6721)
+_Route24Text_51510:: ; 92721 (24:6721)
 	text "Congratulations!"
 	line "You beat our 5"
 	cont "contest trainers!@@"
 
-_UnnamedText_51515:: ; 92755 (24:6755)
+_Route24Text_51515:: ; 92755 (24:6755)
 	db $0
 	para "You just earned a"
 	line "fabulous prize!"
 	prompt
 
-_UnnamedText_5151a:: ; 92779 (24:6779)
+_Route24Text_5151a:: ; 92779 (24:6779)
 	text $52, " received"
 	line "a @"
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_51521:: ; 9278f (24:678f)
+_Route24Text_51521:: ; 9278f (24:678f)
 	text "You don't have"
 	line "any room!"
 	done
 
-_UnnamedText_51526:: ; 927a8 (24:67a8)
+_Route24Text_51526:: ; 927a8 (24:67a8)
 	text "By the way, would"
 	line "you like to join"
 	cont "TEAM ROCKET?"
@@ -46,12 +46,12 @@
 	cont "refuse!"
 	done
 
-_UnnamedText_5152b:: ; 9288a (24:688a)
+_Route24Text_5152b:: ; 9288a (24:688a)
 	text "Arrgh!"
 	line "You are good!"
 	prompt
 
-_UnnamedText_51530:: ; 928a0 (24:68a0)
+_Route24Text_51530:: ; 928a0 (24:68a0)
 	text "With your ability,"
 	line "you could become"
 	cont "a top leader in"
--- a/text/maps/route_2_gate.asm
+++ b/text/maps/route_2_gate.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5d616:: ; 8a7fc (22:67fc)
+_Route2GateText_5d616:: ; 8a7fc (22:67fc)
 	text "The HM FLASH"
 	line "lights even the"
 	cont "darkest dungeons."
--- a/text/maps/safari_zone_entrance.asm
+++ b/text/maps/safari_zone_entrance.asm
@@ -3,7 +3,7 @@
 	line "SAFARI ZONE!"
 	done
 
-UnnamedText_9e6e4:: ; 9e6e4 (27:66e4)
+SafariZoneEntranceText_9e6e4:: ; 9e6e4 (27:66e4)
 	text "For just ¥500,"
 	line "you can catch all"
 	cont "the #MON you"
@@ -12,7 +12,7 @@
 	para "Would you like to"
 	line "join the hunt?@@"
 
-UnnamedText_9e747:: ; 9e747 (27:6747)
+SafariZoneEntranceText_9e747:: ; 9e747 (27:6747)
 	text "That'll be ¥500"
 	line "please!"
 
@@ -23,7 +23,7 @@
 	para $52, " received"
 	line "30 SAFARI BALLs!@@"
 
-_UnnamedText_75360:: ; 9e79f (27:679f)
+_SafariZoneEntranceText_75360:: ; 9e79f (27:679f)
 	db $0
 	para "We'll call you on"
 	line "the PA when you"
@@ -31,41 +31,41 @@
 	cont "or SAFARI BALLs!"
 	done
 
-_UnnamedText_75365:: ; 9e7e3 (27:67e3)
+_SafariZoneEntranceText_75365:: ; 9e7e3 (27:67e3)
 	text "OK! Please come"
 	line "again!"
 	done
 
-_UnnamedText_7536a:: ; 9e7fb (27:67fb)
+_SafariZoneEntranceText_7536a:: ; 9e7fb (27:67fb)
 	text "Oops! Not enough"
 	line "money!"
 	done
 
-UnnamedText_9e814:: ; 9e814 (27:6814)
+SafariZoneEntranceText_9e814:: ; 9e814 (27:6814)
 	text "Leaving early?@@"
 
-_UnnamedText_753bb:: ; 9e825 (27:6825)
+_SafariZoneEntranceText_753bb:: ; 9e825 (27:6825)
 	text "Please return any"
 	line "SAFARI BALLs you"
 	cont "have left."
 	done
 
-_UnnamedText_753c0:: ; 9e854 (27:6854)
+_SafariZoneEntranceText_753c0:: ; 9e854 (27:6854)
 	text "Good Luck!"
 	done
 
-_UnnamedText_753c5:: ; 9e860 (27:6860)
+_SafariZoneEntranceText_753c5:: ; 9e860 (27:6860)
 	text "Did you get a"
 	line "good haul?"
 	cont "Come again!"
 	done
 
-_UnnamedText_753e6:: ; 9e886 (27:6886)
+_SafariZoneEntranceText_753e6:: ; 9e886 (27:6886)
 	text "Hi! Is it your"
 	line "first time here?"
 	done
 
-_UnnamedText_753eb:: ; 9e8a7 (27:68a7)
+_SafariZoneEntranceText_753eb:: ; 9e8a7 (27:68a7)
 	text "SAFARI ZONE has 4"
 	line "zones in it."
 
@@ -87,7 +87,7 @@
 	cont "new #MON!"
 	done
 
-_UnnamedText_753f0:: ; 9e993 (27:6993)
+_SafariZoneEntranceText_753f0:: ; 9e993 (27:6993)
 	text "Sorry, you're a"
 	line "regular here!"
 	done
--- a/text/maps/safari_zone_secret_house.asm
+++ b/text/maps/safari_zone_secret_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_4a350:: ; 858a4 (21:58a4)
+_SecretHouseText_4a350:: ; 858a4 (21:58a4)
 	text "Ah! Finally!"
 
 	para "You're the first"
--- a/text/maps/saffron_gates.asm
+++ b/text/maps/saffron_gates.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1dfe7:: ; 8aa5c (22:6a5c)
+_SaffronGateText_1dfe7:: ; 8aa5c (22:6a5c)
 	text "I'm on guard duty."
 	line "Gee, I'm thirsty,"
 	cont "though!"
@@ -7,7 +7,7 @@
 	line "the road's closed."
 	done
 
-_UnnamedText_8aaa9:: ; 8aaa9 (22:6aa9)
+_SaffronGateText_8aaa9:: ; 8aaa9 (22:6aa9)
 	text "Whoa, boy!"
 	line "I'm parched!"
 	cont "..."
@@ -15,7 +15,7 @@
 	cont "this drink?"
 	cont "Gee, thanks!@@"
 
-_UnnamedText_1dff1:: ; 8aaef (22:6aef)
+_SaffronGateText_1dff1:: ; 8aaef (22:6aef)
 	db $0
 	para "..."
 	line "Glug glug..."
@@ -30,7 +30,7 @@
 	cont "the other guards!"
 	done
 
-_UnnamedText_1dff6:: ; 8ab74 (22:6b74)
+_SaffronGateText_1dff6:: ; 8ab74 (22:6b74)
 	text "Hi, thanks for"
 	line "the cool drinks!"
 	done
--- a/text/maps/saffron_gym.asm
+++ b/text/maps/saffron_gym.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5d162:: ; a1bb4 (28:5bb4)
+_SaffronGymText_5d162:: ; a1bb4 (28:5bb4)
 	text "I had a vision of"
 	line "your arrival!"
 
@@ -16,7 +16,7 @@
 	cont "you my powers!"
 	done
 
-_UnnamedText_5d167:: ; a1c73 (28:5c73)
+_SaffronGymText_5d167:: ; a1c73 (28:5c73)
 	text "I'm"
 	line "shocked!"
 	cont "But, a loss is a"
@@ -29,7 +29,7 @@
 	para "You earned the"
 	line "MARSHBADGE!@@"
 
-_UnnamedText_5d16e:: ; a1cdc (28:5cdc)
+_SaffronGymText_5d16e:: ; a1cdc (28:5cdc)
 	text "Everyone has"
 	line "psychic power!"
 	cont "People just don't"
@@ -36,7 +36,7 @@
 	cont "realize it!"
 	done
 
-_UnnamedText_5d173:: ; a1d16 (28:5d16)
+_SaffronGymText_5d173:: ; a1d16 (28:5d16)
 	text "The MARSHBADGE"
 	line "makes #MON up"
 	cont "to L70 obey you!"
@@ -71,7 +71,7 @@
 	line "of other items!"
 	done
 
-_UnnamedText_5d1e6:: ; a1e48 (28:5e48)
+_SaffronGymText_5d1e6:: ; a1e48 (28:5e48)
 	text "Yo! Champ in"
 	line "making!"
 
@@ -88,7 +88,7 @@
 	cont "even aim a punch!"
 	done
 
-_UnnamedText_5d1eb:: ; a1ef0 (28:5ef0)
+_SaffronGymText_5d1eb:: ; a1ef0 (28:5ef0)
 	text "Psychic power,"
 	line "huh?"
 
--- a/text/maps/silph_co_10f.asm
+++ b/text/maps/silph_co_10f.asm
@@ -1,9 +1,9 @@
-_UnnamedText_5a1d3:: ; 84d8d (21:4d8d)
+_SilphCo10Text_5a1d3:: ; 84d8d (21:4d8d)
 	text "Waaaaa!"
 	cont "I'm scared!"
 	done
 
-_UnnamedText_5a1d8:: ; 84da1 (21:4da1)
+_SilphCo10Text_5a1d8:: ; 84da1 (21:4da1)
 	text "Please keep quiet"
 	line "about my crying!"
 	done
--- a/text/maps/silph_co_11f.asm
+++ b/text/maps/silph_co_11f.asm
@@ -25,7 +25,7 @@
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_6231c:: ; 84f74 (21:4f74)
+_SilphCo10Text_6231c:: ; 84f74 (21:4f74)
 	text "PRESIDENT: You"
 	line "can't buy that"
 	cont "anywhere!"
@@ -74,12 +74,12 @@
 	line "world of pain!"
 	done
 
-_UnnamedText_62330:: ; 85119 (21:5119)
+_SilphCo10Text_62330:: ; 85119 (21:5119)
 	text "Arrgh!!"
 	line "I lost again!?"
 	prompt
 
-_UnnamedText_62335:: ; 85131 (21:5131)
+_SilphCo10Text_62335:: ; 85131 (21:5131)
 	text "Blast it all!"
 	line "You ruined our"
 	cont "plans for SILPH!"
@@ -128,7 +128,7 @@
 	cont "#MON tough!"
 	done
 
-_UnnamedText_6237b:: ; 8529a (21:529a)
+_SilphCo10Text_6237b:: ; 8529a (21:529a)
 	text "The monitor has"
 	line "#MON on it!"
 	done
--- a/text/maps/silph_co_2f.asm
+++ b/text/maps/silph_co_2f.asm
@@ -1,4 +1,4 @@
-_UnnamedText_59ded:: ; 82454 (20:6454)
+_SilphCo2Text_59ded:: ; 82454 (20:6454)
 	text "Eeek!"
 	line "No! Stop! Help!"
 
--- a/text/maps/silph_co_3f.asm
+++ b/text/maps/silph_co_3f.asm
@@ -1,9 +1,9 @@
-_UnnamedText_59ff9:: ; 826b9 (20:66b9)
+_SilphCo3Text_59ff9:: ; 826b9 (20:66b9)
 	text "I work for SILPH."
 	line "What should I do?"
 	done
 
-_UnnamedText_59ffe:: ; 826de (20:66de)
+_SilphCo3Text_59ffe:: ; 826de (20:66de)
 	text $52, "! You and"
 	line "your #MON"
 	cont "saved us!"
--- a/text/maps/silph_co_4f.asm
+++ b/text/maps/silph_co_4f.asm
@@ -1,9 +1,9 @@
-_UnnamedText_19de0:: ; 827e4 (20:67e4)
+_SilphCo4Text_19de0:: ; 827e4 (20:67e4)
 	text "Sssh! Can't you"
 	line "see I'm hiding?"
 	done
 
-_UnnamedText_19de5:: ; 82803 (20:6803)
+_SilphCo4Text_19de5:: ; 82803 (20:6803)
 	text "Huh? TEAM ROCKET"
 	line "is gone?"
 	done
--- a/text/maps/silph_co_5f_1.asm
+++ b/text/maps/silph_co_5f_1.asm
@@ -1,4 +1,4 @@
-_UnnamedText_1a010:: ; 82936 (20:6936)
+_SilphCo5Text_1a010:: ; 82936 (20:6936)
 	text "TEAM ROCKET is"
 	line "in an uproar over"
 	cont "some intruder."
@@ -5,7 +5,7 @@
 	cont "That's you right?"
 	done
 
-_UnnamedText_1a015:: ; 82978 (20:6978)
+_SilphCo5Text_1a015:: ; 82978 (20:6978)
 	text "TEAM ROCKET took"
 	line "off! You're our"
 	cont "hero! Thank you!"
--- a/text/maps/silph_co_6f.asm
+++ b/text/maps/silph_co_6f.asm
@@ -1,36 +1,36 @@
-_UnnamedText_1a24a:: ; 84176 (21:4176)
+_SilphCo6Text_1a24a:: ; 84176 (21:4176)
 	text "The ROCKETs came"
 	line "and took over the"
 	cont "building!"
 	done
 
-_UnnamedText_1a24f:: ; 841a4 (21:41a4)
+_SilphCo6Text_1a24f:: ; 841a4 (21:41a4)
 	text "Well, better get"
 	line "back to work!"
 	done
 
-_UnnamedText_1a261:: ; 841c4 (21:41c4)
+_SilphCo6Text_1a261:: ; 841c4 (21:41c4)
 	text "Oh dear, oh dear."
 	line "Help me please!"
 	done
 
-_UnnamedText_1a266:: ; 841e7 (21:41e7)
+_SilphCo6Text_1a266:: ; 841e7 (21:41e7)
 	text "We got engaged!"
 	line "Heheh!"
 	done
 
-_UnnamedText_1a278:: ; 841ff (21:41ff)
+_SilphCo6Text_1a278:: ; 841ff (21:41ff)
 	text "Look at him! He's"
 	line "such a coward!"
 	done
 
-_UnnamedText_1a27d:: ; 84220 (21:4220)
+_SilphCo6Text_1a27d:: ; 84220 (21:4220)
 	text "I feel so sorry"
 	line "for him, I have"
 	cont "to marry him!"
 	done
 
-_UnnamedText_1a28f:: ; 8424f (21:424f)
+_SilphCo6Text_1a28f:: ; 8424f (21:424f)
 	text "TEAM ROCKET is"
 	line "trying to conquer"
 	cont "the world with"
@@ -37,12 +37,12 @@
 	cont "#MON!"
 	done
 
-_UnnamedText_1a294:: ; 84286 (21:4286)
+_SilphCo6Text_1a294:: ; 84286 (21:4286)
 	text "TEAM ROCKET ran"
 	line "because of you!"
 	done
 
-_UnnamedText_1a2a6:: ; 842a7 (21:42a7)
+_SilphCo6Text_1a2a6:: ; 842a7 (21:42a7)
 	text "They must have"
 	line "targeted SILPH"
 	cont "for our #MON"
@@ -49,7 +49,7 @@
 	cont "products."
 	done
 
-_UnnamedText_1a2ab:: ; 842dd (21:42dd)
+_SilphCo6Text_1a2ab:: ; 842dd (21:42dd)
 	text "Come work for"
 	line "SILPH when you"
 	cont "get older!"
--- a/text/maps/silph_co_7f.asm
+++ b/text/maps/silph_co_7f.asm
@@ -39,7 +39,7 @@
 	line "Thank you!"
 	done
 
-_UnnamedText_51e00::
+_SilphCo7Text_51e00::
 	text "TEAM ROCKET was"
 	line "after the MASTER"
 	cont "BALL which will"
@@ -53,7 +53,7 @@
 	cont "of TEAM ROCKET."
 	done
 
-_UnnamedText_51e23::
+_SilphCo7Text_51e23::
 	text "It would be bad"
 	line "if TEAM ROCKET"
 	cont "took over SILPH"
@@ -60,13 +60,13 @@
 	cont "or our #MON!"
 	done
 
-_UnnamedText_51e28::
+_SilphCo7Text_51e28::
 	text "Wow! You chased"
 	line "off TEAM ROCKET"
 	cont "all by yourself?"
 	done
 
-_UnnamedText_51e46::
+_SilphCo7Text_51e46::
 	text "You! It's really"
 	line "dangerous here!"
 	cont "You came to save"
@@ -73,7 +73,7 @@
 	cont "me? You can't!"
 	done
 
-_UnnamedText_51e4b::
+_SilphCo7Text_51e4b::
 	text "Safe at last!"
 	line "Oh thank you!"
 	done
@@ -142,5 +142,69 @@
 	text "Go on home"
 	line "before my BOSS"
 	cont "gets ticked off!"
+	done
+
+_SilphCo7Text_51ebe:: ; 8488d (21:488d)
+	text $53, ": What"
+	line "kept you ", $52, "?"
+	done
+
+_SilphCo7Text_51ec3:: ; 848a2 (21:48a2)
+	text $53, ": Hahaha!"
+	line "I thought you'd"
+	cont "turn up if I"
+	cont "waited here!"
+
+	para "I guess TEAM"
+	line "ROCKET slowed you"
+	cont "down! Not that I"
+	cont "care!"
+
+	para "I saw you in"
+	line "SAFFRON, so I"
+	cont "decided to see if"
+	cont "you got better!"
+	done
+
+_SilphCo7Text_51ec8:: ; 8494a (21:494a)
+	text "Oh ho!"
+	line "So, you are ready"
+	cont "for BOSS ROCKET!"
+	prompt
+
+_SilphCo7Text_51ecd:: ; 84975 (21:4975)
+	text $53, ": How can"
+	line "I put this?"
+
+	para "You're not good"
+	line "enough to play"
+	cont "with us big boys!"
+	prompt
+
+_SilphCo7Text_51ed2:: ; 849bd (21:49bd)
+	text "Well, ", $52, "!"
+
+	para "I'm moving on up"
+	line "and ahead!"
+
+	para "By checking my"
+	line "#DEX, I'm"
+	cont "starting to see"
+	cont "what's strong and"
+	cont "how they evolve!"
+
+	para "I'm going to the"
+	line "#MON LEAGUE"
+	cont "to boot out the"
+	cont "ELITE FOUR!"
+
+	para "I'll become the"
+	line "world's most"
+	cont "powerful trainer!"
+
+	para $52, ", well"
+	line "good luck to you!"
+	cont "Don't sweat it!"
+	cont "Smell ya!"
 	done
 
--- a/text/maps/silph_co_8f.asm
+++ b/text/maps/silph_co_8f.asm
@@ -1,73 +1,9 @@
-_UnnamedText_51ebe:: ; 8488d (21:488d)
-	text $53, ": What"
-	line "kept you ", $52, "?"
-	done
-
-_UnnamedText_51ec3:: ; 848a2 (21:48a2)
-	text $53, ": Hahaha!"
-	line "I thought you'd"
-	cont "turn up if I"
-	cont "waited here!"
-
-	para "I guess TEAM"
-	line "ROCKET slowed you"
-	cont "down! Not that I"
-	cont "care!"
-
-	para "I saw you in"
-	line "SAFFRON, so I"
-	cont "decided to see if"
-	cont "you got better!"
-	done
-
-_UnnamedText_51ec8:: ; 8494a (21:494a)
-	text "Oh ho!"
-	line "So, you are ready"
-	cont "for BOSS ROCKET!"
-	prompt
-
-_UnnamedText_51ecd:: ; 84975 (21:4975)
-	text $53, ": How can"
-	line "I put this?"
-
-	para "You're not good"
-	line "enough to play"
-	cont "with us big boys!"
-	prompt
-
-_UnnamedText_51ed2:: ; 849bd (21:49bd)
-	text "Well, ", $52, "!"
-
-	para "I'm moving on up"
-	line "and ahead!"
-
-	para "By checking my"
-	line "#DEX, I'm"
-	cont "starting to see"
-	cont "what's strong and"
-	cont "how they evolve!"
-
-	para "I'm going to the"
-	line "#MON LEAGUE"
-	cont "to boot out the"
-	cont "ELITE FOUR!"
-
-	para "I'll become the"
-	line "world's most"
-	cont "powerful trainer!"
-
-	para $52, ", well"
-	line "good luck to you!"
-	cont "Don't sweat it!"
-	cont "Smell ya!"
-	done
-
-_UnnamedText_565be:: ; 84ac4 (21:4ac4)
+_SilphCo8Text_565be:: ; 84ac4 (21:4ac4)
 	text "I wonder if SILPH"
 	line "is finished..."
 	done
 
-_UnnamedText_565c3:: ; 84ae6 (21:4ae6)
+_SilphCo8Text_565c3:: ; 84ae6 (21:4ae6)
 	text "Thanks for saving"
 	line "us!"
 	done
--- a/text/maps/silph_co_9f.asm
+++ b/text/maps/silph_co_9f.asm
@@ -1,14 +1,14 @@
-_UnnamedText_5d8e5:: ; 84c0b (21:4c0b)
+_SilphCo9Text_5d8e5:: ; 84c0b (21:4c0b)
 	text "You look tired!"
 	line "You should take a"
 	cont "quick nap!"
 	prompt
 
-_UnnamedText_5d8ea:: ; 84c39 (21:4c39)
+_SilphCo9Text_5d8ea:: ; 84c39 (21:4c39)
 	text "Don't give up!"
 	done
 
-_UnnamedText_5d8ef:: ; 84c48 (21:4c48)
+_SilphCo9Text_5d8ef:: ; 84c48 (21:4c48)
 	text "Thank you so"
 	line "much!"
 	done
--- a/text/maps/ss_anne_5.asm
+++ b/text/maps/ss_anne_5.asm
@@ -16,7 +16,7 @@
 	line "get some air."
 	done
 
-_SSAnneBattleText1:: ; 8100b (20:500b)
+_SSAnne5BattleText1:: ; 8100b (20:500b)
 	text "Hey matey!"
 
 	para "Let's do a little"
@@ -23,28 +23,28 @@
 	line "jig!"
 	done
 
-_SSAnneEndBattleText1:: ; 8102d (20:502d)
+_SSAnne5EndBattleText1:: ; 8102d (20:502d)
 	text "You're"
 	line "impressive!"
 	prompt
 
-_SSAnneAfterBattleText1:: ; 81040 (20:5040)
+_SSAnne5AfterBattleText1:: ; 81040 (20:5040)
 	text "How many kinds of"
 	line "#MON do you"
 	cont "think there are?"
 	done
 
-_SSAnneBattleText2:: ; 81070 (20:5070)
+_SSAnne5BattleText2:: ; 81070 (20:5070)
 	text "Ahoy there!"
 	line "Are you seasick?"
 	done
 
-_SSAnneEndBattleText2:: ; 8108e (20:508e)
+_SSAnne5EndBattleText2:: ; 8108e (20:508e)
 	text "I was"
 	line "just careless!"
 	prompt
 
-_SSAnneAfterBattleText2:: ; 810a4 (20:50a4)
+_SSAnne5AfterBattleText2:: ; 810a4 (20:50a4)
 	text "My Pa said there"
 	line "are 100 kinds of"
 	cont "#MON. I think"
--- a/text/maps/ss_anne_6.asm
+++ b/text/maps/ss_anne_6.asm
@@ -39,7 +39,7 @@
 	cont "Snivel..."
 	done
 
-_UnnamedText_61807:: ; 81203 (20:5203)
+_SSAnne6Text_61807:: ; 81203 (20:5203)
 	text "Er-hem! Indeed I"
 	line "am le CHEF!"
 
@@ -46,7 +46,7 @@
 	para "Le main course is"
 	prompt
 
-_UnnamedText_6180c:: ; 81233 (20:5233)
+_SSAnne6Text_6180c:: ; 81233 (20:5233)
 	text "Salmon du Salad!"
 
 	para "Les guests may"
@@ -54,7 +54,7 @@
 	cont "again, however!"
 	done
 
-_UnnamedText_61811:: ; 81273 (20:5273)
+_SSAnne6Text_61811:: ; 81273 (20:5273)
 	text "Eels au Barbecue!"
 
 	para "Les guests will"
@@ -61,7 +61,7 @@
 	line "mutiny, I fear."
 	done
 
-_UnnamedText_61816:: ; 812a6 (20:52a6)
+_SSAnne6Text_61816:: ; 812a6 (20:52a6)
 	text "Prime Beef Steak!"
 
 	para "But, have I enough"
--- a/text/maps/ss_anne_7.asm
+++ b/text/maps/ss_anne_7.asm
@@ -36,7 +36,7 @@
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_61932:: ; 8141c (20:541c)
+_SSAnne7Text_61932:: ; 8141c (20:541c)
 	text "CAPTAIN: Whew!"
 
 	para "Now that I'm not"
--- a/text/maps/ss_anne_8.asm
+++ b/text/maps/ss_anne_8.asm
@@ -30,7 +30,7 @@
 	line "You rude child!"
 	prompt
 
-_UnnamedText_61a24:: ; 8159a (20:559a)
+_SSAnne8Text_61a24:: ; 8159a (20:559a)
 	text "I wish to be left"
 	line "alone! Get out!"
 	done
--- a/text/maps/ss_anne_9.asm
+++ b/text/maps/ss_anne_9.asm
@@ -1,4 +1,4 @@
-_UnnamedText_61bf2:: ; 81799 (20:5799)
+_SSAnne9Text_61bf2:: ; 81799 (20:5799)
 	text "In all my travels"
 	line "I've never seen"
 	cont "any #MON sleep"
@@ -8,7 +8,7 @@
 	line "like this!"
 	prompt
 
-_UnnamedText_61c01:: ; 817f5 (20:57f5)
+_SSAnne9Text_61c01:: ; 817f5 (20:57f5)
 	text "Ah yes, I have"
 	line "seen some #MON"
 	cont "ferry people"
@@ -15,12 +15,12 @@
 	cont "across the water!"
 	done
 
-_UnnamedText_61c10:: ; 81833 (20:5833)
+_SSAnne9Text_61c10:: ; 81833 (20:5833)
 	text "#MON can CUT"
 	line "down small bushes."
 	done
 
-_UnnamedText_61c1f:: ; 81854 (20:5854)
+_SSAnne9Text_61c1f:: ; 81854 (20:5854)
 	text "Have you gone to"
 	line "the SAFARI ZONE"
 	cont "in FUCHSIA CITY?"
@@ -29,19 +29,19 @@
 	line "kinds of #MON!!"
 	done
 
-_UnnamedText_61c2e:: ; 818a8 (20:58a8)
+_SSAnne9Text_61c2e:: ; 818a8 (20:58a8)
 	text "Me and my Daddy"
 	line "think the SAFARI"
 	cont "ZONE is awesome!"
 	done
 
-_UnnamedText_61c3d:: ; 818db (20:58db)
+_SSAnne9Text_61c3d:: ; 818db (20:58db)
 	text "The CAPTAIN looked"
 	line "really sick and"
 	cont "pale!"
 	done
 
-_UnnamedText_61c4c:: ; 81905 (20:5905)
+_SSAnne9Text_61c4c:: ; 81905 (20:5905)
 	text "I hear many people"
 	line "get seasick!"
 	done
--- a/text/maps/vermilion_city.asm
+++ b/text/maps/vermilion_city.asm
@@ -7,13 +7,13 @@
 	cont "toxic sludge!"
 	done
 
-_UnnamedText_198a7:: ; a56b5 (29:56b5)
+_VermilionCityText_198a7:: ; a56b5 (29:56b5)
 	text "Did you see S.S."
 	line "ANNE moored in"
 	cont "the harbor?"
 	done
 
-_UnnamedText_198ac:: ; a56e2 (29:56e2)
+_VermilionCityText_198ac:: ; a56e2 (29:56e2)
 	text "So, S.S.ANNE has"
 	line "departed!"
 
--- a/text/maps/vermilion_fishing_house.asm
+++ b/text/maps/vermilion_fishing_house.asm
@@ -1,4 +1,4 @@
-_UnnamedText_560b1:: ; 9c510 (27:4510)
+_VermilionHouse2Text_560b1:: ; 9c510 (27:4510)
 	text "I'm the FISHING"
 	line "GURU!"
 
@@ -9,7 +9,7 @@
 	line "fish?"
 	done
 
-_UnnamedText_560b6:: ; 9c554 (27:4554)
+_VermilionHouse2Text_560b6:: ; 9c554 (27:4554)
 	text "Grand! I like"
 	line "your style!"
 
@@ -21,7 +21,7 @@
 	TX_RAM $cf4b
 	text "!@@"
 
-_UnnamedText_560bb:: ; 9c5a4 (27:45a4)
+_VermilionHouse2Text_560bb:: ; 9c5a4 (27:45a4)
 	db $0
 	para "Fishing is a way"
 	line "of life!"
@@ -32,12 +32,12 @@
 	cont "one, young one!"
 	done
 
-_UnnamedText_560c0:: ; 9c601 (27:4601)
+_VermilionHouse2Text_560c0:: ; 9c601 (27:4601)
 	text "Oh... That's so"
 	line "disappointing..."
 	done
 
-_UnnamedText_560c5:: ; 9c622 (27:4622)
+_VermilionHouse2Text_560c5:: ; 9c622 (27:4622)
 	text "Hello there,"
 	line $52, "!"
 
@@ -45,7 +45,7 @@
 	line "biting?"
 	done
 
-_UnnamedText_560ca:: ; 9c64c (27:464c)
+_VermilionHouse2Text_560ca:: ; 9c64c (27:464c)
 	text "Oh no!"
 
 	para "You have no room"
--- a/text/maps/vermilion_gym_1.asm
+++ b/text/maps/vermilion_gym_1.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5cb6d:: ; 9aaa5 (26:6aa5)
+_VermilionGymText_5cb6d:: ; 9aaa5 (26:6aa5)
 	text "Hey, kid! What do"
 	line "you think you're"
 	cont "doing here?"
--- a/text/maps/vermilion_gym_2.asm
+++ b/text/maps/vermilion_gym_2.asm
@@ -1,4 +1,4 @@
-_UnnamedText_5cb72:: ; 9c000 (27:4000)
+_VermilionGymText_5cb72:: ; 9c000 (27:4000)
 	text "A little word of"
 	line "advice, kid!"
 
@@ -10,7 +10,7 @@
 	cont "type #MON!"
 	done
 
-_UnnamedText_5cb77:: ; 9c069 (27:4069)
+_VermilionGymText_5cb77:: ; 9c069 (27:4069)
 	text "The THUNDERBADGE"
 	line "cranks up your"
 	cont "#MON's SPEED!"
@@ -111,7 +111,7 @@
 	cont "next to it!"
 	done
 
-_UnnamedText_5cbf4:: ; 9c32b (27:432b)
+_VermilionGymText_5cbf4:: ; 9c32b (27:432b)
 	text "Yo! Champ in"
 	line "making!"
 
@@ -137,7 +137,7 @@
 	cont "get to him!"
 	done
 
-_UnnamedText_5cbf9:: ; 9c429 (27:4429)
+_VermilionGymText_5cbf9:: ; 9c429 (27:4429)
 	text "Whew! That match"
 	line "was electric!"
 	done
--- a/text/maps/viridian_city.asm
+++ b/text/maps/viridian_city.asm
@@ -9,7 +9,7 @@
 	cont "time, anywhere!"
 	done
 
-_UnnamedText_19122:: ; a4437 (29:4437)
+_ViridianCityText_19122:: ; a4437 (29:4437)
 	text "This #MON GYM"
 	line "is always closed."
 
@@ -17,12 +17,12 @@
 	line "LEADER is?"
 	done
 
-_UnnamedText_19127:: ; a4474 (29:4474)
+_ViridianCityText_19127:: ; a4474 (29:4474)
 	text "VIRIDIAN GYM's"
 	line "LEADER returned!"
 	done
 
-_UnnamedText_1914d:: ; a4494 (29:4494)
+_ViridianCityText_1914d:: ; a4494 (29:4494)
 	text "You want to know"
 	line "about the 2 kinds"
 	cont "of caterpillar"
@@ -29,11 +29,11 @@
 	cont "#MON?"
 	done
 
-_UnnamedText_19152:: ; a44cd (29:44cd)
+_ViridianCityText_19152:: ; a44cd (29:44cd)
 	text "Oh, OK then!"
 	done
 
-_UnnamedText_19157:: ; a44db (29:44db)
+_ViridianCityText_19157:: ; a44db (29:44db)
 	text "CATERPIE has no"
 	line "poison, but"
 	cont "WEEDLE does."
@@ -42,7 +42,7 @@
 	line "POISON STING!"
 	done
 
-_UnnamedText_19175:: ; a4525 (29:4525)
+_ViridianCityText_19175:: ; a4525 (29:4525)
 	text "Oh Grandpa! Don't"
 	line "be so mean!"
 	cont "He hasn't had his"
@@ -49,7 +49,7 @@
 	cont "coffee yet."
 	done
 
-_UnnamedText_1917a:: ; a4560 (29:4560)
+_ViridianCityText_1917a:: ; a4560 (29:4560)
 	text "When I go shop in"
 	line "PEWTER CITY, I"
 	cont "have to take the"
@@ -57,7 +57,7 @@
 	cont "VIRIDIAN FOREST."
 	done
 
-_UnnamedText_19191:: ; a45b5 (29:45b5)
+_ViridianCityText_19191:: ; a45b5 (29:45b5)
 	text "You can't go"
 	line "through here!"
 
@@ -65,7 +65,7 @@
 	line "property!"
 	done
 
-_UnnamedText_191ca:: ; a45ea (29:45ea)
+_ViridianCityText_191ca:: ; a45ea (29:45ea)
 	text "Yawn!"
 	line "I must have dozed"
 	cont "off in the sun."
@@ -97,7 +97,7 @@
 	line "stuff already."
 	done
 
-_UnnamedText_1920a:: ; a46f9 (29:46f9)
+_ViridianCityText_1920a:: ; a46f9 (29:46f9)
 	text "Ahh, I've had my"
 	line "coffee now and I"
 	cont "feel great!"
@@ -109,7 +109,7 @@
 	line "hurry?"
 	done
 
-_UnnamedText_1920f:: ; a4754 (29:4754)
+_ViridianCityText_1920f:: ; a4754 (29:4754)
 	text "I see you're using"
 	line "a #DEX."
 
@@ -126,12 +126,12 @@
 	line "how to then."
 	done
 
-_UnnamedText_19214:: ; a47e6 (29:47e6)
+_ViridianCityText_19214:: ; a47e6 (29:47e6)
 	text "Time is money..."
 	line "Go along then."
 	done
 
-_UnnamedText_19219:: ; a4807 (29:4807)
+_ViridianCityText_19219:: ; a4807 (29:4807)
 	text "First, you need"
 	line "to weaken the"
 	cont "target #MON."
--- a/text/maps/viridian_gym.asm
+++ b/text/maps/viridian_gym.asm
@@ -1,4 +1,4 @@
-_UnnamedText_74ace:: ; 95e09 (25:5e09)
+_ViridianGymText_74ace:: ; 95e09 (25:5e09)
 	text "Fwahahaha! This is"
 	line "my hideout!"
 
@@ -18,7 +18,7 @@
 	cont "greatest trainer!"
 	done
 
-_UnnamedText_74ad3:: ; 95ed5 (25:5ed5)
+_ViridianGymText_74ad3:: ; 95ed5 (25:5ed5)
 	text "Ha!"
 	line "That was a truly"
 	cont "intense fight!"
@@ -26,7 +26,7 @@
 	cont "As proof, here is"
 	cont "the EARTHBADGE!@@"
 
-_UnnamedText_74ad9:: ; 95f2b (25:5f2b)
+_ViridianGymText_74ad9:: ; 95f2b (25:5f2b)
 	text "Having lost, I"
 	line "cannot face my"
 	cont "underlings!"
@@ -211,7 +211,7 @@
 	cont "our GYM LEADER!"
 	done
 
-_UnnamedText_74bd4:: ; 96451 (25:6451)
+_ViridianGymText_74bd4:: ; 96451 (25:6451)
 	text "Yo! Champ in"
 	line "making!"
 
@@ -229,7 +229,7 @@
 	cont "#MON!"
 	done
 
-_UnnamedText_74bd9:: ; 964fb (25:64fb)
+_ViridianGymText_74bd9:: ; 964fb (25:64fb)
 	text "Blow me away!"
 	line "GIOVANNI was the"
 	cont "GYM LEADER here?"
--- a/text/maps/viridian_house.asm
+++ b/text/maps/viridian_house.asm
@@ -13,7 +13,7 @@
 	line "#MON too."
 	done
 
-_UnnamedText_1d5b1:: ; 95de1 (25:5de1)
+_ViridianHouseText_1d5b1:: ; 95de1 (25:5de1)
 	text "SPEARY: Tetweet!"
 	done
 
--- a/text/maps/wardens_house.asm
+++ b/text/maps/wardens_house.asm
@@ -72,12 +72,12 @@
 	line "stuffed full!"
 	done
 
-_UnnamedText_75176:: ; 9e696 (27:6696)
+_FuchsiaHouse2Text_75176:: ; 9e696 (27:6696)
 	text "#MON photos"
 	line "and fossils."
 	done
 
-_UnnamedText_7517b:: ; 9e6b0 (27:66b0)
+_FuchsiaHouse2Text_7517b:: ; 9e6b0 (27:66b0)
 	text "Old #MON"
 	line "merchandise."
 	done