Prev: F045 Up: Map Next: F216
F190: Action: Climb
Climb the rope, the volcano or down into the boat.
Action_Climb F190 CALL Parser_ValidateDirectObject Return if the words after the verb are not valid for this command.
F193 RET C
F194 LD HL,$E83D Jump to Action_Climb_Next unless the player named the rope.
F197 CALL Parser_AdvanceToSeparator
F19A JR NZ,Action_Climb_Next
F19C LD A,($BA9B) Jump to Response_YouCant_GameLoop unless the player is in 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 object 23 (the rope on the overhang) is not here.
F1A6 CALL IsObjectInCurrentRoom
F1A9 JP NZ,Response_YouCant_GameLoop
F1AC LD A,$48 Try to enter room 48 (Inside the Volcano).
F1AE CALL Handler_InjuryCheck
F1B1 RET Return.
Action_Climb_Next F1B2 LD HL,$E840 Jump to Action_Climb_WearRing unless the player named the ring.
F1B5 CALL Parser_AdvanceToSeparator
F1B8 JR NZ,Action_Climb_WearRing
F1BA LD A,($BA9B) Jump to Response_YouCant_GameLoop unless the player is in room 48 (Inside the Volcano).
F1BD CP $48
F1BF JP NZ,Response_YouCant_GameLoop
F1C2 LD A,$47 Try to enter room 47 (The Top of the Volcano).
F1C4 CALL Handler_InjuryCheck
F1C7 RET Return.
Action_Climb_WearRing F1C8 LD HL,$E855 Jump to Action_Climb_IntoBoat unless the player named the ring.
F1CB CALL Parser_AdvanceToSeparator
F1CE JR NZ,Action_Climb_IntoBoat
F1D0 LD HL,$EB23 Print "You start to climb. The precipice is too steep. You lose your grip and fall." and end the game.
F1D3 EX (SP),HL
F1D4 LD HL,$DDE6
F1D7 JP PrintResponse
Action_Climb_IntoBoat F1DA LD HL,$E85B Jump to Action_Climb_OutOfBoat unless the player named getting into the boat.
F1DD CALL Parser_AdvanceToSeparator
F1E0 JR NZ,Action_Climb_OutOfBoat
F1E2 LD A,$1D Jump to Action_Climb_EnterBoat when object 1D (the boat) is here.
F1E4 CALL IsObjectInCurrentRoom
F1E7 JR Z,Action_Climb_EnterBoat
Reply with "You are in the boat already.".
F1E9 LD HL,$DC9A Print "You are in the boat already." and return to the game loop.
F1EC JP PrintResponse
Action_Climb_EnterBoat F1EF LD A,$1D Try to enter room 1D (In the Boat).
F1F1 CALL Handler_InjuryCheck
F1F4 RET Return.
Action_Climb_OutOfBoat F1F5 LD HL,$E86B Jump to Action_Climb_YouCant unless the player named getting out of the boat.
F1F8 CALL Parser_AdvanceToSeparator
F1FB JR NZ,Action_Climb_YouCant
F1FD LD A,($BA9B) Jump to Action_Climb_LeaveBoat when the player is in room 1D (In the Boat).
F200 CP $1D
F202 JR Z,Action_Climb_LeaveBoat
Reply with "You're not in the boat.".
F204 LD HL,$DE33 Print "You're not in the boat." and return to the game loop.
F207 JP PrintResponse
Action_Climb_LeaveBoat F20A LD A,$1D Call GetObjectLocation to fetch where the boat is.
F20C CALL GetObjectLocation
F20F CALL Handler_InjuryCheck Call Handler_InjuryCheck to enter where the boat is, unless the player is too badly hurt.
F212 RET Return.
Action_Climb_YouCant F213 JP Response_YouCant_GameLoop Tell the player the command is impossible.
Prev: F045 Up: Map Next: F216