do_wear()
*********


FUNKTION
========

   varargs int do_wear(string str, int silent);


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

   /std/armour/combat.c


ARGUMENTE
=========

   str
        String, der normalerweise dem Parameter des
        "ziehe/trage"-Kommandos entspricht.
   silent
        1, wenn das Anziehen ohne Meldungen durchgefuehrt werden soll.


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

   Wenn sich die Ruestung mit "str" identifizieren laesst, wird versucht,
   sie mittels DoWear() anzuziehen.


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

   1, wenn sich die Ruestung anziehen liess, sonst 0.


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

   do_unwear(), DoWear(), WearFunc(), InformWear(), /std/armour/combat.c

Last modified: Sun Jun 27 22:31:00 1999 by Paracelsus
