diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs
index 14e90e8d2..a1f15aebb 100644
--- a/Subsurface/Source/Networking/GameClient.cs
+++ b/Subsurface/Source/Networking/GameClient.cs
@@ -322,7 +322,9 @@ namespace Barotrauma.Networking
// Update current time
updateTimer = DateTime.Now + updateInterval;
}
-
+
+ private CoroutineHandle startGameCoroutine;
+
///
/// Check for new incoming messages from server
///
@@ -330,7 +332,9 @@ namespace Barotrauma.Networking
{
// Create new incoming message holder
NetIncomingMessage inc;
-
+
+ if (startGameCoroutine != null && CoroutineManager.IsCoroutineRunning(startGameCoroutine)) return;
+
while ((inc = client.ReadMessage()) != null)
{
//TODO: read message data
diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs
index 38b83ec21..5c14c0cc8 100644
--- a/Subsurface/Source/Networking/GameServer.cs
+++ b/Subsurface/Source/Networking/GameServer.cs
@@ -486,6 +486,30 @@ namespace Barotrauma.Networking
client.inGame = false;
}
}
+
+ CoroutineManager.StartCoroutine(EndCinematic());
+ }
+
+ public IEnumerable