diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 699ff473..f9bf74f1 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -739,7 +739,7 @@ namespace SabreTools.Library.DatFiles if (useGames) Items.BucketBy(BucketedBy.Game, DedupeType.None); else - Items.BucketBy(BucketedBy.CRC, DedupeType.Full); + Items.BucketBy(BucketedBy.CRC, DedupeType.None); // Now we want to compare each input DAT against the base foreach (ParentablePath path in inputs) diff --git a/SabreTools.Library/Skippers/SkipperTest.cs b/SabreTools.Library/Skippers/SkipperTest.cs index f823546b..22e5e66f 100644 --- a/SabreTools.Library/Skippers/SkipperTest.cs +++ b/SabreTools.Library/Skippers/SkipperTest.cs @@ -55,7 +55,7 @@ namespace SabreTools.Library.Skippers /// The Stream is assumed to be in the proper position for a given test public bool Passes(Stream input) { - bool result = true; +#if NET_FRAMEWORK switch (Type) { case HeaderSkipTest.And: @@ -68,9 +68,20 @@ namespace SabreTools.Library.Skippers return CheckOr(input); case HeaderSkipTest.Xor: return CheckXor(input); + default: + return true; } - - return result; +#else + return Type switch + { + HeaderSkipTest.And => CheckAnd(input), + HeaderSkipTest.Data => CheckData(input), + HeaderSkipTest.File => CheckFile(input), + HeaderSkipTest.Or => CheckOr(input), + HeaderSkipTest.Xor => CheckXor(input), + _ => true, + }; +#endif } #region Checking Helpers diff --git a/SabreTools/Features/Update.cs b/SabreTools/Features/Update.cs index 45745615..966b9207 100644 --- a/SabreTools/Features/Update.cs +++ b/SabreTools/Features/Update.cs @@ -181,10 +181,6 @@ namespace SabreTools.Features else datHeaders = userInputDat.PopulateUserData(inputFileNames, Filter); - // Merge all input files and write - if (updateMode.HasFlag(UpdateMode.Merge)) - userInputDat.MergeNoDiff(inputFileNames, OutputDir); - // Output only DatItems that are duplicated across inputs if (updateMode.HasFlag(UpdateMode.DiffDupesOnly)) userInputDat.DiffDuplicates(inputFileNames, OutputDir); @@ -230,6 +226,11 @@ namespace SabreTools.Features updateFields, GetBoolean(features, OnlySameValue)); } + + // Merge all input files and write + // This has to be last due to the SuperDAT handling + if (updateMode.HasFlag(UpdateMode.Merge)) + userInputDat.MergeNoDiff(inputFileNames, OutputDir); } } }