mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Improve resilience for Quest Loading
This commit is contained in:
@@ -28,6 +28,7 @@ import java.awt.event.KeyEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -230,7 +231,11 @@ public enum FControl implements KeyEventDispatcher {
|
||||
final String questname = FModel.getQuestPreferences().getPref(QPref.CURRENT_QUEST);
|
||||
final File data = new File(dirQuests.getPath(), questname);
|
||||
if (data.exists()) {
|
||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||
try {
|
||||
FModel.getQuest().load(QuestDataIO.loadData(data));
|
||||
} catch(IOException ex) {
|
||||
System.out.println(String.format("Error loading quest data (%s).. skipping for now..", questname));
|
||||
}
|
||||
}
|
||||
|
||||
// Handles resizing in null layouts of layers in JLayeredPane as well as saving window layout
|
||||
|
||||
@@ -20,6 +20,7 @@ import forge.toolbox.FOptionPane;
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@@ -167,6 +168,7 @@ public enum CSubmenuQuestData implements ICDoc {
|
||||
final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE;
|
||||
final File dirQuests = new File(ForgeConstants.QUEST_SAVE_DIR);
|
||||
final QuestController qc = FModel.getQuest();
|
||||
ArrayList<String> restorableQuests = new ArrayList<>();
|
||||
|
||||
// Iterate over files and load quest data for each.
|
||||
final FilenameFilter takeDatFiles = new FilenameFilter() {
|
||||
@@ -178,7 +180,13 @@ public enum CSubmenuQuestData implements ICDoc {
|
||||
final File[] arrFiles = dirQuests.listFiles(takeDatFiles);
|
||||
arrQuests.clear();
|
||||
for (final File f : arrFiles) {
|
||||
arrQuests.put(f.getName(), QuestDataIO.loadData(f));
|
||||
try {
|
||||
System.out.println(String.format("About to load quest (%s)... ", f.getName()));
|
||||
arrQuests.put(f.getName(), QuestDataIO.loadData(f));
|
||||
} catch(IOException ex) {
|
||||
System.out.println(String.format("Error loading quest data (%s).. skipping for now..", f.getName()));
|
||||
restorableQuests.add(f.getName());
|
||||
}
|
||||
}
|
||||
|
||||
// Populate list with available quest data.
|
||||
|
||||
Reference in New Issue
Block a user