Sfoglia il codice sorgente

Added check on file version during original patch installation. This prevents overriting original files with their (maybe older) versions stored in original patch backup daatabases

Ivan Arkhipov 4 anni fa
parent
commit
f32ae824eb
1 ha cambiato i file con 9 aggiunte e 1 eliminazioni
  1. 9 1
      src/Legacy/models/patchinstaller.cpp

+ 9 - 1
src/Legacy/models/patchinstaller.cpp

@@ -155,9 +155,17 @@ void PatchInstaller::installOriginalPatch(QString patch_name)
     DatOriginalFilesDatabase orig_db(QApplication::applicationDirPath() + "/data/" + patch_name + "_orig.db");
 
     DatOriginalFilesDatabase::FileOperation operation = [this](int file_id, int dat_id, int version, int iteration, const LOTRO_DAT::SubfileData& data) {
+        int original_file_version = 0;
         if (dat_id == E_CLIENT_LOCAL) {
-            client_local_file_->PatchFile(data, version, iteration);
+            original_file_version = client_local_file_->GetFileVersion(file_id);
         } else if (dat_id == E_CLIENT_GENERAL) {
+            original_file_version = client_general_file_->GetFileVersion(file_id);
+        }
+
+
+        if (original_file_version == _patch_files_versions && dat_id == E_CLIENT_LOCAL) {
+            client_local_file_->PatchFile(data, version, iteration);
+        } else if (original_file_version == _patch_files_versions && dat_id == E_CLIENT_GENERAL) {
             client_general_file_->PatchFile(data, version, iteration);
         }
         current_status.finished_parts++;