
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
