Doku-Update

Change-Id: Idf8f0026daca30fca7f14c2c2de4bcb359958e14
diff --git a/doc/lfun/AddInfo b/doc/lfun/AddInfo
index 76c6e1c..730c26f 100644
--- a/doc/lfun/AddInfo
+++ b/doc/lfun/AddInfo
@@ -6,8 +6,9 @@
 FUNKTION
 ========
 
-   public varargs void AddInfo(string|string* key, string|closure info,
-                  string indent, int|string silent, string|closure casebased);
+   public varargs void AddInfo(string|string* key, string|closure
+   info,
+      string indent, int|string silent, string|closure casebased);
 
 
 DEFINIERT IN
@@ -20,12 +21,13 @@
 =========
 
    string|string* frage
-      Schluesselwoerter, fuer die der NPC eine Antwort geben soll,
+      Schluesselphrase(n), fuer die der NPC eine Antwort geben soll,
       wenn man ihn danach fragt
 
    string|closure meldung
       Information, die gegeben werden soll; wenn 'meldung' eine
-      Closure ist, wird der gerufenen Funktion nichts uebergeben.
+      Closure ist, wird der gerufenen Funktion die vom Spieler
+      gefragte Schluesselphrase uebergeben.
 
    string indent    (optional)
       Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
@@ -34,8 +36,8 @@
       Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
 
    string|closure casebased   (optional)
-      Closure mit Returnwert string oder int. Der Funktion werden
-      keine Argumente uebergeben.
+      Closure mit Returnwert string oder int. Der Funktion wird die
+      vom Spieler gefragte Schluesselphrase uebergeben.
 
 
 BESCHREIBUNG
@@ -48,7 +50,7 @@
    Meldung wird der Name des Monsters vorangestellt.
 
    Frage:
-      Schluessel muessen kleingeschrieben sein, koennen aber
+      Schluesselphrasen muessen kleingeschrieben sein, koennen aber
       Leerzeichen enthalten.
 
    Meldung:
@@ -125,13 +127,13 @@
 
    // Beispiel 3: dynamisch
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string query_kekse();
+   protected string query_kekse(string key);
 
    AddInfo(({"keks","kekse"}),
        #'query_kekse,        // ein Verweis auf die Funktion
        "sagt: ");
 
