mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00

He now gives you a Bottle Cap when you win, but still crashes the game when you lose for some reason...
249 lines
5.2 KiB
NASM
249 lines
5.2 KiB
NASM
ViridianPreGym_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, ViridianPreGymTrainerHeaders
|
|
ld de, ViridianPreGym_ScriptPointers
|
|
ld a, [wViridianPreGymCurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wViridianPreGymCurScript], a
|
|
ret
|
|
|
|
ViridianPreGymResetScripts:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wViridianPreGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
ViridianPreGym_ScriptPointers:
|
|
dw CheckFightingMapTrainers
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw ViridianGymYujirouPostBattle
|
|
|
|
ViridianGymYujirouPostBattle:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, ViridianGymResetScripts
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ViridianPreGymScriptReceiveBottleCap:
|
|
ld a, $b
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_BEAT_YUJIROU
|
|
lb bc, BOTTLE_CAP, 1
|
|
call GiveItem
|
|
jr nc, .BagFull
|
|
ld a, $c
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
SetEvent EVENT_GOT_YUJIROU_BOTTLE_CAP
|
|
jp ViridianPreGymResetScripts
|
|
.BagFull
|
|
ld a, $d
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
jp ViridianPreGymResetScripts
|
|
|
|
ViridianPreGym_TextPointers:
|
|
dw ViridianPreGymText1
|
|
dw ViridianPreGymText2
|
|
dw YujirouText
|
|
dw ViridianPreGymGuide
|
|
dw ViridianPreGymSign1
|
|
dw ViridianPreGymSign2
|
|
dw ViridianPreGymSign3
|
|
dw ViridianPreGymSign4
|
|
dw ViridianPreGymStatue1
|
|
dw ViridianPreGymStatue2
|
|
dw BeforeReceivedBottleCapText
|
|
dw ReceivedBottleCapText
|
|
dw BottleCapNoRoomText
|
|
|
|
ViridianPreGymTrainerHeaders:
|
|
def_trainers
|
|
ViridianPreGymTrainerHeader0:
|
|
trainer EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_0, 3, ViridianPreGymBattleText1, ViridianPreGymEndBattleText1, ViridianPreGymAfterBattleText1
|
|
ViridianPreGymTrainerHeader1:
|
|
trainer EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_1, 3, ViridianPreGymBattleText2, ViridianPreGymEndBattleText2, ViridianPreGymAfterBattleText2
|
|
db -1 ;end
|
|
|
|
YujirouText:
|
|
text_asm
|
|
CheckEvent EVENT_POST_GAME_ATTAINED ; No need to view previous stuff
|
|
jr nz, .rematchMode
|
|
CheckEvent EVENT_BEAT_YUJIROU
|
|
jp z, .yujirouNotBeaten
|
|
CheckEventReuseA EVENT_GOT_YUJIROU_BOTTLE_CAP
|
|
jr nz, .yujirouBeaten
|
|
call z, PewterGymScriptReceiveTM34
|
|
call DisableWaitingAfterTextDisplay
|
|
jp .done ; needed due to the rematch script length.
|
|
.rematchMode ; Rematch functionality. Just loads pre-battle text and his trainer.
|
|
ld hl, YujirouIntro2
|
|
call PrintText
|
|
ld c, BANK(Music_MeetMaleTrainer)
|
|
ld a, MUSIC_MEET_MALE_TRAINER
|
|
call PlayMusic
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
ld hl, YujirouLoseText2
|
|
ld de, YujirouLoseText2
|
|
call SaveEndBattleTextPointers
|
|
call EngageMapTrainer
|
|
ld a, OPP_YUJIROU
|
|
ld [wCurOpponent], a
|
|
ld a, 10
|
|
ld [wTrainerNo], a
|
|
ld a, 1
|
|
ld [wIsTrainerBattle], a
|
|
jr .done
|
|
.yujirouBeaten
|
|
ld hl, YujirouAfterBattleText
|
|
call PrintText
|
|
jr .done
|
|
.yujirouNotBeaten
|
|
ld hl, YujirouIntro
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, YujirouLoseText
|
|
ld de, YujirouLoseText
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndex]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
|
|
|
|
; gym scaling spaghetti code begins here - remove initial parameters as we're making our own
|
|
ld a, OPP_YUJIROU
|
|
ld [wCurOpponent], a
|
|
|
|
ld hl, wObtainedBadges ; Picking the team based on badge count. Need +1 so it loads the right team: remember, you're fighting for the badge! Thanks to Chatot4444 for the help.
|
|
ld b, 1
|
|
call CountSetBits
|
|
ld a, [wNumSetBits]
|
|
inc a
|
|
|
|
ld [wTrainerNo], a
|
|
ld a, 1
|
|
ld [wIsTrainerBattle], a
|
|
|
|
;ends here
|
|
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $3
|
|
ld [wViridianPreGymCurScript], a
|
|
ld [wCurMapScript], a
|
|
.done
|
|
jp TextScriptEnd
|
|
|
|
YujirouIntro::
|
|
text_far _YujirouIntro
|
|
text_end
|
|
|
|
YujirouLoseText::
|
|
text_far _YujirouLoseText
|
|
text_end
|
|
|
|
YujirouAfterBattleText::
|
|
text_far _YujirouAfterBattleText
|
|
text_end
|
|
|
|
BeforeReceivedBottleCapText:
|
|
text_far _BeforeReceivedBottleCapText
|
|
text_end
|
|
|
|
ReceivedBottleCapText:
|
|
text_far _ReceivedBottleCapText
|
|
sound_get_item_1
|
|
text_far _BottleCapExplanationText
|
|
text_end
|
|
|
|
BottleCapNoRoomText:
|
|
text_far _BottleCapNoRoomText
|
|
text_end
|
|
|
|
YujirouIntro2::
|
|
text_far _YujirouIntro2
|
|
text_end
|
|
|
|
YujirouLoseText2::
|
|
text_far _YujirouLoseText2
|
|
text_end
|
|
|
|
YujirouAfterBattleText2::
|
|
text_far _YujirouAfterBattleText2
|
|
text_end
|
|
|
|
ViridianPreGymText1:
|
|
text_asm
|
|
ld hl, ViridianPreGymTrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
ViridianPreGymBattleText1:
|
|
text_far _ViridianPreGymBattleText1
|
|
text_end
|
|
|
|
ViridianPreGymEndBattleText1:
|
|
text_far _ViridianPreGymEndBattleText1
|
|
text_end
|
|
|
|
ViridianPreGymAfterBattleText1:
|
|
text_far _ViridianPreGymAfterBattleText1
|
|
text_end
|
|
|
|
ViridianPreGymText2:
|
|
text_asm
|
|
ld hl, ViridianPreGymTrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
ViridianPreGymBattleText2:
|
|
text_far _ViridianPreGymBattleText2
|
|
text_end
|
|
|
|
ViridianPreGymEndBattleText2:
|
|
text_far _ViridianPreGymEndBattleText2
|
|
text_end
|
|
|
|
ViridianPreGymAfterBattleText2:
|
|
text_far _ViridianPreGymAfterBattleText2
|
|
text_end
|
|
|
|
ViridianPreGymGuide:
|
|
text_far _ViridianPreGymGuide
|
|
text_end
|
|
|
|
ViridianPreGymSign1:
|
|
text_far _ViridianPreGymSign1
|
|
text_end
|
|
|
|
ViridianPreGymSign2:
|
|
text_far _ViridianPreGymSign2
|
|
text_end
|
|
|
|
ViridianPreGymSign3:
|
|
text_far _ViridianPreGymSign3
|
|
text_end
|
|
|
|
ViridianPreGymSign4:
|
|
text_far _ViridianPreGymSign4
|
|
text_end
|
|
|
|
ViridianPreGymStatue1:
|
|
text_far _PreGymStatueText
|
|
text_end
|
|
|
|
ViridianPreGymStatue2:
|
|
text_far _PreGymStatueText
|
|
text_end
|
|
|
|
text_end ; unused
|