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);
|
kart->setPosition(getCurrentNumKarts()+1);
|
||||||
updateRacePosition();
|
updateRacePosition();
|
||||||
}
|
}
|
||||||
|
// Time doesn't make any sense in FTL (and it is not displayed)
|
||||||
|
kart->finishedRace(-1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// almost over, use fast music
|
// 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());
|
assert((unsigned int)m_num_karts == m_ai_kart_list.size()+m_player_karts.size());
|
||||||
// First add the AI karts (randomly chosen)
|
// 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();
|
const unsigned int ai_kart_count = m_ai_kart_list.size();
|
||||||
for(unsigned int i=0; i<ai_kart_count; i++)
|
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)
|
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;
|
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);
|
// 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()
|
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);
|
std::vector<int> old_rank(num_karts, 0);
|
||||||
for(unsigned int kart_id=0; kart_id<num_karts; kart_id++)
|
for(unsigned int kart_id=0; kart_id<num_karts; kart_id++)
|
||||||
{
|
{
|
||||||
int rank = race_manager->getKartGPRank(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;
|
old_rank[kart_id] = rank;
|
||||||
const Kart *kart = World::getWorld()->getKart(kart_id);
|
const Kart *kart = World::getWorld()->getKart(kart_id);
|
||||||
RowInfo *ri = &(m_all_row_infos[rank]);
|
RowInfo *ri = &(m_all_row_infos[rank]);
|
||||||
|
|||||||
Reference in New Issue
Block a user