CCB * DeleteCelList (CCB *celList)
DeleteCel()
on each cel. All the cels in the list must have been created by DeleteCel-compatible functions. A NULL pointer is valid as input, and is quietly treated as a no-op.
The function contains special logic for handling cels where the library function creates a related group of cels and returns a single CCB* value to you. In this sense, it is not exactly equivalent to walking the ccb_NextPtr links. When a group of related cels is linked into a larger list, you need to call DeleteCel()
only for the first cel in the group of related cels.
The function contains logic to call DeleteCel()
only on the first cel in such a related group, then skip over the related cels that get deleted all at once, and continue processing with any other cels linked after the related group. It is therefore best to use DeleteCelList()
if you have acquired cels from various Library call implemented in lib3do.lib.s and linked them together into a larger list. If you attempt to walk the list yourself calling DeleteCel()
on each cel, you have to keep track of whether any of the cels need to be skipped as you go.
DeleteCel