gameServer2/src/server/coretypes.rs
author Wuzzy <Wuzzy2@mail.ru>
Wed, 18 Jul 2018 01:35:59 +0200
changeset 13506 36f3f77e9b1b
parent 13478 d79795acaa73
child 13795 e335daaa77a9
permissions -rw-r--r--
Switch from http:// to https:// URLs where possible
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
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
     4
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     5
pub enum ServerVar {
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     6
    MOTDNew(String),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     7
    MOTDOld(String),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     8
    LatestProto(u32),
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
     9
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    10
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    11
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    12
pub enum GameCfg {
13422
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    13
    FeatureSize(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    14
    MapType(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    15
    MapGenerator(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    16
    MazeSize(u32),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    17
    Seed(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    18
    Template(u32),
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    19
13422
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    20
    Ammo(String, Option<String>),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    21
    Scheme(String, Option<Vec<String>>),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    22
    Script(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    23
    Theme(String),
5fb27f94fc3b Implement game config messages
alfadur
parents: 13419
diff changeset
    24
    DrawnMap(String)
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    25
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    26
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    27
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    28
pub struct TeamInfo {
13419
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    29
    pub name: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    30
    pub color: u8,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    31
    pub grave: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    32
    pub fort: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    33
    pub voice_pack: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    34
    pub flag: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    35
    pub difficulty: u8,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    36
    pub hedgehogs_number: u8,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    37
    pub hedgehogs: [HedgehogInfo; 8],
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    38
}
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    39
13119
1e39b8749072 separated the server logic from all the async io mess.
alfadur
parents: 12131
diff changeset
    40
#[derive(PartialEq, Eq, Clone, Debug)]
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    41
pub struct HedgehogInfo {
13419
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    42
    pub name: String,
81e0ed105f5d implementation of team related messages
alfadur
parents: 13119
diff changeset
    43
    pub hat: String,
12130
6273f89ab13d Start on messages parser
unc0rr
parents:
diff changeset
    44
}
13478
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    45
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    46
#[derive(PartialEq, Eq, Clone, Debug)]
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    47
pub enum VoteType {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    48
    Kick(String),
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    49
    Map(Option<String>),
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    50
    Pause,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    51
    NewSeed,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    52
    HedgehogsPerTeam(u8)
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    53
}
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    54
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    55
#[derive(Clone, Debug)]
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    56
pub struct Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    57
    pub ttl: u32,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    58
    pub voters: Vec<ClientId>,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    59
    pub votes: Vec<(ClientId, bool)>,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    60
    pub kind: VoteType
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    61
}
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    62
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    63
impl Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    64
    pub fn new(kind: VoteType, voters: Vec<ClientId>) -> Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    65
        Voting {
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    66
            kind, voters, ttl: 2,
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    67
            votes: Vec::new()
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    68
        }
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    69
    }
d79795acaa73 Mostly implement voting
alfadur
parents: 13422
diff changeset
    70
}