Prev: 7279 Up: Map Next: 72A3
7281: Handle Custard
The handler for the custard (IDs 04 and 05), which bounces around the play area diagonally. It is moved by MoveBouncingActor. While the custard is still entering from the right of the screen (a horizontal co-ordinate of C8 or more) it can't hit Charlie or be hit, and it is given a random vertical speed.
Input
IX Actor
HandleCustard 7281 CALL StoreEntity Record the position of the sprite using StoreEntity.
7284 LD HL,$5F1B Point HL at ActorsInPlay.
7287 INC (HL) Increase the number of actors in play by one.
7288 LD A,(IX+$01) Fetch the horizontal co-ordinate.
728B CP $C8 Jump to SetCustardVerticalSpeed if the custard is still entering from the right.
728D JR NC,SetCustardVerticalSpeed
728F CALL TestCharlieCollision Test whether the custard has hit Charlie using TestCharlieCollision.
7292 DEC E Has Charlie been hit (is E now zero)?
7293 JP Z,LoseHat Jump to LoseHat if Charlie has been hit.
7296 CALL TestFlourCollision Test whether a flour shot has hit the custard using TestFlourCollision.
7299 BIT 7,(IX+$00) Jump to HandleHitActor if the custard has been hit.
729D JR NZ,HandleHitActor
729F LD (IX+$03),$46 Set the actor colour to 46 (yellow).
Prev: 7279 Up: Map Next: 72A3