summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2012-02-02 17:42:31 +0100
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2012-02-02 18:19:58 +0100
commit19bc88f34713968864922f8f3f2342d10c4f4dbd (patch)
tree5affb1b26aa1d71b49e1fd7916e41c43df1399c8
parent4bcf9fc3218e37eccbebe52a005a37bd8f06a823 (diff)
downloadmana-19bc88f34713968864922f8f3f2342d10c4f4dbd.tar.gz
mana-19bc88f34713968864922f8f3f2342d10c4f4dbd.tar.bz2
mana-19bc88f34713968864922f8f3f2342d10c4f4dbd.tar.xz
mana-19bc88f34713968864922f8f3f2342d10c4f4dbd.zip
Fixed player's character direction.
Made the player's character look at where it is going even when using the keyboard, by setting its direction after getting the actual destination, and not before. I also used the lookAt() function to avoid yet another custom way of setting the direction. Reviewed-by: Erik Schilling
-rw-r--r--src/being.h4
-rw-r--r--src/localplayer.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/being.h b/src/being.h
index 6464090c..84c159b7 100644
--- a/src/being.h
+++ b/src/being.h
@@ -443,7 +443,9 @@ class Being : public ActorSprite, public EventListener
/**
* Make the being look at a given pixel position.
*/
- void lookAt(const Vector &destPos);
+ void lookAt(const Vector &destVec);
+ void lookAt(const Position &destPos)
+ { lookAt(Vector(destPos.x, destPos.y)); }
protected:
/**
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 8d6ad542..efdcaa60 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -546,6 +546,7 @@ void LocalPlayer::nextTile(unsigned char dir = 0)
if ((int)pos.x != destination.x
|| (int)pos.y != destination.y)
{
+ lookAt(destination);
setDestination(destination.x, destination.y);
}
else if (dir != mDirection)
@@ -759,9 +760,6 @@ void LocalPlayer::startWalking(unsigned char dir)
if (dir & RIGHT)
dx++;
- // Update the direction when the walk just start
- setDirection(dir);
-
nextTile(dir);
}