diff --git a/SabreTools.DatFiles/Enums.cs b/SabreTools.DatFiles/Enums.cs index 24b2613f..26988736 100644 --- a/SabreTools.DatFiles/Enums.cs +++ b/SabreTools.DatFiles/Enums.cs @@ -256,5 +256,11 @@ namespace SabreTools.DatFiles /// [Mapping("flat")] Flat, + + /// + /// Force all sets to have all archives treated as files + /// + [Mapping("fileonly")] + FileOnly, } } \ No newline at end of file diff --git a/SabreTools.DatTools/Rebuilder.cs b/SabreTools.DatTools/Rebuilder.cs index 1d55bd17..2158c5f6 100644 --- a/SabreTools.DatTools/Rebuilder.cs +++ b/SabreTools.DatTools/Rebuilder.cs @@ -808,6 +808,7 @@ namespace SabreTools.DatTools PackingFlag.Unzip => OutputFormat.Folder, PackingFlag.Partial => OutputFormat.Folder, PackingFlag.Flat => OutputFormat.ParentFolder, + PackingFlag.FileOnly => OutputFormat.Folder, PackingFlag.None => OutputFormat.Folder, _ => OutputFormat.Folder, }; diff --git a/SabreTools.Test/Core/ConvertersTests.cs b/SabreTools.Test/Core/ConvertersTests.cs index ab3b20db..e0954d77 100644 --- a/SabreTools.Test/Core/ConvertersTests.cs +++ b/SabreTools.Test/Core/ConvertersTests.cs @@ -290,6 +290,7 @@ namespace SabreTools.Test.Core [InlineData("unzip", PackingFlag.Unzip)] [InlineData("partial", PackingFlag.Partial)] [InlineData("flat", PackingFlag.Flat)] + [InlineData("fileonly", PackingFlag.FileOnly)] public void AsPackingFlagTest(string? field, PackingFlag expected) { PackingFlag actual = field.AsEnumValue(); @@ -638,6 +639,8 @@ namespace SabreTools.Test.Core [InlineData(PackingFlag.Partial, false, "partial")] [InlineData(PackingFlag.Flat, true, "flat")] [InlineData(PackingFlag.Flat, false, "flat")] + [InlineData(PackingFlag.FileOnly, true, "fileonly")] + [InlineData(PackingFlag.FileOnly, false, "fileonly")] public void FromPackingFlagTest(PackingFlag field, bool useSecond, string? expected) { string? actual = field.AsStringValue(useSecond); @@ -724,7 +727,7 @@ namespace SabreTools.Test.Core [InlineData(MergingFlag.None, 12)] [InlineData(NodumpFlag.None, 4)] [InlineData(OpenMSXSubType.NULL, 3)] - [InlineData(PackingFlag.None, 7)] + [InlineData(PackingFlag.None, 8)] [InlineData(Relation.NULL, 6)] [InlineData(Runnable.NULL, 3)] [InlineData(SoftwareListStatus.None, 3)]