UpdateAttributes()
******************


FUNKTION
========

   void UpdateAttributes()


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

   /std/living/attributes.c


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

   Rechnet damit alle Attributmodifier der im Inventory befindlichen
   (P_X_ATTR_MOD, P_X_HEALTH_MOD) und getragenen/gezueckten
   (P_M_HEALTH_MOD, P_M_ATTR_MOD) Objekte und aller Attributoffsets
   zusammen und speichert sie in einer intern fuer Attribute
   verwendete Variablen.
   Berechnet darauf basierend HP und SP neu.



   Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
   Attributveraenderungen werden im Heartbeat in der Funktion
   attribute_hb ueberprueft.


BEMERKUNGEN
===========

   Sollte nach Einbringen neuer Modifikatorobjekte am Living gerufen
   werden.


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

   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
   SetTimedAttrModifier(), QueryTimedAttrModifier(),
   DeleteTimedAttrModifier(),
   P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c

09.05.2007 by Zesstra
