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