for removing MAXROOMS. Generations for new rooms are now timestamps.
* Defined "struct visit" to hold user/room relationships.
* Removed some #define's from citadel.h that are no longer used.
+Sun Sep 27 16:10:49 EDT 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
+ * Changed all "generation" variables from char to long, in preparation
+ for removing MAXROOMS. Generations for new rooms are now timestamps.
+ * Defined "struct visit" to hold user/room relationships.
+ * Removed some #define's from citadel.h that are no longer used.
+
Wed Sep 23 13:41:49 EDT 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* More changes to support attachments. They mostly work, but only
in fixed-format messages.
#define PHONENUM config.c_phonenum
#define BBSUID config.c_bbsuid
#define CREATAIDE config.c_creataide
-#define INITAX config.c_initax
#define REGISCALL config.c_regiscall
#define TWITDETECT config.c_twitdetect
#define TWITROOM config.c_twitroom
-#define MORE_PROMPT config.c_moreprompt
#define RESTRICT_INTERNET config.c_restrict
-#define MM_FILELEN config.c_msgbase
+
+/* Defines the relationship of a user to a particular room */
+struct visit {
+ char v_roomname[20];
+ long v_generation;
+ long v_lastseen;
+ unsigned int v_flags;
+ };
+
+#define V_FORGET 1 /* User has zapped this room */
+#define V_LOCKOUT 2 /* User is locked out of this room */
+
+
+/* Defines the actual user record */
struct usersupp { /* User record */
int USuid; /* userid (==BBSUID for bbs only) */
char password[20]; /* password (for BBS-only users) */
long lastseen[MAXROOMS]; /* Last message seen in each room */
- char generation[MAXROOMS]; /* Generation # (for private rooms) */
- char forget[MAXROOMS]; /* Forgotten generation number */
+ long generation[MAXROOMS]; /* Generation # (for private rooms) */
+ long forget[MAXROOMS]; /* Forgotten generation number */
unsigned flags; /* See US_ flags below */
int timescalled; /* Total number of logins */
int posted; /* Number of messages posted (ever) */
char QRpasswd[10]; /* Only valid if it's a private rm */
long QRroomaide; /* User number of room aide */
long QRhighest; /* Highest message NUMBER in room */
- char QRgen; /* Generation number of room */
+ long QRgen; /* Generation number of room */
unsigned QRflags; /* See flag values below */
char QRdirname[15]; /* Directory name, if applicable */
long QRinfo; /* Info file update relative to msgs*/
if (!strcasecmp(key, "generation"))
for (a=0; a<ssv_maxrooms; ++a) {
fpgetfield(imfp, list);
- us.generation[a] = atoi(list);
+ us.generation[a] = atol(list);
}
if (!strcasecmp(key, "forget"))
for (a=0; a<ssv_maxrooms; ++a) {
if (!strcasecmp(tag, "qrhighest"))
qr.QRhighest = atol(tval);
if (!strcasecmp(tag, "qrgen"))
- qr.QRgen = atoi(tval);
+ qr.QRgen = atol(tval);
if (!strcasecmp(tag, "qrflags"))
qr.QRflags = atoi(tval);
if (!strcasecmp(tag, "qrdirname"))
else {
if (room_num < 3) {
qrbuf->QRflags = QR_INUSE;
- qrbuf->QRgen = 1;
+ time(&qrbuf->QRgen);
switch(room_num) {
case 0: strcpy(qrbuf->QRname, "Lobby");
break;
/* Kick everyone out if the client requested it */
if (extract_int(args,4)) {
++CC->quickroom.QRgen;
- if (CC->quickroom.QRgen==100) CC->quickroom.QRgen=1;
+ if (CC->quickroom.QRgen==100) time(&CC->quickroom.QRgen);
+
}
old_floor = CC->quickroom.QRfloor;
if ((new_room_type > 0)&&(CREATAIDE==1))
qrbuf.QRroomaide=CC->usersupp.usernum;
qrbuf.QRhighest = 0L;
- ++qrbuf.QRgen; if (qrbuf.QRgen>=126) qrbuf.QRgen=10;
+ time(&qrbuf.QRgen);
qrbuf.QRfloor = new_room_floor;
/* save what we just did... */
CC->usersupp.timescalled = 0;
CC->usersupp.posted = 0;
- CC->usersupp.axlevel = INITAX;
+ CC->usersupp.axlevel = config.c_initax;
CC->usersupp.USscreenwidth = 80;
CC->usersupp.USscreenheight = 24;
time(&CC->usersupp.lastcall);