UpdateResistanceStrengths()
***************************


FUNKTION
========

   public void UpdateResistanceStrengths()


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

   /std/living/combat.c


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

   Die Funktion wird intern mehrmals (durch Defend, AddResistanceModifier
   und RemoveResistanceModifier) aufgerufen. In ihr wird das Resistenz-
   mapping zusammengerechnet und Eintraege geloescht, deren Eintraege
   invalid sind oder deren setzende Objekte geloescht wurden.


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

   keiner


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

   Berechnung:        CheckResistance(), Defend()
   Modifikatoren:     AddResistanceModifier, RemoveResistanceModifier(),
                      P_RESISTANCE_MODIFIER
   simple Resistenz:  P_RESISTANCE, P_VULNERABILITY
   Hauptmapping:      P_RESISTANCE_STRENGTHS
   anderes:           balance, /std/armour/combat.c, /std/living/combat.c

29.Apr 2002, Gloinson@MG
