Prev: E8D5 Up: Map Next: E929
E8EE: MOVE spell continued - set viewport scenery speed/movement based on Maroc's
Used by the routine at E8D5.
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:
E8EE LD A,($EAB7) Get the current room number
E8F1 CP $E0 If >=224, Maroc is in a vertically scrolling tunnel
E8F3 JR NC,$E923
Maroc is in a standard room, not a vertical tunnel:
E8F5 LD E,$5A Default vertical pixel position of the room
E8F7 LD ($EB4A),A Store room number
E8FA LD A,$1C
E8FC LD ($EB48),A Default horizontal position of the room, in half character (4 pixel) steps
E8FF LD A,($EB04) Calculate and store NEGative value of Maroc's horizontal movement speed (room elements move in the opposite direction to Maroc's controlled movement)
E902 NEG
E904 LD ($EB4C),A
E907 LD A,($EB05) Calculate and store NEGative value of Maroc's vertical movement speed
E90A NEG
E90C LD ($EB4D),A
E90F CALL $E039 Run room boundary collision check and adjustment
E912 LD A,($EB4D) Copy back the post-boundary check adjusted position to Maroc's vertical position
E915 NEG
E917 LD ($EB05),A
E91A LD A,($EB4C) Copy back the post-boundary check adjusted position to Maroc's horizontal position
E91D NEG
E91F LD ($EB04),A
E922 RET Return to the routine at C7D4
Maroc is in a vertical scrolling tunnel.
The player can't alter Maroc's vertical speed - it's set at max (32):
E923 LD A,$20 Set Maroc's vertical upward movement speed to maximum (32)
E925 LD ($EB05),A
E928 RET Return to the routine at C7D4
Prev: E8D5 Up: Map Next: E929