WearClothing()
FUNKTION:
     public int WearClothing(object ob) 

DEFINIERT IN:
     /std/living/clothing.c

ARGUMENTE:
     object ob
       Das Kleidungsstuck, das angezogen wird.

BESCHREIBUNG:
     Das Lebewesen, in dem diese Funktion gerufen wird, zieht das
     Kleidungsstueck <ob> an.
     ABER: 'Anziehen' bedeutet in diesem Kontext lediglich, dass die
     Ruestung/Kleidung in P_CLOTHING eingetragen wird. Es finden zur Zeit
     keine Pruefungen statt, ob das Lebewesen den Gegenstand ueberhaupt
     anziehen kann. Genausowenig werden Funktionen wie InformWear() gerufen.

     Die Funktion ist nur dazu gedacht, im Zuge des Anziehens eines Objekts
     von diesem im Lebewesen gerufen zu werden.

RUeCKGABEWERT:
     1, wenn das Anziehen erfolgreich war.
     0 sonst.

BEMERKUNGEN:
     Nicht von Hand aufrufen, es sei denn man weiss genau, was man tut. Und am
     besten auch dann nicht.

SIEHE AUCH:
     Wear(), WearArmour(), Unwear(), UnwearArmour(), UnwearClothing()
     P_CLOTHING, P_ARMOURS
     FilterClothing(), FilterArmours()

ZULETZT GEAeNDERT:
14.03.2009, Zesstra
