AddClass()
==========

FUNKTION
--------
::

     void AddClass(string|string* class);

DEFINIERT IN
------------
::

     /std/thing/description.c

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

     string/string* class	- String oder Stringarray der Klasse(n)

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

     Dem Objekt werden weitere Klassifizierungen hinzugefuegt.

     Die allgemein verfuegbaren Klassen sind unter /sys/class.h definiert.

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

     Vor dem 7. Nov 2012 pruefte is_class_member() auch die P_IDS. Damit war
     zB ein AddId("daemon") gleichbedeutend einem AddClass(CL_DEMON).

     Bitte prueft eure Objekte (NPCs, Krankheiten, Gifte, ...) auf korrekte
     Klassifizierung.

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

     RemoveClass(), is_class_member()
     P_CLASS

20.01.2015, Zesstra

