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/std/room/comm.c b/std/room/comm.c
new file mode 100644
index 0000000..3f2516b
--- /dev/null
+++ b/std/room/comm.c
@@ -0,0 +1,52 @@
+#pragma strict_types, save_types, pedantic, range_check
+#pragma no_clone
+
+inherit "/std/living/comm_structs";
+
+#include <thing/language.h>
+
+// Per Default nur an alle Items im Inventar weiterleiten.
+public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
+                              string msg_prefix, object origin)
+{
+  int *res = ({int*})all_inventory()->ReceiveMsg(msg, msg_type, msg_action,
+                                         msg_prefix,
+                                         origin || previous_object());
+  if (sizeof(res))
+    return min(res);
+  return 0;
+}
+
+// Sortierfunktion um das Array mit dem kleinsten Wert auszugeben
+
+private int* _minarr(int** arr)
+{
+  if(!sizeof(arr)) return 0;
+  return sort_array(&arr,
+    function int(int* a, int* b)
+    {
+      return a[0] > b[0];
+    })[0];
+}
+
+// Wrapper fuer ReceiveMsg()
+
+public varargs int* ReceiveSay(string msg, string prefix,
+  struct msg_s sense_blocked)
+{
+  // Das muss schon hier passieren, damit previous_object() stimmt
+  if(!prefix)
+  {
+    prefix = ({string})previous_object().Name(WER, 1) + " sagt: ";
+  }
+
+  int** res = ({int**})all_inventory()->ReceiveSay(msg, prefix, sense_blocked);
+  return _minarr(res);
+}
+
+public varargs int* ReceiveMultisense(struct msg_s msgs,
+  string action, int commontypes)
+{
+  int** res = ({int**})all_inventory()->ReceiveMultisense(msgs, action, commontypes);
+  return _minarr(res);
+}
diff --git a/std/room/items.c b/std/room/items.c
index f799570..734ec9c 100644
--- a/std/room/items.c
+++ b/std/room/items.c
@@ -26,16 +26,3 @@
   if ( !sizeof(inh & users()) )
     remove_multiple(3);
 }
-
-// Per Default nur an alle Items im Inventar weiterleiten.
-public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
-                              string msg_prefix, object origin)
-{
-  int *res = all_inventory()->ReceiveMsg(msg, msg_type, msg_action,
-                                         msg_prefix,
-                                         origin || previous_object());
-  if (sizeof(res))
-    return min(res);
-  return 0;
-}
-