pokered/scripts/SaffronGym.asm

312 lines
6.6 KiB
NASM
Raw Normal View History

SaffronGym_Script:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
bit 6, [hl]
res 6, [hl]
2020-07-18 18:01:13 +00:00
call nz, .LoadNames
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, SaffronGymTrainerHeaders
ld de, SaffronGym_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wSaffronGymCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
2015-08-31 02:38:41 +00:00
ld [wSaffronGymCurScript], 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 "SAFFRON CITY@"
2020-07-18 18:01:13 +00:00
.LeaderName:
2014-05-18 18:19:10 +00:00
db "SABRINA@"
SaffronGymResetScripts:
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 [wSaffronGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
SaffronGym_ScriptPointers:
2014-05-18 18:19:10 +00:00
dw CheckFightingMapTrainers
2014-09-14 18:29:18 +00:00
dw DisplayEnemyTrainerTextAndStartBattle
2014-05-18 18:19:10 +00:00
dw EndTrainerBattle
dw SaffronGymSabrinaPostBattle
2014-05-18 18:19:10 +00:00
SaffronGymSabrinaPostBattle:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, SaffronGymResetScripts
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
SaffronGymReceiveTM46:
2014-05-18 18:19:10 +00:00
ld a, $a
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_BEAT_SABRINA
2020-07-06 02:52:27 +00:00
lb bc, TM_PSYWAVE, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .BagFull
ld a, $b
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_GOT_TM46
2019-10-07 05:23:57 +00:00
jr .gymVictory
2014-05-18 18:19:10 +00:00
.BagFull
ld a, $c
ldh [hSpriteIndexOrTextID], 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_MARSHBADGE, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
set BIT_MARSHBADGE, [hl]
2014-05-18 18:19:10 +00:00
; deactivate gym trainers
2015-07-21 01:32:02 +00:00
SetEventRange EVENT_BEAT_SAFFRON_GYM_TRAINER_0, EVENT_BEAT_SAFFRON_GYM_TRAINER_6
2014-05-18 18:19:10 +00:00
jp SaffronGymResetScripts
2014-05-18 18:19:10 +00:00
SaffronGym_TextPointers:
dw SabrinaText
dw SaffronGymTrainerText1
dw SaffronGymTrainerText2
dw SaffronGymTrainerText3
dw SaffronGymTrainerText4
dw SaffronGymTrainerText5
dw SaffronGymTrainerText6
dw SaffronGymTrainerText7
dw SaffronGymGuideText
dw KogaMarshBadgeInfoText
dw ReceivedTM46Text
dw TM46NoRoomText
2014-05-18 18:19:10 +00:00
SaffronGymTrainerHeaders:
def_trainers 2
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader0:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_0, 3, SaffronGymBattleText1, SaffronGymEndBattleText1, SaffronGymAfterBattleText1
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader1:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_1, 3, SaffronGymBattleText2, SaffronGymEndBattleText2, SaffronGymAfterBattleText2
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader2:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_2, 3, SaffronGymBattleText3, SaffronGymEndBattleText3, SaffronGymAfterBattleText3
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader3:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_3, 3, SaffronGymBattleText4, SaffronGymEndBattleText4, SaffronGymAfterBattleText4
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader4:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_4, 3, SaffronGymBattleText5, SaffronGymEndBattleText5, SaffronGymAfterBattleText5
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader5:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_5, 3, SaffronGymBattleText6, SaffronGymEndBattleText6, SaffronGymAfterBattleText6
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader6:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 3, SaffronGymBattleText7, SaffronGymEndBattleText7, SaffronGymAfterBattleText7
db -1 ; end
2014-05-18 18:19:10 +00:00
SabrinaText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_SABRINA
jr z, .beforeBeat
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM46
jr nz, .afterBeat
call z, SaffronGymReceiveTM46
2014-05-18 18:19:10 +00:00
call DisableWaitingAfterTextDisplay
2019-10-07 05:23:57 +00:00
jr .done
.afterBeat
ld hl, SabrinaPostBattleAdviceText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 05:23:57 +00:00
jr .done
.beforeBeat
ld hl, SabrinaPreBattleText
2014-05-18 18:19:10 +00:00
call PrintText
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, ReceivedMarshBadgeText
ld de, ReceivedMarshBadgeText
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, $6
2015-08-31 02:38:41 +00:00
ld [wGymLeaderNo], a
2014-05-18 18:19:10 +00:00
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wSaffronGymCurScript], a
2019-10-07 05:23:57 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
SabrinaPreBattleText:
text_far _SabrinaPreBattleText
text_end
2014-05-18 18:19:10 +00:00
ReceivedMarshBadgeText:
text_far _ReceivedMarshBadgeText
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
SabrinaPostBattleAdviceText:
text_far _SabrinaPostBattleAdviceText
text_end
2014-05-18 18:19:10 +00:00
KogaMarshBadgeInfoText:
text_far _KogaMarshBadgeInfoText
text_end
2014-05-18 18:19:10 +00:00
ReceivedTM46Text:
text_far _ReceivedTM46Text
sound_get_item_1
text_far _TM46ExplanationText
text_end
2014-05-18 18:19:10 +00:00
TM46NoRoomText:
text_far _TM46NoRoomText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymTrainerText1:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText2:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText3:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText4:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText5:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText6:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
SaffronGymTrainerText7:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
SaffronGymGuideText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_SABRINA
jr nz, .afterBeat
ld hl, SaffronGymGuidePreBattleText
2014-05-18 18:19:10 +00:00
call PrintText
jr .done
.afterBeat
ld hl, SaffronGymGuidePostBattleText
2014-05-18 18:19:10 +00:00
call PrintText
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
SaffronGymGuidePreBattleText:
text_far _SaffronGymGuidePreBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymGuidePostBattleText:
text_far _SaffronGymGuidePostBattleText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText1:
text_far _SaffronGymBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText1:
text_far _SaffronGymEndBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText1:
text_far _SaffronGymAfterBattleText1
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText2:
text_far _SaffronGymBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText2:
text_far _SaffronGymEndBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText2:
text_far _SaffronGymAfterBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText3:
text_far _SaffronGymBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText3:
text_far _SaffronGymEndBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText3:
text_far _SaffronGymAfterBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText4:
text_far _SaffronGymBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText4:
text_far _SaffronGymEndBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText4:
text_far _SaffronGymAfterBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText5:
text_far _SaffronGymBattleText5
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText5:
text_far _SaffronGymEndBattleText5
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText5:
text_far _SaffronGymAfterBattleText5
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText6:
text_far _SaffronGymBattleText6
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText6:
text_far _SaffronGymEndBattleText6
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText6:
text_far _SaffronGymAfterBattleText6
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymBattleText7:
text_far _SaffronGymBattleText7
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymEndBattleText7:
text_far _SaffronGymEndBattleText7
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
SaffronGymAfterBattleText7:
text_far _SaffronGymAfterBattleText7
text_end