Fix server name missing in title when leaving live join kart selection screen
This commit is contained in:
parent
b4411b11fe
commit
ea5aabde0d
@ -23,6 +23,7 @@
|
|||||||
#include "network/network_config.hpp"
|
#include "network/network_config.hpp"
|
||||||
#include "network/network_string.hpp"
|
#include "network/network_string.hpp"
|
||||||
#include "network/protocols/client_lobby.hpp"
|
#include "network/protocols/client_lobby.hpp"
|
||||||
|
#include "network/server.hpp"
|
||||||
#include "network/stk_host.hpp"
|
#include "network/stk_host.hpp"
|
||||||
#include "states_screens/state_manager.hpp"
|
#include "states_screens/state_manager.hpp"
|
||||||
#include "states_screens/online/networking_lobby.hpp"
|
#include "states_screens/online/networking_lobby.hpp"
|
||||||
@ -173,6 +174,8 @@ bool NetworkKartSelectionScreen::onEscapePressed()
|
|||||||
}
|
}
|
||||||
// Rewrite the previous server infos saved (game mode, chat lists...)
|
// Rewrite the previous server infos saved (game mode, chat lists...)
|
||||||
NetworkingLobby::getInstance()->reloadServerInfos();
|
NetworkingLobby::getInstance()->reloadServerInfos();
|
||||||
|
if (auto cl = LobbyProtocol::get<ClientLobby>())
|
||||||
|
NetworkingLobby::getInstance()->setHeader(cl->getJoinedServer()->getName());
|
||||||
return true; // remove the screen
|
return true; // remove the screen
|
||||||
} // onEscapePressed
|
} // onEscapePressed
|
||||||
|
|
||||||
|
@ -79,6 +79,8 @@ NetworkingLobby::NetworkingLobby() : Screen("online/networking_lobby.stkgui")
|
|||||||
m_header_text_width = 0;
|
m_header_text_width = 0;
|
||||||
|
|
||||||
m_back_widget = NULL;
|
m_back_widget = NULL;
|
||||||
|
//I18N: In the networking lobby
|
||||||
|
m_header_text = _("Lobby");
|
||||||
m_header = NULL;
|
m_header = NULL;
|
||||||
m_text_bubble = NULL;
|
m_text_bubble = NULL;
|
||||||
m_timeout_message = NULL;
|
m_timeout_message = NULL;
|
||||||
@ -199,9 +201,7 @@ void NetworkingLobby::init()
|
|||||||
m_spectate_text = _("Spectate");
|
m_spectate_text = _("Spectate");
|
||||||
m_install_addon_text = _("Install addon");
|
m_install_addon_text = _("Install addon");
|
||||||
|
|
||||||
//I18N: In the networking lobby
|
setHeader(m_header_text);
|
||||||
setHeader(_("Lobby"));
|
|
||||||
|
|
||||||
m_server_info_height = GUIEngine::getFont()->getDimension(L"X").Height;
|
m_server_info_height = GUIEngine::getFont()->getDimension(L"X").Height;
|
||||||
m_start_button->setVisible(false);
|
m_start_button->setVisible(false);
|
||||||
m_config_button->setVisible(false);
|
m_config_button->setVisible(false);
|
||||||
@ -440,6 +440,27 @@ void NetworkingLobby::onUpdate(float delta)
|
|||||||
if (NetworkConfig::get()->isServer() || !STKHost::existHost())
|
if (NetworkConfig::get()->isServer() || !STKHost::existHost())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (m_header->getText() != m_header_text)
|
||||||
|
{
|
||||||
|
m_header_text_width =
|
||||||
|
GUIEngine::getTitleFont()->getDimension(m_header_text.c_str()).Width;
|
||||||
|
m_header->getIrrlichtElement()->remove();
|
||||||
|
if (m_header_text_width > m_header->m_w)
|
||||||
|
{
|
||||||
|
m_header->setScrollSpeed(GUIEngine::getTitleFontHeight() / 2);
|
||||||
|
m_header->add();
|
||||||
|
m_header->setText(m_header_text, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_header->setScrollSpeed(0);
|
||||||
|
m_header->add();
|
||||||
|
m_header->setText(m_header_text, true);
|
||||||
|
}
|
||||||
|
// Make sure server name is not clickable for URL
|
||||||
|
m_header->getIrrlichtElement<IGUIStaticText>()->setMouseCallback(nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_header_text_width > m_header->m_w)
|
if (m_header_text_width > m_header->m_w)
|
||||||
{
|
{
|
||||||
m_header->update(delta);
|
m_header->update(delta);
|
||||||
@ -857,6 +878,8 @@ void NetworkingLobby::tearDown()
|
|||||||
st->setMouseCallback(nullptr);
|
st->setMouseCallback(nullptr);
|
||||||
m_player_list = NULL;
|
m_player_list = NULL;
|
||||||
m_joined_server.reset();
|
m_joined_server.reset();
|
||||||
|
m_header_text = _("Lobby");
|
||||||
|
m_header_text_width = 0;
|
||||||
// Server has a dummy network lobby too
|
// Server has a dummy network lobby too
|
||||||
if (!NetworkConfig::get()->isClient())
|
if (!NetworkConfig::get()->isClient())
|
||||||
return;
|
return;
|
||||||
@ -870,6 +893,8 @@ bool NetworkingLobby::onEscapePressed()
|
|||||||
if (NetworkConfig::get()->isAddingNetworkPlayers())
|
if (NetworkConfig::get()->isAddingNetworkPlayers())
|
||||||
NetworkConfig::get()->cleanNetworkPlayers();
|
NetworkConfig::get()->cleanNetworkPlayers();
|
||||||
m_joined_server.reset();
|
m_joined_server.reset();
|
||||||
|
m_header_text = _("Lobby");
|
||||||
|
m_header_text_width = 0;
|
||||||
input_manager->getDeviceManager()->mapFireToSelect(false);
|
input_manager->getDeviceManager()->mapFireToSelect(false);
|
||||||
input_manager->getDeviceManager()->setAssignMode(NO_ASSIGN);
|
input_manager->getDeviceManager()->setAssignMode(NO_ASSIGN);
|
||||||
STKHost::get()->shutdown();
|
STKHost::get()->shutdown();
|
||||||
@ -1014,25 +1039,9 @@ void NetworkingLobby::setStartingTimerTo(float t)
|
|||||||
} // setStartingTimerTo
|
} // setStartingTimerTo
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void NetworkingLobby::setHeader(const core::stringw& header)
|
void NetworkingLobby::setJoinedServer(std::shared_ptr<Server> server)
|
||||||
{
|
{
|
||||||
if (!m_header || m_header->getText() == header)
|
m_joined_server = server;
|
||||||
return;
|
m_server_info.clear();
|
||||||
m_header_text_width =
|
m_header_text = _("Lobby");
|
||||||
GUIEngine::getTitleFont()->getDimension(header.c_str()).Width;
|
} // setJoinedServer
|
||||||
m_header->getIrrlichtElement()->remove();
|
|
||||||
if (m_header_text_width > m_header->m_w)
|
|
||||||
{
|
|
||||||
m_header->setScrollSpeed(GUIEngine::getTitleFontHeight() / 2);
|
|
||||||
m_header->add();
|
|
||||||
m_header->setText(header, true);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_header->setScrollSpeed(0);
|
|
||||||
m_header->add();
|
|
||||||
m_header->setText(header, true);
|
|
||||||
}
|
|
||||||
// Make sure server name is not clickable for URL
|
|
||||||
m_header->getIrrlichtElement<IGUIStaticText>()->setMouseCallback(nullptr);
|
|
||||||
} // setHeader
|
|
||||||
|
@ -75,7 +75,8 @@ private:
|
|||||||
int m_server_info_height, m_header_text_width;
|
int m_server_info_height, m_header_text_width;
|
||||||
|
|
||||||
core::stringw m_start_text, m_ready_text, m_live_join_text,
|
core::stringw m_start_text, m_ready_text, m_live_join_text,
|
||||||
m_configuration_text, m_spectate_text, m_install_addon_text;
|
m_configuration_text, m_spectate_text, m_install_addon_text,
|
||||||
|
m_header_text;
|
||||||
|
|
||||||
float m_start_timeout;
|
float m_start_timeout;
|
||||||
int64_t m_cur_starting_timer;
|
int64_t m_cur_starting_timer;
|
||||||
@ -135,11 +136,7 @@ public:
|
|||||||
|
|
||||||
void finishAddingPlayers();
|
void finishAddingPlayers();
|
||||||
void addMoreServerInfo(core::stringw info);
|
void addMoreServerInfo(core::stringw info);
|
||||||
void setJoinedServer(std::shared_ptr<Server> server)
|
void setJoinedServer(std::shared_ptr<Server> server);
|
||||||
{
|
|
||||||
m_joined_server = server;
|
|
||||||
m_server_info.clear();
|
|
||||||
}
|
|
||||||
void updateServerInfos();
|
void updateServerInfos();
|
||||||
void updatePlayers();
|
void updatePlayers();
|
||||||
void openSplitscreenDialog(InputDevice* device);
|
void openSplitscreenDialog(InputDevice* device);
|
||||||
@ -150,7 +147,7 @@ public:
|
|||||||
void setStartingTimerTo(float t);
|
void setStartingTimerTo(float t);
|
||||||
void toggleServerConfigButton(bool val) { m_server_configurable = val; }
|
void toggleServerConfigButton(bool val) { m_server_configurable = val; }
|
||||||
void reloadServerInfos() { m_reload_server_info = true; }
|
void reloadServerInfos() { m_reload_server_info = true; }
|
||||||
void setHeader(const core::stringw& header);
|
void setHeader(const core::stringw& header) { m_header_text = header; }
|
||||||
}; // class NetworkingLobby
|
}; // class NetworkingLobby
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user