pokered/scripts/Route16Gate1F.asm

124 lines
2.9 KiB
NASM
Raw Normal View History

Route16Gate1F_Script:
ld hl, wStatusFlags6
res BIT_ALWAYS_ON_BIKE, [hl]
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld a, [wRoute16Gate1FCurScript]
ld hl, Route16Gate1F_ScriptPointers
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
Route16Gate1F_ScriptPointers:
def_script_pointers
dw_const Route16Gate1FDefaultScript, SCRIPT_ROUTE16GATE1F_DEFAULT
dw_const Route16Gate1FPlayerMovingUpScript, SCRIPT_ROUTE16GATE1F_PLAYER_MOVING_UP
dw_const Route16Gate1FGuardScript, SCRIPT_ROUTE16GATE1F_GUARD
dw_const Route16Gate1FPlayerMovingRightScript, SCRIPT_ROUTE16GATE1F_PLAYER_MOVING_RIGHT
2014-05-18 18:19:10 +00:00
Route16Gate1FDefaultScript:
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_ROUTE16GATE1F_GUARD_WAIT_UP
ldh [hTextID], 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
2014-05-18 18:19:10 +00:00
ld b, $0
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_ROUTE16GATE1F_PLAYER_MOVING_UP
ld [wRoute16Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
.next_to_counter
ld a, SCRIPT_ROUTE16GATE1F_GUARD
ld [wRoute16Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
.StopsPlayerCoords:
dbmapcoord 4, 7
dbmapcoord 4, 8
dbmapcoord 4, 9
dbmapcoord 4, 10
db -1 ; end
2014-05-18 18:19:10 +00:00
Route16Gate1FPlayerMovingUpScript:
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
Route16Gate1FGuardScript:
ld a, TEXT_ROUTE16GATE1F_GUARD
ldh [hTextID], 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_ROUTE16GATE1F_PLAYER_MOVING_RIGHT
ld [wRoute16Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
Route16Gate1FPlayerMovingRightScript:
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_ROUTE16GATE1F_DEFAULT
ld [wRoute16Gate1FCurScript], a
2014-05-18 18:19:10 +00:00
ret
Route16Gate1FIsBicycleInBagScript:
2014-05-18 18:19:10 +00:00
ld b, BICYCLE
jp IsItemInBag
Route16Gate1F_TextPointers:
def_text_pointers
dw_const Route16Gate1FGuardText, TEXT_ROUTE16GATE1F_GUARD
dw_const Route16Gate1FGamblerText, TEXT_ROUTE16GATE1F_GAMBLER
dw_const Route16Gate1FGuardWaitUpText, TEXT_ROUTE16GATE1F_GUARD_WAIT_UP
2014-05-18 18:19:10 +00:00
Route16Gate1FGuardText:
text_asm
call Route16Gate1FIsBicycleInBagScript
jr z, .no_bike
ld hl, .CyclingRoadExplanationText
2014-05-18 18:19:10 +00:00
call PrintText
jr .text_script_end
.no_bike
ld hl, .NoPedestriansAllowedText
2014-05-18 18:19:10 +00:00
call PrintText
.text_script_end
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
.NoPedestriansAllowedText:
text_far _Route16Gate1FGuardNoPedestriansAllowedText
text_end
2014-05-18 18:19:10 +00:00
.CyclingRoadExplanationText:
text_far _Route16Gate1FGuardCyclingRoadExplanationText
text_end
2014-05-18 18:19:10 +00:00
Route16Gate1FGuardWaitUpText:
text_far _Route16Gate1FGuardWaitUpText
text_end
2014-05-18 18:19:10 +00:00
Route16Gate1FGamblerText:
text_far _Route16Gate1FGamblerText
text_end