minor visual change, server crash fix, multiplayer leave/concede fixes

This commit is contained in:
Max-Wilhelm Bruker 2011-02-15 22:50:16 +01:00
parent 6bdc8914a9
commit d4f600393f
10 changed files with 169 additions and 58 deletions

View file

@ -227,13 +227,17 @@ void Server_Game::removePlayer(Server_Player *player)
}
sendGameEvent(new Event_Leave(player->getPlayerId()));
bool playerActive = activePlayer == player->getPlayerId();
bool spectator = player->getSpectator();
delete player;
if (!getPlayerCount())
deleteLater();
else if (!spectator)
else if (!spectator) {
stopGameIfFinished();
if (gameStarted && playerActive)
nextTurn();
}
qobject_cast<Server_Room *>(parent())->broadcastGameListUpdate(this);
}
@ -271,7 +275,7 @@ void Server_Game::nextTurn()
++listPos;
if (listPos == keys.size())
listPos = 0;
} while (players.value(keys[listPos])->getSpectator());
} while (players.value(keys[listPos])->getSpectator() || players.value(keys[listPos])->getConceded());
setActivePlayer(keys[listPos]);
}