DoWield()

FUNKTION:
     varargs int DoWield(int silent);

DEFINIERT IN:
     /std/weapon/combat.c

ARGUMENTE:
     silent
          Ungleich 0, wenn die Waffe ohne Meldungen gezueckt werden soll.

BESCHREIBUNG:
     Es wird versucht, die Waffe zu zuecken. Hat man schon eine Waffe
     gezueckt, so wird versucht, diese wegzustecken. Klappt das nicht, kann
     die Waffe nicht gezueckt werden.

RUeCKGABEWERT:
     0, wenn man die Waffe gar nicht bei sich traegt, ansonsten 1.

BEMERKUNGEN:
     Anhand des Rueckgabewertes laesst sich nicht entscheiden, ob die Waffe
     sich erfolgreich zuecken liess!

     Gruende, warum sich eine Waffe nicht zuecken lassen kann, sind
     folgende:
        o Man traegt sie nicht bei sich (oder sie steckt in einem Beutel
          o.ae.).
        o Man hat sie schon gezueckt.
        o Falls definiert: WieldFunc() gibt 0 zurueck.
        o Man ist nicht geschickt genug (das haengt von der Waffenklasse
          ab).
        o Eine schon gezueckte Waffe laesst sich nicht wegstecken.
        o Die Waffenklasse ist hoeher als erlaubt.
        o Man hat nicht genug Haende frei.

SIEHE AUCH:
     WieldFunc(), InformWield(), P_EQUIP_TIME, /std/weapon.c

----------------------------------------------------------------------------
Last modified: Wed Apr 08 10:25:00 2004 by Muadib
