Prev: FCCD Up: Map Next: FD6D
FD02: Action: Row
Action_Row FD02 CALL $C4B7 Call C4B7.
FD05 RET C Return if the direct object is malformed.
FD06 CP $02 Jump to Response_PleaseRephraseThat_Duplicate if A is greater than 02.
FD08 JP NC,Response_PleaseRephraseThat_Duplicate
Is the player in a room where they're able to row something?
FD0B LD A,($BCCB) Load A with *CurrentRoom.
FD0E LD HL,$FD1E Set HL to point to Table_RoomsRowingBoat.
FD11 LD BC,$0003 Set a counter in BC of 0003 which is the number of rooms in the table.
FD14 CPIR Search for the current room in the "rowing boat rooms" table.
FD16 JR Z,Row_OpenSea Jump to Row_OpenSea if there's something to row in this room.
Print "You're not in the boat.".
FD18 LD HL,$DC37 HL=Messaging_YoureNotInTheBoat.
FD1B JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
A table containing any room ID in which you're in the rowing boat.
Table_RoomsRowingBoat FD1E DEFB $6B Room 6B: In A Rowing Boat.
FD1F DEFB $04 Room 04: In A Rowing Boat.
FD20 DEFB $02 Room 02: The Open Sea.
The player is in a room containing a rowing boat, but which one?
Row_OpenSea FD21 CP $02 Jump to Row_North if the room match was not room 02: The Open Sea.
FD23 JR NZ,Row_North
FD25 CALL $EF54 Call EF54.
FD28 RET Return.
The player is in either room 6B or 04 but which direction were they attempting to travel in?
Row_North FD29 LD HL,$EAEC Call MatchPhraseTokens with PhraseTokens_North.
FD2C CALL MatchPhraseTokens
FD2F JR NZ,Row_South Jump to Row_South if the token isn't for rowing north.
FD31 LD A,($BCCB) Jump to Response_YouveDoneThatAlready if *CurrentRoom is not room 04: " In A Rowing Boat".
FD34 CP $04
FD36 JP NZ,Response_YouveDoneThatAlready
FD39 LD A,$6B Call EF54 to room 6B: In A Rowing Boat.
FD3B CALL $EF54
FD3E RET Return.
Was the player trying to row south?
Row_South FD3F LD HL,$EAF5 Call MatchPhraseTokens with PhraseTokens_South.
FD42 CALL MatchPhraseTokens
FD45 JR NZ,Row_East Jump to Row_East if the token isn't for rowing south.
FD47 LD A,($BCCB) Jump to Row_Lost if *CurrentRoom is not room 6B: " In A Rowing Boat".
FD4A CP $6B
FD4C JR NZ,Row_Lost
FD4E LD A,$04 Call EF54 to room 04: In A Rowing Boat.
FD50 CALL $EF54
FD53 RET Return.
Was the player trying to row east?
Row_East FD54 LD HL,$EAFE Call MatchPhraseTokens with PhraseTokens_East.
FD57 CALL MatchPhraseTokens
FD5A JR Z,Row_Lost Jump to Row_Lost if the token is for rowing east.
West it is then.
FD5C LD HL,$EB07 Call MatchPhraseTokens with PhraseTokens_West.
FD5F CALL MatchPhraseTokens
FD62 JR Z,Row_Lost Jump to Row_Lost if the token is for rowing west.
Nothing else is valid.
FD64 JP Response_PleaseRephraseThat_Duplicate Jump to Response_PleaseRephraseThat_Duplicate.
Player is now lost...
Row_Lost FD67 LD A,$02 Call EF54 to room 02: The Open Sea.
FD69 CALL $EF54
FD6C RET Return.
Prev: FCCD Up: Map Next: FD6D