Procházet zdrojové kódy

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 před 4 roky
rodič
revize
f32ae824eb
1 změnil soubory, kde provedl 9 přidání a 1 odebrání
  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++;