blob: 48a03300022c356084ca7cc66a36d9bfaf6bbb52 [file] [log] [blame]
RemoveDetail()
**************
FUNKTION
========
void RemoveDetail(mixed *keys);
DEFINIERT IN
============
/std/thing/description.c
ARGUMENTE
=========
keys
String oder Array von Strings mit den zu entfernenden Details.
BESCHREIBUNG
============
Entfernt die in <keys> angegebenen Details aus der Liste der
vorhandenen Details. Uebergibt man fuer <keys> eine 0, so werden
saemtliche Details entfernt!
BEISPIEL
========
Ein kleines Beispiel, bei dem eine Oeffnung erscheint und wieder
verschwindet, je nachdem, ob man eine Luke oeffnet oder schliesst.
int oeffneLuke(string str);
int schliesseLuke(string str);
...
AddCmd("oeffne", #'oeffneLuke);
AddCmd("schliesse", #'schliesseLuke);
...
int oeffneLuke(string str) {
if(str!="luke" || GetDetail("oeffnung"))
return 0;
AddDetail("oeffnung","Du siehst eine kleine Oeffnung.\n");
return 1;
}
int schliesseLuke(string str) {
if(str!="luke" || !GetDetail("oeffnung"))
return 0;
RemoveDetail("oeffnung"); // Detail wieder entfernen
return 1;
}
BEMERKUNGEN
===========
Da intern Details und SpecialDetails im gleichen Mapping verwaltet
werden, lassen sich mit dieser Funktion auch SpecialDetails
entfernen.
Die Funktion RemoveSpecialDetail() sollte also nicht genutzt werden!
SIEHE AUCH
==========
Setzen: AddDetail(), AddReadDetail(), AddSmells(), AddSounds(),
AddTouchDetail()
Loeschen: RemoveReadDetail(), RemoveSmells(),
RemoveSounds(), RemoveTouchDetail()
Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS,
P_TOUCH_DETAILS, P_SPECIAL_DETAILS
Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
Sonstiges: GetDetail(), break_string()
8. Juli 2011 Gloinson