blob: 2d3e698f211a43050f7f9d1af7456da202bcc41c [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001AddSpecialDetail()
2******************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005VERALTET AddSpecialDetail()
6===========================
MG Mud User88f12472016-06-24 23:31:02 +02007
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009FUNKTION
10========
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012 void AddSpecialDetail(string|string* keys, string func);
MG Mud User88f12472016-06-24 23:31:02 +020013
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015DEFINIERT IN
16============
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018 /std/thing/description.c
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020
21ARGUMENTE
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
30
31BESCHREIBUNG
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
43
44BEISPIELE
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
65
66BEMERKUNG
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
74
75SIEHE AUCH
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()
MG Mud User88f12472016-06-24 23:31:02 +020085
8620.01.2015, Zesstra