mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 07:25:21 +00:00
431 lines
7.9 KiB
NASM
Executable file
431 lines
7.9 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 [wJoyIgnore], a
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
Route22Script7: ; 50ed5 (14:4ed5)
|
|
ret
|
|
|
|
Route22Script_50ed6: ; 50ed6 (14:4ed6)
|
|
ld a, [W_RIVALSTARTER] ; wd715
|
|
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 ; wd05d
|
|
ret
|
|
|
|
Route22MoveRivalSprite: ; 50ee6 (14:4ee6)
|
|
ld de, Route22RivalMovementData ; $4efb
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr z, .asm_50ef1
|
|
inc de
|
|
.asm_50ef1
|
|
call MoveSprite
|
|
ld a, $c
|
|
ld [$ff8d], a
|
|
jp SetSpriteFacingDirectionAndDelay
|
|
|
|
Route22RivalMovementData: ; 50efb (14:4efb)
|
|
db $C0,$C0,$C0,$C0,$FF ; move right 4 times
|
|
|
|
Route22Script0: ; 50f00 (14:4f00)
|
|
ld a, [wd7eb]
|
|
bit 7, a
|
|
ret z
|
|
ld hl, .Route22RivalBattleCoords ; $4f2d
|
|
call ArePlayerCoordsInArray
|
|
ret nc
|
|
ld a, [wWhichTrade]
|
|
ld [wcf0d], a
|
|
xor a
|
|
ld [hJoyHeld], a
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $2
|
|
ld [wd528], a
|
|
ld a, [wd7eb]
|
|
bit 0, a ; is this the rival battle at the beginning of the game?
|
|
jr nz, .firstRivalBattle ; 0x50f25 $b
|
|
bit 1, a ; is this the rival at the end of the game?
|
|
jp nz, Route22Script_5104e
|
|
ret
|
|
|
|
.Route22RivalBattleCoords
|
|
db $04, $1D
|
|
db $05, $1D
|
|
db $FF
|
|
|
|
.firstRivalBattle
|
|
ld a, $1
|
|
ld [wcd4f], a
|
|
xor a
|
|
ld [wcd50], a
|
|
predef EmotionBubble
|
|
ld a, [wWalkBikeSurfState]
|
|
and a
|
|
jr z, .asm_50f4e ; 0x50f44 $8
|
|
ld a, $ff
|
|
ld [wc0ee], a
|
|
call PlaySound
|
|
.asm_50f4e
|
|
ld c, BANK(Music_MeetRival)
|
|
ld a, MUSIC_MEET_RIVAL
|
|
call PlayMusic
|
|
ld a, $1
|
|
ld [$ff8c], a
|
|
call Route22MoveRivalSprite
|
|
ld a, $1
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
ret
|
|
|
|
Route22Script1: ; 50f62 (14:4f62)
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr nz, .asm_50f78 ; 0x50f6d $9
|
|
ld a, $4
|
|
ld [wd528], 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 SetSpriteFacingDirectionAndDelay
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $1
|
|
ld [$ff8c], a
|
|
call DisplayTextID
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, Route22RivalDefeatedText1
|
|
ld de, Route22Text_511bc
|
|
call SaveEndBattleTextPointers
|
|
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)
|
|
; starter the rival picked, rival trainer number
|
|
db STARTER2,$04
|
|
db STARTER3,$05
|
|
db STARTER1,$06
|
|
|
|
Route22Script2: ; 50fb5 (14:4fb5)
|
|
ld a, [W_ISINBATTLE]
|
|
cp $ff
|
|
jp z, Route22Script_50ece
|
|
ld a, [wSpriteStateData1 + 9]
|
|
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 SetSpriteFacingDirectionAndDelay
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld hl, wd7eb
|
|
set 5, [hl]
|
|
ld a, $1
|
|
ld [$ff8c], a
|
|
call DisplayTextID
|
|
ld a, $ff
|
|
ld [wc0ee], a
|
|
call PlaySound
|
|
callba Music_RivalAlternateStart
|
|
ld a, [wcf0d]
|
|
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, Route22RivalExitMovementData1 ; $5017
|
|
jr asm_51010
|
|
|
|
Route22Script_5100d: ; 5100d (14:500d)
|
|
ld de, Route22RivalExitMovementData2 ; $501f
|
|
asm_51010
|
|
ld a, $1
|
|
ld [H_SPRITEHEIGHT], a
|
|
jp MoveSprite
|
|
|
|
Route22RivalExitMovementData1: ; 51017 (14:5017)
|
|
db $C0,$C0,$00,$00,$00,$00,$00,$FF
|
|
|
|
Route22RivalExitMovementData2: ; 5101f (14:501f)
|
|
db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
|
|
|
|
Route22Script3: ; 5102a (14:502a)
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $22
|
|
ld [wcc4d], a
|
|
predef HideObject
|
|
call PlayDefaultMusic
|
|
ld hl, wd7eb
|
|
res 0, [hl]
|
|
res 7, [hl]
|
|
ld a, $0
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
ret
|
|
|
|
Route22Script_5104e: ; 5104e (14:504e)
|
|
ld a, $2
|
|
ld [wcd4f], a
|
|
xor a
|
|
ld [wcd50], a
|
|
predef EmotionBubble
|
|
ld a, [wWalkBikeSurfState]
|
|
and a
|
|
jr z, .skipYVisibilityTesta
|
|
ld a, $ff
|
|
ld [wc0ee], a
|
|
call PlaySound
|
|
.skipYVisibilityTesta
|
|
ld a, $ff
|
|
ld [wc0ee], a
|
|
call PlaySound
|
|
callba Music_RivalAlternateTempo
|
|
ld a, $2
|
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
|
call Route22MoveRivalSprite
|
|
ld a, $4
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
ret
|
|
|
|
Route22Script4: ; 51087 (14:5087)
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, $2
|
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr nz, .asm_510a1
|
|
ld a, $4
|
|
ld [wd528], a
|
|
ld a, $4
|
|
jr .asm_510a8
|
|
.asm_510a1
|
|
ld a, $2
|
|
ld [wd528], a
|
|
ld a, $c
|
|
.asm_510a8
|
|
ld [$ff8d], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $2
|
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
|
call DisplayTextID
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, Route22RivalDefeatedText2 ; $51cb
|
|
ld de, Route22Text_511d0 ; $51d0
|
|
call SaveEndBattleTextPointers
|
|
ld a, SONY2 + $c8
|
|
ld [W_CUROPPONENT], a ; wd059
|
|
ld hl, StarterMons_510d9 ; $50d9
|
|
call Route22Script_50ed6
|
|
ld a, $5
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
ret
|
|
|
|
StarterMons_510d9: ; 510d9 (14:50d9)
|
|
db STARTER2,$0a
|
|
db STARTER3,$0b
|
|
db STARTER1,$0c
|
|
|
|
Route22Script5: ; 510df (14:50df)
|
|
ld a, [W_ISINBATTLE] ; W_ISINBATTLE
|
|
cp $ff
|
|
jp z, Route22Script_50ece
|
|
ld a, $2
|
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
|
ld a, [wcf0d]
|
|
cp $1
|
|
jr nz, .asm_510fb
|
|
ld a, $4
|
|
ld [wd528], a
|
|
ld a, $4
|
|
jr .asm_51102
|
|
.asm_510fb
|
|
ld a, $2
|
|
ld [wd528], a
|
|
ld a, $c
|
|
.asm_51102
|
|
ld [$ff8d], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld hl, wd7eb
|
|
set 6, [hl]
|
|
ld a, $2
|
|
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
|
call DisplayTextID
|
|
ld a, $ff
|
|
ld [wc0ee], a
|
|
call PlaySound
|
|
callba Music_RivalAlternateStartAndTempo
|
|
ld a, [wcf0d]
|
|
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 ; left
|
|
|
|
MovementData_5114d: ; 5114d (14:514d)
|
|
db $80,$80,$80,$FF ; left x3
|
|
|
|
Route22Script6: ; 51151 (14:5151)
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $23
|
|
ld [wcc4d], a
|
|
predef HideObject
|
|
call PlayDefaultMusic
|
|
ld hl, wd7eb
|
|
res 1, [hl]
|
|
res 7, [hl]
|
|
ld a, $7
|
|
ld [W_ROUTE22CURSCRIPT], a
|
|
ret
|
|
|
|
Route22TextPointers: ; 51175 (14:5175)
|
|
dw Route22Text1
|
|
dw Route22Text2
|
|
dw Route22FrontGateText
|
|
|
|
Route22Text1: ; 5117b (14:517b)
|
|
db $08 ; asm
|
|
ld a, [wd7eb]
|
|
bit 5, a
|
|
jr z, .asm_a88cf ; 0x51181
|
|
ld hl, Route22RivalAfterBattleText1
|
|
call PrintText
|
|
jr .asm_48088 ; 0x51189
|
|
.asm_a88cf ; 0x5118b
|
|
ld hl, Route22RivalBeforeBattleText1
|
|
call PrintText
|
|
.asm_48088 ; 0x51191
|
|
jp TextScriptEnd
|
|
|
|
Route22Text2: ; 51194 (14:5194)
|
|
db $08 ; asm
|
|
ld a, [wd7eb]
|
|
bit 6, a
|
|
jr z, .asm_58c0a ; 0x5119a
|
|
ld hl, Route22RivalAfterBattleText2
|
|
call PrintText
|
|
jr .asm_673ee ; 0x511a2
|
|
.asm_58c0a ; 0x511a4
|
|
ld hl, Route22RivalBeforeBattleText2
|
|
call PrintText
|
|
.asm_673ee ; 0x511aa
|
|
jp TextScriptEnd
|
|
|
|
Route22RivalBeforeBattleText1: ; 511ad (14:51ad)
|
|
TX_FAR _Route22RivalBeforeBattleText1
|
|
db "@"
|
|
|
|
Route22RivalAfterBattleText1: ; 511b2 (14:51b2)
|
|
TX_FAR _Route22RivalAfterBattleText1
|
|
db "@"
|
|
|
|
Route22RivalDefeatedText1: ; 511b7 (14:51b7)
|
|
TX_FAR _Route22RivalDefeatedText1
|
|
db "@"
|
|
|
|
Route22Text_511bc: ; 511bc (14:51bc)
|
|
TX_FAR _Route22Text_511bc
|
|
db "@"
|
|
|
|
Route22RivalBeforeBattleText2: ; 511c1 (14:51c1)
|
|
TX_FAR _Route22RivalBeforeBattleText2
|
|
db "@"
|
|
|
|
Route22RivalAfterBattleText2: ; 511c6 (14:51c6)
|
|
TX_FAR _Route22RivalAfterBattleText2
|
|
db "@"
|
|
|
|
Route22RivalDefeatedText2: ; 511cb (14:51cb)
|
|
TX_FAR _Route22RivalDefeatedText2
|
|
db "@"
|
|
|
|
Route22Text_511d0: ; 511d0 (14:51d0)
|
|
TX_FAR _Route22Text_511d0
|
|
db "@"
|
|
|
|
Route22FrontGateText: ; 511d5 (14:51d5)
|
|
TX_FAR _Route22FrontGateText
|
|
db "@"
|