force crc refresh for both client and server when mismatched
This commit is contained in:
parent
88ed55ca8e
commit
a689dd58a4
|
@ -2152,7 +2152,7 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
||||||
if(lastCheckedCRCTilesetName != gameSettings->getTileset()) {
|
if(lastCheckedCRCTilesetName != gameSettings->getTileset()) {
|
||||||
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
||||||
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL);
|
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL);
|
||||||
if(lastCheckedCRCTilesetValue == 0) {
|
if(lastCheckedCRCTilesetValue == 0 || lastCheckedCRCTilesetValue != gameSettings->getTilesetCRC()) {
|
||||||
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
||||||
}
|
}
|
||||||
lastCheckedCRCTilesetName = gameSettings->getTileset();
|
lastCheckedCRCTilesetName = gameSettings->getTileset();
|
||||||
|
@ -2165,7 +2165,7 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
||||||
if(lastCheckedCRCTechtreeName != gameSettings->getTech()) {
|
if(lastCheckedCRCTechtreeName != gameSettings->getTech()) {
|
||||||
//console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]");
|
//console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]");
|
||||||
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL);
|
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL);
|
||||||
if(lastCheckedCRCTechtreeValue == 0) {
|
if(lastCheckedCRCTechtreeValue == 0 || lastCheckedCRCTechtreeValue != gameSettings->getTechCRC()) {
|
||||||
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL, true);
|
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2740,9 +2740,10 @@ void MenuStateConnectedGame::update() {
|
||||||
gameSettings->getTileset() != "") {
|
gameSettings->getTileset() != "") {
|
||||||
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
||||||
tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL);
|
tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL);
|
||||||
if(tilesetCRC == 0) {
|
if(tilesetCRC == 0 || tilesetCRC != gameSettings->getTilesetCRC()) {
|
||||||
tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test data synch
|
// Test data synch
|
||||||
//tilesetCRC++;
|
//tilesetCRC++;
|
||||||
lastCheckedCRCTilesetValue = tilesetCRC;
|
lastCheckedCRCTilesetValue = tilesetCRC;
|
||||||
|
@ -2756,7 +2757,7 @@ void MenuStateConnectedGame::update() {
|
||||||
techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + gameSettings->getTech() + string("/*"), ".xml", NULL);
|
techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + gameSettings->getTech() + string("/*"), ".xml", NULL);
|
||||||
//clientInterface->sendTextMessage("#1 TechCRC = " + intToStr(techCRC) + " remoteCRC = " + intToStr(gameSettings->getTechCRC()),-1, true, "");
|
//clientInterface->sendTextMessage("#1 TechCRC = " + intToStr(techCRC) + " remoteCRC = " + intToStr(gameSettings->getTechCRC()),-1, true, "");
|
||||||
|
|
||||||
if(techCRC == 0) {
|
if(techCRC == 0 || tilesetCRC != gameSettings->getTechCRC()) {
|
||||||
techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + gameSettings->getTech() + string("/*"), ".xml", NULL, true);
|
techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + gameSettings->getTech() + string("/*"), ".xml", NULL, true);
|
||||||
//clientInterface->sendTextMessage("#2 TechCRC = " + intToStr(techCRC) + " remoteCRC = " + intToStr(gameSettings->getTechCRC()),-1, true, "");
|
//clientInterface->sendTextMessage("#2 TechCRC = " + intToStr(techCRC) + " remoteCRC = " + intToStr(gameSettings->getTechCRC()),-1, true, "");
|
||||||
}
|
}
|
||||||
|
|
|
@ -3340,15 +3340,17 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
||||||
|
|
||||||
if( gameSettings->getTileset() != "") {
|
if( gameSettings->getTileset() != "") {
|
||||||
// Check if client has different data, if so force a CRC refresh
|
// Check if client has different data, if so force a CRC refresh
|
||||||
|
bool forceRefresh = false;
|
||||||
if(checkNetworkPlayerDataSynch(false,true, false) == false &&
|
if(checkNetworkPlayerDataSynch(false,true, false) == false &&
|
||||||
last_Forced_CheckedCRCTilesetName != gameSettings->getTileset()) {
|
last_Forced_CheckedCRCTilesetName != gameSettings->getTileset()) {
|
||||||
lastCheckedCRCTilesetName = "";
|
lastCheckedCRCTilesetName = "";
|
||||||
|
forceRefresh = true;
|
||||||
last_Forced_CheckedCRCTilesetName = gameSettings->getTileset();
|
last_Forced_CheckedCRCTilesetName = gameSettings->getTileset();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(lastCheckedCRCTilesetName != gameSettings->getTileset()) {
|
if(lastCheckedCRCTilesetName != gameSettings->getTileset()) {
|
||||||
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
||||||
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL);
|
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL,forceRefresh);
|
||||||
if(lastCheckedCRCTilesetValue == 0) {
|
if(lastCheckedCRCTilesetValue == 0) {
|
||||||
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
lastCheckedCRCTilesetValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + gameSettings->getTileset() + string("/*"), ".xml", NULL, true);
|
||||||
}
|
}
|
||||||
|
@ -3360,15 +3362,17 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
||||||
if(config.getBool("DisableServerLobbyTechtreeCRCCheck","false") == false) {
|
if(config.getBool("DisableServerLobbyTechtreeCRCCheck","false") == false) {
|
||||||
if(gameSettings->getTech() != "") {
|
if(gameSettings->getTech() != "") {
|
||||||
// Check if client has different data, if so force a CRC refresh
|
// Check if client has different data, if so force a CRC refresh
|
||||||
|
bool forceRefresh = false;
|
||||||
if(checkNetworkPlayerDataSynch(false,false,true) == false &&
|
if(checkNetworkPlayerDataSynch(false,false,true) == false &&
|
||||||
last_Forced_CheckedCRCTechtreeName != gameSettings->getTech()) {
|
last_Forced_CheckedCRCTechtreeName != gameSettings->getTech()) {
|
||||||
lastCheckedCRCTechtreeName = "";
|
lastCheckedCRCTechtreeName = "";
|
||||||
|
bool forceRefresh = true;
|
||||||
last_Forced_CheckedCRCTechtreeName = gameSettings->getTech();
|
last_Forced_CheckedCRCTechtreeName = gameSettings->getTech();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(lastCheckedCRCTechtreeName != gameSettings->getTech()) {
|
if(lastCheckedCRCTechtreeName != gameSettings->getTech()) {
|
||||||
//console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]");
|
//console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]");
|
||||||
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL);
|
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL,forceRefresh);
|
||||||
if(lastCheckedCRCTechtreeValue == 0) {
|
if(lastCheckedCRCTechtreeValue == 0) {
|
||||||
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL, true);
|
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL, true);
|
||||||
}
|
}
|
||||||
|
@ -3398,9 +3402,11 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
||||||
|
|
||||||
if(gameSettings->getMap() != "") {
|
if(gameSettings->getMap() != "") {
|
||||||
// Check if client has different data, if so force a CRC refresh
|
// Check if client has different data, if so force a CRC refresh
|
||||||
|
bool forceRefresh = false;
|
||||||
if(checkNetworkPlayerDataSynch(true,false,false) == false &&
|
if(checkNetworkPlayerDataSynch(true,false,false) == false &&
|
||||||
last_Forced_CheckedCRCMapName != gameSettings->getMap()) {
|
last_Forced_CheckedCRCMapName != gameSettings->getMap()) {
|
||||||
lastCheckedCRCMapName = "";
|
lastCheckedCRCMapName = "";
|
||||||
|
bool forceRefresh = true;
|
||||||
last_Forced_CheckedCRCMapName = gameSettings->getMap();
|
last_Forced_CheckedCRCMapName = gameSettings->getMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user