![]() |
Routines |
| Prev: 59605 | Up: Map | Next: 59689 |
|
Used by the routine at 59605.
|
||||
|
This routine sets the general room/viewport movement based on Maroc's updated vertical/horizontal movement speed.
Although the game gives the effect of Maroc moving, he's not; it's actually every other graphic item that's moving in the opposite direction, so we need to change the room position based on the NEGative of Maroc's speed/direction.
First, check if Maroc is in a vertical scrolling tunnel:
|
||||
| 59630 | LD A,(60087) | Get the current room number | ||
| 59633 | CP 224 | If >=224, Maroc is in a vertically scrolling tunnel | ||
| 59635 | JR NC,59683 | |||
|
Maroc is in a standard room, not a vertical tunnel:
|
||||
| 59637 | LD E,90 | Default vertical pixel position of the room | ||
| 59639 | LD (60234),A | Store room number | ||
| 59642 | LD A,28 | |||
| 59644 | LD (60232),A | Default horizontal position of the room, in half character (4 pixel) steps | ||
| 59647 | LD A,(60164) | Calculate and store NEGative value of Maroc's horizontal movement speed (room elements move in the opposite direction to Maroc's controlled movement) | ||
| 59650 | NEG | |||
| 59652 | LD (60236),A | |||
| 59655 | LD A,(60165) | Calculate and store NEGative value of Maroc's vertical movement speed | ||
| 59658 | NEG | |||
| 59660 | LD (60237),A | |||
| 59663 | CALL 57401 | Run room boundary collision check and adjustment | ||
| 59666 | LD A,(60237) | Copy back the post-boundary check adjusted position to Maroc's vertical position | ||
| 59669 | NEG | |||
| 59671 | LD (60165),A | |||
| 59674 | LD A,(60236) | Copy back the post-boundary check adjusted position to Maroc's horizontal position | ||
| 59677 | NEG | |||
| 59679 | LD (60164),A | |||
| 59682 | RET | Return to the routine at 51156 | ||
|
Maroc is in a vertical scrolling tunnel.
The player can't alter Maroc's vertical speed - it's set at max (32):
|
||||
| 59683 | LD A,32 | Set Maroc's vertical upward movement speed to maximum (32) | ||
| 59685 | LD (60165),A | |||
| 59688 | RET | Return to the routine at 51156 | ||
| Prev: 59605 | Up: Map | Next: 59689 |