// Comsys.h // // $Id: comsys.h,v 1.1 2000/04/11 07:14:43 sdennis Exp $ #ifndef __COMSYS_H__ #define __COMSYS_H__ typedef struct chanentry CHANENT; struct chanentry { char *channame; struct channel *chan; }; #define NUM_COMSYS 500 #define MAX_CHANNEL_LEN 50 #define MAX_TITLE_LEN 50 #define MAX_ALIAS_LEN 6 struct comuser { dbref who; int bUserIsOn; char *title; struct comuser *on_next; }; struct channel { char name[MAX_CHANNEL_LEN+1]; int type; int temp1; int temp2; int charge; int charge_who; int amount_col; int num_users; int max_users; int chan_obj; struct comuser **users; struct comuser *on_users; /* Linked list of who is on */ int num_messages; }; typedef struct tagComsys { dbref who; int numchannels; int maxchannels; char *alias; char **channels; struct tagComsys *next; } comsys_t; extern comsys_t *comsys_table[NUM_COMSYS]; void save_comsys(char *filename); void load_comsys(char *filename); void del_comsys(dbref who); void add_comsys(comsys_t *c); void do_processcom(dbref player, char *arg1, char *arg2); int do_test_access(dbref player, long access, struct channel *chan); void do_joinchannel(dbref player, struct channel *ch); void do_comdisconnectraw_notify(dbref player, char *chan); void do_comconnectraw_notify(dbref player, char *chan); void do_comdisconnectchannel(dbref player, char *channel); void load_channels(FILE *fp); void load_old_channels(FILE *fp); void purge_comsystem(void); void save_channels(FILE *fp); void destroy_comsys(comsys_t *c); void sort_com_aliases(comsys_t *c); void load_comsystem(FILE *fp); void save_comsystem(FILE *fp); void do_comsend(struct channel *ch, char *msgNormal); void do_comwho(dbref player, struct channel *ch); void do_leavechannel(dbref player, struct channel *ch); void do_delcomchannel(dbref player, char *channel); void do_listchannels(dbref player); void do_cleanupchannels(void); void do_channelnuke(dbref player); void sort_users(struct channel *ch); void do_comconnectchannel(dbref player, char *channel, char *alias, int i); void do_comdisconnect(dbref player); void do_comconnect(dbref player); void do_clearcom(dbref player, dbref unused1, int unused2); void do_addcom(dbref player, dbref cause, int key, char *arg1, char *arg2); comsys_t *get_comsys (); comsys_t *create_new_comsys (); char *purge_comsys(); comsys_t *get_comsys (); comsys_t *create_new_comsys (); extern int num_channels; extern int max_channels; extern struct channel **channels; struct channel *select_channel(char *channel); struct comuser *select_user(struct channel *ch, dbref player); char *get_channel_from_alias(); char *add_lastcom(); char *sort_channels(); char *check_channel(); char *add_spaces(); char *send_csdebug(); int do_comsystem(dbref who, char *cmd); char *do_comdisconnectnotify(); char *do_comconnectnotify(); void do_chanlist(dbref player, dbref cause, int key); #define CHANNEL_JOIN 0x1 #define CHANNEL_TRANSMIT 0x2 #define CHANNEL_RECEIVE 0x4 #define CHANNEL_PL_MULT 0x001 // See JOIN, TRANSMIT, RECEIVE #define CHANNEL_OBJ_MULT 0x010 // See JOIN, TRANSMIT, RECEIVE #define CHANNEL_LOUD 0x100 #define CHANNEL_PUBLIC 0x200 #define CHANNEL_SPOOF 0x400 // explanation of logic: If it's not owned by god, and it's either not // a player, or a connected player, it's good... If it is owned by god, // then if it's going, assume it's already gone, no matter what it is. // :) // #define UNDEAD(x) (((!God(Owner(x))) || !(Going(x))) && \ ((Typeof(x) != TYPE_PLAYER) || (Connected(x)))) #endif // __COMSYS_H__