summaryrefslogtreecommitdiffstats
path: root/core/src/ch
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2015-02-18 21:34:05 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2015-02-18 21:34:05 +0100
commit611b4730a9ab19061dbf513ac8da745fc1d730a8 (patch)
tree2cf6ffe51796ce45dfc9252f00d02d967930abba /core/src/ch
parent50c7bb777aa3608a359d196fe26ef2cdd63db76d (diff)
downloadRustAndDust-611b4730a9ab19061dbf513ac8da745fc1d730a8.zip
RustAndDust-611b4730a9ab19061dbf513ac8da745fc1d730a8.tar.gz
OrderList: add dispose(), dispose(Pawn)
Diffstat (limited to 'core/src/ch')
-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()