This commit is contained in:
Matt Nadareski
2024-11-12 13:03:06 -05:00
parent 125dc021d5
commit d51bedceb6
25 changed files with 132 additions and 81 deletions

View File

@@ -63,9 +63,9 @@ namespace SabreTools.Serialization.Test
var dump = new Models.OpenMSX.Dump[]
{
new Models.OpenMSX.Dump { Original = original, Rom = rom },
new Models.OpenMSX.Dump { Rom = megaRom },
new Models.OpenMSX.Dump { Rom = sccPlusCart },
new() { Original = original, Rom = rom },
new() { Rom = megaRom },
new() { Rom = sccPlusCart },
};
var software = new Models.OpenMSX.Software

View File

@@ -19,9 +19,9 @@ namespace SabreTools.Serialization.CrossModel
if (machines != null && machines.Any())
{
files.File = machines
.Where(m => m != null)
.SelectMany(ConvertFromInternalModel)
.ToArray();
.Where(m => m != null)
.SelectMany(ConvertFromInternalModel)
.ToArray();
}
return files;
@@ -38,7 +38,8 @@ namespace SabreTools.Serialization.CrossModel
return roms
.Where(r => r != null)
.Select(ConvertFromInternalModel).ToArray();
.Select(ConvertFromInternalModel)
.ToArray();
}
/// <summary>

View File

@@ -54,19 +54,19 @@ namespace SabreTools.Serialization.CrossModel
var hashfileItem = new Models.Hashfile.Hashfile();
if (sfvs.Any())
hashfileItem.SFV = sfvs.ToArray();
hashfileItem.SFV = [.. sfvs];
if (md5s.Any())
hashfileItem.MD5 = md5s.ToArray();
hashfileItem.MD5 = [.. md5s];
if (sha1s.Any())
hashfileItem.SHA1 = sha1s.ToArray();
hashfileItem.SHA1 = [.. sha1s];
if (sha256s.Any())
hashfileItem.SHA256 = sha256s.ToArray();
hashfileItem.SHA256 = [.. sha256s];
if (sha384s.Any())
hashfileItem.SHA384 = sha384s.ToArray();
hashfileItem.SHA384 = [.. sha384s];
if (sha512s.Any())
hashfileItem.SHA512 = sha512s.ToArray();
hashfileItem.SHA512 = [.. sha512s];
if (spamsums.Any())
hashfileItem.SpamSum = spamsums.ToArray();
hashfileItem.SpamSum = [.. spamsums];
return hashfileItem;
}

View File

@@ -59,7 +59,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the records
mediaKeyBlock.Records = records.ToArray();
mediaKeyBlock.Records = [.. records];
#endregion
@@ -164,7 +164,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the subset differences
record.SubsetDifferences = subsetDifferences.ToArray();
record.SubsetDifferences = [.. subsetDifferences];
// If there's any data left, discard it
if (data.Position < initialOffset + length)
@@ -205,7 +205,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the media keys
record.MediaKeyData = mediaKeys.ToArray();
record.MediaKeyData = [.. mediaKeys];
return record;
}
@@ -243,7 +243,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the offsets
record.Offsets = offsets.ToArray();
record.Offsets = [.. offsets];
return record;
}
@@ -322,7 +322,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the signature blocks
record.SignatureBlocks = blocks.ToArray();
record.SignatureBlocks = [.. blocks];
// If there's any data left, discard it
if (data.Position < initialOffset + length)
@@ -383,7 +383,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the signature blocks
record.SignatureBlocks = blocks.ToArray();
record.SignatureBlocks = [.. blocks];
// If there's any data left, discard it
if (data.Position < initialOffset + length)

View File

@@ -38,7 +38,7 @@ namespace SabreTools.Serialization.Deserializers
if (!reader.ReadHeader() || reader.HeaderValues == null)
return null;
dat.Header = reader.HeaderValues.ToArray();
dat.Header = [.. reader.HeaderValues];
// Loop through the rows and parse out values
var rows = new List<Row>();
@@ -109,7 +109,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the rows to the Dat and return
dat.Row = rows.ToArray();
dat.Row = [.. rows];
return dat;
}

View File

