diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/ch/asynk/tankontank/engine/Board.java | 15 | ||||
| -rw-r--r-- | core/src/ch/asynk/tankontank/game/Map.java | 4 | 
2 files changed, 17 insertions, 2 deletions
| diff --git a/core/src/ch/asynk/tankontank/engine/Board.java b/core/src/ch/asynk/tankontank/engine/Board.java index e8c56d7..3115c40 100644 --- a/core/src/ch/asynk/tankontank/engine/Board.java +++ b/core/src/ch/asynk/tankontank/engine/Board.java @@ -70,7 +70,7 @@ public abstract class Board extends Image implements Disposable      private final Vector<Animation> animations = new Vector<Animation>(2);      private final Vector<Animation> nextAnimations = new Vector<Animation>(2);      private final LinkedHashSet<Tile> tilesToDraw = new LinkedHashSet<Tile>(); -    private final LinkedHashSet<Pawn> pawnsToDraw = new LinkedHashSet<Pawn>(); +    protected final LinkedHashSet<Pawn> pawnsToDraw = new LinkedHashSet<Pawn>();      public Board(Config cfg, Tile[][] board, Texture texture)      { @@ -194,6 +194,19 @@ public abstract class Board extends Image implements Disposable              tilesToDraw.remove(tile);      } +    public Pawn removeTopPawnFrom(GridPoint2 tile) +    { +        return removeTopPawnFrom(tile.x, tile.y); +    } + +    public Pawn removeTopPawnFrom(int col, int row) +    { +        Pawn pawn = getTopPawnAt(col, row); +        if (pawn != null) +            removePawnFrom(pawn, col, row); +        return pawn; +    } +      public Pawn getTopPawnAt(GridPoint2 tile)      {          return getTopPawnAt(tile.x, tile.y); diff --git a/core/src/ch/asynk/tankontank/game/Map.java b/core/src/ch/asynk/tankontank/game/Map.java index 9eef409..7271f22 100644 --- a/core/src/ch/asynk/tankontank/game/Map.java +++ b/core/src/ch/asynk/tankontank/game/Map.java @@ -27,7 +27,8 @@ public class Map extends Board      {          getHexAt(currentHex, x, y);          if (currentHex.x != -1) { -            currentPawn = getTopPawnAt(currentHex); +            currentPawn = removeTopPawnFrom(currentHex); +            if (currentPawn != null) pawnsToDraw.add(currentPawn);          }      } @@ -35,6 +36,7 @@ public class Map extends Board      {          getHexAt(currentHex, x, y);          if (currentPawn != null) { +            pawnsToDraw.remove(currentPawn);              movePawnTo(currentPawn, currentHex);          }      } | 
