
RemoveAdjective()
*****************


FUNKTION
========

   void RemoveAdjective(string|string* adj);


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

   /std/thing/description.c


ARGUMENTE
=========

   adj
        String oder Array von String mit den Adjektiven.


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

   Falls einige der vorhandenen Adjektive nicht mehr verwendet werden
   sollen, koennen sie mit dieser Funktion entfernt werden.


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

   keiner


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

   AddAdjective(), RemoveId(), /std/thing/description.c

20.01.2015, Zesstra
