[Turn on line numbering]arg obj; var dbref; switch (type(obj)) { case 'string: if (!obj) throw(~invdbref, "Invalid object reference \"\"."); if (obj[1] == "$") { obj = obj.subrange(2); dbref = (| lookup(tosym(obj)) |); } else if (obj[1] == "#") { obj = substr(obj, 2); if (obj.is_numeric()) dbref = (| toobjnum(toint(obj)) |); else throw(~objnf, "Cannot find object \"#" + obj + "\"."); } else { dbref = toint(obj[1]); if (dbref || obj == "0") dbref = toobjnum(dbref); else dbref = (| lookup(obj) |); } if (!dbref) { dbref = obj.replace(" ", "_").lowercase(); catch ~symbol dbref = tosym(dbref); with throw(~symbol, "Object reference '" + dbref + "' is invalid."); dbref = (> lookup(dbref) <); } return dbref; case 'objnum: return obj; default: return (> lookup(obj) <); }
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit