Gesammelte Doku-Update unbekannter Herkunft

Mal wieder ein Sammel-Commit von Dingen, die niemand
committet hat.

Change-Id: I6564091f0f3c0a708247c85973bfcf5c0e23f1da
diff --git a/doc/sphinx/lfun/AddCmd.rst b/doc/sphinx/lfun/AddCmd.rst
index ba298eb..001778f 100644
--- a/doc/sphinx/lfun/AddCmd.rst
+++ b/doc/sphinx/lfun/AddCmd.rst
@@ -1,25 +1,19 @@
 AddCmd()
 ========
 
-AddCmd(L)
----------
-::
-
 FUNKTION
 --------
-::
 
     varargs void AddCmd(mixed cmd, mixed func, [mixed flag, [mixed id]]);
 
 DEFINIERT IN
 ------------
-::
+
 
     /std/thing/commands.c
 
 ARGUMENTE
 ---------
-::
 
     cmd
        Verben, auf die reagiert werden soll
@@ -41,14 +35,14 @@
 
 BESCHREIBUNG
 ------------
-::
 
     Wenn ein Spieler im Einflussbereich des Objektes das Verb benutzt,
     wird die entsprechende Funktion im Objekt aufgerufen:
-    - die Verben sollten Imperative sein
-    - die Funktion muss 1 fuer ERFOLG (und FPs!) und 0 sonst zurueckgeben
+
+    * die Verben sollten Imperative sein
+    * die Funktion muss 1 fuer ERFOLG (und FPs!) und 0 sonst zurueckgeben
       (sonst werden evtl. weitere Funktionen mit diesem Kommandoverb gerufen)
-    - innerhalb der Funktionen koennen Fehlermeldungen fuer den totalen
+    * innerhalb der Funktionen koennen Fehlermeldungen fuer den totalen
       Misserfolg des Kommandos mit notify_fail gesetzt werden
       (anstatt "Wie bitte?")
 
@@ -57,140 +51,153 @@
     Kommandos hinzugefuegt werden.
 
     AddCmd kann das Leben einfacher machen mit:
+
     ### REGELN: ###
-      Bei komplexen Syntaxen kann ein String angegeben werden, der die
-      _notwendigen_ (nicht die erlaubten!) Schluesselworte und deren
-      zulaessige Synonyme beschreibt. Damit kann man sich einen grossen
-      Teil eigener Auswertung ersparen.
+    
+    Bei komplexen Syntaxen kann ein String angegeben werden, der die
+    _notwendigen_ (nicht die erlaubten!) Schluesselworte und deren
+    zulaessige Synonyme beschreibt. Damit kann man sich einen grossen
+    Teil eigener Auswertung ersparen.
 
-      Nur wenn in richtiger Reihenfolge aus JEDER der durch & getrennten
-      Synonymgruppen ein Wort im Spielerkommando enthalten ist, wird
-      die zugehoerige Funktion ausgefuehrt.
+    Nur wenn in richtiger Reihenfolge aus JEDER der durch & getrennten
+    Synonymgruppen ein Wort im Spielerkommando enthalten ist, wird
+    die zugehoerige Funktion ausgefuehrt.
 
-      Trenner sind: | fuer Alternativen
-                    & fuer Konjunktionen
+    Trenner sind: | fuer Alternativen
+                  & fuer Konjunktionen
 
-      Beispiel:
-        "ritz|ritze|schnitz|schnitze&mit&messer|schnitzmesser&"
-        "herz|herzchen&rinde|baumrinde"
-      wuerde z.B. durch
-        "ritz mit dem Messer ein Herz in die Rinde des Baumes"
-        "schnitz mit Messer Herzchen Baumrinde"
-        "schnitz mit meinem Messer Herzchen in die harte Baumrinde"
-      erfuellt werden.
+.. code-block:: pike
 
