diff options
Diffstat (limited to 'scripts/route22.asm')
-rwxr-xr-x | scripts/route22.asm | 440 |
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 "@" |