Manpage in rST ueberfuehrt

Change-Id: I946f9dc28b3dd72904f6e5e08ee20de5493f8ab5
diff --git a/doc/sphinx/lfun/init.rst b/doc/sphinx/lfun/init.rst
index a2855e5..ebd7191 100644
--- a/doc/sphinx/lfun/init.rst
+++ b/doc/sphinx/lfun/init.rst
@@ -3,89 +3,88 @@
 
 FUNKTION
 --------
-::
 
-	void init();
+  public varargs void init(object origin);
 
 DEFINIERT IN
 ------------
-::
 
-	/std/room/description.c
+  /std/room/description.c
 
 ARGUMENTE
 ---------
-::
 
 	keine
 
 BESCHREIBUNG
 ------------
-::
 
-	init() wird immer dann aufgerufen, wenn ein lebendes Objekt in die
-	Naehe anderer Objekte bewegt wird oder ein nicht lebendiges Objekt
-	in die Naehe von Lebewesen gelangt. init() wird dabei in allen
-	Objekten aufgerufen, bei denen es notwendig ist.
+  init() wird immer dann aufgerufen, wenn ein lebendes Objekt in die
+  Naehe anderer Objekte bewegt wird oder ein nicht lebendiges Objekt
+  in die Naehe von Lebewesen gelangt. init() wird dabei in allen
+  Objekten aufgerufen, bei denen es notwendig ist.
 
-	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.
+  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(). 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.
 
 RUeCKGABEWERT
 -------------
-::
 
-	keiner
+  keiner
 
 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
 
 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:
+  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:
 
-	  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
+    2. 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:
+  Gelangt dagegen ein nichtlebendiges Objekt nach D, so sieht das Ganze
+  wie folgt aus:
 
-	  X->init();    // this_player() == L1
+    1. X->init();    // this_player() == L1
 
 SIEHE AUCH
 ----------
-::
 
-	exit(), AddCmd(), add_action(),
-  NotifyInsert()
+  :doc:`exit`, :doc:`AddCmd`, :doc:`NotifyInsert`
 
-Last modified: 04.08.2007, Zesstra
+  add_action(E)
+
+Last modified: 07.03.2018, Zesstra