Prev: F263 Up: Map Next: F4D4
F481: Action: Get
Action_Get F481 CALL Parser_ValidateDirectObject Call Parser_ValidateDirectObject.
F484 RET C Return if the direct object is malformed.
Confirm if the player intended to "GET INTO BOAT" (or similar).
F485 LD HL,$EA0D Call MatchPhraseTokens with PhraseTokens_IntoBoat.
F488 CALL MatchPhraseTokens
F48B JR NZ,GetOutOfBoat_Check Jump to GetOutOfBoat_Check if the token isn't for getting into the boat.
This entry point is used by the routine at Action_Climb.
The player has typed any variation of wanting to get into the boat.
Validate_GetIntoBoat F48D LD A,($BCCB) Jump to AlreadyInTheBoat if the *CurrentRoom is room 04: " In A Rowing Boat". So the player is already in the boat.
F490 CP $04
F492 JR Z,AlreadyInTheBoat
F494 CP $6B Jump to Action_GetIntoBoat if the *CurrentRoom is not room 6B: " In A Rowing Boat" (a room variation, but the player being in the boat).
F496 JR NZ,Action_GetIntoBoat
The player is definitely already in the boat, so tell them this.
Print "You're in it already.".
AlreadyInTheBoat F498 LD HL,$DC21 HL=Messaging_YoureInItAlready.
F49B JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
The player can only get into the boat from room 03: " Your Ship".
Action_GetIntoBoat F49E CP $03 Jump to WhereIsTheBoat if the *CurrentRoom is not room 03: " Your Ship"
F4A0 JR NZ,WhereIsTheBoat
F4A2 LD A,$04 Jump to SetBoatDestination using room 04: In A Rowing Boat as the destination.
F4A4 JR SetBoatDestination
WhereIsTheBoat F4A6 LD A,$6B Load room 6B: In A Rowing Boat into A.
SetBoatDestination F4A8 CALL $EF54 Call EF54 to set the room destination from A.
F4AB RET Return.
Confirm if the player intended to "GET OUT OF BOAT" (or similar).
GetOutOfBoat_Check F4AC LD HL,$EA1D Call MatchPhraseTokens with PhraseTokens_OutOfBoat.
F4AF CALL MatchPhraseTokens
F4B2 JR NZ,Synonym_Take Jump to Synonym_Take if the token isn't for the getting out of the boat.
This entry point is used by the routine at Action_Climb.
IsPlayerInRowingBoat_1 F4B4 LD A,($BCCB) Jump to IsPlayerInRowingBoat_2 if the *CurrentRoom is not room 04: " In A Rowing Boat".
F4B7 CP $04
F4B9 JR NZ,IsPlayerInRowingBoat_2
F4BB LD A,$03 Call EF54 to room 03: Your Ship.
F4BD CALL $EF54
F4C0 RET Return.
Also check the room variation, as the player is in the boat in both.
IsPlayerInRowingBoat_2 F4C1 CP $6B Jump to NotInTheBoat if the *CurrentRoom is not room 6B: " In A Rowing Boat".
F4C3 JR NZ,NotInTheBoat
F4C5 LD A,$06 Call EF54 to room 06: Long Sandy Beach.
F4C7 CALL $EF54
F4CA RET Return.
Print "You're not in the boat.".
NotInTheBoat F4CB LD HL,$DC37 HL=Messaging_YoureNotInTheBoat.
F4CE JP PrintStringAndNewline_Alias Jump to PrintStringAndNewline_Alias.
Pivot to "TAKE" as a synonym.
Synonym_Take F4D1 JP Action_Take Jump to Action_Take.
Prev: F263 Up: Map Next: F4D4