diff --git a/SabreTools.Library/README.1ST b/SabreTools.Library/README.1ST index a483fb23..118d2bd6 100644 --- a/SabreTools.Library/README.1ST +++ b/SabreTools.Library/README.1ST @@ -201,10 +201,6 @@ Options: Normally, the DAT will be created with the date in the file name in brackets. This flag removes that instead of the default. - -fp=, --forcepacking= Set force packing - Set the forcepacking tag to the given value. - Possible values are: None, Zip, Unzip - -aaf, --archives-as-files Treat archives as files Instead of trying to enumerate the files within archives, treat the archives as files themselves. This is good for uncompressed sets that @@ -270,6 +266,9 @@ Options: -c=, --category= Set the category of the DAT Set the category header field for the output DAT(s) + -r=, --root= Set a new rootdir + Set the rootdir (as used by SuperDAT mode) for the output DAT(s). + -v=, --version= Set the version of the DAT Set the version header field for the output DAT(s) @@ -293,6 +292,18 @@ Options: preserving the directory structure of the inputted folder, if applicable. + -fm=, --forcemerging= Set force merging + Set the forcemerging tag to the given value. + Possible values are: None, Split, Merged, Nonmerged, Full + + -fn=, --forcenodump= Set force nodump + Set the forcenodump tag to the given value. + Possible values are: None, Obsolete, Required, Ignore + + -fp=, --forcepacking= Set force packing + Set the forcepacking tag to the given value. + Possible values are: None, Zip, Unzip + -ef=, --exclude-field= Exclude a game/rom field from outputs Exclude any valid item or machine field from outputs. Examples include: romof, publisher, and offset. diff --git a/SabreTools/SabreTools.Help.cs b/SabreTools/SabreTools.Help.cs index c186be91..d9b4fb7b 100644 --- a/SabreTools/SabreTools.Help.cs +++ b/SabreTools/SabreTools.Help.cs @@ -2206,6 +2206,8 @@ Some special strings that can be used: private class SabreToolsFeature : TopLevel { + #region Fields + /// /// Pre-configured Filter /// @@ -2221,6 +2223,10 @@ Some special strings that can be used: /// protected string OutputDir { get; set; } + #endregion + + #region Add Feature Groups + /// /// Add Filter-specific features /// @@ -2265,6 +2271,38 @@ Some special strings that can be used: AddFeature(NotRunnableFlag); } + /// + /// Add Header-specific features + /// + protected void AddHeaderFeatures() + { + // Header Values + AddFeature(FilenameStringInput); + AddFeature(NameStringInput); + AddFeature(DescriptionStringInput); + AddFeature(RootStringInput); + AddFeature(CategoryStringInput); + AddFeature(VersionStringInput); + AddFeature(DateStringInput); + AddFeature(AuthorStringInput); + AddFeature(EmailStringInput); + AddFeature(HomepageStringInput); + AddFeature(UrlStringInput); + AddFeature(CommentStringInput); + AddFeature(HeaderStringInput); + AddFeature(SuperdatFlag); + AddFeature(ForceMergingStringInput); + AddFeature(ForceNodumpStringInput); + AddFeature(ForcePackingStringInput); + + // Header Filters + AddFeature(ExcludeFieldListInput); + AddFeature(OneGamePerRegionFlag); + this[OneGamePerRegionFlag].AddFeature(RegionListInput); + AddFeature(OneRomPerGameFlag); + AddFeature(SceneDateStripFlag); + } + /// /// Add internal split/merge features /// @@ -2277,6 +2315,8 @@ Some special strings that can be used: AddFeature(DatFullNonMergedFlag); } + #endregion + public override void ProcessFeatures(Dictionary features) { // Generic feature flags @@ -2893,6 +2933,7 @@ Some special strings that can be used: this.LongDescription = "Create a DAT file from an input directory or set of files. By default, this will output a DAT named based on the input directory and the current date. It will also treat all archives as possible games and add all three hashes (CRC, MD5, SHA-1) for each file."; this.Features = new Dictionary(); + // Hash Features AddFeature(SkipMd5Flag); #if NET_FRAMEWORK AddFeature(SkipRipeMd160Flag); @@ -2901,30 +2942,15 @@ Some special strings that can be used: AddFeature(SkipSha256Flag); AddFeature(SkipSha384Flag); AddFeature(SkipSha512Flag); + AddFeature(NoAutomaticDateFlag); - AddFeature(ForcePackingStringInput); AddFeature(ArchivesAsFilesFlag); AddFeature(OutputTypeListInput); this[OutputTypeListInput].AddFeature(DeprecatedFlag); AddFeature(RombaFlag); AddFeature(SkipArchivesFlag); AddFeature(SkipFilesFlag); - AddFeature(FilenameStringInput); - AddFeature(NameStringInput); - AddFeature(DescriptionStringInput); - AddFeature(CategoryStringInput); - AddFeature(VersionStringInput); - AddFeature(AuthorStringInput); - AddFeature(EmailStringInput); - AddFeature(HomepageStringInput); - AddFeature(UrlStringInput); - AddFeature(CommentStringInput); - AddFeature(SuperdatFlag); - AddFeature(ExcludeFieldListInput); - AddFeature(OneGamePerRegionFlag); - this[OneGamePerRegionFlag].AddFeature(RegionListInput); - AddFeature(OneRomPerGameFlag); - AddFeature(SceneDateStripFlag); + AddHeaderFeatures(); AddFeature(AddBlankFilesFlag); AddFeature(AddDateFlag); AddFeature(CopyFilesFlag); @@ -3351,6 +3377,7 @@ The stats that are outputted are as follows: this.LongDescription = "This is the multitool part of the program, allowing for almost every manipulation to a DAT, or set of DATs. This is also a combination of many different programs that performed DAT manipulation that work better together."; this.Features = new Dictionary(); + // Output Formats AddFeature(OutputTypeListInput); this[OutputTypeListInput].AddFeature(PrefixStringInput); this[OutputTypeListInput].AddFeature(PostfixStringInput); @@ -3362,29 +3389,9 @@ The stats that are outputted are as follows: this[OutputTypeListInput].AddFeature(RemoveExtensionsFlag); this[OutputTypeListInput].AddFeature(RombaFlag); this[OutputTypeListInput].AddFeature(DeprecatedFlag); - AddFeature(FilenameStringInput); - AddFeature(NameStringInput); - AddFeature(DescriptionStringInput); - AddFeature(RootStringInput); - AddFeature(CategoryStringInput); - AddFeature(VersionStringInput); - AddFeature(DateStringInput); - AddFeature(AuthorStringInput); - AddFeature(EmailStringInput); - AddFeature(HomepageStringInput); - AddFeature(UrlStringInput); - AddFeature(CommentStringInput); - AddFeature(HeaderStringInput); - AddFeature(SuperdatFlag); - AddFeature(ForceMergingStringInput); - AddFeature(ForceNodumpStringInput); - AddFeature(ForcePackingStringInput); - AddFeature(ExcludeFieldListInput); - AddFeature(OneGamePerRegionFlag); - this[OneGamePerRegionFlag].AddFeature(RegionListInput); - AddFeature(OneRomPerGameFlag); + + AddHeaderFeatures(); AddFeature(KeepEmptyGamesFlag); - AddFeature(SceneDateStripFlag); AddFeature(CleanFlag); AddFeature(RemoveUnicodeFlag); AddFeature(DescriptionAsNameFlag);