diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-03-03 17:47:17 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-03-03 17:47:17 +0300 |
commit | ad43e58d901bcc89632c80bdcf498acf2f1717c2 (patch) | |
tree | a386e723b0e5d090279704bb28b06334e117588d | |
parent | 421c0d17d65ee740c992c96b04a00b846b50a2e5 (diff) | |
download | manaplus-ad43e58d901bcc89632c80bdcf498acf2f1717c2.tar.gz manaplus-ad43e58d901bcc89632c80bdcf498acf2f1717c2.tar.bz2 manaplus-ad43e58d901bcc89632c80bdcf498acf2f1717c2.tar.xz manaplus-ad43e58d901bcc89632c80bdcf498acf2f1717c2.zip |
Add support for riding flag in actorsprite and statuseffect.
-rw-r--r-- | src/being/actorsprite.cpp | 7 | ||||
-rw-r--r-- | src/being/actorsprite.h | 4 | ||||
-rw-r--r-- | src/defaults.cpp | 1 | ||||
-rw-r--r-- | src/statuseffect.cpp | 5 | ||||
-rw-r--r-- | src/statuseffect.h | 4 |
5 files changed, 18 insertions, 3 deletions
diff --git a/src/being/actorsprite.cpp b/src/being/actorsprite.cpp index 343018204..9f21d4996 100644 --- a/src/being/actorsprite.cpp +++ b/src/being/actorsprite.cpp @@ -73,7 +73,8 @@ ActorSprite::ActorSprite(const int id) : mCursorPaddingY(0), mMustResetParticles(false), mPoison(false), - mHaveCart(false) + mHaveCart(false), + mRiding(false) { } @@ -220,8 +221,10 @@ void ActorSprite::updateStatusEffect(const int index, const bool newStatus) return; if (effect->isPoison() && getType() == ActorType::Player) setPoison(newStatus); - if (effect->isCart() && localPlayer == this) + else if (effect->isCart() && localPlayer == this) setHaveCart(newStatus); + else if (effect->isRiding()) + setRiding(newStatus); handleStatusEffect(effect, index); } diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h index 02a17ea07..12624aa30 100644 --- a/src/being/actorsprite.h +++ b/src/being/actorsprite.h @@ -177,6 +177,9 @@ class ActorSprite notfinal : public CompoundSprite, public Actor bool getHaveCart() const A_WARN_UNUSED { return mHaveCart; } + virtual void setRiding(const bool b) + { mRiding = b; } + protected: /** * Notify self that the stun mode has been updated. Invoked by @@ -239,6 +242,7 @@ class ActorSprite notfinal : public CompoundSprite, public Actor bool mMustResetParticles; bool mPoison; bool mHaveCart; + bool mRiding; }; #endif // BEING_ACTORSPRITE_H diff --git a/src/defaults.cpp b/src/defaults.cpp index eb33c4245..f1abdfb60 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -580,6 +580,7 @@ DefaultsData* getPathsDefaults() AddDEF("defaultcommandsPatchDir", "defaultcommands.d"); AddDEF("poisonEffectName", "poison"); AddDEF("cartEffectName", "cart"); + AddDEF("ridingEffectName", "riding"); return configData; } diff --git a/src/statuseffect.cpp b/src/statuseffect.cpp index 41697b852..c5e660abd 100644 --- a/src/statuseffect.cpp +++ b/src/statuseffect.cpp @@ -50,7 +50,8 @@ StatusEffect::StatusEffect() : mAction(), mPersistentParticleEffect(false), mIsPoison(false), - mIsCart(false) + mIsCart(false), + mIsRiding(false) { } @@ -201,6 +202,8 @@ void StatusEffect::loadXmlFile(const std::string &fileName) (name == paths.getStringValue("poisonEffectName")); startEffect->mIsCart = (name == paths.getStringValue("cartEffectName")); + startEffect->mIsRiding = + (name == paths.getStringValue("ridingEffectName")); startEffect->mMessage = XML::getProperty( node, "start-message", ""); startEffect->mSFXEffect = XML::getProperty( diff --git a/src/statuseffect.h b/src/statuseffect.h index 4cba35432..ce99fa5d8 100644 --- a/src/statuseffect.h +++ b/src/statuseffect.h @@ -80,6 +80,9 @@ class StatusEffect final bool isCart() const A_WARN_UNUSED { return mIsCart; } + bool isRiding() const A_WARN_UNUSED + { return mIsRiding; } + /** * Retrieves a status effect. * @@ -128,6 +131,7 @@ class StatusEffect final bool mPersistentParticleEffect; bool mIsPoison; bool mIsCart; + bool mIsRiding; }; #endif // STATUSEFFECT_H |