PreventInsertLiving()

FUNKTION:
     int PreventInsertLiving(object ob);

DEFINIERT IN:
     /std/container/restrictions.c

ARGUMENTE:
     ob
          Das Living, das in den Behaelter eingefuegt werden soll.

BESCHREIBUNG:
     Mit dieser Funktion kann ein Behaelter pruefen, ob er das Living ob
     aufnehmen moechte oder nicht.

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

BEMERKUNGEN:
     Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsertLiving() 
     zwar aufgerufen, das Living wird jedoch auf jeden Fall in den Behaelter
     bewegt, unabhaengig vom Rueckgabewert!


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

----------------------------------------------------------------------------
Last modified: 04.08.2007, Zesstra
