blob: 24f8f642e76fa4238a835cb2ce0fc17a912f70b2 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddSpecialDetail()
2==================
3
4VERALTET AddSpecialDetail()
5---------------------------
6::
7
8FUNKTION
9--------
10::
11
12 void AddSpecialDetail(string|string* keys, string func);
13
14DEFINIERT IN
15------------
16::
17
18 /std/thing/description.c
19
20ARGUMENTE
21---------
22::
23
24 keys
25 String oder Array von Strings mit den Namen der Details.
26 func
27 String mit dem Namen der Funktion, die zur Auswertung aufgerufen
28 wird.
29
30BESCHREIBUNG
31------------
32::
33
34 Es wird ein Detail hinzugefuegt, dessen Inhalt nicht von vornherein
35 feststeht, sondern von aeusseren Bedingungen abhaengt. Zu diesem
36 Zweck wird immer, wenn dieses Detail untersucht wird, die Funktion
37 func aufgerufen, um den aktuellen Zustand des Details zu bestimmen.
38 Der Funktion wird als Parameter das Schluesselwort uebergeben, mit
39 dem das Detail untersucht wurde.
40
41 VERALTET: Bitte AddDetail mit Closure benutzen.
42
43BEISPIELE
44---------
45::
46
47 Ein zustandsabhaengiges Detail:
48
49 int hebel_betaetigt;
50 string hebel(string key);
51 ...
52 // ALT: AddSpecialDetail( ({ "hebel", "schalter" }), "hebel" );
53 AddDetail(({ "hebel", "schalter" }), #'hebel );
54 ...
55 string hebel(string key)
56 { if(hebel_betaetigt)
57 return "Der "+capitalize(key)+" steht auf EIN.\n";
58 else
59 return "Der "+capitalize(key)+" steht auf AUS.\n";
60 }
61
62 Man erhaelt verschiedene Ergebnisse beim Untersuchen, je nachdem
63 ob das Flag hebel_betaetigt gesetzt ist oder nicht.
64
65BEMERKUNG
66---------
67::
68
69 Intern werden Details und SpecialDetails im selben Mapping
70 verwaltet.
71 Man kann statt dieser Funktion deshalb auch AddDetail mit Closures
72 nutzen.
73
74SIEHE AUCH
75----------
76::
77
78 Setzen : AddDetail(), AddReadDetail(), AddSmells(), AddSounds(),
79 AddTouchDetail()
80 Loeschen: RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
81 RemoveSounds(), RemoveTouchDetail()
82 Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS
83 Veraltet: RemoveSpecialDetail(), P_READ_MSG
84 Sonstiges: GetDetail(), break_string()
85
8620.01.2015, Zesstra
87