NotifyInsert()
**************


FUNKTION
========

   void NotifyInsert(object ob, object oldenv);


ARGUMENTE
=========

   ob
        Das Objekt, das in den Behaelter eingefuegt wurde.
   oldenv
        Das Objekt, aus dem <ob> kam.


BESCHREIBUNG
============

   Diese Funktion wird im Behaelter aufgerufen, nachdem ein Objekt in
   besagten Behaelter hinein bewegt wurde.


RUeCKGABEWERT
=============

   keiner


BEMERKUNGEN
===========

   Diese Funktion wird nur im Falle unbelebter Objekte gerufen. Fuer
   Lebewesen siehe init().


SIEHE AUCH
==========

   NotifyLeave(), PreventInsert(), PreventLeave(), move(), NotifyRemove()
   exit(), init(), NotifyMove(), PreventMove()

Last modified: 21.05.2012, Zesstra
