mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
207 lines
4.2 KiB
NASM
207 lines
4.2 KiB
NASM
CeruleanGym_Script:
|
|
ld hl, wCurrentMapScriptFlags
|
|
bit 6, [hl]
|
|
res 6, [hl]
|
|
call nz, .LoadNames
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, CeruleanGymTrainerHeaders
|
|
ld de, CeruleanGym_ScriptPointers
|
|
ld a, [wCeruleanGymCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wCeruleanGymCurScript], a
|
|
ret
|
|
|
|
.LoadNames:
|
|
ld hl, .CityName
|
|
ld de, .LeaderName
|
|
jp LoadGymLeaderAndCityName
|
|
|
|
.CityName:
|
|
db "CERULEAN CITY@"
|
|
|
|
.LeaderName:
|
|
db "MISTY@"
|
|
|
|
CeruleanGymResetScripts:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wCeruleanGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
CeruleanGym_ScriptPointers:
|
|
dw CheckFightingMapTrainers
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw CeruleanGymMistyPostBattle
|
|
|
|
CeruleanGymMistyPostBattle:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, CeruleanGymResetScripts
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
|
|
CeruleanGymReceiveTM11:
|
|
ld a, $5
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_BEAT_MISTY
|
|
lb bc, TM_BUBBLEBEAM, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld a, $6
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_GOT_TM11
|
|
jr .gymVictory
|
|
.BagFull
|
|
ld a, $7
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
.gymVictory
|
|
ld hl, wObtainedBadges
|
|
set BIT_CASCADEBADGE, [hl]
|
|
ld hl, wBeatGymFlags
|
|
set BIT_CASCADEBADGE, [hl]
|
|
|
|
; deactivate gym trainers
|
|
SetEvents EVENT_BEAT_CERULEAN_GYM_TRAINER_0, EVENT_BEAT_CERULEAN_GYM_TRAINER_1
|
|
|
|
jp CeruleanGymResetScripts
|
|
|
|
CeruleanGym_TextPointers:
|
|
dw MistyText
|
|
dw CeruleanGymTrainerText1
|
|
dw CeruleanGymTrainerText2
|
|
dw CeruleanGymGuideText
|
|
dw MistyCascadeBadgeInfoText
|
|
dw ReceivedTM11Text
|
|
dw TM11NoRoomText
|
|
|
|
CeruleanGymTrainerHeaders:
|
|
def_trainers 2
|
|
CeruleanGymTrainerHeader0:
|
|
trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_0, 3, CeruleanGymBattleText1, CeruleanGymEndBattleText1, CeruleanGymAfterBattleText1
|
|
CeruleanGymTrainerHeader1:
|
|
trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_1, 3, CeruleanGymBattleText2, CeruleanGymEndBattleText2, CeruleanGymAfterBattleText2
|
|
db -1 ; end
|
|
|
|
MistyText:
|
|
text_asm
|
|
CheckEvent EVENT_BEAT_MISTY
|
|
jr z, .beforeBeat
|
|
CheckEventReuseA EVENT_GOT_TM11
|
|
jr nz, .afterBeat
|
|
call z, CeruleanGymReceiveTM11
|
|
call DisableWaitingAfterTextDisplay
|
|
jr .done
|
|
.afterBeat
|
|
ld hl, TM11ExplanationText
|
|
call PrintText
|
|
jr .done
|
|
.beforeBeat
|
|
ld hl, MistyPreBattleText
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, ReceivedCascadeBadgeText
|
|
ld de, ReceivedCascadeBadgeText
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
call InitBattleEnemyParameters
|
|
ld a, $2
|
|
ld [wGymLeaderNo], a
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $3
|
|
ld [wCeruleanGymCurScript], a
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
MistyPreBattleText:
|
|
text_far _MistyPreBattleText
|
|
text_end
|
|
|
|
TM11ExplanationText:
|
|
text_far _TM11ExplanationText
|
|
text_end
|
|
|
|
MistyCascadeBadgeInfoText:
|
|
text_far _MistyCascadeBadgeInfoText
|
|
text_end
|
|
|
|
ReceivedTM11Text:
|
|
text_far _ReceivedTM11Text
|
|
sound_get_item_1
|
|
text_end
|
|
|
|
TM11NoRoomText:
|
|
text_far _TM11NoRoomText
|
|
text_end
|
|
|
|
ReceivedCascadeBadgeText:
|
|
text_far _ReceivedCascadeBadgeText
|
|
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
|
|
|
|
CeruleanGymTrainerText1:
|
|
text_asm
|
|
ld hl, CeruleanGymTrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeruleanGymBattleText1:
|
|
text_far _CeruleanGymBattleText1
|
|
text_end
|
|
|
|
CeruleanGymEndBattleText1:
|
|
text_far _CeruleanGymEndBattleText1
|
|
text_end
|
|
|
|
CeruleanGymAfterBattleText1:
|
|
text_far _CeruleanGymAfterBattleText1
|
|
text_end
|
|
|
|
CeruleanGymTrainerText2:
|
|
text_asm
|
|
ld hl, CeruleanGymTrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
CeruleanGymBattleText2:
|
|
text_far _CeruleanGymBattleText2
|
|
text_end
|
|
|
|
CeruleanGymEndBattleText2:
|
|
text_far _CeruleanGymEndBattleText2
|
|
text_end
|
|
|
|
CeruleanGymAfterBattleText2:
|
|
text_far _CeruleanGymAfterBattleText2
|
|
text_end
|
|
|
|
CeruleanGymGuideText:
|
|
text_asm
|
|
CheckEvent EVENT_BEAT_MISTY
|
|
jr nz, .afterBeat
|
|
ld hl, CeruleanGymGuidePreBattleText
|
|
call PrintText
|
|
jr .done
|
|
.afterBeat
|
|
ld hl, CeruleanGymGuidePostBattleText
|
|
call PrintText
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
CeruleanGymGuidePreBattleText:
|
|
text_far _CeruleanGymGuidePreBattleText
|
|
text_end
|
|
|
|
CeruleanGymGuidePostBattleText:
|
|
text_far _CeruleanGymGuidePostBattleText
|
|
text_end
|