diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs
index 3bddef1f..c8be924f 100644
--- a/SabreTools.Library/Tools/Utilities.cs
+++ b/SabreTools.Library/Tools/Utilities.cs
@@ -303,6 +303,65 @@ namespace SabreTools.Library.Tools
return hash;
}
+ ///
+ /// Get ForceMerging value from input string
+ ///
+ /// String to get value from
+ /// ForceMerging value corresponding to the string
+ public static ForceMerging GetForceMerging(string forcemerge)
+ {
+ switch (forcemerge?.ToLowerInvariant())
+ {
+ case "none":
+ default:
+ return ForceMerging.None;
+ case "split":
+ return ForceMerging.Split;
+ case "full":
+ return ForceMerging.Full;
+ }
+ }
+
+ ///
+ /// Get ForceNodump value from input string
+ ///
+ /// String to get value from
+ /// ForceNodump value corresponding to the string
+ public static ForceNodump GetForceNodump(string forcend)
+ {
+ switch (forcend?.ToLowerInvariant())
+ {
+ case "none":
+ default:
+ return ForceNodump.None;
+ case "obsolete":
+ return ForceNodump.Obsolete;
+ case "required":
+ return ForceNodump.Required;
+ case "ignore":
+ return ForceNodump.Ignore;
+ }
+ }
+
+ ///
+ /// Get ForcePacking value from input string
+ ///
+ /// String to get value from
+ /// ForcePacking value corresponding to the string
+ public static ForcePacking GetForcePacking(string forcepack)
+ {
+ switch (forcepack?.ToLowerInvariant())
+ {
+ case "none":
+ default:
+ return ForcePacking.None;
+ case "zip":
+ return ForcePacking.Zip;
+ case "unzip":
+ return ForcePacking.Unzip;
+ }
+ }
+
///
/// Replace accented characters
///
diff --git a/SabreTools/SabreTools.Inits.cs b/SabreTools/SabreTools.Inits.cs
index ed526c92..340beac7 100644
--- a/SabreTools/SabreTools.Inits.cs
+++ b/SabreTools/SabreTools.Inits.cs
@@ -87,20 +87,7 @@ namespace SabreTools
string headerToCheckAgainst,
bool chdsAsFiles)
{
- ForcePacking fp = ForcePacking.None;
- switch (forcepack?.ToLowerInvariant())
- {
- case "none":
- default:
- fp = ForcePacking.None;
- break;
- case "zip":
- fp = ForcePacking.Zip;
- break;
- case "unzip":
- fp = ForcePacking.Unzip;
- break;
- }
+ ForcePacking fp = Utilities.GetForcePacking(forcepack);
// Create a new DATFromDir object and process the inputs
DatFile basedat = new DatFile
@@ -394,68 +381,9 @@ namespace SabreTools
Hash stripHash)
{
// Set the special flags
- ForceMerging fm = ForceMerging.None;
- if (!String.IsNullOrWhiteSpace(forcemerge))
- {
- switch (forcemerge.ToLowerInvariant())
- {
- case "none":
- fm = ForceMerging.None;
- break;
- case "split":
- fm = ForceMerging.Split;
- break;
- case "full":
- fm = ForceMerging.Full;
- break;
- default:
- Globals.Logger.Warning("{0} is not a valid merge flag", forcemerge);
- break;
- }
- }
-
- ForceNodump fn = ForceNodump.None;
- if (!String.IsNullOrWhiteSpace(forcend))
- {
- switch (forcend.ToLowerInvariant())
- {
- case "none":
- fn = ForceNodump.None;
- break;
- case "obsolete":
- fn = ForceNodump.Obsolete;
- break;
- case "required":
- fn = ForceNodump.Required;
- break;
- case "ignore":
- fn = ForceNodump.Ignore;
- break;
- default:
- Globals.Logger.Warning("{0} is not a valid nodump flag", forcend);
- break;
- }
- }
-
- ForcePacking fp = ForcePacking.None;
- if (!String.IsNullOrWhiteSpace(forcepack))
- {
- switch (forcepack.ToLowerInvariant())
- {
- case "none":
- fp = ForcePacking.None;
- break;
- case "zip":
- fp = ForcePacking.Zip;
- break;
- case "unzip":
- fp = ForcePacking.Unzip;
- break;
- default:
- Globals.Logger.Warning("{0} is not a valid packing flag", forcepack);
- break;
- }
- }
+ ForceMerging fm = Utilities.GetForceMerging(forcemerge);
+ ForceNodump fn = Utilities.GetForceNodump(forcend);
+ ForcePacking fp = Utilities.GetForcePacking(forcepack);
// Normalize the extensions
addext = (addext == "" || addext.StartsWith(".") ? addext : "." + addext);