pokered/scripts/route22.asm

446 lines
8.5 KiB
NASM
Raw Normal View History

2014-05-18 18:19:10 +00:00
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
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld [W_ROUTE22CURSCRIPT], a
Route22Script7: ; 50ed5 (14:4ed5)
ret
Route22Script_50ed6: ; 50ed6 (14:4ed6)
ld a, [W_RIVALSTARTER]
2014-05-18 18:19:10 +00:00
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
2014-05-18 18:19:10 +00:00
ret
Route22MoveRivalSprite: ; 50ee6 (14:4ee6)
ld de, Route22RivalMovementData
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr z, .asm_50ef1
inc de
.asm_50ef1
call MoveSprite
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_RIGHT
ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
Route22RivalMovementData: ; 50efb (14:4efb)
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db $FF
2014-05-18 18:19:10 +00:00
Route22Script0: ; 50f00 (14:4f00)
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_527
2014-05-18 18:19:10 +00:00
ret z
ld hl, .Route22RivalBattleCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
ret nc
2015-07-18 15:17:29 +00:00
ld a, [wCoordIndex]
ld [wcf0d], a
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_520
jr nz, .firstRivalBattle
2015-07-21 01:32:02 +00:00
CheckEventReuseA EVENT_521 ; is this the rival at the end of the game?
2014-05-18 18:19:10 +00:00
jp nz, Route22Script_5104e
ret
2014-06-09 20:58:02 +00:00
.Route22RivalBattleCoords
2014-05-18 18:19:10 +00:00
db $04, $1D
db $05, $1D
db $FF
.firstRivalBattle
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wEmotionBubbleSpriteIndex], a
xor a ; EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
2014-09-13 07:50:56 +00:00
ld a, [wWalkBikeSurfState]
2014-05-18 18:19:10 +00:00
and a
jr z, .asm_50f4e
2014-05-18 18:19:10 +00:00
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
.asm_50f4e
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
call Route22MoveRivalSprite
2014-05-18 18:19:10 +00:00
ld a, $1
ld [W_ROUTE22CURSCRIPT], a
ret
Route22Script1: ; 50f62 (14:4f62)
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr nz, .asm_50f78
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_UP
jr .asm_50f7a
2014-05-18 18:19:10 +00:00
.asm_50f78
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_RIGHT
2014-05-18 18:19:10 +00:00
.asm_50f7a
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, Route22RivalDefeatedText1
2014-05-18 18:19:10 +00:00
ld de, Route22Text_511bc
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
ld a, SONY1 + $c8
ld [W_CUROPPONENT], a
ld hl, StarterMons_50faf
2014-05-18 18:19:10 +00:00
call Route22Script_50ed6
ld a, $2
ld [W_ROUTE22CURSCRIPT], a
ret
StarterMons_50faf: ; 50faf (14:4faf)
; starter the rival picked, rival trainer number
2014-05-21 12:48:30 +00:00
db STARTER2,$04
db STARTER3,$05
db STARTER1,$06
2014-05-18 18:19:10 +00:00
Route22Script2: ; 50fb5 (14:4fb5)
ld a, [W_ISINBATTLE]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, Route22Script_50ece
ld a, [wSpriteStateData1 + 9]
and a ; cp SPRITE_FACING_DOWN
jr nz, .notDown
ld a, SPRITE_FACING_UP
jr .done
.notDown
ld a, SPRITE_FACING_RIGHT
.done
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-21 01:32:02 +00:00
SetEvent EVENT_525
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
callba Music_RivalAlternateStart
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr nz, .asm_50fff
2014-05-18 18:19:10 +00:00
call Route22Script_51008
jr .asm_51002
2014-05-18 18:19:10 +00:00
.asm_50fff
call Route22Script_5100d
.asm_51002
ld a, $3
ld [W_ROUTE22CURSCRIPT], a
ret
Route22Script_51008: ; 51008 (14:5008)
ld de, Route22RivalExitMovementData1
jr Route22MoveRival1
2014-05-18 18:19:10 +00:00
Route22Script_5100d: ; 5100d (14:500d)
ld de, Route22RivalExitMovementData2
Route22MoveRival1: ; 51010 (14:5010)
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
jp MoveSprite
Route22RivalExitMovementData1: ; 51017 (14:5017)
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db $FF
2014-05-18 18:19:10 +00:00
Route22RivalExitMovementData2: ; 5101f (14:501f)
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db NPC_MOVEMENT_DOWN
db $FF
2014-05-18 18:19:10 +00:00
Route22Script3: ; 5102a (14:502a)
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_1
ld [wcc4d], a
predef HideObject
call PlayDefaultMusic
2015-07-21 01:32:02 +00:00
ResetEvents EVENT_520, EVENT_527
2014-05-18 18:19:10 +00:00
ld a, $0
ld [W_ROUTE22CURSCRIPT], a
ret
Route22Script_5104e: ; 5104e (14:504e)
ld a, $2
ld [wEmotionBubbleSpriteIndex], a
xor a ; EXCLAMATION_BUBBLE
ld [wWhichEmotionBubble], a
predef EmotionBubble
2014-09-13 07:50:56 +00:00
ld a, [wWalkBikeSurfState]
2014-05-18 18:19:10 +00:00
and a
jr z, .skipYVisibilityTesta
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
.skipYVisibilityTesta
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
callba Music_RivalAlternateTempo
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
call Route22MoveRivalSprite
2014-05-18 18:19:10 +00:00
ld a, $4
ld [W_ROUTE22CURSCRIPT], a
ret
Route22Script4: ; 51087 (14:5087)
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr nz, .asm_510a1
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_UP
2014-05-18 18:19:10 +00:00
jr .asm_510a8
.asm_510a1
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_RIGHT
2014-05-18 18:19:10 +00:00
.asm_510a8
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, Route22RivalDefeatedText2
ld de, Route22Text_511d0
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
ld a, SONY2 + $c8
ld [W_CUROPPONENT], a
ld hl, StarterMons_510d9
2014-05-18 18:19:10 +00:00
call Route22Script_50ed6
ld a, $5
ld [W_ROUTE22CURSCRIPT], a
ret
StarterMons_510d9: ; 510d9 (14:50d9)
2014-05-21 12:48:30 +00:00
db STARTER2,$0a
db STARTER3,$0b
db STARTER1,$0c
2014-05-18 18:19:10 +00:00
Route22Script5: ; 510df (14:50df)
ld a, [W_ISINBATTLE]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, Route22Script_50ece
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr nz, .asm_510fb
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_UP
2014-05-18 18:19:10 +00:00
jr .asm_51102
.asm_510fb
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_RIGHT
2014-05-18 18:19:10 +00:00
.asm_51102
2015-07-18 15:17:29 +00:00
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-21 01:32:02 +00:00
SetEvent EVENT_526
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
callba Music_RivalAlternateStartAndTempo
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
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
jr Route22MoveRival2
2014-05-18 18:19:10 +00:00
Route22Script_51142: ; 51142 (14:5142)
ld de, MovementData_5114d
Route22MoveRival2: ; 51145 (14:5145)
2014-05-18 18:19:10 +00:00
ld a, $2
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
jp MoveSprite
MovementData_5114c: ; 5114c (14:514c)
db NPC_MOVEMENT_LEFT
2014-05-18 18:19:10 +00:00
MovementData_5114d: ; 5114d (14:514d)
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_LEFT
db $FF
2014-05-18 18:19:10 +00:00
Route22Script6: ; 51151 (14:5151)
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, HS_ROUTE_22_RIVAL_2
ld [wcc4d], a
predef HideObject
call PlayDefaultMusic
2015-07-21 01:32:02 +00:00
ResetEvents EVENT_521, EVENT_527
2014-05-18 18:19:10 +00:00
ld a, $7
ld [W_ROUTE22CURSCRIPT], a
ret
Route22TextPointers: ; 51175 (14:5175)
dw Route22Text1
dw Route22Text2
dw Route22FrontGateText
2014-05-18 18:19:10 +00:00
Route22Text1: ; 5117b (14:517b)
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_525
jr z, .asm_5118b
ld hl, Route22RivalAfterBattleText1
2014-05-18 18:19:10 +00:00
call PrintText
jr .asm_51191
.asm_5118b
ld hl, Route22RivalBeforeBattleText1
2014-05-18 18:19:10 +00:00
call PrintText
.asm_51191
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route22Text2: ; 51194 (14:5194)
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_526
jr z, .asm_511a4
ld hl, Route22RivalAfterBattleText2
2014-05-18 18:19:10 +00:00
call PrintText
jr .asm_511aa
.asm_511a4
ld hl, Route22RivalBeforeBattleText2
2014-05-18 18:19:10 +00:00
call PrintText
.asm_511aa
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route22RivalBeforeBattleText1: ; 511ad (14:51ad)
TX_FAR _Route22RivalBeforeBattleText1
2014-05-18 18:19:10 +00:00
db "@"
Route22RivalAfterBattleText1: ; 511b2 (14:51b2)
TX_FAR _Route22RivalAfterBattleText1
2014-05-18 18:19:10 +00:00
db "@"
Route22RivalDefeatedText1: ; 511b7 (14:51b7)
TX_FAR _Route22RivalDefeatedText1
2014-05-18 18:19:10 +00:00
db "@"
Route22Text_511bc: ; 511bc (14:51bc)
TX_FAR _Route22Text_511bc
db "@"
Route22RivalBeforeBattleText2: ; 511c1 (14:51c1)
TX_FAR _Route22RivalBeforeBattleText2
2014-05-18 18:19:10 +00:00
db "@"
Route22RivalAfterBattleText2: ; 511c6 (14:51c6)
TX_FAR _Route22RivalAfterBattleText2
2014-05-18 18:19:10 +00:00
db "@"
Route22RivalDefeatedText2: ; 511cb (14:51cb)
TX_FAR _Route22RivalDefeatedText2
2014-05-18 18:19:10 +00:00
db "@"
Route22Text_511d0: ; 511d0 (14:51d0)
TX_FAR _Route22Text_511d0
db "@"
Route22FrontGateText: ; 511d5 (14:51d5)
TX_FAR _Route22FrontGateText
2014-05-18 18:19:10 +00:00
db "@"