@@ -77,7 +77,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the DIFAT sectors table
binary.DIFATSectorNumbers = difatSectors.ToArray();
binary.DIFATSectorNumbers = [.. difatSectors];
#endregion
@@ -115,7 +115,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the FAT sectors table
binary.FATSectorNumbers = fatSectors.ToArray();
binary.FATSectorNumbers = [.. fatSectors];
#endregion
@@ -153,7 +153,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the mini FAT sectors table
binary.MiniFATSectorNumbers = miniFatSectors.ToArray();
binary.MiniFATSectorNumbers = [.. miniFatSectors];
#endregion
@@ -219,7 +219,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the Directory sectors table
binary.DirectoryEntries = directorySectors.ToArray();
binary.DirectoryEntries = [.. directorySectors];
#endregion

View File

@@ -752,7 +752,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
chip.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
chip.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return chip;
}
@@ -799,7 +799,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
video.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
video.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return video;
}
@@ -828,7 +828,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
sound.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
sound.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return sound;
}
@@ -872,7 +872,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
input.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
input.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return input;
}
@@ -909,7 +909,7 @@ namespace SabreTools.Serialization.Deserializers
}
dipswitch.Entry = [.. entries];
dipswitch.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
dipswitch.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return dipswitch;
}
@@ -950,7 +950,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
driver.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
driver.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return driver;
}

View File

@@ -46,15 +46,15 @@ namespace SabreTools.Serialization.Deserializers
{
case "doscenter":
if (dat.DosCenter != null)
dat.DosCenter.ADDITIONAL_ELEMENTS = headerAdditional.ToArray();
dat.DosCenter.ADDITIONAL_ELEMENTS = [.. headerAdditional];
headerAdditional.Clear();
break;
case "game":
if (game != null)
{
game.File = files.ToArray();
game.ADDITIONAL_ELEMENTS = gameAdditional.ToArray();
game.File = [.. files];
game.ADDITIONAL_ELEMENTS = [.. gameAdditional];
games.Add(game);
}
@@ -167,8 +167,8 @@ namespace SabreTools.Serialization.Deserializers
}
// Add extra pieces and return
dat.Game = games.ToArray();
dat.ADDITIONAL_ELEMENTS = additional.ToArray();
dat.Game = [.. games];
dat.ADDITIONAL_ELEMENTS = [.. additional];
return dat;
}
@@ -207,7 +207,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
file.ADDITIONAL_ELEMENTS = itemAdditional.ToArray();
file.ADDITIONAL_ELEMENTS = [.. itemAdditional];
return file;
}
}

View File

@@ -55,7 +55,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the rows to the Dat and return
dat.Row = rows.ToArray();
dat.Row = [.. rows];
return dat;
}
}

View File

@@ -33,7 +33,7 @@ namespace SabreTools.Serialization.Deserializers
// If we have a set to process
if (set != null)
{
set.Row = rows.ToArray();
set.Row = [.. rows];
sets.Add(set);
set = null;
rows.Clear();
@@ -226,15 +226,15 @@ namespace SabreTools.Serialization.Deserializers
// If we have a set to process
if (set != null)
{
set.Row = rows.ToArray();
set.Row = [.. rows];
sets.Add(set);
set = null;
rows.Clear();
}
// Add extra pieces and return
dat.Set = sets.ToArray();
dat.ADDITIONAL_ELEMENTS = additional.ToArray();
dat.Set = [.. sets];
dat.ADDITIONAL_ELEMENTS = [.. additional];
return dat;
}
}

View File

