Try to remember server creation option
This commit is contained in:
@@ -46,6 +46,8 @@ CreateServerScreen::CreateServerScreen() : Screen("online/create_server.stkgui")
|
||||
|
||||
void CreateServerScreen::loadedFromFile()
|
||||
{
|
||||
m_prev_mode = 0;
|
||||
m_prev_value = 0;
|
||||
m_name_widget = getWidget<TextBoxWidget>("name");
|
||||
assert(m_name_widget != NULL);
|
||||
|
||||
@@ -105,8 +107,8 @@ void CreateServerScreen::init()
|
||||
// -- Game modes
|
||||
RibbonWidget* gamemode = getWidget<RibbonWidget>("gamemode");
|
||||
assert(gamemode != NULL);
|
||||
gamemode->setSelection(0, PLAYER_ID_GAME_MASTER);
|
||||
updateMoreOption(0);
|
||||
gamemode->setSelection(m_prev_mode, PLAYER_ID_GAME_MASTER);
|
||||
updateMoreOption(m_prev_mode);
|
||||
} // init
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -133,7 +135,9 @@ void CreateServerScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
{
|
||||
const int selection =
|
||||
m_game_mode_widget->getSelection(PLAYER_ID_GAME_MASTER);
|
||||
m_prev_value = 0;
|
||||
updateMoreOption(selection);
|
||||
m_prev_mode = selection;
|
||||
}
|
||||
|
||||
} // eventCallback
|
||||
@@ -157,7 +161,7 @@ void CreateServerScreen::updateMoreOption(int game_mode)
|
||||
{
|
||||
m_more_options_spinner->addLabel(StringUtils::toWString(i));
|
||||
}
|
||||
m_more_options_spinner->setValue(0);
|
||||
m_more_options_spinner->setValue(m_prev_value);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
@@ -173,7 +177,7 @@ void CreateServerScreen::updateMoreOption(int game_mode)
|
||||
m_more_options_spinner->addLabel(_("Free For All"));
|
||||
//I18N: In the create server screen for battle server
|
||||
m_more_options_spinner->addLabel(_("Capture The Flag"));
|
||||
m_more_options_spinner->setValue(0);
|
||||
m_more_options_spinner->setValue(m_prev_value);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
@@ -189,7 +193,7 @@ void CreateServerScreen::updateMoreOption(int game_mode)
|
||||
m_more_options_spinner->addLabel(_("Time limit"));
|
||||
//I18N: In the create server screen for soccer server
|
||||
m_more_options_spinner->addLabel(_("Goals limit"));
|
||||
m_more_options_spinner->setValue(0);
|
||||
m_more_options_spinner->setValue(m_prev_value);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -347,6 +351,12 @@ void CreateServerScreen::createServer()
|
||||
if (esi > 0)
|
||||
server_cfg << " --network-gp=" << esi;
|
||||
}
|
||||
m_prev_mode = gamemode_widget->getSelection(PLAYER_ID_GAME_MASTER);
|
||||
m_prev_value = esi;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_prev_mode = m_prev_value = 0;
|
||||
}
|
||||
|
||||
SeparateProcess* sp =
|
||||
|
||||
@@ -33,6 +33,8 @@ class CreateServerScreen : public GUIEngine::Screen,
|
||||
public GUIEngine::ScreenSingleton<CreateServerScreen>
|
||||
{
|
||||
private:
|
||||
int m_prev_mode, m_prev_value;
|
||||
|
||||
friend class GUIEngine::ScreenSingleton<CreateServerScreen>;
|
||||
|
||||
CreateServerScreen();
|
||||
|
||||
Reference in New Issue
Block a user