diff --git a/src/main.cpp b/src/main.cpp index 7a6360477..cddf6bae0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -333,7 +333,6 @@ void InitTuxkart() // default settings for Quickstart race_manager->setNumPlayers(1); - race_manager->setNumKarts (4); race_manager->setNumLaps (3); race_manager->setRaceMode (RaceSetup::RM_QUICK_RACE); race_manager->setDifficulty(RD_MEDIUM); diff --git a/src/race_manager.cpp b/src/race_manager.cpp index 9d9afbd10..082ab886b 100644 --- a/src/race_manager.cpp +++ b/src/race_manager.cpp @@ -28,6 +28,7 @@ #include "gui/menu_manager.hpp" #include "world.hpp" #include "scene.hpp" +#include "user_config.hpp" RaceManager* race_manager= NULL; @@ -61,11 +62,17 @@ GrandPrixMode::GrandPrixMode(const std::vector& players_, : m_difficulty(difficulty_), m_num_karts(numKarts_), m_players(players_), m_cup(cup_), m_track(0) { + const int NUM_PLAYERS = m_players.size(); std::vector kart_names; + + // make sure we have a valid number of karts + if ((m_num_karts < 0) || (m_num_karts > NUM_PLAYERS + int(kart_properties_manager->getNumberOfKarts()))) { + m_num_karts = NUM_PLAYERS + kart_properties_manager->getNumberOfKarts(); + } + kart_names.resize(m_num_karts); - const int NUM_PLAYERS = m_players.size(); for(int i = 0; i < NUM_PLAYERS; ++i) { /*Players position is behind the AI in the first race*/ @@ -159,7 +166,11 @@ QuickRaceMode::QuickRaceMode(const std::string& track_, int numKarts_, int numLaps_) : m_track(track_), m_players(players_), m_difficulty(difficulty_), m_num_karts(numKarts_), m_num_laps(numLaps_) -{} +{ + if ((m_num_karts<0) || (m_num_karts > int(kart_properties_manager->getNumberOfKarts() + m_players.size()))) { + m_num_karts = kart_properties_manager->getNumberOfKarts() + m_players.size(); + } +} //----------------------------------------------------------------------------- void @@ -222,7 +233,7 @@ TimeTrialMode::start() RaceManager::RaceManager() { m_mode = 0; - m_num_karts = 6; + m_num_karts = user_config->m_karts; m_difficulty = RD_MEDIUM; m_race_mode = RaceSetup::RM_QUICK_RACE; m_track = "race";