pokered/scripts/Route18Gate1F.asm

115 lines
2.7 KiB
NASM
Raw Normal View History

Route18Gate1F_Script:
ld hl, wStatusFlags6
res BIT_ALWAYS_ON_BIKE, [hl]
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld a, [wRoute18Gate1FCurScript]
ld hl, Route18Gate1F_ScriptPointers
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
Route18Gate1F_ScriptPointers:
def_script_pointers
dw_const Route18Gate1FDefaultScript, SCRIPT_ROUTE18GATE1F_DEFAULT
dw_const Route18Gate1FPlayerMovingUpScript, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_UP
dw_const Route18Gate1FGuardScript, SCRIPT_ROUTE18GATE1F_GUARD
dw_const Route18Gate1FPlayerMovingRightScript, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_RIGHT
2014-05-18 18:19:10 +00:00
Route18Gate1FDefaultScript:
call Route16Gate1FIsBicycleInBagScript
2014-05-18 18:19:10 +00:00
ret nz
ld hl, .StopsPlayerCoords
2014-05-18 18:19:10 +00:00
call ArePlayerCoordsInArray
ret nc
ld a, TEXT_ROUTE18GATE1F_GUARD_EXCUSE_ME
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
xor a
ldh [hJoyHeld], a
2015-07-18 15:17:29 +00:00
ld a, [wCoordIndex]
2014-05-18 18:19:10 +00:00
cp $1
jr z, .next_to_counter
2015-07-18 15:17:29 +00:00
ld a, [wCoordIndex]
2014-05-18 18:19:10 +00:00
dec a
ld [wSimulatedJoypadStatesIndex], a
2015-07-18 15:17:29 +00:00
ld b, 0
2014-05-18 18:19:10 +00:00
ld c, a
ld a, D_UP
ld hl, wSimulatedJoypadStatesEnd
2014-05-18 18:19:10 +00:00
call FillMemory
call StartSimulatingJoypadStates
ld a, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_UP
ld [wRoute18Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
.next_to_counter
ld a, SCRIPT_ROUTE18GATE1F_GUARD
ld [wRoute18Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
.StopsPlayerCoords:
dbmapcoord 4, 3
dbmapcoord 4, 4
dbmapcoord 4, 5
dbmapcoord 4, 6
db -1 ; end
2014-05-18 18:19:10 +00:00
Route18Gate1FPlayerMovingUpScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
Route18Gate1FGuardScript:
ld a, TEXT_ROUTE18GATE1F_GUARD
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, $1
ld [wSimulatedJoypadStatesIndex], a
ld a, D_RIGHT
ld [wSimulatedJoypadStatesEnd], a
call StartSimulatingJoypadStates
ld a, SCRIPT_ROUTE18GATE1F_PLAYER_MOVING_RIGHT
ld [wRoute18Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
Route18Gate1FPlayerMovingRightScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld hl, wStatusFlags5
res BIT_SCRIPTED_MOVEMENT_STATE, [hl]
ld a, SCRIPT_ROUTE18GATE1F_DEFAULT
ld [wRoute18Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
Route18Gate1F_TextPointers:
def_text_pointers
dw_const Route18Gate1FGuardText, TEXT_ROUTE18GATE1F_GUARD
dw_const Route18Gate1FGuardExcuseMeText, TEXT_ROUTE18GATE1F_GUARD_EXCUSE_ME
2014-05-18 18:19:10 +00:00
Route18Gate1FGuardText:
text_asm
call Route16Gate1FIsBicycleInBagScript
jr z, .no_bike
ld hl, .CyclingRoadUphillText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.no_bike
ld hl, .YouNeedABicycleText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.YouNeedABicycleText:
text_far _Route18Gate1FGuardYouNeedABicycleText
text_end
2014-05-18 18:19:10 +00:00
.CyclingRoadUphillText:
text_far _Route18Gate1FGuardCyclingRoadUphillText
text_end
2014-05-18 18:19:10 +00:00
Route18Gate1FGuardExcuseMeText:
text_far _Route18Gate1FGuardExcuseMeText
text_end