rust/hedgewars-server/src/core/server.rs
changeset 15531 ede5f4ec48f3
parent 15529 cc774c6e933e
child 15532 f1205f33bf5b
equal deleted inserted replaced
15530:a859f08ebb4f 15531:ede5f4ec48f3
   119 }
   119 }
   120 
   120 
   121 #[derive(Debug)]
   121 #[derive(Debug)]
   122 pub enum StartGameError {
   122 pub enum StartGameError {
   123     NotEnoughClans,
   123     NotEnoughClans,
   124     NotEnoughTeams,
       
   125     NotReady,
   124     NotReady,
   126     AlreadyInGame,
   125     AlreadyInGame,
   127 }
   126 }
   128 
   127 
   129 #[derive(Debug)]
   128 #[derive(Debug)]
   249             #[cfg(not(feature = "official-server"))]
   248             #[cfg(not(feature = "official-server"))]
   250             client.set_is_admin(data.is_local_admin);
   249             client.set_is_admin(data.is_local_admin);
   251 
   250 
   252             #[cfg(feature = "official-server")]
   251             #[cfg(feature = "official-server")]
   253             {
   252             {
   254                 client.set_is_registered(info.is_registered);
   253                 client.set_is_registered(data.is_registered);
   255                 client.set_is_admin(info.is_admin);
   254                 client.set_is_admin(data.is_admin);
   256                 client.set_is_contributor(info.is_contributor);
   255                 client.set_is_contributor(data.is_contributor);
   257             }
   256             }
   258 
   257 
   259             self.clients.insert(client_id, client);
   258             self.clients.insert(client_id, client);
   260         }
   259         }
   261     }
   260     }
   651                 Some(new_master_id) if new_master_id == self.client_id => Err(AlreadyMaster),
   650                 Some(new_master_id) if new_master_id == self.client_id => Err(AlreadyMaster),
   652                 Some(new_master_id) => {
   651                 Some(new_master_id) => {
   653                     let new_master = &mut self.server.clients[new_master_id];
   652                     let new_master = &mut self.server.clients[new_master_id];
   654                     if new_master.room_id == Some(self.room_id) {
   653                     if new_master.room_id == Some(self.room_id) {
   655                         self.server.clients[new_master_id].set_is_master(true);
   654                         self.server.clients[new_master_id].set_is_master(true);
   656                         let room = self.room_mut();
       
   657                         let old_master_id = self.room().master_id;
   655                         let old_master_id = self.room().master_id;
   658 
   656 
   659                         if let Some(master_id) = old_master_id {
   657                         if let Some(master_id) = old_master_id {
   660                             self.server.clients[master_id].set_is_master(false);
   658                             self.server.clients[master_id].set_is_master(false);
   661                         }
   659                         }