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

This addresses some issues found during my last KEP stream. - Take Down TM on Silph 5F to Earthquake, ensuring that TM does not go unused. - Bill's Garden now features Lapras and has level deviation. - Mt. Moon B1F's area where you access Mt. Moon Square now uses an upward-facing ladder, giving the illusion of going to a summit-like location. This makes its current odd location make more sense while not invalidating the progression regular Mt. Moon has. - Melanie should now give Bulbasaur correctly. - The Karate Master now has a failsafe for if you got a Hitmon, where he is guaranteed to not refight you before the post-game. - Fixed a 17 error Old Dance Jacket reported with the Up-Grade NPC's text. - Fixed nickname screen corruption when getting the Pikachu/Eevee mode starters. - Fixed some curious warp issues with Lavender Tower by reversing 3F. Could use with some tinkering. Silph still needs fixes. Credits have also been made more precise in the interests of better open source derivatives. Felt a bit odd expanding my credits so much, but this also made me realise I need to touch grass more frequently. I have also made our Open Source policy more precise.
352 lines
6.7 KiB
NASM
352 lines
6.7 KiB
NASM
Route24_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, Route24TrainerHeaders
|
|
ld de, Route24_ScriptPointers
|
|
ld a, [wRoute24CurScript]
|
|
call ExecuteCurMapScriptInTable
|
|
ld [wRoute24CurScript], a
|
|
ret
|
|
|
|
Route24Script_513c0:
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld [wRoute24CurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
Route24_ScriptPointers:
|
|
dw Route24Script0
|
|
dw DisplayEnemyTrainerTextAndStartBattle
|
|
dw EndTrainerBattle
|
|
dw Route24Script3
|
|
dw Route24Script4
|
|
|
|
Route24Script0:
|
|
CheckEvent EVENT_GOT_NUGGET
|
|
jp nz, CheckFightingMapTrainers
|
|
ld hl, CoordsData_5140e
|
|
call ArePlayerCoordsInArray
|
|
jp nc, CheckFightingMapTrainers
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $1
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE
|
|
ret z
|
|
ld a, D_DOWN
|
|
ld [wSimulatedJoypadStatesEnd], a
|
|
ld a, $1
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
call StartSimulatingJoypadStates
|
|
ld a, $4
|
|
ld [wRoute24CurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
CoordsData_5140e:
|
|
dbmapcoord 10, 15
|
|
db -1 ; end
|
|
|
|
Route24Script4:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
ld a, $0
|
|
ld [wRoute24CurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
Route24Script3:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, Route24Script_513c0
|
|
call UpdateSprites
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
SetEvent EVENT_BEAT_ROUTE24_ROCKET
|
|
ld a, $1
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $0
|
|
ld [wRoute24CurScript], a
|
|
ld [wCurMapScript], a
|
|
ret
|
|
|
|
Route24_TextPointers:
|
|
dw Route24Text1
|
|
dw Route24Text2
|
|
dw Route24Text3
|
|
dw Route24Text4
|
|
dw Route24Text5
|
|
dw Route24Text6
|
|
dw Route24Text7
|
|
dw PickUpItemText
|
|
dw Route24Damian
|
|
|
|
Route24TrainerHeaders:
|
|
def_trainers 2
|
|
Route24TrainerHeader0:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_0, 4, Route24BattleText1, Route24EndBattleText1, Route24AfterBattleText1
|
|
Route24TrainerHeader1:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_1, 1, Route24BattleText2, Route24EndBattleText2, Route24AfterBattleText2
|
|
Route24TrainerHeader2:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_2, 1, Route24BattleText3, Route24EndBattleText3, Route24AfterBattleText3
|
|
Route24TrainerHeader3:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_3, 1, Route24BattleText4, Route24EndBattleText4, Route24AfterBattleText4
|
|
Route24TrainerHeader4:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_4, 1, Route24BattleText5, Route24EndBattleText5, Route24AfterBattleText5
|
|
Route24TrainerHeader5:
|
|
trainer EVENT_BEAT_ROUTE_24_TRAINER_5, 1, Route24BattleText6, Route24EndBattleText6, Route24AfterBattleText6
|
|
db -1 ; end
|
|
|
|
Route24Text1:
|
|
text_asm
|
|
ResetEvent EVENT_NUGGET_REWARD_AVAILABLE
|
|
CheckEvent EVENT_GOT_NUGGET
|
|
jr nz, .got_item
|
|
ld hl, Route24Text_51510
|
|
call PrintText
|
|
lb bc, NUGGET, 1
|
|
call GiveItem
|
|
jr nc, .bag_full
|
|
SetEvent EVENT_GOT_NUGGET
|
|
ld hl, Route24Text_5151a
|
|
call PrintText
|
|
ld hl, Route24Text_51526
|
|
call PrintText
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, Route24Text_5152b
|
|
ld de, Route24Text_5152b
|
|
call SaveEndBattleTextPointers
|
|
ldh a, [hSpriteIndexOrTextID]
|
|
ld [wSpriteIndex], a
|
|
call EngageMapTrainer
|
|
call InitBattleEnemyParameters
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, $3
|
|
ld [wRoute24CurScript], a
|
|
ld [wCurMapScript], a
|
|
jp TextScriptEnd
|
|
.got_item
|
|
ld hl, Route24Text_51530
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
.bag_full
|
|
ld hl, Route24Text_51521
|
|
call PrintText
|
|
SetEvent EVENT_NUGGET_REWARD_AVAILABLE
|
|
jp TextScriptEnd
|
|
|
|
Route24Text_51510:
|
|
text_far _Route24Text_51510
|
|
sound_get_item_1
|
|
text_far _Route24Text_51515
|
|
text_end
|
|
|
|
Route24Text_5151a:
|
|
text_far _Route24Text_5151a
|
|
sound_get_item_1
|
|
text_promptbutton
|
|
text_end
|
|
|
|
Route24Text_51521:
|
|
text_far _Route24Text_51521
|
|
text_end
|
|
|
|
Route24Text_51526:
|
|
text_far _Route24Text_51526
|
|
text_end
|
|
|
|
Route24Text_5152b:
|
|
text_far _Route24Text_5152b
|
|
text_end
|
|
|
|
Route24Text_51530:
|
|
text_far _Route24Text_51530
|
|
text_end
|
|
|
|
Route24Text2:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader0
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24Text3:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader1
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24Text4:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader2
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24Text5:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader3
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24Text6:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader4
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24Text7:
|
|
text_asm
|
|
ld hl, Route24TrainerHeader5
|
|
call TalkToTrainer
|
|
jp TextScriptEnd
|
|
|
|
Route24BattleText1:
|
|
text_far _Route24BattleText1
|
|
text_end
|
|
|
|
Route24EndBattleText1:
|
|
text_far _Route24EndBattleText1
|
|
text_end
|
|
|
|
Route24AfterBattleText1:
|
|
text_far _Route24AfterBattleText1
|
|
text_end
|
|
|
|
Route24BattleText2:
|
|
text_far _Route24BattleText2
|
|
text_end
|
|
|
|
Route24EndBattleText2:
|
|
text_far _Route24EndBattleText2
|
|
text_end
|
|
|
|
Route24AfterBattleText2:
|
|
text_far _Route24AfterBattleText2
|
|
text_end
|
|
|
|
Route24BattleText3:
|
|
text_far _Route24BattleText3
|
|
text_end
|
|
|
|
Route24EndBattleText3:
|
|
text_far _Route24EndBattleText3
|
|
text_end
|
|
|
|
Route24AfterBattleText3:
|
|
text_far _Route24AfterBattleText3
|
|
text_end
|
|
|
|
Route24BattleText4:
|
|
text_far _Route24BattleText4
|
|
text_end
|
|
|
|
Route24EndBattleText4:
|
|
text_far _Route24EndBattleText4
|
|
text_end
|
|
|
|
Route24AfterBattleText4:
|
|
text_far _Route24AfterBattleText4
|
|
text_end
|
|
|
|
Route24BattleText5:
|
|
text_far _Route24BattleText5
|
|
text_end
|
|
|
|
Route24EndBattleText5:
|
|
text_far _Route24EndBattleText5
|
|
text_end
|
|
|
|
Route24AfterBattleText5:
|
|
text_far _Route24AfterBattleText5
|
|
text_end
|
|
|
|
Route24BattleText6:
|
|
text_far _Route24BattleText6
|
|
text_end
|
|
|
|
Route24EndBattleText6:
|
|
text_far _Route24EndBattleText6
|
|
text_end
|
|
|
|
Route24AfterBattleText6:
|
|
text_far _Route24AfterBattleText6
|
|
text_end
|
|
|
|
Route24Damian:
|
|
text_asm
|
|
CheckEvent EVENT_54F
|
|
jr nz, .asm_515d5
|
|
ld hl, Route24Text_515de
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .asm_515d0
|
|
call SaveScreenTilesToBuffer1 ; prevents nickname screen corruption
|
|
ld a, CHARMANDER
|
|
ld [wd11e], a
|
|
ld [wcf91], a
|
|
call GetMonName
|
|
ld a, $1
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
lb bc, CHARMANDER, 14
|
|
call GivePokemon
|
|
jp nc, .fullParty
|
|
ld a, [wAddedToParty]
|
|
and a
|
|
call z, WaitForTextScrollButtonPress
|
|
ld a, $1
|
|
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
|
ld hl, Route24Text_515e3
|
|
call PrintText
|
|
SetEvent EVENT_54F
|
|
jp TextScriptEnd
|
|
|
|
.asm_515d5
|
|
ld hl, Route24Text_515ee
|
|
jr .asm_515d8
|
|
|
|
.fullParty
|
|
ld hl, DamienFullParty
|
|
call PrintText
|
|
ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip.
|
|
and a ; yep, here too.
|
|
call z, WaitForTextScrollButtonPress ; and here.
|
|
call EnableAutoTextBoxDrawing ; and here.
|
|
; falls through to the next quote.
|
|
.asm_515d0
|
|
ld hl, Route24Text_515e9
|
|
jr .asm_515d8
|
|
.asm_515d8
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
Route24Text_515de:
|
|
text_far _Route24DamienText1
|
|
text_end
|
|
|
|
Route24Text_515e3:
|
|
text_far _Route24DamienText2
|
|
text_waitbutton
|
|
text_end
|
|
|
|
Route24Text_515e9:
|
|
text_far _Route24DamienText3
|
|
text_end
|
|
|
|
Route24Text_515ee:
|
|
text_far _Route24DamienText4
|
|
text_end
|
|
|
|
DamienFullParty:
|
|
text_far _DamienFullParty
|
|
text_end
|