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()) {
|
||||
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
||||
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);
|
||||
}
|
||||
lastCheckedCRCTilesetName = gameSettings->getTileset();
|
||||
|
@ -2165,7 +2165,7 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) {
|
|||
if(lastCheckedCRCTechtreeName != gameSettings->getTech()) {
|
||||
//console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]");
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -2740,9 +2740,10 @@ void MenuStateConnectedGame::update() {
|
|||
gameSettings->getTileset() != "") {
|
||||
//console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]");
|
||||
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);
|
||||
}
|
||||
|
||||
// Test data synch
|
||||
//tilesetCRC++;
|
||||
lastCheckedCRCTilesetValue = tilesetCRC;
|
||||
|
@ -2756,7 +2757,7 @@ void MenuStateConnectedGame::update() {
|
|||
techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + gameSettings->getTech() + string("/*"), ".xml", NULL);
|
||||
//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);
|
||||
//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() != "") {
|
||||
// Check if client has different data, if so force a CRC refresh
|
||||
bool forceRefresh = false;
|
||||
if(checkNetworkPlayerDataSynch(false,true, false) == false &&
|
||||
last_Forced_CheckedCRCTilesetName != gameSettings->getTileset()) {
|
||||
lastCheckedCRCTilesetName = "";
|
||||
forceRefresh = true;
|
||||
last_Forced_CheckedCRCTilesetName = gameSettings->getTileset();
|
||||
}
|
||||
|
||||
if(lastCheckedCRCTilesetName != 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) {
|
||||
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(gameSettings->getTech() != "") {
|
||||
// Check if client has different data, if so force a CRC refresh
|
||||
bool forceRefresh = false;
|
||||
if(checkNetworkPlayerDataSynch(false,false,true) == false &&
|
||||
last_Forced_CheckedCRCTechtreeName != gameSettings->getTech()) {
|
||||
lastCheckedCRCTechtreeName = "";
|
||||
bool forceRefresh = true;
|
||||
last_Forced_CheckedCRCTechtreeName = gameSettings->getTech();
|
||||
}
|
||||
|
||||
if(lastCheckedCRCTechtreeName != 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) {
|
||||
lastCheckedCRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/*", ".xml", NULL, true);
|
||||
}
|
||||
|
@ -3398,9 +3402,11 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force
|
|||
|
||||
if(gameSettings->getMap() != "") {
|
||||
// Check if client has different data, if so force a CRC refresh
|
||||
bool forceRefresh = false;
|
||||
if(checkNetworkPlayerDataSynch(true,false,false) == false &&
|
||||
last_Forced_CheckedCRCMapName != gameSettings->getMap()) {
|
||||
lastCheckedCRCMapName = "";
|
||||
bool forceRefresh = true;
|
||||
last_Forced_CheckedCRCMapName = gameSettings->getMap();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user