diff --git a/ROMVault2/DatReaders/DatCmpReader.cs b/ROMVault2/DatReaders/DatCmpReader.cs index 35f1b38..62718da 100644 --- a/ROMVault2/DatReaders/DatCmpReader.cs +++ b/ROMVault2/DatReaders/DatCmpReader.cs @@ -142,6 +142,8 @@ namespace ROMVault2.DatReaders } thisFileType = forceZipping.ToLower() != "no" ? FileType.ZipFile : FileType.File; + if (Settings.FixLevel == eFixLevel.Uncompressed) + thisFileType = FileType.File; tDir.Dat = tDat; return true; diff --git a/ROMVault2/DatReaders/DatDOSReader.cs b/ROMVault2/DatReaders/DatDOSReader.cs index c094b09..4e6c929 100644 --- a/ROMVault2/DatReaders/DatDOSReader.cs +++ b/ROMVault2/DatReaders/DatDOSReader.cs @@ -97,7 +97,7 @@ namespace ROMVault2.DatReaders } } - thisFileType = FileType.ZipFile; + thisFileType = Settings.FixLevel == eFixLevel.Uncompressed ? FileType.File : FileType.ZipFile; tDir.Dat = tDat; return true; diff --git a/ROMVault2/DatReaders/DatMessXMLReader.cs b/ROMVault2/DatReaders/DatMessXMLReader.cs index ba68f76..fc8b475 100644 --- a/ROMVault2/DatReaders/DatMessXMLReader.cs +++ b/ROMVault2/DatReaders/DatMessXMLReader.cs @@ -81,6 +81,8 @@ namespace ROMVault2.DatReaders thisFileType = FileType.ZipFile; break; } + if (Settings.FixLevel == eFixLevel.Uncompressed) + thisFileType = FileType.File; tDir.Dat = tDat; return true; diff --git a/ROMVault2/DatReaders/DatXMLReader.cs b/ROMVault2/DatReaders/DatXMLReader.cs index d3a3106..f290b47 100644 --- a/ROMVault2/DatReaders/DatXMLReader.cs +++ b/ROMVault2/DatReaders/DatXMLReader.cs @@ -165,6 +165,8 @@ namespace ROMVault2.DatReaders // Look for: true string notzipped = VarFix.String(head.SelectSingleNode("notzipped")); if (notzipped.ToLower() == "true" || notzipped.ToLower() == "yes") thisFileType = FileType.File; + if (Settings.FixLevel == eFixLevel.Uncompressed) + thisFileType = FileType.File; tDir.Dat = tDat; return true; diff --git a/ROMVault2/FrmMain.cs b/ROMVault2/FrmMain.cs index 751be8d..24a51a8 100644 --- a/ROMVault2/FrmMain.cs +++ b/ROMVault2/FrmMain.cs @@ -1461,6 +1461,7 @@ namespace ROMVault2 private void SettingsToolStripMenuItemClick(object sender, EventArgs e) { FrmSettings fcfg = new FrmSettings(); + fcfg.UpdateDats += UpdateDats; fcfg.ShowDialog(this); fcfg.Dispose(); } diff --git a/ROMVault2/FrmSettings.cs b/ROMVault2/FrmSettings.cs index 37ed2f4..30bb535 100644 --- a/ROMVault2/FrmSettings.cs +++ b/ROMVault2/FrmSettings.cs @@ -8,11 +8,17 @@ using System; using System.Collections.Generic; using System.Windows.Forms; using ROMVault2.Properties; +using System.IO; +using ROMVault2.RvDB; namespace ROMVault2 { public partial class FrmSettings : Form { + public delegate void UpdateDatsDelegate(); + + public event UpdateDatsDelegate UpdateDats; + public FrmSettings() { InitializeComponent(); @@ -29,6 +35,7 @@ namespace ROMVault2 cboFixLevel.Items.Add("Level1"); cboFixLevel.Items.Add("Level2"); cboFixLevel.Items.Add("Level3"); + cboFixLevel.Items.Add("Uncompressed"); } private void FrmConfigLoad(object sender, EventArgs e) @@ -54,6 +61,26 @@ namespace ROMVault2 private void BtnOkClick(object sender, EventArgs e) { + if (Settings.FixLevel != (eFixLevel)cboFixLevel.SelectedIndex) + { + if (Settings.FixLevel == eFixLevel.Uncompressed || + (eFixLevel)cboFixLevel.SelectedIndex == eFixLevel.Uncompressed) + { + DialogResult dlg = MessageBox.Show("Changing from/to uncompressed requires the cache file to be deleted.\nDo you want to proceed?", "Settings", MessageBoxButtons.YesNoCancel); + + if (dlg == DialogResult.Cancel) + Close(); + + if (dlg != DialogResult.Yes) + return; + + File.Delete(Settings.CacheFile); + DB.Read(sender, new System.ComponentModel.DoWorkEventArgs(null)); + Settings.FixLevel = (eFixLevel)cboFixLevel.SelectedIndex; + UpdateDats(); + } + } + Settings.DatRoot = lblDATRoot.Text; Settings.ScanLevel = (eScanLevel)cboScanLevel.SelectedIndex; Settings.FixLevel = (eFixLevel)cboFixLevel.SelectedIndex; diff --git a/ROMVault2/Settings.cs b/ROMVault2/Settings.cs index 41fc10a..0e7abb4 100644 --- a/ROMVault2/Settings.cs +++ b/ROMVault2/Settings.cs @@ -28,7 +28,8 @@ namespace ROMVault2 TrrntZipLevel3, Level1, Level2, - Level3 + Level3, + Uncompressed } public static class Settings