Prev: CEDA Up: Map Next: CF14
CEDD: Run Slider Y
The handler of the object type 58, which is a block that goes backwards and forwards along y, in the same way as RunSliderX does along x.
Input
IX Object record
RunSliderY CEDD CALL SetSpriteOffset_Minus16_Minus8 Call SetSpriteOffset_Minus16_Minus8 to set the offsets of the sprite.
CEE0 XOR A Set the speeds along x and z to zero.
CEE1 LD (IX+$09),A
CEE4 LD (IX+$0B),A
Go towards the end of the run, or turn around if the block is stopped.
CEE7 BIT 0,(IX+$10) Jump to RunSliderY_Start if the block is going to the start.
CEEB JR Z,RunSliderY_Start
CEED LD (IX+$0A),$02 Set the speed along y to 02.
CEF1 CALL ApplyGravityAndMove_Move Call ApplyGravityAndMove_Move to move the block, without gravity.
CEF4 BIT 1,(IX+$0C) Jump to RunSliderY_Finish if the block was not stopped along y.
CEF8 JR Z,RunSliderY_Finish
CEFA RES 0,(IX+$10) Make the block go to the start.
RunSliderY_Finish CEFE JP SetWipeAndDrawFlags Jump to SetWipeAndDrawFlags to flag the block as moved.
Go towards the start of the run.
RunSliderY_Start CF01 LD (IX+$0A),$FE Set the speed along y to FE.
CF05 CALL ApplyGravityAndMove_Move Call ApplyGravityAndMove_Move to move the block, without gravity.
CF08 BIT 1,(IX+$0C) Jump to RunSliderY_Finish if the block was not stopped along y.
CF0C JR Z,RunSliderY_Finish
CF0E SET 0,(IX+$10) Make the block go to the end.
CF12 JR RunSliderY_Finish Jump to RunSliderY_Finish to finish.
Prev: CEDA Up: Map Next: CF14