RaM Fire Updated/
RaM's list container code was written by Runter/Retnur from mudbytes.com.

RaM's implementation of linked lists is a bid different on the public layer than rom.
We changed it for a variety of reasons. Specifically, for less work, better debugging,
and more robust code.

Anywhere in the documentation below that I use X I am refering to the datatype of the list.
Each type of list is built using the generic code as follow:

generic_list.c:generic_list.h
1.  Types table definitions.
a. 
    const struct types_type   types_table[VTYPE_MAX_TYPES];
b.    
    enum {
        VTYPE_INT = 0,       // any number
        VTYPE_STRING = 1,    // any char or string (A pointer to a string)
        VTYPE_CHAR_DATA = 2, // CHAR_DATA pointer
        VTYPE_ROOM_INDEX_DATA = 3,
        VTYPE_MAX_TYPES = 4
    };
c. 
    struct types_type {
        const char *name; // Name of the type such as "CHAR_DATA" or "int"
        int size; // Size of the type when using sizeof()
    };
d.
    int vtype_lookup(const char *arg);
------------------------------------------------------------------------------------
... At the time of writing this the table was used to lookup individual types from   
... an individual system. Because the lists are generic it may be some day important 
... to know what type it is. And furthermore, to automate some operations.
------------------------------------------------------------------------------------
generic_list.c:generic_list.h
2.  Generic lists code.    
a.
    void init_generic_list(struct generic_list *p);
... Used to initiate a generic_list structure. 
b.
    struct generic_node *in_generic_list(struct generic_list *l, void *value, const char *t);
... If the value is found of VTYPE t, then that node is returned. Otherwise NULL.
c.
    bool generic_node_to_back(struct generic_list *l, void *data, const char *t);
... Pushes the data to the back of the list.
d.
    struct generic_node *generic_node_from_list(struct generic_list *l, void * d, const char* t);
... Removes certain data if found from the list.
e.
    bool generic_node_to_front(struct generic_list *l, void *data, const char *t);
... Pushes the data to the front of the list.
------------------------------------------------------------------------------------
... The above functions are made available for the raw interaction with the 
... underlying data type which is a generic linked list.
------------------------------------------------------------------------------------