Consolidate some Missfile writing code

This commit is contained in:
Matt Nadareski
2025-02-14 15:28:22 -05:00
parent d47e25605f
commit 216e614774

View File

@@ -167,9 +167,31 @@ namespace SabreTools.DatFiles.Formats
/// <param name="lastgame">The name of the last game to be output</param>
private void WriteDatItem(StreamWriter sw, DatItem datItem, string? lastgame)
{
// Get the machine for the item
var machine = datItem.GetFieldValue<Machine>(DatItem.MachineKey);
WriteDatItemImpl(sw, datItem, machine!, lastgame);
}
/// <summary>
/// Write out DatItem using the supplied StreamWriter
/// </summary>
/// <param name="sw">StreamWriter to output to</param>
/// <param name="datItem">DatItem object to be output</param>
/// <param name="lastgame">The name of the last game to be output</param>
private void WriteDatItemDB(StreamWriter sw, KeyValuePair<long, DatItem> datItem, string? lastgame)
{
var machine = ItemsDB.GetMachineForItem(datItem.Key).Value;
WriteDatItemImpl(sw, datItem.Value, machine!, lastgame);
}
/// <summary>
/// Write out DatItem using the supplied StreamWriter
/// </summary>
/// <param name="sw">StreamWriter to output to</param>
/// <param name="datItem">DatItem object to be output</param>
/// <param name="machine">Machine object representing the set the item is in</param>
/// <param name="lastgame">The name of the last game to be output</param>
private void WriteDatItemImpl(StreamWriter sw, DatItem datItem, Machine machine, string? lastgame)
{
// Process the item name
ProcessItemName(datItem, machine, forceRemoveQuotes: false, forceRomName: false);
@@ -181,28 +203,5 @@ namespace SabreTools.DatFiles.Formats
sw.Flush();
}
/// <summary>
/// Write out DatItem using the supplied StreamWriter
/// </summary>
/// <param name="sw">StreamWriter to output to</param>
/// <param name="datItem">DatItem object to be output</param>
/// <param name="lastgame">The name of the last game to be output</param>
private void WriteDatItemDB(StreamWriter sw, KeyValuePair<long, DatItem> datItem, string? lastgame)
{
// Get the machine for the item
var machine = ItemsDB.GetMachineForItem(datItem.Key).Value;
// Process the item name
ProcessItemName(datItem.Value, machine, forceRemoveQuotes: false, forceRomName: false);
// Romba mode automatically uses item name
if (Modifiers.OutputDepot?.IsActive == true || Modifiers.UseRomName)
sw.Write($"{datItem.Value.GetName() ?? string.Empty}\n");
else if (!Modifiers.UseRomName && machine!.GetStringFieldValue(Models.Metadata.Machine.NameKey) != lastgame)
sw.Write($"{machine!.GetStringFieldValue(Models.Metadata.Machine.NameKey) ?? string.Empty}\n");
sw.Flush();
}
}
}