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