diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index bb58de4245b..c8b83756588 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -558,6 +558,7 @@ public abstract class GameImpl implements Game, Serializable { public void saveState(boolean bookmark) { if (!simulation && gameStates != null) { if (bookmark || saveGame) { + state.getPlayerList().setCurrent(playerList.get()); gameStates.save(state); } } @@ -663,7 +664,7 @@ public abstract class GameImpl implements Game, Serializable { GameState restore = gameStates.rollback(stateNum); if (restore != null) { state.restore(restore); - playerList.setCurrent(state.getActivePlayerId()); + playerList.setCurrent(state.getPlayerList().get()); } } } @@ -2778,7 +2779,7 @@ public abstract class GameImpl implements Game, Serializable { if (restore != null) { informPlayers(GameLog.getPlayerRequestColoredText("Player request: Rolling back to start of turn " + restore.getTurnNum())); state.restoreForRollBack(restore); - playerList.setCurrent(state.getActivePlayerId()); + playerList.setCurrent(state.getPlayerList().get()); // because restore uses the objects without copy each copy the state again gameStatesRollBack.put(getTurnNum(), state.copy()); executingRollback = true; diff --git a/Mage/src/main/java/mage/game/GameState.java b/Mage/src/main/java/mage/game/GameState.java index 205af9e108d..eec7695c562 100644 --- a/Mage/src/main/java/mage/game/GameState.java +++ b/Mage/src/main/java/mage/game/GameState.java @@ -204,7 +204,7 @@ public class GameState implements Serializable, Copyable { public void restore(GameState state) { this.activePlayerId = state.activePlayerId; - this.playerList.setCurrent(state.activePlayerId); + this.playerList.setCurrent(state.playerList.get()); this.priorityPlayerId = state.priorityPlayerId; this.stack = state.stack; this.command = state.command;