rust/hedgewars-server/src/core/room.rs
changeset 15504 4cc9ec732392
parent 15096 e935b1ad23f3
child 15547 16d3c9acd715
--- a/rust/hedgewars-server/src/core/room.rs	Thu Oct 24 09:41:10 2019 -0400
+++ b/rust/hedgewars-server/src/core/room.rs	Sat Oct 26 02:36:08 2019 +0300
@@ -142,9 +142,22 @@
         &self.teams.last().unwrap().1
     }
 
-    pub fn remove_team(&mut self, name: &str) {
-        if let Some(index) = self.teams.iter().position(|(_, t)| t.name == name) {
+    pub fn remove_team(&mut self, team_name: &str) {
+        if let Some(index) = self.teams.iter().position(|(_, t)| t.name == team_name) {
             self.teams.remove(index);
+
+            if let Some(info) = &mut self.game_info {
+                info.left_teams.push(team_name.to_string());
+                info.teams_in_game -= 1;
+
+                if let Some(m) = &info.sync_msg {
+                    info.msg_log.push(m.clone());
+                    info.sync_msg = None
+                }
+                let remove_msg =
+                    crate::utils::to_engine_msg(iter::once(b'F').chain(team_name.bytes()));
+                info.msg_log.push(remove_msg.clone());
+            }
         }
     }