*** Memory Lists *** 

Up until Ogham 2.8.1 the only way to store complex multifaceted game data 
within an object was to write your own code to do it. Now with memory lists
the job is made much easier. A memory list is simply a string that every object
be it user, npc or item has that stores words/elements which can be added to, 
deleted and retrieved by a number of new functions (see the functions file).

The 2 structure elements in OBJECT controlling lists are:
   char *memlist 
   int memlist_size

Eg: You may wish to use it in an npc to remember all the people it has 
    encountered. The code to do this would be below:

       :
       :
       for(user=obj_first;user && user->type==USER;user=user->next) {

           if (!user->inactive && !user->dead && user->room==npc->room) {

               /* Returns position in list where name is found else zero */
               if (get_memlist_pos(npc,user->name)) {
                   sprintf(text,"%s says: Hello again %s!\n",npc->name,user->name);
               else {
                    sprintf(text,"%s says: I haven't met you before %s!\n",npc->name,user->name);
                    add_memlist(npc,user->name);
                    }
               write_room(npc->room,text);
               }
           }

If the npc had met users Fred and Tom its memory list would look like: 
   "Fred Tom "

Elements in the lists are always seperated by EXACTLY one space and there is
always one space on the end unless the list is empty.

Since user memlists get saved into the user data files you can use them to
store complex info about users between sessions. Eg Current status in a quest
or some items to load back into their inventory upon logging in etc.

