diff --git a/.gitattributes b/.gitattributes index 575040b6562..982b216047e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7150,10 +7150,6 @@ res/quest/themes/Wolves[!!-~]WG.thm -text res/reprintSetInfo.py -text svneol=native#text/x-python res/setInfoScript.py -text svneol=native#text/x-python res/sound/tap.mp3 -text svneol=unset#audio/mpeg -src/Deck.java svneol=native#text/plain -src/DeckConverter.java svneol=native#text/plain -src/OldDeckIO.java svneol=native#text/plain -src/QuestData_State.java svneol=native#text/plain src/arcane/ui/CardArea.java svneol=native#text/plain src/arcane/ui/CardPanel.java svneol=native#text/plain src/arcane/ui/CardPanelContainer.java svneol=native#text/plain diff --git a/src/Deck.java b/src/Deck.java deleted file mode 100644 index b5914a07f95..00000000000 --- a/src/Deck.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Deck.java - * - * Created on 26.10.2009 - */ - -import java.io.Serializable; -import java.util.ArrayList; - - -/** - * The class Deck. This class is only here for compatibility with forge versions 10/17 and older. When it is read - * from the file stream, the object is replaced with an object of type {@link Deck} using {@link #readResolve()}. - * - * @author Clemens Koza - */ -public class Deck implements Serializable { - private static final long serialVersionUID = -2188987217361601903L; - - private String deckType; - - /* - private boolean isRegular; - private boolean isSealed; - private boolean isDraft; - */ - - private ArrayList main; - private ArrayList sideboard; - - //very important, do NOT change this - private String name; - - public forge.Deck migrate() { - return new forge.Deck(deckType, main, sideboard, name); - } -} diff --git a/src/DeckConverter.java b/src/DeckConverter.java deleted file mode 100644 index a7b90ed3e20..00000000000 --- a/src/DeckConverter.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * DeckConverter.java - * - * Created on 08.11.2009 - */ - -import static java.lang.String.*; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import javax.swing.JOptionPane; - -import forge.DeckIO; -import forge.NewDeckIO; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; - - -/** - * The class DeckConverter. This class uses an {@link OldDeckIO} and a {@link NewDeckIO} to convert the old - * all-decks2 file into the new folder structure. - * - * @version V0.0 08.11.2009 - * @author Clemens Koza - */ -public class DeckConverter { - public static void main(String[] args) { - File oldDecks = ForgeProps.getFile(NewConstants.DECKS); - File newDecks = ForgeProps.getFile(NewConstants.NEW_DECKS); - - if(oldDecks == null || !oldDecks.isFile()) return; - - int choice = JOptionPane.showConfirmDialog(null, format( - "This dialog lets you migrate your old decks to the new version of forge.%n" - + "Your old decks file: %s%nYour new decks directory: %s%n%n" - + "If you don't want to see this dialog again, please remove/rename your %1$s file,%n" - + "or otherwise hide it from forge.%n%nDo you want to migrate your decks now?", oldDecks, - newDecks), "Deck Migration", JOptionPane.YES_NO_OPTION); - - if(choice != JOptionPane.YES_OPTION) return; - System.out.println("migrating deck file..."); - - DeckIO odio = new OldDeckIO(oldDecks); - List deckList = new ArrayList(Arrays.asList(odio.getDecks())); - Map boosterMap = odio.getBoosterDecks(); - System.out.println("Decks found:"); - System.out.printf("\t%d normal decks%n", deckList.size()); - System.out.printf("\t%d booster decks%n", boosterMap.size()); - - //the constructor loads the decks from NEW_DECKS and preserves those from the collections - DeckIO ndio = new NewDeckIO(newDecks, deckList, boosterMap); - - System.out.println("Decks in NewDeckIO:"); - System.out.printf("\t%d normal decks%n", ndio.getDecks().length); - System.out.printf("\t%d booster decks%n", ndio.getBoosterDecks().size()); - - //stores all the decks (new and old) to the directory. - ndio.close(); - - JOptionPane.showMessageDialog(null, "Your deck file was successfully migrated!"); - } - - /** - * - */ - public static Object toForgeDeck(Object o) { - if(o instanceof forge.Deck) { - //a single new-type deck - return o; - } else if(o instanceof forge.Deck[]) { - //a new-type booster deck - return o; - } else if(o instanceof Deck) { - // an old type deck - Deck d = (Deck) o; - return d.migrate(); - } else if(o instanceof Deck[]) { - Deck[] d = (Deck[]) o; - forge.Deck[] result = new forge.Deck[d.length]; - for(int i = 0; i < d.length; i++) { - result[i] = d[i].migrate(); - } - return result; - } else throw new IllegalArgumentException(); - } -} diff --git a/src/OldDeckIO.java b/src/OldDeckIO.java deleted file mode 100755 index d88f6c67ba3..00000000000 --- a/src/OldDeckIO.java +++ /dev/null @@ -1,176 +0,0 @@ -import java.io.File; -import java.io.FileInputStream; -import java.io.ObjectInputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import forge.Constant; -import forge.DeckIO; -import forge.error.ErrorViewer; - - -//reads and write Deck objects -public class OldDeckIO implements DeckIO { - private final File file; - private ArrayList deckList = new ArrayList(); - - //key is String of the humans deck - //data is Deck[] size of 8 - //humans deck is Deck[0] - private Map boosterMap = new HashMap(); - - public OldDeckIO(String filename) { - this(new File(filename)); - } - - public OldDeckIO(File file) { - this.file = file; - - readFile(); - } - - public boolean isUnique(String deckName) { - forge.Deck d; - for(int i = 0; i < deckList.size(); i++) { - d = deckList.get(i); - if(d.getName().equals(deckName)) return false; - } - return true; - } - - public boolean isUniqueDraft(String deckName) { - ArrayList key = new ArrayList(boosterMap.keySet()); - - for(int i = 0; i < key.size(); i++) { - if(key.get(i).equals(deckName)) return false; - } - return true; - } - - public boolean hasName(String deckName) { - ArrayList string = new ArrayList(); - - for(int i = 0; i < deckList.size(); i++) - string.add(deckList.get(i).toString()); - - Iterator it = boosterMap.keySet().iterator(); - while(it.hasNext()) - string.add(it.next().toString()); - - return string.contains(deckName); - } - - public forge.Deck readDeck(String deckName) { - return deckList.get(findDeckIndex(deckName)); - } - - private int findDeckIndex(String deckName) { - int n = -1; - for(int i = 0; i < deckList.size(); i++) - if((deckList.get(i)).getName().equals(deckName)) n = i; - - if(n == -1) throw new RuntimeException("DeckIO : findDeckIndex() error, deck name not found - " + deckName); - - return n; - } - - public void writeDeck(forge.Deck deck) { - if(deck.getDeckType().equals(Constant.GameType.Draft)) throw new RuntimeException( - "DeckIO : writeDeck() error, deck type is Draft"); - - deckList.add(deck); - } - - public void deleteDeck(String deckName) { - deckList.remove(findDeckIndex(deckName)); - } - - public forge.Deck[] readBoosterDeck(String deckName) { - if(!boosterMap.containsKey(deckName)) throw new RuntimeException( - "DeckIO : readBoosterDeck() error, deck name not found - " + deckName); - - return boosterMap.get(deckName); - } - - public void writeBoosterDeck(forge.Deck[] deck) { - checkBoosterDeck(deck); - - boosterMap.put(deck[0].toString(), deck); - }//writeBoosterDeck() - - public void deleteBoosterDeck(String deckName) { - if(!boosterMap.containsKey(deckName)) throw new RuntimeException( - "DeckIO : deleteBoosterDeck() error, deck name not found - " + deckName); - - boosterMap.remove(deckName); - } - - private void checkBoosterDeck(forge.Deck[] deck) { - if(deck == null || deck.length != 8 || deck[0].getName().equals("") - || (!deck[0].getDeckType().equals(Constant.GameType.Draft))) { - throw new RuntimeException("DeckIO : checkBoosterDeck() error, invalid deck"); - } -// for(int i = 0; i < deck.length; i++) -// if(deck[i].getName().equals("")) -// throw new RuntimeException("DeckIO : checkBoosterDeck() error, deck does not have name - " +deck[i].getName()); - }//checkBoosterDeck() - - - public forge.Deck[] getDecks() { - forge.Deck[] out = new forge.Deck[deckList.size()]; - deckList.toArray(out); - return out; - } - - public Map getBoosterDecks() { - return new HashMap(boosterMap); - } - - public void close() { - writeFile(); - } - - @SuppressWarnings("unchecked") - private void readFile() { - try { -//~ - // Shouldn't ever get here, but just in case... - if(file == null) { - return; - } -//~ - if(!file.exists()) return; - - ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); - - List deckList = (List) in.readObject(); - Map boosterMap = (Map) in.readObject(); - - this.deckList = new ArrayList(); - for(Deck deck:deckList) { - this.deckList.add(deck.migrate()); - } - this.boosterMap = new HashMap(); - for(Entry deck:boosterMap.entrySet()) { - Deck[] oldValue = deck.getValue(); - forge.Deck[] newValue = new forge.Deck[oldValue.length]; - for(int i = 0; i < oldValue.length; i++) - newValue[i] = oldValue[i].migrate(); - this.boosterMap.put(deck.getKey(), newValue); - } - - in.close(); - } catch(Exception ex) { - ErrorViewer.showError(ex); - throw new RuntimeException("DeckIO : read() error, " + ex); - } - } - - private void writeFile() { - //noop - } -}//DeckIO diff --git a/src/QuestData_State.java b/src/QuestData_State.java deleted file mode 100644 index 9955b615dfe..00000000000 --- a/src/QuestData_State.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * QuestData_State.java - * - * Created on 26.10.2009 - */ - -import java.io.ObjectStreamException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - - -/** - * The class QuestData_State. This class is only here for compatibility with forge versions 10/17 and older. When - * it is read from the file stream, the object is replaced with an object of type {@link Deck} using - * {@link #readResolve()}. - * - * @author Clemens Koza - */ -@SuppressWarnings({"deprecation"}) -@Deprecated -public class QuestData_State implements Serializable { - private static final long serialVersionUID = 7007940230351051937L; - - int rankIndex, win, lost; - int plantLevel, wolfPetLevel, crocPetLevel, birdPetLevel, houndPetLevel, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed; - long credits; - String difficulty, mode, selectedPet; - - - ArrayList availableQuests, completedQuests; - ArrayList cardPool, shopList; - HashMap myDecks, aiDecks; - - private Object readResolve() throws ObjectStreamException { -// System.out.println("resolving obsolete QuestData_State"); - Map myDecks = new HashMap(); - for(Entry deck:this.myDecks.entrySet()) { - myDecks.put(deck.getKey(), deck.getValue().migrate()); - } - - Map aiDecks = new HashMap(); - for(Entry deck:this.aiDecks.entrySet()) { - aiDecks.put(deck.getKey(), deck.getValue().migrate()); - } - return new forge.QuestData_State(rankIndex, win, lost, plantLevel, wolfPetLevel, crocPetLevel, birdPetLevel, houndPetLevel, selectedPet, life, estatesLevel, luckyCoinLevel, sleightOfHandLevel, gearLevel, questsPlayed, availableQuests, completedQuests,credits, difficulty, mode, cardPool, shopList, myDecks, aiDecks); - } -} diff --git a/src/forge/Gui_NewGame.java b/src/forge/Gui_NewGame.java index 5cfb113fc05..ad4330dfd87 100644 --- a/src/forge/Gui_NewGame.java +++ b/src/forge/Gui_NewGame.java @@ -135,15 +135,6 @@ public class Gui_NewGame extends JFrame implements NewConstants, NewConstants.LA } }); - try { - //deck migration - this is a little hard to read, because i can't just plainly reference a class in the - //default package - Class deckConverterClass = Class.forName("DeckConverter"); - //invoke public static void main(String[] args) of DeckConverter - deckConverterClass.getDeclaredMethod("main", String[].class).invoke(null, (Object) null); - } catch(Exception ex) { - ErrorViewer.showError(ex); - } try { Constant.Runtime.GameType[0] = Constant.GameType.Constructed; SwingUtilities.invokeLater(new Runnable() {