![]()  | 
Routines | 
| Prev: 50411 | Up: Map | Next: 50518 | 
| 
 
Used by the routine at ChangeRoom.
 
  | 
||||||||
| MovePlayerToRoom | 50464 | LD C,A | Load the destination room ID into C. | |||||
| 50465 | LD A,(48432) | B=*Count_ScenicEvents. | ||||||
| 50468 | LD B,A | |||||||
| 50469 | LD A,(48331) | A=CurrentRoom. | ||||||
| 50472 | LD HL,48248 | HL=*Table_ScenicEventLocations. | ||||||
| 50475 | JR FindScenicEvents | Jump to FindScenicEvents. | ||||||
| FindScenicEvents_Loop | 50477 | INC HL | Increment the scenic event location pointer by one. | |||||
| FindScenicEvents | 50478 | CP (HL) | Jump to MovePlayerToRoom_0 if A is not equal to *HL. | |||||
| 50479 | JR NZ,MovePlayerToRoom_0 | |||||||
| 50481 | LD (HL),C | Write C to *HL. | ||||||
| MovePlayerToRoom_0 | 50482 | DJNZ FindScenicEvents_Loop | Decrease counter by one and loop back to FindScenicEvents_Loop until counter is zero. | |||||
| 
 
Sets the destination room ID as the new current room ID.
 
 | 
||||||||
| 50484 | LD A,C | Write C to *CurrentRoom. | ||||||
| 50485 | LD (48331),A | |||||||
| 50488 | LD A,(48239) | A=*Flag_EventState. | ||||||
| 50491 | AND A | Jump to MovePlayerToRoom_4 if A is zero. | ||||||
| 50492 | JR Z,MovePlayerToRoom_4 | |||||||
| 50494 | LD B,8 | B=8. | ||||||
| 50496 | LD HL,48240 | HL=48240. | ||||||
| 50499 | LD C,A | C=A. | ||||||
| 50500 | JR MovePlayerToRoom_2 | Jump to MovePlayerToRoom_2. | ||||||
| MovePlayerToRoom_1 | 50502 | INC HL | Increment HL by one. | |||||
| MovePlayerToRoom_2 | 50503 | SRL C | Shift C right. | |||||
| 50505 | JR NC,MovePlayerToRoom_3 | Jump to MovePlayerToRoom_3 if HL is greater than or equal to A. | ||||||
| 50507 | LD A,(HL) | A=*HL. | ||||||
| 50508 | PUSH HL | Stash HL and BC on the stack. | ||||||
| 50509 | PUSH BC | |||||||
| 50510 | CALL Handler_UpdateItemEventCurrentRoom | Call Handler_UpdateItemEventCurrentRoom. | ||||||
| 50513 | POP BC | Restore BC and HL from the stack. | ||||||
| 50514 | POP HL | |||||||
| MovePlayerToRoom_3 | 50515 | DJNZ MovePlayerToRoom_1 | Decrease counter by one and loop back to MovePlayerToRoom_1 until counter is zero. | |||||
| MovePlayerToRoom_4 | 50517 | RET | Return. | |||||
| 
 
View the equivalent code in Warlord.
 
 | 
||||||||
| Prev: 50411 | Up: Map | Next: 50518 |