![]()  | 
Routines | 
| Prev: C4EB | Up: Map | Next: C556 | 
| 
 
Used by the routine at ChangeRoom.
 
  | 
||||||||
| MovePlayerToRoom | C520 | LD C,A | Load the destination room ID into C. | |||||
| C521 | LD A,($BD30) | B=*Count_ScenicEvents. | ||||||
| C524 | LD B,A | |||||||
| C525 | LD A,($BCCB) | A=CurrentRoom. | ||||||
| C528 | LD HL,$BC78 | HL=*Table_ScenicEventLocations. | ||||||
| C52B | JR FindScenicEvents | Jump to FindScenicEvents. | ||||||
| FindScenicEvents_Loop | C52D | INC HL | Increment the scenic event location pointer by one. | |||||
| FindScenicEvents | C52E | CP (HL) | Jump to MovePlayerToRoom_0 if A is not equal to *HL. | |||||
| C52F | JR NZ,MovePlayerToRoom_0 | |||||||
| C531 | LD (HL),C | Write C to *HL. | ||||||
| MovePlayerToRoom_0 | C532 | 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.
 
 | 
||||||||
| C534 | LD A,C | Write C to *CurrentRoom. | ||||||
| C535 | LD ($BCCB),A | |||||||
| C538 | LD A,($BC6F) | A=*Flag_EventState. | ||||||
| C53B | AND A | Jump to MovePlayerToRoom_4 if A is zero. | ||||||
| C53C | JR Z,MovePlayerToRoom_4 | |||||||
| C53E | LD B,$08 | B=08. | ||||||
| C540 | LD HL,$BC70 | HL=BC70. | ||||||
| C543 | LD C,A | C=A. | ||||||
| C544 | JR MovePlayerToRoom_2 | Jump to MovePlayerToRoom_2. | ||||||
| MovePlayerToRoom_1 | C546 | INC HL | Increment HL by one. | |||||
| MovePlayerToRoom_2 | C547 | SRL C | Shift C right. | |||||
| C549 | JR NC,MovePlayerToRoom_3 | Jump to MovePlayerToRoom_3 if HL is greater than or equal to A. | ||||||
| C54B | LD A,(HL) | A=*HL. | ||||||
| C54C | PUSH HL | Stash HL and BC on the stack. | ||||||
| C54D | PUSH BC | |||||||
| C54E | CALL Handler_UpdateItemEventCurrentRoom | Call Handler_UpdateItemEventCurrentRoom. | ||||||
| C551 | POP BC | Restore BC and HL from the stack. | ||||||
| C552 | POP HL | |||||||
| MovePlayerToRoom_3 | C553 | DJNZ MovePlayerToRoom_1 | Decrease counter by one and loop back to MovePlayerToRoom_1 until counter is zero. | |||||
| MovePlayerToRoom_4 | C555 | RET | Return. | |||||
| 
 
View the equivalent code in Warlord.
 
 | 
||||||||
| Prev: C4EB | Up: Map | Next: C556 |