NotifyLeave()
*************


FUNKTION
========

   void NotifyLeave(object ob, object dest);


ARGUMENTE
=========

   ob
        Das Objekt, das aus dem Behaelter entfernt wurde.
   dest
        Das Objekt, in das <ob> bewegt wurde.


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

   Diese Funktion wird im Behaelter aufgerufen, nachdem ein Objekt aus
   besagten Behaelter entfernt wurde.


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

   keiner


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

   Diese Funktion wird nur im Falle unbelebter Objekte gerufen. Fuer
   Lebewesen s. bitte. exit().


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

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

Last modified: 21.05.2012, Zesstra
