pokered/scripts/pewtergym.asm
dannye 70dde9d96b Clean up redundant labels
fix trainer header numbering
2016-07-20 00:40:04 -05:00

228 lines
4.2 KiB
NASM
Executable file

PewterGymScript:
ld hl, wCurrentMapScriptFlags
bit 6, [hl]
res 6, [hl]
call nz, PewterGymScript_5c3a4
call EnableAutoTextBoxDrawing
ld hl, PewterGymTrainerHeader0
ld de, PewterGymScriptPointers
ld a, [wPewterGymCurScript]
call ExecuteCurMapScriptInTable
ld [wPewterGymCurScript], a
ret
PewterGymScript_5c3a4:
ld hl, Gym1CityName
ld de, Gym1LeaderName
jp LoadGymLeaderAndCityName
Gym1CityName:
db "PEWTER CITY@"
Gym1LeaderName:
db "BROCK@"
PewterGymScript_5c3bf:
xor a
ld [wJoyIgnore], a
ld [wPewterGymCurScript], a
ld [wCurMapScript], a
ret
PewterGymScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw PewterGymScript3
PewterGymScript3:
ld a, [wIsInBattle]
cp $ff
jp z, PewterGymScript_5c3bf
ld a, $f0
ld [wJoyIgnore], a
PewterGymScript_5c3df:
ld a, $4
ld [hSpriteIndexOrTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_BROCK
lb bc, TM_34, 1
call GiveItem
jr nc, .BagFull
ld a, $5
ld [hSpriteIndexOrTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM34
jr .asm_5c408
.BagFull
ld a, $6
ld [hSpriteIndexOrTextID], a
call DisplayTextID
.asm_5c408
ld hl, wObtainedBadges
set 0, [hl]
ld hl, wBeatGymFlags
set 0, [hl]
ld a, HS_GYM_GUY
ld [wMissableObjectIndex], a
predef HideObject
ld a, HS_ROUTE_22_RIVAL_1
ld [wMissableObjectIndex], a
predef HideObject
ResetEvents EVENT_1ST_ROUTE22_RIVAL_BATTLE, EVENT_ROUTE22_RIVAL_WANTS_BATTLE
; deactivate gym trainers
SetEvent EVENT_BEAT_PEWTER_GYM_TRAINER_0
jp PewterGymScript_5c3bf
PewterGymTextPointers:
dw PewterGymText1
dw PewterGymText2
dw PewterGymText3
dw PewterGymText4
dw PewterGymText5
dw PewterGymText6
PewterGymTrainerHeader0:
dbEventFlagBit EVENT_BEAT_PEWTER_GYM_TRAINER_0
db ($5 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_PEWTER_GYM_TRAINER_0
dw PewterGymBattleText1 ; TextBeforeBattle
dw PewterGymAfterBattleText1 ; TextAfterBattle
dw PewterGymEndBattleText1 ; TextEndBattle
dw PewterGymEndBattleText1 ; TextEndBattle
db $ff
PewterGymText1:
TX_ASM
CheckEvent EVENT_BEAT_BROCK
jr z, .asm_5c46a
CheckEventReuseA EVENT_GOT_TM34
jr nz, .asm_5c462
call z, PewterGymScript_5c3df
call DisableWaitingAfterTextDisplay
jr .asm_5c49b
.asm_5c462
ld hl, PewterGymText_5c4a3
call PrintText
jr .asm_5c49b
.asm_5c46a
ld hl, PewterGymText_5c49e
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, PewterGymText_5c4bc
ld de, PewterGymText_5c4bc
call SaveEndBattleTextPointers
ld a, [H_SPRITEINDEX]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $1
ld [wGymLeaderNo], a
xor a
ld [hJoyHeld], a
ld a, $3
ld [wPewterGymCurScript], a
ld [wCurMapScript], a
.asm_5c49b
jp TextScriptEnd
PewterGymText_5c49e:
TX_FAR _PewterGymText_5c49e
db "@"
PewterGymText_5c4a3:
TX_FAR _PewterGymText_5c4a3
db "@"
PewterGymText4:
TX_FAR _TM34PreReceiveText
db "@"
PewterGymText5:
TX_FAR _ReceivedTM34Text
TX_SFX_ITEM_1
TX_FAR _TM34ExplanationText
db "@"
PewterGymText6:
TX_FAR _TM34NoRoomText
db "@"
PewterGymText_5c4bc:
TX_FAR _PewterGymText_5c4bc
TX_SFX_LEVEL_UP ; probably supposed to play SFX_GET_ITEM_1 but the wrong music bank is loaded
TX_FAR _PewterGymText_5c4c1
db "@"
PewterGymText2:
TX_ASM
ld hl, PewterGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PewterGymBattleText1:
TX_FAR _PewterGymBattleText1
db "@"
PewterGymEndBattleText1:
TX_FAR _PewterGymEndBattleText1
db "@"
PewterGymAfterBattleText1:
TX_FAR _PewterGymAfterBattleText1
db "@"
PewterGymText3:
TX_ASM
ld a, [wBeatGymFlags]
bit 0, a
jr nz, .asm_5c50c
ld hl, PewterGymText_5c515
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
and a
jr nz, .asm_5c4fe
ld hl, PewterGymText_5c51a
call PrintText
jr .asm_5c504
.asm_5c4fe
ld hl, PewterGymText_5c524
call PrintText
.asm_5c504
ld hl, PewterGymText_5c51f
call PrintText
jr .asm_5c512
.asm_5c50c
ld hl, PewterGymText_5c529
call PrintText
.asm_5c512
jp TextScriptEnd
PewterGymText_5c515:
TX_FAR _PewterGymText_5c515
db "@"
PewterGymText_5c51a:
TX_FAR _PewterGymText_5c51a
db "@"
PewterGymText_5c51f:
TX_FAR _PewterGymText_5c51f
db "@"
PewterGymText_5c524:
TX_FAR _PewterGymText_5c524
db "@"
PewterGymText_5c529:
TX_FAR _PewterGymText_5c529
db "@"