[Turn off line numbering]1: arg obj; 2: var dbref; 3: 4: switch (type(obj)) { 5: case 'string: 6: if (!obj) 7: throw(~invdbref, "Invalid object reference \"\"."); 8: if (obj[1] == "$") { 9: obj = obj.subrange(2); 10: dbref = (| lookup(tosym(obj)) |); 11: } else if (obj[1] == "#") { 12: obj = substr(obj, 2); 13: if (obj.is_numeric()) 14: dbref = (| toobjnum(toint(obj)) |); 15: else 16: throw(~objnf, "Cannot find object \"#" + obj + "\"."); 17: } else { 18: dbref = toint(obj[1]); 19: if (dbref || obj == "0") 20: dbref = toobjnum(dbref); 21: else 22: dbref = (| lookup(obj) |); 23: } 24: if (!dbref) { 25: dbref = obj.replace(" ", "_").lowercase(); 26: catch ~symbol 27: dbref = tosym(dbref); 28: with 29: throw(~symbol, "Object reference '" + dbref + "' is invalid."); 30: dbref = (> lookup(dbref) <); 31: } 32: return dbref; 33: case 'objnum: 34: return obj; 35: default: 36: return (> lookup(obj) <); 37: }
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit