Make Skid-Row use a generic counter

This commit is contained in:
Alayan 2018-10-02 15:31:22 +02:00 committed by auriamg
parent 09f5376312
commit 5405933e2e
3 changed files with 22 additions and 3 deletions

View File

@ -234,6 +234,14 @@ void AchievementsStatus::updateAchievementsProgress(unsigned int achieve_data_id
banana_lover->reset(); banana_lover->reset();
banana_lover->increase("banana", "banana", m_variables[ACHIEVE_BANANA_1RACE].counter); banana_lover->increase("banana", "banana", m_variables[ACHIEVE_BANANA_1RACE].counter);
} }
Achievement *skidding = PlayerManager::getCurrentAchievementsStatus()->getAchievement(AchievementInfo::ACHIEVE_SKIDDING);
if (!skidding->isAchieved())
{
skidding->reset();
skidding->increase("skidding", "skidding", m_variables[ACHIEVE_SKIDDING_1LAP].counter);
}
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -282,6 +290,7 @@ void AchievementsStatus::onRaceEnd(bool aborted)
m_variables[ACHIEVE_POWERUP_USED_1RACE].counter = 0; m_variables[ACHIEVE_POWERUP_USED_1RACE].counter = 0;
m_variables[ACHIEVE_BANANA_1RACE].counter = 0; m_variables[ACHIEVE_BANANA_1RACE].counter = 0;
m_variables[ACHIEVE_SKIDDING_1RACE].counter = 0;
// Prevent restart from being abused to get consecutive wins achievement // Prevent restart from being abused to get consecutive wins achievement
if (aborted) if (aborted)
@ -299,4 +308,6 @@ void AchievementsStatus::onLapEnd()
for (iter = m_achievements.begin(); iter != m_achievements.end(); ++iter) { for (iter = m_achievements.begin(); iter != m_achievements.end(); ++iter) {
iter->second->onLapEnd(); iter->second->onLapEnd();
} }
m_variables[ACHIEVE_SKIDDING_1LAP].counter = 0;
} // onLapEnd } // onLapEnd

View File

@ -61,8 +61,12 @@ public :
// Count the number of bananas hit // Count the number of bananas hit
ACHIEVE_BANANA = 8, ACHIEVE_BANANA = 8,
ACHIEVE_BANANA_1RACE = 9, ACHIEVE_BANANA_1RACE = 9,
// Count how many times the player skidded
ACHIEVE_SKIDDING_1LAP = 10,
ACHIEVE_SKIDDING_1RACE = 11,
ACHIEVE_SKIDDING = 12,
ACHIEVE_DATA_NUM = 10 ACHIEVE_DATA_NUM = 13
}; };
private: private:

View File

@ -21,7 +21,7 @@
#ifdef SKID_DEBUG #ifdef SKID_DEBUG
# include "graphics/show_curve.hpp" # include "graphics/show_curve.hpp"
#endif #endif
#include "achievements/achievement_info.hpp" #include "achievements/achievements_status.hpp"
#include "config/player_manager.hpp" #include "config/player_manager.hpp"
#include "karts/kart.hpp" #include "karts/kart.hpp"
#include "karts/kart_gfx.hpp" #include "karts/kart_gfx.hpp"
@ -516,7 +516,11 @@ void Skidding::update(int ticks, bool is_on_ground,
if (m_kart->getController()->canGetAchievements()) if (m_kart->getController()->canGetAchievements())
{ {
PlayerManager::increaseAchievement( PlayerManager::increaseAchievement(
AchievementInfo::ACHIEVE_SKIDDING, "skidding"); AchievementsStatus::ACHIEVE_SKIDDING_1LAP, 1);
PlayerManager::increaseAchievement(
AchievementsStatus::ACHIEVE_SKIDDING_1RACE, 1);
PlayerManager::increaseAchievement(
AchievementsStatus::ACHIEVE_SKIDDING, 1);
} }
} }
else { else {