diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 2b46062fd46..40ebc082b2b 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -77,6 +77,7 @@ public class Forge implements ApplicationListener { public static int totalDeviceRAM = 0; public static int androidVersion = 0; public static boolean autoCache = false; + public static int lastButtonIndex = 0; public static ApplicationListener getApp(Clipboard clipboard0, IDeviceAdapter deviceAdapter0, String assetDir0, boolean value, boolean androidOrientation, int totalRAM, boolean isTablet, int AndroidAPI, String AndroidRelease, String deviceName) { if (GuiBase.getInterface() == null) { @@ -202,10 +203,9 @@ public class Forge implements ApplicationListener { ImageCache.preloadCache(filteredkeys); } - public static void openHomeScreen(boolean openNewGameMenu) { + public static void openHomeScreen(int index) { openScreen(HomeScreen.instance); - if(openNewGameMenu) - HomeScreen.instance.openNewGamMenu(); + HomeScreen.instance.openMenu(index); } private void afterDbLoaded() { @@ -216,7 +216,7 @@ public class Forge implements ApplicationListener { SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS); //start background music destroyThis = false; //Allow back() Gdx.input.setCatchKey(Keys.MENU, true); - openHomeScreen(false); + openHomeScreen(1); splashScreen = null; boolean isLandscapeMode = isLandscapeMode(); diff --git a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java index 1ba7a46b3ff..e3b19de90a2 100644 --- a/forge-gui-mobile/src/forge/screens/home/HomeScreen.java +++ b/forge-gui-mobile/src/forge/screens/home/HomeScreen.java @@ -16,6 +16,8 @@ import forge.game.GameType; import forge.screens.FScreen; import forge.screens.achievements.AchievementsScreen; import forge.screens.online.OnlineMenu.OnlineScreen; +import forge.screens.planarconquest.ConquestMenu; +import forge.screens.quest.QuestMenu; import forge.screens.settings.SettingsScreen; import forge.toolbox.FButton; import forge.toolbox.FEvent; @@ -70,6 +72,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 0; + Forge.lastButtonIndex = activeButtonIndex; NewGameMenu.getPreferredScreen().open(); } }); @@ -77,6 +80,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 1; + Forge.lastButtonIndex = activeButtonIndex; LoadGameMenu.getPreferredScreen().open(); } }); @@ -84,6 +88,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 2; + Forge.lastButtonIndex = activeButtonIndex; OnlineScreen.Lobby.open(); } }); @@ -91,6 +96,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 3; + Forge.lastButtonIndex = activeButtonIndex; if (deckManager == null) { deckManager = new FDeckChooser(GameType.DeckManager, false, null) { @Override @@ -110,6 +116,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 4; + Forge.lastButtonIndex = activeButtonIndex; AchievementsScreen.show(); } }); @@ -117,6 +124,7 @@ public class HomeScreen extends FScreen { @Override public void handleEvent(FEvent e) { activeButtonIndex = 5; + Forge.lastButtonIndex = activeButtonIndex; SettingsScreen.show(true); } }); @@ -135,8 +143,13 @@ public class HomeScreen extends FScreen { QuestWorld = questWorld; } - public void openNewGamMenu(){ - NewGameMenu.getPreferredScreen().open(); + public void openMenu(int index){ + if (index < 6) + NewGameMenu.getPreferredScreen().open(); + if (index == 6) + QuestMenu.launchQuestMode(QuestMenu.LaunchReason.StartQuestMode, HomeScreen.instance.getQuestCommanderMode()); + if (index == 7) + ConquestMenu.launchPlanarConquest(ConquestMenu.LaunchReason.StartPlanarConquest); } public boolean getQuestCommanderMode() { @@ -148,6 +161,10 @@ public class HomeScreen extends FScreen { } public void addButtonForMode(String caption, final FEventHandler command) { + if (caption.contains(Localizer.getInstance().getMessage("lblPlanarConquest"))) + Forge.lastButtonIndex = 7; + else + Forge.lastButtonIndex = 6; //ensure we don't add the same mode button more than once for (int i = baseButtonCount; i < buttons.size(); i++) { if (buttons.get(i).getText().equals(caption)) { diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/ControlWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/ControlWinLose.java index c05f8d4cd5a..8f45c772af6 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/ControlWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/ControlWinLose.java @@ -92,7 +92,7 @@ public class ControlWinLose { Forge.back(); } if (openHomeScreen) - Forge.openHomeScreen(true); + Forge.openHomeScreen(Forge.lastButtonIndex); } /**