/*
 * MBUSER.H - 6/12/87 -  Definitions for user file.
 */

#define us_version 7
extern char  *usfile, *usbfile;
extern int    ufl, uflb;
extern short maxusers;
extern char tcall[ln_call];  /* Used all over as temp */
#define num_um 16
extern char *um[num_um];

/*
 *  User file header record.
 */

typedef struct user_hdr_s
{
  word count;	      /* Number of users in file	 */
  char version;       /* File version			 */
  char date[ln_date]; /* Date of last compress		 */
  char time[ln_time]; /* Time of last compress		 */
  word lmnr;	      /* Last message # at last compress */
  char dirty;	      /* True if anything changed	 */
  char free[112];     /* Ain't used at all, yet          */
} USER_HDR;

/*
 *  User file user record.
 */

/*
 *  User record options.
 */

#define u_local    0x01
#define u_bbs	   0x02
#define u_expert   0x04
#define u_delete   0x08
#define u_sysop    0x10
#define u_exclude  0x20

/*
 *  User record state.
 */

#define u_sent	   0x01
#define u_name	   0x02
#define u_home	   0x04
#define pathl 81

typedef struct user_s
{
  char call[ln_call];	  /* Users call 			 */
  char date[ln_date];	  /* Date of last logout		 */
  char time[ln_time];	  /* Time of last logout		 */
  word msg_number;	  /* Last message # at last login	 */
  char ssid;		  /* First character of ssid		 */
  byte state;		  /* Got name? Got home? Sent to WP?	 */
  char handle[12];	  /* Users name 			 */
  byte options; 	  /* Permissions and stuff like that	 */
  char port;		  /* Port user last connected, L if link */
  char path[pathl];	  /* NULL terminated string		 */
  word log_count;	  /* Number of times user has connected  */
  char home_bbs[ln_call]; /* Users home bbs			 */
  word rn;		  /* Record number, zero if not valid	 */
  char unu2[3];
} USER;

extern USER_HDR *ufhs;
extern USER	*tuser;
