695 @verb #12:"_move_obj _move!_obj" this none this rxdo #55 @program #12:"_move_obj _move!_obj" this none this "Move an object. Called by @move & @join." if (caller != this) raise(E_PERM) endif set_task_perms(this) {dobj, moveto} = args nice = !index(verb, "!") if (typeof(moveto) == $OBJ) iobjstr = tostr(iobj = moveto) else iobj = this:my_match_object(iobjstr = moveto) endif if (iobj != $nothing && $command_utils:object_match_failed(iobj, iobjstr)) return endif old_loc = dobj.location if (old_loc == iobj) $msg:mtell("already_there", dobj, iobj) return endif try r = this:_move(dobj, iobj, !nice) if (dobj.location != old_loc) "Note that the move is now done *before* notifiers are printed." "This avoids 'traps' when someone accidentally (deliberately?) breaks a notify verb or whatnot." "Write all the funky notifiers." valid(old_loc) && $msg:lmtell({dobj}, {dobj.location}, {old_loc, ""}, "msg_odepart") if (dobj.location == iobj) valid(dobj.location) && $msg:lmtell({dobj}, {old_loc}, {dobj, "msg_arrive"}, "msg_oarrive") $msg:mtell("moved", old_loc) else "Quack?" valid(dobj.location) && $msg:lmtell({dobj}, {old_loc}, {dobj, "msg_arrive_quack"}, "msg_oarrive_quack") $msg:mtell("deflected", old_loc) endif endif "Move failed; try tells us the explanation." except (E_NACC) $msg:mtell("bounced", old_loc) except (E_RANGE) $msg:mtell("move2far", old_loc) except (E_RECMOVE) $msg:mtell("topology", dobj, iobj) except error (ANY) $msg:mtell("stubborn", old_loc, error[2]) endtry "Last modified by Dax (#789) on Tue May 3 13:47:06 2005 MDT." . 0