pokered/scripts/Route16.asm
vulcandth d001ced41b
Add macros, constants, and labels for map scripts and text (#367)
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
2023-07-13 21:27:56 -04:00

221 lines
5.6 KiB
NASM

Route16_Script:
call EnableAutoTextBoxDrawing
ld hl, Route16TrainerHeaders
ld de, Route16_ScriptPointers
ld a, [wRoute16CurScript]
call ExecuteCurMapScriptInTable
ld [wRoute16CurScript], a
ret
Route16Script_59946:
xor a ; SCRIPT_ROUTE16_DEFAULT
ld [wJoyIgnore], a
ld [wRoute16CurScript], a
ld [wCurMapScript], a
ret
Route16_ScriptPointers:
def_script_pointers
dw_const Route16DefaultScript, SCRIPT_ROUTE16_DEFAULT
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_ROUTE16_START_BATTLE
dw_const EndTrainerBattle, SCRIPT_ROUTE16_END_BATTLE
dw_const Route16SnorlaxBattleScript, SCRIPT_ROUTE16_SNORLAX_BATTLE
Route16DefaultScript:
CheckEventHL EVENT_BEAT_ROUTE16_SNORLAX
jp nz, CheckFightingMapTrainers
CheckEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX
ResetEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX
jp z, CheckFightingMapTrainers
ld a, TEXT_ROUTE16_SNORLAX_WOKE_UP
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, SNORLAX
ld [wCurOpponent], a
ld a, 30
ld [wCurEnemyLVL], a
ld a, HS_ROUTE_16_SNORLAX
ld [wMissableObjectIndex], a
predef HideObject
call UpdateSprites
ld a, SCRIPT_ROUTE16_SNORLAX_BATTLE
ld [wRoute16CurScript], a
ld [wCurMapScript], a
ret
Route16SnorlaxBattleScript:
ld a, [wIsInBattle]
cp $ff
jp z, Route16Script_59946
call UpdateSprites
ld a, [wBattleResult]
cp $2
jr z, .caught
ld a, TEXT_ROUTE16_SNORLAX_RETURNED_TO_MOUNTAINS
ldh [hSpriteIndexOrTextID], a
call DisplayTextID
.caught
SetEvent EVENT_BEAT_ROUTE16_SNORLAX
call Delay3
ld a, SCRIPT_ROUTE16_DEFAULT
ld [wRoute16CurScript], a
ld [wCurMapScript], a
ret
Route16_TextPointers:
def_text_pointers
dw_const Route16Biker1Text, TEXT_ROUTE16_BIKER1
dw_const Route16Biker2Text, TEXT_ROUTE16_BIKER2
dw_const Route16Biker3Text, TEXT_ROUTE16_BIKER3
dw_const Route16Biker4Text, TEXT_ROUTE16_BIKER4
dw_const Route16Biker5Text, TEXT_ROUTE16_BIKER5
dw_const Route16Biker6Text, TEXT_ROUTE16_BIKER6
dw_const Route16SnorlaxText, TEXT_ROUTE16_SNORLAX
dw_const Route16CyclingRoadSignText, TEXT_ROUTE16_CYCLING_ROAD_SIGN
dw_const Route16SignText, TEXT_ROUTE16_SIGN
dw_const Route16SnorlaxWokeUpText, TEXT_ROUTE16_SNORLAX_WOKE_UP
dw_const Route16SnorlaxReturnedToMountainsText, TEXT_ROUTE16_SNORLAX_RETURNED_TO_MOUNTAINS
Route16TrainerHeaders:
def_trainers
Route16TrainerHeader0:
trainer EVENT_BEAT_ROUTE_16_TRAINER_0, 3, Route16Biker1BattleText, Route16Biker1EndBattleText, Route16Biker1AfterBattleText
Route16TrainerHeader1:
trainer EVENT_BEAT_ROUTE_16_TRAINER_1, 2, Route16Biker2BattleText, Route16Biker2EndBattleText, Route16Biker2AfterBattleText
Route16TrainerHeader2:
trainer EVENT_BEAT_ROUTE_16_TRAINER_2, 2, Route16Biker3BattleText, Route16Biker3EndBattleText, Route16Biker3AfterBattleText
Route16TrainerHeader3:
trainer EVENT_BEAT_ROUTE_16_TRAINER_3, 2, Route16biker4BattleText, Route16Biker4EndBattleText, Route16Biker4AfterBattleText
Route16TrainerHeader4:
trainer EVENT_BEAT_ROUTE_16_TRAINER_4, 2, Route16Biker5BattleText, Route16Biker5EndBattleText, Route16Biker5AfterBattleText
Route16TrainerHeader5:
trainer EVENT_BEAT_ROUTE_16_TRAINER_5, 4, Route16Biker6BattleText, Route16Biker6EndBattleText, Route16Biker6AfterBattleText
db -1 ; end
Route16Biker1Text:
text_asm
ld hl, Route16TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
Route16Biker1BattleText:
text_far _Route16Biker1BattleText
text_end
Route16Biker1EndBattleText:
text_far _Route16Biker1EndBattleText
text_end
Route16Biker1AfterBattleText:
text_far _Route16Biker1AfterBattleText
text_end
Route16Biker2Text:
text_asm
ld hl, Route16TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
Route16Biker2BattleText:
text_far _Route16Biker2BattleText
text_end
Route16Biker2EndBattleText:
text_far _Route16Biker2EndBattleText
text_end
Route16Biker2AfterBattleText:
text_far _Route16Biker2AfterBattleText
text_end
Route16Biker3Text:
text_asm
ld hl, Route16TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
Route16Biker3BattleText:
text_far _Route16Biker3BattleText
text_end
Route16Biker3EndBattleText:
text_far _Route16Biker3EndBattleText
text_end
Route16Biker3AfterBattleText:
text_far _Route16Biker3AfterBattleText
text_end
Route16Biker4Text:
text_asm
ld hl, Route16TrainerHeader3
call TalkToTrainer
jp TextScriptEnd
Route16biker4BattleText:
text_far _Route16biker4BattleText
text_end
Route16Biker4EndBattleText:
text_far _Route16Biker4EndBattleText
text_end
Route16Biker4AfterBattleText:
text_far _Route16Biker4AfterBattleText
text_end
Route16Biker5Text:
text_asm
ld hl, Route16TrainerHeader4
call TalkToTrainer
jp TextScriptEnd
Route16Biker5BattleText:
text_far _Route16Biker5BattleText
text_end
Route16Biker5EndBattleText:
text_far _Route16Biker5EndBattleText
text_end
Route16Biker5AfterBattleText:
text_far _Route16Biker5AfterBattleText
text_end
Route16Biker6Text:
text_asm
ld hl, Route16TrainerHeader5
call TalkToTrainer
jp TextScriptEnd
Route16Biker6BattleText:
text_far _Route16Biker6BattleText
text_end
Route16Biker6EndBattleText:
text_far _Route16Biker6EndBattleText
text_end
Route16Biker6AfterBattleText:
text_far _Route16Biker6AfterBattleText
text_end
Route16SnorlaxText:
text_far _Route16Text7
text_end
Route16SnorlaxWokeUpText:
text_far _Route16SnorlaxWokeUpText
text_end
Route16SnorlaxReturnedToMountainsText:
text_far _Route16SnorlaxReturnedToMountainsText
text_end
Route16CyclingRoadSignText:
text_far _Route16CyclingRoadSignText
text_end
Route16SignText:
text_far _Route16SignText
text_end