Attempt for bugfix to resume from msgbox

This commit is contained in:
Mark Vejvoda
2010-03-17 20:57:19 +00:00
parent 569a71e929
commit abf7e57377

View File

@@ -137,8 +137,9 @@ void ClientInterface::updateLobby()
if(Socket::enableNetworkDebugInfo) printf("In [%s::%s] got NetworkMessageIntro\n",__FILE__,__FUNCTION__); if(Socket::enableNetworkDebugInfo) printf("In [%s::%s] got NetworkMessageIntro\n",__FILE__,__FUNCTION__);
//check consistency //check consistency
if(networkMessageIntro.getVersionString() != getNetworkVersionString()) if(networkMessageIntro.getVersionString() != getNetworkVersionString())
//if(1)
{ {
string sErr = "Server and client binary mismatch!\nYou have to use the exactly same binaries!\n\nServer: " + string sErr = "Server and client binary mismatch!\nYou have to use the exactly same binaries!\n\nServer: " +
networkMessageIntro.getVersionString() + networkMessageIntro.getVersionString() +
@@ -151,10 +152,12 @@ void ClientInterface::updateLobby()
if(Config::getInstance().getBool("NetworkConsistencyChecks")) if(Config::getInstance().getBool("NetworkConsistencyChecks"))
{// error message and disconnect only if checked {// error message and disconnect only if checked
DisplayErrorMessage(sErr); DisplayErrorMessage(sErr);
quit= true;
close();
return; return;
} }
} }
//send intro message //send intro message
NetworkMessageIntro sendNetworkMessageIntro(getNetworkVersionString(), getHostName(), -1); NetworkMessageIntro sendNetworkMessageIntro(getNetworkVersionString(), getHostName(), -1);
@@ -333,6 +336,8 @@ void ClientInterface::updateLobby()
//throw runtime_error(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType)); //throw runtime_error(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType));
sendTextMessage("Unexpected network message: " + intToStr(networkMessageType),-1); sendTextMessage("Unexpected network message: " + intToStr(networkMessageType),-1);
DisplayErrorMessage(sErr); DisplayErrorMessage(sErr);
quit= true;
close();
} }
} }
} }
@@ -367,6 +372,8 @@ void ClientInterface::updateKeyframe(int frameCount)
//throw runtime_error("Network synchronization error, frame counts do not match"); //throw runtime_error("Network synchronization error, frame counts do not match");
sendTextMessage(sErr,-1); sendTextMessage(sErr,-1);
DisplayErrorMessage(sErr); DisplayErrorMessage(sErr);
quit= true;
close();
return; return;
} }
@@ -411,6 +418,8 @@ void ClientInterface::updateKeyframe(int frameCount)
sendTextMessage("Unexpected message in client interface: " + intToStr(networkMessageType),-1); sendTextMessage("Unexpected message in client interface: " + intToStr(networkMessageType),-1);
DisplayErrorMessage(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected message in client interface: " + intToStr(networkMessageType)); DisplayErrorMessage(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected message in client interface: " + intToStr(networkMessageType));
quit= true;
close();
} }
} }
} }
@@ -453,6 +462,8 @@ void ClientInterface::waitUntilReady(Checksum* checksum)
string sErr = "Timeout waiting for server"; string sErr = "Timeout waiting for server";
sendTextMessage(sErr,-1); sendTextMessage(sErr,-1);
DisplayErrorMessage(sErr); DisplayErrorMessage(sErr);
quit= true;
close();
return; return;
} }
else else
@@ -472,6 +483,8 @@ void ClientInterface::waitUntilReady(Checksum* checksum)
//throw runtime_error(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType) ); //throw runtime_error(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType) );
sendTextMessage("Unexpected network message: " + intToStr(networkMessageType),-1); sendTextMessage("Unexpected network message: " + intToStr(networkMessageType),-1);
DisplayErrorMessage(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType)); DisplayErrorMessage(string(__FILE__) + "::" + string(__FUNCTION__) + " Unexpected network message: " + intToStr(networkMessageType));
quit= true;
close();
return; return;
} }
@@ -481,6 +494,7 @@ void ClientInterface::waitUntilReady(Checksum* checksum)
//check checksum //check checksum
if(networkMessageReady.getChecksum() != checksum->getSum()) if(networkMessageReady.getChecksum() != checksum->getSum())
//if(1)
{ {
string sErr = "Checksum error, you don't have the same data as the server"; string sErr = "Checksum error, you don't have the same data as the server";
//throw runtime_error("Checksum error, you don't have the same data as the server"); //throw runtime_error("Checksum error, you don't have the same data as the server");
@@ -488,11 +502,12 @@ void ClientInterface::waitUntilReady(Checksum* checksum)
if(Config::getInstance().getBool("NetworkConsistencyChecks")) if(Config::getInstance().getBool("NetworkConsistencyChecks"))
{// error message and disconnect only if checked {// error message and disconnect only if checked
DisplayErrorMessage(sErr); DisplayErrorMessage(sErr);
return; quit= true;
close();
} }
return; return;
} }
//delay the start a bit, so clients have nore room to get messages //delay the start a bit, so clients have nore room to get messages
sleep(GameConstants::networkExtraLatency); sleep(GameConstants::networkExtraLatency);
@@ -521,6 +536,8 @@ void ClientInterface::waitForMessage()
//throw runtime_error("Disconnected"); //throw runtime_error("Disconnected");
sendTextMessage("Disconnected",-1); sendTextMessage("Disconnected",-1);
DisplayErrorMessage("Disconnected"); DisplayErrorMessage("Disconnected");
quit= true;
close();
return; return;
} }
@@ -529,6 +546,8 @@ void ClientInterface::waitForMessage()
//throw runtime_error("Timeout waiting for message"); //throw runtime_error("Timeout waiting for message");
sendTextMessage("Timeout waiting for message",-1); sendTextMessage("Timeout waiting for message",-1);
DisplayErrorMessage("Timeout waiting for message"); DisplayErrorMessage("Timeout waiting for message");
quit= true;
close();
return; return;
} }