AddSpecialDetail()
==================

VERALTET AddSpecialDetail()
---------------------------
::

FUNKTION
--------
::

    void AddSpecialDetail(string|string* keys, string func);

DEFINIERT IN
------------
::

    /std/thing/description.c

ARGUMENTE
---------
::

    keys
      String oder Array von Strings mit den Namen der Details.
    func
      String mit dem Namen der Funktion, die zur Auswertung aufgerufen
      wird.

BESCHREIBUNG
------------
::

    Es wird ein Detail hinzugefuegt, dessen Inhalt nicht von vornherein
    feststeht, sondern von aeusseren Bedingungen abhaengt. Zu diesem
    Zweck wird immer, wenn dieses Detail untersucht wird, die Funktion
    func aufgerufen, um den aktuellen Zustand des Details zu bestimmen.
    Der Funktion wird als Parameter das Schluesselwort uebergeben, mit
    dem das Detail untersucht wurde.

    VERALTET: Bitte AddDetail mit Closure benutzen.

BEISPIELE
---------
::

    Ein zustandsabhaengiges Detail:

      int hebel_betaetigt;
      string hebel(string key);
      ...
      // ALT: AddSpecialDetail( ({ "hebel", "schalter" }), "hebel" );
      AddDetail(({ "hebel", "schalter" }), #'hebel );
      ...
      string hebel(string key)
      { if(hebel_betaetigt)
          return "Der "+capitalize(key)+" steht auf EIN.\n";
        else
          return "Der "+capitalize(key)+" steht auf AUS.\n";
      }

    Man erhaelt verschiedene Ergebnisse beim Untersuchen, je nachdem
    ob das Flag hebel_betaetigt gesetzt ist oder nicht.

BEMERKUNG
---------
::

    Intern werden Details und SpecialDetails im selben Mapping
    verwaltet.
    Man kann statt dieser Funktion deshalb auch AddDetail mit Closures
    nutzen.

SIEHE AUCH
----------
::

    Setzen :   AddDetail(), AddReadDetail(), AddSmells(), AddSounds(),
               AddTouchDetail()
    Loeschen:  RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
               RemoveSounds(), RemoveTouchDetail()
    Daten:     P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS
    Veraltet:  RemoveSpecialDetail(), P_READ_MSG
    Sonstiges: GetDetail(), break_string()

20.01.2015, Zesstra