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; }
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; }