Wrapper fuer ReceiveMsg()
Da die Wrapper im /std/room thematisch nirgendwo hin passten, wurde
/std/room/comm.c neu erstellt und ReceiveMsg() aus /std/room/items.c
dort hin verlegt.
Die lfun _notify() ist durch SendNotify() ueberfluessig und wurde
ersetzt.
Change-Id: Ia42d131228963cbf8023f6b1563c38f65a38bd63
diff --git a/doc/sphinx/lfun/ReceiveMultisense.rst b/doc/sphinx/lfun/ReceiveMultisense.rst
new file mode 100644
index 0000000..cafa5bc
--- /dev/null
+++ b/doc/sphinx/lfun/ReceiveMultisense.rst
@@ -0,0 +1,86 @@
+ReceiveMultisense()
+===================
+
+FUNKTION
+--------
+
+ public int* ReceiveMultisense(struct msg_s* msgs,
+ string action = 0, int commontypes = 0)
+
+DEFINIERT IN
+------------
+
+ /std/living/comm.c
+ /std/room/comm.c
+ /sys/living/comm.h
+
+ARGUMENTE
+---------
+
+ struct msg_s* msgs
+ Die Auszugebenden Nachrichten mit Zusatzinformationen. (S.u.)
+ string action
+ action wird als action an ReceiveMsg() weitergegeben.
+ int commontypes
+ Muss einen oder mehrere Veroderte messagetypes aus
+ :doc:`ReceiveMsg` enthalten. Diese werden bei jedem Aufruf von
+ :doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus msgs verodert.
+
+BESCHREIBUNG
+------------
+
+ sendet die in msgs angegebenen Nachrichten an den Empfaenger, bis eine
+ zugestellt werden konnte oder das ende von msgs erreicht wurde.
+
+ msgs ist aufgebaut wie folt:
+ Der struct msg_s ist in /std/living/comm_structs.c definiert. Er hat
+ die Eintraege string msg, int type, string prefix.
+ Das Array wird abgearbeitet, bis eine Nachricht zugestellt werden konnte
+ oder das Ende erreicht ist. msg wird vor der Ausgabe an
+ :doc:`../sefun/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. Fuer prefix findet keine Ersetzung statt.
+
+RUECKGABEWERT
+-------------
+
+ Ein Integer-Array mit folgenden Werten:
+
+ 0
+ Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`.
+ 1
+ Information, welche Meldung zugestellt wurde. -1 steht fuer keine
+ Meldung, ein wert >= 0 fuer die jeweilige Position in msgs.
+
+ Raeume definieren standardmaessig ebenfalls ein ReceiveMultisense(), welches in
+ jedem Objekt im Raum ReceiveMultisense() mit den uebergebenen Argumenten aufruft.
+ In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
+ ReceiveMultisense() zurueckgelieferte Wert.
+
+BEISPIEL
+--------
+
+ .. code-block:: pike
+
+ inherit "/std/living/comm_structs";
+ this_player().ReceiveMultisense(
+ ({
+ (<msg_s>
+ msg: "Ein Drache landet neben Dir.",
+ type: MT_LOOK),
+ (<msg_s>
+ message: "Du hoerst ein rumpeln, als waere gerade etwas grosses "
+ "neben Dir eingeschlagen.",
+ type: MT_LISTEN),
+ (<msg_s>
+ msg: "Du spuerst einen heftigen Luftzug.",
+ type: MT_FEEL)})
+ MA_MOVE_IN);
+
+SIEHE AUCH
+----------
+
+ :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`
+
+Letzte Aenderung: 07.10.2021, Bugfix