equal
deleted
inserted
replaced
987 let (client, room) = self.get_mut(); |
987 let (client, room) = self.get_mut(); |
988 let client_left = client.is_in_game(); |
988 let client_left = client.is_in_game(); |
989 if client_left { |
989 if client_left { |
990 client.set_is_in_game(false); |
990 client.set_is_in_game(false); |
991 |
991 |
992 let team_names: Vec<_> = room |
|
993 .client_teams(client.id) |
|
994 .map(|t| t.name.clone()) |
|
995 .collect(); |
|
996 |
|
997 if let Some(ref mut info) = room.game_info { |
992 if let Some(ref mut info) = room.game_info { |
|
993 let team_names: Vec<_> = info |
|
994 .client_teams(client.id) |
|
995 .map(|t| t.name.clone()) |
|
996 .collect(); |
|
997 |
|
998 info.left_teams.extend(team_names.iter().cloned()); |
|
999 info.ingame_teams_count -= team_names.len() as u8; |
|
1000 |
998 for team_name in &team_names { |
1001 for team_name in &team_names { |
999 let remove_msg = |
1002 let remove_msg = |
1000 utils::to_engine_msg(std::iter::once(b'F').chain(team_name.bytes())); |
1003 utils::to_engine_msg(std::iter::once(b'F').chain(team_name.bytes())); |
1001 if let Some(m) = &info.sync_msg { |
1004 if let Some(m) = &info.sync_msg { |
1002 info.msg_log.push(m.clone()); |
1005 info.msg_log.push(m.clone()); |
1006 } |
1009 } |
1007 info.msg_log.push(remove_msg); |
1010 info.msg_log.push(remove_msg); |
1008 } |
1011 } |
1009 Some(team_names) |
1012 Some(team_names) |
1010 } else { |
1013 } else { |
1011 unreachable!(); |
1014 None |
1012 } |
1015 } |
1013 } else { |
1016 } else { |
1014 None |
1017 None |
1015 } |
1018 } |
1016 } |
1019 } |
1123 client.clan = teams.clone().next().map(|t| t.color); |
1126 client.clan = teams.clone().next().map(|t| t.color); |
1124 let team_names: Vec<_> = teams.map(|t| t.name.clone()).collect(); |
1127 let team_names: Vec<_> = teams.map(|t| t.name.clone()).collect(); |
1125 |
1128 |
1126 if !team_names.is_empty() { |
1129 if !team_names.is_empty() { |
1127 info.left_teams.retain(|name| !team_names.contains(&name)); |
1130 info.left_teams.retain(|name| !team_names.contains(&name)); |
1128 } |
1131 info.ingame_teams_count += team_names.len() as u8; |
1129 } |
1132 } |
1130 } |
1133 } |
|
1134 } |