Prev: 9689 Up: Map Next: 96F7
96CB: Update Object Sprite
Redraws the sprite of the object that IX points at and sets its attributes.
If bit 0 of byte 0F of the object is clear, the sprite is moved with DisplayEntity. If the bit is set, the sprite has no old image on the screen to erase (for example because the room has just been drawn), so the bit is cleared and the sprite is just drawn.
The entry at Update_Object_Sprite_Using_Flags does the same using bit 0 of byte 07 of the object.
Input
IX Object record
Update_Object_Sprite 96CB BIT 0,(IX+$0F) Jump to Update_Object_Sprite_Reset_Redraw_Flag if the flag is set.
96CF JR NZ,Update_Object_Sprite_Reset_Redraw_Flag
96D1 CALL DisplayEntity Erase the sprite at its old position and draw it at the new one.
96D4 JP ColourEntity Jump to ColourEntity.
Update_Object_Sprite_Reset_Redraw_Flag 96D7 RES 0,(IX+$0F) Reset bit 0 of the redraw flags of the object.
This entry point is used by the routine at Show_Ending_Screen.
Update_Object_Sprite_Draw 96DB CALL DrawEntity Draw the sprite.
96DE JP ColourEntity Jump to ColourEntity.
This entry point is used by the routine at Handle_Weapon_Pickup.
Update_Object_Sprite_Using_Flags 96E1 BIT 0,(IX+$07) Jump to Update_Object_Sprite_Reset_Flag if the flag is set.
96E5 JR NZ,Update_Object_Sprite_Reset_Flag
96E7 CALL DisplayEntity Erase the sprite at its old position and draw it at the new one.
96EA JP ColourEntity Jump to ColourEntity.
Update_Object_Sprite_Reset_Flag 96ED RES 0,(IX+$07) Reset bit 0 of the flags of the object.
96F1 CALL DrawEntity Draw the sprite.
96F4 JP ColourEntity Jump to ColourEntity.
Prev: 9689 Up: Map Next: 96F7