/* $Header: /belch_a/users/rearl/tinymuck/include/RCS/interface.h,v 1.2 90/07/19 23:14:38 casie Exp $
* $Log: interface.h,v $
* Revision 1.2 90/07/19 23:14:38 casie
* Removed log comments from top.
*
*
*/
#include "copyright.h"
#include "db.h"
#include <sys/time.h>
#ifdef RSAIX
#include <time.h>
#endif
#ifdef BSD42
#include <sys/types.h>
#endif
/* these symbols must be defined by the interface */
extern int notify(dbref, const char *);
extern int shutdown_flag; /* if non-zero, interface should shut down */
extern void emergency_shutdown(void);
extern int boot_off(dbref);
extern int check_awake(dbref);
extern time_t startup_time;
extern int errno;
/* the following symbols are provided by game.c */
extern dbref global_trigger;
/* the following symbols are provided by muck_strftime.c */
extern size_t muck_strftime(char *, size_t, const char *, time_t);
/* max length of command argument to process_command */
#define MAX_COMMAND_LEN 1024
#define BUFFER_LEN ((MAX_COMMAND_LEN)*8)
extern void process_command(dbref, const char *, dbref, int);
extern int do_act(dbref, const char *, dbref);
extern dbref create_player(const char *, const char *);
extern dbref connect_player(const char *, const char *);
extern void do_look_around(dbref);
extern int init_game(const char *, const char *);
extern void dump_database();
extern void panic(const char *);
extern char buf[BUFFER_LEN];
/* from fifoq.c */
extern int gotio;
/* from stringutil.c */
extern char * alloc_string(const char *);
struct text_block {
int nchars;
struct text_block *nxt;
char *start;
char *buf;
};
struct text_queue {
struct text_block *head;
struct text_block **tail;
};
struct descriptor_data {
int descriptor;
int connected;
dbref player;
char *output_prefix;
char *output_suffix;
int output_size;
struct text_queue output;
struct text_queue input;
char *raw_input;
char *raw_input_at;
long last_time;
long connected_at;
const char *hostname;
int quota;
struct descriptor_data *next;
struct descriptor_data **prev;
};
extern struct descriptor_data *descriptor_list;