remove()
********


FUNKTION
========

   varargs int remove(int silent);


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

   /std/thing/moving.c /std/living/moving.c /std/room/moving.c
   /std/unit.c


ARGUMENTE
=========

   * silent: Falls ungleich 0, so werden beim Zerstoeren keine
     Meldungen ausgegeben.


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

   Die meisten Objekte zerstoeren sich durch den Aufruf von remove()
   selbst.

   Unitobjekte reduzieren P_AMOUNT um U_REQ Einheiten. Will man ein
   Unit- Objekt vollstaendig zerstoeren, ist vor dem Aufruf von
   remove() U_REQ auf P_AMOUNT zu setzen. Wird durch remove() P_AMOUNT
   0, wird das Objekt natuerlich zerstoert.

   Durch Ueberladen dieser Funktion kann man diesen Vorgang noch durch
   die Ausgabe von Meldungen kommentieren, oder irgendwelche Daten
   abspeichern, oder das Zerstoeren ganz verhindern (auf diesem Weg...
   Mit destruct() kann das Objekt immer noch direkt zerstoert werden!)

   ACHTUNG: Wenn ein Objekt durch remove() nicht zerstoert wird,
   koennte das einen Grund haben. Bitte nicht einfach destruct()
   verwenden, das ist nur fuer Notfaelle wie ein buggendes remove().


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

   1, wenn sich das Objekt erfolgreich selbst zerstoert hat, sonst 0.


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

   Nach einem erfolgreichen ::remove() gelten die selben
   Einschraenkungen wie nach einem destruct()!


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

   *../efun/destruct*, U_REQ, P_AMOUNT

Letzte Aenderung: 24.07.2018, Bugfix
