diff --git a/Deheader/Headerer.cs b/Deheader/Headerer.cs
index a9c46665..b3ce7a54 100644
--- a/Deheader/Headerer.cs
+++ b/Deheader/Headerer.cs
@@ -255,7 +255,7 @@ namespace SabreTools
// Now add the information to the database if it's not already there
Rom rom = RomTools.GetSingleFileInfo(newfile);
- AddHeaderToDatabase(hstr, rom.SHA1, type);
+ AddHeaderToDatabase(hstr, rom.HashData.SHA1, type);
}
return true;
@@ -314,7 +314,7 @@ namespace SabreTools
// Then try to pull the corresponding headers from the database
string header = "";
- string query = @"SELECT header, type FROM data WHERE sha1='" + rom.SHA1 + "'";
+ string query = @"SELECT header, type FROM data WHERE sha1='" + rom.HashData.SHA1 + "'";
using (SqliteConnection dbc = new SqliteConnection(_connectionString))
{
dbc.Open();
diff --git a/SabreTools.Helper/Data/Structs.cs b/SabreTools.Helper/Data/Structs.cs
index f8395f7b..0baf8d42 100644
--- a/SabreTools.Helper/Data/Structs.cs
+++ b/SabreTools.Helper/Data/Structs.cs
@@ -3,6 +3,29 @@ using System.Collections.Generic;
namespace SabreTools.Helper
{
+ ///
+ /// Intermediate struct for holding and processing hash data
+ ///
+ public struct HashData : IComparable, IEquatable
+ {
+ public long Size;
+ public string CRC;
+ public string MD5;
+ public string SHA1;
+
+ // Needs implementation
+ public int CompareTo(object obj)
+ {
+ return 0;
+ }
+
+ // Needs implementation
+ public bool Equals(HashData other)
+ {
+ return true;
+ }
+ }
+
///
/// Intermediate struct for holding and processing rom data
///
@@ -12,10 +35,7 @@ namespace SabreTools.Helper
public string GameDescription;
public string Name;
public string Type;
- public long Size;
- public string CRC;
- public string MD5;
- public string SHA1;
+ public HashData HashData;
public DupeType Dupe;
public bool Nodump;
public string Date;
diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs
index 4204150e..736d9dbc 100644
--- a/SabreTools.Helper/Tools/ArchiveTools.cs
+++ b/SabreTools.Helper/Tools/ArchiveTools.cs
@@ -539,8 +539,11 @@ namespace SabreTools.Helper
Type = "rom",
Name = reader.Entry.Key,
Game = gamename,
- Size = (size == 0 ? reader.Entry.Size : size),
- CRC = (crc == "" ? reader.Entry.Crc.ToString("X").ToLowerInvariant() : crc),
+ HashData = new HashData
+ {
+ Size = (size == 0 ? reader.Entry.Size : size),
+ CRC = (crc == "" ? reader.Entry.Crc.ToString("X").ToLowerInvariant() : crc),
+ },
});
}
}
@@ -617,10 +620,13 @@ namespace SabreTools.Helper
Type = "rom",
Game = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
Name = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
- Size = extractedsize,
- CRC = gzcrc.ToLowerInvariant(),
- MD5 = gzmd5.ToLowerInvariant(),
- SHA1 = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
+ HashData = new HashData
+ {
+ Size = extractedsize,
+ CRC = gzcrc.ToLowerInvariant(),
+ MD5 = gzmd5.ToLowerInvariant(),
+ SHA1 = Path.GetFileNameWithoutExtension(input).ToLowerInvariant(),
+ },
};
return rom;
@@ -656,7 +662,7 @@ namespace SabreTools.Helper
Rom rom = RomTools.GetSingleFileInfo(input);
// If it doesn't exist, create the output file and then write
- string outfile = Path.Combine(outdir, rom.SHA1 + ".gz");
+ string outfile = Path.Combine(outdir, rom.HashData.SHA1 + ".gz");
using (FileStream inputstream = new FileStream(input, FileMode.Open))
using (GZipStream output = new GZipStream(File.Open(outfile, FileMode.Create, FileAccess.Write), CompressionMode.Compress))
{
@@ -670,9 +676,9 @@ namespace SabreTools.Helper
{
// Write standard header and TGZ info
byte[] data = Constants.TorrentGZHeader
- .Concat(StringToByteArray(rom.MD5)) // MD5
- .Concat(StringToByteArray(rom.CRC)) // CRC
- .Concat(BitConverter.GetBytes(rom.Size).Reverse().ToArray()) // Long size (Mirrored)
+ .Concat(StringToByteArray(rom.HashData.MD5)) // MD5
+ .Concat(StringToByteArray(rom.HashData.CRC)) // CRC
+ .Concat(BitConverter.GetBytes(rom.HashData.Size).Reverse().ToArray()) // Long size (Mirrored)
.ToArray();
sw.Write(data);
@@ -698,7 +704,7 @@ namespace SabreTools.Helper
// If we're in romba mode, create the subfolder and move the file
if (romba)
{
- string subfolder = Path.Combine(rom.SHA1.Substring(0, 2), rom.SHA1.Substring(2, 2), rom.SHA1.Substring(4, 2), rom.SHA1.Substring(6, 2));
+ string subfolder = Path.Combine(rom.HashData.SHA1.Substring(0, 2), rom.HashData.SHA1.Substring(2, 2), rom.HashData.SHA1.Substring(4, 2), rom.HashData.SHA1.Substring(6, 2));
outdir = Path.Combine(outdir, subfolder);
if (!Directory.Exists(outdir))
{
diff --git a/SabreTools.Helper/Tools/DatTools.cs b/SabreTools.Helper/Tools/DatTools.cs
index fd230395..c0c73619 100644
--- a/SabreTools.Helper/Tools/DatTools.cs
+++ b/SabreTools.Helper/Tools/DatTools.cs
@@ -209,16 +209,16 @@ namespace SabreTools.Helper
rom.Name = gc[i].Replace("\"", "");
break;
case "size":
- Int64.TryParse(gc[i].Replace("\"", ""), out rom.Size);
+ Int64.TryParse(gc[i].Replace("\"", ""), out rom.HashData.Size);
break;
case "crc":
- rom.CRC = gc[i].Replace("\"", "").ToLowerInvariant();
+ rom.HashData.CRC = gc[i].Replace("\"", "").ToLowerInvariant();
break;
case "md5":
- rom.MD5 = gc[i].Replace("\"", "").ToLowerInvariant();
+ rom.HashData.MD5 = gc[i].Replace("\"", "").ToLowerInvariant();
break;
case "sha1":
- rom.SHA1 = gc[i].Replace("\"", "").ToLowerInvariant();
+ rom.HashData.SHA1 = gc[i].Replace("\"", "").ToLowerInvariant();
break;
case "flags":
if (gc[i].Replace("\"", "").ToLowerInvariant() == "nodump")
@@ -266,16 +266,16 @@ namespace SabreTools.Helper
rom.Name = val;
break;
case "size":
- Int64.TryParse(val, out rom.Size);
+ Int64.TryParse(val, out rom.HashData.Size);
break;
case "crc":
- rom.CRC = val.ToLowerInvariant();
+ rom.HashData.CRC = val.ToLowerInvariant();
break;
case "md5":
- rom.MD5 = val.ToLowerInvariant();
+ rom.HashData.MD5 = val.ToLowerInvariant();
break;
case "sha1":
- rom.SHA1 = val.ToLowerInvariant();
+ rom.HashData.SHA1 = val.ToLowerInvariant();
break;
case "flags":
if (val.ToLowerInvariant() == "nodump")
@@ -292,20 +292,20 @@ namespace SabreTools.Helper
}
// Sanitize the hashes from null, hex sizes, and "true blank" strings
- rom.CRC = RomTools.CleanHashData(rom.CRC, Constants.CRCLength);
- rom.MD5 = RomTools.CleanHashData(rom.MD5, Constants.MD5Length);
- rom.SHA1 = RomTools.CleanHashData(rom.SHA1, Constants.SHA1Length);
+ rom.HashData.CRC = RomTools.CleanHashData(rom.HashData.CRC, Constants.CRCLength);
+ rom.HashData.MD5 = RomTools.CleanHashData(rom.HashData.MD5, Constants.MD5Length);
+ rom.HashData.SHA1 = RomTools.CleanHashData(rom.HashData.SHA1, Constants.SHA1Length);
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
- if (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1) && ((rom.CRC == Constants.CRCZero || rom.CRC == "") || rom.MD5 == Constants.MD5Zero || rom.SHA1 == Constants.SHA1Zero))
+ if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1) && ((rom.HashData.CRC == Constants.CRCZero || rom.HashData.CRC == "") || rom.HashData.MD5 == Constants.MD5Zero || rom.HashData.SHA1 == Constants.SHA1Zero))
{
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
}
// If the file has no size and it's not the above case, skip and log
- else if (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1))
+ else if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1))
{
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
rom.Nodump = true;
@@ -314,11 +314,11 @@ namespace SabreTools.Helper
// If we have a disk, make sure that the value for size is -1
if (rom.Type == "disk")
{
- rom.Size = -1;
+ rom.HashData.Size = -1;
}
// Now add the rom to the dictionary
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (datdata.Roms.ContainsKey(key))
{
datdata.Roms[key].Add(rom);
@@ -333,10 +333,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
// If the line is anything but a rom or disk and we're in a block
@@ -568,26 +568,29 @@ namespace SabreTools.Helper
Game = rominfo[3],
GameDescription = rominfo[4],
Name = rominfo[5],
- CRC = rominfo[6].ToLowerInvariant(),
- Size = Int64.Parse(rominfo[7]),
+ HashData = new HashData
+ {
+ CRC = rominfo[6].ToLowerInvariant(),
+ Size = Int64.Parse(rominfo[7]),
+ },
Metadata = new SourceMetadata { SystemID = sysid, SourceID = srcid },
};
// Sanitize the hashes from null, hex sizes, and "true blank" strings
- rom.CRC = RomTools.CleanHashData(rom.CRC, Constants.CRCLength);
- rom.MD5 = RomTools.CleanHashData(rom.MD5, Constants.MD5Length);
- rom.SHA1 = RomTools.CleanHashData(rom.SHA1, Constants.SHA1Length);
+ rom.HashData.CRC = RomTools.CleanHashData(rom.HashData.CRC, Constants.CRCLength);
+ rom.HashData.MD5 = RomTools.CleanHashData(rom.HashData.MD5, Constants.MD5Length);
+ rom.HashData.SHA1 = RomTools.CleanHashData(rom.HashData.SHA1, Constants.SHA1Length);
// If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info
- if (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1) && ((rom.CRC == Constants.CRCZero || rom.CRC == "") || rom.MD5 == Constants.MD5Zero || rom.SHA1 == Constants.SHA1Zero))
+ if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1) && ((rom.HashData.CRC == Constants.CRCZero || rom.HashData.CRC == "") || rom.HashData.MD5 == Constants.MD5Zero || rom.HashData.SHA1 == Constants.SHA1Zero))
{
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
}
// If the file has no size and it's not the above case, skip and log
- else if (rom.Type == "rom" && (rom.Size == 0 || rom.Size == -1))
+ else if (rom.Type == "rom" && (rom.HashData.Size == 0 || rom.HashData.Size == -1))
{
logger.Warning("Incomplete entry for \"" + rom.Name + "\" will be output as nodump");
rom.Nodump = true;
@@ -596,11 +599,11 @@ namespace SabreTools.Helper
// If we have a disk, make sure that the value for size is -1
if (rom.Type == "disk")
{
- rom.Size = -1;
+ rom.HashData.Size = -1;
}
// Add the new rom
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (datdata.Roms.ContainsKey(key))
{
datdata.Roms[key].Add(rom);
@@ -615,10 +618,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
}
@@ -674,13 +677,16 @@ namespace SabreTools.Helper
Name = "null",
Game = tempgame,
GameDescription = tempgame,
- Size = -1,
- CRC = "null",
- MD5 = "null",
- SHA1 = "null",
+ HashData = new HashData
+ {
+ Size = -1,
+ CRC = "null",
+ MD5 = "null",
+ SHA1 = "null",
+ },
};
- key = rom.Size + "-" + rom.CRC;
+ key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (datdata.Roms.ContainsKey(key))
{
datdata.Roms[key].Add(rom);
@@ -695,10 +701,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
@@ -1067,7 +1073,7 @@ namespace SabreTools.Helper
{
int index = datdata.Roms[key].Count() - 1;
Rom lastrom = datdata.Roms[key][index];
- lastrom.Size += size;
+ lastrom.HashData.Size += size;
datdata.Roms[key].RemoveAt(index);
datdata.Roms[key].Add(lastrom);
continue;
@@ -1118,10 +1124,13 @@ namespace SabreTools.Helper
GameDescription = gamedesc,
Name = subreader.GetAttribute("name"),
Type = subreader.Name,
- Size = size,
- CRC = crc,
- MD5 = md5,
- SHA1 = sha1,
+ HashData = new HashData
+ {
+ Size = size,
+ CRC = crc,
+ MD5 = md5,
+ SHA1 = sha1,
+ },
Nodump = nodump,
Date = date,
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
@@ -1141,10 +1150,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
// Otherwise, log that it wasn't added
@@ -1171,13 +1180,16 @@ namespace SabreTools.Helper
Name = "null",
Game = tempname,
GameDescription = tempname,
- Size = -1,
- CRC = "null",
- MD5 = "null",
- SHA1 = "null",
+ HashData = new HashData
+ {
+ Size = -1,
+ CRC = "null",
+ MD5 = "null",
+ SHA1 = "null",
+ }
};
- key = rom.Size + "-" + rom.CRC;
+ key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (datdata.Roms.ContainsKey(key))
{
datdata.Roms[key].Add(rom);
@@ -1192,10 +1204,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
@@ -1286,7 +1298,7 @@ namespace SabreTools.Helper
{
int index = datdata.Roms[key].Count() - 1;
Rom lastrom = datdata.Roms[key][index];
- lastrom.Size += size;
+ lastrom.HashData.Size += size;
datdata.Roms[key].RemoveAt(index);
datdata.Roms[key].Add(lastrom);
continue;
@@ -1345,10 +1357,13 @@ namespace SabreTools.Helper
Game = tempname,
Name = xtr.GetAttribute("name"),
Type = xtr.GetAttribute("type"),
- Size = size,
- CRC = crc,
- MD5 = md5,
- SHA1 = sha1,
+ HashData = new HashData
+ {
+ Size = size,
+ CRC = crc,
+ MD5 = md5,
+ SHA1 = sha1,
+ },
Nodump = nodump,
Date = date,
Metadata = new SourceMetadata { SystemID = sysid, System = filename, SourceID = srcid },
@@ -1368,10 +1383,10 @@ namespace SabreTools.Helper
// Add statistical data
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
xtr.Read();
@@ -1508,7 +1523,7 @@ namespace SabreTools.Helper
foreach (Rom rom in newroms)
{
count++;
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (sortable.ContainsKey(key))
{
sortable[key].Add(rom);
@@ -1831,17 +1846,17 @@ namespace SabreTools.Helper
}
// Filter on rom size
- if (seq != -1 && rom.Size != seq)
+ if (seq != -1 && rom.HashData.Size != seq)
{
continue;
}
else
{
- if (sgt != -1 && rom.Size < sgt)
+ if (sgt != -1 && rom.HashData.Size < sgt)
{
continue;
}
- if (slt != -1 && rom.Size > slt)
+ if (slt != -1 && rom.HashData.Size > slt)
{
continue;
}
@@ -1850,15 +1865,15 @@ namespace SabreTools.Helper
// Filter on crc
if (crc != "")
{
- if (crc.StartsWith("*") && crc.EndsWith("*") && !rom.CRC.ToLowerInvariant().Contains(crc.ToLowerInvariant().Replace("*", "")))
+ if (crc.StartsWith("*") && crc.EndsWith("*") && !rom.HashData.CRC.ToLowerInvariant().Contains(crc.ToLowerInvariant().Replace("*", "")))
{
continue;
}
- else if (crc.StartsWith("*") && !rom.CRC.EndsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (crc.StartsWith("*") && !rom.HashData.CRC.EndsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
- else if (crc.EndsWith("*") && !rom.CRC.StartsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (crc.EndsWith("*") && !rom.HashData.CRC.StartsWith(crc.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
@@ -1867,15 +1882,15 @@ namespace SabreTools.Helper
// Filter on md5
if (md5 != "")
{
- if (md5.StartsWith("*") && md5.EndsWith("*") && !rom.MD5.ToLowerInvariant().Contains(md5.ToLowerInvariant().Replace("*", "")))
+ if (md5.StartsWith("*") && md5.EndsWith("*") && !rom.HashData.MD5.ToLowerInvariant().Contains(md5.ToLowerInvariant().Replace("*", "")))
{
continue;
}
- else if (md5.StartsWith("*") && !rom.MD5.EndsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (md5.StartsWith("*") && !rom.HashData.MD5.EndsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
- else if (md5.EndsWith("*") && !rom.MD5.StartsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (md5.EndsWith("*") && !rom.HashData.MD5.StartsWith(md5.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
@@ -1884,15 +1899,15 @@ namespace SabreTools.Helper
// Filter on sha1
if (sha1 != "")
{
- if (sha1.StartsWith("*") && sha1.EndsWith("*") && !rom.SHA1.ToLowerInvariant().Contains(sha1.ToLowerInvariant().Replace("*", "")))
+ if (sha1.StartsWith("*") && sha1.EndsWith("*") && !rom.HashData.SHA1.ToLowerInvariant().Contains(sha1.ToLowerInvariant().Replace("*", "")))
{
continue;
}
- else if (sha1.StartsWith("*") && !rom.SHA1.EndsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (sha1.StartsWith("*") && !rom.HashData.SHA1.EndsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
- else if (sha1.EndsWith("*") && !rom.SHA1.StartsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
+ else if (sha1.EndsWith("*") && !rom.HashData.SHA1.StartsWith(sha1.Replace("*", ""), StringComparison.InvariantCultureIgnoreCase))
{
continue;
}
diff --git a/SabreTools.Helper/Tools/Output.cs b/SabreTools.Helper/Tools/Output.cs
index c7c3c11f..4a005875 100644
--- a/SabreTools.Helper/Tools/Output.cs
+++ b/SabreTools.Helper/Tools/Output.cs
@@ -115,7 +115,7 @@ namespace SabreTools.Helper
}
// If we have a "null" game (created by DATFromDir or something similar), log it to file
- if (rom.Name == "null" && rom.Size == -1 && rom.CRC == "null" && rom.MD5 == "null" && rom.SHA1 == "null")
+ if (rom.Name == "null" && rom.HashData.Size == -1 && rom.HashData.CRC == "null" && rom.HashData.MD5 == "null" && rom.HashData.SHA1 == "null")
{
logger.Log("Empty folder found: " + rom.Game);
@@ -123,10 +123,10 @@ namespace SabreTools.Helper
if (datdata.OutputFormat != OutputFormat.SabreDat && datdata.OutputFormat != OutputFormat.MissFile)
{
rom.Name = "-";
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
}
// Otherwise, set the new path and such, write out, and continue
@@ -422,10 +422,10 @@ namespace SabreTools.Helper
{
case OutputFormat.ClrMamePro:
state += "\t" + rom.Type + " ( name \"" + rom.Name + "\"" +
- (rom.Size != -1 ? " size " + rom.Size : "") +
- (!String.IsNullOrEmpty(rom.CRC) ? " crc " + rom.CRC.ToLowerInvariant() : "") +
- (!String.IsNullOrEmpty(rom.MD5) ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
- (!String.IsNullOrEmpty(rom.SHA1) ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
+ (rom.HashData.Size != -1 ? " size " + rom.HashData.Size : "") +
+ (!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc " + rom.HashData.CRC.ToLowerInvariant() : "") +
+ (!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5 " + rom.HashData.MD5.ToLowerInvariant() : "") +
+ (!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1 " + rom.HashData.SHA1.ToLowerInvariant() : "") +
(!String.IsNullOrEmpty(rom.Date) ? " date \"" + rom.Date + "\"" : "") +
(rom.Nodump ? " flags nodump" : "") +
" )\n";
@@ -435,17 +435,17 @@ namespace SabreTools.Helper
string post = (datdata.Quotes ? "\"" : "") + datdata.Postfix;
// Check for special strings in prefix and postfix
- pre = pre.Replace("%crc%", rom.CRC).Replace("%md5%", rom.MD5).Replace("%sha1%", rom.SHA1).Replace("%size%", rom.Size.ToString());
- post = post.Replace("%crc%", rom.CRC).Replace("%md5%", rom.MD5).Replace("%sha1%", rom.SHA1).Replace("%size%", rom.Size.ToString());
+ pre = pre.Replace("%crc%", rom.HashData.CRC).Replace("%md5%", rom.HashData.MD5).Replace("%sha1%", rom.HashData.SHA1).Replace("%size%", rom.HashData.Size.ToString());
+ post = post.Replace("%crc%", rom.HashData.CRC).Replace("%md5%", rom.HashData.MD5).Replace("%sha1%", rom.HashData.SHA1).Replace("%size%", rom.HashData.Size.ToString());
// If we're in Romba mode, the state is consistent
if (datdata.Romba)
{
// We can only write out if there's a SHA-1
- if (rom.SHA1 != "")
+ if (rom.HashData.SHA1 != "")
{
- string name = rom.SHA1.Substring(0, 2) + "/" + rom.SHA1.Substring(2, 2) + "/" + rom.SHA1.Substring(4, 2) + "/" +
- rom.SHA1.Substring(6, 2) + "/" + rom.SHA1 + ".gz";
+ string name = rom.HashData.SHA1.Substring(0, 2) + "/" + rom.HashData.SHA1.Substring(2, 2) + "/" + rom.HashData.SHA1.Substring(4, 2) + "/" +
+ rom.HashData.SHA1.Substring(6, 2) + "/" + rom.HashData.SHA1 + ".gz";
state += pre + name + post + "\n";
}
}
@@ -453,16 +453,16 @@ namespace SabreTools.Helper
else if (datdata.TSV == true)
{
string inline = "\"" + datdata.FileName + "\"\t\"" + datdata.Name + "\"\t\"" + datdata.Description + "\"\t\"" + rom.Game + "\"\t\"" + rom.Game + "\"\t\"" +
- rom.Type + "\"\t\"" + (rom.Type == "rom" ? rom.Name : "") + "\"\t\"" + (rom.Type == "disk" ? rom.Name : "") + "\"\t\"" + rom.Size + "\"\t\"" +
- rom.CRC + "\"\t\"" + rom.MD5 + "\"\t\"" + rom.SHA1 + "\"\t" + (rom.Nodump ? "\"Nodump\"" : "\"\"");
+ rom.Type + "\"\t\"" + (rom.Type == "rom" ? rom.Name : "") + "\"\t\"" + (rom.Type == "disk" ? rom.Name : "") + "\"\t\"" + rom.HashData.Size + "\"\t\"" +
+ rom.HashData.CRC + "\"\t\"" + rom.HashData.MD5 + "\"\t\"" + rom.HashData.SHA1 + "\"\t" + (rom.Nodump ? "\"Nodump\"" : "\"\"");
state += pre + inline + post + "\n";
}
// If we're in CSV mode, similarly the state is consistent
else if (datdata.TSV == false)
{
string inline = "\"" + datdata.FileName + "\",\"" + datdata.Name + "\",\"" + datdata.Description + "\",\"" + rom.Game + "\",\"" + rom.Game + "\",\"" +
- rom.Type + "\",\"" + (rom.Type == "rom" ? rom.Name : "") + "\",\"" + (rom.Type == "disk" ? rom.Name : "") + "\",\"" + rom.Size + "\",\"" +
- rom.CRC + "\",\"" + rom.MD5 + "\",\"" + rom.SHA1 + "\"," + (rom.Nodump ? "\"Nodump\"" : "\"\"");
+ rom.Type + "\",\"" + (rom.Type == "rom" ? rom.Name : "") + "\",\"" + (rom.Type == "disk" ? rom.Name : "") + "\",\"" + rom.HashData.Size + "\",\"" +
+ rom.HashData.CRC + "\",\"" + rom.HashData.MD5 + "\",\"" + rom.HashData.SHA1 + "\"," + (rom.Nodump ? "\"Nodump\"" : "\"\"");
state += pre + inline + post + "\n";
}
// Otherwise, use any flags
@@ -499,8 +499,8 @@ namespace SabreTools.Helper
state += "¬¬¬" + HttpUtility.HtmlEncode(rom.Game) +
"¬" + HttpUtility.HtmlEncode((String.IsNullOrEmpty(rom.GameDescription) ? rom.Game : rom.GameDescription)) +
"¬" + HttpUtility.HtmlEncode(rom.Name) +
- "¬" + rom.CRC.ToLowerInvariant() +
- "¬" + (rom.Size != -1 ? rom.Size.ToString() : "") + "¬¬¬\n";
+ "¬" + rom.HashData.CRC.ToLowerInvariant() +
+ "¬" + (rom.HashData.Size != -1 ? rom.HashData.Size.ToString() : "") + "¬¬¬\n";
break;
case OutputFormat.SabreDat:
string prefix = "";
@@ -511,10 +511,10 @@ namespace SabreTools.Helper
state += prefix;
state += "\n" + prefix + "\t\n" +
prefix + "\t\t\n" +
@@ -524,10 +524,10 @@ namespace SabreTools.Helper
break;
case OutputFormat.Xml:
state += "\t\t<" + rom.Type + " name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" +
- (rom.Size != -1 ? " size=\"" + rom.Size + "\"" : "") +
- (!String.IsNullOrEmpty(rom.CRC) ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
- (!String.IsNullOrEmpty(rom.MD5) ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
- (!String.IsNullOrEmpty(rom.SHA1) ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
+ (rom.HashData.Size != -1 ? " size=\"" + rom.HashData.Size + "\"" : "") +
+ (!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc=\"" + rom.HashData.CRC.ToLowerInvariant() + "\"" : "") +
+ (!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5=\"" + rom.HashData.MD5.ToLowerInvariant() + "\"" : "") +
+ (!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1=\"" + rom.HashData.SHA1.ToLowerInvariant() + "\"" : "") +
(!String.IsNullOrEmpty(rom.Date) ? " date=\"" + rom.Date + "\"" : "") +
(rom.Nodump ? " status=\"nodump\"" : "") +
"/>\n";
diff --git a/SabreTools.Helper/Tools/RomTools.cs b/SabreTools.Helper/Tools/RomTools.cs
index 36303f34..20ecf11b 100644
--- a/SabreTools.Helper/Tools/RomTools.cs
+++ b/SabreTools.Helper/Tools/RomTools.cs
@@ -30,10 +30,13 @@ namespace SabreTools.Helper
{
Name = Path.GetFileName(input),
Type = "rom",
- Size = (new FileInfo(input)).Length,
- CRC = string.Empty,
- MD5 = string.Empty,
- SHA1 = string.Empty,
+ HashData = new HashData
+ {
+ Size = (new FileInfo(input)).Length,
+ CRC = string.Empty,
+ MD5 = string.Empty,
+ SHA1 = string.Empty,
+ }
};
try
@@ -65,17 +68,17 @@ namespace SabreTools.Helper
}
crc.TransformFinalBlock(buffer, 0, 0);
- rom.CRC = BitConverter.ToString(crc.Hash).Replace("-", "").ToLowerInvariant();
+ rom.HashData.CRC = BitConverter.ToString(crc.Hash).Replace("-", "").ToLowerInvariant();
if (!noMD5)
{
md5.TransformFinalBlock(buffer, 0, 0);
- rom.MD5 = BitConverter.ToString(md5.Hash).Replace("-", "").ToLowerInvariant();
+ rom.HashData.MD5 = BitConverter.ToString(md5.Hash).Replace("-", "").ToLowerInvariant();
}
if (!noSHA1)
{
sha1.TransformFinalBlock(buffer, 0, 0);
- rom.SHA1 = BitConverter.ToString(sha1.Hash).Replace("-", "").ToLowerInvariant();
+ rom.HashData.SHA1 = BitConverter.ToString(sha1.Hash).Replace("-", "").ToLowerInvariant();
}
}
}
@@ -134,9 +137,9 @@ namespace SabreTools.Helper
savedrom = lastrom;
pos = i;
- savedrom.CRC = (String.IsNullOrEmpty(savedrom.CRC) && !String.IsNullOrEmpty(rom.CRC) ? rom.CRC : savedrom.CRC);
- savedrom.MD5 = (String.IsNullOrEmpty(savedrom.MD5) && !String.IsNullOrEmpty(rom.MD5) ? rom.MD5 : savedrom.MD5);
- savedrom.SHA1 = (String.IsNullOrEmpty(savedrom.SHA1) && !String.IsNullOrEmpty(rom.SHA1) ? rom.SHA1 : savedrom.SHA1);
+ savedrom.HashData.CRC = (String.IsNullOrEmpty(savedrom.HashData.CRC) && !String.IsNullOrEmpty(rom.HashData.CRC) ? rom.HashData.CRC : savedrom.HashData.CRC);
+ savedrom.HashData.MD5 = (String.IsNullOrEmpty(savedrom.HashData.MD5) && !String.IsNullOrEmpty(rom.HashData.MD5) ? rom.HashData.MD5 : savedrom.HashData.MD5);
+ savedrom.HashData.SHA1 = (String.IsNullOrEmpty(savedrom.HashData.SHA1) && !String.IsNullOrEmpty(rom.HashData.SHA1) ? rom.HashData.SHA1 : savedrom.HashData.SHA1);
savedrom.Dupe = dupetype;
// If the current system has a lower ID than the previous, set the system accordingly
@@ -248,23 +251,23 @@ namespace SabreTools.Helper
if (rom.Type == "rom" && lastrom.Type == "rom")
{
- dupefound = ((rom.Size == lastrom.Size) &&
- ((String.IsNullOrEmpty(rom.CRC) || String.IsNullOrEmpty(lastrom.CRC)) || rom.CRC == lastrom.CRC) &&
- ((String.IsNullOrEmpty(rom.MD5) || String.IsNullOrEmpty(lastrom.MD5)) || rom.MD5 == lastrom.MD5) &&
- ((String.IsNullOrEmpty(rom.SHA1) || String.IsNullOrEmpty(lastrom.SHA1)) || rom.SHA1 == lastrom.SHA1)
+ dupefound = ((rom.HashData.Size == lastrom.HashData.Size) &&
+ ((String.IsNullOrEmpty(rom.HashData.CRC) || String.IsNullOrEmpty(lastrom.HashData.CRC)) || rom.HashData.CRC == lastrom.HashData.CRC) &&
+ ((String.IsNullOrEmpty(rom.HashData.MD5) || String.IsNullOrEmpty(lastrom.HashData.MD5)) || rom.HashData.MD5 == lastrom.HashData.MD5) &&
+ ((String.IsNullOrEmpty(rom.HashData.SHA1) || String.IsNullOrEmpty(lastrom.HashData.SHA1)) || rom.HashData.SHA1 == lastrom.HashData.SHA1)
);
}
else if (rom.Type == "disk" && lastrom.Type == "disk")
{
- dupefound = (((String.IsNullOrEmpty(rom.MD5) || String.IsNullOrEmpty(lastrom.MD5)) || rom.MD5 == lastrom.MD5) &&
- ((String.IsNullOrEmpty(rom.SHA1) || String.IsNullOrEmpty(lastrom.SHA1)) || rom.SHA1 == lastrom.SHA1)
+ dupefound = (((String.IsNullOrEmpty(rom.HashData.MD5) || String.IsNullOrEmpty(lastrom.HashData.MD5)) || rom.HashData.MD5 == lastrom.HashData.MD5) &&
+ ((String.IsNullOrEmpty(rom.HashData.SHA1) || String.IsNullOrEmpty(lastrom.HashData.SHA1)) || rom.HashData.SHA1 == lastrom.HashData.SHA1)
);
}
// More wonderful SHA-1 logging that has to be done
- if (rom.SHA1 == lastrom.SHA1 && rom.Size != lastrom.Size)
+ if (rom.HashData.SHA1 == lastrom.HashData.SHA1 && rom.HashData.Size != lastrom.HashData.Size)
{
- logger.User("SHA-1 mismatch - Hash: " + rom.SHA1);
+ logger.User("SHA-1 mismatch - Hash: " + rom.HashData.SHA1);
}
return dupefound;
diff --git a/SabreTools.Helper/Tools/Stats.cs b/SabreTools.Helper/Tools/Stats.cs
index 8a095216..92da77a5 100644
--- a/SabreTools.Helper/Tools/Stats.cs
+++ b/SabreTools.Helper/Tools/Stats.cs
@@ -122,10 +122,10 @@ Please check the log folder if the stats scrolled offscreen");
{
datdata.RomCount += (rom.Type == "rom" ? 1 : 0);
datdata.DiskCount += (rom.Type == "disk" ? 1 : 0);
- datdata.TotalSize += (rom.Nodump ? 0 : rom.Size);
- datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
- datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
- datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
+ datdata.TotalSize += (rom.Nodump ? 0 : rom.HashData.Size);
+ datdata.CRCCount += (String.IsNullOrEmpty(rom.HashData.CRC) ? 0 : 1);
+ datdata.MD5Count += (String.IsNullOrEmpty(rom.HashData.MD5) ? 0 : 1);
+ datdata.SHA1Count += (String.IsNullOrEmpty(rom.HashData.SHA1) ? 0 : 1);
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
}
diff --git a/SabreTools/DATFromDir.cs b/SabreTools/DATFromDir.cs
index 31fc6ebf..40c7b304 100644
--- a/SabreTools/DATFromDir.cs
+++ b/SabreTools/DATFromDir.cs
@@ -178,13 +178,16 @@ namespace SabreTools
Path.DirectorySeparatorChar.ToString() :
"") + actualroot :
actualroot),
- Size = -1,
- CRC = "null",
- MD5 = "null",
- SHA1 = "null",
+ HashData = new HashData
+ {
+ Size = -1,
+ CRC = "null",
+ MD5 = "null",
+ SHA1 = "null",
+ },
};
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_datdata.Roms.ContainsKey(key))
{
_datdata.Roms[key].Add(rom);
@@ -211,13 +214,16 @@ namespace SabreTools
Path.DirectorySeparatorChar.ToString() :
"") + actualroot :
actualroot),
- Size = -1,
- CRC = "null",
- MD5 = "null",
- SHA1 = "null",
+ HashData = new HashData
+ {
+ Size = -1,
+ CRC = "null",
+ MD5 = "null",
+ SHA1 = "null",
+ },
};
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_datdata.Roms.ContainsKey(key))
{
_datdata.Roms[key].Add(rom);
@@ -257,15 +263,15 @@ namespace SabreTools
{
rom.Type = "rom";
rom.Name = "-";
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
}
if (_nowrite)
{
- string inkey = rom.Size + "-" + rom.CRC;
+ string inkey = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_datdata.Roms.ContainsKey(inkey))
{
_datdata.Roms[inkey].Add(rom);
@@ -343,7 +349,7 @@ namespace SabreTools
if (_nowrite)
{
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_datdata.Roms.ContainsKey(key))
{
_datdata.Roms[key].Add(rom);
@@ -515,7 +521,7 @@ namespace SabreTools
if (_nowrite)
{
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_datdata.Roms.ContainsKey(key))
{
_datdata.Roms[key].Add(rom);
diff --git a/SabreTools/OfflineMerge.cs b/SabreTools/OfflineMerge.cs
index d9321f1c..19e73f3e 100644
--- a/SabreTools/OfflineMerge.cs
+++ b/SabreTools/OfflineMerge.cs
@@ -230,10 +230,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
netNew[key] = temp;
@@ -248,10 +248,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
unneeded[key] = temp;
@@ -266,10 +266,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
newMissing[key] = temp;
@@ -284,10 +284,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
have[key] = temp;
@@ -398,10 +398,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
have[key] = temp;
@@ -468,10 +468,10 @@ namespace SabreTools
for (int i = 0; i < roms.Count; i++)
{
Rom rom = roms[i];
- rom.Size = Constants.SizeZero;
- rom.CRC = Constants.CRCZero;
- rom.MD5 = Constants.MD5Zero;
- rom.SHA1 = Constants.SHA1Zero;
+ rom.HashData.Size = Constants.SizeZero;
+ rom.HashData.CRC = Constants.CRCZero;
+ rom.HashData.MD5 = Constants.MD5Zero;
+ rom.HashData.SHA1 = Constants.SHA1Zero;
temp.Add(rom);
}
have[key] = temp;
diff --git a/SabreTools/Split.cs b/SabreTools/Split.cs
index aaef021f..abbd09fe 100644
--- a/SabreTools/Split.cs
+++ b/SabreTools/Split.cs
@@ -246,7 +246,7 @@ namespace SabreTools
}
}
// If the file has a SHA-1
- else if (rom.SHA1 != null && rom.SHA1 != "")
+ else if (rom.HashData.SHA1 != null && rom.HashData.SHA1 != "")
{
if (sha1.Roms.ContainsKey(key))
{
@@ -260,7 +260,7 @@ namespace SabreTools
}
}
// If the file has no SHA-1 but has an MD5
- else if (rom.MD5 != null && rom.MD5 != "")
+ else if (rom.HashData.MD5 != null && rom.HashData.MD5 != "")
{
if (md5.Roms.ContainsKey(key))
{
diff --git a/SimpleSort/SimpleSort.cs b/SimpleSort/SimpleSort.cs
index 7557c057..6e1cacf0 100644
--- a/SimpleSort/SimpleSort.cs
+++ b/SimpleSort/SimpleSort.cs
@@ -374,7 +374,7 @@ namespace SabreTools
if (rom.Metadata.SourceID == 99)
{
found = true;
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (_matched.Roms.ContainsKey(key))
{
_matched.Roms[key].Add(rom);
@@ -508,7 +508,7 @@ namespace SabreTools
_logger.Log("Matched name: " + found.Name);
// Add rom to the matched list
- string key = found.Size + "-" + found.CRC;
+ string key = found.HashData.Size + "-" + found.HashData.CRC;
if(_matched.Roms.ContainsKey(key))
{
_matched.Roms[key].Add(found);
@@ -529,7 +529,7 @@ namespace SabreTools
Directory.CreateDirectory(gamedir);
}
- _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
+ _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
try
{
File.Copy(input, Path.Combine(gamedir, Path.GetFileName(found.Name)));
@@ -572,7 +572,7 @@ namespace SabreTools
foreach (Rom found in founddroms)
{
// Add rom to the matched list
- string key = found.Size + "-" + found.CRC;
+ string key = found.HashData.Size + "-" + found.HashData.CRC;
if (_matched.Roms.ContainsKey(key))
{
_matched.Roms[key].Add(found);
@@ -596,7 +596,7 @@ namespace SabreTools
Directory.CreateDirectory(gamedir);
}
- _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
+ _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
try
{
File.Copy(newinput, Path.Combine(gamedir, Path.GetFileName(found.Name)));
@@ -617,10 +617,10 @@ namespace SabreTools
// Then output the headered rom (renamed)
Rom newfound = found;
- newfound.Name = Path.GetFileNameWithoutExtension(newfound.Name) + " (" + rom.CRC + ")" + Path.GetExtension(newfound.Name);
+ newfound.Name = Path.GetFileNameWithoutExtension(newfound.Name) + " (" + rom.HashData.CRC + ")" + Path.GetExtension(newfound.Name);
// Add rom to the matched list
- key = newfound.Size + "-" + newfound.CRC;
+ key = newfound.HashData.Size + "-" + newfound.HashData.CRC;
if (_matched.Roms.ContainsKey(key))
{
_matched.Roms[key].Add(newfound);
@@ -695,7 +695,7 @@ namespace SabreTools
foreach (Rom found in foundroms)
{
// Add rom to the matched list
- string key = found.Size + "-" + found.CRC;
+ string key = found.HashData.Size + "-" + found.HashData.CRC;
if (_matched.Roms.ContainsKey(key))
{
_matched.Roms[key].Add(found);
@@ -730,7 +730,7 @@ namespace SabreTools
else
{
// Copy file between archives
- _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.SHA1 : found.Name) + "'");
+ _logger.Log("Rebuilding file '" + Path.GetFileName(rom.Name) + "' to '" + (_tgz ? found.HashData.SHA1 : found.Name) + "'");
if (Build.MonoEnvironment || _tgz)
{
@@ -851,7 +851,7 @@ namespace SabreTools
// Then add each of the found files to the new dictionary
foreach (Rom rom in roms)
{
- string key = rom.Size + "-" + rom.CRC;
+ string key = rom.HashData.Size + "-" + rom.HashData.CRC;
if (scanned.ContainsKey(key))
{
scanned[key].Add(rom);