diff --git a/SabreTools.Library/DatFiles/Logiqx.cs b/SabreTools.Library/DatFiles/Logiqx.cs index c5688725..52bae607 100644 --- a/SabreTools.Library/DatFiles/Logiqx.cs +++ b/SabreTools.Library/DatFiles/Logiqx.cs @@ -144,51 +144,15 @@ namespace SabreTools.Library.DatFiles } if (xtr.GetAttribute("forcemerging") != null && ForceMerging == ForceMerging.None) { - switch (xtr.GetAttribute("forcemerging")) - { - case "none": - ForceMerging = ForceMerging.None; - break; - case "split": - ForceMerging = ForceMerging.Split; - break; - case "merged": - ForceMerging = ForceMerging.Merged; - break; - case "nonmerged": - ForceMerging = ForceMerging.NonMerged; - break; - case "full": - ForceMerging = ForceMerging.Full; - break; - } + ForceMerging = Utilities.GetForceMerging(xtr.GetAttribute("forcemerging")); } if (xtr.GetAttribute("forcenodump") != null && ForceNodump == ForceNodump.None) { - switch (xtr.GetAttribute("forcenodump")) - { - case "obsolete": - ForceNodump = ForceNodump.Obsolete; - break; - case "required": - ForceNodump = ForceNodump.Required; - break; - case "ignore": - ForceNodump = ForceNodump.Ignore; - break; - } + ForceNodump = Utilities.GetForceNodump(xtr.GetAttribute("forcenodump")); } if (xtr.GetAttribute("forcepacking") != null && ForcePacking == ForcePacking.None) { - switch (xtr.GetAttribute("forcepacking")) - { - case "zip": - ForcePacking = ForcePacking.Zip; - break; - case "unzip": - ForcePacking = ForcePacking.Unzip; - break; - } + ForcePacking = Utilities.GetForcePacking(xtr.GetAttribute("forcepacking")); } xtr.Read(); break; @@ -346,51 +310,15 @@ namespace SabreTools.Library.DatFiles } if (headreader.GetAttribute("forcemerging") != null && ForceMerging == ForceMerging.None) { - switch (headreader.GetAttribute("forcemerging")) - { - case "none": - ForceMerging = ForceMerging.None; - break; - case "split": - ForceMerging = ForceMerging.Split; - break; - case "merged": - ForceMerging = ForceMerging.Merged; - break; - case "nonmerged": - ForceMerging = ForceMerging.NonMerged; - break; - case "full": - ForceMerging = ForceMerging.Full; - break; - } + ForceMerging = Utilities.GetForceMerging(headreader.GetAttribute("forcemerging")); } if (headreader.GetAttribute("forcenodump") != null && ForceNodump == ForceNodump.None) { - switch (headreader.GetAttribute("forcenodump")) - { - case "obsolete": - ForceNodump = ForceNodump.Obsolete; - break; - case "required": - ForceNodump = ForceNodump.Required; - break; - case "ignore": - ForceNodump = ForceNodump.Ignore; - break; - } + ForceNodump = Utilities.GetForceNodump(headreader.GetAttribute("forcenodump")); } if (headreader.GetAttribute("forcepacking") != null && ForcePacking == ForcePacking.None) { - switch (headreader.GetAttribute("forcepacking")) - { - case "zip": - ForcePacking = ForcePacking.Zip; - break; - case "unzip": - ForcePacking = ForcePacking.Unzip; - break; - } + ForcePacking = Utilities.GetForcePacking(headreader.GetAttribute("forcepacking")); } headreader.Read(); break; @@ -428,49 +356,19 @@ namespace SabreTools.Library.DatFiles case "forcemerging": if (ForceMerging == ForceMerging.None) { - switch (content) - { - case "split": - ForceMerging = ForceMerging.Split; - break; - case "none": - ForceMerging = ForceMerging.None; - break; - case "full": - ForceMerging = ForceMerging.Full; - break; - } + ForceMerging = Utilities.GetForceMerging(content); } break; case "forcenodump": if (ForceNodump == ForceNodump.None) { - switch (content) - { - case "obsolete": - ForceNodump = ForceNodump.Obsolete; - break; - case "required": - ForceNodump = ForceNodump.Required; - break; - case "ignore": - ForceNodump = ForceNodump.Ignore; - break; - } + ForceNodump = Utilities.GetForceNodump(content); } break; case "forcepacking": if (ForcePacking == ForcePacking.None) { - switch (content) - { - case "zip": - ForcePacking = ForcePacking.Zip; - break; - case "unzip": - ForcePacking = ForcePacking.Unzip; - break; - } + ForcePacking = Utilities.GetForcePacking(content); } break; } @@ -540,29 +438,13 @@ namespace SabreTools.Library.DatFiles // Get the supported value from the reader if (subreader.GetAttribute("supported") != null) { - switch (subreader.GetAttribute("supported")) - { - case "no": - supported = false; - break; - case "yes": - supported = true; - break; - } + supported = Utilities.GetYesNo(subreader.GetAttribute("supported")); } // Get the runnable value from the reader if (subreader.GetAttribute("runnable") != null) { - switch (subreader.GetAttribute("runnable")) - { - case "no": - machine.Runnable = false; - break; - case "yes": - machine.Runnable = true; - break; - } + machine.Runnable = Utilities.GetYesNo(subreader.GetAttribute("runnable")); } if (superdat && !keep) @@ -705,14 +587,7 @@ namespace SabreTools.Library.DatFiles bool? defaultrel = null; if (subreader.GetAttribute("default") != null) { - if (subreader.GetAttribute("default") == "yes") - { - defaultrel = true; - } - else if (subreader.GetAttribute("default") == "no") - { - defaultrel = false; - } + defaultrel = Utilities.GetYesNo(subreader.GetAttribute("default")); } DatItem relrom = new Release @@ -747,14 +622,7 @@ namespace SabreTools.Library.DatFiles bool? defaultbios = null; if (subreader.GetAttribute("default") != null) { - if (subreader.GetAttribute("default") == "yes") - { - defaultbios = true; - } - else if (subreader.GetAttribute("default") == "no") - { - defaultbios = false; - } + defaultbios = Utilities.GetYesNo(subreader.GetAttribute("default")); } DatItem biosrom = new BiosSet @@ -851,22 +719,10 @@ namespace SabreTools.Library.DatFiles string merge = subreader.GetAttribute("merge"); // If the rom has a status, flag it - its = ItemStatus.None; - if (subreader.GetAttribute("flags") == "good" || subreader.GetAttribute("status") == "good") + its = Utilities.GetItemStatus(subreader.GetAttribute("status")); + if (its == ItemStatus.None) { - its = ItemStatus.Good; - } - if (subreader.GetAttribute("flags") == "baddump" || subreader.GetAttribute("status") == "baddump") - { - its = ItemStatus.BadDump; - } - if (subreader.GetAttribute("flags") == "nodump" || subreader.GetAttribute("status") == "nodump") - { - its = ItemStatus.Nodump; - } - if (subreader.GetAttribute("flags") == "verified" || subreader.GetAttribute("status") == "verified") - { - its = ItemStatus.Verified; + its = Utilities.GetItemStatus(subreader.GetAttribute("flags")); } // If the rom has a Date attached, read it in and then sanitize it @@ -1065,21 +921,7 @@ namespace SabreTools.Library.DatFiles if (flagreader.GetAttribute("name") != null && flagreader.GetAttribute("value") != null) { string content = flagreader.GetAttribute("value"); - switch (flagreader.GetAttribute("name")) - { - case "good": - its = ItemStatus.Good; - break; - case "baddump": - its = ItemStatus.BadDump; - break; - case "nodump": - its = ItemStatus.Nodump; - break; - case "verified": - its = ItemStatus.Verified; - break; - } + its = Utilities.GetItemStatus(flagreader.GetAttribute("name")); } break; } diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs index 9b66153b..b2ebb504 100644 --- a/SabreTools.Library/Tools/Utilities.cs +++ b/SabreTools.Library/Tools/Utilities.cs @@ -813,6 +813,23 @@ namespace SabreTools.Library.Tools } } + /// + /// Get bool value from input string + /// + /// String to get value from + /// Bool corresponding to the string + public static bool GetYesNo(string yesno) + { + switch (yesno?.ToLowerInvariant()) + { + case "yes": + return true; + default: + case "no": + return false; + } + } + #endregion #region File Information