pokered/scripts/CeruleanGym.asm

210 lines
5.2 KiB
NASM
Raw Permalink Normal View History

CeruleanGym_Script:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
2020-07-18 18:01:13 +00:00
call nz, .LoadNames
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, CeruleanGymTrainerHeaders
ld de, CeruleanGym_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wCeruleanGymCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
2015-08-31 02:38:41 +00:00
ld [wCeruleanGymCurScript], 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 "CERULEAN CITY@"
2020-07-18 18:01:13 +00:00
.LeaderName:
2014-05-18 18:19:10 +00:00
db "MISTY@"
CeruleanGymResetScripts:
xor a ; SCRIPT_CERULEANGYM_DEFAULT
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld [wCeruleanGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
CeruleanGym_ScriptPointers:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_CERULEANGYM_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_CERULEANGYM_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_CERULEANGYM_END_BATTLE
dw_const CeruleanGymMistyPostBattleScript, SCRIPT_CERULEANGYM_MISTY_POST_BATTLE
2014-05-18 18:19:10 +00:00
CeruleanGymMistyPostBattleScript:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, CeruleanGymResetScripts
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
CeruleanGymReceiveTM11:
ld a, TEXT_CERULEANGYM_MISTY_CASCADE_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_MISTY
2020-07-06 02:52:27 +00:00
lb bc, TM_BUBBLEBEAM, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .BagFull
ld a, TEXT_CERULEANGYM_MISTY_RECEIVED_TM11
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_GOT_TM11
2019-10-07 05:23:57 +00:00
jr .gymVictory
2014-05-18 18:19:10 +00:00
.BagFull
ld a, TEXT_CERULEANGYM_MISTY_TM11_NO_ROOM
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2019-10-07 05:23:57 +00:00
.gymVictory
2015-08-31 02:38:41 +00:00
ld hl, wObtainedBadges
set BIT_CASCADEBADGE, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
set BIT_CASCADEBADGE, [hl]
2014-05-18 18:19:10 +00:00
; deactivate gym trainers
2015-07-21 01:32:02 +00:00
SetEvents EVENT_BEAT_CERULEAN_GYM_TRAINER_0, EVENT_BEAT_CERULEAN_GYM_TRAINER_1
2014-05-18 18:19:10 +00:00
jp CeruleanGymResetScripts
2014-05-18 18:19:10 +00:00
CeruleanGym_TextPointers:
def_text_pointers
dw_const CeruleanGymMistyText, TEXT_CERULEANGYM_MISTY
dw_const CeruleanGymCooltrainerFText, TEXT_CERULEANGYM_COOLTRAINER_F
dw_const CeruleanGymSwimmerText, TEXT_CERULEANGYM_SWIMMER
dw_const CeruleanGymGymGuideText, TEXT_CERULEANGYM_GYM_GUIDE
dw_const CeruleanGymMistyCascadeBadgeInfoText, TEXT_CERULEANGYM_MISTY_CASCADE_BADGE_INFO
dw_const CeruleanGymMistyReceivedTM11Text, TEXT_CERULEANGYM_MISTY_RECEIVED_TM11
dw_const CeruleanGymMistyTM11NoRoomText, TEXT_CERULEANGYM_MISTY_TM11_NO_ROOM
2014-05-18 18:19:10 +00:00
CeruleanGymTrainerHeaders:
def_trainers 2
2016-06-12 00:24:04 +00:00
CeruleanGymTrainerHeader0:
trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_0, 3, CeruleanGymBattleText1, CeruleanGymEndBattleText1, CeruleanGymAfterBattleText1
2016-06-12 00:24:04 +00:00
CeruleanGymTrainerHeader1:
trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_1, 3, CeruleanGymBattleText2, CeruleanGymEndBattleText2, CeruleanGymAfterBattleText2
db -1 ; end
2014-05-18 18:19:10 +00:00
CeruleanGymMistyText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_MISTY
jr z, .beforeBeat
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM11
jr nz, .afterBeat
call z, CeruleanGymReceiveTM11
2014-05-18 18:19:10 +00:00
call DisableWaitingAfterTextDisplay
2019-10-07 05:23:57 +00:00
jr .done
.afterBeat
ld hl, .TM11ExplanationText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 05:23:57 +00:00
jr .done
.beforeBeat
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, CeruleanGymMistyReceivedCascadeBadgeText
ld de, CeruleanGymMistyReceivedCascadeBadgeText
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, $2
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_CERULEANGYM_MISTY_POST_BATTLE
2015-08-31 02:38:41 +00:00
ld [wCeruleanGymCurScript], a
2019-10-07 05:23:57 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.PreBattleText:
text_far _CeruleanGymMistyPreBattleText
text_end
2014-05-18 18:19:10 +00:00
.TM11ExplanationText:
text_far _CeruleanGymMistyTM11ExplanationText
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymMistyCascadeBadgeInfoText:
text_far _CeruleanGymMistyCascadeBadgeInfoText
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymMistyReceivedTM11Text:
text_far _CeruleanGymMistyReceivedTM11Text
sound_get_item_1
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymMistyTM11NoRoomText:
text_far _CeruleanGymMistyTM11NoRoomText
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymMistyReceivedCascadeBadgeText:
text_far _CeruleanGymMistyReceivedCascadeBadgeText
sound_get_key_item ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded
text_promptbutton
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymCooltrainerFText:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, CeruleanGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeruleanGymBattleText1:
text_far _CeruleanGymBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeruleanGymEndBattleText1:
text_far _CeruleanGymEndBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeruleanGymAfterBattleText1:
text_far _CeruleanGymAfterBattleText1
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymSwimmerText:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, CeruleanGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeruleanGymBattleText2:
text_far _CeruleanGymBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeruleanGymEndBattleText2:
text_far _CeruleanGymEndBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeruleanGymAfterBattleText2:
text_far _CeruleanGymAfterBattleText2
text_end
2014-05-18 18:19:10 +00:00
CeruleanGymGymGuideText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_MISTY
jr nz, .afterBeat
ld hl, .ChampInMakingText
2014-05-18 18:19:10 +00:00
call PrintText
jr .done
.afterBeat
ld hl, .BeatMistyText
2014-05-18 18:19:10 +00:00
call PrintText
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.ChampInMakingText:
text_far _CeruleanGymGymGuideChampInMakingText
text_end
2014-05-18 18:19:10 +00:00
.BeatMistyText:
text_far _CeruleanGymGymGuideBeatMistyText
text_end