Prev: B5FF Up: Map Next: B6A2
B683: Handle Dropping Block
Handles a block that sinks while something is standing on it. The collision routines set the triggered flag of the block (bit 3 of its flags byte) for as long as something rests on it.
Input
IX Address of the block object
HandleDroppingBlock B683 CALL SetPixelAdjustments_Block Set the pixel adjustments of a block.
Sink while something is standing on the block.
B686 BIT 3,(IX+$0D) Test whether something is standing on the block.
B68A RET Z Return if nothing is.
B68B RES 3,(IX+$0D) Reset the triggered flag.
B68F LD (IX+$0B),$00 Clear the speed in Z of the block.
B693 CALL ApplyGravityAndMove Apply gravity to the block and move it.
B696 BIT 2,(IX+$0C) Jump to HandleDroppingBlock_Draw if the block has hit the floor.
B69A JR NZ,HandleDroppingBlock_Draw
B69C CALL PlaySoundFromHeight Play the sound of a falling object.
HandleDroppingBlock_Draw B69F JP SetWipeAndDrawFlags Flag the block to be drawn again.
Prev: B5FF Up: Map Next: B6A2