Switch to edit mode.
Name(s): @recreate1: "@recreate <object> as <parent-class> named [name:]alias,alias,..."
2: " effectively recycles and creates <object> all over again."
3: set_task_perms(player)
4: named = "named" in args || "called" in args || "nomme" in args
5: as = prepstr in args
6: if (named <= as + 1 || named == length(args))
7: player:tell({tostr("Usage: ", verb, " <object> as <parent-class> named [name:]alias,...,alias"), "", "where <parent-class> is one of the standard classes ($note, $letter, $thing, or $container) or an object number (e.g., #999), or the name of some object in the current room. The [name:]alias... specification is as in @create."})
8: return
9: elseif ($command_utils:object_match_failed(dobj = player:my_match_object(dobjstr), dobjstr))
10: return
11: elseif (is_player(dobj))
12: player:tell("You really *don't* want to do that!")
13: return
14: endif
15: parentstr = $string_utils:from_list(args[as + 1..named - 1], " ")
16: namestr = $string_utils:from_list(args[named + 1..length(args)], " ")
17: if (parentstr[1] == "$")
18: try
19: parent = #0.(parentstr[2..$])
20: except (E_PROPNF)
21: return player:tell(tostr("\"", parentstr, "\" does not name an object."))
22: endtry
23: else
24: parent = player:my_match_object(parentstr)
25: if ($command_utils:object_match_failed(parent, parentstr))
26: return
27: endif
28: endif
29: if ($recycler:valid(dobj) && $perm_utils:controls(player, dobj) && !$command_utils:yes_or_no(tostr("Warning: ", dobj, " is not a garbage object, but an object you own (", dobj.name, "). Destroy and recreate anyway")))
30: return
31: endif
32: try
33: e = $building_utils:recreate(dobj, parent)
34: except v (ANY)
35: player:tell(verb, " failed: ", v[1])
36: player:tell("Object: ", dobj, ". Parent: ", parent, ".")
37: player:tell("Reason: ", v[2])
38: return
39: endtry
40: if (dobj:isa($physical))
41: dobj:moveto(player)
42: endif
43: $building_utils:set_names(dobj, namestr)
44: if ((other_names = setremove(dobj.aliases, dobj.name)) != {})
45: aka = " (aka " + $string_utils:english_list(other_names) + ")"
46: else
47: aka = ""
48: endif
49: player:tell("Object number ", dobj, " is now ", dobj.name, aka, " with parent ", $su:nn(parent), ".")
50: "Last modified by Dax (#789) on Thu Nov 8 11:38:30 2001 MST."