pokered/scripts/route22.asm
2014-05-18 14:19:10 -04:00

440 lines
7.7 KiB
NASM
Executable file

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 "@"