RemoveFromMenu()
****************


FUNKTION
========

   int RemoveFromMenu(mixed ids)


DEFINIERT IN
============

   /std/pub.c


ARGUMENTE
=========

   ids - string oder string*
         String oder Array von Strings, mit denen sich die Speise bzw.
         das Getraenk beim Bestellen ansprechen laesst.


RUECKGABEWERT
=============

   int - Anzahl entfernter Einzelmenueeintraege


BESCHREIBUNG
============

   Mit dieser Methode kann man id-basiert Speisen und Getraenke
   wieder von der Karte entfernen (wenn zB nur saisonbasiert
   bestimmte Dinge angeboten werden sollen).


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

   - sich zwischen zwei Speisen ueberschneidende IDs fuehren zu
     undefiniertem Verhalten!
   - bei Benutzung von RemoveFromMenu sollte man in Delay-Speisen oder
     -Getraenken auf die Nutzung vom ident-Parameter in den
     Serviernachrichten verzichten (es sei, man weiss was man tut)


SIEHE AUCH
==========

   AddToMenu(), AddFood(), AddDrink(), /sys/pub.h

15. Februar 2009 Gloinson
