Prevent incorrectly preventing certain information being correct when first opening match screen

This commit is contained in:
drdev
2014-10-01 17:12:35 +00:00
parent ec1451fe85
commit 3bd35d225c
4 changed files with 3 additions and 29 deletions

View File

@@ -10,7 +10,6 @@ import forge.Forge;
import forge.Graphics; import forge.Graphics;
import forge.assets.FSkinColor; import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors; import forge.assets.FSkinColor.Colors;
import forge.match.MatchUtil;
import forge.screens.match.MatchController; import forge.screens.match.MatchController;
public abstract class FOverlay extends FContainer { public abstract class FOverlay extends FContainer {
@@ -76,7 +75,7 @@ public abstract class FOverlay extends FContainer {
if (visible0) { if (visible0) {
//rotate overlay to face top human player if needed //rotate overlay to face top human player if needed
setRotate180(MatchUtil.getGame() != null && MatchController.getView().isTopHumanPlayerActive()); setRotate180(MatchController.getView() != null && MatchController.getView().isTopHumanPlayerActive());
overlays.push(this); overlays.push(this);
} }
else if (!hidingAll) { //hiding all handles cleaning up overlay collection else if (!hidingAll) { //hiding all handles cleaning up overlay collection

View File

@@ -32,7 +32,6 @@ import forge.game.event.GameEventCombatChanged;
import forge.game.event.GameEventCombatEnded; import forge.game.event.GameEventCombatEnded;
import forge.game.event.GameEventGameFinished; import forge.game.event.GameEventGameFinished;
import forge.game.event.GameEventGameOutcome; import forge.game.event.GameEventGameOutcome;
import forge.game.event.GameEventGameStarted;
import forge.game.event.GameEventManaPool; import forge.game.event.GameEventManaPool;
import forge.game.event.GameEventPlayerControl; import forge.game.event.GameEventPlayerControl;
import forge.game.event.GameEventPlayerLivesChanged; import forge.game.event.GameEventPlayerLivesChanged;
@@ -79,12 +78,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
ev.visit(this); ev.visit(this);
} }
@Override
public Void visit(GameEventGameStarted event) {
gameView.endUpdateDelay(); //allow views to update once game starts
return null;
}
private final AtomicBoolean phaseUpdPlanned = new AtomicBoolean(false); private final AtomicBoolean phaseUpdPlanned = new AtomicBoolean(false);
@Override @Override
public Void visit(final GameEventTurnPhase ev) { public Void visit(final GameEventTurnPhase ev) {

View File

@@ -182,7 +182,6 @@ public class MatchUtil {
LocalGameView gameView = controller.getGameView(); LocalGameView gameView = controller.getGameView();
if (humanCount == 0) { if (humanCount == 0) {
currentPlayer = p; currentPlayer = p;
gameView.startUpdateDelay(); //delay updating views until game finishes initializing
} }
game.subscribeToEvents(new FControlGameEventHandler(gameView, humanCount == 0)); game.subscribeToEvents(new FControlGameEventHandler(gameView, humanCount == 0));
gameViews.add(gameView); gameViews.add(gameView);
@@ -194,7 +193,6 @@ public class MatchUtil {
LocalGameView gameView = new WatchLocalGame(GuiBase.getInterface(), game); LocalGameView gameView = new WatchLocalGame(GuiBase.getInterface(), game);
currentPlayer = sortedPlayers.get(0); currentPlayer = sortedPlayers.get(0);
gameView.setLocalPlayer(currentPlayer); gameView.setLocalPlayer(currentPlayer);
gameView.startUpdateDelay();
game.subscribeToEvents(new FControlGameEventHandler(gameView, true)); game.subscribeToEvents(new FControlGameEventHandler(gameView, true));
gameViews.add(gameView); gameViews.add(gameView);
} }

View File

@@ -38,7 +38,6 @@ public abstract class LocalGameView implements IGameView {
protected final InputQueue inputQueue; protected final InputQueue inputQueue;
protected final InputProxy inputProxy; protected final InputProxy inputProxy;
private PlayerView localPlayerView; private PlayerView localPlayerView;
private int updateDelays;
public LocalGameView(IGuiBase gui0, Game game0) { public LocalGameView(IGuiBase gui0, Game game0) {
game = game0; game = game0;
@@ -365,9 +364,7 @@ public abstract class LocalGameView implements IGameView {
PlayerView view = MatchUtil.players.get(p.getId()); PlayerView view = MatchUtil.players.get(p.getId());
if (view == null) { if (view == null) {
view = new PlayerView(p.getLobbyPlayer(), p.getId()); view = new PlayerView(p.getLobbyPlayer(), p.getId());
if (updateDelays == 0) { writePlayerToView(p, view);
writePlayerToView(p, view);
}
MatchUtil.players.put(p, view); MatchUtil.players.put(p, view);
} }
return view; return view;
@@ -408,26 +405,13 @@ public abstract class LocalGameView implements IGameView {
CardView view = MatchUtil.cards.get(c.getId()); CardView view = MatchUtil.cards.get(c.getId());
if (view == null) { if (view == null) {
view = new CardView(c.getId()); view = new CardView(c.getId());
if (updateDelays == 0) { writeCardToView(c, view, MatchUtil.getGameView());
writeCardToView(c, view, MatchUtil.getGameView());
}
MatchUtil.cards.put(c, view); MatchUtil.cards.put(c, view);
} }
return view; return view;
} }
public void startUpdateDelay() {
updateDelays++;
}
public void endUpdateDelay() {
if (updateDelays > 0 && --updateDelays == 0) {
updateViews();
}
}
public void updateViews() { public void updateViews() {
if (updateDelays > 0) { return; }
for (Player p : MatchUtil.players.getKeys()) { for (Player p : MatchUtil.players.getKeys()) {
writePlayerToView(p, getPlayerView(p)); writePlayerToView(p, getPlayerView(p));
} }