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 ChangeRoom Call ChangeRoom 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 ChangeRoom to room 03: Your Ship.
F4BD CALL ChangeRoom
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 ChangeRoom to room 06: Long Sandy Beach.
F4C7 CALL ChangeRoom
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