diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-03-03 18:26:17 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-03-03 18:26:17 +0300 |
commit | 975f12cdaa4bba66c0e1e18aa3d638f3ae8cad76 (patch) | |
tree | 2a0fa752d8bb9c044142fdabd00386fd09b14a75 | |
parent | 7f299fa18a883f5e7392b00764aa1c4d2c41b212 (diff) | |
download | mv-975f12cdaa4bba66c0e1e18aa3d638f3ae8cad76.tar.gz mv-975f12cdaa4bba66c0e1e18aa3d638f3ae8cad76.tar.bz2 mv-975f12cdaa4bba66c0e1e18aa3d638f3ae8cad76.tar.xz mv-975f12cdaa4bba66c0e1e18aa3d638f3ae8cad76.zip |
Use riding sprite actions in being.
-rw-r--r-- | src/being/actorsprite.h | 19 | ||||
-rw-r--r-- | src/being/being.cpp | 8 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/being/actorsprite.h b/src/being/actorsprite.h index 12624aa30..e0c64b017 100644 --- a/src/being/actorsprite.h +++ b/src/being/actorsprite.h @@ -177,7 +177,7 @@ class ActorSprite notfinal : public CompoundSprite, public Actor bool getHaveCart() const A_WARN_UNUSED { return mHaveCart; } - virtual void setRiding(const bool b) + void setRiding(const bool b) { mRiding = b; } protected: @@ -207,15 +207,6 @@ class ActorSprite notfinal : public CompoundSprite, public Actor const int imageType = 0, const std::string &color = ""); - std::set<int> mStatusEffects; /**< set of active status effects */ - - ParticleList mStunParticleEffects; - ParticleVector mStatusParticleEffects; - ParticleList mChildParticleEffects; - int mId; - uint16_t mStunMode; /**< Stun mode; zero if not stunned */ - - private: /** Load the target cursors into memory */ static void initTargetCursor(); @@ -228,6 +219,14 @@ class ActorSprite notfinal : public CompoundSprite, public Actor static bool loaded; + std::set<int> mStatusEffects; /**< set of active status effects */ + + ParticleList mStunParticleEffects; + ParticleVector mStatusParticleEffects; + ParticleList mChildParticleEffects; + int mId; + uint16_t mStunMode; /**< Stun mode; zero if not stunned */ + /** Target cursor being used */ AnimatedSprite *mUsedTargetCursor; diff --git a/src/being/being.cpp b/src/being/being.cpp index e8ab55736..62eded545 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -1112,6 +1112,8 @@ void Being::fireMissile(Being *const victim, const std::string &particle) const std::string Being::getSitAction() const { + if (mRiding) + return SpriteAction::SITRIDE; if (mMap) { const unsigned char mask = mMap->getBlockMask(mX, mY); @@ -1128,6 +1130,8 @@ std::string Being::getSitAction() const std::string Being::getMoveAction() const { + if (mRiding) + return SpriteAction::RIDE; if (mMap) { const unsigned char mask = mMap->getBlockMask(mX, mY); @@ -1144,6 +1148,8 @@ std::string Being::getWeaponAttackAction(const ItemInfo *const weapon) const if (!weapon) return SpriteAction::ATTACK; + if (mRiding) + return weapon->getRideAttackAction(); if (mMap) { const unsigned char mask = mMap->getBlockMask(mX, mY); @@ -1174,6 +1180,8 @@ std::string Being::getAttackAction(const Attack *const attack1) const #define getSpriteAction(func, action) \ std::string Being::get##func##Action() const \ { \ + if (mRiding) \ + return SpriteAction::action##RIDE; \ if (mMap) \ { \ const unsigned char mask = mMap->getBlockMask(mX, mY); \ |