23 pub server_salt: String, |
23 pub server_salt: String, |
24 pub protocol_number: u16, |
24 pub protocol_number: u16, |
25 pub flags: ClientFlags, |
25 pub flags: ClientFlags, |
26 pub teams_in_game: u8, |
26 pub teams_in_game: u8, |
27 pub team_indices: Vec<u8>, |
27 pub team_indices: Vec<u8>, |
28 pub clan: Option<u8> |
28 pub clan: Option<u8>, |
29 } |
29 } |
30 |
30 |
31 impl HWClient { |
31 impl HWClient { |
32 pub fn new(id: ClientId, salt: String) -> HWClient { |
32 pub fn new(id: ClientId, salt: String) -> HWClient { |
33 HWClient { |
33 HWClient { |
42 team_indices: Vec::new(), |
42 team_indices: Vec::new(), |
43 clan: None, |
43 clan: None, |
44 } |
44 } |
45 } |
45 } |
46 |
46 |
47 fn contains(& self, mask: ClientFlags) -> bool { |
47 fn contains(&self, mask: ClientFlags) -> bool { |
48 self.flags.contains(mask) |
48 self.flags.contains(mask) |
49 } |
49 } |
50 |
50 |
51 fn set(&mut self, mask: ClientFlags, value: bool) { |
51 fn set(&mut self, mask: ClientFlags, value: bool) { |
52 self.flags.set(mask, value); |
52 self.flags.set(mask, value); |
53 } |
53 } |
54 |
54 |
55 pub fn is_admin(&self)-> bool { self.contains(ClientFlags::IS_ADMIN) } |
55 pub fn is_admin(&self) -> bool { |
56 pub fn is_master(&self)-> bool { self.contains(ClientFlags::IS_MASTER) } |
56 self.contains(ClientFlags::IS_ADMIN) |
57 pub fn is_ready(&self)-> bool { self.contains(ClientFlags::IS_READY) } |
57 } |
58 pub fn is_in_game(&self)-> bool { self.contains(ClientFlags::IS_IN_GAME) } |
58 pub fn is_master(&self) -> bool { |
59 pub fn is_joined_mid_game(&self)-> bool { self.contains(ClientFlags::IS_JOINED_MID_GAME) } |
59 self.contains(ClientFlags::IS_MASTER) |
60 pub fn is_checker(&self)-> bool { self.contains(ClientFlags::IS_CHECKER) } |
60 } |
|
61 pub fn is_ready(&self) -> bool { |
|
62 self.contains(ClientFlags::IS_READY) |
|
63 } |
|
64 pub fn is_in_game(&self) -> bool { |
|
65 self.contains(ClientFlags::IS_IN_GAME) |
|
66 } |
|
67 pub fn is_joined_mid_game(&self) -> bool { |
|
68 self.contains(ClientFlags::IS_JOINED_MID_GAME) |
|
69 } |
|
70 pub fn is_checker(&self) -> bool { |
|
71 self.contains(ClientFlags::IS_CHECKER) |
|
72 } |
61 |
73 |
62 pub fn set_is_admin(&mut self, value: bool) { self.set(ClientFlags::IS_ADMIN, value) } |
74 pub fn set_is_admin(&mut self, value: bool) { |
63 pub fn set_is_master(&mut self, value: bool) { self.set(ClientFlags::IS_MASTER, value) } |
75 self.set(ClientFlags::IS_ADMIN, value) |
64 pub fn set_is_ready(&mut self, value: bool) { self.set(ClientFlags::IS_READY, value) } |
76 } |
65 pub fn set_is_in_game(&mut self, value: bool) { self.set(ClientFlags::IS_IN_GAME, value) } |
77 pub fn set_is_master(&mut self, value: bool) { |
66 pub fn set_is_joined_mid_game(&mut self, value: bool) { self.set(ClientFlags::IS_JOINED_MID_GAME, value) } |
78 self.set(ClientFlags::IS_MASTER, value) |
67 pub fn set_is_checker(&mut self, value: bool) { self.set(ClientFlags::IS_CHECKER, value) } |
79 } |
|
80 pub fn set_is_ready(&mut self, value: bool) { |
|
81 self.set(ClientFlags::IS_READY, value) |
|
82 } |
|
83 pub fn set_is_in_game(&mut self, value: bool) { |
|
84 self.set(ClientFlags::IS_IN_GAME, value) |
|
85 } |
|
86 pub fn set_is_joined_mid_game(&mut self, value: bool) { |
|
87 self.set(ClientFlags::IS_JOINED_MID_GAME, value) |
|
88 } |
|
89 pub fn set_is_checker(&mut self, value: bool) { |
|
90 self.set(ClientFlags::IS_CHECKER, value) |
|
91 } |
68 } |
92 } |