Fix: crash when a player leaves the game.

This commit is contained in:
elcnesh
2014-06-10 11:17:19 +00:00
parent 6d7be31a50
commit 3bab44c173

View File

@@ -548,8 +548,8 @@ public class Game {
} }
final int shift = turnOrder.getShift(); final int shift = turnOrder.getShift();
final int totalNumPlayers = allPlayers.size();
if (-1 == iPlayer) { // if playerTurn has just lost if (-1 == iPlayer) { // if playerTurn has just lost
final int totalNumPlayers = allPlayers.size();
int iAlive; int iAlive;
iPlayer = allPlayers.indexOf(playerTurn); iPlayer = allPlayers.indexOf(playerTurn);
do { do {
@@ -561,10 +561,11 @@ public class Game {
} while (iAlive < 0); } while (iAlive < 0);
iPlayer = iAlive; iPlayer = iAlive;
} }
else { // for the case noone has died else { // for the case playerTurn hasn't died
iPlayer = (iPlayer + shift) % totalNumPlayers; final int numPlayersInGame = roIngamePlayers.size();
iPlayer = (iPlayer + shift) % numPlayersInGame;
if (iPlayer < 0) { if (iPlayer < 0) {
iPlayer += totalNumPlayers; iPlayer += numPlayersInGame;
} }
} }