209 |
209 |
210 if info.is_paused { |
210 if info.is_paused { |
211 response.add(ForwardEngineMessage(vec![to_engine_msg(once(b'I'))]).send_self()); |
211 response.add(ForwardEngineMessage(vec![to_engine_msg(once(b'I'))]).send_self()); |
212 } |
212 } |
213 |
213 |
214 for (_, original_team) in &info.original_teams { |
214 for original_team in &info.original_teams { |
215 if let Some(team) = room.find_team(|team| team.name == original_team.name) { |
215 if let Some(team) = room.find_team(|team| team.name == original_team.info.name) { |
216 if team != original_team { |
216 if *team != original_team.info { |
217 response.add(TeamRemove(original_team.name.clone()).send_self()); |
217 response.add(TeamRemove(original_team.info.name.clone()).send_self()); |
218 response.add(TeamAdd(team.to_protocol()).send_self()); |
218 response.add(TeamAdd(team.to_protocol()).send_self()); |
219 } |
219 } |
220 } else { |
220 } else { |
221 response.add(TeamRemove(original_team.name.clone()).send_self()); |
221 response.add(TeamRemove(original_team.info.name.clone()).send_self()); |
222 } |
222 } |
223 } |
223 } |
224 |
224 |
225 for (_, team) in &room.teams { |
225 for team in &room.teams { |
226 if !info.original_teams.iter().any(|(_, t)| t.name == team.name) { |
226 if !info |
227 response.add(TeamAdd(team.to_protocol()).send_self()); |
227 .original_teams |
|
228 .iter() |
|
229 .any(|original_team| original_team.info.name == team.info.name) |
|
230 { |
|
231 response.add(TeamAdd(team.info.to_protocol()).send_self()); |
228 } |
232 } |
229 } |
233 } |
230 |
234 |
231 get_room_config_impl(room.config(), Destination::ToSelf, response); |
235 get_room_config_impl(room.config(), Destination::ToSelf, response); |
232 } |
236 } |
401 let current_teams = match room.game_info { |
405 let current_teams = match room.game_info { |
402 Some(ref info) => &info.original_teams, |
406 Some(ref info) => &info.original_teams, |
403 None => &room.teams, |
407 None => &room.teams, |
404 }; |
408 }; |
405 |
409 |
406 get_teams(current_teams.iter().map(|(_, t)| t), destination, response); |
410 get_teams( |
|
411 current_teams.iter().map(|team| &team.info), |
|
412 destination, |
|
413 response, |
|
414 ); |
407 } |
415 } |
408 |
416 |
409 pub fn get_room_flags( |
417 pub fn get_room_flags( |
410 server: &HwServer, |
418 server: &HwServer, |
411 room_id: RoomId, |
419 room_id: RoomId, |