Fix the segfault when going to the network or the kart selection screen after going to the addons menu

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@5924 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
xapantu 2010-09-08 17:11:46 +00:00
parent 42565ba603
commit 5602c1663e
3 changed files with 19 additions and 2 deletions

View File

@ -33,6 +33,7 @@
#include "io/file_manager.hpp"
#include "karts/kart_properties_manager.hpp"
#include "states_screens/kart_selection.hpp"
using namespace irr; /* irrXML which is used to read (not write) xml file,
is located in the namespace irr::io.*/
@ -378,8 +379,7 @@ void Addons::SaveInstalled()
}
xml_installed << "</addons>" << std::endl;
xml_installed.close();
kart_properties_manager->unloadAllKarts();
kart_properties_manager->loadAllKarts();
kart_properties_manager->reLoadAllKarts();
}
// ----------------------------------------------------------------------------
void Addons::UnInstall()

View File

@ -83,6 +83,22 @@ void KartPropertiesManager::unloadAllKarts()
m_kart_search_path.clear();
} // removeTextures
//-----------------------------------------------------------------------------
void KartPropertiesManager::reLoadAllKarts()
{
for(KartPropertiesVector::iterator i = m_karts_properties.begin();
i != m_karts_properties.end(); ++i)
{
delete *i;
}
m_karts_properties.clear();
m_selected_karts.clear();
m_kart_available.clear();
m_groups.clear();
m_all_groups.clear();
//m_kart_search_path.clear();
loadAllKarts();
}
//-----------------------------------------------------------------------------
/** Loads all kart properties and models.
*/

View File

@ -66,6 +66,7 @@ public:
void loadAllKarts ();
void unloadAllKarts ();
void reLoadAllKarts ();
const unsigned int getNumberOfKarts () const {return (unsigned int)m_karts_properties.size();}
const std::vector<std::string>&