is_class_member()
*****************


FUNKTION
========

   int is_class_member(string|string* class);


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

   /std/thing/description.c


ARGUMENTE
=========

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


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

   Es wird getestet, ob das Objekt in eine der in class angegebenen
   Klassen faellt. In diesen Test werden die folgenden Eigenschaften des
   Objektes einbezogen:

     1. Die Rasse des Objektes (bei Lebewesen),
     2. die IDs des Objektes und
     3. die explizit angegebenen Klassen des Objektes.
     4. einigen impliziten Klassen, die sich aus den Klassen in 3 ergeben.

   Die moeglichen Klassen sind in /sys/class.h definiert. Momentan stehen
   folgende Klassen zur Verfuegung:

   CL_AMMUNITION
        Das Objekt eignet sich als Munition.
   CL_ANIMAL
        Das Objekt ist ein Tier.
   CL_ARACHNID
        Das Objekt in ein Spinnenwesen.
   CL_BIGBANG
        Dieses Objekt kann mehreren Lebewesen auf einmal Schaden zufuegen.
   CL_BIRD
        Ein Vogel.
   CL_CRAWLING
        Dieses Wesen bewegt sich kriechend.
   CL_CURSE
        Das Objekt ist ein Fluch (zB. ein Sprachfluch).
   CL_DEMON
        Bei dem Objekt handelt es sich um einen Daemon.
   CL_DISEASE
        Eine Krankheit.
   CL_DRAGON
        Ein Drache.
   CL_DWARF
        Fuer unsere kleinen Gaeste...
   CL_ELF
        Elfen aller Art.
   CL_ELEMENTAL
        Ein Elementar irgendeiner Art. Material setzen waere angebracht.
   CL_EXPLOSIVE
        Bei dem Objekt handelt es sich um einen Sprengstoff.
   CL_FELINE
        Felinen und andere katzenartigen Lebewesen.
   CL_FISH
        Fische - keine Meeressaeuger!
   CL_FLYING
        Dieses Wesen bewegt sich fliegend.
   CL_FROG
        Froesche - auch gefroschte Spieler.
   CL_GHOST
        Geister und geisterhafte Wesen.
   CL_GHOUL
        Ein Ghoul. Er faellt automatisch in die Klasse CL_UNDEAD.
   CL_GIANT
        Ein riesiges Lebewesen.
   CL_GNOME
        Ein Gnom.
   CL_GOBLIN
        Ein Goblin.
   CL_HOBBIT
        Ein Hobbit.
   CL_HOBGOBLIN
        Ein Hobgoblin. Er faellt automatisch auch in die Klasse CL_GOBLIN.
   CL_HUMAN
        Ein Mensch.
   CL_INORGANIC
        Anorganische Lebewesen wie Metallmonster
   CL_INSECT
        Insekten (Nicht mit Spinnen verwechseln)
   CL_LIVING
        Lebewesen im allgemeinen.
   CL_MAMMAL
        Saeugetiere.
   CL_MAMMAL_LAND
        Landsaeugetiere
   CL_MAMMAL_WATER
        Meeressaeuger.
   CL_ORC
        Ein Ork.
   CL_PLANT
        Pflanzen und pflanzenartige Monster.
   CL_POISON
        Das Objekt ist selbst ein Gift
   CL_POISONOUS
        Das Objekt kann einen Spieler/NPC vergiften.
   CL_REPTILE
        Reptilien.
   CL_SHADOW
        Schattenwesen.
   CL_SKELETON
        Ein Skelett. Es faellt automatisch in die Klasse CL_UNDEAD.
   CL_SLIME
        Fuer Einzeller und aehnliches Schleimgetier
   CL_SNAKE
        Schlangen.
   CL_SWIMMING
        Dieses Wesen bewegt sich schwimmend.
   CL_TROLL
        Ein Troll.
   CL_UNDEAD
        Ein untotes Lebewesen.
   CL_WALKING
        Dieses Wesen bewegt sich gehend.
   CL_VAMPIRE
        Ein Vampir. Er faellt automatisch in die Klasse CL_UNDEAD.
   CL_ZOMBIE
        Ein Zombie. Er faellt automatisch in die Klasse CL_UNDEAD.

   Implizite Klassen:
   Bei einigen Klassen wird im AddClass() automatisch eine oder mehrere
   weiterer Klassen hinzugefuegt und im RemoveClass() die entsprechenden
   impliziten Klassen auch automatisch entfernt.
   Wuenscht man diese impliziten Klassen nicht, muss man nach dem AddClass()
   diese mittels eines entsprechenden RemoveClass() entfernen.
   Die impliziten Klassen einer Klasse lassen sich mit Hilfe der Funktion
   QueryImplicitClasses() in CLASSDB herausfinden:
     CLASSDB->QueryImplicitClasses(...)
   Momentan sind dies:
   CL_ZOMBIE:       CL_UNDEAD
   CL_SKELETON:     CL_UNDEAD
   CL_GHOUL:        CL_UNDEAD
   CL_VAMPIRE:      CL_UNDEAD
   CL_HOBGOBLIN:    CL_GOBLIN
   CL_MAMMAL_LAND:  CL_MAMMAL, CL_ANIMAL
   CL_MAMMAL_WATER: CL_MAMMAL, CL_ANIMAL
   CL_SNAKE:        CL_REPTILE
   CL_ARACHNID:     CL_ANIMAL
   CL_BIRD:         CL_ANIMAL
   CL_FISH:         CL_ANIMAL
   CL_FROG:         CL_ANIMAL
   CL_INSECT:       CL_ANIMAL
   CL_MAMMAL:       CL_ANIMAL
   CL_REPTILE:      CL_ANIMAL
   CL_SNAKE:        CL_ANIMAL


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

   1, wenn das Objekt in eine der angegebenen Klassen faellt, ansonsten 0.


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

   AddClass(), RemoveClass(), /std/thing/description.c
   P_CLASS

20.01.2015, Zesstra
