diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-02-08 20:44:03 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-02-08 20:44:03 +0300 |
commit | 66c3c6d23bb3286eb49cc6f132813f64f065cbfa (patch) | |
tree | c951ea7f4e39d1a326458692a8bf46da4cf0668b /src | |
parent | 203045d6184a3e6246b64b3433f43e0bfebc2e31 (diff) | |
download | mv-66c3c6d23bb3286eb49cc6f132813f64f065cbfa.tar.gz mv-66c3c6d23bb3286eb49cc6f132813f64f065cbfa.tar.bz2 mv-66c3c6d23bb3286eb49cc6f132813f64f065cbfa.tar.xz mv-66c3c6d23bb3286eb49cc6f132813f64f065cbfa.zip |
Stop cast animation also if got skill error message.
But this is not all cases. For always correct stop cast animation,
need use animation command "jump" to stand animation.
Diffstat (limited to 'src')
-rw-r--r-- | src/being/actorsprite.cpp | 2 | ||||
-rw-r--r-- | src/being/actorsprite.h | 2 | ||||
-rw-r--r-- | src/being/being.cpp | 4 | ||||
-rw-r--r-- | src/being/being.h | 4 | ||||
-rw-r--r-- | src/net/eathena/skillrecv.cpp | 2 |
5 files changed, 8 insertions, 6 deletions
diff --git a/src/being/actorsprite.cpp b/src/being/actorsprite.cpp index 63f224c3d..b9ab7a8d9 100644 --- a/src/being/actorsprite.cpp +++ b/src/being/actorsprite.cpp @@ -250,7 +250,7 @@ void ActorSprite::updateStatusEffect(const int index, const Enable newStatus) else if (effect->isTrickDead()) setTrickDead(newStatus == Enable_true); else if (effect->isPostDelay()) - setPostDelay(newStatus == Enable_true); + stopCast(newStatus == Enable_true); #endif handleStatusEffect(effect, index); } diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h index e648e6b66..836403c52 100644 --- a/src/being/actorsprite.h +++ b/src/being/actorsprite.h @@ -188,7 +188,7 @@ 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) + virtual void stopCast(const bool b A_UNUSED) { } protected: diff --git a/src/being/being.cpp b/src/being/being.cpp index 29c28c463..6aedf790e 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -2432,7 +2432,7 @@ void Being::updateColors() void Being::updateSprite(const unsigned int slot, const int id, - std::string color, + const std::string &restrict color, const ItemColor colorId, const bool isWeapon, const bool isTempSprite) restrict2 @@ -4349,7 +4349,7 @@ void Being::removeSpiritBalls(const unsigned int balls) restrict2 } } -void Being::setPostDelay(const bool b) +void Being::stopCast(const bool b) { if (b && mAction == BeingAction::CAST) setAction(BeingAction::STAND, 0); diff --git a/src/being/being.h b/src/being/being.h index 48e8b8c5e..6c1e09fa8 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -315,7 +315,7 @@ class Being notfinal : public ActorSprite, void updateSprite(const unsigned int slot, const int id, - std::string color = "", + const std::string &restrict color = "", const ItemColor colorId = ItemColor_one, const bool isWeapon = false, const bool isTempSprite = false) restrict2; @@ -939,7 +939,7 @@ class Being notfinal : public ActorSprite, unsigned int getSpiritBalls() const restrict2 noexcept A_WARN_UNUSED { return mSpiritBalls; } - void setPostDelay(const bool b) override final; + void stopCast(const bool b) override final; #endif void setKarma(const int karma) restrict2 noexcept diff --git a/src/net/eathena/skillrecv.cpp b/src/net/eathena/skillrecv.cpp index d67620e4c..3301543cd 100644 --- a/src/net/eathena/skillrecv.cpp +++ b/src/net/eathena/skillrecv.cpp @@ -209,6 +209,8 @@ void SkillRecv::processSkillFailed(Net::MessageIn &msg) logger->log("Action: %d/%d", bskill, success); } + if (localPlayer) + localPlayer->stopCast(true); std::string txt; if (success == CAST_S32(SKILL_FAILED) && bskill != 0) { |