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