pokered/scripts/silphco7.asm

526 lines
10 KiB
NASM
Raw Normal View History

2014-05-18 18:19:10 +00:00
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, wd126
2014-05-18 18:19:10 +00:00
bit 5, [hl]
res 5, [hl]
ret z
ld hl, DataTable_51bc1
2014-05-18 18:19:10 +00:00
call SilphCo7Text_51bc8
call SilphCo7Text_51bf4
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
jr nz, .asm_51b9e
push af
ld a, $54
2015-07-24 21:39:45 +00:00
ld [wNewTileBlockID], a
2014-05-18 18:19:10 +00:00
ld bc, $305
2014-09-14 18:29:18 +00:00
predef ReplaceTileBlock
2014-05-18 18:19:10 +00:00
pop af
.asm_51b9e
2015-07-21 17:36:03 +00:00
CheckEventAfterBranchReuseA EVENT_SILPH_CO_7_UNLOCKED_DOOR2, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
jr nz, .asm_51bb1
push af
ld a, $54
2015-07-24 21:39:45 +00:00
ld [wNewTileBlockID], a
2014-05-18 18:19:10 +00:00
ld bc, $20a
2014-09-14 18:29:18 +00:00
predef ReplaceTileBlock
2014-05-18 18:19:10 +00:00
pop af
.asm_51bb1
2015-07-21 17:36:03 +00:00
CheckEventAfterBranchReuseA EVENT_SILPH_CO_7_UNLOCKED_DOOR3, EVENT_SILPH_CO_7_UNLOCKED_DOOR2
2014-05-18 18:19:10 +00:00
ret nz
ld a, $54
2015-07-24 21:39:45 +00:00
ld [wNewTileBlockID], a
2014-05-18 18:19:10 +00:00
ld bc, $60a
2014-09-14 18:29:18 +00:00
predef_jump ReplaceTileBlock
2014-05-18 18:19:10 +00:00
DataTable_51bc1: ; 51bc1 (14:5bc1)
db $03,$05,$02,$0A,$06,$0A,$FF
SilphCo7Text_51bc8: ; 51bc8 (14:5bc8)
push hl
2014-09-14 18:29:18 +00:00
ld hl, wCardKeyDoorY
2014-05-18 18:19:10 +00:00
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
2014-09-14 18:29:18 +00:00
ld hl, wCardKeyDoorY
2014-05-18 18:19:10 +00:00
xor a
ld [hli], a
ld [hl], a
ret
.asm_51bf0
xor a
ld [$ffe0], a
ret
SilphCo7Text_51bf4: ; 51bf4 (14:5bf4)
2015-07-21 17:36:03 +00:00
EventFlagAddress hl, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
ld a, [$ffe0]
and a
ret z
cp $1
2015-07-21 01:32:02 +00:00
jr nz, .next1
2015-07-21 17:36:03 +00:00
SetEventReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
ret
2015-07-21 01:32:02 +00:00
.next1
2014-05-18 18:19:10 +00:00
cp $2
2015-07-21 01:32:02 +00:00
jr nz, .next2
2015-07-21 17:36:03 +00:00
SetEventAfterBranchReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR2, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
ret
2015-07-21 01:32:02 +00:00
.next2
2015-07-21 17:36:03 +00:00
SetEventAfterBranchReuseHL EVENT_SILPH_CO_7_UNLOCKED_DOOR3, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
2014-05-18 18:19:10 +00:00
ret
SilphCo7Text_51c0c: ; 51c0c (14:5c0c)
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
SilphCo7Text_51c10: ; 51c10 (14:5c10)
ld [W_SILPHCO7CURSCRIPT], a
ld [W_CURMAPSCRIPT], a
ret
SilphCo7ScriptPointers: ; 51c17 (14:5c17)
dw SilphCo7Script0
2014-09-14 18:29:18 +00:00
dw DisplayEnemyTrainerTextAndStartBattle
2014-05-18 18:19:10 +00:00
dw EndTrainerBattle
dw SilphCo7Script3
dw SilphCo7Script4
dw SilphCo7Script5
SilphCo7Script0: ; 51c23 (14:5c23)
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_SILPH_CO_RIVAL
2014-05-18 18:19:10 +00:00
jp nz, CheckFightingMapTrainers
ld hl, CoordsData_51c78
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
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_DOWN
ld [wPlayerMovingDirection], a
2014-05-18 18:19:10 +00:00
ld a, $ff
ld [wc0ee], a
2014-05-18 18:19:10 +00:00
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, $9
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $9
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call SetSpriteMovementBytesToFF
ld de, MovementData_51c7d
2015-07-19 03:49:52 +00:00
ld a, [wCoordIndex]
ld [wcf0d], a
2014-05-18 18:19:10 +00:00
cp $1
jr z, .asm_51c6c
inc de
.asm_51c6c
ld a, $9
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
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 NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db $FF
2014-05-18 18:19:10 +00:00
SilphCo7Script3: ; 51c82 (14:5c82)
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
2014-05-18 18:19:10 +00:00
ld a, $d
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
call Delay3
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, SilphCo7Text14
ld de, SilphCo7Text_51ecd
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 a, [W_RIVALSTARTER]
2014-05-21 12:48:30 +00:00
cp STARTER2
2014-05-18 18:19:10 +00:00
jr nz, .asm_51cb6
ld a, $7
jr .asm_51cc0
.asm_51cb6
2014-05-21 12:48:30 +00:00
cp STARTER3
2014-05-18 18:19:10 +00:00
jr nz, .asm_51cbe
ld a, $8
jr .asm_51cc0
.asm_51cbe
ld a, $9
.asm_51cc0
ld [W_TRAINERNO], a
2014-05-18 18:19:10 +00:00
ld a, $4
jp SilphCo7Text_51c10
SilphCo7Script4: ; 51cc8 (14:5cc8)
ld a, [W_ISINBATTLE]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, SilphCo7Text_51c0c
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-21 17:36:03 +00:00
SetEvent EVENT_BEAT_SILPH_CO_RIVAL
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
2014-05-18 18:19:10 +00:00
ld a, $9
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $f
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
2014-05-18 18:19:10 +00:00
ld de, MovementData_51d1d
ld a, [wcf0d]
2014-05-18 18:19:10 +00:00
cp $1
jr nz, .asm_51d0e
ld de, MovementData_51d1a
.asm_51d0e
ld a, $9
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, $5
jp SilphCo7Text_51c10
MovementData_51d1a: ; 51d1a (14:5d1a)
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db $FF
2014-05-18 18:19:10 +00:00
MovementData_51d1d: ; 51d1d (14:5d1d)
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_DOWN
db $FF
2014-05-18 18:19:10 +00:00
SilphCo7Script5: ; 51d25 (14:5d25)
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
2014-09-26 11:37:21 +00:00
ld a, HS_SILPH_CO_7F_RIVAL
ld [wcc4d], a
predef HideObject
call PlayDefaultMusic
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
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
2015-07-18 15:17:29 +00:00
dw PickUpItemText
dw PickUpItemText
dw PickUpItemText
2014-05-18 18:19:10 +00:00
dw SilphCo7Text13
dw SilphCo7Text14
dw SilphCo7Text15
SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_0
2014-05-18 18:19:10 +00:00
db ($2 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_0
dw SilphCo7BattleText1 ; TextBeforeBattle
dw SilphCo7AfterBattleText1 ; TextAfterBattle
dw SilphCo7EndBattleText1 ; TextEndBattle
dw SilphCo7EndBattleText1 ; TextEndBattle
2014-05-18 18:19:10 +00:00
SilphCo7TrainerHeader2: ; 51d69 (14:5d69)
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_2
2014-05-18 18:19:10 +00:00
db ($3 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_2
dw SilphCo7BattleText2 ; TextBeforeBattle
dw SilphCo7AfterBattleText2 ; TextAfterBattle
dw SilphCo7EndBattleText2 ; TextEndBattle
dw SilphCo7EndBattleText2 ; TextEndBattle
2014-05-18 18:19:10 +00:00
SilphCo7TrainerHeader3: ; 51d75 (14:5d75)
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_3
2014-05-18 18:19:10 +00:00
db ($3 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_3
dw SilphCo7BattleText3 ; TextBeforeBattle
dw SilphCo7AfterBattleText3 ; TextAfterBattle
dw SilphCo7EndBattleText3 ; TextEndBattle
dw SilphCo7EndBattleText3 ; TextEndBattle
2014-05-18 18:19:10 +00:00
SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_4, 1
2014-05-18 18:19:10 +00:00
db ($4 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_4, 1
dw SilphCo7BattleText4 ; TextBeforeBattle
dw SilphCo7AfterBattleText4 ; TextAfterBattle
dw SilphCo7EndBattleText4 ; TextEndBattle
dw SilphCo7EndBattleText4 ; TextEndBattle
2014-05-18 18:19:10 +00:00
db $ff
SilphCo7Text1:
; lapras guy
2015-07-03 19:58:50 +00:00
TX_ASM
ld a, [wd72e]
2014-05-18 18:19:10 +00:00
bit 0, a ; got lapras?
jr z, .givelapras
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
2014-05-18 18:19:10 +00:00
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, [wSimulatedJoypadStatesEnd]
2014-05-18 18:19:10 +00:00
and a
call z, WaitForTextScrollButtonPress
call EnableAutoTextBoxDrawing
ld hl, .HeresYourLaprasText
call PrintText
ld hl, wd72e
2014-05-18 18:19:10 +00:00
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:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
2014-05-18 18:19:10 +00:00
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:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
2014-05-18 18:19:10 +00:00
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:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
2014-05-18 18:19:10 +00:00
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)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
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)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
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)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
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)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
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)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
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 "@"