diff --git a/SabreTools.Helper/Tools/DatTools.cs b/SabreTools.Helper/Tools/DatTools.cs
index c289ebdc..63ffd71e 100644
--- a/SabreTools.Helper/Tools/DatTools.cs
+++ b/SabreTools.Helper/Tools/DatTools.cs
@@ -133,7 +133,7 @@ namespace SabreTools.Helper
/// True if game names are sanitized, false otherwise (default)
/// True if SL XML names should be kept, false otherwise (default)
/// True if original extension should be kept, false otherwise (default)
- public static Dat Parse(
+ public static void Parse(
// Standard Dat parsing
string filename,
int sysid,
@@ -168,7 +168,7 @@ namespace SabreTools.Helper
string ext = Path.GetExtension(filename).ToLowerInvariant();
if (ext != ".txt" && ext != ".dat" && ext != ".xml")
{
- return datdata;
+ return;
}
// If the output filename isn't set already, get the internal filename
@@ -187,14 +187,17 @@ namespace SabreTools.Helper
switch (GetOutputFormat(filename, logger))
{
case OutputFormat.ClrMamePro:
- return ParseCMP(filename, sysid, srcid, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, keep, clean);
+ ParseCMP(filename, sysid, srcid, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, keep, clean);
+ break;
case OutputFormat.RomCenter:
- return ParseRC(filename, sysid, srcid, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, clean);
+ ParseRC(filename, sysid, srcid, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, clean);
+ break;
case OutputFormat.SabreDat:
case OutputFormat.Xml:
- return ParseXML(filename, sysid, srcid, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, keep, clean, softlist);
+ ParseXML(filename, sysid, srcid, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, logger, keep, clean, softlist);
+ break;
default:
- return datdata;
+ return;
}
}
@@ -221,13 +224,12 @@ namespace SabreTools.Helper
/// Logger object for console and/or file output
/// True if full pathnames are to be kept, false otherwise (default)
/// True if game names are sanitized, false otherwise (default)
- /// DatData object representing the read-in data
- private static Dat ParseCMP(
+ private static void ParseCMP(
// Standard Dat parsing
string filename,
int sysid,
int srcid,
- Dat datdata,
+ ref Dat datdata,
// Rom filtering
string gamename,
@@ -455,7 +457,7 @@ namespace SabreTools.Helper
// Now process and add the rom
string key = "";
- datdata = ParseAddHelper(rom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
}
// If the line is anything but a rom or disk and we're in a block
else if (Regex.IsMatch(line, Constants.ItemPatternCMP) && block)
@@ -587,8 +589,6 @@ namespace SabreTools.Helper
sr.Close();
sr.Dispose();
-
- return datdata;
}
///
@@ -613,13 +613,12 @@ namespace SabreTools.Helper
/// String representing root directory to compare against for length calculation
/// Logger object for console and/or file output
/// True if game names are sanitized, false otherwise (default)
- /// DatData object representing the read-in data
- private static Dat ParseRC(
+ private static void ParseRC(
// Standard Dat parsing
string filename,
int sysid,
int srcid,
- Dat datdata,
+ ref Dat datdata,
// Rom filtering
string gamename,
@@ -762,15 +761,13 @@ namespace SabreTools.Helper
// Now process and add the rom
string key = "";
- datdata = ParseAddHelper(rom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
}
}
}
sr.Close();
sr.Dispose();
-
- return datdata;
}
///
@@ -797,13 +794,12 @@ namespace SabreTools.Helper
/// True if full pathnames are to be kept, false otherwise (default)
/// True if game names are sanitized, false otherwise (default)
/// True if SL XML names should be kept, false otherwise (default)
- /// DatData object representing the read-in data
- private static Dat ParseXML(
+ private static void ParseXML(
// Standard Dat parsing
string filename,
int sysid,
int srcid,
- Dat datdata,
+ ref Dat datdata,
// Rom filtering
string gamename,
@@ -868,7 +864,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(rom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
}
// Regardless, end the current folder
@@ -1261,7 +1257,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(relrom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(relrom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1297,7 +1293,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(biosrom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(biosrom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1319,7 +1315,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(samplerom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(samplerom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1405,7 +1401,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(inrom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(inrom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1440,7 +1436,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(inrom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(inrom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
// Regardless, end the current folder
if (parent.Count == 0)
@@ -1570,7 +1566,7 @@ namespace SabreTools.Helper
};
// Now process and add the rom
- datdata = ParseAddHelper(rom, datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, ref datdata, gamename, romname, romtype, sgt, slt, seq, crc, md5, sha1, nodump, trim, single, root, clean, logger, out key);
xtr.Read();
break;
@@ -1583,8 +1579,6 @@ namespace SabreTools.Helper
xtr.Close();
xtr.Dispose();
}
-
- return datdata;
}
///
@@ -1606,7 +1600,7 @@ namespace SabreTools.Helper
/// True if all games should be replaced by '!', false otherwise
/// String representing root directory to compare against for length calculation
/// Logger object for console and/or file output
- private static Dat ParseAddHelper(Rom rom, Dat datdata, string gamename, string romname, string romtype, long sgt, long slt,
+ private static void ParseAddHelper(Rom rom, ref Dat datdata, string gamename, string romname, string romtype, long sgt, long slt,
long seq, string crc, string md5, string sha1, bool? nodump, bool trim, bool single, string root, bool clean, Logger logger, out string key)
{
key = "";
@@ -1615,7 +1609,7 @@ namespace SabreTools.Helper
if (String.IsNullOrEmpty(rom.Name))
{
logger.Warning("Rom with no name found! Skipping...");
- return datdata;
+ return;
}
// If we're in cleaning mode, sanitize the game name
@@ -1698,8 +1692,6 @@ namespace SabreTools.Helper
datdata.NodumpCount += (rom.Nodump ? 1 : 0);
}
}
-
- return datdata;
}
#endregion