pokered/scripts/SaffronGym.asm

314 lines
8.3 KiB
NASM
Raw Normal View History

SaffronGym_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, 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:
xor a ; SCRIPT_SAFFRONGYM_DEFAULT
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:
def_script_pointers
dw_const CheckFightingMapTrainers, SCRIPT_SAFFRONGYM_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_SAFFRONGYM_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_SAFFRONGYM_END_BATTLE
dw_const SaffronGymSabrinaPostBattle, SCRIPT_SAFFRONGYM_SABRINA_POST_BATTLE
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
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
SaffronGymSabrinaReceiveTM46Script:
ld a, TEXT_SAFFRONGYM_SABRINA_MARSH_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_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, TEXT_SAFFRONGYM_SABRINA_RECEIVED_TM46
ldh [hTextID], 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, TEXT_SAFFRONGYM_SABRINA_TM46_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_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:
def_text_pointers
dw_const SaffronGymSabrinaText, TEXT_SAFFRONGYM_SABRINA
dw_const SaffronGymChanneler1Text, TEXT_SAFFRONGYM_CHANNELER1
dw_const SaffronGymYoungster1Text, TEXT_SAFFRONGYM_YOUNGSTER1
dw_const SaffronGymChanneler2Text, TEXT_SAFFRONGYM_CHANNELER2
dw_const SaffronGymYoungster2Text, TEXT_SAFFRONGYM_YOUNGSTER2
dw_const SaffronGymChanneler3Text, TEXT_SAFFRONGYM_CHANNELER3
dw_const SaffronGymYoungster3Text, TEXT_SAFFRONGYM_YOUNGSTER3
dw_const SaffronGymYoungster4Text, TEXT_SAFFRONGYM_YOUNGSTER4
dw_const SaffronGymGymGuideText, TEXT_SAFFRONGYM_GYM_GUIDE
dw_const SaffronGymSabrinaMarshBadgeInfoText, TEXT_SAFFRONGYM_SABRINA_MARSH_BADGE_INFO
dw_const SaffronGymSabrinaReceivedTM46Text, TEXT_SAFFRONGYM_SABRINA_RECEIVED_TM46
dw_const SaffronGymSabrinaTM46NoRoomText, TEXT_SAFFRONGYM_SABRINA_TM46_NO_ROOM
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, SaffronGymChanneler1BattleText, SaffronGymChanneler1EndBattleText, SaffronGymChanneler1AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader1:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_1, 3, SaffronGymYoungster1BattleText, SaffronGymYoungster1EndBattleText, SaffronGymYoungster1AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader2:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_2, 3, SaffronGymChanneler2BattleText, SaffronGymChanneler2EndBattleText, SaffronGymChanneler2AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader3:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_3, 3, SaffronGymYoungster2BattleText, SaffronGymYoungster2EndBattleText, SaffronGymYoungster2AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader4:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_4, 3, SaffronGymChanneler3BattleText, SaffronGymChanneler3EndBattleText, SaffronGymChanneler3AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader5:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_5, 3, SaffronGymYoungster3BattleText, SaffronGymYoungster3EndBattleText, SaffronGymYoungster3AfterBattleText
2016-06-12 00:24:04 +00:00
SaffronGymTrainerHeader6:
trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 3, SaffronGymYoungster4BattleText, SaffronGymYoungster4EndBattleText, SaffronGymYoungster4AfterBattleText
db -1 ; end
2014-05-18 18:19:10 +00:00
SaffronGymSabrinaText:
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, SaffronGymSabrinaReceiveTM46Script
2014-05-18 18:19:10 +00:00
call DisableWaitingAfterTextDisplay
2019-10-07 05:23:57 +00:00
jr .done
.afterBeat
ld hl, .PostBattleAdviceText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 05:23:57 +00:00
jr .done
.beforeBeat
ld hl, .Text
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, .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
ld a, SCRIPT_SAFFRONGYM_SABRINA_POST_BATTLE
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
.Text:
text_far _SaffronGymSabrinaText
text_end
2014-05-18 18:19:10 +00:00
.ReceivedMarshBadgeText:
text_far _SaffronGymSabrinaReceivedMarshBadgeText
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
.PostBattleAdviceText:
text_far _SaffronGymSabrinaPostBattleAdviceText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymSabrinaMarshBadgeInfoText:
text_far _SaffronGymSabrinaMarshBadgeInfoText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymSabrinaReceivedTM46Text:
text_far _SaffronGymSabrinaReceivedTM46Text
sound_get_item_1
text_far _TM46ExplanationText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymSabrinaTM46NoRoomText:
text_far _SaffronGymSabrinaTM46NoRoomText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler1Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SaffronGymYoungster1Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SaffronGymChanneler2Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SaffronGymYoungster2Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
SaffronGymChanneler3Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
SaffronGymYoungster3Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
SaffronGymYoungster4Text:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, SaffronGymTrainerHeader6
call TalkToTrainer
jp TextScriptEnd
SaffronGymGymGuideText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_SABRINA
jr nz, .afterBeat
ld hl, .ChampInMakingText
2014-05-18 18:19:10 +00:00
call PrintText
jr .done
.afterBeat
ld hl, .BeatSabrinaText
2014-05-18 18:19:10 +00:00
call PrintText
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.ChampInMakingText:
text_far _SaffronGymGuideChampInMakingText
text_end
2014-05-18 18:19:10 +00:00
.BeatSabrinaText:
text_far _SaffronGymGuideBeatSabrinaText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler1BattleText:
text_far _SaffronGymChanneler1BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler1EndBattleText:
text_far _SaffronGymChanneler1EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler1AfterBattleText:
text_far _SaffronGymChanneler1AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster1BattleText:
text_far _SaffronGymYoungster1BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster1EndBattleText:
text_far _SaffronGymYoungster1EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster1AfterBattleText:
text_far _SaffronGymYoungster1AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler2BattleText:
text_far _SaffronGymChanneler2BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler2EndBattleText:
text_far _SaffronGymChanneler2EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler2AfterBattleText:
text_far _SaffronGymChanneler2AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster2BattleText:
text_far _SaffronGymYoungster2BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster2EndBattleText:
text_far _SaffronGymYoungster2EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster2AfterBattleText:
text_far _SaffronGymYoungster2AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler3BattleText:
text_far _SaffronGymChanneler3BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler3EndBattleText:
text_far _SaffronGymChanneler3EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymChanneler3AfterBattleText:
text_far _SaffronGymChanneler3AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster3BattleText:
text_far _SaffronGymYoungster3BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster3EndBattleText:
text_far _SaffronGymYoungster3EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster3AfterBattleText:
text_far _SaffronGymYoungster3AfterBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster4BattleText:
text_far _SaffronGymYoungster4BattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster4EndBattleText:
text_far _SaffronGymYoungster4EndBattleText
text_end
2014-05-18 18:19:10 +00:00
SaffronGymYoungster4AfterBattleText:
text_far _SaffronGymYoungster4AfterBattleText
text_end