/*
* Back-back-end for all room listing commands
*/
-void list_roomname(struct ctdlroom *qrbuf, int ra, int view)
+void list_roomname(struct ctdlroom *qrbuf, int ra, int current_view, int default_view)
{
char truncated_roomname[ROOMNAMELEN];
}
/* ...and now the other parameters */
- cprintf("|%u|%d|%d|%d|%d|%d|\n",
+ cprintf("|%u|%d|%d|%d|%d|%d|%d|%ld|\n",
qrbuf->QRflags,
(int) qrbuf->QRfloor,
(int) qrbuf->QRorder,
(int) qrbuf->QRflags2,
ra,
- view
+ current_view,
+ default_view,
+ qrbuf->QRmtime
);
}
if ((( ra & (UA_KNOWN | UA_ZAPPED)))
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lrms(char *argbuf)
if ((( ra & (UA_KNOWN)))
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lkra(char *argbuf)
&& ((qrbuf->QRflags & QR_MAILBOX) == 0)
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lprm(char *argbuf)
&& (ra & UA_HASNEWMSGS)
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lkrn(char *argbuf)
&& ((ra & UA_HASNEWMSGS) == 0)
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lkro(char *argbuf)
&& (ra & UA_ZAPPED)
&& ((qrbuf->QRfloor == (FloorBeingSearched))
|| ((FloorBeingSearched) < 0)))
- list_roomname(qrbuf, ra, view);
+ list_roomname(qrbuf, ra, view, qrbuf->QRdefaultview);
}
void cmd_lzrm(char *argbuf)
ret = crr_room_not_found;
}
- else if ( (CC->user.axlevel < 6)
+ else if ( (CC->user.axlevel < 6) && (!CC->internal_pgm)
&& (CC->user.usernum != qrbuf.QRroomaide)
&& ( (((qrbuf.QRflags & QR_MAILBOX) == 0) || (atol(qrbuf.QRname) != CC->user.usernum))) ) {
ret = crr_access_denied;
/* Delete the messages in the room
* (Careful: this opens an S_ROOMS critical section!)
*/
- CtdlDeleteMessages(qrbuf->QRname, 0L, "", 0);
+ CtdlDeleteMessages(qrbuf->QRname, NULL, 0, "", 0);
/* Flag the room record as not in use */
lgetroom(qrbuf, qrbuf->QRname);
}
/* Can't delete your Mail> room */
- if (!strcasecmp(&qr->QRname[12], MAILROOM)) return(0);
+ if (!strcasecmp(&qr->QRname[11], MAILROOM)) return(0);
/* Otherwise it's ok */
return(1);
if (CtdlAccessCheck(ac_logged_in)) return;
- if (CC->user.axlevel < config.c_createax) {
+ if (CC->user.axlevel < config.c_createax || CC->internal_pgm) {
cprintf("%d You need higher access to create rooms.\n",
ERROR + HIGHER_ACCESS_REQUIRED);
return;