dmuck0.15-beta/docs/muf/
dmuck0.15-beta/game/
dmuck0.15-beta/game/logs/
dmuck0.15-beta/game/muf/
dmuck0.15-beta/game/muf/text/
#ifndef INTERFACE_H
#define INTERFACE_H

#include "copyright.h"
#include "db.h"

/* these symbols must be defined by the interface */
int notify_nolisten(dbref player, char *msg);
int awakep(dbref player);
extern int shutdown_flag; /* Should interface should shut down */
extern int wiz_only_flag; /* Should Non-Wizard logins should not be allowed */
extern int mush_interp;   /* Don't allow objects to go INTERACTIVE */
void emergency_shutdown(void);
int boot_off(dbref player);

/* the following symbols are provided by game.c */

/* max length of command argument to process_command */
#define MAX_COMMAND_LEN 2048
#define BUFFER_LEN ((MAX_COMMAND_LEN)*6)
void process_command(dbref player, char *command, dbref cause);

dbref connect_player(char *name, char *password);
dbref create_player(char *name, char *password, dbref doer);
void do_look_around(dbref player);

int init_game(char *infile, char *outfile);
void dump_database(void);

#ifdef XEVENTS
typedef struct xque
{
  char *comm;                   /* command from XEvent*/
  struct xque *next;
} xque;
#endif

typedef struct text_block
{
  int nchars;
  struct text_block *nxt;
  char *start,
    *buf;
} text_block;

typedef struct text_queue
{
  text_block *head,
    **tail;
} text_queue;

typedef struct descriptor_data
{
  int descriptor,
    output_size,
    quota;
#ifdef XEVENTS
  xque *q;
  long int qcnt;
#endif
  dbref player;
  char connected,
    *output_prefix,
    *output_suffix,
    *raw_input,
    *raw_input_at,
    *hostname;
  text_queue output,
    input;
  long last_time,
    connected_at;
  struct descriptor_data *next,
    **prev;
} descriptor_data;

extern descriptor_data *descriptor_list;
extern void panic(char *);
extern void dump_rusers(descriptor_data *d);
extern char match_cmdname[BUFFER_LEN];

#endif /* INTERFACE_H */