Prev: B7E7 Up: Map Next: B80F
B7ED: Handle Fire Moving East West
Handles a fire that moves to and fro along the X axis at a speed of 02, turning round when it hits something.
Input
IX Address of the fire object
Move along X and turn if the fire hits something.
HandleFireMovingEastWest B7ED CALL SetPixelAdjustments_Ball Set the pixel adjustments of a ball.
B7F0 LD (IX+$0B),$01 Set the speed in Z to 01, so that the fire does not fall.
B7F4 BIT 0,(IX+$0D) Test whether the fire is heading east.
B7F8 LD A,$02 Set the speed to 02.
B7FA JR NZ,HandleFireMovingEastWest_Speed Jump to HandleFireMovingEastWest_Speed if it is.
B7FC NEG Make the speed negative.
HandleFireMovingEastWest_Speed B7FE LD (IX+$09),A Set the speed in X of the fire.
B801 CALL PlaySoundFromXPosition Play the sound of a block moving along the X axis.
B804 CALL ApplyGravityAndMove Apply gravity to the fire and move it.
B807 BIT 0,(IX+$0C) Test whether the fire has hit something along the X axis.
B80B LD A,$01 Set the direction bit to flip to bit 0.
B80D JR HandleFire_Turn Jump to HandleFire_Turn.
Prev: B7E7 Up: Map Next: B80F