# DeleteCelList

Deletes a list of cels created by any Library call implemented in lib3do.lib.

### Synopsis

`CCB * DeleteCelList (CCB *celList)`

### Description

Deletes a list of one or more cels. Walks the ccb_NextPtr links of a list of cels, calling `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.

### Arguments

celList
  Pointer to a list of one or more cels created by Library call implemented in lib3do.lib.s; may be NULL.

### Return Value

NULL, always.

### Implementation

Library call implemented in lib3do.lib.

### Associated Files

lib3do.lib, celutils.h

### See Also

`DeleteCel`