[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 26-Mar-1995 as a part of ColdCore, see: @help Credit"]