summaryrefslogtreecommitdiff
path: root/src/being
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-02-08 19:38:34 +0300
committerAndrei Karas <akaras@inbox.ru>2016-02-08 19:38:34 +0300
commit203045d6184a3e6246b64b3433f43e0bfebc2e31 (patch)
tree36388d4420f7ac5d11e0a2c2e3d400aaf14e2cee /src/being
parenteef656d3e65cc8954d03e65aacb04ba0271b7703 (diff)
downloadmanaplus-203045d6184a3e6246b64b3433f43e0bfebc2e31.tar.gz
manaplus-203045d6184a3e6246b64b3433f43e0bfebc2e31.tar.bz2
manaplus-203045d6184a3e6246b64b3433f43e0bfebc2e31.tar.xz
manaplus-203045d6184a3e6246b64b3433f43e0bfebc2e31.zip
Add support for post delay status effect. It change cast animation to stand.
Diffstat (limited to 'src/being')
-rw-r--r--src/being/actorsprite.cpp4
-rw-r--r--src/being/actorsprite.h3
-rw-r--r--src/being/being.cpp5
-rw-r--r--src/being/being.h2
4 files changed, 14 insertions, 0 deletions
diff --git a/src/being/actorsprite.cpp b/src/being/actorsprite.cpp
index 02da33367..63f224c3d 100644
--- a/src/being/actorsprite.cpp
+++ b/src/being/actorsprite.cpp
@@ -242,12 +242,16 @@ void ActorSprite::updateStatusEffect(const int index, const Enable newStatus)
return;
if (effect->isPoison() && getType() == ActorType::Player)
setPoison(newStatus == Enable_true);
+#ifdef EATHENA_SUPPORT
else if (effect->isCart() && localPlayer == this)
setHaveCart(newStatus == Enable_true);
else if (effect->isRiding())
setRiding(newStatus == Enable_true);
else if (effect->isTrickDead())
setTrickDead(newStatus == Enable_true);
+ else if (effect->isPostDelay())
+ setPostDelay(newStatus == Enable_true);
+#endif
handleStatusEffect(effect, index);
}
diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h
index 2ca5065ef..e648e6b66 100644
--- a/src/being/actorsprite.h
+++ b/src/being/actorsprite.h
@@ -188,6 +188,9 @@ class ActorSprite notfinal : public CompoundSprite, public Actor
const std::set<int> &getStatusEffects() const A_WARN_UNUSED
{ return mStatusEffects; }
+ virtual void setPostDelay(const bool b A_UNUSED)
+ { }
+
protected:
/**
* Notify self that the stun mode has been updated. Invoked by
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 50875878b..29c28c463 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -4349,4 +4349,9 @@ void Being::removeSpiritBalls(const unsigned int balls) restrict2
}
}
+void Being::setPostDelay(const bool b)
+{
+ if (b && mAction == BeingAction::CAST)
+ setAction(BeingAction::STAND, 0);
+}
#endif
diff --git a/src/being/being.h b/src/being/being.h
index ee073977b..48e8b8c5e 100644
--- a/src/being/being.h
+++ b/src/being/being.h
@@ -938,6 +938,8 @@ class Being notfinal : public ActorSprite,
unsigned int getSpiritBalls() const restrict2 noexcept A_WARN_UNUSED
{ return mSpiritBalls; }
+
+ void setPostDelay(const bool b) override final;
#endif
void setKarma(const int karma) restrict2 noexcept