UTF8 *txlevel_description(dbref player, dbref target) { // Allocate the return buffer. // int otype = Typeof(target); UTF8 *buff = alloc_mbuf("txlevel_description"); UTF8 *bp = buff; int i; RLEVEL tl = TxLevel(target); for (i = 0; i < mudconf.no_levels; ++i) { confdata::rlevel_def *rldef = &mudconf.reality_level[i]; if ((tl & rldef->value) == rldef->value) { safe_mb_chr(' ', buff, &bp); safe_mb_str(rldef->name, buff, &bp); } } // Terminate the string, and return the buffer to the caller. // *bp = '\0'; return buff; }
char *flag_description( dbref player, dbref target ) { char *buff, *bp; FLAGENT *fp; int otype; FLAG fv; /* * Allocate the return buffer */ otype = Typeof( target ); bp = buff = alloc_mbuf( "flag_description" ); /* * Store the header strings and object type */ safe_mb_str( ( char * ) "Type: ", buff, &bp ); safe_mb_str( ( char * ) object_types[otype].name, buff, &bp ); safe_mb_str( ( char * ) " Flags:", buff, &bp ); if( object_types[otype].perm != CA_PUBLIC ) { return buff; } /* * Store the type-invariant flags */ for( fp = gen_flags; fp->flagname; fp++ ) { if( fp->flagflag & FLAG_WORD3 ) { fv = Flags3( target ); } else if( fp->flagflag & FLAG_WORD2 ) { fv = Flags2( target ); } else { fv = Flags( target ); } if( fv & fp->flagvalue ) { if( ( fp->listperm & CA_WIZARD ) && !Wizard( player ) ) { continue; } if( ( fp->listperm & CA_GOD ) && !God( player ) ) { continue; } /* * don't show CONNECT on dark wizards to mortals */ if( isPlayer( target ) && isConnFlag( fp ) && Can_Hide( target ) && Hidden( target ) && !See_Hidden( player ) ) { continue; } safe_mb_chr( ' ', buff, &bp ); safe_mb_str( ( char * ) fp->flagname, buff, &bp ); } } return buff; }
char *power_description(dbref player, dbref target) { char *buff, *bp; POWERENT *fp; int otype; POWER fv; /* * Allocate the return buffer */ otype = Typeof(target); bp = buff = alloc_mbuf("power_description"); /* * Store the header strings and object type */ safe_mb_str((char *) "Powers:", buff, &bp); for (fp = gen_powers; fp->powername; fp++) { if (fp->powerpower & POWER_EXT) { fv = Powers2(target); } else { fv = Powers(target); } if (fv & fp->powervalue) { if ((fp->listperm & CA_WIZARD) && !Wizard(player)) { continue; } if ((fp->listperm & CA_GOD) && !God(player)) { continue; } safe_mb_chr(' ', buff, &bp); safe_mb_str((char *) fp->powername, buff, &bp); } } /* * Terminate the string, and return the buffer to the caller */ *bp = '\0'; return buff; }
UTF8 *flag_description(dbref player, dbref target) { // Allocate the return buffer. // int otype = Typeof(target); UTF8 *buff = alloc_mbuf("flag_description"); UTF8 *bp = buff; // Store the header strings and object type. // safe_mb_str(T("Type: "), buff, &bp); safe_mb_str(object_types[otype].name, buff, &bp); safe_mb_str(T(" Flags:"), buff, &bp); if (object_types[otype].perm != CA_PUBLIC) { *bp = '\0'; return buff; } // Store the type-invariant flags. // FLAGNAMEENT *fp; for (fp = gen_flag_names; fp->flagname; fp++) { if (!fp->bPositive) { continue; } FLAGBITENT *fbe = fp->fbe; if (db[target].fs.word[fbe->flagflag] & fbe->flagvalue) { if ( ( (fbe->listperm & CA_STAFF) && !Staff(player)) || ( (fbe->listperm & CA_ADMIN) && !WizRoy(player)) || ( (fbe->listperm & CA_WIZARD) && !Wizard(player)) || ( (fbe->listperm & CA_GOD) && !God(player))) { continue; } // Don't show CONNECT on dark wizards to mortals. // if ( isPlayer(target) && (fbe->flagvalue == CONNECTED) && (fbe->flagflag == FLAG_WORD2) && Hidden(target) && !See_Hidden(player)) { continue; } safe_mb_chr(' ', buff, &bp); safe_mb_str(fp->flagname, buff, &bp); } } // Terminate the string, and return the buffer to the caller. // *bp = '\0'; return buff; }