diff options
Diffstat (limited to 'src/being.cpp')
-rw-r--r-- | src/being.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/being.cpp b/src/being.cpp index 69057c09..8a55f2e2 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -230,7 +230,7 @@ Being::setAction(Action action) void Being::setDirection(Uint8 direction) { - mDirection |= direction; + mDirection = direction; std::string dir; if (direction & UP) @@ -268,15 +268,17 @@ Being::nextStep() PATH_NODE node = mPath.front(); mPath.pop_front(); - mDirection = 0; + int dir = 0; if (node.x > mX) - setDirection(RIGHT); + dir |= RIGHT; else if (node.x < mX) - setDirection(LEFT); + dir |= LEFT; if (node.y > mY) - setDirection(DOWN); + dir |= DOWN; else if (node.y < mY) - setDirection(UP); + dir |= UP; + + setDirection(dir); mX = node.x; mY = node.y; |