| 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 |
| |