pokered/scripts/SilphCo7F.asm

502 lines
8.9 KiB
NASM
Raw Normal View History

SilphCo7F_Script:
2014-05-18 18:19:10 +00:00
call SilphCo7Script_51b77
call EnableAutoTextBoxDrawing
ld hl, SilphCo7TrainerHeaders
ld de, SilphCo7F_ScriptPointers
ld a, [wSilphCo7FCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
ld [wSilphCo7FCurScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
SilphCo7Script_51b77:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
bit 5, [hl]
res 5, [hl]
ret z
2015-08-05 21:20:29 +00:00
ld hl, SilphCo7GateCoords
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
2015-08-05 21:20:29 +00:00
lb bc, 3, 5
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
2015-08-05 21:20:29 +00:00
lb bc, 2, 10
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
2015-08-05 21:20:29 +00:00
lb bc, 6, 10
2014-09-14 18:29:18 +00:00
predef_jump ReplaceTileBlock
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7GateCoords:
dbmapcoord 5, 3
dbmapcoord 10, 2
dbmapcoord 10, 6
db -1 ; end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text_51bc8:
2014-05-18 18:19:10 +00:00
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
ldh [hUnlockedSilphCoDoors], a
2014-05-18 18:19:10 +00:00
pop hl
.asm_51bd4
ld a, [hli]
cp $ff
jr z, .asm_51bf0
push hl
ld hl, hUnlockedSilphCoDoors
2014-05-18 18:19:10 +00:00
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
ldh [hUnlockedSilphCoDoors], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
SilphCo7Text_51bf4:
2015-07-21 17:36:03 +00:00
EventFlagAddress hl, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
ldh a, [hUnlockedSilphCoDoors]
2014-05-18 18:19:10 +00:00
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
2016-06-12 00:24:04 +00:00
SilphCo7Text_51c0c:
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
2016-06-12 00:24:04 +00:00
SilphCo7Text_51c10:
ld [wSilphCo7FCurScript], a
2015-08-31 02:38:41 +00:00
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
SilphCo7F_ScriptPointers:
2014-05-18 18:19:10 +00:00
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
2016-06-12 00:24:04 +00:00
SilphCo7Script0:
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
ldh [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
ld a, SFX_STOP_ALL_MUSIC
2015-08-09 05:32:44 +00:00
ld [wNewSoundID], 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
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $9
ldh [hSpriteIndex], 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
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, $3
jp SilphCo7Text_51c10
2016-06-12 00:24:04 +00:00
CoordsData_51c78:
dbmapcoord 3, 2
dbmapcoord 3, 3
db -1 ; end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MovementData_51c7d:
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db NPC_MOVEMENT_UP
db -1 ; end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Script3:
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
ldh [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
2020-07-17 17:27:27 +00:00
ld a, OPP_RIVAL2
2015-08-31 02:38:41 +00:00
ld [wCurOpponent], a
ld a, [wRivalStarter]
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
2015-08-31 02:38:41 +00:00
ld [wTrainerNo], a
2014-05-18 18:19:10 +00:00
ld a, $4
jp SilphCo7Text_51c10
2016-06-12 00:24:04 +00:00
SilphCo7Script4:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
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
ldh [hSpriteIndex], a
2015-07-18 15:17:29 +00:00
ld a, SPRITE_FACING_UP
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
ld a, $f
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, SFX_STOP_ALL_MUSIC
2015-08-09 05:32:44 +00:00
ld [wNewSoundID], a
2014-05-18 18:19:10 +00:00
call PlaySound
farcall 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
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, $5
jp SilphCo7Text_51c10
2016-06-12 00:24:04 +00:00
MovementData_51d1a:
db NPC_MOVEMENT_RIGHT
db NPC_MOVEMENT_RIGHT
db -1 ; end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MovementData_51d1d:
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 -1 ; end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Script5:
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
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], 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
SilphCo7F_TextPointers:
2014-05-18 18:19:10 +00:00
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:
def_trainers 5
2016-06-12 00:24:04 +00:00
SilphCo7TrainerHeader0:
trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_0, 2, SilphCo7BattleText1, SilphCo7EndBattleText1, SilphCo7AfterBattleText1
SilphCo7TrainerHeader1:
trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_1, 3, SilphCo7BattleText2, SilphCo7EndBattleText2, SilphCo7AfterBattleText2
SilphCo7TrainerHeader2:
trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_2, 3, SilphCo7BattleText3, SilphCo7EndBattleText3, SilphCo7AfterBattleText3
SilphCo7TrainerHeader3:
trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_3, 4, SilphCo7BattleText4, SilphCo7EndBattleText4, SilphCo7AfterBattleText4
db -1 ; end
2014-05-18 18:19:10 +00:00
SilphCo7Text1:
; lapras guy
text_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
2015-08-05 21:20:29 +00:00
lb bc, LAPRAS, 15
2014-05-18 18:19:10 +00:00
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
text_far _MeetLaprasGuyText
text_end
2014-05-18 18:19:10 +00:00
.HeresYourLaprasText
text_far _HeresYourLaprasText
text_end
2014-05-18 18:19:10 +00:00
.LaprasGuyText
text_far _LaprasGuyText
text_end
2014-05-18 18:19:10 +00:00
.LaprasGuySavedText
text_far _LaprasGuySavedText
text_end
2014-05-18 18:19:10 +00:00
SilphCo7Text2:
text_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
text_far _SilphCo7Text_51e00
text_end
2014-05-18 18:19:10 +00:00
.savedtext
text_far _CanceledMasterBallText
text_end
2014-05-18 18:19:10 +00:00
SilphCo7Text3:
text_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
text_far _SilphCo7Text_51e23
text_end
2014-05-18 18:19:10 +00:00
.savedtext
text_far _SilphCo7Text_51e28
text_end
2014-05-18 18:19:10 +00:00
SilphCo7Text4:
text_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
text_far _SilphCo7Text_51e46
text_end
2014-05-18 18:19:10 +00:00
.savedtext
text_far _SilphCo7Text_51e4b
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text5:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SilphCo7TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
SilphCo7BattleText1:
text_far _SilphCo7BattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7EndBattleText1:
text_far _SilphCo7EndBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7AfterBattleText1:
text_far _SilphCo7AfterBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text6:
text_asm
ld hl, SilphCo7TrainerHeader1
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
SilphCo7BattleText2:
text_far _SilphCo7BattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7EndBattleText2:
text_far _SilphCo7EndBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7AfterBattleText2:
text_far _SilphCo7AfterBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text7:
text_asm
ld hl, SilphCo7TrainerHeader2
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
SilphCo7BattleText3:
text_far _SilphCo7BattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7EndBattleText3:
text_far _SilphCo7EndBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7AfterBattleText3:
text_far _SilphCo7AfterBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text8:
text_asm
ld hl, SilphCo7TrainerHeader3
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
SilphCo7BattleText4:
text_far _SilphCo7BattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7EndBattleText4:
text_far _SilphCo7EndBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7AfterBattleText4:
text_far _SilphCo7AfterBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text9:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SilphCo7Text_51ebe
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
SilphCo7Text_51ebe:
text_far _SilphCo7Text_51ebe
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text13:
text_far _SilphCo7Text_51ec3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text14:
text_far _SilphCo7Text_51ec8
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text_51ecd:
text_far _SilphCo7Text_51ecd
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SilphCo7Text15:
text_far _SilphCo7Text_51ed2
text_end