summaryrefslogtreecommitdiff
path: root/scripts/route22.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/route22.asm')
-rwxr-xr-xscripts/route22.asm440
1 files changed, 440 insertions, 0 deletions
diff --git a/scripts/route22.asm b/scripts/route22.asm
new file mode 100755
index 00000000..b9801600
--- /dev/null
+++ b/scripts/route22.asm
@@ -0,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 "@"