diff -r 1fcce8feace4 -r 4a0b06b03199 rust/hedgewars-server/src/handlers/common.rs --- a/rust/hedgewars-server/src/handlers/common.rs Mon Dec 23 18:11:15 2019 +0300 +++ b/rust/hedgewars-server/src/handlers/common.rs Mon Dec 23 18:55:25 2019 +0300 @@ -74,11 +74,9 @@ let server_msg = ServerMessage(server.get_greetings(client).to_string()); let rooms_msg = Rooms( - server - .rooms - .iter() - .filter(|(_, r)| r.protocol_number == client.protocol_number) - .flat_map(|(_, r)| r.info(r.master_id.map(|id| server.client(id)))) + server.iter_rooms() + .filter(|r| r.protocol_number == client.protocol_number) + .flat_map(|r| r.info(r.master_id.map(|id| server.client(id)))) .collect(), ); @@ -342,7 +340,7 @@ to_client: ClientId, response: &mut Response, ) { - let room = &server.rooms[room_id]; + let room = server.room(room_id); if let Some(id) = room.master_id { response.add( ClientFlags( @@ -378,13 +376,13 @@ } VoteType::Map(None) => (), VoteType::Map(Some(name)) => { - if let Some(location) = server.rooms[room_id].load_config(&name) { + if let Some(location) = server.room_mut(room_id).load_config(&name) { response.add( server_chat(location.to_string()) .send_all() .in_room(room_id), ); - let room = &server.rooms[room_id]; + let room = &server.room(room_id); let room_master = if let Some(id) = room.master_id { Some(server.client(id)) } else { @@ -394,13 +392,13 @@ for client in server.iter_clients() { if client.room_id == Some(room_id) { - super::common::get_room_config(&server.rooms[room_id], client.id, response); + super::common::get_room_config(server.room(room_id), client.id, response); } } } } VoteType::Pause => { - if let Some(ref mut info) = server.rooms[room_id].game_info { + if let Some(ref mut info) = server.room_mut(room_id).game_info { info.is_paused = !info.is_paused; response.add( server_chat("Pause toggled.".to_string()) @@ -418,10 +416,10 @@ let seed = thread_rng().gen_range(0, 1_000_000_000).to_string(); let cfg = GameCfg::Seed(seed); response.add(cfg.to_server_msg().send_all().in_room(room_id)); - server.rooms[room_id].set_config(cfg); + server.room_mut(room_id).set_config(cfg); } VoteType::HedgehogsPerTeam(number) => { - let r = &mut server.rooms[room_id]; + let r = server.room_mut(room_id); let nicks = r.set_hedgehogs_number(number); response.extend(