VERALTET
SYNOPSIS
        int transfer(object item, object dest)

BESCHREIBUNG
        Diese Funktion existiert lediglich aus Kompatibilitaetsgrunden, und
        dann auch nur, wennn der Driver mit USE_DEPRECATED kompiliert wird.

        Das Object <item> wird in Objekt <dest> bewegt. Verschiedene Tests
        werden durchgefuehrt, und das Resultat beschreibt den (Miss)Erfolg:

        0: Erfolg.
        1: Zu schwer fuer <dest>
        2: Kann nicht fallen gelassen werden.
        3: Kann nicht aus seinem  Behaelter genommen werden.
        4: <item> kann in keinen Behaelter gesteckt werden.
        5: <dest> akzeptiert <item> nicht.
        6: <item> kann nicht aufgenommen werden.

        Die Funktion ruft die lfuns add_weight(), drop(), get(),
        prevent_insert(), add_weight(), und can_put_and_get() nach Bedarf..

SIEHE AUCH
         move_object(E), drop(A), get(A), prevent_insert(A),
         can_put_and_get(A), add_weight(A)
