@verb #53:"image" this none this rxdo #55 @program #53:"image" this none this "Format of unrecycle image:" "{ DOH, time_of_imaging, {name, location, parents, children, owner, r, w, f, player, proggrammer, wizard, contents }, { { parent, {xprop_info} x n -- for properties on each parent } x n }, { xverb_info x n }, callers() }" "xprop_info: { owner, perms, name, value } -- clear properties skipped." "xverb_info: { owner, perms, name, dobjspec, prepsec, iobjspec, @code }" "DOH: flag set if this verb had to suspend, thereby making the image suspect." " *WIZONLY* -- Even the owner of an object shouldn't get its image!" if (!caller_perms().wizard) return E_PERM endif o = args[1] if (!valid(o)) return E_INVARG endif "Note: suspend can change the object while this is running, making the image corrupt." suspend(0) "Suspend *now* so we get a full amount of ticks to start, cuz we don't wanna haveta suspend in the middle of it." builtins = {o.name, o.location, $object_utils:ancestors(o), children(o), o.owner, o.r, o.w, o.f, is_player(o), o.programmer, o.wizard, o.contents} AAAAARRRRGGGHH = 0 "Flag to set if we suspend." p = o allprops = {} while (valid(p)) pset = {} for pn in (properties(p)) if (!is_clear_property(o, pn)) pset[1..0] = {{@property_info(o, pn), pn, o.(pn)}} endif if ($command_utils:running_out_of_time()) AAAAARRRRGGGHH = 1 suspend(0) endif endfor allprops[1..0] = {{p, pset}} p = parent(p) endwhile allverbs = {} for i in [1..length(verbs(o))] c = {o, i} allverbs[1..0] = {{@verb_info(@c), @verb_args(@c), @verb_code(@c)}} if ($command_utils:running_out_of_time()) AAAAARRRRGGGHH = 1 suspend(0) endif endfor c = callers() if (length(c) >= 2 && c[2][1] == $repo_man && (h = $repo_man:_how(o))) c = {@c, {#-1, ctime(h[1]), $repo_man, #-1, $repo_man}, @h[2]} endif return {AAAAARRRRGGGHH, time(), builtins, allprops, allverbs, c} .