[Utilities] More helpers

This commit is contained in:
Matt Nadareski
2017-12-05 13:38:16 -08:00
parent 58c5939514
commit d232bd3346
3 changed files with 56 additions and 64 deletions

View File

@@ -113,29 +113,7 @@ namespace SabreTools.Library.DatFiles
}
// Create the proper DatItem based on the type
DatItem item;
switch (temptype)
{
case ItemType.Archive:
item = new Archive();
break;
case ItemType.BiosSet:
item = new BiosSet();
break;
case ItemType.Disk:
item = new Disk();
break;
case ItemType.Release:
item = new Release();
break;
case ItemType.Sample:
item = new Sample();
break;
case ItemType.Rom:
default:
item = new Rom();
break;
}
DatItem item = Utilities.GetDatItem(temptype);
// Then populate it with information
item.MachineName = tempgamename;

View File

@@ -204,27 +204,7 @@ namespace SabreTools.Library.DatFiles
machineDesc = value;
break;
case "DatItem.Type":
switch (value.ToLowerInvariant())
{
case "archive":
itemType = ItemType.Archive;
break;
case "biosset":
itemType = ItemType.BiosSet;
break;
case "disk":
itemType = ItemType.Disk;
break;
case "release":
itemType = ItemType.Release;
break;
case "rom":
itemType = ItemType.Rom;
break;
case "sample":
itemType = ItemType.Sample;
break;
}
itemType = Utilities.GetItemType(value) ?? ItemType.Rom;
break;
case "Rom.Name":
case "Disk.Name":
@@ -255,26 +235,7 @@ namespace SabreTools.Library.DatFiles
sha512 = value;
break;
case "DatItem.Nodump":
switch (value.ToLowerInvariant())
{
case "baddump":
status = ItemStatus.BadDump;
break;
case "good":
status = ItemStatus.Good;
break;
case "no":
case "none":
status = ItemStatus.None;
break;
case "nodump":
case "yes":
status = ItemStatus.Nodump;
break;
case "verified":
status = ItemStatus.Verified;
break;
}
status = Utilities.GetItemStatus(value);
break;
}
}

View File

@@ -372,6 +372,7 @@ namespace SabreTools.Library.Tools
switch (status?.ToLowerInvariant())
{
case "none":
case "no":
default:
return ItemStatus.None;
case "good":
@@ -379,12 +380,39 @@ namespace SabreTools.Library.Tools
case "baddump":
return ItemStatus.BadDump;
case "nodump":
case "yes":
return ItemStatus.Nodump;
case "verified":
return ItemStatus.Verified;
}
}
/// <summary>
/// Get ItemType? value from input string
/// </summary>
/// <param name="itemType">String to get value from</param>
/// <returns>ItemType? value corresponding to the string</returns>
public static ItemType? GetItemType(string itemType)
{
switch (itemType?.ToLowerInvariant())
{
case "archive":
return ItemType.Archive;
case "biosset":
return ItemType.BiosSet;
case "disk":
return ItemType.Disk;
case "release":
return ItemType.Release;
case "rom":
return ItemType.Rom;
case "sample":
return ItemType.Sample;
default:
return null;
}
}
/// <summary>
/// Get MachineType value from input string
/// </summary>
@@ -754,6 +782,31 @@ namespace SabreTools.Library.Tools
return null;
}
/// <summary>
/// Create a specific type of DatItem to be used based on an ItemType
/// </summary>
/// <param name="itemType">Type of the DatItem to be created</param>
/// <returns>DatItem of the specific internal type that corresponds to the inputs</returns>
public static DatItem GetDatItem(ItemType itemType)
{
switch (itemType)
{
case ItemType.Archive:
return new Archive();
case ItemType.BiosSet:
return new BiosSet();
case ItemType.Disk:
return new Disk();
case ItemType.Release:
return new Release();
case ItemType.Sample:
return new Sample();
case ItemType.Rom:
default:
return new Rom();
}
}
#endregion
#region File Information