6D/
6D/area/
6D/boards/
6D/city/
6D/color/
6D/corpses/
6D/councils/
6D/htowns/
6D/news/
6D/specials/
6D/src/specials/
6D/src/trades/
/****************************************************************************
 * AFKMud (c)1997-2002 Alsherok. Contributors: Samson, Dwip, Whir,          *
 * Cyberfox, Karangi, Rathian, Cam, Raine, and Tarl.                        *
 * Original SMAUG 1.4a written by Thoric (Derek Snider) with Altrag,        *
 * Blodkai, Haus, Narn, Scryn, Swordbearer, Tricops, Gorog, Rennard,        *
 * Grishnakh, Fireblade, and Nivek.                                         *
 * Original MERC 2.1 code by Hatchet, Furey, and Kahn.                      *
 * Original DikuMUD code by: Hans Staerfeldt, Katja Nyboe, Tom Madsen,      *
 * Michael Seifert, and Sebastian Hammer.                                   *
 ****************************************************************************
 *                      New Name Authorization module                       *
 ****************************************************************************/

#define AUTO_AUTH /* Do not remove, used to interact with other snippets! - Samson
                   * 12-28-98 */

#ifndef MSL
#define MSL MSL
#endif

#ifndef MIL
#define MIL MIL
#endif

typedef struct auth_list AUTH_LIST; /* new auth -- Rantic */

/* new auth -- Rantic */
#define NOT_AUTHED(ch) (!IS_NPC(ch) && get_auth_state(ch) != AUTH_AUTHED && IS_SET((ch)->pcdata->flags, PCFLAG_UNAUTHED))
#define NEW_AUTH(ch) (!IS_NPC(ch) && (ch)->level == 1)
#define IS_WAITING_FOR_AUTH(ch) (!IS_NPC(ch) && (ch)->desc && get_auth_state(ch) == AUTH_ONLINE && IS_SET((ch)->pcdata->flags, PCFLAG_UNAUTHED))

/* new auth -- Rantic */
extern AUTH_LIST       *first_auth_name;
extern AUTH_LIST       *last_auth_name;

/* new auth stuff in addit.c */
int                     get_auth_state(CHAR_DATA *ch);
void                    add_to_auth(CHAR_DATA *ch);
void                    remove_from_auth(char *name);
void                    check_auth_state(CHAR_DATA *ch);
AUTH_LIST              *get_auth_name(char *name);
void                    auth_update(void);

/* New auth stuff --Rantic */
typedef enum
{
  AUTH_ONLINE = 0, AUTH_OFFLINE, AUTH_LINK_DEAD, AUTH_CHANGE_NAME,
  AUTH_DENIED, AUTH_AUTHED
} auth_types;

struct auth_list
{
  char                   *name; /* Name of character awaiting authorization */
  short                   state;  /* Current state of authed */
  char                   *authed_by;  /* Name of immortal who authorized the name */
  char                   *change_by;  /* Name of immortal requesting name change */
  char                   *denied_by;  /* Name of immortal who denied the name */
  AUTH_LIST              *next;
  AUTH_LIST              *prev;
};