-   protected string query_kekse() {
+   protected string query_kekse(string key) {
      if(present("keks", this_object()))
        return("Ich hab noch welche. Aetsch!");
      else if(present("keks", environment()))
@@ -146,8 +148,8 @@
 
    // Beispiel 4: dynamischer
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string query_kekse();
-   protected mixed case_fighting();
+   protected string query_kekse(string key);
+   protected mixed case_fighting(string key);
 
    AddInfo(({"keks","kekse"}),
        #'query_kekse,"        // ein Verweis auf die Funktion
@@ -155,13 +157,13 @@
        0,                     // nicht silent :)
        #'case_fighting);      // noch ein Funktionsverweis
 
-   protected string query_kekse() {
+   protected string query_kekse(string key) {
      if(present("keks"))
        return("Ich hab noch welche. Aetsch!");
      return("Menno. Keine mehr da!");
    }
 
-   protected mixed case_fighting() {
+   protected mixed case_fighting(string key) {
      if(InFight())
        return("Keine Zeit fuer Kekse. Muss kaempfen.");
      return 0;
@@ -177,7 +179,7 @@
 
    // Beispiel 5: ### dynamisch und komplex ###
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string question_gold();
+   protected string question_gold(string key);
 
    // "gold" wird eine Closure auf die Methode question_gold()
    // zugewiesen, ausserdem soll es still bleiben (wir informieren
@@ -185,7 +187,7 @@
    AddInfo("gold", #'question_gold, "murmelt: ", 1);
 
    // los gehts, wir generieren unsere Antwort selbst
-   protected string question_gold() {
+   protected string question_gold(string key) {
      // wieviel Kohle hat der Spieler
      int money = this_player()->QueryMoney();
      string* valuables = ({});
@@ -266,4 +268,4 @@
    Interna:
       GetInfoArr() , do_frage()
 
-24.09.2020, Arathorn
+09.08.2021, Zesstra
diff --git a/doc/lfun/AddSpecialInfo b/doc/lfun/AddSpecialInfo
index be61558..3c164fd 100644
--- a/doc/lfun/AddSpecialInfo
+++ b/doc/lfun/AddSpecialInfo
@@ -6,31 +6,9 @@
 FUNKTION
 ========
 
-   public varargs void AddSpecialInfo(string|string* keys, string functionname,
-                  string indent, int|string silent, string|closure  casebased);
-
-
-ARGUMENTE
-=========
-
-   string|string* frage
-     Schluesselwoerter, fuer die der NPC eine Antwort geben soll, wenn
-     man ihn danach fragt
-
-   string functionname
-     Name der Funktion, die gerufen werden soll, um den Informationstext
-     des NPCs zu ermitteln. Der gerufenen Funktion werden keine Argumente
-     uebergeben.
-
-   string indent    (optional)
-     Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
-
-   int|string silent    (optional)
-     Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
-
-   string|closure casebased   (optional)
-     Closure mit Returnwert string oder int.
-     Der Funktion werden keine Argumente uebergeben.
+   public varargs void AddSpecialInfo(string|string* keys, string
+   functionname,
+      string indent, int|string silent, string|closure  casebased);
 
 
 DEFINIERT IN
@@ -39,25 +17,49 @@
    /std/npc/info.c
 
 
+ARGUMENTE
+=========
+
+   string|string* frage
+      Schluesselphrase(n), fuer die der NPC eine Antwort geben soll,
+      wenn man ihn danach fragt
+
+   string functionname
+      Name der Funktion, die gerufen werden soll, um den
+      Informationstext des NPCs zu ermitteln. Der gerufenen Funktion
+      wird die vom Spieler gefragte Schluesselphrase uebergeben.
+
+   string indent    (optional)
+      Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
+
+   int|string silent    (optional)
+      Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
+
+   string|closure casebased   (optional)
+      Closure mit Returnwert string oder int. Der Funktion wird die
+      vom Spieler gefragte Schluesselphrase uebergeben.
+
+
 BESCHREIBUNG
 ============
 
-   Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>" nach
-   einer Information mit dem Schluessel frage fragt, so wird die Methode
-   "function" gerufen. Die Rueckgabe wird als Meldung ausgegeben.
+   Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>"
+   nach einer Information mit dem Schluessel frage fragt, so wird die
+   Methode "function" gerufen. Die Rueckgabe wird als Meldung
+   ausgegeben.
 
    Fuer die Beschreibung der weiteren Parameter siehe man AddInfo(L).
 
-   AddSpecialInfo(keys, "function", ...) entspricht:
-   - AddInfo(keys, #'function, ...)
+   "AddSpecialInfo(keys, "function", ...)" entspricht "AddInfo(keys,
+   #'function, ...)".
 
 
 BEMERKUNGEN
 ===========
 
    Da AddSpecialInfo() und AddInfo() auf die gleichen Daten zugreifen,
-   kann man Informationen, die mit AddSpecialInfo() gesetzt wurden, auch
-   mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
+   kann man Informationen, die mit AddSpecialInfo() gesetzt wurden,
+   auch mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
 
 
 BEISPIELE
@@ -69,13 +71,13 @@
                   "query_kekse",      // der Methodenname
                   "sagt: ");
    // ist uebrigens das gleiche wie:
-   // static string query_kekse();
+   // static string query_kekse(string key);
    // ...
    // AddInfo(({"keks","kekse"}),
    //         #'query_kekse,          // ein Verweis auf die Methode
    //         "sagt: ");
    ...
-   static string query_kekse() {
+   static string query_kekse(string key) {
     if(present("keks"))
      return("Ich hab noch welche. Aetsch!");
     return("Menno. Keine mehr da!");
@@ -106,4 +108,4 @@
    Interna:
       GetInfoArr() , do_frage()
 
-24.09.2020, Arathorn
+09.08.2021, Zesstra
diff --git a/doc/lfun/short b/doc/lfun/short
index c446d1c..5da9b46 100644
--- a/doc/lfun/short
+++ b/doc/lfun/short
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   public varargs string short();
+   public string short();
 
 
 DEFINIERT IN
@@ -24,7 +24,7 @@
 BESCHREIBUNG
 ============
 
-   Der Inhalt der Property P_SHORT wird ausgewertet, mit ".n"
+   Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\n"
    abgeschlossen und zurueckgegeben.
 
    Durch Ueberladen von short() lassen sich ggf. weitere Eigenschaften
diff --git a/doc/props/P_BRIEF b/doc/props/P_BRIEF
index f6d3769..34ba0aa 100644
--- a/doc/props/P_BRIEF
+++ b/doc/props/P_BRIEF
@@ -18,4 +18,10 @@
 BESCHREIBUNG
 ============
 
-   Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+   Speichert die Einstellung fuer "lang", "kurz" oder "ultrakurz" des
+   Spielers.
+   Werte: 0 fuer lang, 1 fuer kurz, 2 fuer ultrakurz.
+
+   Bitte nur lesend zugreifen, nicht nach Belieben in Spielern aendern.
+
+Letzte Aenderung: Arathorn, 2021-09-05
diff --git a/doc/props/P_CONTAINER b/doc/props/P_CONTAINER
index e779f75..019ff81 100644
--- a/doc/props/P_CONTAINER
+++ b/doc/props/P_CONTAINER
@@ -12,10 +12,30 @@
 DEFINIERT IN
 ============
 
-   /sys/properties.h
+   /sys/container.h
 
 
 BESCHREIBUNG
 ============
 
-   *** KEINE BESCHREIBUNG VORHANDEN ***
+   Markiert Objekte als Container im spieltechnischen Sinn. Aktuell
+   hat dies nur den Effekt, dass Spieler in Objekte mit gesetztem
+   P_CONTAINER Objekte hereinstecken und herausnehmen koennen, was bei
+   Objekten, die rein aus technischer Sicht Container sind, wie
+   Raeumen oder Livings, nicht moeglich ist.
+
+
+ANMERKUNGEN
+===========
+
+   Bei von *../std/container*, /std/armour_container und
+   /std/clothing_container geerbten Objekten wir die Property
+   automatisch gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   *../std/container*
+
+Letzte Aenderung: 07.05.2021, Bugfix
diff --git a/doc/props/P_TRAY b/doc/props/P_TRAY
index 0c394d4..dc38379 100644
--- a/doc/props/P_TRAY
+++ b/doc/props/P_TRAY
@@ -18,4 +18,14 @@
 BESCHREIBUNG
 ============
 
-   *** KEINE BESCHREIBUNG VORHANDEN ***
+   Markiert Objekte als Tray. Derzeit hat dies nur den Effekt, das
+   Spieler Objekte darauf ablegen und sie herunternehmen koennen.
+
+
+ANMERKUNGEN
+===========
+
+   Bei von /std/tray geerbten Objekten wird die Property automatisch
+   gesetzt.
+
+Letzte Aenderung: 07.05.2021, Bugfix
diff --git a/doc/sphinx/lfun/short.rst b/doc/sphinx/lfun/short.rst
index e31d7ff..439ad92 100644
--- a/doc/sphinx/lfun/short.rst
+++ b/doc/sphinx/lfun/short.rst
@@ -4,7 +4,7 @@
 FUNKTION
 --------
 
-     public varargs string short();
+     public string short();
 
 DEFINIERT IN
 ------------
@@ -19,7 +19,7 @@
 BESCHREIBUNG
 ------------
 
-     Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\n"
+     Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\\n"
      abgeschlossen und zurueckgegeben.
 
      Durch Ueberladen von short() lassen sich ggf. weitere Eigenschaften des
diff --git a/doc/sphinx/props/P_BRIEF.rst b/doc/sphinx/props/P_BRIEF.rst
index d50f389..43ba64b 100644
--- a/doc/sphinx/props/P_BRIEF.rst
+++ b/doc/sphinx/props/P_BRIEF.rst
@@ -17,5 +17,11 @@
 ------------
 ::
 
-     Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+     Speichert die Einstellung fuer "lang", "kurz" oder "ultrakurz" des
+     Spielers.
+     Werte: 0 fuer lang, 1 fuer kurz, 2 fuer ultrakurz.
 
+     Bitte nur lesend zugreifen, nicht nach Belieben in Spielern aendern.
+
+
+Letzte Aenderung: Arathorn, 2021-09-05
diff --git a/doc/wiz/homemud b/doc/wiz/homemud
index db6ea5f..d1de64a 100644
--- a/doc/wiz/homemud
+++ b/doc/wiz/homemud
@@ -10,9 +10,9 @@
    bauen, benoetigt man folgende Pakete (die Namen koennen je nach
    Distribution abweichen):
 
-   libjson0/json-c, libgnutls30, libsqlite3, libpcre3, libxml2, libgcrypt,
-   libpcre3, libiconv (diese ist bei neueren Distributionen in
-   libc6-dev enthalten).
+   libjson0/json-c, libgnutls30, libsqlite3, libpcre3, libxml2,
+   libgcrypt, libpcre3, libiconv (diese ist bei neueren Distributionen
+   in libc6-dev enthalten).
 
    Beachte, dass man auf debianbasierten System auch die
    entsprechenden Entwicklerpackete (**-dev*) mitinstallieren muss,
@@ -23,7 +23,8 @@
 =======================================
 
    Mit den folgenden Schritten installiert man die gegenwaertige
-   mudlib und einen Driver der Version LDMUD-3.6.x
+   mudlib und einen Driver der Version LDMUD-3.6.4 oder
+   https://github.com/zesstra/ldmud/releases/tag/mgreboot-20210507
 
    1. Lade den aktuellen Driver unter
       https://github.com/ldmud/ldmud herunter. Du kannst auch das Repo
@@ -38,13 +39,15 @@
 
    3. Gehe in das *src/*-Verzeichnis des drivers
 
-   4. Im *src/*-Verzeichnis, fuehere "./autogen.sh" aus
+   4. Im *src/*-Verzeichnis, fuehre "./autogen.sh" aus (Hierfuer
+      ist das Paket autoconf empfehlenswert.)
 
    5. Im src/-Verzeichnis, passe die Pfade in settings/morgengrauen
       an, und fuehre settings/morgengrauen aus
 
    6. im src/-Verzeichnis, kompiliere und installiere den Treiber
-      mit "make all" und "make install-all".
+      mit "make all" und "make install-all". (Hierfuer wird das Paket
+      bison benoetigt.)
 
    7. Falls noch nicht geschehen, schiebe die Mudlib in den Ordner,
       den Du in *settings/morgengrauen* eingestellt hast