pokered/scripts/VermilionGym.asm

268 lines
5.4 KiB
NASM
Raw Normal View History

VermilionGym_Script:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
bit 5, [hl]
res 5, [hl]
push hl
call nz, VermilionGymScript_5ca4c
pop hl
bit 6, [hl]
res 6, [hl]
call nz, VermilionGymScript_5ca6d
call EnableAutoTextBoxDrawing
ld hl, VermilionGymTrainerHeader0
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
2016-06-12 00:24:04 +00:00
VermilionGymScript_5ca4c:
ld hl, Gym3CityName
ld de, Gym3LeaderName
2014-05-18 18:19:10 +00:00
jp LoadGymLeaderAndCityName
2016-06-12 00:24:04 +00:00
Gym3CityName:
2014-05-18 18:19:10 +00:00
db "VERMILION CITY@"
2016-06-12 00:24:04 +00:00
Gym3LeaderName:
2014-05-18 18:19:10 +00:00
db "LT.SURGE@"
2016-06-12 00:24:04 +00:00
VermilionGymScript_5ca6d:
2015-07-21 01:32:02 +00:00
CheckEvent EVENT_2ND_LOCK_OPENED
2019-10-07 05:23:57 +00:00
jr nz, .doorsOpen
2014-05-18 18:19:10 +00:00
ld a, $24
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
ld a, $5
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
2016-06-12 00:24:04 +00:00
VermilionGymScript_5ca8a:
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:
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 VermilionGymScript3
2016-06-12 00:24:04 +00:00
VermilionGymScript3:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, VermilionGymScript_5ca8a
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
VermilionGymScript_5caaa:
2014-05-18 18:19:10 +00:00
ld a, $6
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_BEAT_LT_SURGE
2015-08-05 21:20:29 +00:00
lb bc, TM_24, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .BagFull
ld a, $7
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_GOT_TM24
2019-10-07 05:23:57 +00:00
jr .gymVictory
2014-05-18 18:19:10 +00:00
.BagFull
ld a, $8
2015-07-18 15:17:29 +00:00
ld [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
2014-05-18 18:19:10 +00:00
set 2, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
2014-05-18 18:19:10 +00:00
set 2, [hl]
; 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
jp VermilionGymScript_5ca8a
VermilionGym_TextPointers:
2014-05-18 18:19:10 +00:00
dw VermilionGymText1
dw VermilionGymText2
dw VermilionGymText3
dw VermilionGymText4
dw VermilionGymText5
dw VermilionGymText6
dw VermilionGymText7
dw VermilionGymText8
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader0:
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_0
2014-05-18 18:19:10 +00:00
db ($3 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_0
dw VermilionGymBattleText1 ; TextBeforeBattle
dw VermilionGymAfterBattleText1 ; TextAfterBattle
dw VermilionGymEndBattleText1 ; TextEndBattle
dw VermilionGymEndBattleText1 ; TextEndBattle
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader1:
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_1
2014-05-18 18:19:10 +00:00
db ($2 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_1
dw VermilionGymBattleText2 ; TextBeforeBattle
dw VermilionGymAfterBattleText2 ; TextAfterBattle
dw VermilionGymEndBattleText2 ; TextEndBattle
dw VermilionGymEndBattleText2 ; TextEndBattle
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
VermilionGymTrainerHeader2:
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_2
2014-05-18 18:19:10 +00:00
db ($3 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_2
dw VermilionGymBattleText3 ; TextBeforeBattle
dw VermilionGymAfterBattleText3 ; TextAfterBattle
dw VermilionGymEndBattleText3 ; TextEndBattle
dw VermilionGymEndBattleText3 ; TextEndBattle
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
VermilionGymText1:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_LT_SURGE
2019-10-07 05:23:57 +00:00
jr z, .beforeBeat
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM24
2019-10-07 05:23:57 +00:00
jr nz, .afterBeat
2014-05-18 18:19:10 +00:00
call z, VermilionGymScript_5caaa
call DisableWaitingAfterTextDisplay
2019-10-07 05:23:57 +00:00
jr .done
.afterBeat
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymText_5cb72
call PrintText
2019-10-07 05:23:57 +00:00
jr .done
.beforeBeat
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymText_5cb6d
call PrintText
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, ReceivedThunderbadgeText
ld de, ReceivedThunderbadgeText
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2015-07-03 20:13:35 +00:00
ld a, [H_SPRITEINDEX]
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
2015-07-03 20:13:35 +00:00
ld [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wVermilionGymCurScript], a
ld [wCurMapScript], a
2019-10-07 05:23:57 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
VermilionGymText_5cb6d:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymText_5cb6d
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText_5cb72:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymText_5cb72
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText6:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymText_5cb77
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText7:
2014-05-18 18:19:10 +00:00
TX_FAR _ReceivedTM24Text
2016-07-18 06:17:03 +00:00
TX_SFX_KEY_ITEM
2014-05-18 18:19:10 +00:00
TX_FAR _TM24ExplanationText
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText8:
2014-05-18 18:19:10 +00:00
TX_FAR _TM24NoRoomText
db "@"
2016-06-12 00:24:04 +00:00
ReceivedThunderbadgeText:
2014-05-18 18:19:10 +00:00
TX_FAR _ReceivedThunderbadgeText
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText2:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
VermilionGymBattleText1:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymBattleText1
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymEndBattleText1:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymEndBattleText1
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymAfterBattleText1:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymAfterBattleText1
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText3:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
VermilionGymBattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymBattleText2
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymEndBattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymEndBattleText2
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymAfterBattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymAfterBattleText2
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText4:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
VermilionGymBattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymBattleText3
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymEndBattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymEndBattleText3
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymAfterBattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymAfterBattleText3
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText5:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-26 02:26:54 +00:00
ld a, [wBeatGymFlags]
2014-05-18 18:19:10 +00:00
bit 2, a
jr nz, .asm_5cbeb
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymText_5cbf4
call PrintText
jr .asm_5cbf1
.asm_5cbeb
2014-05-18 18:19:10 +00:00
ld hl, VermilionGymText_5cbf9
call PrintText
.asm_5cbf1
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
VermilionGymText_5cbf4:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymText_5cbf4
db "@"
2016-06-12 00:24:04 +00:00
VermilionGymText_5cbf9:
2014-05-18 18:19:10 +00:00
TX_FAR _VermilionGymText_5cbf9
db "@"