fixed what happens at the end of a race, fixed problems with faster music set twice
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2349 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
@@ -85,58 +85,6 @@ RaceResultsGUI::RaceResultsGUI()
|
||||
|
||||
} // RaceResultsGUI
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
#if 0
|
||||
Widget *RaceResultsGUI::displayLeaderResults()
|
||||
{
|
||||
const unsigned int NUM_KARTS = race_manager->getNumKarts();
|
||||
|
||||
int *scores = new int[NUM_KARTS];
|
||||
int *order = new int[NUM_KARTS];
|
||||
double *race_time = new double[NUM_KARTS];
|
||||
|
||||
// Ignore kart 0, since it was the leader
|
||||
for( unsigned int kart_id = 1; kart_id < NUM_KARTS; ++kart_id )
|
||||
{
|
||||
order[kart_id] = kart_id;
|
||||
scores[kart_id] = race_manager->getKartScore(kart_id);
|
||||
race_time[kart_id] = race_manager->getOverallTime(kart_id);
|
||||
}
|
||||
|
||||
//Bubblesort
|
||||
bool sorted;
|
||||
do
|
||||
{
|
||||
sorted = true;
|
||||
for( unsigned int i = 1; i < NUM_KARTS - 1; ++i )
|
||||
{
|
||||
if( scores[order[i]] < scores[order[i+1]] ||
|
||||
(scores[order[i]] == scores[order[i+1]]
|
||||
&& race_time[order[i]] > race_time[order[i+1]]) )
|
||||
{
|
||||
int tmp = order[i];
|
||||
order[i] = order[i+1];
|
||||
order[i+1] = tmp;
|
||||
sorted = false;
|
||||
}
|
||||
}
|
||||
} while(!sorted);
|
||||
for(unsigned int i=1; i<NUM_KARTS; i++)
|
||||
RaceManager::getKart(order[i])->setPosition(i);
|
||||
|
||||
Widget *w_prev=widget_manager->addTextWgt( WTOK_RESULTS, 5, 7, _("Race results") );
|
||||
widget_manager->hideWgtRect(WTOK_RESULTS);
|
||||
w_prev->setPosition(WGT_DIR_CENTER, 0.0f, NULL, WGT_DIR_FROM_TOP, 0.1f, NULL);
|
||||
|
||||
w_prev = displayKartList(1, NUM_KARTS-1, w_prev, order,
|
||||
/* display time*/ false, 0.3f);
|
||||
|
||||
delete []order;
|
||||
delete []scores;
|
||||
delete []race_time;
|
||||
return w_prev;
|
||||
} // displayLeaderResults
|
||||
#endif
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
Widget *RaceResultsGUI::displayRaceResults()
|
||||
|
||||
@@ -82,8 +82,11 @@ void ThreeStrikesBattle::kartHit(const int kart_id)
|
||||
removeKart(kart_id);
|
||||
|
||||
// almost over, use fast music
|
||||
if(getCurrentNumKarts()==2)
|
||||
if(getCurrentNumKarts()==2 && m_faster_music_active==false)
|
||||
{
|
||||
sound_manager->switchToFastMusic();
|
||||
m_faster_music_active = true;
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
std::string ThreeStrikesBattle::getInternalCode() const
|
||||
@@ -99,11 +102,12 @@ void ThreeStrikesBattle::update(float delta)
|
||||
if(getCurrentNumKarts()==1 || getCurrentNumPlayers()==0)
|
||||
{
|
||||
// Add the results for the remaining kart
|
||||
for(int i=1; i<(int)race_manager->getNumKarts(); i++)
|
||||
for(int i=0; i<(int)race_manager->getNumKarts(); i++)
|
||||
if(!m_kart[i]->isEliminated())
|
||||
race_manager->RaceFinished(m_kart[i], -1);
|
||||
race_manager->RaceFinished(m_kart[i], TimedRace::getTime());
|
||||
|
||||
TimedRace::enterRaceOverState();
|
||||
if(!RaceManager::getWorld()->isFinishPhase())
|
||||
TimedRace::enterRaceOverState();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -117,6 +121,9 @@ void ThreeStrikesBattle::restartRace()
|
||||
for(unsigned int n=0; n<kart_amount; n++)
|
||||
{
|
||||
m_kart_info[n].m_lives = 3;
|
||||
|
||||
// no positions in this mode
|
||||
m_kart[n]->setPosition(-1);
|
||||
}// next kart
|
||||
}
|
||||
//void ThreeStrikesBattle::getDefaultCollectibles(int& collectible_type, int& amount)
|
||||
@@ -216,5 +223,6 @@ void ThreeStrikesBattle::raceResultOrder( int* order )
|
||||
for( unsigned int kart_id = 0; kart_id < NUM_KARTS; ++kart_id )
|
||||
{
|
||||
order[kart_id] = kart_id;
|
||||
m_kart[kart_id]->setPosition(kart_id+1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user