![]()  | 
Routines | 
| Prev: FCCD | Up: Map | Next: FD6D | 
| 
 | 
||||
| Action_Row | FD02 | CALL Parser_ValidateAnyDirectObject | Call Parser_ValidateAnyDirectObject. | |
| 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 ChangeRoom | Call ChangeRoom. | ||
| 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 ChangeRoom to room 6B: In A Rowing Boat. | ||
| FD3B | CALL ChangeRoom | |||
| 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 ChangeRoom to room 04: In A Rowing Boat. | ||
| FD50 | CALL ChangeRoom | |||
| 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 ChangeRoom to room 02: The Open Sea. | |
| FD69 | CALL ChangeRoom | |||
| FD6C | RET | Return. | ||
| Prev: FCCD | Up: Map | Next: FD6D |