HTML Utilities

Showing help on 'move()'

Syntax: move (OBJ <what>, OBJ <where>[, INT <position>]) => none

Changes <what>'s location to be <where>. This is a complex process because a number of permissions checks and notifications must be performed. The actual movement takes place as described in the following paragraphs.

<what> should be a valid object and <where> should be either a valid object or `#-1' (denoting a location of 'nowhere'); otherwise E_INVARG is raised. The programmer must be either the owner of <what> or a wizard; otherwise, E_PERM is raised.

If <where> is a valid object and isn't the same as <what>'s location, then the verb-call

<where>:accept(<what>)

is performed before any movement takes place. If the verb returns a false value and the programmer is not a wizard, then <where> is considered to have refused entrance to <what>; `move()' raises E_NACC. If <where> does not define an `accept' verb, then it is treated as if it defined one that always returned false.

If moving <what> into <where> would create a loop in the containment hierarchy (i.e., <what> would contain itself, even indirectly), then E_RECMOVE is raised instead.

The `location' property of <what> is changed to be <where>, and the `contents' properties of the old and new locations are modified appropriately. If <position> is specified, the object will be inserted into the `contents' property of the new location at <position>.

If <where> differs from <what>'s current location, two additional verb calls take place. Let <old-where> be the location of <what> before it was moved. If <old-where> is a valid object, then the verb-call

<old-where>:exitfunc(<what>)

is performed and its result is ignored; it is not an error if <old-where> does not define a verb named `exitfunc'. Finally, if <where> and <what> are still valid objects, and <where> is still the location of <what>, then the verb-call

<where>:enterfunc(<what>)

is performed and its result is ignored; again, it is not an error if <where> does not define a verb named `enterfunc'.



-- telnet://project-mongoose.net:7777 -- Mail us -- http://project-mongoose.net:7780/ --
-- Five users connected --