Prev: 61498 Up: Map Next: 61974
61840: Action: Climb
Climb the rope, the volcano or down into the boat.
Action_Climb 61840 CALL Parser_ValidateDirectObject Call Parser_ValidateDirectObject.
61843 RET C Return if the direct object is malformed.
Was the player trying to climb ... the rope?
61844 LD HL,59453 Call Parser_AdvanceToSeparator with 59453.
61847 CALL Parser_AdvanceToSeparator
61850 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.
61852 LD A,(47771) Jump to Response_YouCant_GameLoop if *CurrentRoom isn't room 71: " The Top of the Volcano".
61855 CP 71
61857 JP NZ,Response_YouCant_GameLoop
61860 LD A,35 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.
61862 CALL ValidateItemPresent
61865 JP NZ,Response_YouCant_GameLoop
61868 LD A,72 Call Handler_InjuryCheck with room 72: " Inside the Volcano".
61870 CALL Handler_InjuryCheck
61873 RET Return.
Was the player trying to climb ... out of the volcano?
Climb_CheckOutOfVolcano 61874 LD HL,59456 Call Parser_AdvanceToSeparator with 59456.
61877 CALL Parser_AdvanceToSeparator
61880 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.
61882 LD A,(47771) Jump to Response_YouCant_GameLoop if *CurrentRoom isn't room 72: " Inside the Volcano".
61885 CP 72
61887 JP NZ,Response_YouCant_GameLoop
61890 LD A,71 Call Handler_InjuryCheck with room 71: " The Top of the Volcano".
61892 CALL Handler_InjuryCheck
61895 RET Return.
Was the player trying to climb ... the volcano wall?
Climb_CheckVolcanoWall 61896 LD HL,59477 Call Parser_AdvanceToSeparator with 59477.
61899 CALL Parser_AdvanceToSeparator
61902 JR NZ,Climb_CheckIntoBoat Jump to Climb_CheckIntoBoat if the token isn't for the volcano wall.
The climb fails and ends the game.
61904 LD HL,60195 Switch GameOver onto the stack.
61907 EX (SP),HL
Print "You start to climb. The precipice is too steep. You lose your grip and fall.".
61908 LD HL,56806 HL=Messaging_YouStartToClimb.
61911 JP PrintResponse Jump to PrintResponse.
Was the player trying to climb ... into the boat?
Climb_CheckIntoBoat 61914 LD HL,59483 Call Parser_AdvanceToSeparator with 59483.
61917 CALL Parser_AdvanceToSeparator
61920 JR NZ,Climb_CheckOutOfBoat Jump to Climb_CheckOutOfBoat if the token isn't for getting into the boat.
61922 LD A,29 Jump to Climb_EnterBoat if ValidateItemPresent reports that "A rowing boat" is in the current room.
61924 CALL ValidateItemPresent
61927 JR Z,Climb_EnterBoat
Print "You are in the boat already.".
61929 LD HL,56474 HL=Messaging_YouAreInTheBoatAlready.
61932 JP PrintResponse Jump to PrintResponse.
Climb_EnterBoat 61935 LD A,29 Call Handler_InjuryCheck with room 29: " In the Boat".
61937 CALL Handler_InjuryCheck
61940 RET Return.
Was the player trying to climb ... out of the boat?
Climb_CheckOutOfBoat 61941 LD HL,59499 Call Parser_AdvanceToSeparator with 59499.
61944 CALL Parser_AdvanceToSeparator
61947 JR NZ,Climb_YouCant Jump to Climb_YouCant if the token isn't for getting out of the boat.
61949 LD A,(47771) Jump to Climb_LeaveBoat if *CurrentRoom is room 29: " In the Boat".
61952 CP 29
61954 JR Z,Climb_LeaveBoat
Print "You're not in the boat.".
61956 LD HL,56883 HL=Messaging_YoureNotInTheBoat.
61959 JP PrintResponse Jump to PrintResponse.
Climb_LeaveBoat 61962 LD A,29 A=29; call GetObjectLocation.
61964 CALL GetObjectLocation
61967 CALL Handler_InjuryCheck Call Handler_InjuryCheck.
61970 RET Return.
Nothing else is valid.
Climb_YouCant 61971 JP Response_YouCant_GameLoop Jump to Response_YouCant_GameLoop.
View the equivalent code in;
Prev: 61498 Up: Map Next: 61974