d02 @verb #12:"_pros" this none this rxdo #789 @program #12:"_pros" this none this caller == this || raise(E_PERM) set_task_perms(this) lines = sizes = {} linelength = player:linelength() > 79 ? player:linelength() | 79 for o in (args) if (!$recycler:valid(o)) lines[1..0] = {tostr(" ", $string_utils:right(o, 6), " Invalid Object!")} sizes[1..0] = {0} else kids = 0 for k in (children(o)) $command_utils:suspend_if_needed() if (k.owner != o.owner) kids = 2 elseif (kids == 0) kids = 1 endif endfor "The verbs() call below might fail, but that's OK" v = `verbs(o) ! ANY' vstr = v ? tostr("[", $string_utils:right(length(v), 3), "] ") | " " if (o.r && o.f) r = "f" elseif (o.r) r = "r" elseif (o.f) r = "F" else r = " " endif category = "" cl = {$player, $room, $exit, $note, $container, $thing, $newsgroup} cs = {"P", "R", "E", "N", "C", "T", "M"} if (is_player(cat_o = o)) category = "P" endif while (valid(cat_o) && !category) if (i = cat_o in cl) category = cs[i] endif cat_o = parent(cat_o) endwhile vstr = tostr(" kK"[kids + 1], r, category ? category | " ", vstr) size = `o:object_bytes() ! ANY' if (!size) sizestr = " ???" elseif (size < $kb) sizestr = " <1K" elseif (size < $kb * $kb) sizestr = tostr($string_utils:right(size / $kb, 3), "K") else sizestr = tostr($string_utils:right(size / ($kb * $kb), 3), "M") endif vstr = tostr(sizestr, " ", vstr) name_field_len = 26 if (valid(o.location) && !$object_utils:isa(o, $exit)) loc = (o.location.owner == o.owner ? " " | "*") + "[" + o.location:title() + "]" elseif ($object_utils:has_property(o, "dest")) if (typeof(o.location) != $OBJ) source = " <non-object> " elseif (!valid(o.location)) source = "<invalid>" else source = o.location:title() if (o.location.owner != o.owner) source = "*" + source endif endif if (typeof(o.dest) != $OBJ) destin = " <non-object> " elseif (!valid(o.dest)) destin = "<invalid>" else destin = o.dest:title() if (o.dest.owner != o.owner) destin = "*" + destin endif endif srclen = length(source) < 20 ? length(source) | 19 destlen = length(destin) < 20 ? length(destin) | 19 loc = " " + source[1..srclen] + "->" + destin[1..destlen] else loc = " [Nowhere]" endif if (length(loc) > 41) loc = loc[1..37] + "..]" endif otitle = o:title() namelen = length(otitle) < name_field_len ? length(otitle) | name_field_len - 1 lines[1..0] = {tostr(vstr, $string_utils:right(o, 6), " ", $string_utils:left(otitle[1..namelen], name_field_len), loc)} length(lines[1]) > linelength && (lines[1] = lines[1][1..linelength]) sizes[1..0] = {`o:object_bytes() ! ANY'} endif $command_utils:suspend_if_needed() endfor $tcm || (lines = $list_utils:sort(lines, sizes)) player:tell(lines) "Last modified by Dax (#789) on Wed May 4 06:44:30 2005 MDT." . 0