Fix für historisches Originalverhalten von P_ALERT

P_ALERT == 0 ist die historische Entsprechung zu P_ALERT == MB_MISC. Um
keinen Code für diesen Spezialfall in comm_beep() zu benötigen wird
P_ALERT daher in updates_after_restore() entsprechend korrigiert.

Change-Id: Ic2ffeae03abaae30f3094298da5dd3c9449d7057
diff --git a/doc/sphinx/props/P_ALERT.rst b/doc/sphinx/props/P_ALERT.rst
index ff1e372..ecff748 100644
--- a/doc/sphinx/props/P_ALERT.rst
+++ b/doc/sphinx/props/P_ALERT.rst
@@ -40,12 +40,14 @@
   Bitte verwendet ReceiveMsg() mit MSG_ALERT, anstatt P_ALERT selbst
   auszuwerten.
 
-  Das historische Standardverhalten ist 0, hierbei werden Toene empfangen und
-  es sind keine sonstigen Konfigurationen vorhanden.
+  Das historische Standardverhalten war 0, hierbei wurden alle Toene empfangen.
+  Der Klingelton fuer Kommunikation wurde nur ausgegeben, wenn
+  :doc:`PMESSAGE_BEEP` zusaetzlich > 0 war. Dieses Verhalten entspricht am
+  ehesten P_ALERT == MB_MISC.
 
 SIEHE AUCH
 ----------
 
-  :doc:`../lfun/ReceiveMsg`
+  :doc:`../lfun/ReceiveMsg`, :doc:`PMESSAGE_BEEP`
 
-Letzte Aenderung: 22.01.2022, Bugfix
+Letzte Aenderung: 30.06.2025, Bugfix
diff --git a/std/player/comm.c b/std/player/comm.c
index 8cdccdd..95c1a7b 100644
--- a/std/player/comm.c
+++ b/std/player/comm.c
@@ -1218,6 +1218,12 @@
             QueryProp(P_ALERT) & ~ flags[part[1..]]);
         }
       }
+      // 0 hat leider historisch die Bedeutung von MB_MISC, daher muss hier
+      // statt dessen auf AL_NO_SOUND gesetzt werden.
+      if(!QueryProp(P_ALERT))
+      {
+        SetProp(P_ALERT, AL_NO_SOUND);
+      }
     }
   }
   else
@@ -1240,12 +1246,12 @@
   string types = CountUp(map(filter(m_indices(text), #'_alert_filter_flags), text));
   if(!sizeof(types))
   {
-    types = "nichts";
+    types = "Keine";
   }
   ReceiveNotify(
-    "Klingelton bei "
-    + types
-    + (beep_interval ? ", maximal alle " + beep_interval + " Sekunden." : ", immer.")
+    "Gewaehlte Klingeltoene: " + types + "\n"
+    "Zeitabstand: "
+    + (beep_interval ? "maximal alle " + beep_interval + " Sekunden." : "kein") + "\n"
     + (QueryProp(P_ALERT) & AL_NO_SOUND ? " Allerdings sind Toene insgesamt "
          "bei Dir abgeschaltet. (\'hilfe ton\')" : ""),
     query_verb());
@@ -2326,5 +2332,15 @@
   // hinzufuegen, von wo es spaeter angezeigt wird.
   if (commvault)
       process_comm_vault(commvault);
+
+  // P_ALERT korrigieren
+  // Das historische Originalverhalten war, bei P_ALERT == 0 alle Klingeltöne
+  // abzuspielen. Benachrichtigungen für Kommunikation wurden jedoch nur
+  // abgespielt, wenn P_MESSAGE_BEEP zusaetzlich auf einen Wert > 0 gesetzt war.
+  // Diesem Verhalten kommt P_ALERT == MB_MISC am naechsten.
+  if(!QueryProp(P_ALERT))
+  {
+    SetProp(P_ALERT, MB_MISC);
+  }
 }