Fixed severals problems with FTL GP: GP rank od the leader must be -1
(some GP ranks were not set at all). git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@7098 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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; i<ai_kart_count; i++)
|
||||
{
|
||||
@@ -403,7 +408,8 @@ void RaceManager::computeGPRanks()
|
||||
|
||||
for (unsigned int i=start; i < NUM_KARTS; ++i)
|
||||
{
|
||||
//printf("setting kart %s to rank %i\n", race_manager->getKartName(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);
|
||||
|
||||
@@ -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<int> old_rank(num_karts, 0);
|
||||
for(unsigned int kart_id=0; kart_id<num_karts; kart_id++)
|
||||
{
|
||||
int rank = race_manager->getKartGPRank(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]);
|
||||
|
||||
Reference in New Issue
Block a user