![]() |
Routines |
| Prev: F03A | Up: Map | Next: F216 |
|
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 |