@@ -102,7 +102,7 @@ namespace SabreTools.Serialization.Deserializers
hashTable.Add(hashEntry);
}
archive.HashTable = hashTable.ToArray();
archive.HashTable = [.. hashTable];
}
}
@@ -131,7 +131,7 @@ namespace SabreTools.Serialization.Deserializers
hashTable.Add(hashEntry);
}
archive.HashTable = hashTable.ToArray();
archive.HashTable = [.. hashTable];
}
}
@@ -160,7 +160,7 @@ namespace SabreTools.Serialization.Deserializers
hashTable.Add(hashEntry);
}
archive.HashTable = hashTable.ToArray();
archive.HashTable = [.. hashTable];
}
}
@@ -193,7 +193,7 @@ namespace SabreTools.Serialization.Deserializers
blockTable.Add(blockEntry);
}
archive.BlockTable = blockTable.ToArray();
archive.BlockTable = [.. blockTable];
}
}
@@ -222,7 +222,7 @@ namespace SabreTools.Serialization.Deserializers
blockTable.Add(blockEntry);
}
archive.BlockTable = blockTable.ToArray();
archive.BlockTable = [.. blockTable];
}
}
@@ -251,7 +251,7 @@ namespace SabreTools.Serialization.Deserializers
blockTable.Add(blockEntry);
}
archive.BlockTable = blockTable.ToArray();
archive.BlockTable = [.. blockTable];
}
}
@@ -278,7 +278,7 @@ namespace SabreTools.Serialization.Deserializers
hiBlockTable.Add(hiBlockEntry);
}
archive.HiBlockTable = hiBlockTable.ToArray();
archive.HiBlockTable = [.. hiBlockTable];
}
}

View File

@@ -110,7 +110,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Set the file allocation table
cart.FileAllocationTable = fileAllocationTable.ToArray();
cart.FileAllocationTable = [.. fileAllocationTable];
#endregion
@@ -170,7 +170,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the folder allocation table
nameTable.FolderAllocationTable = folderAllocationTable.ToArray();
nameTable.FolderAllocationTable = [.. folderAllocationTable];
// Create a variable-length table
var nameList = new List<NameListEntry>();
@@ -184,7 +184,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the name list
nameTable.NameList = nameList.ToArray();
nameTable.NameList = [.. nameList];
return nameTable;
}

View File

@@ -43,7 +43,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the units and return
di.Units = diUnits.ToArray();
di.Units = [.. diUnits];
return di;
}

View File

@@ -678,7 +678,7 @@ namespace SabreTools.Serialization.Deserializers
_ = data.ReadByteValue();
}
return attributeCertificateTable.ToArray();
return [.. attributeCertificateTable];
}
/// <summary>
@@ -913,7 +913,7 @@ namespace SabreTools.Serialization.Deserializers
break;
}
importTable.ImportDirectoryTable = importDirectoryTable.ToArray();
importTable.ImportDirectoryTable = [.. importDirectoryTable];
// Names
for (int i = 0; i < importTable.ImportDirectoryTable.Length; i++)
@@ -981,7 +981,7 @@ namespace SabreTools.Serialization.Deserializers
break;
}
importLookupTables[i] = entryLookupTable.ToArray();
importLookupTables[i] = [.. entryLookupTable];
}
importTable.ImportLookupTables = importLookupTables;
@@ -1035,7 +1035,7 @@ namespace SabreTools.Serialization.Deserializers
break;
}
importAddressTables[i] = addressLookupTable.ToArray();
importAddressTables[i] = [.. addressLookupTable];
}
importTable.ImportAddressTables = importAddressTables;

View File

@@ -204,7 +204,7 @@ namespace SabreTools.Serialization.Deserializers
dat.Emulator.ADDITIONAL_ELEMENTS = emulatorAdditional.Where(s => s != null).ToArray();
if (dat.Games != null)
{
dat.Games.Rom = roms.ToArray();
dat.Games.Rom = [.. roms];
dat.Games.ADDITIONAL_ELEMENTS = gamesAdditional.Where(s => s != null).Select(s => s).ToArray();
}
return dat;

View File

@@ -104,7 +104,7 @@ namespace SabreTools.Serialization.Deserializers
if (!reader.ReadHeader() || reader.HeaderValues == null)
return null;
dat.Header = reader.HeaderValues.ToArray();
dat.Header = [.. reader.HeaderValues];
// Loop through the rows and parse out values
var rows = new List<Row>();
@@ -171,7 +171,7 @@ namespace SabreTools.Serialization.Deserializers
}
// Assign the rows to the Dat and return
dat.Row = rows.ToArray();
dat.Row = [.. rows];
return dat;
}

View File

@@ -195,7 +195,7 @@ namespace SabreTools.Serialization.Deserializers
}
}
return directoryItems.ToArray();
return [.. directoryItems];
}
/// <summary>

