summaryrefslogtreecommitdiff
path: root/scripts/silphco7.asm
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-18 14:19:10 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-18 14:19:10 -0400
commit24c01b09bb2b617812bd826d1cf9ab5e3ec6a023 (patch)
tree07d2ed81b23de081f2003d9f8d50170344dd5ada /scripts/silphco7.asm
parent4e4e72d02a5a202daea3a73363d2a4c3ba34e724 (diff)
Pull map scripts out of main.asm
Diffstat (limited to 'scripts/silphco7.asm')
-rwxr-xr-xscripts/silphco7.asm525
1 files changed, 525 insertions, 0 deletions
diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm
new file mode 100755
index 00000000..dfd139c0
--- /dev/null
+++ b/scripts/silphco7.asm
@@ -0,0 +1,525 @@
+SilphCo7Script: ; 51b61 (14:5b61)
+ call SilphCo7Script_51b77
+ call EnableAutoTextBoxDrawing
+ ld hl, SilphCo7TrainerHeaders
+ ld de, SilphCo7ScriptPointers
+ ld a, [W_SILPHCO7CURSCRIPT]
+ call ExecuteCurMapScriptInTable
+ ld [W_SILPHCO7CURSCRIPT], a
+ ret
+
+SilphCo7Script_51b77: ; 51b77 (14:5b77)
+ ld hl, $d126
+ bit 5, [hl]
+ res 5, [hl]
+ ret z
+ ld hl, DataTable_51bc1 ; $5bc1
+ call SilphCo7Text_51bc8
+ call SilphCo7Text_51bf4
+ ld a, [$d830]
+ bit 4, a
+ jr nz, .asm_51b9e
+ push af
+ ld a, $54
+ ld [$d09f], a
+ ld bc, $305
+ ld a, $17
+ call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ pop af
+.asm_51b9e
+ bit 5, a
+ jr nz, .asm_51bb1
+ push af
+ ld a, $54
+ ld [$d09f], a
+ ld bc, $20a
+ ld a, $17
+ call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+ pop af
+.asm_51bb1
+ bit 6, a
+ ret nz
+ ld a, $54
+ ld [$d09f], a
+ ld bc, $60a
+ ld a, $17
+ jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
+
+DataTable_51bc1: ; 51bc1 (14:5bc1)
+ db $03,$05,$02,$0A,$06,$0A,$FF
+
+SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
+ push hl
+ ld hl, $d73f
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ xor a
+ ld [$ffe0], a
+ pop hl
+.asm_51bd4
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_51bf0
+ push hl
+ ld hl, $ffe0
+ inc [hl]
+ pop hl
+ cp b
+ jr z, .asm_51be5
+ inc hl
+ jr .asm_51bd4
+.asm_51be5
+ ld a, [hli]
+ cp c
+ jr nz, .asm_51bd4
+ ld hl, $d73f
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+.asm_51bf0
+ xor a
+ ld [$ffe0], a
+ ret
+
+SilphCo7Text_51bf4: ; 51bf4 (14:5bf4)
+ ld hl, $d830
+ ld a, [$ffe0]
+ and a
+ ret z
+ cp $1
+ jr nz, .asm_51c02
+ set 4, [hl]
+ ret
+.asm_51c02
+ cp $2
+ jr nz, .asm_51c09
+ set 5, [hl]
+ ret
+.asm_51c09
+ set 6, [hl]
+ ret
+
+SilphCo7Text_51c0c: ; 51c0c (14:5c0c)
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+
+SilphCo7Text_51c10: ; 51c10 (14:5c10)
+ ld [W_SILPHCO7CURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ ret
+
+SilphCo7ScriptPointers: ; 51c17 (14:5c17)
+ dw SilphCo7Script0
+ dw Func_324c
+ dw EndTrainerBattle
+ dw SilphCo7Script3
+ dw SilphCo7Script4
+ dw SilphCo7Script5
+
+SilphCo7Script0: ; 51c23 (14:5c23)
+ ld a, [$d82f]
+ bit 0, a
+ jp nz, CheckFightingMapTrainers
+ ld hl, CoordsData_51c78
+ call ArePlayerCoordsInArray
+ jp nc, CheckFightingMapTrainers
+ xor a
+ ld [H_CURRENTPRESSEDBUTTONS], a
+ ld a, $f0
+ ld [wJoypadForbiddenButtonsMask], a
+ ld a, $4
+ ld [$d528], a
+ ld a, $ff
+ ld [$c0ee], a
+ call PlaySound
+ ld c, BANK(Music_MeetRival)
+ ld a, MUSIC_MEET_RIVAL
+ call PlayMusic
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call DisplayTextID
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call SetSpriteMovementBytesToFF
+ ld de, MovementData_51c7d
+ ld a, [wWhichTrade] ; $cd3d
+ ld [$cf0d], a
+ cp $1
+ jr z, .asm_51c6c
+ inc de
+.asm_51c6c
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call MoveSprite
+ ld a, $3
+ jp SilphCo7Text_51c10
+
+CoordsData_51c78: ; 51c78 (14:5c78)
+ db $02,$03
+ db $03,$03
+ db $FF
+
+MovementData_51c7d: ; 51c7d (14:5c7d)
+ db $40,$40,$40,$40,$FF
+
+SilphCo7Script3: ; 51c82 (14:5c82)
+ ld a, [$d730]
+ bit 0, a
+ ret nz
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld a, $d
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call DisplayTextID
+ call Delay3
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, SilphCo7Text14 ; $5ec8
+ ld de, SilphCo7Text_51ecd ; $5ecd
+ call PreBattleSaveRegisters
+ ld a, SONY2 + $c8
+ ld [W_CUROPPONENT], a ; $d059
+ ld a, [W_RIVALSTARTER] ; $d715
+ cp SQUIRTLE
+ jr nz, .asm_51cb6
+ ld a, $7
+ jr .asm_51cc0
+.asm_51cb6
+ cp BULBASAUR
+ jr nz, .asm_51cbe
+ ld a, $8
+ jr .asm_51cc0
+.asm_51cbe
+ ld a, $9
+.asm_51cc0
+ ld [W_TRAINERNO], a ; $d05d
+ ld a, $4
+ jp SilphCo7Text_51c10
+
+SilphCo7Script4: ; 51cc8 (14:5cc8)
+ ld a, [W_ISINBATTLE] ; $d057
+ cp $ff
+ jp z, SilphCo7Text_51c0c
+ ld a, $f0
+ ld [wJoypadForbiddenButtonsMask], a
+ ld hl, $d82f
+ set 0, [hl]
+ ld a, $4
+ ld [$d528], a
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ ld a, $4
+ ld [$ff8d], a
+ call Func_34a6
+ ld a, $f
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call DisplayTextID
+ ld a, $ff
+ ld [$c0ee], a
+ call PlaySound
+ ld b, BANK(Music_RivalAlternateStart)
+ ld hl, Music_RivalAlternateStart
+ call Bankswitch
+ ld de, MovementData_51d1d
+ ld a, [$cf0d]
+ cp $1
+ jr nz, .asm_51d0e
+ ld de, MovementData_51d1a
+.asm_51d0e
+ ld a, $9
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call MoveSprite
+ ld a, $5
+ jp SilphCo7Text_51c10
+
+MovementData_51d1a: ; 51d1a (14:5d1a)
+ db $C0,$C0,$FF
+
+MovementData_51d1d: ; 51d1d (14:5d1d)
+ db $80,$40,$40,$C0,$C0,$C0,$00,$FF
+
+SilphCo7Script5: ; 51d25 (14:5d25)
+ ld a, [$d730]
+ bit 0, a
+ ret nz
+ ld a, $a7
+ ld [$cc4d], a
+ ld a, $11
+ call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
+ call Func_2307
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ jp SilphCo7Text_51c10
+
+SilphCo7TextPointers: ; 51d3f (14:5d3f)
+ dw SilphCo7Text1
+ dw SilphCo7Text2
+ dw SilphCo7Text3
+ dw SilphCo7Text4
+ dw SilphCo7Text5
+ dw SilphCo7Text6
+ dw SilphCo7Text7
+ dw SilphCo7Text8
+ dw SilphCo7Text9
+ dw Predef5CText
+ dw Predef5CText
+ dw Predef5CText
+ dw SilphCo7Text13
+ dw SilphCo7Text14
+ dw SilphCo7Text15
+
+SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
+SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
+ db $5 ; flag's bit
+ db ($2 << 4) ; trainer's view range
+ dw $d82f ; flag's byte
+ dw SilphCo7BattleText1 ; 0x5e5a TextBeforeBattle
+ dw SilphCo7AfterBattleText1 ; 0x5e64 TextAfterBattle
+ dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
+ dw SilphCo7EndBattleText1 ; 0x5e5f TextEndBattle
+
+SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
+ db $6 ; flag's bit
+ db ($3 << 4) ; trainer's view range
+ dw $d82f ; flag's byte
+ dw SilphCo7BattleText2 ; 0x5e73 TextBeforeBattle
+ dw SilphCo7AfterBattleText2 ; 0x5e7d TextAfterBattle
+ dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
+ dw SilphCo7EndBattleText2 ; 0x5e78 TextEndBattle
+
+SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
+ db $7 ; flag's bit
+ db ($3 << 4) ; trainer's view range
+ dw $d82f ; flag's byte
+ dw SilphCo7BattleText3 ; 0x5e8c TextBeforeBattle
+ dw SilphCo7AfterBattleText3 ; 0x5e96 TextAfterBattle
+ dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
+ dw SilphCo7EndBattleText3 ; 0x5e91 TextEndBattle
+
+SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
+ db $8 ; flag's bit
+ db ($4 << 4) ; trainer's view range
+ dw $d82f ; flag's byte
+ dw SilphCo7BattleText4 ; 0x5ea5 TextBeforeBattle
+ dw SilphCo7AfterBattleText4 ; 0x5eaf TextAfterBattle
+ dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
+ dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
+
+ db $ff
+
+SilphCo7Text1:
+; lapras guy
+ db $08 ; asm
+ ld a, [$d72e]
+ bit 0, a ; got lapras?
+ jr z, .givelapras
+ ld a, [$d838]
+ bit 7, a ; saved silph?
+ jr nz, .savedsilph
+ ld hl, .LaprasGuyText
+ call PrintText
+ jr .done
+.givelapras
+ ld hl, .MeetLaprasGuyText
+ call PrintText
+ ld bc, (LAPRAS << 8) | 15
+ call GivePokemon
+ jr nc, .done
+ ld a, [$ccd3]
+ and a
+ call z, WaitForTextScrollButtonPress
+ call EnableAutoTextBoxDrawing
+ ld hl, .HeresYourLaprasText
+ call PrintText
+ ld hl, $d72e
+ set 0, [hl]
+ jr .done
+.savedsilph
+ ld hl, .LaprasGuySavedText
+ call PrintText
+.done
+ jp TextScriptEnd
+
+.MeetLaprasGuyText
+ TX_FAR _MeetLaprasGuyText
+ db "@"
+
+.HeresYourLaprasText
+ TX_FAR _HeresYourLaprasText
+ db "@"
+
+.LaprasGuyText
+ TX_FAR _LaprasGuyText
+ db "@"
+
+.LaprasGuySavedText
+ TX_FAR _LaprasGuySavedText
+ db "@"
+
+SilphCo7Text2:
+ db $8
+ ld a, [$d838]
+ bit 7, a ; saved silph?
+ jr nz, .savedsilph
+ ld hl, .rockettext
+ call PrintText
+ jr .done
+.savedsilph
+ ld hl, .savedtext
+ call PrintText
+.done
+ jp TextScriptEnd
+
+.rockettext
+ TX_FAR _SilphCo7Text_51e00
+ db "@"
+
+.savedtext
+ TX_FAR _CanceledMasterBallText
+ db "@"
+
+SilphCo7Text3:
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a ; saved silph?
+ jr nz, .savedsilph
+ ld hl, .rockettext
+ call PrintText
+ jr .done
+.savedsilph
+ ld hl, .savedtext
+ call PrintText
+.done
+ jp TextScriptEnd
+
+.rockettext
+ TX_FAR _SilphCo7Text_51e23
+ db "@"
+
+.savedtext
+ TX_FAR _SilphCo7Text_51e28
+ db "@"
+
+SilphCo7Text4:
+ db $08 ; asm
+ ld a, [$d838]
+ bit 7, a ; saved silph?
+ jr nz, .savedsilph
+ ld hl, .rockettext
+ call PrintText
+ jr .done
+.savedsilph
+ ld hl, .savedtext
+ call PrintText
+.done
+ jp TextScriptEnd
+
+.rockettext
+ TX_FAR _SilphCo7Text_51e46
+ db "@"
+
+.savedtext
+ TX_FAR _SilphCo7Text_51e4b
+ db "@"
+
+SilphCo7Text5: ; 51e50 (14:5e50)
+ db $08 ; asm
+ ld hl, SilphCo7TrainerHeader0
+ call TalkToTrainer
+ jp TextScriptEnd
+
+SilphCo7BattleText1: ; 51e5a (14:5e5a)
+ TX_FAR _SilphCo7BattleText1
+ db "@"
+
+SilphCo7EndBattleText1: ; 51e5f (14:5e5f)
+ TX_FAR _SilphCo7EndBattleText1
+ db "@"
+
+SilphCo7AfterBattleText1: ; 51e64 (14:5e64)
+ TX_FAR _SilphCo7AfterBattleText1
+ db "@"
+
+SilphCo7Text6: ; 51e69 (14:5e69)
+ db $08 ; asm
+ ld hl, SilphCo7TrainerHeader2
+ call TalkToTrainer
+ jp TextScriptEnd
+
+SilphCo7BattleText2: ; 51e73 (14:5e73)
+ TX_FAR _SilphCo7BattleText2
+ db "@"
+
+SilphCo7EndBattleText2: ; 51e78 (14:5e78)
+ TX_FAR _SilphCo7EndBattleText2
+ db "@"
+
+SilphCo7AfterBattleText2: ; 51e7d (14:5e7d)
+ TX_FAR _SilphCo7AfterBattleText2
+ db "@"
+
+SilphCo7Text7: ; 51e82 (14:5e82)
+ db $08 ; asm
+ ld hl, SilphCo7TrainerHeader3
+ call TalkToTrainer
+ jp TextScriptEnd
+
+SilphCo7BattleText3: ; 51e8c (14:5e8c)
+ TX_FAR _SilphCo7BattleText3
+ db "@"
+
+SilphCo7EndBattleText3: ; 51e91 (14:5e91)
+ TX_FAR _SilphCo7EndBattleText3
+ db "@"
+
+SilphCo7AfterBattleText3: ; 51e96 (14:5e96)
+ TX_FAR _SilphCo7AfterBattleText3
+ db "@"
+
+SilphCo7Text8: ; 51e9b (14:5e9b)
+ db $08 ; asm
+ ld hl, SilphCo7TrainerHeader4
+ call TalkToTrainer
+ jp TextScriptEnd
+
+SilphCo7BattleText4: ; 51ea5 (14:5ea5)
+ TX_FAR _SilphCo7BattleText4
+ db "@"
+
+SilphCo7EndBattleText4: ; 51eaa (14:5eaa)
+ TX_FAR _SilphCo7EndBattleText4
+ db "@"
+
+SilphCo7AfterBattleText4: ; 51eaf (14:5eaf)
+ TX_FAR _SilphCo7AfterBattleText4
+ db "@"
+
+SilphCo7Text9: ; 51eb4 (14:5eb4)
+ db $08 ; asm
+ ld hl, SilphCo7Text_51ebe
+ call PrintText
+ jp TextScriptEnd
+
+SilphCo7Text_51ebe: ; 51ebe (14:5ebe)
+ TX_FAR _SilphCo7Text_51ebe
+ db "@"
+
+SilphCo7Text13: ; 51ec3 (14:5ec3)
+ TX_FAR _SilphCo7Text_51ec3
+ db "@"
+
+SilphCo7Text14: ; 51ec8 (14:5ec8)
+ TX_FAR _SilphCo7Text_51ec8
+ db "@"
+
+SilphCo7Text_51ecd: ; 51ecd (14:5ecd)
+ TX_FAR _SilphCo7Text_51ecd
+ db "@"
+
+SilphCo7Text15: ; 51ed2 (14:5ed2)
+ TX_FAR _SilphCo7Text_51ed2
+ db "@"