mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Prevent crash if you try to load a quest or conquest too soon
This commit is contained in:
@@ -98,7 +98,7 @@ public class ConquestMapScreen extends FScreen {
|
|||||||
if (y + rowHeight > 0) {
|
if (y + rowHeight > 0) {
|
||||||
g.drawImage(FSkinImage.PLANAR_PORTAL, 0, y, w, rowHeight);
|
g.drawImage(FSkinImage.PLANAR_PORTAL, 0, y, w, rowHeight);
|
||||||
if (planeData.getBossResult() == 0) { //draw overlay if boss hasn't been beaten yet
|
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;
|
color = UNCONQUERED_COLOR;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ public class LoadConquestScreen extends LaunchScreen {
|
|||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
lblOldConquests.setText("Loading Existing Conquests...");
|
lblOldConquests.setText("Loading Existing Conquests...");
|
||||||
lstConquests.clear();
|
lstConquests.clear();
|
||||||
|
btnStart.setEnabled(false);
|
||||||
revalidate();
|
revalidate();
|
||||||
|
|
||||||
FThreads.invokeInBackgroundThread(new Runnable() {
|
FThreads.invokeInBackgroundThread(new Runnable() {
|
||||||
@@ -130,7 +131,8 @@ public class LoadConquestScreen extends LaunchScreen {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
lblOldConquests.setText("Old conquest data? Put into \""
|
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();
|
revalidate();
|
||||||
lstConquests.scrollIntoView(lstConquests.selectedIndex);
|
lstConquests.scrollIntoView(lstConquests.selectedIndex);
|
||||||
}
|
}
|
||||||
@@ -172,8 +174,10 @@ public class LoadConquestScreen extends LaunchScreen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void changeConquest() {
|
private void changeConquest() {
|
||||||
FModel.getConquestPreferences().setPref(CQPref.CURRENT_CONQUEST,
|
ConquestData conquest = lstConquests.getSelectedConquest();
|
||||||
lstConquests.getSelectedConquest().getName() + ".dat");
|
if (conquest == null) { return; }
|
||||||
|
|
||||||
|
FModel.getConquestPreferences().setPref(CQPref.CURRENT_CONQUEST, conquest.getName() + ".dat");
|
||||||
FModel.getConquestPreferences().save();
|
FModel.getConquestPreferences().save();
|
||||||
ConquestMenu.launchPlanarConquest(LaunchReason.LoadConquest);
|
ConquestMenu.launchPlanarConquest(LaunchReason.LoadConquest);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ public class LoadQuestScreen extends LaunchScreen {
|
|||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
lblOldQuests.setText("Loading Existing Quests...");
|
lblOldQuests.setText("Loading Existing Quests...");
|
||||||
lstQuests.clear();
|
lstQuests.clear();
|
||||||
|
btnStart.setEnabled(false);
|
||||||
revalidate();
|
revalidate();
|
||||||
|
|
||||||
FThreads.invokeInBackgroundThread(new Runnable() {
|
FThreads.invokeInBackgroundThread(new Runnable() {
|
||||||
@@ -131,7 +132,8 @@ public class LoadQuestScreen extends LaunchScreen {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
lblOldQuests.setText("Old quest data? Put into \""
|
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();
|
revalidate();
|
||||||
lstQuests.scrollIntoView(lstQuests.selectedIndex);
|
lstQuests.scrollIntoView(lstQuests.selectedIndex);
|
||||||
}
|
}
|
||||||
@@ -174,8 +176,10 @@ public class LoadQuestScreen extends LaunchScreen {
|
|||||||
|
|
||||||
/** Changes between quest data files. */
|
/** Changes between quest data files. */
|
||||||
private void changeQuest() {
|
private void changeQuest() {
|
||||||
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST,
|
QuestData quest = lstQuests.getSelectedQuest();
|
||||||
lstQuests.getSelectedQuest().getName() + ".dat");
|
if (quest == null) { return; }
|
||||||
|
|
||||||
|
FModel.getQuestPreferences().setPref(QPref.CURRENT_QUEST, quest.getName() + ".dat");
|
||||||
FModel.getQuestPreferences().save();
|
FModel.getQuestPreferences().save();
|
||||||
QuestMenu.launchQuestMode(LaunchReason.LoadQuest);
|
QuestMenu.launchQuestMode(LaunchReason.LoadQuest);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,13 +46,10 @@ public class ConquestLocation {
|
|||||||
|
|
||||||
public void travelToPlane(ConquestPlane plane0) {
|
public void travelToPlane(ConquestPlane plane0) {
|
||||||
if (plane == plane0) { return; }
|
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;
|
plane = plane0;
|
||||||
|
regionIndex = -1; //start on bottom portal row
|
||||||
|
row = 0;
|
||||||
|
col = Region.PORTAL_COL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ConquestLocation> getNeighbors() {
|
public List<ConquestLocation> getNeighbors() {
|
||||||
@@ -69,8 +66,7 @@ public class ConquestLocation {
|
|||||||
else if (regionIndex0 < regionCount - 1) {
|
else if (regionIndex0 < regionCount - 1) {
|
||||||
locations.add(new ConquestLocation(plane, regionIndex0 + 1, 0, col0));
|
locations.add(new ConquestLocation(plane, regionIndex0 + 1, 0, col0));
|
||||||
}
|
}
|
||||||
else if (regionIndex0 == regionCount - 1 && col0 == (Region.COLS_PER_REGION - 1) / 2) {
|
else if (regionIndex0 == regionCount - 1 && col0 == Region.PORTAL_COL) {
|
||||||
//top portal only available from center column of topmost row
|
|
||||||
locations.add(new ConquestLocation(plane, regionCount, 0, col0));
|
locations.add(new ConquestLocation(plane, regionCount, 0, col0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,8 +77,7 @@ public class ConquestLocation {
|
|||||||
else if (regionIndex0 > 0) {
|
else if (regionIndex0 > 0) {
|
||||||
locations.add(new ConquestLocation(plane, regionIndex0 - 1, Region.ROWS_PER_REGION - 1, col0));
|
locations.add(new ConquestLocation(plane, regionIndex0 - 1, Region.ROWS_PER_REGION - 1, col0));
|
||||||
}
|
}
|
||||||
else if (regionIndex0 == 0 && col0 == (Region.COLS_PER_REGION - 1) / 2) {
|
else if (regionIndex0 == 0 && col0 == Region.PORTAL_COL) {
|
||||||
//bottom portal only available from center column of bottommost row
|
|
||||||
locations.add(new ConquestLocation(plane, -1, 0, col0));
|
locations.add(new ConquestLocation(plane, -1, 0, col0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -274,6 +274,7 @@ public enum ConquestPlane {
|
|||||||
public static class Region {
|
public static class Region {
|
||||||
public static final int ROWS_PER_REGION = 3;
|
public static final int ROWS_PER_REGION = 3;
|
||||||
public static final int COLS_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 name;
|
||||||
private final String artCardName;
|
private final String artCardName;
|
||||||
|
|||||||
Reference in New Issue
Block a user