From 67bdf07d706fff5d3070e841252e31cd144671b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Mon, 22 Sep 2014 12:50:06 +0200 Subject: correctly manage dragged Pawn and pawnsToDraw --- core/src/ch/asynk/tankontank/engine/Board.java | 15 ++++++++++++++- 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 animations = new Vector(2); private final Vector nextAnimations = new Vector(2); private final LinkedHashSet tilesToDraw = new LinkedHashSet(); - private final LinkedHashSet pawnsToDraw = new LinkedHashSet(); + protected final LinkedHashSet pawnsToDraw = new LinkedHashSet(); 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); } } -- cgit v1.1-2-g2b99