mux/src/comsys.h

Go to the documentation of this file.
00001 // comsys.h
00002 //
00003 // $Id: comsys.h,v 1.5 2006/01/07 08:10:56 sdennis Exp $
00004 //
00005 
00006 #ifndef __COMSYS_H__
00007 #define __COMSYS_H__
00008 
00009 typedef struct chanentry CHANENT;
00010 struct chanentry
00011 {
00012     char *channame;
00013     struct channel *chan;
00014 };
00015 
00016 #define NUM_COMSYS 500
00017 
00018 #define MAX_CHANNEL_LEN 50
00019 #define MAX_HEADER_LEN  100
00020 #define MAX_TITLE_LEN   200
00021 #define MAX_ALIAS_LEN   5
00022 #define ALIAS_SIZE      (MAX_ALIAS_LEN+1)
00023 
00024 struct comuser
00025 {
00026     dbref who;
00027     bool bUserIsOn;
00028     char *title;
00029     bool ComTitleStatus;
00030     struct comuser *on_next;
00031 };
00032 
00033 struct channel
00034 {
00035     char name[MAX_CHANNEL_LEN+1];
00036     char header[MAX_HEADER_LEN+1];
00037     int type;
00038     int temp1;
00039     int temp2;
00040     int charge;
00041     dbref charge_who;
00042     int amount_col;
00043     int num_users;
00044     int max_users;
00045     dbref chan_obj;
00046     struct comuser **users;
00047     struct comuser *on_users;   /* Linked list of who is on */
00048     int num_messages;
00049 };
00050 
00051 typedef struct tagComsys
00052 {
00053     dbref who;
00054 
00055     int numchannels;
00056     int maxchannels;
00057     char *alias;
00058     char **channels;
00059 
00060     struct tagComsys *next;
00061 } comsys_t;
00062 
00063 void save_comsys(char *filename);
00064 void load_comsys(char *filename);
00065 void del_comsys(dbref who);
00066 void add_comsys(comsys_t *c);
00067 bool test_join_access(dbref player, struct channel *chan);
00068 bool test_transmit_access(dbref player, struct channel *chan);
00069 bool test_receive_access(dbref player, struct channel *chan);
00070 void do_joinchannel(dbref player, struct channel *ch);
00071 void do_comdisconnectchannel(dbref player, char *channel);
00072 void load_channels(FILE *fp);
00073 void purge_comsystem(void);
00074 void save_channels(FILE *fp);
00075 void destroy_comsys(comsys_t *c);
00076 void sort_com_aliases(comsys_t *c);
00077 void load_comsystem(FILE *fp);
00078 void save_comsystem(FILE *fp);
00079 void SendChannelMessage
00080 (
00081     dbref  player,
00082     struct channel *ch,
00083     char  *msgNormal,
00084     char  *msgNoComtitle
00085 );
00086 void do_comwho(dbref player, struct channel *ch);
00087 void do_comlast(dbref player, struct channel *ch, int arg);
00088 void do_leavechannel(dbref player, struct channel *ch);
00089 void do_delcomchannel(dbref player, char *channel, bool bQuiet);
00090 #if 0
00091 void do_cleanupchannels(void);
00092 #endif // 0
00093 void do_channelnuke(dbref player);
00094 void sort_users(struct channel *ch);
00095 void do_comdisconnect(dbref player);
00096 void do_comconnect(dbref player);
00097 void do_clearcom(dbref executor, dbref caller, dbref enactor, int unused2);
00098 void do_cheader(dbref player, char *channel, char *header);
00099 void do_addcom
00100 (
00101     dbref executor,
00102     dbref caller,
00103     dbref enactor,
00104     int   key,
00105     int   nargs,
00106     char *arg1,
00107     char *arg2
00108 );
00109 
00110 comsys_t *create_new_comsys ();
00111 
00112 struct channel *select_channel(char *channel);
00113 struct comuser *select_user(struct channel *ch, dbref player);
00114 
00115 char  *get_channel_from_alias();
00116 
00117 bool  do_comsystem(dbref who, char *cmd);
00118 void  do_chanlist(dbref executor, dbref caller, dbref enactor, int key, char *pattern);
00119 
00120 #define CHANNEL_PLAYER_JOIN     (0x00000001UL)
00121 #define CHANNEL_PLAYER_TRANSMIT (0x00000002UL)
00122 #define CHANNEL_PLAYER_RECEIVE  (0x00000004UL)
00123 #define CHANNEL_OBJECT_JOIN     (0x00000010UL)
00124 #define CHANNEL_OBJECT_TRANSMIT (0x00000020UL)
00125 #define CHANNEL_OBJECT_RECEIVE  (0x00000040UL)
00126 #define CHANNEL_LOUD            (0x00000100UL)
00127 #define CHANNEL_PUBLIC          (0x00000200UL)
00128 #define CHANNEL_SPOOF           (0x00000400UL)
00129 
00130 // Connected players and non-garbage objects are ok.
00131 //
00132 #define UNDEAD(x) (Good_obj(x) && ((Typeof(x) != TYPE_PLAYER) || Connected(x)))
00133 
00134 #endif // __COMSYS_H__

Generated on Mon May 28 04:40:08 2007 for MUX by  doxygen 1.4.7