Gesammelte Update von autogenerierter Doku.

Change-Id: If453f1dd933c092c12ca0b5b2667dbd64ca246f8
diff --git a/doc/lfun/ReceiveSay b/doc/lfun/ReceiveSay
new file mode 100644
index 0000000..41eee81
--- /dev/null
+++ b/doc/lfun/ReceiveSay
@@ -0,0 +1,118 @@
+ReceiveSay()
+************
+
+
+FUNKTION
+========
+
+   public void ReceiveSay(string msg, string prefix =
+   previous_object().Name(WER, 1) + " sagt: ",
+      struct msg_s sense_blocked =
+         ({(<wave_s>
+            msg: "@WER1 bewegt die Lippen, Du hoerst jedoch nichts.",
+            type: MT_LOOK)}))
+
+
+DEFINIERT IN
+============
+
+   /std/living/comm.c /std/room/comm.c
+
+
+ARGUMENTE
+=========
+
+   string msg
+      Die auszugebende Meldung.
+
+   string prefix
+      prefix wird als prefix an ReceiveMsg() weitergegeben. Wird kein
+      Wert uebergeben, wird "previous_object().Name(WER, 1) + " sagt:
+      "" verwendet.
+
+   struct wave_s *alt
+      Ersatzmeldungen, falls das Lebewesen die Meldung aufgrund eines
+      blockierten Sinns nicht wahrnehmen kann. Details siehe unten.
+
+
+BESCHREIBUNG
+============
+
+   Sendet msg per ReceiveMsg() mit den ueblichen Argumenten von "sage"
+   an den Empfaenger, d.h.: "MT_LISTEN", "MA_SAY", "Name(WER, 1) + "
+   sagt: "". Hierzu muss das aufrufende Objekt *Name* definiert haben
+   und dort etwas sinnvolles zurueckgeben. Falls ein anderer Praefix
+   gewaehlt wurde, wird dieser statt "Name(WER, 1)  " sagt: ""
+   verwendet.
+
+   <msg> wird vor der Ausgabe an replace_personal() uebergeben, als
+   erstes Objekt wird das aufrufende Objekt uebergeben, als zweites
+   this_player(), sofern vorhanden. msg wird automatisch auf 78
+   Zeichen umgebrochen, vorhandene Zeilenumbrueche werden dabei
+   beibehalten.
+
+   Falls der Empfaenger eine Nachricht aufgrund eines blockierten
+   Sinns nicht empfangen kann (und **nur** dann), wird versucht,
+   alternative Nachrichten aus dem Array <alt> zuzustellen. Dieses
+   Array enthaelt structs vom Typ wave_s. Das Array wird von vorne
+   nach hinten abgearbeitet, bis eine Nachricht erfolgreich zugestellt
+   werden konnte, das Ende erreicht ist oder eine Nachricht *aus
+   anderen Gruenden* als einem blockierten Sinn abgelehnt wurde. Der
+   Grund fuer letzteres ist, dass andere Fehler von ReceiveMsg()
+   (fast) immer auch bei allen (weiteren) Alternativen auftreten
+   werden. wave_s ist in /secure/simul_efun/comm.c definiert und
+   enthaelt die Eintraege string msg, int type, string prefix. In
+   <alt> ist der Default fuer wave_s.prefix 0! Auch hier findet fuer
+   wave_s.msg eine Ersetzung mittels replace_personal() statt, fuer
+   wave_s.prefix nicht.
+
+
+RUECKGABEWERT
+=============
+
+
+in Lebewesen
+------------
+
+   Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die
+   zuletzt versuchte Meldung.
+
+   Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt,
+   wurde irgendeine Meldung erfolgreich zugestellt. Falls es
+   MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine
+   Nachricht wurde zugestellt. Ist es ein anderer Fehler ist, wurde
+   keine Nachricht zugestellt (und ggf. nicht alle aus <alt>
+   versucht).
+
+
+in Containern/Raeumen
+---------------------
+
+   Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass
+   dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr
+   prueft.
+
+
+BEISPIEL
+========
+
+   SetProp(P_NAME, "Questgeber"); SetProp(P_GENDER, MALE);
+   this_player().ReceiveSay(
+
+      "Das hast Du prima gemacht, @WER2!", Name(WER, 1) + " lobt Dich:
+      ", ({
+
+         (<wave_s>
+            msg: "@WER1 nickt Dir laechelnd zu.", type: MT_LOOK),
+
+         (<wave_s>
+            msg: "Jemand klopft Dir lobend auf die Schulter.", type:
+            MT_FEEL)}));
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg(), replace_personal(), *Name*
+
+Letzte Aenderung: 21.09.2022, Zesstra