diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-18 21:03:47 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-02-18 21:03:47 +0100 |
commit | 13bac1f16fb2706320943a397bdd2ffdf9aaba71 (patch) | |
tree | dc3558834b3e7c3458754758e456b3386d535d34 /core/src/ch | |
parent | 9b79116e69a318f0cf45f2d69d2f505a8dbb4835 (diff) | |
download | RustAndDust-13bac1f16fb2706320943a397bdd2ffdf9aaba71.zip RustAndDust-13bac1f16fb2706320943a397bdd2ffdf9aaba71.tar.gz |
Pawn: use move(Move) only, do not dispose of Move, it is owned by Command
Diffstat (limited to 'core/src/ch')
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 2 | ||||
-rw-r--r-- | core/src/ch/asynk/tankontank/engine/Pawn.java | 43 |
2 files changed, 16 insertions, 29 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index 764fccd..b307ee7 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -446,7 +446,7 @@ public abstract class Board implements Disposable, Animation protected void enterPawn(final Pawn pawn, Move move) { - pawn.enter(move); + pawn.move(move); setPawnOnto(pawn, move.to, move.orientation); } diff --git a/core/src/ch/asynk/tankontank/engine/Pawn.java b/core/src/ch/asynk/tankontank/engine/Pawn.java index b471406..3209cc1 100644 --- a/core/src/ch/asynk/tankontank/engine/Pawn.java +++ b/core/src/ch/asynk/tankontank/engine/Pawn.java @@ -104,41 +104,28 @@ public abstract class Pawn implements Moveable, Disposable public void reset() { + move = null; attack.reset(); - if (move != null) { - move.dispose(); - move = null; - } } public void move(Move move) { - if (move.isEnter()) - throw new RuntimeException("wrong MoveType"); - - if (this.move != null) { - if (this.move.isEnter()) - this.move.dispose(); - else - throw new RuntimeException("try to override an existing move instance"); + switch(move.type) + { + case REGULAR: + if ((this.move != null) && (!this.move.isEnter())) + throw new RuntimeException("try to override an existing move instance"); + break; + case ENTER: + if (this.move != null) + throw new RuntimeException("try to override an existing move instance"); + break; + case SET: + break; + default: + throw new RuntimeException("unsupported MoveType"); } - setMove(move); - } - - public void enter(Move move) - { - if (!move.isEnter()) - throw new RuntimeException("wrong MoveType"); - - if (this.move != null) - throw new RuntimeException("try to override an existing move instance"); - - setMove(move); - } - - private void setMove(Move move) - { this.move = move; move(); } |