diff --git a/core/app/Controller.java b/core/app/Controller.java index 4ec4dab15b827349d19870ad5ab8e187b05bf5c0..53d94fab18fac4892fbf5f31b11de3bb40c63861 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 8b401568946deb18a201e91f6b5e11c7c70d7078..e1a3ee42d847c0d8c706b7e9a6fc56c2280dc896 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 8c1f3b1bdd1fbf7f74c0d6e9253756e3b416eaf9..21f622f7635dceddca5b70f7194f53f0ba628f0e 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; }