pokered/scripts/VermilionGym.asm

251 lines
6.5 KiB
NASM
Raw Normal View History

VermilionGym_Script:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_1, [hl]
res BIT_CUR_MAP_LOADED_1, [hl]
2014-05-18 18:19:10 +00:00
push hl
2020-07-18 18:01:13 +00:00
call nz, .LoadNames
2014-05-18 18:19:10 +00:00
pop hl
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
2020-05-06 01:28:19 +00:00
call nz, VermilionGymSetDoorTile
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, VermilionGymTrainerHeaders
ld de, VermilionGym_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wVermilionGymCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
2015-08-31 02:38:41 +00:00
ld [wVermilionGymCurScript], a
2014-05-18 18:19:10 +00:00
ret
2020-07-18 18:01:13 +00:00
.LoadNames:
ld hl, .CityName
ld de, .LeaderName
2014-05-18 18:19:10 +00:00
jp LoadGymLeaderAndCityName
2020-07-18 18:01:13 +00:00
.CityName:
2014-05-18 18:19:10 +00:00
db "VERMILION CITY@"
2020-07-18 18:01:13 +00:00
.LeaderName:
2014-05-18 18:19:10 +00:00
db "LT.SURGE@"
2020-05-06 01:28:19 +00:00
VermilionGymSetDoorTile:
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_2ND_LOCK_OPENED
2019-10-07 05:23:57 +00:00
jr nz, .doorsOpen
2020-05-06 01:28:19 +00:00
ld a, $24 ; double door tile ID
2019-10-07 05:23:57 +00:00
jr .replaceTile
.doorsOpen
2015-07-19 08:46:12 +00:00
ld a, SFX_GO_INSIDE
2014-05-18 18:19:10 +00:00
call PlaySound
2020-05-06 01:28:19 +00:00
ld a, $5 ; clear floor tile ID
2019-10-07 05:23:57 +00:00
.replaceTile
2015-07-24 21:39:45 +00:00
ld [wNewTileBlockID], a
2015-08-05 21:20:29 +00:00
lb bc, 2, 2
2014-09-14 18:29:18 +00:00
predef_jump ReplaceTileBlock
2014-05-18 18:19:10 +00:00
2020-05-06 01:28:19 +00:00
VermilionGymResetScripts:
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld [wVermilionGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
VermilionGym_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_VERMILIONGYM_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_VERMILIONGYM_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_VERMILIONGYM_END_BATTLE
dw_const VermilionGymLTSurgeAfterBattleScript, SCRIPT_VERMILIONGYM_LT_SURGE_AFTER_BATTLE
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeAfterBattleScript:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2020-05-06 01:28:19 +00:00
cp $ff ; did we lose?
jp z, VermilionGymResetScripts
2020-05-06 01:42:40 +00:00
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeReceiveTM24Script:
ld a, TEXT_VERMILIONGYM_LT_SURGE_THUNDER_BADGE_INFO
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_BEAT_LT_SURGE
2020-07-06 02:52:27 +00:00
lb bc, TM_THUNDERBOLT, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .bag_full
ld a, TEXT_VERMILIONGYM_LT_SURGE_RECEIVED_TM24
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_GOT_TM24
jr .gym_victory
.bag_full
ld a, TEXT_VERMILIONGYM_LT_SURGE_TM24_NO_ROOM
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
.gym_victory
2015-08-31 02:38:41 +00:00
ld hl, wObtainedBadges
set BIT_THUNDERBADGE, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
set BIT_THUNDERBADGE, [hl]
2014-05-18 18:19:10 +00:00
; deactivate gym trainers
2015-07-21 01:32:02 +00:00
SetEventRange EVENT_BEAT_VERMILION_GYM_TRAINER_0, EVENT_BEAT_VERMILION_GYM_TRAINER_2
2014-05-18 18:19:10 +00:00
2020-05-06 01:28:19 +00:00
jp VermilionGymResetScripts
2014-05-18 18:19:10 +00:00
VermilionGym_TextPointers:
def_text_pointers
dw_const VermilionGymLTSurgeText, TEXT_VERMILIONGYM_LT_SURGE
dw_const VermilionGymGentlemanText, TEXT_VERMILIONGYM_GENTLEMAN
dw_const VermilionGymSuperNerdText, TEXT_VERMILIONGYM_SUPER_NERD
dw_const VermilionGymSailorText, TEXT_VERMILIONGYM_SAILOR
dw_const VermilionGymGymGuideText, TEXT_VERMILIONGYM_GYM_GUIDE
dw_const VermilionGymLTSurgeThunderBadgeInfoText, TEXT_VERMILIONGYM_LT_SURGE_THUNDER_BADGE_INFO
dw_const VermilionGymLTSurgeReceivedTM24Text, TEXT_VERMILIONGYM_LT_SURGE_RECEIVED_TM24
dw_const VermilionGymLTSurgeTM24NoRoomText, TEXT_VERMILIONGYM_LT_SURGE_TM24_NO_ROOM
2014-05-18 18:19:10 +00:00
VermilionGymTrainerHeaders:
def_trainers 2
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader0:
trainer EVENT_BEAT_VERMILION_GYM_TRAINER_0, 3, VermilionGymGentlemanBattleText, VermilionGymGentlemanEndBattleText, VermilionGymGentlemanAfterBattleText
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader1:
trainer EVENT_BEAT_VERMILION_GYM_TRAINER_1, 2, VermilionGymSuperNerdBattleText, VermilionGymSuperNerdEndBattleText, VermilionGymSuperNerdAfterBattleText
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader2:
trainer EVENT_BEAT_VERMILION_GYM_TRAINER_2, 3, VermilionGymSailorBattleText, VermilionGymSailorEndBattleText, VermilionGymSailorAfterBattleText
db -1 ; end
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_LT_SURGE
jr z, .before_beat
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM24
jr nz, .got_tm24_already
call z, VermilionGymLTSurgeReceiveTM24Script
2014-05-18 18:19:10 +00:00
call DisableWaitingAfterTextDisplay
jr .text_script_end
.got_tm24_already
ld hl, .PostBattleAdviceText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.before_beat
ld hl, .PreBattleText
2014-05-18 18:19:10 +00:00
call PrintText
ld hl, wStatusFlags3
set BIT_TALKED_TO_TRAINER, [hl]
set BIT_PRINT_END_BATTLE_TEXT, [hl]
ld hl, VermilionGymLTSurgeReceivedThunderBadgeText
ld de, VermilionGymLTSurgeReceivedThunderBadgeText
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
2014-05-18 18:19:10 +00:00
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wGymLeaderNo], a
2014-05-18 18:19:10 +00:00
xor a
ldh [hJoyHeld], a
ld a, SCRIPT_VERMILIONGYM_LT_SURGE_AFTER_BATTLE
2015-08-31 02:38:41 +00:00
ld [wVermilionGymCurScript], a
ld [wCurMapScript], a
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.PreBattleText:
text_far _VermilionGymLTSurgePreBattleText
text_end
2014-05-18 18:19:10 +00:00
.PostBattleAdviceText:
text_far _VermilionGymLTSurgePostBattleAdviceText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeThunderBadgeInfoText:
text_far _VermilionGymLTSurgeThunderBadgeInfoText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeReceivedTM24Text:
text_far _VermilionGymLTSurgeReceivedTM24Text
sound_get_key_item
text_far _TM24ExplanationText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeTM24NoRoomText:
text_far _VermilionGymLTSurgeTM24NoRoomText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymLTSurgeReceivedThunderBadgeText:
text_far _VermilionGymLTSurgeReceivedThunderBadgeText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymGentlemanText:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
VermilionGymGentlemanBattleText:
text_far _VermilionGymGentlemanBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymGentlemanEndBattleText:
text_far _VermilionGymGentlemanEndBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymGentlemanAfterBattleText:
text_far _VermilionGymGentlemanAfterBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSuperNerdText:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
VermilionGymSuperNerdBattleText:
text_far _VermilionGymSuperNerdBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSuperNerdEndBattleText:
text_far _VermilionGymSuperNerdEndBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSuperNerdAfterBattleText:
text_far _VermilionGymSuperNerdAfterBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSailorText:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
VermilionGymSailorBattleText:
text_far _VermilionGymSailorBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSailorEndBattleText:
text_far _VermilionGymSailorEndBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymSailorAfterBattleText:
text_far _VermilionGymSailorAfterBattleText
text_end
2014-05-18 18:19:10 +00:00
VermilionGymGymGuideText:
text_asm
2015-07-26 02:26:54 +00:00
ld a, [wBeatGymFlags]
bit BIT_THUNDERBADGE, a
jr nz, .got_thunderbadge
ld hl, .ChampInMakingText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.got_thunderbadge
ld hl, .BeatLTSurgeText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.ChampInMakingText:
text_far _VermilionGymGymGuideChampInMakingText
text_end
2014-05-18 18:19:10 +00:00
.BeatLTSurgeText:
text_far _VermilionGymGymGuideBeatLTSurgeText
text_end