Update doc/efun/ aus Driversourcen.

Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.

Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/transfer b/doc/efun/transfer
new file mode 100644
index 0000000..206df24
--- /dev/null
+++ b/doc/efun/transfer
@@ -0,0 +1,116 @@
+DEPRECATED
+SYNOPSIS
+        int transfer(object item, object dest)
+
+DESCRIPTION
+        This efun is for backward compatibility only. It is only
+        available in compat mode.
+
+        Move the object "item" to the object "dest". All kinds of
+        tests are done, and a number is returned specifying the
+        result:
+
+        0: Success.
+        1: To heavy for destination.
+        2: Can't be dropped.
+        3: Can't take it out of it's container.
+        4: The object can't be inserted into bags etc.
+        5: The destination doesn't allow insertions of objects.
+        6: The object can't be picked up.
+
+        If an object is transfered to a newly created object, make
+        sure that the new object first is transfered to it's
+        destination.
+
+        The efun calls add_weight(), drop(), get(), prevent_insert(),
+        add_weight(), and can_put_and_get() where needed.
+
+REPLACEMENT
+        This efun can easily be replaced with a simul_efun:
+
+        /*--------------------------------------------------------*/
+        int transfer(object item, object dest)
+        {
+            int weight;
+            object from;
+
+            efun::set_this_object(previous_object());
+
+            weight = item->query_weight();
+            if (!item)
+                return 3;
+
+            from = environment(item);
+            if (from)
+            {
+                /*
+                 * If the original place of the object is a living object,
+                 * then we must call drop() to check that the object can be
+                 * dropped.
+                 */
+                if (living(from))
+                {
+                    if (item->drop() || !item)
+                        return 2;
+                }
+                /*
+                 * If 'from' is not a room and not a player, check that we may
+                 * remove things out of it.
+                 */
+                else if (environment(from))
+                {
+                    if (!from->can_put_and_get() || !from)
+                        return 3;
+                }
+            }
+
+            /*
+             * If the destination is not a room, and not a player,
+             * Then we must test 'prevent_insert', and 'can_put_and_get'.
+             */
+            if (environment(dest) && !living(dest))
+            {
+                if (item->prevent_insert())
+                    return 4;
+                if (!dest->can_put_and_get() || !dest)
+                    return 5;
+            }
+
+            if (living(dest))
+            {
+                if (!item->get() || !item)
+                    return 6;
+            }
+
+            /*
+             * If it is not a room, correct the total weight in the
+             * destination.
+             */
+            if (environment(dest) && weight)
+            {
+                if (!dest->add_weight(weight) || !dest)
+                    return 1;
+            }
+
+            /*
+             * If it is not a room, correct the weight in the 'from' object.
+             */
+            if (from && environment(from) && weight)
+            {
+                from->add_weight(-weight);
+            }
+
+            move_object(item, dest);
+
+            return 0;
+        }
+        /*--------------------------------------------------------*/
+
+
+HISTORY
+        Deprecated in LDMud 3.3; available only when compiled with
+          USE_DEPRECATED.
+
+SEE ALSO
+         move_object(E), drop(A), get(A), prevent_insert(A),
+         can_put_and_get(A), add_weight(A)