diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/resources/db/itemdb.cpp | 3 | ||||
-rw-r--r-- | src/resources/iteminfo.cpp | 9 | ||||
-rw-r--r-- | src/resources/iteminfo.h | 6 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 189288bf1..11b6f47f4 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -286,6 +286,8 @@ void ItemDB::loadXmlFile(const std::string &fileName, int &tagNum) node, "skyattack-action", ""); std::string waterAttackAction = XML::getProperty( node, "waterattack-action", ""); + std::string rideAttackAction = XML::getProperty( + node, "rideattack-action", ""); std::string drawBefore = XML::getProperty(node, "drawBefore", ""); std::string drawAfter = XML::getProperty(node, "drawAfter", ""); const int pet = XML::getProperty(node, "pet", 0); @@ -386,6 +388,7 @@ void ItemDB::loadXmlFile(const std::string &fileName, int &tagNum) itemInfo->setAttackAction(attackAction); itemInfo->setSkyAttackAction(skyAttackAction); itemInfo->setWaterAttackAction(waterAttackAction); + itemInfo->setRideAttackAction(rideAttackAction); itemInfo->setAttackRange(attackRange); itemInfo->setMissileParticleFile(missileParticle); itemInfo->setHitEffectId(hitEffectId); diff --git a/src/resources/iteminfo.cpp b/src/resources/iteminfo.cpp index abea2c605..c115320cb 100644 --- a/src/resources/iteminfo.cpp +++ b/src/resources/iteminfo.cpp @@ -55,6 +55,7 @@ ItemInfo::ItemInfo() : mAttackAction(SpriteAction::INVALID), mSkyAttackAction(SpriteAction::INVALID), mWaterAttackAction(SpriteAction::INVALID), + mRideAttackAction(SpriteAction::INVALID), mAttackRange(0), mMissileParticle(), mAnimationFiles(), @@ -134,6 +135,14 @@ void ItemInfo::setWaterAttackAction(const std::string &attackAction) mWaterAttackAction = attackAction; } +void ItemInfo::setRideAttackAction(const std::string &attackAction) +{ + if (attackAction.empty()) + mRideAttackAction = SpriteAction::ATTACKRIDE; + else + mRideAttackAction = attackAction; +} + void ItemInfo::addSound(const ItemSoundEvent::Type event, const std::string &filename, const int delay) { diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h index 78ecf13d3..4d69b5c36 100644 --- a/src/resources/iteminfo.h +++ b/src/resources/iteminfo.h @@ -135,6 +135,8 @@ class ItemInfo final void setWaterAttackAction(const std::string &attackAction); + void setRideAttackAction(const std::string &attackAction); + // Handlers for seting and getting the string // used for particles when attacking void setMissileParticleFile(const std::string &s) @@ -170,6 +172,9 @@ class ItemInfo final const std::string &getWaterAttackAction() const { return mWaterAttackAction; } + const std::string &getRideAttackAction() const + { return mRideAttackAction; } + int getAttackRange() const A_WARN_UNUSED { return mAttackRange; } @@ -299,6 +304,7 @@ class ItemInfo final std::string mAttackAction; std::string mSkyAttackAction; std::string mWaterAttackAction; + std::string mRideAttackAction; int mAttackRange; /**< Attack range, will be zero if non weapon. */ // Particle to be shown when weapon attacks |