locate_objects()

FUNKTION

object *locate_objects(string desc, int info);

DEFINIERT IN

/std/container/restrictions.c

ARGUMENTE

desc
     Die Umschreibung des gesuchten Objektes.

info
     Ist ungleich 0, wenn diese Funktion von /std/living/put_and_get.c
     aus aufgerufen wurde.

BESCHREIBUNG

Diese Funktion erweitert die Funktionalitaet von present_objects()
insofern, als dass es moeglich ist, auch noch Behaelter innerhalb des
Behaelters zu durchsuchen. Das genaue Verhalten haengt von desc ab:

Ist desc von der Form "<id>", so wird das Ergebnis von
present_objects(desc) zurueckgegeben.

Ist desc von der Form "<gesucht> in <id>", so wird in allen Objekten,
die von present_objects("<id>") erfasst wurden,
locate_objects("<desc>") aufgerufen. Zurueckgegeben werden alle auf
diese Weise gefundenen Objekte.

RUeCKGABEWERT

Array von Objekten, die auf die oben geschilderte Art und Weise
ermittelt wurden. Konnte kein Objekt ermittelt werden, wird ein leeres
Array zurueckgegeben.

BEMERKUNGEN

Theoretisch sollte es moeglich sein, ueber desc rekursiv mehrere
Behaelterebenen erfassen zu koennen (etwa mit "schwert in beutel in
beutel in wargon"). In der aktuellen Implementierung klappt das jedoch
nicht; nach dem ersten "in" ist Schluss!

BEISPIELE

Was steckt alles dem Beutel, den der Spieler bei sich traegt?

object *obs;
obs = this_player()->locate_objects("alles in beutel");

Traegt der Spieler keinen Beutel bei sich oder ist dieser leer, so wird
ein leeres Array zurueckgegeben.

SIEHE AUCH

present_objects(), /std/container/restrictions.c

Last modified: Wed May 8 10:20:36 1996 by Wargon