summaryrefslogtreecommitdiff
path: root/server/player.cpp
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2010-11-15 12:28:19 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2010-11-15 12:28:19 +0100
commitb2527a9eaa7082c50ce6230e79df88edbced9abb (patch)
treeee6ab3ddc487600690f16b48137a97c72c396218 /server/player.cpp
parent2c6d82abe3c82041991066ca84ac067771756818 (diff)
Implement server program flow around GameStart.
Diffstat (limited to 'server/player.cpp')
-rw-r--r--server/player.cpp20
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);
}