Prev: F03A Up: Map Next: F216
F190: Action: Climb
Climb the rope, the volcano or down into the boat.
Action_Climb F190 CALL Parser_ValidateDirectObject Call Parser_ValidateDirectObject.
F193 RET C Return if the direct object is malformed.
Was the player trying to climb ... the rope?
F194 LD HL,$E83D Call Parser_AdvanceToSeparator with E83D.
F197 CALL Parser_AdvanceToSeparator
F19A JR NZ,Climb_CheckOutOfVolcano Jump to Climb_CheckOutOfVolcano if the token isn't for the rope.
The player is attempting to climb the rope into the volcano.
F19C LD A,($BA9B) Jump to Response_YouCant_GameLoop if *CurrentRoom isn't room 47: " The Top of the Volcano".
F19F CP $47
F1A1 JP NZ,Response_YouCant_GameLoop
F1A4 LD A,$23 Jump to Response_YouCant_GameLoop if "A projection of rock with a rope tied to it. The rope dangles down into the volc" isn't in the current room.
F1A6 CALL ValidateItemPresent
F1A9 JP NZ,Response_YouCant_GameLoop
F1AC LD A,$48 Call Handler_InjuryCheck with room 48: " Inside the Volcano".
F1AE CALL Handler_InjuryCheck
F1B1 RET Return.
Was the player trying to climb ... out of the volcano?
Climb_CheckOutOfVolcano F1B2 LD HL,$E840 Call Parser_AdvanceToSeparator with E840.
F1B5 CALL Parser_AdvanceToSeparator
F1B8 JR NZ,Climb_CheckVolcanoWall Jump to Climb_CheckVolcanoWall if the token isn't for climbing out.
The player is attempting to climb out of the volcano.
F1BA LD A,($BA9B) Jump to Response_YouCant_GameLoop if *CurrentRoom isn't room 48: " Inside the Volcano".
F1BD CP $48
F1BF JP NZ,Response_YouCant_GameLoop
F1C2 LD A,$47 Call Handler_InjuryCheck with room 47: " The Top of the Volcano".
F1C4 CALL Handler_InjuryCheck
F1C7 RET Return.
Was the player trying to climb ... the volcano wall?
Climb_CheckVolcanoWall F1C8 LD HL,$E855 Call Parser_AdvanceToSeparator with E855.
F1CB CALL Parser_AdvanceToSeparator
F1CE JR NZ,Climb_CheckIntoBoat Jump to Climb_CheckIntoBoat if the token isn't for the volcano wall.
The climb fails and ends the game.
F1D0 LD HL,$EB23 Switch GameOver onto the stack.
F1D3 EX (SP),HL
Print "You start to climb. The precipice is too steep. You lose your grip and fall.".
F1D4 LD HL,$DDE6 HL=Messaging_YouStartToClimb.
F1D7 JP PrintResponse Jump to PrintResponse.
Was the player trying to climb ... into the boat?
Climb_CheckIntoBoat F1DA LD HL,$E85B Call Parser_AdvanceToSeparator with E85B.
F1DD CALL Parser_AdvanceToSeparator
F1E0 JR NZ,Climb_CheckOutOfBoat Jump to Climb_CheckOutOfBoat if the token isn't for getting into the boat.
F1E2 LD A,$1D Jump to Climb_EnterBoat if ValidateItemPresent reports that "A rowing boat" is in the current room.
F1E4 CALL ValidateItemPresent
F1E7 JR Z,Climb_EnterBoat
Print "You are in the boat already.".
F1E9 LD HL,$DC9A HL=Messaging_YouAreInTheBoatAlready.
F1EC JP PrintResponse Jump to PrintResponse.
Climb_EnterBoat F1EF LD A,$1D Call Handler_InjuryCheck with room 1D: " In the Boat".
F1F1 CALL Handler_InjuryCheck
F1F4 RET Return.
Was the player trying to climb ... out of the boat?
Climb_CheckOutOfBoat F1F5 LD HL,$E86B Call Parser_AdvanceToSeparator with E86B.
F1F8 CALL Parser_AdvanceToSeparator
F1FB JR NZ,Climb_YouCant Jump to Climb_YouCant if the token isn't for getting out of the boat.
F1FD LD A,($BA9B) Jump to Climb_LeaveBoat if *CurrentRoom is room 1D: " In the Boat".
F200 CP $1D
F202 JR Z,Climb_LeaveBoat
Print "You're not in the boat.".
F204 LD HL,$DE33 HL=Messaging_YoureNotInTheBoat.
F207 JP PrintResponse Jump to PrintResponse.
Climb_LeaveBoat F20A LD A,$1D A=1D; call GetObjectLocation.
F20C CALL GetObjectLocation
F20F CALL Handler_InjuryCheck Call Handler_InjuryCheck.
F212 RET Return.
Nothing else is valid.
Climb_YouCant F213 JP Response_YouCant_GameLoop Jump to Response_YouCant_GameLoop.
View the equivalent code in;
Prev: F03A Up: Map Next: F216