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