The login functions
-------------------

login(user,inpstr)                 : main login function
check_pass(user,inpstr)            : check entered password
attempts(user)                     : check to see if user has had max login 
	attempts
choose_race(user,inpstr)           : lets user choose a race
choose_gender(user,inpstr)         : lets user choose gender
echo_off(user)                     : turns telnet character echoing off
echo_on(user)                      : turns it back on
add_user(user,new)                 : adds user into game
find_free_slot()                   : finds free user number


The main user functions in main.c
------------------------------------------

write_user(user,string)            : send a text string to a user
write_alluser(user,string,all_rooms,send_to_user)
getunum(name)                      : get user number using name
more(socket,filename,user)         : page a file to a user
add_user_skill(user,skill_name)    : add soft command (not hardcoded in main.c) 
	to user skills list. Functions for skill commands in skill.c
remove_user_skill(user,skill_name) : remove soft command
add_user_event(user,func)          : add an event function to users list
remove_user_event(user,func)       : remove event function
set_user_dead(user)                : set user status to dead
save_stats(user)                   : save users stats to data file


The main object functions
-------------------------

make_start_objects()               : Is in objects.c - gets called at boot up
	and from reset_mud() when doing a reset. It calls all the object 
	construct and clone functions.
initialise_object(object)          : initialise object structure
construct(object_func)             : Allocate memory for an object and call
   the self setup code in its function then add to linked list.
destruct(object,flag)              : Free allocated object memory and remove 
   from list. If flag is set do the same for all items it contains/carries.
clone(object,room)                 : Clone an already constructed object and
   place it in room "room".
regenerate_pending(object)         : Add object to regenerate linked list.
regenerate_do()                    : Check list and see if it is time to 
   regenerate any objects. Called as an event function.
patrol(npc,flag)                   : Move npc based on room sequence stored in
   npc->patrol[] array. The last room in the sequence MUST link with the first.
   If flag set then move even if in fight.
randmove(npc,flag)                 : Move npc randomly. Flag works as above.
