SYNOPSIS
object first_inventory()
object first_inventory(string ob)
object first_inventory(object ob)
BESCHREIBUNG
Liefert das erste Objekt im Inventory von <obj>, wobei <obj> entweder
ein Objekt oder der Name eines Objekts ist. Wenn <obj> nicht angegeben
wird, wird standardmaessig this_object() verwendet.
BEISPIELE
Diese Efun verwendet man am haeufigsten im folgenden Kontext:
for(obj=first_inventory(container);obj;obj=next_inventory(obj))
{
<irgendwelcher Code>
}
Wer solche Aufrufe haeufig verwendet, findet es moeglicherweise
sinnvoll, ein Praeprozessor-Makro zu verwenden:
#define FORALL(x, y) for(x=first_inventory(y);x;
x=next_inventory(x))
Damit vereinfacht sich das obige Beispiel zu:
FORALL(obj, container)
{
<irgendwelcher Code>
}
ACHTUNG: Wenn das Objekt <obj> innerhalb von <irgendwelcher Code>
bewegt wird, liefert next_inventory() ein Objekt aus dem neuen
Inventory von <obj>. Auch sollte next_inventory() nicht fuer
zerstoerte Objekte <obj> aufgerufen werden. Fuer den Fall, dass
<obj> bewegt und/oder zerstoert wird, ist folgende Loesung
vorzuziehen:
for(obj=first_inventory(container);obj;)
{
next=next_inventory(obj);
<irgendwelcher Code mit Moves oder Removes>
obj=next;
}
SIEHE AUCH
next_inventory(E), all_inventory(E), environment(E), deep_inventory(E)
|