pokered/scripts/Route23.asm

246 lines
5.4 KiB
NASM
Raw Normal View History

Route23_Script:
call Route23SetVictoryRoadBoulders
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, Route23_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wRoute23CurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
Route23SetVictoryRoadBoulders:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
bit BIT_CUR_MAP_LOADED_2, [hl]
res BIT_CUR_MAP_LOADED_2, [hl]
2014-05-18 18:19:10 +00:00
ret z
2015-07-21 17:36:03 +00:00
ResetEvents EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2
ResetEvents EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1, EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
ld a, HS_VICTORY_ROAD_3F_BOULDER
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef ShowObject
ld a, HS_VICTORY_ROAD_2F_BOULDER
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef_jump HideObject
2014-05-18 18:19:10 +00:00
Route23_ScriptPointers:
def_script_pointers
dw_const Route23DefaultScript, SCRIPT_ROUTE23_DEFAULT
dw_const Route23PlayerMovingScript, SCRIPT_ROUTE23_PLAYER_MOVING
dw_const Route23ResetToDefaultScript, SCRIPT_ROUTE23_RESET_TO_DEFAULT
2014-05-18 18:19:10 +00:00
Route23DefaultScript:
2023-11-19 00:44:03 +00:00
ld hl, Route23GuardsYCoords
2015-08-31 02:38:41 +00:00
ld a, [wYCoord]
2014-05-18 18:19:10 +00:00
ld b, a
ld e, $0
2015-07-21 17:36:03 +00:00
EventFlagBit c, EVENT_PASSED_EARTHBADGE_CHECK + 1, EVENT_PASSED_CASCADEBADGE_CHECK
2023-11-19 00:44:03 +00:00
.loop
2014-05-18 18:19:10 +00:00
ld a, [hli]
cp -1
2014-05-18 18:19:10 +00:00
ret z
inc e
dec c
cp b
2023-11-19 00:44:03 +00:00
jr nz, .loop
cp 35
2023-11-19 00:44:03 +00:00
jr nz, .not_past_victory_road
2015-08-31 02:38:41 +00:00
ld a, [wXCoord]
cp 14
2014-05-18 18:19:10 +00:00
ret nc
2023-11-19 00:44:03 +00:00
.not_past_victory_road
2014-05-18 18:19:10 +00:00
ld a, e
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
ld a, c
2015-07-18 15:17:29 +00:00
ld [wWhichBadge], a
2015-07-20 03:45:34 +00:00
ld b, FLAG_TEST
2015-07-21 17:36:03 +00:00
EventFlagAddress hl, EVENT_PASSED_CASCADEBADGE_CHECK
predef FlagActionPredef
2014-05-18 18:19:10 +00:00
ld a, c
and a
ret nz
call Route23CopyBadgeTextScript
2014-05-18 18:19:10 +00:00
call DisplayTextID
xor a
ldh [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ret
2023-11-19 00:44:03 +00:00
Route23GuardsYCoords:
db 35
db 56
db 85
db 96
db 105
db 119
db 136
db -1 ; end
2014-05-18 18:19:10 +00:00
Route23CopyBadgeTextScript:
ld hl, BadgeTextPointers
2015-07-18 15:17:29 +00:00
ld a, [wWhichBadge]
2014-05-18 18:19:10 +00:00
ld c, a
2015-07-18 15:17:29 +00:00
ld b, 0
2014-05-18 18:19:10 +00:00
add hl, bc
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wNameBuffer
2015-07-18 15:17:29 +00:00
.copyTextLoop
2014-05-18 18:19:10 +00:00
ld a, [hli]
ld [de], a
inc de
2015-07-18 15:17:29 +00:00
cp "@"
jr nz, .copyTextLoop
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
BadgeTextPointers:
2014-05-18 18:19:10 +00:00
dw CascadeBadgeText
dw ThunderBadgeText
dw RainbowBadgeText
dw SoulBadgeText
dw MarshBadgeText
dw VolcanoBadgeText
dw EarthBadgeText
2016-06-12 00:24:04 +00:00
EarthBadgeText:
2014-05-18 18:19:10 +00:00
db "EARTHBADGE@"
2016-06-12 00:24:04 +00:00
VolcanoBadgeText:
2014-05-18 18:19:10 +00:00
db "VOLCANOBADGE@"
2016-06-12 00:24:04 +00:00
MarshBadgeText:
2014-05-18 18:19:10 +00:00
db "MARSHBADGE@"
2016-06-12 00:24:04 +00:00
SoulBadgeText:
2014-05-18 18:19:10 +00:00
db "SOULBADGE@"
2016-06-12 00:24:04 +00:00
RainbowBadgeText:
2014-05-18 18:19:10 +00:00
db "RAINBOWBADGE@"
2016-06-12 00:24:04 +00:00
ThunderBadgeText:
2014-05-18 18:19:10 +00:00
db "THUNDERBADGE@"
2016-06-12 00:24:04 +00:00
CascadeBadgeText:
2014-05-18 18:19:10 +00:00
db "CASCADEBADGE@"
Route23MovePlayerDownScript:
2014-05-18 18:19:10 +00:00
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
ld a, D_DOWN
ld [wSimulatedJoypadStatesEnd], a
2014-05-18 18:19:10 +00:00
xor a
ld [wSpritePlayerStateData1FacingDirection], a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
jp StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
Route23PlayerMovingScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
Route23ResetToDefaultScript:
ld a, SCRIPT_ROUTE23_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wRoute23CurScript], a
2014-05-18 18:19:10 +00:00
ret
Route23_TextPointers:
def_text_pointers
dw_const Route23Guard1Text, TEXT_ROUTE23_GUARD1
dw_const Route23Guard2Text, TEXT_ROUTE23_GUARD2
dw_const Route23Swimmer1Text, TEXT_ROUTE23_SWIMMER1
dw_const Route23Swimmer2Text, TEXT_ROUTE23_SWIMMER2
dw_const Route23Guard3Text, TEXT_ROUTE23_GUARD3
dw_const Route23Guard4Text, TEXT_ROUTE23_GUARD4
dw_const Route23Guard5Text, TEXT_ROUTE23_GUARD5
dw_const Route23VictoryRoadGateSignText, TEXT_ROUTE23_VICTORY_ROAD_GATE_SIGN
Route23Guard1Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_EARTHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Guard2Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_VOLCANOBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Swimmer1Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_MARSHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Swimmer2Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_SOULBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Guard3Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_RAINBOWBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Guard4Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_THUNDERBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23Guard5Text:
text_asm
2015-07-21 17:36:03 +00:00
EventFlagBit a, EVENT_PASSED_CASCADEBADGE_CHECK
call Route23CheckForBadgeScript
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
Route23CheckForBadgeScript:
2015-07-18 15:17:29 +00:00
ld [wWhichBadge], a
call Route23CopyBadgeTextScript
2015-07-18 15:17:29 +00:00
ld a, [wWhichBadge]
2014-05-18 18:19:10 +00:00
inc a
ld c, a
2015-07-20 03:45:34 +00:00
ld b, FLAG_TEST
2015-08-31 02:38:41 +00:00
ld hl, wObtainedBadges
predef FlagActionPredef
2014-05-18 18:19:10 +00:00
ld a, c
and a
jr nz, .have_badge
ld hl, Route23YouDontHaveTheBadgeYetText
2014-05-18 18:19:10 +00:00
call PrintText
call Route23MovePlayerDownScript
ld a, SCRIPT_ROUTE23_PLAYER_MOVING
2015-08-31 02:38:41 +00:00
ld [wRoute23CurScript], a
2014-05-18 18:19:10 +00:00
ret
.have_badge
ld hl, Route23OhThatIsTheBadgeText
2014-05-18 18:19:10 +00:00
call PrintText
2015-07-18 15:17:29 +00:00
ld a, [wWhichBadge]
2014-05-18 18:19:10 +00:00
ld c, a
2015-07-20 03:45:34 +00:00
ld b, FLAG_SET
2015-07-21 17:36:03 +00:00
EventFlagAddress hl, EVENT_PASSED_CASCADEBADGE_CHECK
predef FlagActionPredef
ld a, SCRIPT_ROUTE23_RESET_TO_DEFAULT
2015-08-31 02:38:41 +00:00
ld [wRoute23CurScript], a
2014-05-18 18:19:10 +00:00
ret
Route23PrintOhThatsTheBadgeTextScript: ; unreferenced
ld hl, Route23OhThatIsTheBadgeText
2014-05-18 18:19:10 +00:00
jp PrintText
Route23YouDontHaveTheBadgeYetText:
text_far _Route23YouDontHaveTheBadgeYetText
text_asm
2015-07-19 08:46:12 +00:00
ld a, SFX_DENIED
2014-05-18 18:19:10 +00:00
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
jp TextScriptEnd
Route23OhThatIsTheBadgeText:
text_far _Route23OhThatIsTheBadgeText
sound_get_item_1
text_far _Route23GoRightAheadText
text_end
2014-05-18 18:19:10 +00:00
Route23VictoryRoadGateSignText:
text_far _Route23VictoryRoadGateSignText
text_end