summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/tankontank/game/states
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-11-14 17:01:47 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2014-11-14 17:01:47 +0100
commit8e5f602c0368ea074355cf032c034f10fddde9c3 (patch)
treeed0d7a6981a707815dd446782f14ac3e64855e26 /core/src/ch/asynk/tankontank/game/states
parentae6ee1006b0ed8829fae2ee24ca1ab24a1c96343 (diff)
downloadRustAndDust-8e5f602c0368ea074355cf032c034f10fddde9c3.zip
RustAndDust-8e5f602c0368ea074355cf032c034f10fddde9c3.tar.gz
Pawn,Board,Map,StateRotate: use regular move for rotation
Diffstat (limited to 'core/src/ch/asynk/tankontank/game/states')
-rw-r--r--core/src/ch/asynk/tankontank/game/states/StateRotate.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/core/src/ch/asynk/tankontank/game/states/StateRotate.java b/core/src/ch/asynk/tankontank/game/states/StateRotate.java
index ec085b0..814f90f 100644
--- a/core/src/ch/asynk/tankontank/game/states/StateRotate.java
+++ b/core/src/ch/asynk/tankontank/game/states/StateRotate.java
@@ -17,16 +17,23 @@ public class StateRotate extends StateCommon
ctrl.hud.actionButtons.show(Buttons.ROTATE.b | ((ctrl.cfg.canCancel) ? Buttons.ABORT.b : 0));
ctrl.hud.actionButtons.setOn(Buttons.ROTATE);
- if (prevState == StateType.MOVE) {
- rotateOnly = false;
- if (to == null)
- TankOnTank.debug("to is null but should not be");
- map.showFinalPath(to);
- } else {
- rotateOnly = true;
+ if (activeUnit == null)
+ activeUnit = selectedUnit;
+ if (to == null)
to = activeUnit.getHex();
+
+ if (!map.possiblePaths.isSet()) {
+ map.possiblePaths.init(activeUnit);
+ map.possiblePaths.build(to);
}
+ if (map.possiblePaths.size() != 1)
+ TankOnTank.debug("ERROR: possiblePaths.size() == " + map.possiblePaths.size());
+
+ rotateOnly = (to == activeUnit.getHex());
+
+ if (!rotateOnly)
+ map.showFinalPath(to);
map.selectHex(activeUnit.getHex());
map.showDirections(to);
@@ -40,6 +47,8 @@ public class StateRotate extends StateCommon
map.hideFinalPath(to);
map.hideDirections(to);
map.hideOrientation(to);
+ map.possiblePaths.clear();
+ to = null;
}
@Override
@@ -105,15 +114,9 @@ public class StateRotate extends StateCommon
StateType whenDone = StateType.DONE;
ctrl.hud.notify("Move " + activeUnit);
- if (rotateOnly) {
- ctrl.setAnimationCount(1);
- if (map.rotatePawn(activeUnit, o) > 0)
- whenDone = StateType.MOVE;
- } else {
- ctrl.setAnimationCount(1);
- if (map.movePawn(activeUnit, o) > 0)
- whenDone = StateType.MOVE;
- }
+ ctrl.setAnimationCount(1);
+ if (map.movePawn(activeUnit, o) > 0)
+ whenDone = StateType.MOVE;
ctrl.setState(StateType.ANIMATION, whenDone);
}