rust/hedgewars-server/src/handlers/common.rs
changeset 15522 4a0b06b03199
parent 15519 b3157d218ae2
child 15523 f4f6060b536c
--- 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(