コード例 #1
0
ファイル: doc_aide.c プロジェクト: egregious3000/isca-clone
/**********************************************************************
* aide menu
* Access to this menu is restricted to those with aide status.
* Wizards can do everything
* System Aides can do all but aideify
* Room Aides can only get here if it's their room and they can
* NOT do <A>ideify <C>reateroom <Z>ap room.
**********************************************************************/
void
aide_menu(void)
{
register int chr = '?';

  /* Can't get here unless you're at least a room aide for this room */

  while (chr != 'M' && chr != ' ' && chr != '\n')
  {
    switch (chr)
    {
      case 'C':
	printf("Create new forum\n");
	createroom();
	loadroom();
	break;

      case 'D':
	printf("Edit forum description\n\n");
	editdesc();
	break;

      case 'E':
	printf("Edit forum\n");
	editroom();
	break;

      case 'H':
	printf("Help!\n");
	if (ouruser->f_admin)
	  help("aidemenu", YES);
	else
	  help("fmmenu", YES);
	break;

      case 'I':
	printf("Invite user\n");
	invite();
	break;

      case 'K':
	printf("Kick out user\n");
	kickout();
	break;

      case 'L':
	if (ouruser->f_prog)
	{
	  printf("Logout all users\n");
	  logout_all();
	  break;
	}
	/* FALL THRU */

      case 'l':
        printf("Logout user\n");
        logout();
        break;

      case 'O':
	show_online(1);
	break;

      case 'W':
	whoknows();
	break;

      case 'X':
	if (ouruser->f_prog)
	  xbroadcast();
	else
	  chr = 0;
	break;

      case 'Z':
	printf("Zap (delete) forum\n");
	deleteroom();
	loadroom();
	break;

      case '?':
      case '/':
	if (ouruser->f_admin)
	  help("aidecmd", NO);
	else
	  help("fmcmd", NO);
	break;

      default:
	break;
    }

    if (chr)
      colorize("\n@Y[%s]@M Forum command ->@G ", msg->room[curr].name);
    if (ouruser->f_admin)
      chr = get_single_quiet("CDEHIKlLMOWXZ \n/?");
    else
      chr = get_single_quiet("DEHIKMW \n/?");

  }				/* end of while loop */
  printf("Forum level\n");
}
コード例 #2
0
ファイル: rooms.c プロジェクト: cafuego/monolith
void
create_room()
{
    int number;
    char command, *quad_name;

    for (number = 0; number < MAXQUADS; number++)
	if (!(readquad(number).flags & QR_INUSE)) {
	    cprintf("\n\1f\1gFound an unused %s at slot \1y%d\1g.\n", config.forum, number);
	    cprintf("\1gStop searching and use this position? \1w(\1rY\1w/\1rn\1w): \1c");
	    if (yesno_default(YES) == YES) {
		cprintf("\1f\1gInstall %s into slot \1y%d\1g? \1w(\1rY\1w/\1rn\1w): \1c", config.forum, number);
		if (yesno_default(YES) == NO)
		    return;
		else
		    break;
	    } else
		continue;
	}
    if (number >= MAXQUADS) {
	cprintf("\1f\1rNo unused %s was found.\n", config.forum);
	return;
    }
    cprintf("\1f\1rPlease keep the length of the name under 36 characters.\n                      |------------------------------------|\n\1f\1gName for new %s\1w: \1c", config.forum);
    quad_name = get_name(3);

    if (strlen(quad_name) == 0)
	return;
    if (get_room_number(quad_name) != -1) {
	cprintf("\1rA %s named '%s' already exists.\n", config.forum, quad_name);
	return;
    }
    curr_rm = number;
    quickroom = readquad(curr_rm);

    strcpy(quickroom.name, quad_name);
    quickroom.generation++;
    quickroom.lowest = ++quickroom.highest;
    quickroom.maxmsg = 100;
    quickroom.flags = QR_INUSE;

    cprintf("\1f\1g%s%s ",
	    config.forum,
	    "Type: \1w<\1y1\1w> \1gPublic \1w<\1y2\1w> \1rPrivate : \1c");

    command = get_single("12");

    if (command == '1') {	/* public room */
	cprintf("\1rThe %s will be PUBLIC.\n\n", config.forum);
	quickroom.flags &= ~QR_PRIVATE;
    } else {			/* invite -- just private flag, guessname off */
	cprintf("\1rThe %s will be INVITE ONLY.\n\n", config.forum);
	quickroom.flags |= QR_PRIVATE;
	if (quickroom.generation >= 100)
	    quickroom.generation = 10;
    }

    write_quad(quickroom, curr_rm);
    gotocurr();			/* takes care of self invite.. no matter, sysop anyways */
    log_sysop_action("created %s: %s> ", config.forum, quickroom.name);

    editroom();
    change_forum_info();
    qc_edit_room();
}