gameServer2/src/server/client.rs
changeset 13798 4664da990556
parent 13529 662f7df89d06
child 13805 0463a4221327
equal deleted inserted replaced
13797:c5edfcfac68b 13798:4664da990556
     5         const IS_ADMIN = 0b0000_0001;
     5         const IS_ADMIN = 0b0000_0001;
     6         const IS_MASTER = 0b0000_0010;
     6         const IS_MASTER = 0b0000_0010;
     7         const IS_READY = 0b0000_0100;
     7         const IS_READY = 0b0000_0100;
     8         const IS_IN_GAME = 0b0000_1000;
     8         const IS_IN_GAME = 0b0000_1000;
     9         const IS_JOINED_MID_GAME = 0b0001_0000;
     9         const IS_JOINED_MID_GAME = 0b0001_0000;
       
    10         const IS_CHECKER = 0b0010_0000;
    10 
    11 
    11         const NONE = 0b0000_0000;
    12         const NONE = 0b0000_0000;
    12         const DEFAULT = Self::NONE.bits;
    13         const DEFAULT = Self::NONE.bits;
    13     }
    14     }
    14 }
    15 }
    15 
    16 
    16 pub struct HWClient {
    17 pub struct HWClient {
    17     pub id: ClientId,
    18     pub id: ClientId,
    18     pub room_id: Option<usize>,
    19     pub room_id: Option<usize>,
    19     pub nick: String,
    20     pub nick: String,
       
    21     pub web_password: String,
       
    22     pub server_salt: String,
    20     pub protocol_number: u16,
    23     pub protocol_number: u16,
    21     pub flags: ClientFlags,
    24     pub flags: ClientFlags,
    22     pub teams_in_game: u8,
    25     pub teams_in_game: u8,
    23     pub team_indices: Vec<u8>,
    26     pub team_indices: Vec<u8>,
    24     pub clan: Option<u8>
    27     pub clan: Option<u8>
    25 }
    28 }
    26 
    29 
    27 impl HWClient {
    30 impl HWClient {
    28     pub fn new(id: ClientId) -> HWClient {
    31     pub fn new(id: ClientId, salt: String) -> HWClient {
    29         HWClient {
    32         HWClient {
    30             id,
    33             id,
    31             room_id: None,
    34             room_id: None,
    32             nick: String::new(),
    35             nick: String::new(),
       
    36             web_password: String::new(),
       
    37             server_salt: salt,
    33             protocol_number: 0,
    38             protocol_number: 0,
    34             flags: ClientFlags::DEFAULT,
    39             flags: ClientFlags::DEFAULT,
    35             teams_in_game: 0,
    40             teams_in_game: 0,
    36             team_indices: Vec::new(),
    41             team_indices: Vec::new(),
    37             clan: None,
    42             clan: None,
    49     pub fn is_admin(&self)-> bool { self.contains(ClientFlags::IS_ADMIN) }
    54     pub fn is_admin(&self)-> bool { self.contains(ClientFlags::IS_ADMIN) }
    50     pub fn is_master(&self)-> bool { self.contains(ClientFlags::IS_MASTER) }
    55     pub fn is_master(&self)-> bool { self.contains(ClientFlags::IS_MASTER) }
    51     pub fn is_ready(&self)-> bool { self.contains(ClientFlags::IS_READY) }
    56     pub fn is_ready(&self)-> bool { self.contains(ClientFlags::IS_READY) }
    52     pub fn is_in_game(&self)-> bool { self.contains(ClientFlags::IS_IN_GAME) }
    57     pub fn is_in_game(&self)-> bool { self.contains(ClientFlags::IS_IN_GAME) }
    53     pub fn is_joined_mid_game(&self)-> bool { self.contains(ClientFlags::IS_JOINED_MID_GAME) }
    58     pub fn is_joined_mid_game(&self)-> bool { self.contains(ClientFlags::IS_JOINED_MID_GAME) }
       
    59     pub fn is_checker(&self)-> bool { self.contains(ClientFlags::IS_CHECKER) }
    54 
    60 
    55     pub fn set_is_admin(&mut self, value: bool) { self.set(ClientFlags::IS_ADMIN, value) }
    61     pub fn set_is_admin(&mut self, value: bool) { self.set(ClientFlags::IS_ADMIN, value) }
    56     pub fn set_is_master(&mut self, value: bool) { self.set(ClientFlags::IS_MASTER, value) }
    62     pub fn set_is_master(&mut self, value: bool) { self.set(ClientFlags::IS_MASTER, value) }
    57     pub fn set_is_ready(&mut self, value: bool) { self.set(ClientFlags::IS_READY, value) }
    63     pub fn set_is_ready(&mut self, value: bool) { self.set(ClientFlags::IS_READY, value) }
    58     pub fn set_is_in_game(&mut self, value: bool) { self.set(ClientFlags::IS_IN_GAME, value) }
    64     pub fn set_is_in_game(&mut self, value: bool) { self.set(ClientFlags::IS_IN_GAME, value) }
    59     pub fn set_is_joined_mid_game(&mut self, value: bool) { self.set(ClientFlags::IS_JOINED_MID_GAME, value) }
    65     pub fn set_is_joined_mid_game(&mut self, value: bool) { self.set(ClientFlags::IS_JOINED_MID_GAME, value) }
       
    66     pub fn set_is_checker(&mut self, value: bool) { self.set(ClientFlags::IS_CHECKER, value) }
    60 }
    67 }