From: <hik...@us...> - 2008-12-16 13:22:04
|
Revision: 2698 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=2698&view=rev Author: hikerstk Date: 2008-12-16 13:21:55 +0000 (Tue, 16 Dec 2008) Log Message: ----------- Bugfix: eliminated karts called race finish twice (getting points twice). Modified Paths: -------------- trunk/supertuxkart/src/modes/linear_world.cpp Modified: trunk/supertuxkart/src/modes/linear_world.cpp =================================================================== --- trunk/supertuxkart/src/modes/linear_world.cpp 2008-12-16 13:18:46 UTC (rev 2697) +++ trunk/supertuxkart/src/modes/linear_world.cpp 2008-12-16 13:21:55 UTC (rev 2698) @@ -363,27 +363,32 @@ int LinearWorld::getSectorForKart(const int kart_id) const { return m_kart_info[kart_id].m_track_sector; -} +} // getSectorForKart + //----------------------------------------------------------------------------- float LinearWorld::getDistanceDownTrackForKart(const int kart_id) const { return m_kart_info[kart_id].m_curr_track_coords.getY(); -} +} // getDistanceDownTrackForKart + //----------------------------------------------------------------------------- float LinearWorld::getDistanceToCenterForKart(const int kart_id) const { return m_kart_info[kart_id].m_curr_track_coords.getX(); -} +} // getDistanceToCenterForKart + //----------------------------------------------------------------------------- int LinearWorld::getLapForKart(const int kart_id) const { return m_kart_info[kart_id].m_race_lap; -} +} // getLapForKart + //----------------------------------------------------------------------------- void LinearWorld::setTimeAtLapForKart(float t, const int kart_id) { m_kart_info[kart_id].m_time_at_last_lap=t; -} +} // setTimeAtLapForKart + //----------------------------------------------------------------------------- /** Returns the estimated finishing time. Only valid during the last lap! * \param kart_id Id of the kart. @@ -398,7 +403,8 @@ float LinearWorld::getTimeAtLapForKart(const int kart_id) const { return m_kart_info[kart_id].m_time_at_last_lap; -} +} // getTimeAtLapForKart + //----------------------------------------------------------------------------- KartIconDisplayInfo* LinearWorld::getKartsDisplayInfo(const RaceGUI* caller) { @@ -486,7 +492,8 @@ return m_kart_display_info; -} +} // getKartsDisplayInfo + //----------------------------------------------------------------------------- void LinearWorld::terminateRace() { @@ -497,7 +504,8 @@ const unsigned int kart_amount = m_kart.size(); for ( Karts::size_type i = 0; i < kart_amount; ++i) { - if(!m_kart[i]->hasFinishedRace()) + // Eliminated karts have already called raceFinished. + if(!m_kart[i]->hasFinishedRace() && !m_kart[i]->isEliminated()) { const float est_finish_time = m_kart_info[i].m_estimated_finish; m_kart[i]->raceFinished(est_finish_time); @@ -513,7 +521,8 @@ { order[RaceManager::getKart(i)->getPosition()-1] = i; // even for eliminated karts } -} +} // raceResultOrder + //----------------------------------------------------------------------------- float LinearWorld::estimateFinishTimeForKart(Kart* kart) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |