![]()  | 
Routines | 
| Prev: 61234 | Up: Map | Next: 61498 | 
| 
 
Used by the routines at MovePlayer, Action_Get, Action_Climb, Action_Enter, Action_Row and GameStart.
 
  | 
||||||||
| ChangeRoom | 61268 | LD HL,48239 | HL=Flag_EventState. | |||||
| 61271 | BIT 0,(HL) | Jump to ChangeRoom_0 if bit 0 of *HL is unset. | ||||||
| 61273 | JR Z,ChangeRoom_0 | |||||||
| 61275 | LD HL,48231 | Initialise Counter_Crab to 6. | ||||||
| 61278 | LD (HL),6 | |||||||
| 61280 | CP 44 | Jump to ChangeRoom_0 if A is not equal to 44. | ||||||
| 61282 | JR NZ,ChangeRoom_0 | |||||||
| 61284 | LD HL,48239 | Reset bit 0 of *Flag_EventState. | ||||||
| 61287 | RES 0,(HL) | |||||||
| 61289 | PUSH AF | Stash AF on the stack. | ||||||
| 
 
Spawn the giant crab in 
The Rockpool.
 
 | 
||||||||
| 61290 | LD BC,10544 | Call Handler_UpdateObjectLocation using item "A giant crab" to create it in The Rockpool. | ||||||
| 61293 | CALL Handler_UpdateObjectLocation | |||||||
| 61296 | POP AF | Restore AF from the stack. | ||||||
| 61297 | LD HL,60455 | Write 47 to *60455 to open up westbound access to The Secluded Beach from The Canyon. | ||||||
| 61300 | LD (HL),47 | |||||||
| 61302 | LD HL,60458 | Write 48 to *60458 to open up northbound access to The Rockpool from The Secluded Beach. | ||||||
| 61305 | LD (HL),48 | |||||||
| ChangeRoom_0 | 61307 | CALL MovePlayerToRoom | Call MovePlayerToRoom. | |||||
| 61310 | LD E,0 | E=0. | ||||||
| 61312 | CALL Handler_DisplayRoomImage | Call Handler_DisplayRoomImage. | ||||||
| 61315 | LD A,(48331) | Jump to ChangeRoom_1 if *CurrentRoom is not room 48: " The Rockpool". | ||||||
| 61318 | CP 48 | |||||||
| 61320 | JR NZ,ChangeRoom_1 | |||||||
| 61322 | LD A,41 | Call ValidateItemPresent with "A giant crab". | ||||||
| 61324 | CALL ValidateItemPresent | |||||||
| 61327 | JR NZ,ChangeRoom_1 | Jump to ChangeRoom_1 if A is not equal to 41. | ||||||
| 61329 | LD HL,48239 | Set bit 0 of *Flag_EventState. | ||||||
| 61332 | SET 0,(HL) | |||||||
| 61334 | XOR A | Write 0 to *60455 to remove access to The Secluded Beach from The Canyon. | ||||||
| 61335 | LD (60455),A | |||||||
| 61338 | LD (60458),A | Write 0 to *60458 to remove access to The Rockpool from The Secluded Beach. | ||||||
| 61341 | LD HL,48230 | Set bit 0 of *Flag_TurnBasedEventState which relates to the crab being active. | ||||||
| 61344 | SET 0,(HL) | |||||||
| 61346 | LD A,6 | Write 6 to *Counter_Crab. | ||||||
| 61348 | LD (48231),A | |||||||
| ChangeRoom_1 | 61351 | LD A,43 | Call ValidateItemPresent with "A giant octopus". | |||||
| 61353 | CALL ValidateItemPresent | |||||||
| 61356 | JR NZ,ChangeRoom_2 | Jump to ChangeRoom_2 if "A giant octopus" isn't in the current room. | ||||||
| 61358 | LD HL,48230 | Set bit 1 of *Flag_TurnBasedEventState which relates to the tentacle being active. | ||||||
| 61361 | SET 1,(HL) | |||||||
| 61363 | LD A,5 | Write 5 to *Counter_Tentacle. | ||||||
| 61365 | LD (48232),A | |||||||
| ChangeRoom_2 | 61368 | LD A,42 | Call ValidateItemPresent with "A lion". | |||||
| 61370 | CALL ValidateItemPresent | |||||||
| 61373 | JR NZ,ChangeRoom_3 | Jump to ChangeRoom_3 if "A lion" isn't in the current room. | ||||||
| 61375 | LD HL,48230 | Set bit 3 of *Flag_TurnBasedEventState which relates to the lion being active. | ||||||
| 61378 | SET 3,(HL) | |||||||
| 61380 | LD A,7 | Write 7 to *Counter_Lion. | ||||||
| 61382 | LD (48234),A | |||||||
| ChangeRoom_3 | 61385 | LD HL,59585 | Call CheckActiveScenicEvents with Data_ItemGroup_Crocodile. | |||||
| 61388 | CALL CheckActiveScenicEvents | |||||||
| 61391 | JR NZ,ChangeRoom_4 | Jump to ChangeRoom_4 if A is not equal to 7. | ||||||
| 61393 | LD HL,48230 | Set bit 4 of *Flag_TurnBasedEventState which relates to the crocodile being active. | ||||||
| 61396 | SET 4,(HL) | |||||||
| 61398 | LD A,11 | Write 11 to *Counter_Crocodile. | ||||||
| 61400 | LD (48235),A | |||||||
| ChangeRoom_4 | 61403 | LD A,24 | Call ValidateItemPresent with "Surrounded by natives". | |||||
| 61405 | CALL ValidateItemPresent | |||||||
| 61408 | JR NZ,ChangeRoom_5 | Jump to ChangeRoom_5 if "Surrounded by natives" isn't in the current room. | ||||||
| 61410 | LD HL,48230 | Set bit 5 of *Flag_TurnBasedEventState which relates to the cannibals being active. | ||||||
| 61413 | SET 5,(HL) | |||||||
| 61415 | LD A,9 | Initialise the turn counter at *Counter_Cannibals with 9. | ||||||
| 61417 | LD (48236),A | |||||||
| ChangeRoom_5 | 61420 | LD A,(48331) | Jump to ChangeRoom_6 if *CurrentRoom is not room 3: " Your Ship". | |||||
| 61423 | CP 3 | |||||||
| 61425 | JR NZ,ChangeRoom_6 | |||||||
| 61427 | LD A,29 | Call ValidateItemPresent with "The Jewels of Babylon". | ||||||
| 61429 | CALL ValidateItemPresent | |||||||
| 61432 | JR NZ,ChangeRoom_6 | Jump to ChangeRoom_6 if "The Jewels of Babylon" isn't in the current room. | ||||||
| 61434 | POP HL | Restore HL and HL from the stack. | ||||||
| 61435 | POP HL | |||||||
| 61436 | JP GameComplete | Jump to GameComplete. | ||||||
| ChangeRoom_6 | 61439 | LD A,(48331) | Jump to ChangeRoom_7 if *CurrentRoom is not room 2: " The Open Sea". | |||||
| 61442 | CP 2 | |||||||
| 61444 | JR NZ,ChangeRoom_7 | |||||||
| 61446 | LD HL,48212 | Jump to ChangeRoom_7 if bit 5 of *GameFlags_Help is set. | ||||||
| 61449 | BIT 5,(HL) | |||||||
| 61451 | JR NZ,ChangeRoom_7 | |||||||
| 61453 | SET 5,(HL) | Set bit 5 of *HL. | ||||||
| 61455 | LD HL,48230 | Set bit 7 of *Flag_TurnBasedEventState which relates to the wave being active. | ||||||
| 61458 | SET 7,(HL) | |||||||
| 61460 | LD A,5 | Write 5 to *Counter_Wave. | ||||||
| 61462 | LD (48238),A | |||||||
| ChangeRoom_7 | 61465 | LD A,(48331) | Jump to ChangeRoom_8 if *CurrentRoom is not room 108: " The Bridge". | |||||
| 61468 | CP 108 | |||||||
| 61470 | JR NZ,ChangeRoom_8 | |||||||
| 61472 | LD A,29 | Call ValidateItemPresent with "The Jewels of Babylon". | ||||||
| 61474 | CALL ValidateItemPresent | |||||||
| 61477 | JR NZ,ChangeRoom_8 | Jump to ChangeRoom_8 if "The Jewels of Babylon" isn't in the current room. | ||||||
| 
 
Print "The bridge begins to shake...".
 
 | 
||||||||
| 61479 | LD HL,58831 | HL=Messaging_TheBridgeBeginsToShake. | ||||||
| 61482 | CALL PrintStringAndNewline | Call PrintStringAndNewline. | ||||||
| 61485 | POP HL | Restore HL from the stack. | ||||||
| 
 
Bad luck!
 
 | 
||||||||
| 61486 | LD HL,60887 | Switch GameOver onto the stack so the next return actions a "game over". | ||||||
| 61489 | EX (SP),HL | |||||||
| 
 
Print "Suddenly,it collapses.".
 
 | 
||||||||
| 61490 | LD HL,58861 | HL=Messaging_SuddenlyItCollapses. | ||||||
| 61493 | CALL PausePrintStringAndScroll | Call PausePrintStringAndScroll. | ||||||
| 61496 | RET | Return. | ||||||
| ChangeRoom_8 | 61497 | RET | Return. | |||||
| Prev: 61234 | Up: Map | Next: 61498 |