diff --git a/src/gui/grand_prix_ending.cpp b/src/gui/grand_prix_ending.cpp index 0bb4d1ccd..88d7b6d8a 100644 --- a/src/gui/grand_prix_ending.cpp +++ b/src/gui/grand_prix_ending.cpp @@ -102,7 +102,7 @@ GrandPrixEnd::GrandPrixEnd() // find which kart ended at rank 'i' for(unsigned int j=start; j < NUM_KARTS; ++j) { - if( race_manager->getKartFinalGPRank(j) == i-start ) + if( (int)race_manager->getKartFinalGPRank(j) == (int)(i-start) ) { this_kart_id = j; break; diff --git a/src/gui/race_results_gui.cpp b/src/gui/race_results_gui.cpp index b0ed6cda2..86e98a4b5 100644 --- a/src/gui/race_results_gui.cpp +++ b/src/gui/race_results_gui.cpp @@ -173,10 +173,12 @@ Widget *RaceResultsGUI::displayKartList(Widget *w_prev, int *order, float horizo //This shows position + driver name + time + points earned + total points if(race_manager->getMajorMode()==RaceManager::MAJOR_MODE_GRAND_PRIX) { - sprintf((char*)(score + MAX_STR_LEN * i), "#%d. %s (%d -> %d)", + const int prev_score = race_manager->getKartPrevScore(order[i]); + const int new_score = race_manager->getKartScore(order[i]); + + sprintf((char*)(score + MAX_STR_LEN * i), "#%d. %s (%d + %d = %d)", current_kart->getPosition(), kart_name.c_str(),// sTime, - race_manager->getKartPrevScore(order[i]), - race_manager->getKartScore(order[i])); + prev_score, (new_score - prev_score), new_score); } else { diff --git a/src/race_manager.cpp b/src/race_manager.cpp index 94496ff74..00a4ecb1b 100644 --- a/src/race_manager.cpp +++ b/src/race_manager.cpp @@ -384,8 +384,8 @@ void RaceManager::RaceFinished(const Kart *kart, float time) assert(pos-1 >= 0); assert(pos-1 < (int)m_kart_status.size()); + m_kart_status[id].m_last_score = m_kart_status[id].m_score; m_kart_status[id].m_score += m_score_for_position[pos-1]; - m_kart_status[id].m_last_score = m_score_for_position[pos-1]; m_kart_status[id].m_overall_time += time; m_kart_status[id].m_last_time = time; m_num_finished_karts ++; @@ -401,7 +401,7 @@ void RaceManager::rerunRace() // Subtract last score from all karts: for(int i=0; irestartRace(); diff --git a/src/race_manager.hpp b/src/race_manager.hpp index 5214f4063..f41e669bc 100644 --- a/src/race_manager.hpp +++ b/src/race_manager.hpp @@ -103,7 +103,7 @@ private: std::string m_ident; // The .tkkf filename without the .tkkf std::string m_player_name; // for networked karts int m_score; // score for this kart - int m_last_score; // needed for restart race + int m_last_score; // needed for restart race, and for race results GUI. double m_overall_time; // sum of times of all races double m_last_time; // needed for restart int m_prev_finish_pos; // previous finished position