From 811b733cbe63ed12b0aeca974110a351b201c24f Mon Sep 17 00:00:00 2001 From: drdev Date: Thu, 13 Mar 2014 22:45:18 +0000 Subject: [PATCH] Support showing hidden cards if in developer mode --- forge-m-base/src/forge/Forge.java | 6 ++++-- forge-m-base/src/forge/screens/FScreen.java | 4 ++-- forge-m-base/src/forge/screens/match/FControl.java | 11 +++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/forge-m-base/src/forge/Forge.java b/forge-m-base/src/forge/Forge.java index e147c1ba59d..86f90fcdbc2 100644 --- a/forge-m-base/src/forge/Forge.java +++ b/forge-m-base/src/forge/Forge.java @@ -99,15 +99,17 @@ public class Forge implements ApplicationListener { public static void openScreen(FScreen screen0) { if (currentScreen == screen0) { return; } + if (currentScreen != null && !currentScreen.onSwitchAway()) { + return; + } screens.push(screen0); setCurrentScreen(screen0); - screen0.onOpen(); } private static void setCurrentScreen(FScreen screen0) { currentScreen = screen0; currentScreen.setSize(screenWidth, screenHeight); - currentScreen.onOpen(); + currentScreen.onActivate(); } @Override diff --git a/forge-m-base/src/forge/screens/FScreen.java b/forge-m-base/src/forge/screens/FScreen.java index 87da8cda0d7..00336683886 100644 --- a/forge-m-base/src/forge/screens/FScreen.java +++ b/forge-m-base/src/forge/screens/FScreen.java @@ -54,10 +54,10 @@ public abstract class FScreen extends FContainer { } } - public void onOpen() { + public void onActivate() { } - public boolean onSwitch() { + public boolean onSwitchAway() { return true; } diff --git a/forge-m-base/src/forge/screens/match/FControl.java b/forge-m-base/src/forge/screens/match/FControl.java index 9f6b3b8c44f..596b55344df 100644 --- a/forge-m-base/src/forge/screens/match/FControl.java +++ b/forge-m-base/src/forge/screens/match/FControl.java @@ -48,6 +48,7 @@ public class FControl { private static List sortedPlayers; private static final EventBus uiEvents; private static boolean gameHasHumanPlayer; + private static boolean devMode; private static final MatchUiEventVisitor visitor = new MatchUiEventVisitor(); private static final FControlGameEventHandler fcVisitor = new FControlGameEventHandler(); private static final FControlGamePlayback playbackControl = new FControlGamePlayback(); @@ -164,7 +165,13 @@ public class FControl { playerPanels.add(new VPlayerPanel(p, localPlayer)); } - view = new MatchScreen(playerPanels); + view = new MatchScreen(playerPanels) { + @Override + public void onActivate() { + devMode = FModel.getPreferences().getPrefBoolean(FPref.DEV_MODE_ENABLED); //cache devMode for performance when match screen opened + super.onActivate(); + } + }; view.getGameDetails().init(players); } @@ -241,7 +248,7 @@ public class FControl { } public static boolean mayShowCard(Card c) { - return game == null || !gameHasHumanPlayer || c.canBeShownTo(getCurrentPlayer()); + return game == null || !gameHasHumanPlayer || devMode || c.canBeShownTo(getCurrentPlayer()); } public static void showCombat(Combat combat) {