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