[Flags] Let's use math!

This commit is contained in:
Matt Nadareski
2017-02-27 15:37:51 -08:00
parent 2ca560685b
commit f17a0bc2d4

View File

@@ -192,24 +192,32 @@ namespace SabreTools.Helper.Data
[Flags] [Flags]
public enum DatFormat public enum DatFormat
{ {
Logiqx = 0x00001, // XML Formats
ClrMamePro = 0x00002, Logiqx = 0x01,
RomCenter = 0x00004, SoftwareList = Logiqx << 1,
DOSCenter = 0x00008, OfflineList = SoftwareList << 1,
MissFile = 0x00010, SabreDat = OfflineList << 1,
SabreDat = 0x00020,
RedumpMD5 = 0x00040,
RedumpSHA1 = 0x00080,
RedumpSFV = 0x00100,
SoftwareList = 0x00200,
OfflineList = 0x00400,
TSV = 0x00800,
CSV = 0x01000,
AttractMode = 0x02000,
RedumpSHA256 = 0x04000,
RedumpSHA384 = 0x08000,
RedumpSHA512 = 0x10000,
// Propietary Formats
ClrMamePro = SabreDat << 1,
RomCenter = ClrMamePro << 1,
DOSCenter = RomCenter << 1,
AttractMode = DOSCenter << 1,
// Standardized Text Formats
MissFile = AttractMode << 1,
CSV = MissFile << 1,
TSV = CSV << 1,
// SFV-similar Formats
RedumpSFV = TSV << 1,
RedumpMD5 = RedumpSFV << 1,
RedumpSHA1 = RedumpMD5 << 1,
RedumpSHA256 = RedumpSHA1 << 1,
RedumpSHA384 = RedumpSHA256 << 1,
RedumpSHA512 = RedumpSHA384 << 1,
// Specialty combinations
ALL = 0xFFFFF, ALL = 0xFFFFF,
} }
@@ -221,13 +229,13 @@ namespace SabreTools.Helper.Data
{ {
// Standard diffs // Standard diffs
Dupes = 0x01, Dupes = 0x01,
NoDupes = 0x02, NoDupes = Dupes << 1,
Individuals = 0x04, Individuals = NoDupes << 1,
All = Dupes | NoDupes | Individuals, All = Dupes | NoDupes | Individuals,
// Cascaded diffs // Cascaded diffs
Cascade = 0x08, Cascade = Individuals << 1,
ReverseCascade = 0x10, ReverseCascade = Cascade << 1,
} }
/// <summary> /// <summary>
@@ -237,9 +245,9 @@ namespace SabreTools.Helper.Data
public enum StatDatFormat public enum StatDatFormat
{ {
None = 0x01, None = 0x01,
HTML = 0x02, HTML = None << 1,
CSV = 0x04, CSV = HTML << 1,
TSV = 0x08, TSV = CSV << 1,
} }
/// <summary> /// <summary>
@@ -249,11 +257,11 @@ namespace SabreTools.Helper.Data
public enum Hash public enum Hash
{ {
CRC = 0x0001, CRC = 0x0001,
MD5 = 0x0002, MD5 = CRC << 1,
SHA1 = 0x0004, SHA1 = MD5 << 1,
SHA256 = 0x0008, SHA256 = SHA1 << 1,
SHA384 = 0x0010, SHA384 = SHA256 << 1,
SHA512 = 0x0020, SHA512 = SHA384 << 1,
// Special combinations // Special combinations
Standard = CRC | MD5 | SHA1, Standard = CRC | MD5 | SHA1,