From 3e14a5d6cd9175d339952c94956e412c2298f16e Mon Sep 17 00:00:00 2001
From: edani95 <elekdani95@gmail.com>
Date: Sun, 15 May 2016 11:40:03 +0200
Subject: [PATCH] Map sequence bug fix

---
 core/app/Controller.java     | 1 +
 core/app/GameController.java | 5 ++---
 core/game/Model.java         | 9 +++++++++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/core/app/Controller.java b/core/app/Controller.java
index 4ec4dab..53d94fa 100644
--- a/core/app/Controller.java
+++ b/core/app/Controller.java
@@ -157,6 +157,7 @@ public class Controller {
 	 */
 	private boolean initMap(String mapPath) throws IOException
 	{
+		Model.getInstance().restartMap();
 		BufferedReader br = new BufferedReader(new FileReader(mapPath));
 
 		String command;
diff --git a/core/app/GameController.java b/core/app/GameController.java
index 8b40156..e1a3ee4 100644
--- a/core/app/GameController.java
+++ b/core/app/GameController.java
@@ -39,8 +39,6 @@ public class GameController implements PropertyChangeListener{
 	 */
 	public void startGameProcess( int[] rZPMCount) throws GameRunningException
 	{
-		Model.getInstance().restartMap();
-
 		int failure = 0;
 		int counter = 0;
 
@@ -217,7 +215,7 @@ public class GameController implements PropertyChangeListener{
 
 		} // end of while
 
-
+		Model.getInstance().removePropertyChangeListener(this);
 
 		return;	// Map finished
 	}
@@ -316,6 +314,7 @@ public class GameController implements PropertyChangeListener{
 
 		// update only the changed fields
 		int coord = (int)evt.getNewValue();
+		System.out.println(coord);
 		int xCoord = coord / map[0].length;
 		int yCoord = coord % map[0].length;
 		Field changedField = (Field)evt.getOldValue();
diff --git a/core/game/Model.java b/core/game/Model.java
index 8c1f3b1..21f622f 100644
--- a/core/game/Model.java
+++ b/core/game/Model.java
@@ -50,6 +50,14 @@ public class Model implements PropertyChangeListener
 			propSupp.addPropertyChangeListener(listener);
 		}
 	}
+	
+	public void removePropertyChangeListener(PropertyChangeListener listener)
+	{
+		if(listener != null)
+		{
+			propSupp.removePropertyChangeListener(listener);
+		}
+	}
 
 	public void setColonel(Player colonel)
 	{
@@ -94,6 +102,7 @@ public class Model implements PropertyChangeListener
 
 	public void restartMap()
 	{
+		map = new ArrayList<>();
 		isMapFinished = false;
 	}
 
-- 
GitLab