Manpage fuer ReceiveWave() und ReceiveDynWave()

Die fehlten leider noch...

Change-Id: Iaa3c15a032a5f9b172d0bd08298e71df4b0501cf
diff --git a/doc/sphinx/lfun/ReceiveDynWave.rst b/doc/sphinx/lfun/ReceiveDynWave.rst
new file mode 100644
index 0000000..567836b
--- /dev/null
+++ b/doc/sphinx/lfun/ReceiveDynWave.rst
@@ -0,0 +1,63 @@
+ReceiveWave()
+=============
+
+FUNKTION
+--------
+
+  public int ReceiveDynWave(struct wave_s wave, string msg_action = comm_guess_action(), object origin = previous_object());
+
+DEFINIERT IN
+------------
+
+  /std/living/comm.c
+
+ARGUMENTE
+---------
+
+  struct wave_s* wave
+    Die auszugebende Nachrichten mit Zusatzinformationen. (s.u.)
+  string action
+    action wird als <action> an ReceiveMsg() weitergegeben
+  object origin
+    Absenderobjekt der Nachricht (Default: previous_object())
+
+BESCHREIBUNG
+------------
+
+  Sendet die in <wave> angegebene Nachricht an den Empfaenger.
+
+  Im Unterschied zu ReceiveWave() wird ein Variable namens cl in <wave> vorher ausgewertet und kann dynamisch eine neue/geaenderte <wave> liefern, welche dann ausgegeben wird.
+
+  Hierbei ist <wave> also eine von wave_s erbende struct, welche (mindestens) eine Variable <cl> vom Typ closure zusaetzlich besitzt.
+
+RUECKGABEWERT
+-------------
+
+  Der Rueckgabe ist der Rueckgabewert von ReceiveMsg().
+
+BEISPIEL
+--------
+
+  .. code-block:: pike
+
+  // von wave_s abgeleitete struct
+  struct dynwave_s (wave_s) {
+      closure cl;
+  }
+  struct dynwave_s wave = (<dynwave_s> msg: "Pass auf! Ein boeser, schwarzer Drache!",
+                            type: MT_LISTEN, prefix: "Humni ruft: ");
+  wave.cl = function struct wave_s (struct wave_s wave)
+    { wave.prefix = ({"Humni","Jof","Zook"})[random(3)] + " ruft: ";
+      return wave;
+    };
+  ReceiveWave(wave, MA_LISTEN);
+
+
+SIEHE AUCH
+----------
+
+  :doc:`ReceiveMsg`, :doc:`ReceiveWave`
+
+Letzte Aenderung: 30.07.2025, Zesstra
+
+
diff --git a/doc/sphinx/lfun/ReceiveWave.rst b/doc/sphinx/lfun/ReceiveWave.rst
new file mode 100644
index 0000000..d19b9bc
--- /dev/null
+++ b/doc/sphinx/lfun/ReceiveWave.rst
@@ -0,0 +1,66 @@
+ReceiveWave()
+=============
+
+FUNKTION
+--------
+
+  public int ReceiveWave(struct wave_s wave, string msg_action = comm_guess_action(), object origin = previous_object());
+
+DEFINIERT IN
+------------
+
+  /std/living/comm.c
+
+ARGUMENTE
+---------
+
+  struct wave_s* wave
+    Die auszugebende Nachrichten mit Zusatzinformationen. (s.u.)
+  string action
+    action wird als <action> an ReceiveMsg() weitergegeben
+  object origin
+    Absenderobjekt der Nachricht (Default: previous_object())
+
+BESCHREIBUNG
+------------
+
+  Sendet die in <wave> angegebene Nachricht an den Empfaenger.
+
+  <wave> ist meist eine struct wave_s. Diese fasst msg, msg_type und prefix fuer ReceiveMsg in eine Datenstruktur zusammen. Sie ist in /secure/simul_efun/comm.c definiert (und steht allen Programmen automatisch zur Verfuegung). Sie hat die Eintraege string msg, int type, string prefix.
+
+  <wave> kann jedoch auch eine von wave_s erbende struct sein, welche zusaetzliche Eintraege besitzt (die hier nicht benutzt werden). Damit kann man die Meldung mit anderen dazu gehoerenden Daten zusammenfassen.
+
+
+RUECKGABEWERT
+-------------
+
+  Der Rueckgabe ist der Rueckgabewert von ReceiveMsg().
+
+BEISPIEL
+--------
+
+  .. code-block:: pike
+
+  // Einfache Nachricht
+  this_player().ReceiveWave((<wave_s> msg: "Pass auf! Ein boeser, schwarzer Drache!",
+                                      type: MT_LISTEN, prefix: "Humni ruft: ") );
+  // von wave_s abgeleitete struct, welche einen einfach Zauberspruch beschreibt
+  struct spell_s (wave_s) {
+      int dam;
+      string* dam_type;
+      mapping si_spell;
+  }
+  struct spell_s sp = (<spell_s> msg: "Der Zauberer schleudert Dir einen Blitz entgegen.",
+                       type: MT_LOOK|MT_FEEL, dam: 42, dam_type: DT_LIGHTNING,
+                       sinfo: ([...]));
+  en.ReceiveWave(sp, MA_COMBAT);
+  en.Defend(sp.dam, sp.dam_type, sp.si_spell);
+
+
+SIEHE AUCH
+----------
+
+  :doc:`ReceiveMsg`, :doc:`ReceiveDynWave`
+
+Letzte Aenderung: 30.07.2025, Zesstra
+