Prev: 60066 Up: Map Next: 60184
60153: Handle Plain Decoration
Handler for the object types 116 to 120: the clock, the tapestry, the table, the sideboard and the bird (see Sprite_Clock_1). These decorations are drawn in the single attribute of the record, which is cyan. The other decorations, which have colours of their own, are handled by Handle_Coloured_Decoration.
A decoration is removed (see Handle_Collectable_Remove) when Sabreman is not in its room. The first time that it is handled Set_Decoration_Size gives it the size of its obstacle, which Check_Object_Contact uses to find out if an object touches it, and then Handle_Static_Object draws it. After that Handle_Static_Object only colours it.
Input
IX Object record of the decoration
Handle_Plain_Decoration 60153 LD A,(36636) Fetch the room x of Sabreman.
60156 CP (IX+2) Jump to Handle_Collectable_Remove to remove the decoration if it is in a different room x.
60159 JP NZ,Handle_Collectable_Remove
60162 LD A,(36638) Fetch the room y of Sabreman.
60165 CP (IX+4) Jump to Handle_Collectable_Remove to remove the decoration if it is in a different room y.
60168 JP NZ,Handle_Collectable_Remove
60171 BIT 0,(IX+15) Jump to Handle_Static_Object if the decoration has been drawn already (bit 0 of the redraw flags is clear).
60175 JP Z,Handle_Static_Object
60178 CALL Set_Decoration_Size Copy the size of the obstacle to the object record.
60181 JP Handle_Static_Object Jump to Handle_Static_Object to draw the decoration.
Prev: 60066 Up: Map Next: 60184