put_obj()
=========

FUNKTION
--------
::

    int put_obj(object ob, object where)

DEFINIERT IN
------------
::

    /std/living/put_and_get.c

ARGUMENTE
---------
::

    ob      Das Objekt, das irgendwo hineingelegt werden soll.
    where   Das (tote) Objekt, in das etwas hineingelegt werden soll.

BESCHREIBUNG
------------
::

    Das Lebewesen, in dem diese Funktion aufgerufen werden soll, legt
    den angegebenen Gegenstand (ob) in das angegebene Zielobjekt (where).
    Dabei sollte es sich bei where um einen Container/Raum handeln.
    Ist where ein Lebewesen, verwendet man besser give_obj().

RUeCKGABEWERT
-------------
::

    1, wenn das Objekt weggelegt wurde oder dies nicht moeglich war. (in diesem
    Fall wird auch direkt eine Textausgabe ausgegeben)
    0 sonst, in diesem Fall wird in notify_fail eine passende Ausgabe
    plaziert

SIEHE AUCH
----------
::

    drop_obj(), find_obs(), give_obj(), pick_obj(), /std/living/put_and_get.c

