From ad43e58d901bcc89632c80bdcf498acf2f1717c2 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 3 Mar 2015 17:47:17 +0300 Subject: Add support for riding flag in actorsprite and statuseffect. --- src/being/actorsprite.cpp | 7 +++++-- src/being/actorsprite.h | 4 ++++ src/defaults.cpp | 1 + src/statuseffect.cpp | 5 ++++- 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 -- cgit v1.2.3-70-g09d2