diff --git a/src/config/user_config.hpp b/src/config/user_config.hpp index 08e3f8639..bad810c4c 100644 --- a/src/config/user_config.hpp +++ b/src/config/user_config.hpp @@ -434,6 +434,12 @@ namespace UserConfigParams PARAM_PREFIX IntUserConfigParam m_num_laps PARAM_DEFAULT( IntUserConfigParam(4, "numlaps", &m_race_setup_group, "Default number of laps.") ); + PARAM_PREFIX IntUserConfigParam m_gp_reverse + PARAM_DEFAULT( IntUserConfigParam(0, "gp-reverse", + &m_race_setup_group, "Default direction of GP tracks. 0=default, 1=no reverse, 2=all reverse, 3=Random") ); + PARAM_PREFIX IntUserConfigParam m_rand_gp_num_tracks + PARAM_DEFAULT( IntUserConfigParam(1, "random-gp-num-tracks", + &m_race_setup_group, "Default number of tracks for random GP.") ); PARAM_PREFIX IntUserConfigParam m_ffa_time_limit PARAM_DEFAULT(IntUserConfigParam(3, "ffa-time-limit", &m_race_setup_group, "Time limit in ffa mode.")); diff --git a/src/states_screens/gp_info_screen.cpp b/src/states_screens/gp_info_screen.cpp index a6e2cc572..45e6f7f3d 100644 --- a/src/states_screens/gp_info_screen.cpp +++ b/src/states_screens/gp_info_screen.cpp @@ -78,12 +78,10 @@ void GPInfoScreen::loadedFromFile() m_reverse_spinner->addLabel(_("None")); m_reverse_spinner->addLabel(_("All")); m_reverse_spinner->addLabel(_("Random")); - m_reverse_spinner->setValue(0); m_num_tracks_spinner = getWidget("track-spinner"); // Only init the number of tracks here, this way the previously selected // number of tracks will be the default. - m_num_tracks_spinner->setValue(1); m_ai_kart_spinner = getWidget("ai-spinner"); @@ -216,6 +214,8 @@ void GPInfoScreen::init() m_ai_kart_spinner->setMin(min_ai); } // has_AI + m_reverse_spinner->setValue( UserConfigParams::m_gp_reverse ); + if(random) { RibbonWidget *rb = getWidget("buttons"); @@ -246,6 +246,7 @@ void GPInfoScreen::init() else m_group_name = stringc(m_group_names[m_group_spinner->getValue()].c_str()).c_str(); + m_num_tracks_spinner->setValue( UserConfigParams::m_rand_gp_num_tracks ); m_max_num_tracks = getMaxNumTracks(m_group_name); m_num_tracks_spinner->setMax(m_max_num_tracks); @@ -377,7 +378,9 @@ void GPInfoScreen::eventCallback(Widget *, const std::string &name, } else if (name=="track-spinner") { - m_gp.changeTrackNumber(m_num_tracks_spinner->getValue(), m_group_name); + const int num_tranks = m_num_tracks_spinner->getValue(); + m_gp.changeTrackNumber(num_tranks, m_group_name); + UserConfigParams::m_rand_gp_num_tracks = num_tranks; addTracks(); } else if (name=="ai-spinner") @@ -393,6 +396,8 @@ void GPInfoScreen::eventCallback(Widget *, const std::string &name, } else if(name=="reverse-spinner") { + const int reverse = m_reverse_spinner->getValue(); + UserConfigParams::m_gp_reverse = reverse; updateHighscores(); }