From b4f6dbdeb645bddfa4673984bcf9ae2ca995f2ae Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 20 Jul 2013 20:37:25 +0000 Subject: [PATCH] added a method to launch game by a single call to FControl (removed duplicate code from controllers specific to game modes) --- src/main/java/forge/control/FControl.java | 8 +++++++- src/main/java/forge/game/limited/GauntletMini.java | 3 +-- .../forge/gui/home/gauntlet/CSubmenuGauntletContests.java | 3 +-- .../forge/gui/home/gauntlet/CSubmenuGauntletLoad.java | 3 +-- .../forge/gui/home/gauntlet/CSubmenuGauntletQuick.java | 3 +-- src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java | 3 +-- .../forge/gui/home/sanctioned/CSubmenuConstructed.java | 3 +-- .../java/forge/gui/home/sanctioned/CSubmenuDraft.java | 3 +-- .../java/forge/gui/home/variant/CSubmenuArchenemy.java | 3 +-- .../java/forge/gui/home/variant/CSubmenuPlanechase.java | 3 +-- .../java/forge/gui/home/variant/CSubmenuVanguard.java | 3 +-- src/main/java/forge/gui/match/ControlWinLose.java | 6 ++---- src/main/java/forge/gui/match/GauntletWinLose.java | 3 +-- 13 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index a2ea72f6a80..d73b9281efe 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -38,6 +38,7 @@ import forge.Singletons; import forge.control.KeyboardShortcuts.Shortcut; import forge.game.Game; import forge.game.GameType; +import forge.game.Match; import forge.game.player.LobbyPlayer; import forge.game.player.Player; import forge.gui.GuiDialog; @@ -401,9 +402,14 @@ public enum FControl { } + public final void startGameWithUi(Match match) { + attachToGame(match.createGame()); + match.startGame(); + } + private final FControlGameEventHandler fcVisitor = new FControlGameEventHandler(this); private final FControlGamePlayback playbackControl = new FControlGamePlayback(this); - public void attachToGame(Game game0) { + private void attachToGame(Game game0) { // TODO: Detach from other game we might be looking at diff --git a/src/main/java/forge/game/limited/GauntletMini.java b/src/main/java/forge/game/limited/GauntletMini.java index 19a1f62331d..c60ebaf0c9b 100644 --- a/src/main/java/forge/game/limited/GauntletMini.java +++ b/src/main/java/forge/game/limited/GauntletMini.java @@ -169,8 +169,7 @@ public class GauntletMini { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java index 06a55c9f37a..fe5330e37f8 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java @@ -127,8 +127,7 @@ public enum CSubmenuGauntletContests implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java index aedfee870ef..501ec99ce90 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java @@ -118,8 +118,7 @@ public enum CSubmenuGauntletLoad implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java index 76aa550422a..75243debe65 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java @@ -152,8 +152,7 @@ public enum CSubmenuGauntletQuick implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index 7f48bed9a58..b2adb308b0f 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -444,8 +444,7 @@ public class SSubmenuQuestUtil { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); // no overlays here? } }); diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java index 9aa3c7198d3..d508ced3c90 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java @@ -127,8 +127,7 @@ public enum CSubmenuConstructed implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java index a87da9cbf19..ee7e47faa85 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java @@ -140,8 +140,7 @@ public enum CSubmenuDraft implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java index 6e43e24c1ac..ea08a02b9e2 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java @@ -238,8 +238,7 @@ public enum CSubmenuArchenemy implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index fe715ba8ffe..bb3326786ea 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -219,8 +219,7 @@ public enum CSubmenuPlanechase implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java index 1c0fd7904bd..077e7e4c7ce 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java @@ -181,8 +181,7 @@ public enum CSubmenuVanguard implements ICDoc { FThreads.invokeInEdtLater(new Runnable(){ @Override public void run() { - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); SOverlayUtils.hideOverlay(); } }); diff --git a/src/main/java/forge/gui/match/ControlWinLose.java b/src/main/java/forge/gui/match/ControlWinLose.java index a351b860d9f..d5f4ba6aa4e 100644 --- a/src/main/java/forge/gui/match/ControlWinLose.java +++ b/src/main/java/forge/gui/match/ControlWinLose.java @@ -78,8 +78,7 @@ public class ControlWinLose { executeAnte(); } - Singletons.getControl().attachToGame(match.createGame()); - match.startGame(); + Singletons.getControl().startGameWithUi(match); } /** Action performed when "restart" button is pressed in default win/lose UI. */ @@ -87,8 +86,7 @@ public class ControlWinLose { SOverlayUtils.hideOverlay(); saveOptions(); match.clearGamesPlayed(); - Singletons.getControl().attachToGame(match.createGame()); - match.startGame(); + Singletons.getControl().startGameWithUi(match); } /** Action performed when "quit" button is pressed in default win/lose UI. */ diff --git a/src/main/java/forge/gui/match/GauntletWinLose.java b/src/main/java/forge/gui/match/GauntletWinLose.java index 831ed95062c..fc52e2f2f3f 100644 --- a/src/main/java/forge/gui/match/GauntletWinLose.java +++ b/src/main/java/forge/gui/match/GauntletWinLose.java @@ -206,8 +206,7 @@ public class GauntletWinLose extends ControlWinLose { SOverlayUtils.hideOverlay(); saveOptions(); - Singletons.getControl().attachToGame(mc.createGame()); - mc.startGame(); + Singletons.getControl().startGameWithUi(mc); } else { super.actionOnContinue(); }