View File

@@ -184,7 +184,7 @@ namespace SabreTools.Serialization.Deserializers
private static DirectoryItem ParseDirectoryItem(Stream data)
{
// TODO: Use marshalling here instead of building
DirectoryItem directoryItem = new DirectoryItem();
var directoryItem = new DirectoryItem();
directoryItem.FileNameCRC = data.ReadUInt32();
directoryItem.NameOffset = data.ReadUInt32();

View File

@@ -165,7 +165,9 @@ namespace SabreTools.Serialization
if (string.IsNullOrEmpty(addD.Version))
offset = originalOffset + 0x10;
addD.Build = data.ReadBytes(ref offset, 4)?.Select(b => (char)b)?.ToArray();
var buildBytes = data.ReadBytes(ref offset, 4);
var buildChars = Array.ConvertAll(buildBytes, b => (char)b);
addD.Build = buildChars;
// Distinguish between v1 and v2
int bytesToRead = 112; // v2

View File

@@ -57,7 +57,7 @@ namespace SabreTools.Serialization.Serializers
if (row.Size != null)
rowArray.Add(row.Size);
writer.WriteValues(rowArray.ToArray());
writer.WriteValues([.. rowArray]);
writer.Flush();
}
}

View File

@@ -147,7 +147,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, char[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(c => c.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, c => c.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -156,7 +162,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, short[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(s => s.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, s => s.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -165,7 +177,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, ushort[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(u => u.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, u => u.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -174,7 +192,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, int[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(i => i.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, i => i.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -183,7 +207,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, uint[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(u => u.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, u => u.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -192,7 +222,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, long[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(l => l.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, l => l.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -201,7 +237,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, ulong[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(u => u.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, u => u.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
@@ -210,7 +252,13 @@ namespace SabreTools.Serialization
/// </summary>
public static StringBuilder AppendLine(this StringBuilder sb, Guid[]? value, string prefixString)
{
string valueString = (value == null ? "[NULL]" : string.Join(", ", value.Select(g => g.ToString()).ToArray()));
string valueString = "[NULL]";
if (value != null)
{
var valueArr = Array.ConvertAll(value, g => g.ToString());
valueString = string.Join(", ", valueArr);
}
return sb.AppendLine($"{prefixString}: {valueString}");
}
}

View File

@@ -158,7 +158,7 @@ namespace SabreTools.Serialization.Wrappers
data.AddRange(sectorData);
}
return data.ToArray();
return [.. data];
}
/// <summary>
@@ -245,7 +245,7 @@ namespace SabreTools.Serialization.Wrappers
data.AddRange(sectorData);
}
return data.ToArray();
return [.. data];
}
/// <summary>

View File

@@ -89,7 +89,7 @@ namespace SabreTools.Serialization.Wrappers
// Build the remaining file info
#if NET20 || NET35
var pathArray = pathParts.ToArray();
var pathArray = [.. pathParts];
string tempPath = string.Empty;
if (pathArray.Length == 0 || pathArray.Length == 1)
@@ -108,7 +108,7 @@ namespace SabreTools.Serialization.Wrappers
}
fileInfo.Path = tempPath;
#else
fileInfo.Path = Path.Combine(pathParts.ToArray());
fileInfo.Path = Path.Combine([.. pathParts]);
#endif
fileInfo.BlockEntries = [.. blockEntries];

View File

@@ -86,13 +86,13 @@ namespace SabreTools.Serialization.Wrappers
/// </summary>
private static uint ChecksumData(byte[] data)
{
uint[] C = new uint[4]
{
uint[] C =
[
S(data, 1, data.Length),
S(data, 2, data.Length),
S(data, 3, data.Length),
S(data, 4, data.Length),
};
];
return C[0] ^ C[1] ^ C[2] ^ C[3];
}

View File

@@ -280,7 +280,7 @@ namespace SabreTools.Serialization.Wrappers
// If we're at the end of the file, cache an empty byte array
if (endOfSectionData >= endOfFile)
{
_overlayData = new byte[0];
_overlayData = [];
return _overlayData;
}