kep-hack/scripts/FuchsiaGym.asm

330 lines
6.9 KiB
NASM
Executable file

FuchsiaGym_Script:
call FuchsiaGymScript_75453
call EnableAutoTextBoxDrawing
ld hl, FuchsiaGymTrainerHeader0
ld de, FuchsiaGym_ScriptPointers
ld a, [wFuchsiaGymCurScript]
call ExecuteCurMapScriptInTable
ld [wFuchsiaGymCurScript], a
ret
FuchsiaGymScript_75453:
ld hl, wCurrentMapScriptFlags
bit 6, [hl]
res 6, [hl]
ret z
ld hl, Gym5CityName
ld de, Gym5LeaderName
call LoadGymLeaderAndCityName
ret
Gym5CityName:
db "FUCHSIA CITY@"
Gym5LeaderName:
db "KOGA@"
FuchsiaGymScript_75477:
xor a
ld [wJoyIgnore], a
ld [wFuchsiaGymCurScript], a
ld [wCurMapScript], a
ret
FuchsiaGym_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
dw FuchsiaGymScript3
FuchsiaGymScript3:
ld a, [wIsInBattle]
cp $ff
jp z, FuchsiaGymScript_75477
ld a, $f0
ld [wJoyIgnore], a
FuchsiaGymScript3_75497:
ld a, $9
ld [hSpriteIndexOrTextID], a
call DisplayTextID
SetEvent EVENT_BEAT_KOGA
lb bc, TM_06, 1
call GiveItem
jr nc, .BagFull
ld a, $a
ld [hSpriteIndexOrTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM06
jr .gymVictory
.BagFull
ld a, $b
ld [hSpriteIndexOrTextID], a
call DisplayTextID
.gymVictory
ld hl, wObtainedBadges
set 4, [hl]
ld hl, wBeatGymFlags
set 4, [hl]
; deactivate gym trainers
SetEventRange EVENT_BEAT_FUCHSIA_GYM_TRAINER_0, EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
jp FuchsiaGymScript_75477
FuchsiaGym_TextPointers:
dw FuchsiaGymText1
dw FuchsiaGymText2
dw FuchsiaGymText3
dw FuchsiaGymText4
dw FuchsiaGymText5
dw FuchsiaGymText6
dw FuchsiaGymText7
dw FuchsiaGymText8
dw FuchsiaGymText9
dw FuchsiaGymText10
dw FuchsiaGymText11
FuchsiaGymTrainerHeader0:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_0
db ($2 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_0
dw FuchsiaGymBattleText1 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText1 ; TextAfterBattle
dw FuchsiaGymEndBattleText1 ; TextEndBattle
dw FuchsiaGymEndBattleText1 ; TextEndBattle
FuchsiaGymTrainerHeader1:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_1
db ($2 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_1
dw FuchsiaGymBattleText2 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText2 ; TextAfterBattle
dw FuchsiaGymEndBattleText2 ; TextEndBattle
dw FuchsiaGymEndBattleText2 ; TextEndBattle
FuchsiaGymTrainerHeader2:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_2
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_2
dw FuchsiaGymBattleText3 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText3 ; TextAfterBattle
dw FuchsiaGymEndBattleText3 ; TextEndBattle
dw FuchsiaGymEndBattleText3 ; TextEndBattle
FuchsiaGymTrainerHeader3:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_3
db ($2 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_3
dw FuchsiaGymBattleText4 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText4 ; TextAfterBattle
dw FuchsiaGymEndBattleText4 ; TextEndBattle
dw FuchsiaGymEndBattleText4 ; TextEndBattle
FuchsiaGymTrainerHeader4:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_4
db ($2 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_4
dw FuchsiaGymBattleText5 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText5 ; TextAfterBattle
dw FuchsiaGymEndBattleText5 ; TextEndBattle
dw FuchsiaGymEndBattleText5 ; TextEndBattle
FuchsiaGymTrainerHeader5:
dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
db ($2 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_5
dw FuchsiaGymBattleText6 ; TextBeforeBattle
dw FuchsiaGymAfterBattleText6 ; TextAfterBattle
dw FuchsiaGymEndBattleText6 ; TextEndBattle
dw FuchsiaGymEndBattleText6 ; TextEndBattle
db $ff
FuchsiaGymText1:
text_asm
CheckEvent EVENT_BEAT_KOGA
jr z, .beginBattle
CheckEventReuseA EVENT_GOT_TM06
jr nz, .afterVictory
call z, FuchsiaGymScript3_75497
call DisableWaitingAfterTextDisplay
jr .done
.afterVictory
ld hl, KogaExplainToxicText
call PrintText
jr .done
.beginBattle
ld hl, KogaBeforeBattleText
call PrintText
ld hl, wd72d
set 6, [hl]
set 7, [hl]
ld hl, KogaAfterBattleText
ld de, KogaAfterBattleText
call SaveEndBattleTextPointers
ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $5
ld [wGymLeaderNo], a
xor a
ld [hJoyHeld], a
ld a, $3
ld [wFuchsiaGymCurScript], a
.done
jp TextScriptEnd
KogaBeforeBattleText:
text_far _KogaBeforeBattleText
text_end
KogaAfterBattleText:
text_far _KogaAfterBattleText
text_end
KogaExplainToxicText:
text_far _KogaExplainToxicText
text_end
FuchsiaGymText9:
text_far _FuchsiaGymText9
text_end
FuchsiaGymText10:
text_far _ReceivedTM06Text
sound_get_key_item
TM06ExplanationText:
text_far _TM06ExplanationText
text_end
FuchsiaGymText11:
text_far _TM06NoRoomText
text_end
FuchsiaGymText2:
text_asm
ld hl, FuchsiaGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText1:
text_far _FuchsiaGymBattleText1
text_end
FuchsiaGymEndBattleText1:
text_far _FuchsiaGymEndBattleText1
text_end
FuchsiaGymAfterBattleText1:
text_far _FuchsiaGymAfterBattleText1
text_end
FuchsiaGymText3:
text_asm
ld hl, FuchsiaGymTrainerHeader1
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText2:
text_far _FuchsiaGymBattleText2
text_end
FuchsiaGymEndBattleText2:
text_far _FuchsiaGymEndBattleText2
text_end
FuchsiaGymAfterBattleText2:
text_far _FuchsiaGymAfterBattleText2
text_end
FuchsiaGymText4:
text_asm
ld hl, FuchsiaGymTrainerHeader2
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText3:
text_far _FuchsiaGymBattleText3
text_end
FuchsiaGymEndBattleText3:
text_far _FuchsiaGymEndBattleText3
text_end
FuchsiaGymAfterBattleText3:
text_far _FuchsiaGymAfterBattleText3
text_end
FuchsiaGymText5:
text_asm
ld hl, FuchsiaGymTrainerHeader3
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText4:
text_far _FuchsiaGymBattleText4
text_end
FuchsiaGymEndBattleText4:
text_far _FuchsiaGymEndBattleText4
text_end
FuchsiaGymAfterBattleText4:
text_far _FuchsiaGymAfterBattleText4
text_end
FuchsiaGymText6:
text_asm
ld hl, FuchsiaGymTrainerHeader4
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText5:
text_far _FuchsiaGymBattleText5
text_end
FuchsiaGymEndBattleText5:
text_far _FuchsiaGymEndBattleText5
text_end
FuchsiaGymAfterBattleText5:
text_far _FuchsiaGymAfterBattleText5
text_end
FuchsiaGymText7:
text_asm
ld hl, FuchsiaGymTrainerHeader5
call TalkToTrainer
jp TextScriptEnd
FuchsiaGymBattleText6:
text_far _FuchsiaGymBattleText6
text_end
FuchsiaGymEndBattleText6:
text_far _FuchsiaGymEndBattleText6
text_end
FuchsiaGymAfterBattleText6:
text_far _FuchsiaGymAfterBattleText6
text_end
FuchsiaGymText8:
text_asm
CheckEvent EVENT_BEAT_KOGA
ld hl, FuchsiaGymText_75653
jr nz, .asm_50671
ld hl, FuchsiaGymText_7564e
.asm_50671
call PrintText
jp TextScriptEnd
FuchsiaGymText_7564e:
text_far _FuchsiaGymText_7564e
text_end
FuchsiaGymText_75653:
text_far _FuchsiaGymText_75653
text_end