Wear()
******


FUNKTION
========

   public int Wear(object ob)


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

   /std/living/clothing.c


ARGUMENTE
=========

   object ob
     Die Ruestung oder Kleidung, die angezogen wird.


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

   Das Lebewesen, in dem diese Funktion gerufen wird, zieht die Ruestung
   oder das Kleidungsstueck <ob> an.
   ABER: 'Anziehen' bedeutet in diesem Kontext lediglich, dass die
   Ruestung/Kleidung in P_ARMOURS bzw. 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 oder etwaige Stat-Boni aktiviert.
   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
==========

   WearArmour(), WearClothing(), Unwear(), UnwearArmour(), UnwearClothing()
   P_CLOTHING, P_ARMOURS
   FilterClothing(), FilterArmours()


ZULETZT GEAeNDERT
=================

14.03.2009, Zesstra
