Do not compute the battle graph in case of a single kart in debug
mode in an arena: in debug mode computing the distance matrix takes a LONG time (approximately 12 minutes on my machine). In release mode it's fast enough for now.
This commit is contained in:
parent
1ad20811b8
commit
c9c37fb400
@ -453,10 +453,18 @@ void ThreeStrikesBattle::updateKartNodes()
|
|||||||
{
|
{
|
||||||
if (m_karts[i]->isEliminated()) continue;
|
if (m_karts[i]->isEliminated()) continue;
|
||||||
|
|
||||||
m_kart_info[i].m_on_node = BattleGraph::get()
|
#ifdef DEBUG
|
||||||
->pointToNode(m_kart_info[i].m_on_node,
|
// Battle map not loaded in debug mode with a single kart
|
||||||
m_karts[i]->getXYZ(), false/*ignore_vertical*/);
|
// since the graph creation is very expensive.
|
||||||
}
|
if(race_manager->getNumberOfKarts()>1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
m_kart_info[i].m_on_node = BattleGraph::get()
|
||||||
|
->pointToNode(m_kart_info[i].m_on_node,
|
||||||
|
m_karts[i]->getXYZ(),
|
||||||
|
false/*ignore_vertical*/);
|
||||||
|
}
|
||||||
|
} // for i < n
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -335,6 +335,14 @@ void RaceGUI::drawGlobalTimer()
|
|||||||
*/
|
*/
|
||||||
void RaceGUI::drawGlobalMiniMap()
|
void RaceGUI::drawGlobalMiniMap()
|
||||||
{
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
// Battle map not loaded in debug mode with a single kart due to slowness
|
||||||
|
if(race_manager->getNumberOfKarts()==1 &&
|
||||||
|
( World::getWorld()->getTrack()->isArena() ||
|
||||||
|
World::getWorld()->getTrack()->isSoccer() ) )
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
World *world = World::getWorld();
|
World *world = World::getWorld();
|
||||||
// draw a map when arena has a navigation mesh.
|
// draw a map when arena has a navigation mesh.
|
||||||
if ((world->getTrack()->isArena() || world->getTrack()->isSoccer()) &&
|
if ((world->getTrack()->isArena() || world->getTrack()->isSoccer()) &&
|
||||||
|
@ -671,6 +671,14 @@ void Track::startMusic() const
|
|||||||
*/
|
*/
|
||||||
void Track::loadBattleGraph()
|
void Track::loadBattleGraph()
|
||||||
{
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
// This must be a testing race with just one player. Do not load the
|
||||||
|
// battle graph since it can be VERY slow in debug mode - temple
|
||||||
|
// needs in the order of minutes.
|
||||||
|
if(race_manager->getNumberOfKarts()==1)
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
BattleGraph::create(m_root+"navmesh.xml");
|
BattleGraph::create(m_root+"navmesh.xml");
|
||||||
|
|
||||||
if(BattleGraph::get()->getNumNodes()==0)
|
if(BattleGraph::get()->getNumNodes()==0)
|
||||||
@ -1870,8 +1878,16 @@ void Track::loadTrackModel(bool reverse_track, unsigned int mode_id)
|
|||||||
|
|
||||||
delete root;
|
delete root;
|
||||||
|
|
||||||
if ((m_is_arena || m_is_soccer) && !m_is_cutscene && m_has_navmesh && !arena_random_item_created)
|
#ifdef DEBUG
|
||||||
|
// Don't use battle graph in debug mode with a single kart (i.e. testing
|
||||||
|
// only). Loading can be VERY slow.
|
||||||
|
if(race_manager->getNumberOfKarts()>1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if ((m_is_arena || m_is_soccer) && !m_is_cutscene && m_has_navmesh &&
|
||||||
|
!arena_random_item_created )
|
||||||
BattleGraph::get()->findItemsOnGraphNodes();
|
BattleGraph::get()->findItemsOnGraphNodes();
|
||||||
|
}
|
||||||
|
|
||||||
if (UserConfigParams::m_track_debug &&
|
if (UserConfigParams::m_track_debug &&
|
||||||
race_manager->getMinorMode()!=RaceManager::MINOR_MODE_3_STRIKES &&
|
race_manager->getMinorMode()!=RaceManager::MINOR_MODE_3_STRIKES &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user