PreventLeaveLiving()
********************


FUNKTION
========

   int PreventLeaveLiving(object ob, mixed dest);


DEFINIERT IN
============

   /std/container/restrictions.c


ARGUMENTE
=========

   ob
        Das Living, das aus dem Behaelter genommen werden soll.
   dest
        Das Ziel in das das Living ob bewegt werden soll.


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

   Mit dieser Funktion kann ein Behaelter pruefen, ob er das Living ob
   sich bewegen lassen moechte oder nicht.


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

   0, wenn das Living bewegt werden kann; ein Wert groesser als 0
   zeigt an, dass das Living nicht bewegt werden soll.


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

   Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventLeave() zwar
   aufgerufen, das Living wird jedoch auf jeden Fall aus dem Behaelter
   bewegt, unabhaengig vom Rueckgabewert!


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

   PreventInsertLiving(), /std/container/restrictions.c
   PreventMove(), PreventLeave(), PreventInsert(),
   NotifyMove(), NotifyLeave(), NotifyInsert(), NotifyRemove(),
   move(), exit(), init(),
   InitAttack, ExitAttack()

Last modified: 04.08.2007, Zesstra
