diff --git a/src/game_initialization/multiplayer.cpp b/src/game_initialization/multiplayer.cpp index c0e5c7474727..4fe64e9c7b53 100644 --- a/src/game_initialization/multiplayer.cpp +++ b/src/game_initialization/multiplayer.cpp @@ -135,9 +135,19 @@ std::pair open_connection(std::string host) shown_hosts.emplace(host, port); + gui2::dialogs::loading_screen::progress(loading_stage::redirect); + // Open a new connection with the new host and port. sock = wesnothd_connection_ptr(); sock = wesnothd_connection::create(host, std::to_string(port)); + + // Wait for new handshake. + while(!sock->handshake_finished()) { + sock->poll(); + SDL_Delay(1); + } + + gui2::dialogs::loading_screen::progress(loading_stage::waiting); continue; }