AddSpecialDetail()¶
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