From 9875c00dc37b1d7b55e1154075a0cd2d997a490d Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 31 May 2012 18:35:34 +0300
Subject: Add hurt animation.

---
 src/being.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'src')

diff --git a/src/being.cpp b/src/being.cpp
index 8414d93a6..f1a3e0169 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -740,8 +740,12 @@ void Being::handleAttack(Being *victim, int damage,
         if (dir)
             setDirection(dir);
     }
-    if (damage && victim->mType == PLAYER && victim->mAction == SIT)
-        victim->setAction(STAND);
+    if (damage)
+    {
+        victim->setAction(HURT);
+        if (this == player_node && mAction == HURT)
+            setAction(ATTACK);
+    }
 
     sound.playSfx(mInfo->getSound((damage > 0) ?
                   SOUND_EVENT_HIT : SOUND_EVENT_MISS), mX, mY);
@@ -1068,10 +1072,7 @@ void Being::setAction(Action action, int attackType A_UNUSED)
         case HURT:
             if (mInfo)
                 sound.playSfx(mInfo->getSound(SOUND_EVENT_HURT), mX, mY);
-            //currentAction = SpriteAction::HURT;// Buggy: makes the player stop
-                                            // attacking and unable to attack
-                                            // again until he moves.
-                                            // TODO: fix this!
+            currentAction = SpriteAction::HURT;
             break;
         case DEAD:
             currentAction = SpriteAction::DEAD;
-- 
cgit v1.2.3-70-g09d2