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