rust/hedgewars-server/src/core/client.rs
changeset 16120 5febd2bc5372
parent 16018 fb389df02e3e
equal deleted inserted replaced
16119:278533359a93 16120:5febd2bc5372
     1 use super::types::ClientId;
     1 use super::types::ClientId;
     2 use bitflags::*;
     2 use bitflags::*;
       
     3 use std::ops::Deref;
     3 
     4 
     4 bitflags! {
     5 bitflags! {
     5     pub struct ClientFlags: u8 {
     6     pub struct ClientFlags: u16 {
     6         const IS_ADMIN = 0b0000_0001;
     7         const IS_ADMIN = 0b0000_0001;
     7         const IS_MASTER = 0b0000_0010;
     8         const IS_MASTER = 0b0000_0010;
     8         const IS_READY = 0b0000_0100;
     9         const IS_READY = 0b0000_0100;
     9         const IS_IN_GAME = 0b0000_1000;
    10         const IS_IN_GAME = 0b0000_1000;
    10         const IS_CONTRIBUTOR = 0b0001_0000;
    11         const IS_CONTRIBUTOR = 0b0001_0000;
    11         const HAS_SUPER_POWER = 0b0010_0000;
    12         const HAS_SUPER_POWER = 0b0010_0000;
    12         const IS_REGISTERED = 0b0100_0000;
    13         const IS_REGISTERED = 0b0100_0000;
    13         const IS_MODERATOR = 0b1000_0000;
    14         const IS_MODERATOR = 0b1000_0000;
       
    15         const IS_REJOINED = 0b1_0000_0000;
    14 
    16 
    15         const NONE = 0b0000_0000;
    17         const NONE = 0b0000_0000;
    16         const DEFAULT = Self::NONE.bits;
    18         const DEFAULT = Self::NONE.bits;
    17     }
    19     }
    18 }
    20 }
    70         self.contains(ClientFlags::HAS_SUPER_POWER)
    72         self.contains(ClientFlags::HAS_SUPER_POWER)
    71     }
    73     }
    72     pub fn is_registered(&self) -> bool {
    74     pub fn is_registered(&self) -> bool {
    73         self.contains(ClientFlags::IS_REGISTERED)
    75         self.contains(ClientFlags::IS_REGISTERED)
    74     }
    76     }
       
    77     pub fn is_rejoined(&self) -> bool {
       
    78         self.contains(ClientFlags::IS_REJOINED)
       
    79     }
    75 
    80 
    76     pub fn set_is_admin(&mut self, value: bool) {
    81     pub fn set_is_admin(&mut self, value: bool) {
    77         self.set(ClientFlags::IS_ADMIN, value)
    82         self.set(ClientFlags::IS_ADMIN, value)
    78     }
    83     }
    79     pub fn set_is_master(&mut self, value: bool) {
    84     pub fn set_is_master(&mut self, value: bool) {
    92         self.set(ClientFlags::HAS_SUPER_POWER, value)
    97         self.set(ClientFlags::HAS_SUPER_POWER, value)
    93     }
    98     }
    94     pub fn set_is_registered(&mut self, value: bool) {
    99     pub fn set_is_registered(&mut self, value: bool) {
    95         self.set(ClientFlags::IS_REGISTERED, value)
   100         self.set(ClientFlags::IS_REGISTERED, value)
    96     }
   101     }
       
   102     pub fn set_is_rejoined(&mut self, value: bool) {
       
   103         self.set(ClientFlags::IS_REJOINED, value)
       
   104     }
    97 }
   105 }