summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/ch/asynk/tankontank/engine/OrderList.java19
-rw-r--r--core/src/ch/asynk/tankontank/game/Map.java3
2 files changed, 21 insertions, 1 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/OrderList.java b/core/src/ch/asynk/tankontank/engine/OrderList.java
index 2968441..287f374 100644
--- a/core/src/ch/asynk/tankontank/engine/OrderList.java
+++ b/core/src/ch/asynk/tankontank/engine/OrderList.java
@@ -1,7 +1,26 @@
package ch.asynk.tankontank.engine;
import java.util.LinkedList;
+import java.util.Iterator;
public class OrderList extends LinkedList<Order>
{
+ public void dispose(Pawn pawn)
+ {
+ Iterator<Order> it = iterator();
+ while(it.hasNext()) {
+ Order order = it.next();
+ if (order.compareTo(pawn) == 0) {
+ it.remove();
+ order.dispose();
+ }
+ }
+ }
+
+ public void dispose()
+ {
+ for (Order o : this)
+ o.dispose();
+ clear();
+ }
}
diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java
index 245b7e4..2035251 100644
--- a/core/src/ch/asynk/tankontank/game/Map.java
+++ b/core/src/ch/asynk/tankontank/game/Map.java
@@ -120,6 +120,7 @@ public abstract class Map extends Board implements MoveToAnimationCb, ObjectiveS
DiceAnimation.free();
PromoteAnimation.free();
FireAnimation.free();
+ commands.dispose();
Engagement.clearPool();
}
@@ -375,7 +376,7 @@ public abstract class Map extends Board implements MoveToAnimationCb, ObjectiveS
throw new RuntimeException("objectives not cleared");
// FIXME do something with these Commands
- orderList.clear();
+ orderList.dispose();
}
public void actionDone()