diff --git a/src/modes/follow_the_leader.cpp b/src/modes/follow_the_leader.cpp index c76abcd52..824f345cb 100644 --- a/src/modes/follow_the_leader.cpp +++ b/src/modes/follow_the_leader.cpp @@ -107,6 +107,8 @@ void FollowTheLeaderRace::countdownReachedZero() kart->setPosition(getCurrentNumKarts()+1); updateRacePosition(); } + // Time doesn't make any sense in FTL (and it is not displayed) + kart->finishedRace(-1.0f); } // almost over, use fast music diff --git a/src/race/race_manager.cpp b/src/race/race_manager.cpp index 11a22f38d..1113f8504 100644 --- a/src/race/race_manager.cpp +++ b/src/race/race_manager.cpp @@ -216,7 +216,12 @@ void RaceManager::startNew() assert((unsigned int)m_num_karts == m_ai_kart_list.size()+m_player_karts.size()); // First add the AI karts (randomly chosen) // ---------------------------------------- - int init_gp_rank = 0; + + // GP ranks start with -1 for the leader. + int init_gp_rank = + race_manager->getMinorMode()==RaceManager::MINOR_MODE_FOLLOW_LEADER + ? -1 + : 0; const unsigned int ai_kart_count = m_ai_kart_list.size(); for(unsigned int i=0; igetKartName(position[i]).c_str(), i-start); + //printf("setting kart %s to rank %i\n", + // m_kart_status[position[i]].m_ident.c_str(), i-start); m_kart_status[position[i]].m_gp_rank = i - start; } // printf("kart %s has rank %i\n", 0, m_kart_status[0].m_gp_rank); diff --git a/src/states_screens/race_result_gui.cpp b/src/states_screens/race_result_gui.cpp index ad8567068..4f6600b7b 100644 --- a/src/states_screens/race_result_gui.cpp +++ b/src/states_screens/race_result_gui.cpp @@ -529,11 +529,13 @@ void RaceResultGUI::renderGlobal(float dt) */ void RaceResultGUI::determineGPLayout() { - unsigned int num_karts = m_all_row_infos.size(); + unsigned int num_karts = race_manager->getNumberOfKarts(); std::vector old_rank(num_karts, 0); for(unsigned int kart_id=0; kart_idgetKartGPRank(kart_id); + // In case of FTL mode: ignore the leader + if(rank<0) continue; old_rank[kart_id] = rank; const Kart *kart = World::getWorld()->getKart(kart_id); RowInfo *ri = &(m_all_row_infos[rank]);