From e5d96b2242d40075464742cda662c4abc04f57b6 Mon Sep 17 00:00:00 2001 From: DakkJaniels <6080734+DakkJaniels@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:27:33 -0500 Subject: [PATCH] Removed ability to try and join incompatible ZeroTier games (#5648) --- Source/DiabloUI/selgame.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Source/DiabloUI/selgame.cpp b/Source/DiabloUI/selgame.cpp index 47d5a0aa7..f5e6b41dc 100644 --- a/Source/DiabloUI/selgame.cpp +++ b/Source/DiabloUI/selgame.cpp @@ -612,6 +612,9 @@ void selgame_Password_Select(int /*value*/) SDL_ClearError(); if (selgame_selectedGame > 1) { + bool allowJoin = true; + if (selgame_selectedGame > 2) + allowJoin = IsGameCompatible(Gamelist[selgame_selectedGame - 3].gameData); if (provider == SELCONN_ZT) { for (unsigned int i = 0; i < (sizeof(selgame_Ip) / sizeof(selgame_Ip[0])); i++) { selgame_Ip[i] = (selgame_Ip[i] >= 'A' && selgame_Ip[i] <= 'Z') ? selgame_Ip[i] + 'a' - 'A' : selgame_Ip[i]; @@ -620,7 +623,7 @@ void selgame_Password_Select(int /*value*/) } else { strcpy(sgOptions.Network.szPreviousHost, selgame_Ip); } - if (SNetJoinGame(selgame_Ip, gamePassword, gdwPlayerId)) { + if (allowJoin && SNetJoinGame(selgame_Ip, gamePassword, gdwPlayerId)) { if (!IsGameCompatibleWithErrorMessage(*m_game_data)) { InitGameInfo(); selgame_GameSelection_Select(1); @@ -632,12 +635,19 @@ void selgame_Password_Select(int /*value*/) } else { InitGameInfo(); selgame_Free(); - std::string error = SDL_GetError(); + std::string error; + if (!allowJoin) + error = GetErrorMessageIncompatibility(Gamelist[selgame_selectedGame - 3].gameData); + else + error = SDL_GetError(); if (error.empty()) error = "Unknown network error"; UiSelOkDialog(_("Multi Player Game").data(), error.c_str(), false); selgame_Init(); - selgame_Password_Init(selgame_selectedGame); + if (selgame_selectedGame == 2) + selgame_Password_Init(selgame_selectedGame); + else + UiInitGameSelectionList(""); } return; }