diff --git a/data/achievements.xml b/data/achievements.xml index f3025e8ec..f2c94caa8 100644 --- a/data/achievements.xml +++ b/data/achievements.xml @@ -51,5 +51,8 @@ - + + + diff --git a/src/achievements/achievement_info.hpp b/src/achievements/achievement_info.hpp index 367d3ca8b..677170b17 100644 --- a/src/achievements/achievement_info.hpp +++ b/src/achievements/achievement_info.hpp @@ -51,7 +51,8 @@ public: ACHIEVE_GOLD_DRIVER = 6, ACHIEVE_POWERUP_LOVER = 7, ACHIEVE_UNSTOPPABLE = 8, - ACHIEVE_BANANA = 9 + ACHIEVE_BANANA = 9, + ACHIEVE_MOSQUITO = 11 }; /** Achievement check type: diff --git a/src/items/swatter.cpp b/src/items/swatter.cpp index 7e85f3a62..ebdfc172d 100644 --- a/src/items/swatter.cpp +++ b/src/items/swatter.cpp @@ -25,10 +25,11 @@ // TODO: move some constants to KartProperties, use all constants from KartProperties #include "items/swatter.hpp" - +#include "achievements/achievement_info.hpp" #include "audio/music_manager.hpp" #include "audio/sfx_base.hpp" #include "audio/sfx_manager.hpp" +#include "config/player_manager.hpp" #include "graphics/explosion.hpp" #include "graphics/irr_driver.hpp" #include "io/file_manager.hpp" @@ -296,6 +297,15 @@ void Swatter::squashThingsAround() kart->setSquash(kp->getSquashDuration() * kart->getPlayerDifficulty()->getSquashDuration(), kp->getSquashSlowdown() * kart->getPlayerDifficulty()->getSquashSlowdown()); + //Handle achievement if the swatter is used by the current player + const StateManager::ActivePlayer *const ap = m_kart->getController() + ->getPlayer(); + if (ap && ap->getConstProfile() == PlayerManager::getCurrentPlayer()) + { + PlayerManager::increaseAchievement(AchievementInfo::ACHIEVE_MOSQUITO, + "swatter", 1); + } + if (kart->getAttachment()->getType()==Attachment::ATTACH_BOMB) { // make bomb explode kart->getAttachment()->update(10000);