rust/hedgewars-server/src/core/server.rs
changeset 15536 a798e6441a36
parent 15534 bb93e9642b5b
child 15540 479911540e17
--- a/rust/hedgewars-server/src/core/server.rs	Tue Dec 31 04:42:20 2019 +0300
+++ b/rust/hedgewars-server/src/core/server.rs	Sat Jan 04 01:39:13 2020 +0300
@@ -986,8 +986,6 @@
                 .collect();
 
             if let Some(ref mut info) = room.game_info {
-                info.teams_in_game -= team_names.len() as u8;
-
                 for team_name in &team_names {
                     let remove_msg =
                         utils::to_engine_msg(std::iter::once(b'F').chain(team_name.bytes()));
@@ -1106,21 +1104,15 @@
     client.set_is_joined_mid_game(room.game_info.is_some());
     client.set_is_in_game(room.game_info.is_some());
 
-    if let Some(ref mut info) = room.game_info {
-        let teams = info.client_teams(client.id);
-        client.teams_in_game = teams.clone().count() as u8;
-        client.clan = teams.clone().next().map(|t| t.color);
-        let team_names: Vec<_> = teams.map(|t| t.name.clone()).collect();
+    let teams = room.client_teams(client.id);
+    client.teams_in_game = teams.clone().count() as u8;
+    client.clan = teams.clone().next().map(|t| t.color);
+    let team_names: Vec<_> = teams.map(|t| t.name.clone()).collect();
 
-        if !team_names.is_empty() {
-            info.left_teams.retain(|name| !team_names.contains(&name));
-            info.teams_in_game += team_names.len() as u8;
-            room.teams = info
-                .teams_at_start
-                .iter()
-                .filter(|(_, t)| !team_names.contains(&t.name))
-                .cloned()
-                .collect();
+    match room.game_info {
+        Some(ref mut info) if !team_names.is_empty() => {
+            info.left_teams.retain(|name| !team_names.contains(&name))
         }
+        _ => (),
     }
 }