summaryrefslogtreecommitdiff
path: root/src/being
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-04-12 00:04:11 +0300
committerAndrei Karas <akaras@inbox.ru>2015-04-12 00:04:11 +0300
commit0f83799770cf502fec89c3e13b325663162f2f93 (patch)
treeb7974722d51092558c8633abc4acae0610c40cca /src/being
parentc822a3affd3fcfc26d66b599d4450e4f10e5251d (diff)
downloadmv-0f83799770cf502fec89c3e13b325663162f2f93.tar.gz
mv-0f83799770cf502fec89c3e13b325663162f2f93.tar.bz2
mv-0f83799770cf502fec89c3e13b325663162f2f93.tar.xz
mv-0f83799770cf502fec89c3e13b325663162f2f93.zip
Fix move animation after path is empty.
This fix random stand animation while moving.
Diffstat (limited to 'src/being')
-rw-r--r--src/being/being.cpp11
-rw-r--r--src/being/being.h3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 6bb17ad4b..393e45dd6 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -160,6 +160,7 @@ Being::Being(const int id,
mAttackRange(1),
mLastAttackX(0),
mLastAttackY(0),
+ mPreStandTime(0),
mGender(Gender::UNSPECIFIED),
mAction(BeingAction::STAND),
mSubType(0xFFFF),
@@ -1434,7 +1435,8 @@ void Being::nextTile()
{
if (mPath.empty())
{
- setAction(BeingAction::STAND, 0);
+ mAction = BeingAction::PRESTAND;
+ mPreStandTime = tick_time;
return;
}
@@ -1536,6 +1538,13 @@ void Being::logic()
break;
}
+
+ case BeingAction::PRESTAND:
+ {
+ if (get_elapsed_time(mPreStandTime) > 100)
+ setAction(BeingAction::STAND, 0);
+ break;
+ }
}
if (mAction == BeingAction::MOVE || mNeedPosUpdate)
diff --git a/src/being/being.h b/src/being/being.h
index 767f7f3cd..52a2a5fc7 100644
--- a/src/being/being.h
+++ b/src/being/being.h
@@ -1002,6 +1002,9 @@ class Being notfinal : public ActorSprite,
int mAttackRange;
int mLastAttackX;
int mLastAttackY;
+
+ int mPreStandTime;
+
Gender::Type mGender;
BeingAction::Action mAction;
uint16_t mSubType; /**< Subtype (graphical view, basically) */