-      Spezialregelteile sind:
-      - @PRESENT: entspricht einem Objekt in Inv oder Env des Spielers
-      - @ID:      entspricht der ID des kommandobesitzenden Objektes
-                  (wo die Kommandomethode definiert ist, ist noch unwichtig)
-      - @PUT_GET_DROP, @PUT_GET_TAKE, @PUT_GET_NONE:
-                  entsprechend den Filteroptionen fuer find_obs()
-      ACHTUNG: Zusaetzliche Ziffern in Verbindung mit den @-Spezialregeln
-               sind schlecht. @-Regeln versuchen gierig, Objekte exakt im
-               Inventory zu matchen ("objekt 3" anstatt "objekt") und miss-
-               interpretieren daher zB die 4 in "stopf objekt 3 in loch 4" als
-               Teil des Objekt-ID-Strings.
-               Interna: 3 Substrings fuer @PRESENT/@ID ("gruener kristall 2")
-                        5 fuer @PUT... ("kristall 2 in beutel 3")
+    Beispiel:
+      "ritz|ritze|schnitz|schnitze&mit&messer|schnitzmesser&"
+      "herz|herzchen&rinde|baumrinde"
+    wuerde z.B. durch
+      "ritz mit dem Messer ein Herz in die Rinde des Baumes"
+      "schnitz mit Messer Herzchen Baumrinde"
+      "schnitz mit meinem Messer Herzchen in die harte Baumrinde"
+    erfuellt werden.
+
+ 
+    Spezialregelteile sind:
+    
+    * @PRESENT: entspricht einem Objekt in Inv oder Env des Spielers
+    * @ID:      entspricht der ID des kommandobesitzenden Objektes
+                (wo die Kommandomethode definiert ist, ist noch unwichtig)
+    * @PUT_GET_DROP, @PUT_GET_TAKE, @PUT_GET_NONE:
+                entsprechend den Filteroptionen fuer find_obs()
+    ACHTUNG: Zusaetzliche Ziffern in Verbindung mit den @-Spezialregeln
+             sind schlecht. @-Regeln versuchen gierig, Objekte exakt im
+             Inventory zu matchen ("objekt 3" anstatt "objekt") und miss-
+             interpretieren daher zB die 4 in "stopf objekt 3 in loch 4" als
+             Teil des Objekt-ID-Strings.
+             Interna: 3 Substrings fuer @PRESENT/@ID ("gruener kristall 2")
+                      5 fuer @PUT... ("kristall 2 in beutel 3")
 
     ### FEHLERMELDUNGEN (bei Anwendung von Regeln): ###
-      Als dritter Parameter koennen auch Fehlermeldungen fuer jeweils
-      fehlende Synonymgruppen (ausser der ersten - den Kommandoverben)
-      angegeben werden. Sie werden in derselben Reihenfolge (!) wie die
-      Synonymgruppen angegeben.
+    
+    Als dritter Parameter koennen auch Fehlermeldungen fuer jeweils
+    fehlende Synonymgruppen (ausser der ersten - den Kommandoverben)
+    angegeben werden. Sie werden in derselben Reihenfolge (!) wie die
+    Synonymgruppen angegeben.
 
-      Mit nicht von Spielern erfuellbaren Regeln und ^-Fehlermeldungen
-      kann man auch ohne Ausfuehrung einer Funktion Texte an Spieler
-      und Umgebung ausgeben. Siehe dazu AddCmd_bsp.
+    Mit nicht von Spielern erfuellbaren Regeln und ^-Fehlermeldungen
+    kann man auch ohne Ausfuehrung einer Funktion Texte an Spieler
+    und Umgebung ausgeben. Siehe dazu AddCmd_bsp.
 
-      Trenner sind: | zum Trennen der einzelnen Fehlermeldungen
-                    ^ um
-                       - die Auswertung (ab dieser Fehlermeldung!) mit
-                         "return 1;" zu beenden und
-                       - eine write^say-Meldung zu trennen und
-                       - (fuer funktionslose AddCmd auch FPs zu vergeben!)
+    Trenner sind: | zum Trennen der einzelnen Fehlermeldungen
+                  ^ um
+                     - die Auswertung (ab dieser Fehlermeldung!) mit
+                       "return 1;" zu beenden und
+                     - eine write^say-Meldung zu trennen und
+                     - (fuer funktionslose AddCmd auch FPs zu vergeben!)
 
-      Beispielfehlermeldungen fuer obige Regel:
-        "Womit willst Du schnitzen?|Was willst Du schnitzen?|"
-        "Wohinein willst Du das schnitzen?"
+    Beispielfehlermeldungen fuer obige Regel:
+      "Womit willst Du schnitzen?|Was willst Du schnitzen?|"
+      "Wohinein willst Du das schnitzen?"
 
