Update doc/efun/ aus Driversourcen.
Manpages der efuns aktualisiert, neue Manpages hinzugefuegt.
Change-Id: I7cc91684269ff56d1aef47d5c5e7c87f7fd531dc
diff --git a/doc/efun/present b/doc/efun/present
index 2a9d0be..7c9592a 100644
--- a/doc/efun/present
+++ b/doc/efun/present
@@ -7,71 +7,64 @@
object present(object ob)
object present(object ob, object env)
-BESCHREIBUNG
- Wenn ein Objekt mit der Id <str> sich im Inventar oder in der Umgebung
- von this_object() befindet, wird es zurueck geliefert.
+DESCRIPTION
+ This efun checks if an object is present in a given environment.
+ The object is identified by id <str> or by an object <ob>. This
+ latter form of the efun can be used as a fast way to test for the
+ presence of a known object.
+
+ When searching objects by id, the efun by default returns the first
+ object found matching the id. In order to search for other than the
+ first object, a number can be specified either directly as the
+ argument <n>, or implicetely inside the <str> in the form "<id>
+ <n>".
- Ist das Argument <n> gegeben, wird das n-te Objekt mit Namen <id>
- zurueck geliefert. Das heisst, der Driver fuehrt fuer alle Objekte
- im Inventar und in der Umgebung von this_object() die Funktion
- id(str) aus, bis ein Treffer erzielt wird (wenn ueberhaupt).
+ By default, the efun searches first in the inventory of
+ this_object(), then in its environment. However, if <env> is given,
+ the efun searches just inside <env>.
- Ist <n> nicht gegeben, aber <str> hat die Form "<id> <n>" , wird
- ebenfalls das n-te Objekt mit Namen <id> zurueckgeliefert.
+ When searching both inventory and environment of this_object(),
+ the numbering is applied linear over both spaces (see examples).
- <str> kann auch ein Objekt (anstatt einer Id) sein, was den Test
- schneller und einfacher macht.
+ The driver identifies objects by calling the lfun id() in each
+ object.
- Das Argument <env> ist optional. <env> gibt das Objekt an, in welchem
- nach <str> gesucht wird. Nur das Inventory von <env> wird durchsucht,
- nicht jedoch dessen Umgebung.
-
-ANMERKUNGEN
- Wenn die efun sowohl in this_object() als auch dessen Umgebung
- sucht, werden, soweit es die Numerierung betrifft, die beiden
- Umgebungen zusammenhaengend betrachtet.
-
-BEISPIELE
+EXAMPLES
present("chest");
- --> findet das erste 'chest' Objekt
+ --> returns the first 'chest' object in this object.
- present("chest 2");
- --> findet das zweite 'chest' Objekt
+ present("chest 2")
+ --> returns the second 'chest' object in this object.
- present("chest 2", 1);
- --> findet das erste 'chest 2' Objekt
+ present("chest 2", 1)
+ --> returns the first 'chest 2' object in this object.
- Wenn sich eine "chest" im this_object() befindet, und zwei
- ausserhalb:
- present("chest", 1) -> findet die chest im Objekt
- present("chest", 2) -> findet die erste chest ausserhalb
- present("chest", 3) -> findet die zweite chest ausserhalb
+ Assume there is one "chest" inside the current object, and
+ two in its environment:
+ present("chest", 1) -> returns the chest inside
+ present("chest", 2) -> returns the first chest outside
+ present("chest", 3) -> returns the second chest outside
- Wenn ein Objekt die Forum "<id> <n>" in Verbindung mit einem selbst
- ueber add_action() gesetzten Verb unterstuetzen soll (damit z. B.
- "oeffne Kiste 3" funktioniert), kann das folgendermassen geloest
- werden:
+ A typical 2.4.5-implementation of the "do <id> <n>" command style
+ is:
- void init() { add_action("oeffne_kiste", "oeffne"); }
+ void init() { add_action("open_chest", "open"); }
- int oeffne_kiste(string str)
- {
- if(present(str) != this_object() )
- {
- return 0; /* nicht diese Kiste */
- ...
- }
+ int open_chest (string str) {
+ if (present (str) != this_object ())
+ return 0; /* Not this chest */
+ ...
}
-GESCHICHTE
- LDMud 3.2.11/3.3.610 fuehrte die (str, n)-Form ein.
- LDMud 3.3.713 aenderte die Numerierung wenn sowohl Inventory
- als auch Umgebung durchsucht werden. In der vorherigen
- Implementierung wurde eine Numerierung auf beiden Umgebungen
- einzeln angewandt, was zur Folge hatte, dass niedere Objekte
- in der aeusseren Umgebung nicht gefunden werden koennten, da
- sie von den Objekten in Inneren verdeckt wurden.
-SIEHE AUCH
- move_object(E), environment(E), this_object(E), present_clone(E),
+HISTORY
+ LDMud 3.2.11/3.3.610 introduced the (str, n) argument form.
+ LDMud 3.3.713 modified the <n> search behaviour so that the
+ numbering is applied over both inventory and environment
+ together. Before, the numbering was individual in each
+ space, leading to situations where low-numbered objects in the
+ environment were hidden by those in the inventory.
+
+SEE ALSO
+ move_object(E), environment(E), this_object(E), present_clone(E)
id(A), init(A)