RemoveFixedObject()

FUNKTION:
	void RemoveFixedObject(string filename);

DEFINIERT IN:
	/std/laden.c

ARGUMENTE:
	str
	  Dateiname des Objektes, welches nicht mehr dauerhaft im Laden sein
	  soll.

RUeCKGABEWERT:
        keiner

BESCHREIBUNG:
	Objekte, die mittels der Funktion AddFixedObject() im Laden
	eingebunden werden, sind dort staendig verfuegbar. Um diesen Zustand
	wieder aufzuheben, kann man sie mittels dieser Funktion wieder
	entfernen. Eventuell im Lager befindliche Objekte dieser Art werden
	hierbei nicht zerstoert und koennen durchaus noch gekauft werden,
	bis sie alle sind. Danach gibt es sie dort nicht mehr!

BEISPIELE:
	Im allen Laeden gibt es schon ein Objekt, welches dort
	standardmaessig erhaeltlich ist. Folgende Zeile sorgt dafuer:
	  AddFixedObject("/obj/boerse",80,({"boerse","geldboerse"}));
	Wenn man das in seinem Laden nicht wuenscht, kann man die Geldboerse
	mittels folgender Zeile wieder aus dem Laden loeschen:
	  RemoveFixedObject("/obj/boerse");
	Es ist nicht moeglich, keine oder mehrere Objekte anzugeben, um auf
	diese Weise alle bzw. mehrere Objekte als nicht mehr staendig
	verfuegbar zu markieren.

SIEHE AUCH:
	AddFixedObject(), SetStorageRoom(), /std/store.c

----------------------------------------------------------------------------
Last modified: Thu Jun 18 14:19:19 1998 by Patryn
