示例#1
0
const char *
unparse_flags(dbref thing, char buf[BUFFER_LEN])
{
    char *p;
    const char *type_codes = "R-EPFG";

    p = buf;
    if (Typeof(thing) != TYPE_THING)
        *p++ = type_codes[Typeof(thing)];
    if (FLAGS(thing) & ~TYPE_MASK) {
        /* print flags */
        if (FLAGS(thing) & BUILDER)
            *p++ = 'B';
        if (FLAGS(thing) & JUMP_OK)
            *p++ = 'J';
        if (FLAGS(thing) & LINK_OK)
            *p++ = 'L';
        if (FLAGS(thing) & DARK)
            *p++ = 'D';
        if (FLAGS(thing) & STICKY)
            *p++ = 'S';
        if (FLAGS(thing) & QUELL)
            *p++ = 'Q';
        if (FLAGS(thing) & CHOWN_OK)
            *p++ = 'C';
        if (FLAGS(thing) & F256COLOR)
            *p++ = '&';
        if (FLAGS(thing) & HAVEN)
            *p++ = 'H';
        if (FLAGS(thing) & ABODE)
            *p++ = 'A';
        if (FLAGS(thing) & VEHICLE)
            *p++ = 'V';
        if (FLAGS(thing) & XFORCIBLE)
            *p++ = 'X';
        if (FLAGS(thing) & ZOMBIE)
            *p++ = 'Z';
    }
    if (FLAG2(thing)) {
        if (FLAG2(thing) & F2GUEST)
            *p++ = 'G';
        if (FLAG2(thing) & F2IDLE)
            *p++ = 'I';
        if (FLAG2(thing) & F2LOGWALL)
            *p++ = '!';
        if (FLAG2(thing) & F2MUFCOUNT)
            *p++ = '+';
        if (FLAG2(thing) & F2LIGHT)
            *p++ = 'O';
        if (FLAG2(thing) & F2PARENT)
            *p++ = '%';
        if (FLAG2(thing) & F2PROTECT)
            *p++ = '*';
        if (FLAG2(thing) & F2ANTIPROTECT)
            *p++ = 'K';
        if (FLAG2(thing) & F2EXAMINE_OK)
            *p++ = 'Y';
        if (FLAG2(thing) & F2NO_COMMAND)
            *p++ = 'N';
        if (FLAG2(thing) & F2HIDDEN)
            *p++ = '#';
        if (FLAG2(thing) & F2PUEBLO)
            *p++ = '$';
        if (FLAG2(thing) & F2MOBILE)
            *p++ = '?';
        if (FLAG2(thing) & F2IMMOBILE)
            *p++ = '|';
#ifdef CONTROLS_SUPPORT
        if (FLAG2(thing) & F2CONTROLS)
            *p++ = '~';
#endif
    }
    if (thing == 1) {
        *p++ = 'W';
        *p++ = '5';
    } else {
        switch (RawMLevel(thing)) {
            case 0:
                break;
            case LMPI:
                *p++ = 'M';
                break;
            case LMAN:
                *p++ = 'W';
                *p++ = '5';
                break;
            case LBOY:
                *p++ = 'W';
                *p++ = '4';
                break;
            case LARCH:
                *p++ = 'W';
                if (tp_multi_wizlevels) {
                    *p++ = '3';
                }
                break;
            case LWIZ:
                *p++ = 'W';
                *p++ = '2';
                break;
            case LMAGE:
                *p++ = 'W';
                break;
            case LM3:
                *p++ = 'M';
                *p++ = '3';
                break;
            case LM2:
                *p++ = 'M';
                *p++ = '2';
                break;
            case LM1:
                *p++ = 'M';
                *p++ = '1';
                break;
        }
    }
    if ((Typeof(thing) == TYPE_PLAYER) && POWERS(thing)) {
        *p++ = ':';
        if (POWERS(thing) & POW_ANNOUNCE)
            *p++ = 'a';
        if (POWERS(thing) & POW_BOOT)
            *p++ = 'b';
        if (POWERS(thing) & POW_CHOWN_ANYTHING)
            *p++ = 'c';
        if (POWERS(thing) & POW_EXPANDED_WHO)
            *p++ = 'x';
        if (POWERS(thing) & POW_HIDE)
            *p++ = 'h';
        if (POWERS(thing) & POW_IDLE)
            *p++ = 'i';
        if (POWERS(thing) & POW_LINK_ANYWHERE)
            *p++ = 'l';
        if (POWERS(thing) & POW_LONG_FINGERS)
            *p++ = 'g';
        if (POWERS(thing) & POW_NO_PAY)
            *p++ = 'n';
        if (POWERS(thing) & POW_OPEN_ANYWHERE)
            *p++ = 'o';
        if (POWERS(thing) & POW_PLAYER_CREATE)
            *p++ = 'p';
        if (POWERS(thing) & POW_PLAYER_PURGE)
            *p++ = 'u';
        if (POWERS(thing) & POW_SEARCH)
            *p++ = 's';
        if (POWERS(thing) & POW_SEE_ALL)
            *p++ = 'e';
        if (POWERS(thing) & POW_TELEPORT)
            *p++ = 't';
        if (POWERS(thing) & POW_SHUTDOWN)
            *p++ = 'd';
        if (POWERS(thing) & POW_CONTROL_MUF)
            *p++ = 'f';
        if (POWERS(thing) & POW_CONTROL_ALL)
            *p++ = 'r';
        if (POWERS(thing) & POW_ALL_MUF_PRIMS)
            *p++ = 'm';
        if (POWERS(thing) & POW_STAFF)
            *p++ = 'w';
    }
    *p = '\0';
    return buf;
}
示例#2
0
const char *
unparse_flags(dbref thing, char buf[BUFFER_LEN])
{
    char   *p;
    const char *type_codes = "R-EPFG";

    p = buf;
    if (Typeof(thing) != TYPE_THING)
	*p++ = type_codes[Typeof(thing)];
    if (FLAGS(thing) & ~TYPE_MASK) {
	/* print flags */
	if (FLAGS(thing) & BUILDER)
	    *p++ = 'B';
	if (FLAGS(thing) & JUMP_OK)
	    *p++ = 'J';
	if (FLAGS(thing) & LINK_OK)
	    *p++ = 'L';
	if (FLAGS(thing) & KILL_OK)
	    *p++ = 'K';
	if (FLAGS(thing) & DARK)
	    *p++ = 'D';
	if (FLAGS(thing) & STICKY)
	    *p++ = 'S';
	if (FLAGS(thing) & QUELL)
	    *p++ = 'Q';
	if (FLAGS(thing) & CHOWN_OK)
	    *p++ = 'C';
	if (FLAGS(thing) & HAVEN)
	    *p++ = 'H';
	if (FLAGS(thing) & ABODE)
	    *p++ = 'A';
	if (FLAGS(thing) & VEHICLE)
	    *p++ = 'V';
	if (FLAGS(thing) & XFORCIBLE)
	    *p++ = 'X';
	if (FLAGS(thing) & ZOMBIE)
	    *p++ = 'Z';
    }
    if (FLAG2(thing)) {
	if (FLAG2(thing) & F2MPI)
	    *p++ = 'M';
	if (FLAG2(thing) & F2TINKERPROOF)
	    *p++ = 'T';
	if (FLAG2(thing) & F2GUEST)
	    *p++ = 'G';
	if (FLAG2(thing) & F2IC)
	    *p++ = 'I';
	if (FLAG2(thing) & F2OFFER)
	    *p++ = 'O';
	if (FLAG2(thing) & F2PUEBLO)
	    *p++ = 'U';
    }

    if(tp_multi_wiz_levels) {
	switch(RawMLevel(thing)) {
	    case LMAGE:	*p++ = 'W';		break;
	    case LWIZ:	*p++ = 'W'; *p++ = '2'; break;
	    case LARCH:	*p++ = 'W'; *p++ = '3'; break;
	    case LBOY:	*p++ = 'W'; *p++ = '4'; break;
	}
    } else if(FLAGS(thing)&W3)
	*p++ = 'W';

    switch (RawMLevel(thing)) {
	case LM1:	*p++ = 'M'; *p++ = '1'; break;
	case LM2:	*p++ = 'M'; *p++ = '2'; break;
	case LM3:	*p++ = 'M'; *p++ = '3'; break;
    }

    *p = '\0';
    return buf;
}