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
