
RemoveSpecialDetail()
*********************


VERALTET RemoveSpecialDetail()
==============================


FUNKTION
========

   void RemoveSpecialDetail(string|string* 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 SpecialDetails.

   VERALTET: Bitte RemoveDetail() benutzen.


BEMERKUNGEN
===========

   Uebergibt man fuer keys eine 0, so werden saemtliche SpecialDetails
   entfernt!
   Da intern Details und SpecialDetails im gleichen Mapping verwaltet
   werden, lassen sich mit dieser Funktion auch Details entfernen.
   Man sollte diese Funktion deshalb nicht mehr verwenden, siehe
   AddDetail mit Closures.


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:  AddSpecialDetail(), P_READ_MSG
   Sonstiges: GetDetail(), break_string()

20.01.2015, Zesstra
