Преглед на файлове

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 години
родител
ревизия
f32ae824eb
променени са 1 файла, в които са добавени 9 реда и са изтрити 1 реда
  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++;