The following paragraphs describe how to set the flags field in the bob structure (note that these flags do not apply to the Flags field of the vsprite structure). savebob To tell the system not to erase the old image of the Bob when the Bob is moved, specify the SAVEBOB flag in the bob structure flags field. This makes the Bob behave like a paintbrush. It has the opposite effect of saveback. It's Faster To Draw A New Bob. ------------------------------ It takes longer to preserve and restore the raster image than simply to draw a new Bob image wherever required. bobiscomp If this Bob is part of an animcomp, set the bobiscomp flag in the bob structure to 1. If the flag is a 1, the pointer named bobcomp must have been initialized. Otherwise, the system ignores the pointer, and it may be left alone (though it's good practice to initialize it to NULL). See "animation data structures" for a discussion of AnimComps. bwaiting This flag is used solely by the system, and should be left alone. When a Bob is waiting to be drawn, the system sets the BWAITING flag in the bob structure to 1. this occurs only if the system has found a before pointer in this bob's structure that points to another bob. Thus, the system flag BWAITING provides current draw-status to the system. Currently, the system clears this flag on return from each call to drawglist(). bdrawn This is a system status flag that indicates to the system whether or not this Bob has already been drawn. Therefore, in the process of examining the various before and after flags, the drawing routines can determine the drawing sequence. The system clears this flag on return from each call to drawglist(). bobsaway To initiate the removal of a Bob during the next call to drawglist(), set BOBSAWAY to 1. Either the application or the system may set this bob structure system flag. the system restores the background where it has last drawn the Bob. The system will unlink the Bob from the system GEL list the next time DrawGList() is called, unless the application is using double-buffering. In that case, the Bob will not be unlinked and completely removed until two calls to DrawGList() have occurred and the Bob has been removed from both buffers. The rembob() macro sets the bobsaway flag. bobnix When a Bob has been completely removed, the system sets the BOBNIX flag to 1 on return from drawglist(). in other words, when the background area has been fully restored and the Bob has been removed from the GEL list, this flag in is set to a 1. BOBNIX is especially significant when double-buffering because when an application asks for a Bob to be removed, the system must remove it from both the drawing buffer and from the display buffer. Once BOBNIX has been set, it means the Bob has been removed from both buffers and the application is free to reuse or deallocate the Bob. savepreserve The SAVEPRESERVE flag is a double-buffer version of the saveback flag. If using double-buffering and wishing to save and restore the background, set SAVEBACK to 1. SAVEPRESERVE is used by the system to indicate whether the Bob in the "other" buffer has been restored; it is for system use only.