Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/netserver.cc')
-rw-r--r--src/core/netserver.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/netserver.cc b/src/core/netserver.cc
index 73aa73d..2639b97 100644
--- a/src/core/netserver.cc
+++ b/src/core/netserver.cc
@@ -159,9 +159,17 @@ void NetServer::reap()
if (client->error()) {
- // notify the game server
- if (client->state() == NetClient::Connected)
+ // notify other clients
+ for (Clients::iterator cit = clients.begin(); cit != clients.end(); cit++) {
+ if ((*cit) != (*it)) {
+ send_player_disconnect_info((*cit), (*it)->player());
+ }
+ }
+
+ if (client->state() == NetClient::Connected) {
+ // notify the game server
server()->player_disconnect((*it)->player());
+ }
// remove the client
delete client;