/****************************************************************************
* ^ +----- | / ^ ^ | | +-\ *
* / \ | | / |\ /| | | | \ *
* / \ +--- |< | \ / | | | | | *
* /-----\ | | \ | v | | | | / *
* / \ | | \ | | +-----+ +-/ *
****************************************************************************
* AFKMud Copyright 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 */
#define AUTH_FILE SYSTEM_DIR "auth.dat"
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 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_xxxxx, AUTH_AUTHED
} auth_types;
struct auth_list
{
AUTH_LIST *next;
AUTH_LIST *prev;
char *name; /* Name of character awaiting authorization */
sh_int state; /* Current state of authed */
char *authed_by; /* Name of immortal who authorized the name */
char *change_by; /* Name of immortal requesting name change */
};