Update fuer automatisch erzeugte Files.

Change-Id: I4ca905ed2b82c336aed038d8aa23c9e5e9281e18
diff --git a/doc/lfun/init b/doc/lfun/init
index 481eec2..813c8f3 100644
--- a/doc/lfun/init
+++ b/doc/lfun/init
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   void init();
+   public varargs void init(object origin);
 
 
 DEFINIERT IN
@@ -18,7 +18,9 @@
 ARGUMENTE
 =========
 
-   keine
+   object origin
+      Ursprungsumgebung der Bewegung / letzte Umgebung des Lebewesen
+      (sofern existent)
 
 
 BESCHREIBUNG
@@ -32,12 +34,32 @@
    Der Hauptzweck dieser Funktion besteht darin, den Objekten
    untereinander ihre jeweiligen Befehle zugaenglich zu machen.
    Waehrend dies in anderen MudLibs durch eine Reihe von
-   add_action()-Aufrufen im Rumpf von init() geschah, geschieht dies in
-   der MG-MudLib bei Objekten, die /std/thing/commands.c erben
-    (das sind zB. alle Standardobjekte) quasi automatisch
-    (dort werden die Befehle dann per AddCmd() im create() angemeldet,
-     man spart sich die Implementierung von init() und dem Mud somit
-     Speicher). Der andere Weg ist aber natuerlich immer noch moeglich.
+   add_action()-Aufrufen im Rumpf von init() geschah, geschieht dies
+   in der MG-MudLib bei Objekten, die /std/thing/commands.c erben (das
+   sind zB. alle Standardobjekte) quasi automatisch (dort werden die
+   Befehle dann per AddCmd() im create() angemeldet, man spart sich
+   die Implementierung von init(). Der andere Weg ist aber natuerlich
+   immer noch moeglich.
+
+   Der Ablauf der init()-Kette ist wie folgt:
+
+      1. Ist das Objekt X, welches ins Zielobjekt D bewegt wurde,
+         ein Lebewesen, so wird in D init() aufgerufen, wobei
+         this_player() auf X gesetzt ist.
+
+      2. Dann wird fuer jedes Objekt C in D folgendes ausgefuehrt:
+
+         * Ist C ein Lebewesen, dann wird init() in X aufgerufen,
+           wobei this_player() auf C gesetzt ist.
+
+         * Ist X ein Lebewesen, dann wird init() in C aufgerufen,
+           wobei this_player() auf X gesetzt ist.
+
+      3. Schliesslich wird in dem Fall, dass D lebendig ist, in X
+         init() aufgerufen, wobei this_player() auf D gesetzt ist.
+
+   Das Argument <origin> kann genutzt werden, um herauszufinden, wo
+   das Lebewesen nun eigentlich herkam.
 
 
 RUeCKGABEWERT
@@ -49,43 +71,44 @@
 BEMERKUNGEN
 ===========
 
-   Der Ablauf der init()-Kette ist wie folgt:
-   o Ist das Objekt X, welches ins Zielobjekt D bewegt wurde, ein
-     Lebewesen, so wird in D init() aufgerufen, wobei this_player() auf
-     X gesetzt ist.
-   o Dann wird fuer jedes Objekt C in D folgendes ausgefuehrt:
-     + Ist C ein Lebewesen, dann wird init() in X aufgerufen, wobei
-       this_player() auf C gesetzt ist.
-     + Ist X ein Lebewesen, dann wird init() in C aufgerufen, wobei
-     this_player() auf X gesetzt ist.
-   o Schliesslich wird in dem Fall, dass D lebendig ist, in X init()
-     aufgerufen, wobei this_player() auf D gesetzt ist.
+   * Wenn man init() ueberschreibt und vergisst, in etwaigen
+     geerbten Programmen das init() zu rufen, resultiert das in
+     schweren Bugs
+
+   * Das Argument <origin> gab es frueher nicht und es ist
+     weitgehend optional. Die Standardlib uebergibt es, aber nicht
+     alle (speziell) aeltere Programme uebergeben es weiter an ihre
+     geerbten init().
 
 
 BEISPIELE
 =========
 
    D sei ein Raum, in dem sich das Lebewesen L1 sowie die Gegenstaende
-   N1 und N2 befinden.
-   Betritt ein Spieler X diesen Raum, so werden folgende init()s
-   aufgerufen:
+   N1 und N2 befinden. Betritt ein Spieler X diesen Raum, so werden
+   folgende init()s aufgerufen:
 
-     D->init();  // this_player() == X
-     X->init();  // this_player() == L1
-     L1->init(); // this_player() == X
-     N1->init(); // this_player() == X
-     N2->init(); // this_player() == X
+      1. D->init();  // this_player() == X
 
-   Gelangt dagegen ein nichtlebendiges Objekt nach D, so sieht das Ganze
-   wie folgt aus:
+      2. X->init();  // this_player() == L1
 
-     X->init();    // this_player() == L1
+      3. L1->init(); // this_player() == X
+
+      4. N1->init(); // this_player() == X
+
+      5. N2->init(); // this_player() == X
+
+   Gelangt dagegen ein nichtlebendiges Objekt nach D, so sieht das
+   Ganze wie folgt aus:
+
+      1. X->init();    // this_player() == L1
 
 
 SIEHE AUCH
 ==========
 
-         exit(), AddCmd(), add_action(),
-   NotifyInsert()
+   *exit()*, *AddCmd()*, *NotifyInsert()*
 
-Last modified: 04.08.2007, Zesstra
+   add_action(E)
+
+Last modified: 07.03.2018, Zesstra