diff --git a/SabreTools.DatFiles/DatFile.cs b/SabreTools.DatFiles/DatFile.cs
index 877d8002..709b374b 100644
--- a/SabreTools.DatFiles/DatFile.cs
+++ b/SabreTools.DatFiles/DatFile.cs
@@ -301,6 +301,19 @@ namespace SabreTools.DatFiles
#endregion
+ #region Item Dictionary Passthrough - Bucketing
+
+ ///
+ /// Recalculate the statistics for the Dat
+ ///
+ public void RecalculateStats()
+ {
+ Items.RecalculateStats();
+ ItemsDB.RecalculateStats();
+ }
+
+ #endregion
+
#region Parsing
///
diff --git a/SabreTools.DatTools/Writer.cs b/SabreTools.DatTools/Writer.cs
index dcac107d..913caef2 100644
--- a/SabreTools.DatTools/Writer.cs
+++ b/SabreTools.DatTools/Writer.cs
@@ -136,7 +136,7 @@ namespace SabreTools.DatTools
long romCount = datFile.DatStatistics.GetItemCount(ItemType.Rom);
if (diskCount + mediaCount + romCount == 0)
- datFile.Items.RecalculateStats();
+ datFile.RecalculateStats();
datFile.BucketBy(ItemKey.Machine, DedupeType.None, norename: true);
@@ -214,8 +214,7 @@ namespace SabreTools.DatTools
private static bool HasWritable(DatFile datFile)
{
// Force a statistics recheck, just in case
- datFile.Items.RecalculateStats();
- datFile.ItemsDB.RecalculateStats();
+ datFile.RecalculateStats();
// If there's nothing there, abort
if (datFile.DatStatistics.TotalCount == 0)