--- 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))
}
+ _ => (),
}
}