summaryrefslogtreecommitdiff
path: root/src/resources/action.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/action.cpp')
-rw-r--r--src/resources/action.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/resources/action.cpp b/src/resources/action.cpp
index 923aa72c9..b8cfde611 100644
--- a/src/resources/action.cpp
+++ b/src/resources/action.cpp
@@ -22,6 +22,7 @@
#include "resources/action.h"
#include "resources/animation.h"
+#include "resources/spritedef.h"
#include "utils/dtor.h"
@@ -38,10 +39,19 @@ Animation *Action::getAnimation(int direction) const
{
Animations::const_iterator i = mAnimations.find(direction);
- // When the given direction is not available, return the first one.
- // (either DEFAULT, or more usually DOWN).
if (i == mAnimations.end())
- i = mAnimations.begin();
+ {
+ if (direction == DIRECTION_UPLEFT || direction == DIRECTION_UPRIGHT)
+ direction = DIRECTION_UP;
+ else if (direction == DIRECTION_DOWNLEFT || direction == DIRECTION_DOWNRIGHT)
+ direction = DIRECTION_DOWN;
+ i = mAnimations.find(direction);
+
+ // When the given direction is not available, return the first one.
+ // (either DEFAULT, or more usually DOWN).
+ if (i == mAnimations.end())
+ i = mAnimations.begin();
+ }
return (i == mAnimations.end()) ? NULL : i->second;
}