summaryrefslogtreecommitdiff
path: root/server/player.cpp
diff options
context:
space:
mode:
authorAtle Hellvik Havsø <atle@havso.net>2010-11-21 21:35:50 +0100
committerAtle Hellvik Havsø <atle@havso.net>2010-11-21 21:35:50 +0100
commit9a2d4a69e13b344d4342af3c81373ac14eeb0368 (patch)
tree9811da502550967e3447882c0d243703a5fc4cfb /server/player.cpp
parent8832f496bfc0069561ba092b10c66fd0cc861b59 (diff)
Made the server send a empty RoundEnd message when the wall is empty (Contains only 14 tiles).
Signed-off-by: Atle Hellvik Havsø <atle@havso.net>
Diffstat (limited to 'server/player.cpp')
-rw-r--r--server/player.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/server/player.cpp b/server/player.cpp
index 6e1a7d3..ce6a116 100644
--- a/server/player.cpp
+++ b/server/player.cpp
@@ -57,7 +57,9 @@ void Player::handle_action(Message::p msg) {
Message::RoundAction::p action_msg = dynamic_pointer_cast<Message::RoundAction>(msg);
action_msg->action.player = id;
- action_callback(action_msg->action);
+ if(action_callback != 0) {
+ action_callback(action_msg->action);
+ }
}
std::string Player::nick() {
@@ -87,8 +89,16 @@ void Player::round_state(State state) {
connection->send(make_shared<Message::RoundState>(state));
}
+void Player::round_end() {
+ connection->send(make_shared<Message::RoundEnd>());
+}
+
void Player::get_action(boost::function<void (Action)> callback) {
action_callback = callback;
connection->recv(boost::bind(&Player::handle_action, shared_from_this(), _1));
}
+
+void Player::kill_action() {
+ action_callback = 0;
+}