rust/hedgewars-server/src/server/coretypes.rs
author unc0rr
Sun, 16 Dec 2018 00:12:29 +0100
changeset 14457 98ef2913ec73
parent 14415 06672690d71b
child 14687 5122c584804e
permissions -rw-r--r--
Apply rustfmt to all files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
     1
pub type ClientId = usize;
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
     2
pub type RoomId = usize;
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
     3
13795
e335daaa77a9 Add hogs per team named constant that absolutely no one asked for
alfadur
parents: 13478
diff changeset
     4
pub const MAX_HEDGEHOGS_PER_TEAM: u8 = 8;
e335daaa77a9 Add hogs per team named constant that absolutely no one asked for
alfadur
parents: 13478
diff changeset
     5
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
     6
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     7
pub enum ServerVar {
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     8
    MOTDNew(String),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     9
    MOTDOld(String),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    10
    LatestProto(u32),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    11
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    12
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    13
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    14
pub enum GameCfg {
13422
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    15
    FeatureSize(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    16
    MapType(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    17
    MapGenerator(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    18
    MazeSize(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    19
    Seed(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    20
    Template(u32),
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    21
13422
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    22
    Ammo(String, Option<String>),
13801
5fb40c8e5542 port some legacy protocol support
alfadur
parents: 13795
diff changeset
    23
    Scheme(String, Vec<String>),
13422
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    24
    Script(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    25
    Theme(String),
14457
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    26
    DrawnMap(String),
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    27
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    28
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    29
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    30
pub struct TeamInfo {
13419
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    31
    pub name: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    32
    pub color: u8,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    33
    pub grave: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    34
    pub fort: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    35
    pub voice_pack: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    36
    pub flag: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    37
    pub difficulty: u8,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    38
    pub hedgehogs_number: u8,
13795
e335daaa77a9 Add hogs per team named constant that absolutely no one asked for
alfadur
parents: 13478
diff changeset
    39
    pub hedgehogs: [HedgehogInfo; MAX_HEDGEHOGS_PER_TEAM as usize],
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    40
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    41
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    42
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    43
pub struct HedgehogInfo {
13419
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    44
    pub name: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    45
    pub hat: String,
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    46
}
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    47
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    48
#[derive(PartialEq, Eq, Clone, Debug)]
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    49
pub enum VoteType {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    50
    Kick(String),
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    51
    Map(Option<String>),
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    52
    Pause,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    53
    NewSeed,
14457
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    54
    HedgehogsPerTeam(u8),
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    55
}
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    56
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    57
#[derive(Clone, Debug)]
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    58
pub struct Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    59
    pub ttl: u32,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    60
    pub voters: Vec<ClientId>,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    61
    pub votes: Vec<(ClientId, bool)>,
14457
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    62
    pub kind: VoteType,
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    63
}
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    64
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    65
impl Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    66
    pub fn new(kind: VoteType, voters: Vec<ClientId>) -> Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    67
        Voting {
14457
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    68
            kind,
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    69
            voters,
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    70
            ttl: 2,
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    71
            votes: Vec::new(),
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    72
        }
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    73
    }
14457
98ef2913ec73 Apply rustfmt to all files
unc0rr
parents: 14415
diff changeset
    74
}