Bugfix: onRaceEnd was not called for achievements (resulting in
achievements not being reset at end of a race).
This commit is contained in:
@@ -110,7 +110,7 @@ Achievement * AchievementsStatus::getAchievement(uint32_t id)
|
||||
if ( m_achievements.find(id) != m_achievements.end())
|
||||
return m_achievements[id];
|
||||
return NULL;
|
||||
}
|
||||
} // getAchievement
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void AchievementsStatus::sync(const std::vector<uint32_t> & achieved_ids)
|
||||
@@ -121,7 +121,7 @@ void AchievementsStatus::sync(const std::vector<uint32_t> & achieved_ids)
|
||||
if(achievement != NULL)
|
||||
achievement->setAchieved();
|
||||
}
|
||||
}
|
||||
} // sync
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
void AchievementsStatus::onRaceEnd()
|
||||
@@ -131,4 +131,4 @@ void AchievementsStatus::onRaceEnd()
|
||||
for ( iter = m_achievements.begin(); iter != m_achievements.end(); ++iter ) {
|
||||
iter->second->onRaceEnd();
|
||||
}
|
||||
}
|
||||
} // onRaceEnd
|
||||
|
||||
@@ -101,6 +101,15 @@ void PlayerProfile::incrementUseFrequency()
|
||||
else m_use_frequency++;
|
||||
} // incrementUseFrequency
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
/** Notification of a finished race, which can trigger fulfilling
|
||||
* challenges. */
|
||||
void PlayerProfile::raceFinished()
|
||||
{
|
||||
m_story_mode_status->raceFinished();
|
||||
m_achievements_status->onRaceEnd();
|
||||
} // raceFinished
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/** Comparison used to sort players.
|
||||
*/
|
||||
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
void incrementUseFrequency();
|
||||
bool operator<(const PlayerProfile &other);
|
||||
bool operator>(const PlayerProfile &other);
|
||||
|
||||
void raceFinished();
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
~PlayerProfile()
|
||||
@@ -148,10 +148,6 @@ public:
|
||||
m_story_mode_status->setCurrentChallenge(name);
|
||||
} // setCurrentChallenge
|
||||
// ------------------------------------------------------------------------
|
||||
/** Notification of a finished race, which can trigger fulfilling
|
||||
* challenges. */
|
||||
void raceFinished() { m_story_mode_status->raceFinished(); }
|
||||
// ------------------------------------------------------------------------
|
||||
/** Callback when a GP is finished (to test if a challenge was
|
||||
* fulfilled). */
|
||||
void grandPrixFinished() { m_story_mode_status->grandPrixFinished(); }
|
||||
|
||||
@@ -443,12 +443,11 @@ void World::terminateRace()
|
||||
{
|
||||
updateHighscores(&best_highscore_rank, &best_finish_time, &highscore_who,
|
||||
&best_player);
|
||||
PlayerManager::get()->getCurrentPlayer()->raceFinished();
|
||||
}
|
||||
|
||||
PlayerManager::get()->getCurrentPlayer()->raceFinished();
|
||||
PlayerManager::increaseAchievement(AchievementInfo::ACHIEVE_COLUMBUS,
|
||||
getTrack()->getIdent(), 1);
|
||||
PlayerManager::get()->getCurrentPlayer()->raceFinished();
|
||||
|
||||
if (m_race_gui) m_race_gui->clearAllMessages();
|
||||
// we can't delete the race gui here, since it is needed in case of
|
||||
|
||||
Reference in New Issue
Block a user