![]() |
Routines |
| Prev: 29468 | Up: Map | Next: 29514 |
|
||||||||||||||
| 29482 | PUSH AF | Store new x-coordinate for later | ||||||||||||
| 29483 | XOR A | Set Magic Knight's temporary-movement flags to zero (new room, so Magic Knight can move both left and right)... | ||||||||||||
| 29484 | LD (23410),A | ... | ||||||||||||
| 29487 | LD HL,41711 | Point HL to room connectivity data table | ||||||||||||
| 29490 | LD A,(65529) | Load Magic Knight's current room's index into A... | ||||||||||||
| 29493 | ADD A,A | ...double it... | ||||||||||||
| 29494 | LD C,A | ...and load into BC... | ||||||||||||
| 29495 | LD B,0 | ... | ||||||||||||
| 29497 | ADD HL,BC | Add BC as offset to HL | ||||||||||||
| 29498 | ADD HL,DE | Point to left or right exit from current room, as determined by DE | ||||||||||||
| 29499 | LD A,(HL) | Load new room number into A... | ||||||||||||
| 29500 | CP 255 | ...and if this is 255 (i.e. Magic Knight can't leave his current room)... | ||||||||||||
| 29502 | JR Z,29511 | ...set zero flag and exit routine... | ||||||||||||
| 29504 | LD (65529),A | ...else update Magic Knight's current room to be this new room index | ||||||||||||
| 29507 | POP BC | Restore new x-coordinate to B... | ||||||||||||
| 29508 | LD A,B | ...and load back into A | ||||||||||||
| 29509 | OR A | Reset zero flag | ||||||||||||
| 29510 | RET | Return | ||||||||||||
| 29511 | POP BC | Restore AF to BC... | ||||||||||||
| 29512 | LD A,B | ...and load A with contents of B to restore to what it was on entering this routine | ||||||||||||
| 29513 | RET | Return | ||||||||||||
| Prev: 29468 | Up: Map | Next: 29514 |