![]() |
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 |