- int a;
-
- bzero(qrbuf, sizeof(struct quickroom));
- cdbqr = cdb_fetch(CDB_QUICKROOM, &room_num, sizeof(int));
- if (cdbqr != NULL) {
- memcpy(qrbuf, cdbqr->ptr,
- ( (cdbqr->len > sizeof(struct quickroom)) ?
- sizeof(struct quickroom) : cdbqr->len) );
- cdb_free(cdbqr);
- }
- else {
- if (room_num < 3) {
- qrbuf->QRflags = QR_INUSE;
- time(&qrbuf->QRgen);
- switch(room_num) {
- case 0: strcpy(qrbuf->QRname, "Lobby");
- break;
- case 1: strcpy(qrbuf->QRname, "Mail");
- break;
- case 2: strcpy(qrbuf->QRname, "Aide");
- break;
- }
- }
- }
-
-
- /** FIX ** VILE SLEAZY HACK ALERT!!
- * This is a temporary fix until we can track down where room names
- * are getting corrupted on some systems.
- */
- for (a=0; a<20; ++a) if (qrbuf->QRname[a] < 32) qrbuf->QRname[a] = 0;
- qrbuf->QRname[19] = 0;
- }
-
-/*
- * lgetroom() - same as getroom() but locks the record (if supported)
- */
-void lgetroom(struct quickroom *qrbuf, int room_num)
-{
- begin_critical_section(S_QUICKROOM);
- getroom(qrbuf,room_num);
- }
-
-
-/*
- * putroom() - store room data on disk
- */
-void putroom(struct quickroom *qrbuf, int room_num)
-{
- time(&qrbuf->QRmtime);
- cdb_store(CDB_QUICKROOM, &room_num, sizeof(int),
- qrbuf, sizeof(struct quickroom));
- }
-
-
-/*
- * lputroom() - same as putroom() but unlocks the record (if supported)
- */
-void lputroom(struct quickroom *qrbuf, int room_num)
-{
-
- putroom(qrbuf,room_num);
- end_critical_section(S_QUICKROOM);
-
- }
-
-
-/*************** START OF NEW ROOM DATABASE FUNCTIONS ***********************/
-/*
- * ngetroom() - retrieve room data from disk
- */
-void ngetroom(struct quickroom *qrbuf, char *room_name)
-{
- struct cdbdata *cdbqr;
- char lowercase_name[20];