-      Es koennen in den Fehlermeldungen folgende Platzhalter benutzt
-      werden:
-      - @verb (ersetzt durch query_verb() ohne beendendes 'e')
-      - @VERB (ersetzt durch capitalize(query_verb()) ohne beendendes 'e')
-      - @WERx, @WESSENx, @WEMx, @WENx: siehe alles aus replace_personal()
-        - @WE..1 ist immer der aktive Spieler
-        - alle folgenden sind die matchenden Parameter der Spielereingabe
-          - (x-1)<=Fehlermeldung (da x=1 Spieler und
-                                  (x-1)>Fehlermeldungsobjekt nicht existent)
+    Es koennen in den Fehlermeldungen folgende Platzhalter benutzt
+    werden:
 
-      Ausfuehrungsbeispiel:
-        AddCmd("ritz|ritze|schnitz|schnitze&mit&messer|schnitzmesser&"
-               "herz|herzchen&rinde|baumrinde",#'fun,
-              "Willst Du mit etwas @verben?|Womit willst du @verben?|"
-              "Was willst du mit dem @WEM3 @verben?|"
-              "Wohinein willst Du das @WEN4 schnitzen?");
-        1. "ritze" == "Willst Du mit etwas ritzen?"
-        2. "schnitz mit" == "Womit willst du schnitzen?"
-        3. "ritz mit messer" == "Was willst du mit dem messer ritzen?"
-        4. "ritze mit dem messer ein herz" ==
-             "Wohinein willst Du das herz schnitzen?"
-        5. "ritze mit dem messer ein herzchen in die baumrinde"
-             == Erfolg!
+    * @verb (ersetzt durch query_verb() ohne beendendes 'e')
+    * @VERB (ersetzt durch capitalize(query_verb()) ohne beendendes 'e')
+    * @WERx, @WESSENx, @WEMx, @WENx: siehe alles aus replace_personal()
+      * @WE..1 ist immer der aktive Spieler
+      * alle folgenden sind die matchenden Parameter der Spielereingabe
+        * (x-1)<=Fehlermeldung (da x=1 Spieler und
+                                (x-1)>Fehlermeldungsobjekt nicht existent)
+
+    Ausfuehrungsbeispiel:
+      AddCmd("ritz|ritze|schnitz|schnitze&mit&messer|schnitzmesser&"
+             "herz|herzchen&rinde|baumrinde",#'fun,
+            "Willst Du mit etwas @verben?|Womit willst du @verben?|"
+            "Was willst du mit dem @WEM3 @verben?|"
+            "Wohinein willst Du das @WEN4 schnitzen?");
+      1. "ritze" == "Willst Du mit etwas ritzen?"
+      2. "schnitz mit" == "Womit willst du schnitzen?"
+      3. "ritz mit messer" == "Was willst du mit dem messer ritzen?"
+      4. "ritze mit dem messer ein herz" ==
+           "Wohinein willst Du das herz schnitzen?"
+      5. "ritze mit dem messer ein herzchen in die baumrinde"
+           == Erfolg!
 
     ### UNSCHARFER AUSFUEHRUNG: ###
-      Bei unscharfer Ausfuehrung wird die zugehoerige Methode auch dann
-      ausgefuehrt, wenn das verwendete Verb ein Superstring ist und
-      bisher noch nicht behandelt wurde.
-      Dieses Verhalten sollte nur beim generellen Abfangen von
-      Befehlsgruppen benutzt werden und ist ansonsten veraltet. Es
-      entsprich add_action("fun","kommando",1).
+
+    Bei unscharfer Ausfuehrung wird die zugehoerige Methode auch dann
+    ausgefuehrt, wenn das verwendete Verb ein Superstring ist und
+    bisher noch nicht behandelt wurde.
+    Dieses Verhalten sollte nur beim generellen Abfangen von
+    Befehlsgruppen benutzt werden und ist ansonsten veraltet. Es
+    entsprich add_action("fun","kommando",1).
 
 
-      Beispiel:
-        1. AddCmd("klett","fun",1);
-        2. AddCmd("kletter|klettere&hoch",#'fun2,"Wohin klettern?");
+    Beispiel:
+      1. AddCmd("klett","fun",1);
+      2. AddCmd("kletter|klettere&hoch",#'fun2,"Wohin klettern?");
 
-        a) "klett"
-        b) "kletter"
-        c) "klettere hoch"
+      a) "klett"
+      b) "kletter"
+      c) "klettere hoch"
 
