register_modifier()
*******************


FUNKTION
========

   void register_modifier(object modifier)


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

   /std/living/attributes.c


PARAMETER
=========

   modifier   - Objekt mit P_X_ATTR_MOD oder P_M_ATTR_MOD


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

   Registriert einen Modifier im Spieler. Wird durch InsertSensitiveObject
   beziehungsweise beim Anziehen oder Zuecken gerufen.
   Muss nicht direkt gerufen werden. Bei Veraenderungen von Modifikatoren
   sollte stattdessen UpdateAttributes gerufen werden.


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

   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
   SetAttr(), SetAttribute(), SetRealAttribute(), UpdateAttributes(),
   deregister_modifier(), P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
   P_ATTRIBUTES_MODIFIER,P_X_ATTR_MOD, P_M_ATTR_MOD,
   /std/living/attributes.c

13.Jun.2004, Muadib
