/
CDC-1.2b/
CDC-1.2b/src/
parent $libraries
object $object

var $root child_index 0
var $root fertile 0
var $root manager $object
var $root owners [$core]
var $root writable [$core]
var $root readable ['parameters, 'methods, 'code]
var $root trusted []
var $root owned [$object]
var $root inited 1
var $root dbref 'object

method to_dbref
    arg obj;
    var type, dbref;
    
    type = type(obj);
    switch (type) {
        case 'string:
            if ((obj[1]) == "$") {
                dbref = (| get_objnum(tosym(substr(obj, 2))) |);
            } else if ((obj[1]) == "#") {
                obj = substr(obj, 2);
                if ($string.is_numeric(obj))
                    dbref = (| toobj(toint(obj)) |);
                else
                    throw(~objnf, ("Cannot find object \"#" + obj) + "\".");
            }
            if (!dbref)
                dbref = (> get_objnum(tosym(lowercase(strsub(obj, " ", "_")))) <);
            return dbref;
        case 'dbref:
            return obj;
        default:
            return (> get_objnum(obj) <);
    }
.

method get_name
    arg obj, [args];
    var meth;
    
    // get_name(obj, 'method, [args]) (3rd arg must be a list)
    if (!valid(obj))
        return ("** invalid object (" + tostr(obj)) + ") **";
    meth = [@args, 'name][1];
    args = [@args, [], []][2];
    return obj.(meth)(@args);
.

method see_perms
    arg obj, [who];
    var str, x;
    
    who = [@who, sender()][1];
    str = "[";
    if (obj.fertile())
        str = str + "F";
    for x in (obj.is_readable_by(who))
        str = str + (tostr(x)[1]);
    return str + "]";
.