diff options
Diffstat (limited to 'src/com/fourisland')
24 files changed, 128 insertions, 54 deletions
diff --git a/src/com/fourisland/fourpuzzle/Display.java b/src/com/fourisland/fourpuzzle/Display.java index c8d17d9..b7569aa 100755 --- a/src/com/fourisland/fourpuzzle/Display.java +++ b/src/com/fourisland/fourpuzzle/Display.java | |||
@@ -42,8 +42,7 @@ import org.jdesktop.application.ResourceMap; | |||
42 | */ | 42 | */ |
43 | public class Display { | 43 | public class Display { |
44 | 44 | ||
45 | public static int tileAnimationFrame = 0; | 45 | private static int tileAnimationFrame = 0; |
46 | |||
47 | private static List<Renderable> renderables = new CopyOnWriteArrayList<Renderable>(); | 46 | private static List<Renderable> renderables = new CopyOnWriteArrayList<Renderable>(); |
48 | 47 | ||
49 | public static void render(Component gameFrame) | 48 | public static void render(Component gameFrame) |
@@ -229,10 +228,10 @@ public class Display { | |||
229 | return; | 228 | return; |
230 | } catch (RuntimeException ex) | 229 | } catch (RuntimeException ex) |
231 | { | 230 | { |
232 | PuzzleApplication.INSTANCE.reportError(ex); | 231 | PuzzleApplication.reportError(ex); |
233 | } catch (Error ex) | 232 | } catch (Error ex) |
234 | { | 233 | { |
235 | PuzzleApplication.INSTANCE.reportError(ex); | 234 | PuzzleApplication.reportError(ex); |
236 | } | 235 | } |
237 | } | 236 | } |
238 | }; | 237 | }; |
@@ -331,4 +330,9 @@ public class Display { | |||
331 | return cachePoint; | 330 | return cachePoint; |
332 | } | 331 | } |
333 | 332 | ||
333 | public int getTileAnimationFrame() | ||
334 | { | ||
335 | return tileAnimationFrame; | ||
336 | } | ||
337 | |||
334 | } | 338 | } |
diff --git a/src/com/fourisland/fourpuzzle/PuzzleApplication.java b/src/com/fourisland/fourpuzzle/PuzzleApplication.java index f88b0ad..88236f9 100755 --- a/src/com/fourisland/fourpuzzle/PuzzleApplication.java +++ b/src/com/fourisland/fourpuzzle/PuzzleApplication.java | |||
@@ -28,10 +28,8 @@ import org.jdesktop.application.Application; | |||
28 | */ | 28 | */ |
29 | public class PuzzleApplication extends Application { | 29 | public class PuzzleApplication extends Application { |
30 | 30 | ||
31 | public static PuzzleApplication INSTANCE; | 31 | private static boolean stretchScreen = true; |
32 | public static boolean debugSpeed = false; | 32 | private static boolean gameSleep = false; |
33 | public static boolean stretchScreen = true; | ||
34 | public static boolean gameSleep = false; | ||
35 | private static JDialog gameDialog = new JDialog(new JFrame(), false); | 33 | private static JDialog gameDialog = new JDialog(new JFrame(), false); |
36 | private static Semaphore gameDialogHandler = new Semaphore(1); | 34 | private static Semaphore gameDialogHandler = new Semaphore(1); |
37 | 35 | ||
@@ -101,9 +99,9 @@ public class PuzzleApplication extends Application { | |||
101 | { | 99 | { |
102 | /* If debug mode is enabled, holding Shift down should put | 100 | /* If debug mode is enabled, holding Shift down should put |
103 | * the game into hyperactive mode */ | 101 | * the game into hyperactive mode */ |
104 | if (INSTANCE.getContext().getResourceMap().getBoolean("debugMode")) | 102 | if (getInstance().getContext().getResourceMap().getBoolean("debugMode")) |
105 | { | 103 | { |
106 | debugSpeed = true; | 104 | Interval.setDebugSpeed(true); |
107 | } | 105 | } |
108 | } else if (e.getKeyCode() == KeyEvent.VK_F12) | 106 | } else if (e.getKeyCode() == KeyEvent.VK_F12) |
109 | { | 107 | { |
@@ -125,7 +123,7 @@ public class PuzzleApplication extends Application { | |||
125 | if (e.getKeyCode() == KeyEvent.VK_SHIFT) | 123 | if (e.getKeyCode() == KeyEvent.VK_SHIFT) |
126 | { | 124 | { |
127 | // If Shift is let go of, hyperactive mode should end | 125 | // If Shift is let go of, hyperactive mode should end |
128 | debugSpeed = false; | 126 | Interval.setDebugSpeed(false); |
129 | } else { | 127 | } else { |
130 | KeyboardInput.getKey().letGo(); | 128 | KeyboardInput.getKey().letGo(); |
131 | } | 129 | } |
@@ -140,8 +138,6 @@ public class PuzzleApplication extends Application { | |||
140 | @Override | 138 | @Override |
141 | protected void startup() | 139 | protected void startup() |
142 | { | 140 | { |
143 | INSTANCE = this; | ||
144 | |||
145 | // Create the game form | 141 | // Create the game form |
146 | initGameDialog(true); | 142 | initGameDialog(true); |
147 | 143 | ||
@@ -197,10 +193,10 @@ public class PuzzleApplication extends Application { | |||
197 | 193 | ||
198 | public String getGamePackage() | 194 | public String getGamePackage() |
199 | { | 195 | { |
200 | return INSTANCE.getContext().getResourceMap().getString("Application.package"); | 196 | return getInstance().getContext().getResourceMap().getString("Application.package"); |
201 | } | 197 | } |
202 | 198 | ||
203 | public void reportError(Throwable ex) | 199 | public static void reportError(Throwable ex) |
204 | { | 200 | { |
205 | if ((ex instanceof Exception) && !(ex instanceof RuntimeException)) | 201 | if ((ex instanceof Exception) && !(ex instanceof RuntimeException)) |
206 | { | 202 | { |
diff --git a/src/com/fourisland/fourpuzzle/SaveFile.java b/src/com/fourisland/fourpuzzle/SaveFile.java index 44b3cdd..7a9c6cf 100755 --- a/src/com/fourisland/fourpuzzle/SaveFile.java +++ b/src/com/fourisland/fourpuzzle/SaveFile.java | |||
@@ -23,6 +23,8 @@ import java.util.logging.Logger; | |||
23 | */ | 23 | */ |
24 | public class SaveFile implements Serializable { | 24 | public class SaveFile implements Serializable { |
25 | 25 | ||
26 | private static final long serialVersionUID = 234503257; | ||
27 | |||
26 | /** | 28 | /** |
27 | * Creates a new SaveFile | 29 | * Creates a new SaveFile |
28 | */ | 30 | */ |
@@ -31,7 +33,7 @@ public class SaveFile implements Serializable { | |||
31 | switches = new HashMap<String, Boolean>(); | 33 | switches = new HashMap<String, Boolean>(); |
32 | party = Database.createParty(); | 34 | party = Database.createParty(); |
33 | variables = new HashMap<String, Integer>(); | 35 | variables = new HashMap<String, Integer>(); |
34 | currentMap = new String(); | 36 | currentMap = ""; |
35 | hero = new HeroEvent(); | 37 | hero = new HeroEvent(); |
36 | } | 38 | } |
37 | 39 | ||
@@ -43,7 +45,7 @@ public class SaveFile implements Serializable { | |||
43 | */ | 45 | */ |
44 | public SaveFile(int file) throws IOException | 46 | public SaveFile(int file) throws IOException |
45 | { | 47 | { |
46 | InputStream is = PuzzleApplication.INSTANCE.getContext().getLocalStorage().openInputFile("Save" + file + ".sav"); | 48 | InputStream is = PuzzleApplication.getInstance().getContext().getLocalStorage().openInputFile("Save" + file + ".sav"); |
47 | ObjectInputStream ois = new ObjectInputStream(is); | 49 | ObjectInputStream ois = new ObjectInputStream(is); |
48 | SaveFile temp = null; | 50 | SaveFile temp = null; |
49 | try { | 51 | try { |
@@ -63,7 +65,7 @@ public class SaveFile implements Serializable { | |||
63 | 65 | ||
64 | public void saveGame(int file) throws IOException | 66 | public void saveGame(int file) throws IOException |
65 | { | 67 | { |
66 | OutputStream os = PuzzleApplication.INSTANCE.getContext().getLocalStorage().openOutputFile("Save" + file + ".sav"); | 68 | OutputStream os = PuzzleApplication.getInstance().getContext().getLocalStorage().openOutputFile("Save" + file + ".sav"); |
67 | ObjectOutputStream oos = new ObjectOutputStream(os); | 69 | ObjectOutputStream oos = new ObjectOutputStream(os); |
68 | oos.writeObject(this); | 70 | oos.writeObject(this); |
69 | oos.close(); | 71 | oos.close(); |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/ChipSet.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/ChipSet.java index a4d7ac3..e6af66d 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/ChipSet.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/ChipSet.java | |||
@@ -52,7 +52,7 @@ public class ChipSet { | |||
52 | 52 | ||
53 | public static void initalize(String name) | 53 | public static void initalize(String name) |
54 | { | 54 | { |
55 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 55 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
56 | InputStream cs = null; | 56 | InputStream cs = null; |
57 | 57 | ||
58 | if (rm.getClassLoader().getResource(rm.getResourcesDir() + "chipset/" + name + ".tsx") == null) | 58 | if (rm.getClassLoader().getResource(rm.getResourcesDir() + "chipset/" + name + ".tsx") == null) |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/MapViewGameState.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/MapViewGameState.java index 89fac99..d3bd101 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/MapViewGameState.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/MapViewGameState.java | |||
@@ -83,7 +83,7 @@ public class MapViewGameState implements GameState { | |||
83 | * walkthrough flag so the Hero can walk through stuff */ | 83 | * walkthrough flag so the Hero can walk through stuff */ |
84 | if (key.isCtrlDown() && !debugWalkthrough) | 84 | if (key.isCtrlDown() && !debugWalkthrough) |
85 | { | 85 | { |
86 | if (PuzzleApplication.INSTANCE.getContext().getResourceMap().getBoolean("debugMode")) | 86 | if (PuzzleApplication.getInstance().getContext().getResourceMap().getBoolean("debugMode")) |
87 | { | 87 | { |
88 | debugWalkthrough = true; | 88 | debugWalkthrough = true; |
89 | } | 89 | } |
@@ -188,7 +188,7 @@ public class MapViewGameState implements GameState { | |||
188 | { | 188 | { |
189 | /* If debug mode is enabled and F11 is pressed, cancel any running | 189 | /* If debug mode is enabled and F11 is pressed, cancel any running |
190 | * events */ | 190 | * events */ |
191 | if ((key.getKey() == KeyEvent.VK_F11) && (PuzzleApplication.INSTANCE.getContext().getResourceMap().getBoolean("debugMode"))) | 191 | if ((key.getKey() == KeyEvent.VK_F11) && (PuzzleApplication.getInstance().getContext().getResourceMap().getBoolean("debugMode"))) |
192 | { | 192 | { |
193 | for (LayerEvent ev : currentMap.getEvents()) | 193 | for (LayerEvent ev : currentMap.getEvents()) |
194 | { | 194 | { |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/AnimationType.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/AnimationType.java index 76582e3..55dc6d0 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/AnimationType.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/AnimationType.java | |||
@@ -26,7 +26,7 @@ public enum AnimationType { | |||
26 | */ | 26 | */ |
27 | CommonWithStepping(true, true) | 27 | CommonWithStepping(true, true) |
28 | { | 28 | { |
29 | Interval in = Interval.createTickInterval(2); | 29 | transient Interval in = Interval.createTickInterval(2); |
30 | 30 | ||
31 | @Override | 31 | @Override |
32 | public void tick(PossibleEvent pe) | 32 | public void tick(PossibleEvent pe) |
@@ -56,7 +56,7 @@ public enum AnimationType { | |||
56 | */ | 56 | */ |
57 | TurnLeft(true, true) | 57 | TurnLeft(true, true) |
58 | { | 58 | { |
59 | Interval in = Interval.createTickInterval(2); | 59 | transient Interval in = Interval.createTickInterval(2); |
60 | 60 | ||
61 | @Override | 61 | @Override |
62 | public void tick(PossibleEvent pe) | 62 | public void tick(PossibleEvent pe) |
@@ -73,7 +73,7 @@ public enum AnimationType { | |||
73 | */ | 73 | */ |
74 | TurnRight(true, true) | 74 | TurnRight(true, true) |
75 | { | 75 | { |
76 | Interval in = Interval.createTickInterval(2); | 76 | transient Interval in = Interval.createTickInterval(2); |
77 | 77 | ||
78 | @Override | 78 | @Override |
79 | public void tick(PossibleEvent pe) | 79 | public void tick(PossibleEvent pe) |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/CommonEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/CommonEvent.java index edfdb8f..9c5bf14 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/CommonEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/CommonEvent.java | |||
@@ -51,11 +51,13 @@ public class CommonEvent { | |||
51 | this.callback = callback; | 51 | this.callback = callback; |
52 | } | 52 | } |
53 | 53 | ||
54 | public EventCallTime getCalltime() { | 54 | public EventCallTime getCalltime() |
55 | { | ||
55 | return calltime; | 56 | return calltime; |
56 | } | 57 | } |
57 | 58 | ||
58 | public void setCalltime(EventCallTime calltime) { | 59 | public void setCalltime(EventCallTime calltime) |
60 | { | ||
59 | this.calltime = calltime; | 61 | this.calltime = calltime; |
60 | } | 62 | } |
61 | 63 | ||
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventHandler.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventHandler.java index e24b79c..9cb67ba 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventHandler.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventHandler.java | |||
@@ -59,10 +59,10 @@ public class EventHandler { | |||
59 | * Also reset the viewpoint in case the viewpoint was | 59 | * Also reset the viewpoint in case the viewpoint was |
60 | * fixed during the thread */ | 60 | * fixed during the thread */ |
61 | 61 | ||
62 | SpecialEvent.mapView.setViewpoint(new AutomaticViewpoint(SpecialEvent.mapView.getCurrentMap())); | 62 | new SpecialEvent().ResetViewpoint(); |
63 | } catch (ResourceNotFoundException ex) | 63 | } catch (ResourceNotFoundException ex) |
64 | { | 64 | { |
65 | PuzzleApplication.INSTANCE.reportError(ex); | 65 | PuzzleApplication.reportError(ex); |
66 | } | 66 | } |
67 | } | 67 | } |
68 | }; | 68 | }; |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventList.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventList.java index 7120a91..d790195 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventList.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/EventList.java | |||
@@ -14,6 +14,8 @@ import java.util.Vector; | |||
14 | */ | 14 | */ |
15 | public class EventList extends Vector<LayerEvent> { | 15 | public class EventList extends Vector<LayerEvent> { |
16 | 16 | ||
17 | private static final long serialVersionUID = 765438545; | ||
18 | |||
17 | public EventList(Map parentMap) | 19 | public EventList(Map parentMap) |
18 | { | 20 | { |
19 | setParentMap(parentMap); | 21 | setParentMap(parentMap); |
@@ -62,7 +64,7 @@ public class EventList extends Vector<LayerEvent> { | |||
62 | return super.add(o); | 64 | return super.add(o); |
63 | } | 65 | } |
64 | 66 | ||
65 | private Map parentMap = null; | 67 | private transient Map parentMap = null; |
66 | public Map getParentMap() | 68 | public Map getParentMap() |
67 | { | 69 | { |
68 | return parentMap; | 70 | return parentMap; |
@@ -77,4 +79,34 @@ public class EventList extends Vector<LayerEvent> { | |||
77 | } | 79 | } |
78 | } | 80 | } |
79 | 81 | ||
82 | @Override | ||
83 | public int hashCode() | ||
84 | { | ||
85 | int hash = 3; | ||
86 | hash = 59 * hash + (this.parentMap != null ? this.parentMap.hashCode() : 0); | ||
87 | return hash; | ||
88 | } | ||
89 | |||
90 | @Override | ||
91 | public boolean equals(Object obj) | ||
92 | { | ||
93 | if (obj == null) | ||
94 | { | ||
95 | return false; | ||
96 | } | ||
97 | |||
98 | if (getClass() != obj.getClass()) | ||
99 | { | ||
100 | return false; | ||
101 | } | ||
102 | |||
103 | final EventList other = (EventList) obj; | ||
104 | if (this.parentMap != other.parentMap && (this.parentMap == null || !this.parentMap.equals(other.parentMap))) | ||
105 | { | ||
106 | return false; | ||
107 | } | ||
108 | |||
109 | return true; | ||
110 | } | ||
111 | |||
80 | } | 112 | } |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/HeroEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/HeroEvent.java index 5db87a0..1f5607e 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/HeroEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/HeroEvent.java | |||
@@ -14,12 +14,18 @@ import com.fourisland.fourpuzzle.database.GameCharacter; | |||
14 | import com.fourisland.fourpuzzle.gamestate.mapview.Map; | 14 | import com.fourisland.fourpuzzle.gamestate.mapview.Map; |
15 | import com.fourisland.fourpuzzle.gamestate.mapview.MapViewGameState; | 15 | import com.fourisland.fourpuzzle.gamestate.mapview.MapViewGameState; |
16 | import com.fourisland.fourpuzzle.gamestate.mapview.event.graphic.BlankEventGraphic; | 16 | import com.fourisland.fourpuzzle.gamestate.mapview.event.graphic.BlankEventGraphic; |
17 | import java.io.IOException; | ||
18 | import java.io.ObjectInputStream; | ||
19 | import java.io.ObjectOutputStream; | ||
20 | import java.io.Serializable; | ||
17 | 21 | ||
18 | /** | 22 | /** |
19 | * | 23 | * |
20 | * @author hatkirby | 24 | * @author hatkirby |
21 | */ | 25 | */ |
22 | public class HeroEvent extends AbstractEvent implements Event { | 26 | public class HeroEvent extends AbstractEvent implements Event, Serializable { |
27 | |||
28 | private static final long serialVersionUID = 402340890; | ||
23 | 29 | ||
24 | public HeroEvent() | 30 | public HeroEvent() |
25 | { | 31 | { |
@@ -73,5 +79,27 @@ public class HeroEvent extends AbstractEvent implements Event { | |||
73 | { | 79 | { |
74 | return ((MapViewGameState) Game.getGameState()).getCurrentMap(); | 80 | return ((MapViewGameState) Game.getGameState()).getCurrentMap(); |
75 | } | 81 | } |
82 | |||
83 | /** | ||
84 | * Serialize this HeroEvent instance | ||
85 | * | ||
86 | * When serializing a HeroEvent, the only information that is really | ||
87 | * necessary is the Hero's location and direction, because all other | ||
88 | * important information is serialized by SaveFile. | ||
89 | * | ||
90 | * @serialData The Hero's location (as a Point object) is emitted, followed | ||
91 | * by the a Direction object representing the Hero's direction. | ||
92 | */ | ||
93 | private void writeObject(ObjectOutputStream s) throws IOException | ||
94 | { | ||
95 | s.writeObject(getLocation()); | ||
96 | s.writeObject(getDirection()); | ||
97 | } | ||
98 | |||
99 | private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException | ||
100 | { | ||
101 | setLocation((Point) s.readObject()); | ||
102 | setDirection((Direction) s.readObject()); | ||
103 | } | ||
76 | 104 | ||
77 | } | 105 | } |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/ImmutableEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/ImmutableEvent.java index b722b68..7bd0c42 100644 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/ImmutableEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/ImmutableEvent.java | |||
@@ -26,7 +26,7 @@ public final class ImmutableEvent | |||
26 | 26 | ||
27 | public String getLabel() | 27 | public String getLabel() |
28 | { | 28 | { |
29 | return new String(ev.getLabel()); | 29 | return ev.getLabel(); |
30 | } | 30 | } |
31 | 31 | ||
32 | public Point getLocation() | 32 | public Point getLocation() |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java index 2db33f7..30db7a2 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java | |||
@@ -30,7 +30,7 @@ import java.util.concurrent.CountDownLatch; | |||
30 | */ | 30 | */ |
31 | public class SpecialEvent { | 31 | public class SpecialEvent { |
32 | 32 | ||
33 | protected static MapViewGameState mapView = null; | 33 | private static MapViewGameState mapView = null; |
34 | public static void setMapView(MapViewGameState mapView) | 34 | public static void setMapView(MapViewGameState mapView) |
35 | { | 35 | { |
36 | SpecialEvent.mapView = mapView; | 36 | SpecialEvent.mapView = mapView; |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/movement/CustomMovementType.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/movement/CustomMovementType.java index 78dd991..a63feda 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/movement/CustomMovementType.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/movement/CustomMovementType.java | |||
@@ -7,6 +7,7 @@ package com.fourisland.fourpuzzle.gamestate.mapview.event.movement; | |||
7 | 7 | ||
8 | import com.fourisland.fourpuzzle.Direction; | 8 | import com.fourisland.fourpuzzle.Direction; |
9 | import com.fourisland.fourpuzzle.gamestate.mapview.event.ImmutableEvent; | 9 | import com.fourisland.fourpuzzle.gamestate.mapview.event.ImmutableEvent; |
10 | import java.util.Arrays; | ||
10 | 11 | ||
11 | /** | 12 | /** |
12 | * CustomMovementEvent takes an array of Directions and directions the event | 13 | * CustomMovementEvent takes an array of Directions and directions the event |
@@ -22,7 +23,7 @@ public class CustomMovementType implements MovementType { | |||
22 | 23 | ||
23 | public CustomMovementType(Direction[] moves) | 24 | public CustomMovementType(Direction[] moves) |
24 | { | 25 | { |
25 | this.moves = moves; | 26 | this.moves = Arrays.copyOf(moves, moves.length); |
26 | } | 27 | } |
27 | 28 | ||
28 | public Direction nextMovement(ImmutableEvent ev) | 29 | public Direction nextMovement(ImmutableEvent ev) |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/LoopUntilCollisionMoveEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/LoopUntilCollisionMoveEvent.java index 02744d0..daceffd 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/LoopUntilCollisionMoveEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/LoopUntilCollisionMoveEvent.java | |||
@@ -7,6 +7,7 @@ package com.fourisland.fourpuzzle.gamestate.mapview.event.specialmove; | |||
7 | 7 | ||
8 | import com.fourisland.fourpuzzle.gamestate.mapview.event.Event; | 8 | import com.fourisland.fourpuzzle.gamestate.mapview.event.Event; |
9 | import java.awt.Point; | 9 | import java.awt.Point; |
10 | import java.util.Arrays; | ||
10 | 11 | ||
11 | /** | 12 | /** |
12 | * LoopUntilCollisionMoveEvent takes an array of <b>MoveEvent</b>s and repeatedly | 13 | * LoopUntilCollisionMoveEvent takes an array of <b>MoveEvent</b>s and repeatedly |
@@ -24,7 +25,7 @@ public class LoopUntilCollisionMoveEvent implements MoveEvent { | |||
24 | 25 | ||
25 | public LoopUntilCollisionMoveEvent(MoveEvent[] moves) | 26 | public LoopUntilCollisionMoveEvent(MoveEvent[] moves) |
26 | { | 27 | { |
27 | this.moves = moves; | 28 | this.moves = Arrays.copyOf(moves, moves.length); |
28 | } | 29 | } |
29 | 30 | ||
30 | public void doAction(Event ev) | 31 | public void doAction(Event ev) |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/MoveEventThread.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/MoveEventThread.java index d05a3d8..dae49cb 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/MoveEventThread.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/specialmove/MoveEventThread.java | |||
@@ -9,6 +9,7 @@ import com.fourisland.fourpuzzle.Game; | |||
9 | import com.fourisland.fourpuzzle.gamestate.mapview.event.Event; | 9 | import com.fourisland.fourpuzzle.gamestate.mapview.event.Event; |
10 | import com.fourisland.fourpuzzle.gamestate.mapview.event.LayerEvent; | 10 | import com.fourisland.fourpuzzle.gamestate.mapview.event.LayerEvent; |
11 | import java.util.ArrayList; | 11 | import java.util.ArrayList; |
12 | import java.util.Arrays; | ||
12 | import java.util.List; | 13 | import java.util.List; |
13 | import java.util.Vector; | 14 | import java.util.Vector; |
14 | import java.util.concurrent.ExecutorService; | 15 | import java.util.concurrent.ExecutorService; |
@@ -34,7 +35,7 @@ public class MoveEventThread implements Runnable { | |||
34 | public MoveEventThread(Event ev, MoveEvent[] actions) | 35 | public MoveEventThread(Event ev, MoveEvent[] actions) |
35 | { | 36 | { |
36 | this.ev = ev; | 37 | this.ev = ev; |
37 | this.actions = actions; | 38 | this.actions = Arrays.copyOf(actions, actions.length); |
38 | } | 39 | } |
39 | 40 | ||
40 | public void start() | 41 | public void start() |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/MovingViewpoint.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/MovingViewpoint.java index e6db32b..edaa580 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/MovingViewpoint.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/MovingViewpoint.java | |||
@@ -39,7 +39,7 @@ public class MovingViewpoint implements Viewpoint { | |||
39 | this.sy = sy; | 39 | this.sy = sy; |
40 | this.dx = dx; | 40 | this.dx = dx; |
41 | this.dy = dy; | 41 | this.dy = dy; |
42 | this.speed = length / Game.FPS; | 42 | this.speed = length / (double) Game.FPS; |
43 | this.xdist = dx - sx; | 43 | this.xdist = dx - sx; |
44 | this.ydist = dy - sy; | 44 | this.ydist = dy - sy; |
45 | this.callback = callback; | 45 | this.callback = callback; |
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/ShakingViewpoint.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/ShakingViewpoint.java index f2b40e7..80d36b3 100644 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/ShakingViewpoint.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/viewpoint/ShakingViewpoint.java | |||
@@ -28,7 +28,7 @@ public class ShakingViewpoint implements Viewpoint { | |||
28 | this.length = length; | 28 | this.length = length; |
29 | this.x = x; | 29 | this.x = x; |
30 | this.y = y; | 30 | this.y = y; |
31 | this.in = Interval.createMillisInterval(1000 / speed.getSpeed()); | 31 | this.in = Interval.createMillisInterval(1000F / speed.getSpeed()); |
32 | this.speed = speed; | 32 | this.speed = speed; |
33 | this.callback = callback; | 33 | this.callback = callback; |
34 | this.start = System.currentTimeMillis(); | 34 | this.start = System.currentTimeMillis(); |
diff --git a/src/com/fourisland/fourpuzzle/transition/SlideTransition.java b/src/com/fourisland/fourpuzzle/transition/SlideTransition.java index aa91061..c7b7ad2 100755 --- a/src/com/fourisland/fourpuzzle/transition/SlideTransition.java +++ b/src/com/fourisland/fourpuzzle/transition/SlideTransition.java | |||
@@ -42,7 +42,7 @@ public class SlideTransition implements MultidirectionalTransition { | |||
42 | way = SlideDirection.SideToSide; | 42 | way = SlideDirection.SideToSide; |
43 | } | 43 | } |
44 | 44 | ||
45 | wait = Math.round(max / (Game.FPS/2)); | 45 | wait = max / (Game.FPS/2); |
46 | } | 46 | } |
47 | 47 | ||
48 | public TransitionDirection getDirection() | 48 | public TransitionDirection getDirection() |
diff --git a/src/com/fourisland/fourpuzzle/util/Interval.java b/src/com/fourisland/fourpuzzle/util/Interval.java index 1e5e8f3..0b0125d 100755 --- a/src/com/fourisland/fourpuzzle/util/Interval.java +++ b/src/com/fourisland/fourpuzzle/util/Interval.java | |||
@@ -33,7 +33,7 @@ public class Interval { | |||
33 | private long last = System.nanoTime(); | 33 | private long last = System.nanoTime(); |
34 | public boolean isElapsed() | 34 | public boolean isElapsed() |
35 | { | 35 | { |
36 | if (PuzzleApplication.debugSpeed) | 36 | if (Interval.getDebugSpeed()) |
37 | { | 37 | { |
38 | return true; | 38 | return true; |
39 | } | 39 | } |
@@ -47,5 +47,16 @@ public class Interval { | |||
47 | 47 | ||
48 | return false; | 48 | return false; |
49 | } | 49 | } |
50 | |||
51 | private static boolean debugSpeed = false; | ||
52 | public static void setDebugSpeed(boolean debugSpeed) | ||
53 | { | ||
54 | Interval.debugSpeed = debugSpeed; | ||
55 | } | ||
56 | |||
57 | public static boolean getDebugSpeed() | ||
58 | { | ||
59 | return debugSpeed; | ||
60 | } | ||
50 | 61 | ||
51 | } | 62 | } |
diff --git a/src/com/fourisland/fourpuzzle/util/MidiParser.java b/src/com/fourisland/fourpuzzle/util/MidiParser.java index 3d6c06b..408ea75 100644 --- a/src/com/fourisland/fourpuzzle/util/MidiParser.java +++ b/src/com/fourisland/fourpuzzle/util/MidiParser.java | |||
@@ -27,7 +27,7 @@ public class MidiParser { | |||
27 | 27 | ||
28 | public Sequence parse() throws InvalidMidiDataException | 28 | public Sequence parse() throws InvalidMidiDataException |
29 | { | 29 | { |
30 | Sequence temp = temp = new Sequence(seq.getDivisionType(), seq.getResolution()); | 30 | Sequence temp = new Sequence(seq.getDivisionType(), seq.getResolution()); |
31 | 31 | ||
32 | for (Track t : seq.getTracks()) | 32 | for (Track t : seq.getTracks()) |
33 | { | 33 | { |
diff --git a/src/com/fourisland/fourpuzzle/util/ObjectLoader.java b/src/com/fourisland/fourpuzzle/util/ObjectLoader.java index f1cb157..efeec7e 100755 --- a/src/com/fourisland/fourpuzzle/util/ObjectLoader.java +++ b/src/com/fourisland/fourpuzzle/util/ObjectLoader.java | |||
@@ -55,7 +55,7 @@ public class ObjectLoader { | |||
55 | { | 55 | { |
56 | if (!imageCache.containsKey(type + "/" + name)) | 56 | if (!imageCache.containsKey(type + "/" + name)) |
57 | { | 57 | { |
58 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 58 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
59 | String filename = getFilename(type, name, "png"); | 59 | String filename = getFilename(type, name, "png"); |
60 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); | 60 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); |
61 | BufferedImage bImg = null; | 61 | BufferedImage bImg = null; |
@@ -75,7 +75,7 @@ public class ObjectLoader { | |||
75 | { | 75 | { |
76 | if (!imageCache.containsKey(type + "/" + name)) | 76 | if (!imageCache.containsKey(type + "/" + name)) |
77 | { | 77 | { |
78 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 78 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
79 | String filename = getFilename(type, name, "png"); | 79 | String filename = getFilename(type, name, "png"); |
80 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); | 80 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); |
81 | BufferedImage bImg = null; | 81 | BufferedImage bImg = null; |
@@ -107,7 +107,7 @@ public class ObjectLoader { | |||
107 | { | 107 | { |
108 | if (!musicCache.containsKey(name)) | 108 | if (!musicCache.containsKey(name)) |
109 | { | 109 | { |
110 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 110 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
111 | String filename = getFilename("Music", name, "mid"); | 111 | String filename = getFilename("Music", name, "mid"); |
112 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); | 112 | InputStream str = rm.getClassLoader().getResourceAsStream(filename); |
113 | Sequence seq = null; | 113 | Sequence seq = null; |
@@ -136,7 +136,7 @@ public class ObjectLoader { | |||
136 | { | 136 | { |
137 | if (!soundCache.containsKey("Sound/" + name)) | 137 | if (!soundCache.containsKey("Sound/" + name)) |
138 | { | 138 | { |
139 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 139 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
140 | String filename = getFilename("Sound", name, "wav"); | 140 | String filename = getFilename("Sound", name, "wav"); |
141 | InputStream soundFile = rm.getClassLoader().getResourceAsStream(filename); | 141 | InputStream soundFile = rm.getClassLoader().getResourceAsStream(filename); |
142 | AudioInputStream ais = null; | 142 | AudioInputStream ais = null; |
@@ -173,7 +173,7 @@ public class ObjectLoader { | |||
173 | 173 | ||
174 | public static String getFilename(String type, String name, String ex) | 174 | public static String getFilename(String type, String name, String ex) |
175 | { | 175 | { |
176 | ResourceMap rm = PuzzleApplication.INSTANCE.getContext().getResourceManager().getResourceMap(); | 176 | ResourceMap rm = PuzzleApplication.getInstance().getContext().getResourceManager().getResourceMap(); |
177 | String f = rm.getResourcesDir() + type.toLowerCase() + "/" + name + "." + ex; | 177 | String f = rm.getResourcesDir() + type.toLowerCase() + "/" + name + "." + ex; |
178 | URL fu = rm.getClassLoader().getResource(f); | 178 | URL fu = rm.getClassLoader().getResource(f); |
179 | 179 | ||
diff --git a/src/com/fourisland/fourpuzzle/util/PauseTimer.java b/src/com/fourisland/fourpuzzle/util/PauseTimer.java index f26f105..c3df5df 100644 --- a/src/com/fourisland/fourpuzzle/util/PauseTimer.java +++ b/src/com/fourisland/fourpuzzle/util/PauseTimer.java | |||
@@ -5,8 +5,6 @@ | |||
5 | 5 | ||
6 | package com.fourisland.fourpuzzle.util; | 6 | package com.fourisland.fourpuzzle.util; |
7 | 7 | ||
8 | import com.fourisland.fourpuzzle.PuzzleApplication; | ||
9 | |||
10 | /** | 8 | /** |
11 | * | 9 | * |
12 | * @author hatkirby | 10 | * @author hatkirby |
@@ -22,7 +20,7 @@ public class PauseTimer { | |||
22 | Interval in = Interval.createTickInterval(1); | 20 | Interval in = Interval.createTickInterval(1); |
23 | public boolean isElapsed() | 21 | public boolean isElapsed() |
24 | { | 22 | { |
25 | if (PuzzleApplication.debugSpeed) | 23 | if (Interval.getDebugSpeed()) |
26 | { | 24 | { |
27 | return true; | 25 | return true; |
28 | } | 26 | } |
diff --git a/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java b/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java index 8dce753..2dbd605 100755 --- a/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java +++ b/src/com/fourisland/fourpuzzle/window/ChoiceWindow.java | |||
@@ -61,18 +61,15 @@ public class ChoiceWindow implements Renderable, Inputable { | |||
61 | } | 61 | } |
62 | 62 | ||
63 | private List<String> choices; | 63 | private List<String> choices; |
64 | int numChoices; | ||
65 | boolean center; | 64 | boolean center; |
66 | private int width; | 65 | private int width; |
67 | private int height; | 66 | private int height; |
68 | BufferedImage cacheBase; | 67 | BufferedImage cacheBase; |
69 | int x; | 68 | int x; |
70 | int y; | 69 | int y; |
71 | String clickSound; | ||
72 | private ChoiceWindow(Builder builder) | 70 | private ChoiceWindow(Builder builder) |
73 | { | 71 | { |
74 | this.choices = builder.choices; | 72 | this.choices = builder.choices; |
75 | numChoices = choices.size(); | ||
76 | this.center = builder.center; | 73 | this.center = builder.center; |
77 | 74 | ||
78 | for (String choice : choices) | 75 | for (String choice : choices) |
@@ -211,6 +208,7 @@ public class ChoiceWindow implements Renderable, Inputable { | |||
211 | } | 208 | } |
212 | } | 209 | } |
213 | 210 | ||
211 | Object hasInputLock = new Object(); | ||
214 | Boolean hasInput = false; | 212 | Boolean hasInput = false; |
215 | PauseTimer pt = new PauseTimer(0); | 213 | PauseTimer pt = new PauseTimer(0); |
216 | public void processInput(KeyInput key) | 214 | public void processInput(KeyInput key) |
@@ -231,7 +229,7 @@ public class ChoiceWindow implements Renderable, Inputable { | |||
231 | } | 229 | } |
232 | } else if (key.isActionDown()) | 230 | } else if (key.isActionDown()) |
233 | { | 231 | { |
234 | synchronized (hasInput) | 232 | synchronized (hasInputLock) |
235 | { | 233 | { |
236 | hasInput = true; | 234 | hasInput = true; |
237 | } | 235 | } |
@@ -240,7 +238,7 @@ public class ChoiceWindow implements Renderable, Inputable { | |||
240 | 238 | ||
241 | public boolean hasInput() | 239 | public boolean hasInput() |
242 | { | 240 | { |
243 | synchronized (hasInput) | 241 | synchronized (hasInputLock) |
244 | { | 242 | { |
245 | return hasInput; | 243 | return hasInput; |
246 | } | 244 | } |
diff --git a/src/com/fourisland/fourpuzzle/window/Window.java b/src/com/fourisland/fourpuzzle/window/Window.java index db1bfab..661f4a2 100644 --- a/src/com/fourisland/fourpuzzle/window/Window.java +++ b/src/com/fourisland/fourpuzzle/window/Window.java | |||
@@ -26,7 +26,7 @@ public enum Window | |||
26 | }, | 26 | }, |
27 | Selector(64) | 27 | Selector(64) |
28 | { | 28 | { |
29 | Interval in = Interval.createTickInterval(4); | 29 | transient Interval in = Interval.createTickInterval(4); |
30 | boolean isFlashing = false; | 30 | boolean isFlashing = false; |
31 | 31 | ||
32 | @Override | 32 | @Override |