fixed crashes with command line arguments
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/irrlicht@3790 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
aceea4b120
commit
70f74f7142
@ -41,13 +41,12 @@ private:
|
||||
|
||||
StringUserConfigParam m_name;
|
||||
|
||||
int m_last_kart_id;
|
||||
// int m_last_kart_id;
|
||||
|
||||
public:
|
||||
|
||||
PlayerProfile(const char* name) : m_player_group("Player", "Represents one human player"),
|
||||
m_name(name, "name", &m_player_group),
|
||||
m_last_kart_id(-1)
|
||||
m_name(name, "name", &m_player_group) //, m_last_kart_id(-1)
|
||||
{
|
||||
}
|
||||
|
||||
@ -56,8 +55,8 @@ public:
|
||||
|
||||
const char* getName() { return m_name.c_str(); }
|
||||
|
||||
int getLastKartId(){ return m_last_kart_id; }
|
||||
void setLastKartId(int newLastKartId){ m_last_kart_id = newLastKartId; }
|
||||
//int getLastKartId(){ return m_last_kart_id; }
|
||||
//void setLastKartId(int newLastKartId){ m_last_kart_id = newLastKartId; }
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -265,6 +265,8 @@ namespace UserConfigParams
|
||||
|
||||
PARAM_PREFIX bool m_no_start_screen PARAM_DEFAULT( false ); // not saved to file
|
||||
|
||||
PARAM_PREFIX std::string m_default_kart PARAM_DEFAULT( "tux" ); // not saved to file
|
||||
|
||||
// TODO? implement blacklist for new irrlicht device and GUI
|
||||
PARAM_PREFIX std::vector<std::string> m_blacklist_res;
|
||||
|
||||
|
18
src/main.cpp
18
src/main.cpp
@ -253,9 +253,16 @@ int handleCmdLine(int argc, char **argv)
|
||||
std::string filename=file_manager->getKartFile(std::string(argv[i+1])+".tkkf");
|
||||
if(filename!="")
|
||||
{
|
||||
race_manager->setNumLocalPlayers(1);
|
||||
race_manager->setLocalKartInfo(0, argv[i+1]);
|
||||
fprintf ( stdout, "You choose to use kart '%s'.\n", argv[i+1] ) ;
|
||||
UserConfigParams::m_default_kart = argv[i+1];
|
||||
|
||||
// if a player was added with -N, change its kart. Otherwise, nothing to do,
|
||||
// kart choice will be picked up upon player creation.
|
||||
if (StateManager::get()->activePlayerCount() > 0)
|
||||
{
|
||||
race_manager->setNumLocalPlayers(1);
|
||||
race_manager->setLocalKartInfo(0, argv[i+1]);
|
||||
}
|
||||
fprintf ( stdout, "You chose to use kart '%s'.\n", argv[i+1] ) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -324,7 +331,7 @@ int handleCmdLine(int argc, char **argv)
|
||||
{
|
||||
fprintf ( stdout, "\t%10s: %s\n",
|
||||
track->getIdent().c_str(),
|
||||
track->getName());
|
||||
track->getName().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@ -359,7 +366,8 @@ int handleCmdLine(int argc, char **argv)
|
||||
|
||||
StateManager::get()->addActivePlayer( new ActivePlayer( &(UserConfigParams::m_all_players[0]) ) );
|
||||
race_manager->setNumLocalPlayers(1);
|
||||
race_manager->setLocalKartInfo(0, "tux");
|
||||
std::string& default_kart = UserConfigParams::m_default_kart;
|
||||
race_manager->setLocalKartInfo(0, default_kart);
|
||||
}
|
||||
else if ( !strcmp(argv[i], "--mirror") )
|
||||
{
|
||||
|
@ -140,7 +140,8 @@ namespace KartSelectionScreen
|
||||
m_children.push_back(modelView);
|
||||
|
||||
// Init kart model
|
||||
KartModel* kartModel = kart_properties_manager->getKart("tux")->getKartModel();
|
||||
std::string& default_kart = UserConfigParams::m_default_kart;
|
||||
KartModel* kartModel = kart_properties_manager->getKart(default_kart)->getKartModel();
|
||||
|
||||
this->modelView->addModel( kartModel->getModel() );
|
||||
this->modelView->addModel( kartModel->getWheelModel(0), kartModel->getWheelGraphicsPosition(0) );
|
||||
@ -573,11 +574,12 @@ void menuEventKarts(Widget* widget, const std::string& name)
|
||||
// Build kart list
|
||||
const int kart_amount = kart_properties_manager->getNumberOfKarts();
|
||||
|
||||
// add Tux first
|
||||
// add Tux (or whatever default kart) first
|
||||
std::string& default_kart = UserConfigParams::m_default_kart;
|
||||
for(int n=0; n<kart_amount; n++)
|
||||
{
|
||||
const KartProperties* prop = kart_properties_manager->getKartById(n);
|
||||
if (prop->getIdent() == "tux")
|
||||
if (prop->getIdent() == default_kart)
|
||||
{
|
||||
std::string icon_path = file_manager->getDataDir() ;
|
||||
icon_path += "/karts/" + prop->getIdent() + "/" + prop->getIconFile();
|
||||
@ -590,7 +592,7 @@ void menuEventKarts(Widget* widget, const std::string& name)
|
||||
for(int n=0; n<kart_amount; n++)
|
||||
{
|
||||
const KartProperties* prop = kart_properties_manager->getKartById(n);
|
||||
if (prop->getIdent() != "tux")
|
||||
if (prop->getIdent() != default_kart)
|
||||
{
|
||||
std::string icon_path = file_manager->getDataDir() ;
|
||||
icon_path += "/karts/" + prop->getIdent() + "/" + prop->getIconFile();
|
||||
|
Loading…
x
Reference in New Issue
Block a user