NotifyRemove()
==============

FUNKTION
--------
::

     void NotifyRemove(object ob);

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

     ob
          Das Objekt, das aus dem Behaelter entfernt wurde.

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

     Diese Funktion wird im Behaelter aufgerufen, wenn ein Objekt im
     besagten Behaelter zerstoert wird.

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

     keiner

BEMERKUNGEN
-----------
::

     Wird nicht gerufen, wenn ein Spielerobjekt zerstoert wird.

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

    NotifyLeave(), NotifyInsert(), PreventInsert(), PreventLeave(), move(),
    NotifyMove(), PreventMove(),
    BecomesNetDead()


Last modified: 04.08.2007, Zesstra

