added setting network connection flag for network games
[rocksndiamonds.git] / src / network.c
index 0e5955c62e103ebac1681c9f4ff9822437a77344..55e43e12207ad6e54094ba7b6dc685924ca4aa53 100644 (file)
@@ -541,7 +541,8 @@ static void Handle_OP_STOP_PLAYING()
   {
     int client_nr = buffer[0];
     int index_nr = client_nr - 1;
-    boolean stopped_by_remote_player = (index_nr != local_player->index_nr);
+    struct PlayerInfo *client_player = &stored_player[index_nr];
+    boolean stopped_by_remote_player = (!client_player->connected_locally);
     char *message = (buffer[2] == NETWORK_STOP_BY_PLAYER ?
                     "Network game stopped by player!" :
                     buffer[2] == NETWORK_STOP_BY_ERROR ?
@@ -703,9 +704,13 @@ static void HandleNetworkingDisconnect()
   SDLNet_TCP_DelSocket(rfds, sfd);
   SDLNet_TCP_Close(sfd);
 
-  network.enabled = FALSE;
   network_playing = FALSE;
 
+  network.enabled = FALSE;
+  network.connected = FALSE;
+
+  setup.network_mode = FALSE;
+
   for (i = 0; i < MAX_PLAYERS; i++)
     stored_player[i].connected_network = FALSE;
 }