Skip to content

Commit 850d270

Browse files
committed
Allow choosing IPV6 connection in server selection screen
1 parent 7becfb3 commit 850d270

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed

data/gui/screens/online/server_selection.stkgui

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
<spacer width="10"/>
2020
<label proportion="1" height="100%" text_align="left"
2121
I18N="In the server selection screen" text="Show private server(s)"/>
22-
<checkbox width="fit" id="game_started" text_align="left"/>
22+
<checkbox width="fit" id="ipv6" text_align="left"/>
2323
<spacer width="10"/>
2424
<label proportion="1" height="100%" text_align="left"
25-
I18N="In the server selection screen" text="Hide servers with an ongoing game"/>
25+
I18N="In the server selection screen" text="Use IPV6 connection if server supports"/>
2626
</div>
2727
</div>
2828
</div>

src/states_screens/online/server_selection.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,11 @@ void ServerSelection::loadedFromFile()
9898
m_private_server = getWidget<GUIEngine::CheckBoxWidget>("private_server");
9999
assert(m_private_server != NULL);
100100
m_private_server->setState(false);
101-
m_game_started = getWidget<GUIEngine::CheckBoxWidget>("game_started");
102-
assert(m_game_started != NULL);
101+
m_ipv6 = getWidget<GUIEngine::CheckBoxWidget>("ipv6");
102+
assert(m_ipv6 != NULL);
103103
m_searcher = getWidget<GUIEngine::TextBoxWidget>("searcher");
104104
assert(m_searcher != NULL);
105-
m_game_started->setState(false);
105+
m_ipv6->setState(false);
106106
m_icon_bank = new irr::gui::STKModifiedSpriteBank(GUIEngine::getGUIEnv());
107107
} // loadedFromFile
108108

@@ -133,6 +133,12 @@ void ServerSelection::beforeAddingWidget()
133133
void ServerSelection::init()
134134
{
135135
Screen::init();
136+
137+
#ifndef ENABLE_IPV6
138+
m_ipv6->setState(false);
139+
m_ipv6->setActive(false);
140+
#endif
141+
136142
m_current_column = 5/*distance*/;
137143
m_searcher->clearListeners();
138144
m_searcher->addListener(this);
@@ -296,7 +302,7 @@ void ServerSelection::eventCallback(GUIEngine::Widget* widget,
296302
{
297303
refresh(true);
298304
}
299-
else if (name == "private_server" || name == "game_started")
305+
else if (name == "private_server" || name == "ipv6")
300306
{
301307
copyFromServersManager();
302308
}
@@ -310,6 +316,10 @@ void ServerSelection::eventCallback(GUIEngine::Widget* widget,
310316
{
311317
return;
312318
}
319+
#ifdef ENABLE_IPV6
320+
if (!m_servers[selected_index]->getIPV6Address().empty())
321+
m_servers[selected_index]->setIPV6Connection(m_ipv6->getState());
322+
#endif
313323
new ServerInfoDialog(m_servers[selected_index]);
314324
} // click on server
315325

@@ -388,7 +398,7 @@ void ServerSelection::copyFromServersManager()
388398
m_servers.erase(std::remove_if(m_servers.begin(), m_servers.end(),
389399
[this](const std::shared_ptr<Server>& a)->bool
390400
{
391-
if (m_game_started->getState() && a->isGameStarted())
401+
if (m_ipv6->getState() && a->getIPV6Address().empty())
392402
return true;
393403
return false;
394404
}), m_servers.end());

src/states_screens/online/server_selection.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class ServerSelection : public GUIEngine::Screen,
6161
std::vector<std::shared_ptr<Server> > m_servers;
6262

6363
GUIEngine::CheckBoxWidget* m_private_server;
64-
GUIEngine::CheckBoxWidget* m_game_started;
64+
GUIEngine::CheckBoxWidget* m_ipv6;
6565
GUIEngine::IconButtonWidget* m_reload_widget;
6666
GUIEngine::LabelWidget* m_update_status;
6767
GUIEngine::ListWidget* m_server_list_widget;

0 commit comments

Comments
 (0)