leave(): Ebenen ohne Zuhoerer aufloesen.

Wenn nach dem Austreten eines Zuhoerers keine
weiteren Zuhoerer mehr da sind, wird die Ebene
aufgeloest.
Bemerkung: die Supervisoren sind ebenfalls
Zuhoerer, d.h. solange ein Supervisor existiert,
wird die Ebene auch nicht aufgeloest.

Change-Id: I971c46137a7a362af96659813b0f6ab852d669fe
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 6a5c449..0c37553 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -913,14 +913,14 @@
       change_sv_object(ch, pl, 0);
     }
   }
-
-  // Ebene loeschen, wenn keiner zuhoert und auch kein Masterobjekt
-  // existiert.
-  // Wenn Spieler, NPC, Clone oder Channeld als letztes die Ebene verlassen,
-  // wird diese zerstoert, mit Meldung.
-  if (!sizeof(channels[ch][I_MEMBER]) && !stringp(channels[ch][I_SUPERVISOR]))
+  // ansonsten Ebene loeschen, wenn keiner zuhoert.
+  // Kommentar: Supervisoren sind auch Zuhoerer auf der Ebene. Wenn keine
+  // Zuhoerer mehr, folglich auch kein Supervisor mehr da.
+  else
   {
     // Der Letzte macht das Licht aus, aber nur, wenn er nicht unsichtbar ist.
+    // Wenn Spieler, NPC, Clone oder Channeld als letztes die Ebene verlassen,
+    // wird diese zerstoert, mit Meldung.
     if (!pl->QueryProp(P_INVIS))
     {
       // Die Zugriffskontrolle auf die Ebenen wird von der Funktion access()
@@ -935,10 +935,12 @@
         " die Ebene '"+channels[ch][I_NAME]+"', worauf diese sich in "
         "einem Blitz oktarinen Lichts aufloest.", MSG_EMOTE);
     }
+    // Einige Daten merken, damit sie reaktiviert werden kann, wenn jemand
+    // einloggt, der die Ebene abonniert hat.
     channelC[lower_case(ch)] =
       ({ channels[ch][I_NAME], channels[ch][I_INFO], time() });
 
-    // Ebene loeschen
+    // Ebene loeschen bzw. deaktivieren.
     m_delete(channels, lower_case(ch));
     // History wird nicht geloescht, damit sie noch verfuegbar ist, wenn die
     // Ebene spaeter nochmal neu erstellt wird. Sie wird dann bereinigt, wenn