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