diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index 2901458fc5..94609d732e 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -401,9 +401,16 @@ void NetworkSyncManager::StartRequest(short position) while (dontExit) { + //Keep the server going during the loop. + if (isLanServer) + LANserver->ServerUpdate(); + m_packet.ClearPacket(); if (NetPlayerClient->ReadPack((char *)&m_packet, NETMAXBUFFERSIZE)<1) - dontExit=false; // Also allow exit if there is a problem on the socket + if (isLanServer == false) + dontExit=false; // Also allow exit if there is a problem on the socket + // Only do if we are not the server, otherwise the sync + // gets hosed up due to non blocking mode. if (m_packet.Read1() == (128+3)) dontExit=false; //Only allow passing on Start request. diff --git a/stepmania/src/NetworkSyncServer.cpp b/stepmania/src/NetworkSyncServer.cpp index c6ddbf411a..7f364291d7 100644 --- a/stepmania/src/NetworkSyncServer.cpp +++ b/stepmania/src/NetworkSyncServer.cpp @@ -151,6 +151,7 @@ void StepManiaLanServer::Hello(PacketFunctions &Packet, int clientNum) { void GameClient::StyleUpdate(PacketFunctions &Packet) { int playernumber = 0; + Player[0].name = Player[1].name = ""; twoPlayers = Packet.Read1()-1; for (int x = 0; x < twoPlayers+1; x++) { playernumber = Packet.Read1(); @@ -384,10 +385,10 @@ void StepManiaLanServer::RelayChat(PacketFunctions &Packet, int clientNum) { message += Client[clientNum].Player[0].name; - if (Client[clientNum].twoPlayers) { - message += "/"; - message += Client[clientNum].Player[1].name; - } + if (Client[clientNum].twoPlayers) + message += "&"; + + message += Client[clientNum].Player[1].name; message += ": "; message += Packet.ReadNT(); @@ -506,6 +507,7 @@ void GameClient::CheckConnection() { if (clientSocket.IsError()) { clientSocket.close(); Used = false; + Player[0].name = Player[1].name = ""; } }