Prev: EAA2 Up: Map Next: EB18
EAF9: Handle Plain Decoration
Handler for the object types 74 to 78: 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 EAF9 LD A,($8F1C) Fetch the room x of Sabreman.
EAFC CP (IX+$02) Jump to Handle_Collectable_Remove to remove the decoration if it is in a different room x.
EAFF JP NZ,Handle_Collectable_Remove
EB02 LD A,($8F1E) Fetch the room y of Sabreman.
EB05 CP (IX+$04) Jump to Handle_Collectable_Remove to remove the decoration if it is in a different room y.
EB08 JP NZ,Handle_Collectable_Remove
EB0B BIT 0,(IX+$0F) Jump to Handle_Static_Object if the decoration has been drawn already (bit 0 of the redraw flags is clear).
EB0F JP Z,Handle_Static_Object
EB12 CALL Set_Decoration_Size Copy the size of the obstacle to the object record.
EB15 JP Handle_Static_Object Jump to Handle_Static_Object to draw the decoration.
Prev: EAA2 Up: Map Next: EB18