pokered/scripts/cinnabargym.asm

473 lines
9 KiB
NASM
Raw Normal View History

2016-06-12 00:24:04 +00:00
CinnabarGymScript:
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_75759
call EnableAutoTextBoxDrawing
ld hl, CinnabarGymScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wCinnabarGymCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
2016-06-12 00:24:04 +00:00
CinnabarGymScript_75759:
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]
push hl
call nz, CinnabarGymScript_75772
pop hl
bit 5, [hl]
res 5, [hl]
2015-07-21 21:21:14 +00:00
call nz, UpdateCinnabarGymGateTileBlocks
2015-07-21 01:32:02 +00:00
ResetEvent EVENT_2A7
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
CinnabarGymScript_75772:
2014-05-18 18:19:10 +00:00
ld hl, Gym7CityName
ld de, Gym7LeaderName
jp LoadGymLeaderAndCityName
2016-06-12 00:24:04 +00:00
Gym7CityName:
2014-05-18 18:19:10 +00:00
db "CINNABAR ISLAND@"
2016-06-12 00:24:04 +00:00
Gym7LeaderName:
2014-05-18 18:19:10 +00:00
db "BLAINE@"
2016-06-12 00:24:04 +00:00
CinnabarGymScript_75792:
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 [wCinnabarGymCurScript], a
ld [wCurMapScript], a
2015-07-26 02:26:54 +00:00
ld [wOpponentAfterWrongAnswer], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
CinnabarGymScript_757a0:
2015-07-18 15:17:29 +00:00
ld a, [hSpriteIndexOrTextID]
2014-05-18 18:19:10 +00:00
ld [wTrainerHeaderFlagBit], a
ret
2016-06-12 00:24:04 +00:00
CinnabarGymScriptPointers:
2014-05-18 18:19:10 +00:00
dw CinnabarGymScript0
dw CinnabarGymScript1
dw CinnabarGymScript2
dw CinnabarGymScript3
2016-06-12 00:24:04 +00:00
CinnabarGymScript0:
2015-07-26 02:26:54 +00:00
ld a, [wOpponentAfterWrongAnswer]
2014-05-18 18:19:10 +00:00
and a
ret z
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
cp $4
jr nz, .asm_757c3
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
2014-05-18 18:19:10 +00:00
ld de, MovementData_757d7
jr .asm_757cb
2014-05-18 18:19:10 +00:00
.asm_757c3
ld de, MovementData_757da
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
2014-05-18 18:19:10 +00:00
.asm_757cb
call MoveSprite
ld a, $1
2015-08-31 02:38:41 +00:00
ld [wCinnabarGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MovementData_757d7:
db NPC_MOVEMENT_LEFT
db NPC_MOVEMENT_UP
db $FF
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MovementData_757da:
db NPC_MOVEMENT_LEFT
db $FF
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CinnabarGymScript1:
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-26 02:26:54 +00:00
ld a, [wOpponentAfterWrongAnswer]
2014-05-18 18:19:10 +00:00
ld [wTrainerHeaderFlagBit], a
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
jp DisplayTextID
2016-06-12 00:24:04 +00:00
CinnabarGymFlagAction:
predef_jump FlagActionPredef
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CinnabarGymScript2:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, CinnabarGymScript_75792
ld a, [wTrainerHeaderFlagBit]
ld [$ffdb], a
2015-07-21 21:21:14 +00:00
AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
2014-05-18 18:19:10 +00:00
ld c, a
2015-07-20 03:45:34 +00:00
ld b, FLAG_TEST
2015-07-21 21:21:14 +00:00
EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
call CinnabarGymFlagAction
2014-05-18 18:19:10 +00:00
ld a, c
and a
jr nz, .asm_7581b
2014-05-18 18:19:10 +00:00
call WaitForSoundToFinish
2015-07-19 08:46:12 +00:00
ld a, SFX_GO_INSIDE
2014-05-18 18:19:10 +00:00
call PlaySound
call WaitForSoundToFinish
.asm_7581b
ld a, [wTrainerHeaderFlagBit]
ld [$ffdb], a
2015-07-21 21:21:14 +00:00
AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
2014-05-18 18:19:10 +00:00
ld c, a
2015-07-20 03:45:34 +00:00
ld b, FLAG_SET
2015-07-21 21:21:14 +00:00
EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0
call CinnabarGymFlagAction
2014-05-18 18:19:10 +00:00
ld a, [wTrainerHeaderFlagBit]
sub $2
2015-07-21 21:21:14 +00:00
AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0
2014-05-18 18:19:10 +00:00
ld c, a
2015-07-20 03:45:34 +00:00
ld b, FLAG_SET
2015-07-21 21:21:14 +00:00
EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
call CinnabarGymFlagAction
call UpdateCinnabarGymGateTileBlocks
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-26 02:26:54 +00:00
ld [wOpponentAfterWrongAnswer], a
2014-05-18 18:19:10 +00:00
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wCinnabarGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
CinnabarGymScript3:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, CinnabarGymScript_75792
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2016-06-12 00:24:04 +00:00
CinnabarGymScript3_75857:
2014-05-18 18:19:10 +00:00
ld a, $a
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_BLAINE
2015-08-05 21:20:29 +00:00
lb bc, TM_38, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .BagFull
ld a, $b
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_TM38
jr .asm_75880
2014-05-18 18:19:10 +00:00
.BagFull
ld a, $c
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
.asm_75880
2015-08-31 02:38:41 +00:00
ld hl, wObtainedBadges
2014-05-18 18:19:10 +00:00
set 6, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
2014-05-18 18:19:10 +00:00
set 6, [hl]
; deactivate gym trainers
2015-07-21 21:21:14 +00:00
SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6
2014-05-18 18:19:10 +00:00
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
set 5, [hl]
jp CinnabarGymScript_75792
2016-06-12 00:24:04 +00:00
CinnabarGymTextPointers:
2014-05-18 18:19:10 +00:00
dw CinnabarGymText1
dw CinnabarGymText2
dw CinnabarGymText3
dw CinnabarGymText4
dw CinnabarGymText5
dw CinnabarGymText6
dw CinnabarGymText7
dw CinnabarGymText8
dw CinnabarGymText9
dw BlaineBadgeText
dw ReceivedTM38Text
dw TM38NoRoomText
2016-06-12 00:24:04 +00:00
CinnabarGymScript_758b7:
2015-07-18 15:17:29 +00:00
ld a, [hSpriteIndexOrTextID]
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
2014-05-18 18:19:10 +00:00
call EngageMapTrainer
call InitBattleEnemyParameters
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
2014-09-13 07:50:56 +00:00
ld a, [wSpriteIndex]
2014-05-18 18:19:10 +00:00
cp $1
jr z, .asm_758d4
ld a, $2
jr .asm_758d6
.asm_758d4
ld a, $3
.asm_758d6
2015-08-31 02:38:41 +00:00
ld [wCinnabarGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText1:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_BLAINE
jr z, .asm_d9332
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM38
jr nz, .asm_3012f
2014-05-18 18:19:10 +00:00
call z, CinnabarGymScript3_75857
call DisableWaitingAfterTextDisplay
jp TextScriptEnd
.asm_3012f
2014-05-18 18:19:10 +00:00
ld hl, BlaineFireBlastText
call PrintText
jp TextScriptEnd
.asm_d9332
2014-05-18 18:19:10 +00:00
ld hl, BlaineBattleText
call PrintText
ld hl, BlaineEndBattleText
ld de, BlaineEndBattleText
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
ld a, $7
2015-08-31 02:38:41 +00:00
ld [wGymLeaderNo], a
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
2016-06-12 00:24:04 +00:00
BlaineBattleText:
2014-05-18 18:19:10 +00:00
TX_FAR _BlaineBattleText
db "@"
2016-06-12 00:24:04 +00:00
BlaineEndBattleText:
2014-05-18 18:19:10 +00:00
TX_FAR _BlaineEndBattleText
2016-07-18 06:17:03 +00:00
TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded
TX_WAIT
2014-05-18 18:19:10 +00:00
db "@"
2016-06-12 00:24:04 +00:00
BlaineFireBlastText:
2014-05-18 18:19:10 +00:00
TX_FAR _BlaineFireBlastText
db "@"
2016-06-12 00:24:04 +00:00
BlaineBadgeText:
2014-05-18 18:19:10 +00:00
TX_FAR _BlaineBadgeText
db "@"
2016-06-12 00:24:04 +00:00
ReceivedTM38Text:
2014-05-18 18:19:10 +00:00
TX_FAR _ReceivedTM38Text
2016-07-18 06:17:03 +00:00
TX_SFX_ITEM_1
2014-05-18 18:19:10 +00:00
TX_FAR _TM38ExplanationText
db "@"
2016-06-12 00:24:04 +00:00
TM38NoRoomText:
2014-05-18 18:19:10 +00:00
TX_FAR _TM38NoRoomText
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText2:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0
jr nz, .asm_46bb4
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_7595f
call PrintText
ld hl, CinnabarGymText_75964
ld de, CinnabarGymText_75964
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_46bb4
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75969
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_7595f:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_7595f
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75964:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75964
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75969:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75969
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText3:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1
jr nz, .asm_4b406
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75994
call PrintText
ld hl, CinnabarGymText_75999
ld de, CinnabarGymText_75999
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_4b406
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_7599e
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_75994:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75994
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75999:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75999
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_7599e:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_7599e
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText4:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2
jr nz, .asm_c0673
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_759c9
call PrintText
ld hl, CinnabarGymText_759ce
ld de, CinnabarGymText_759ce
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_c0673
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_759d3
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_759c9:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_759c9
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_759ce:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_759ce
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_759d3:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_759d3
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText5:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3
jr nz, .asm_5cfd7
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_759fe
call PrintText
ld hl, CinnabarGymText_75a03
ld de, CinnabarGymText_75a03
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_5cfd7
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a08
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_759fe:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_759fe
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a03:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a03
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a08:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a08
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText6:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4
jr nz, .asm_776b4
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a33
call PrintText
ld hl, CinnabarGymText_75a38
ld de, CinnabarGymText_75a38
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_776b4
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a3d
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a33:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a33
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a38:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a38
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a3d:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a3d
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText7:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5
jr nz, .asm_2f755
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a68
call PrintText
ld hl, CinnabarGymText_75a6d
ld de, CinnabarGymText_75a6d
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_2f755
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a72
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a68:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a68
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a6d:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a6d
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a72:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a72
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText8:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call CinnabarGymScript_757a0
2015-07-21 21:21:14 +00:00
CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6
jr nz, .asm_d87be
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75a9d
call PrintText
ld hl, CinnabarGymText_75aa2
ld de, CinnabarGymText_75aa2
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2014-05-18 18:19:10 +00:00
jp CinnabarGymScript_758b7
.asm_d87be
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75aa7
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_75a9d:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75a9d
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75aa2:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75aa2
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75aa7:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75aa7
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText9:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_BLAINE
jr nz, .asm_627d9
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75ac2
jr .asm_0b11d
.asm_627d9
2014-05-18 18:19:10 +00:00
ld hl, CinnabarGymText_75ac7
.asm_0b11d
2014-05-18 18:19:10 +00:00
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CinnabarGymText_75ac2:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75ac2
db "@"
2016-06-12 00:24:04 +00:00
CinnabarGymText_75ac7:
2014-05-18 18:19:10 +00:00
TX_FAR _CinnabarGymText_75ac7
db "@"