diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-11-15 12:28:19 +0100 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-11-15 12:28:19 +0100 |
commit | b2527a9eaa7082c50ce6230e79df88edbced9abb (patch) | |
tree | ee6ab3ddc487600690f16b48137a97c72c396218 /server/player.cpp | |
parent | 2c6d82abe3c82041991066ca84ac067771756818 (diff) |
Implement server program flow around GameStart.
Diffstat (limited to 'server/player.cpp')
-rw-r--r-- | server/player.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/server/player.cpp b/server/player.cpp index b2cdd83..1901da7 100644 --- a/server/player.cpp +++ b/server/player.cpp @@ -8,7 +8,7 @@ Player::p Player::create(Connection::p c, boost::function<void (Player::p)> f) { return p; } -Player::Player(Connection::p c, boost::function<void (Player::p)> f) : connection(c), lobby_callback(f) { +Player::Player(Connection::p c, boost::function<void (Player::p)> f) : connection(c), timer(c->socket.get_io_service()), lobby_callback(f) { } @@ -41,10 +41,24 @@ void Player::handle_login(Message::p msg) { lobby_callback(shared_from_this()); } +void Player::handle_ready(Message::p msg) { + if(msg->type != Message::Types::Ready) { + return; + } + + ready_callback(); +} + std::string Player::nick() { return nick_; } -void Player::game_start() { - connection->send(make_shared<Message::GameStart>()); +void Player::game_start(boost::function<void ()> callback, std::vector<Player::p> players) { + Message::GameStart::p msg = make_shared<Message::GameStart>(); + + for(std::vector<Player::p>::iterator i = players.begin(); i != players.end(); i++) { + msg->players.push_back((*i)->nick()); + } + + connection->send(msg); } |