diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMapScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMapScreen.java index a81342cfd6a..099a43a0f00 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMapScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMapScreen.java @@ -98,7 +98,7 @@ public class ConquestMapScreen extends FScreen { if (y + rowHeight > 0) { g.drawImage(FSkinImage.PLANAR_PORTAL, 0, y, w, rowHeight); if (planeData.getBossResult() == 0) { //draw overlay if boss hasn't been beaten yet - if (planeData.getEventResult(regionCount - 1, rows - 1, (cols - 1) / 2) > 0) { + if (planeData.getEventResult(regionCount - 1, rows - 1, Region.PORTAL_COL) > 0) { color = UNCONQUERED_COLOR; } else { diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java index 6d627b28edc..b6cfcdae5c4 100644 --- a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java +++ b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java @@ -84,6 +84,7 @@ public class LoadConquestScreen extends LaunchScreen { public void onActivate() { lblOldConquests.setText("Loading Existing Conquests..."); lstConquests.clear(); + btnStart.setEnabled(false); revalidate(); FThreads.invokeInBackgroundThread(new Runnable() { @@ -130,7 +131,8 @@ public class LoadConquestScreen extends LaunchScreen { @Override public void run() { lblOldConquests.setText("Old conquest data? Put into \"" - + ForgeConstants.CONQUEST_SAVE_DIR.replace('\\', '/') + "\" and restart Forge."); + + ForgeConstants.CONQUEST_SAVE_DIR + "\" and restart Forge."); + btnStart.setEnabled(true); revalidate(); lstConquests.scrollIntoView(lstConquests.selectedIndex); } @@ -172,8 +174,10 @@ public class LoadConquestScreen extends LaunchScreen { } private void changeConquest() { - FModel.getConquestPreferences().setPref(CQPref.CURRENT_CONQUEST, - lstConquests.getSelectedConquest().getName() + ".dat"); + ConquestData conquest = lstConquests.getSelectedConquest(); + if (conquest == null) { return; } + + FModel.getConquestPreferences().setPref(CQPref.CURRENT_CONQUEST, conquest.getName() + ".dat"); FModel.getConquestPreferences().save(); ConquestMenu.launchPlanarConquest(LaunchReason.LoadConquest); } diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java index 4b3df3b8b9b..7bf9f57bbee 100644 --- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java +++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java @@ -85,6 +85,7 @@ public class LoadQuestScreen extends LaunchScreen { public void onActivate() { lblOldQuests.setText("Loading Existing Quests..."); lstQuests.clear(); + btnStart.setEnabled(false); revalidate(); FThreads.invokeInBackgroundThread(new Runnable() { @@ -131,7 +132,8 @@ public class LoadQuestScreen extends LaunchScreen { @Override public void run() { lblOldQuests.setText("Old quest data? Put into \"" - + ForgeConstants.QUEST_SAVE_DIR.replace('\\', '/') + "\" and restart Forge."); + + ForgeConstants.QUEST_SAVE_DIR + "\" and restart Forge."); + btnStart.setEnabled(true); revalidate(); lstQuests.scrollIntoView(lstQuests.selectedIndex); } @@ -174,8 +176,10 @@ public class LoadQuestScreen extends LaunchScreen { /** Changes between quest data files. */ private void changeQuest() { - FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, - lstQuests.getSelectedQuest().getName() + ".dat"); + QuestData quest = lstQuests.getSelectedQuest(); + if (quest == null) { return; } + + FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, quest.getName() + ".dat"); FModel.getQuestPreferences().save(); QuestMenu.launchQuestMode(LaunchReason.LoadQuest); } diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java b/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java index 7002414849f..5935f9f3bc7 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java @@ -46,13 +46,10 @@ public class ConquestLocation { public void travelToPlane(ConquestPlane plane0) { if (plane == plane0) { return; } - if (plane == null /*|| plane0 follows plane in travel order */) { - regionIndex = -1; //start on bottom portal row - } - else { - regionIndex = plane.getRegions().size(); //start on top portal row - } plane = plane0; + regionIndex = -1; //start on bottom portal row + row = 0; + col = Region.PORTAL_COL; } public List getNeighbors() { @@ -69,8 +66,7 @@ public class ConquestLocation { else if (regionIndex0 < regionCount - 1) { locations.add(new ConquestLocation(plane, regionIndex0 + 1, 0, col0)); } - else if (regionIndex0 == regionCount - 1 && col0 == (Region.COLS_PER_REGION - 1) / 2) { - //top portal only available from center column of topmost row + else if (regionIndex0 == regionCount - 1 && col0 == Region.PORTAL_COL) { locations.add(new ConquestLocation(plane, regionCount, 0, col0)); } @@ -81,8 +77,7 @@ public class ConquestLocation { else if (regionIndex0 > 0) { locations.add(new ConquestLocation(plane, regionIndex0 - 1, Region.ROWS_PER_REGION - 1, col0)); } - else if (regionIndex0 == 0 && col0 == (Region.COLS_PER_REGION - 1) / 2) { - //bottom portal only available from center column of bottommost row + else if (regionIndex0 == 0 && col0 == Region.PORTAL_COL) { locations.add(new ConquestLocation(plane, -1, 0, col0)); } diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java b/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java index 158bbd7cc02..d1aeb8ae495 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java @@ -274,6 +274,7 @@ public enum ConquestPlane { public static class Region { public static final int ROWS_PER_REGION = 3; public static final int COLS_PER_REGION = 3; + public static final int PORTAL_COL = (COLS_PER_REGION - 1) / 2; private final String name; private final String artCardName;