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