-        Ausgefuehrte Funktion bei: 1a, 1b, 1c; 2c
-       (1 wuerde also immer ausgefuehrt)
-        Fehlermeldung bei: 2b ("Wohin klettern?")
+      Ausgefuehrte Funktion bei: 1a, 1b, 1c; 2c
+      (1 wuerde also immer ausgefuehrt)
+      Fehlermeldung bei: 2b ("Wohin klettern?")
 
 BEMERKUNGEN
 -----------
-::
 
-    - Methoden der put_and_get (nimm/nehme) sollten so nicht versucht
+    * Methoden der put_and_get (nimm/nehme) sollten so nicht versucht
       werden zu ueberschreiben - dazu sind invis Container da
-    - benutzt man fuer <function> eine Closure, kann man die Fkt. auch
+    * benutzt man fuer <function> eine Closure, kann man die Fkt. auch
       protected oder private deklarieren _und_ sie kann in einem
       anderen Objekt sein
-    - bei Regeln wird an die ggf. gerufene Methode als zweiter Parameter
+    * bei Regeln wird an die ggf. gerufene Methode als zweiter Parameter
       ein Array der erfuellenden Eingabeteile uebergeben:
       "steck&@PRESENT&in&loch" bei Erfuellung -> ({<Objekt>,"in","loch})
-      - bei Nutzung von @PUT_GET_XXX koennen die Parameter wiederum
-        Arrays sein ("jede Hose" -> mehrere gueltige Objekte)
-    - juengere AddCmd ueberschreiben aeltere, bzw. werden vor diesen
+      
+      ** bei Nutzung von @PUT_GET_XXX koennen die Parameter wiederum
+         Arrays sein ("jede Hose" -> mehrere gueltige Objekte)
+    * juengere AddCmd ueberschreiben aeltere, bzw. werden vor diesen
       ausgewertet
-    - @PUT_GET_XXX kosten sehr viel Auswertungszeit
+    * @PUT_GET_XXX kosten sehr viel Auswertungszeit
 
 BEISPIELE (SIEHE AUCH ADDCMD_BSP):
+----------------------------------
+
+.. code-block:: pike
+
     // SIMPEL: ganz simpel, beinahe wie add_action
     AddCmd("befiehl","action_befehlen");
     ...
     int action_befehlen(string str) {
-     if(!str || !strlen(str))
-      // Fehlermeldung, falls gar keine Funktion 1 dafuer zurueckgibt
-      notify_fail("Was willst du befehlen?!\n");
-     else {
-      write("Du befiehlst \""+str+"\", und alle folgen!\n");
-      say(TP->Name(WER)+" befiehlt \""+str+"\", und du folgst!\n");
-      return 1;  // ERFOLG - Abbruch der Kommandoauswertung
-     }
-     return 0;  // MISSERFOLG - Fehlermeldung oben gesetzt
+      if(!str || !strlen(str))
+        // Fehlermeldung, falls gar keine Funktion 1 dafuer zurueckgibt
+        notify_fail("Was willst du befehlen?!\n");
+      else {
+        write("Du befiehlst \""+str+"\", und alle folgen!\n");
+        say(TP->Name(WER)+" befiehlt \""+str+"\", und du folgst!\n");
+        return 1;  // ERFOLG - Abbruch der Kommandoauswertung
+      }
+      return 0;  // MISSERFOLG - Fehlermeldung oben gesetzt
     }
 
     // SIMPEL .. weitere Beispiele
@@ -225,9 +232,9 @@
            "Du springst vom Baum und kommst hart auf.^"
            "@WER1 springt vom Baum und kommt hart auf.");
 
+
 SIEHE AUCH
 ----------
-::
 
     AddCmd_bsp, RemoveCmd(L), init(E)
     Fehlermeldungen: notify_fail(E), _notify_fail(E)
diff --git a/doc/sphinx/lfun/DefendOther.rst b/doc/sphinx/lfun/DefendOther.rst
index 855d2b8..e18c9c7 100644
--- a/doc/sphinx/lfun/DefendOther.rst
+++ b/doc/sphinx/lfun/DefendOther.rst
@@ -5,7 +5,8 @@
 --------
 ::
 
-	mixed DefendOther(int dam,mixed dam_type,mixed spell,object enemy);
+  public <int|string*|mapping>* DefendOther(int dam, string|string* dam_type,
+                                            int|mapping spell, object enemy)
 
 DEFINIERT IN
 ------------