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)