From e74ef5491228dac60f157d8d161cf569a336d441 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 02:45:12 +0000 Subject: [PATCH] fixed the Quest mode issue --- src/QuestData_State.java | 18 ++++++++++++------ src/forge/QuestData.java | 4 ++-- src/forge/QuestData_State.java | 6 +++--- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/QuestData_State.java b/src/QuestData_State.java index 0a5be654a4b..9a808381197 100644 --- a/src/QuestData_State.java +++ b/src/QuestData_State.java @@ -8,6 +8,8 @@ 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; /** @@ -29,11 +31,15 @@ public class QuestData_State implements Serializable { @SuppressWarnings("unchecked") private Object readResolve() throws ObjectStreamException { // System.out.println("resolving obsolete QuestData_State"); - //removing generic types to make cast between Deck and forge.Deck - //i'm using Deck in this class because it may be somewhere in the serialization stream - //it is irrelevant, because readResolve replaces Deck by forge.Deck, and since generics - //aren't checked at runtime, the cast is ok. - return new forge.QuestData_State(rankIndex, win, lost, difficulty, cardPool, (HashMap) myDecks, - (HashMap) aiDecks); + 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, difficulty, cardPool, myDecks, aiDecks); } } diff --git a/src/forge/QuestData.java b/src/forge/QuestData.java index 6a79243afeb..376429e3356 100644 --- a/src/forge/QuestData.java +++ b/src/forge/QuestData.java @@ -57,8 +57,8 @@ public class QuestData implements NewConstants { private ArrayList mediumAIDecks; private ArrayList hardAIDecks; - private HashMap myDecks = new HashMap(); - private HashMap aiDecks = new HashMap(); + private Map myDecks = new HashMap(); + private Map aiDecks = new HashMap(); //holds String card names private ArrayList cardPool = new ArrayList(); diff --git a/src/forge/QuestData_State.java b/src/forge/QuestData_State.java index 6fc1b6f3b62..8a6a892172b 100644 --- a/src/forge/QuestData_State.java +++ b/src/forge/QuestData_State.java @@ -11,7 +11,7 @@ package forge; import java.io.Serializable; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Map; /** @@ -27,7 +27,7 @@ public class QuestData_State implements Serializable { String difficulty; ArrayList cardPool; - HashMap myDecks, aiDecks; + Map myDecks, aiDecks; public QuestData_State() {} @@ -35,7 +35,7 @@ public class QuestData_State implements Serializable { * This constructor is used by QestData_State in the default package to create a replacement object for the * obsolete class. */ - public QuestData_State(int rankIndex, int win, int lost, String difficulty, ArrayList cardPool, HashMap myDecks, HashMap aiDecks) { + public QuestData_State(int rankIndex, int win, int lost, String difficulty, ArrayList cardPool, Map myDecks, Map aiDecks) { this.rankIndex = rankIndex; this.win = win; this.lost = lost;