diff --git a/SabreTools.Serialization/DosCenter.Deserializer.cs b/SabreTools.Serialization/DosCenter.Deserializer.cs index 43ba7432..0ec52199 100644 --- a/SabreTools.Serialization/DosCenter.Deserializer.cs +++ b/SabreTools.Serialization/DosCenter.Deserializer.cs @@ -42,8 +42,8 @@ namespace SabreTools.Serialization string lastTopLevel = reader.TopLevel; Game? game = null; - var games = new List(); - var files = new List(); + var games = new List(); + var files = new List(); var additional = new List(); var headerAdditional = new List(); @@ -65,13 +65,18 @@ namespace SabreTools.Serialization switch (lastTopLevel) { case "doscenter": - dat.DosCenter.ADDITIONAL_ELEMENTS = headerAdditional.ToArray(); + if (dat.DosCenter != null) + dat.DosCenter.ADDITIONAL_ELEMENTS = headerAdditional.ToArray(); + headerAdditional.Clear(); break; case "game": - game.File = files.ToArray(); - game.ADDITIONAL_ELEMENTS = gameAdditional.ToArray(); - games.Add(game); + if (game != null) + { + game.File = files.ToArray(); + game.ADDITIONAL_ELEMENTS = gameAdditional.ToArray(); + games.Add(game); + } game = null; files.Clear(); diff --git a/SabreTools.Serialization/Listrom.Deserializer.cs b/SabreTools.Serialization/Listrom.Deserializer.cs index d7ac858a..3746eb09 100644 --- a/SabreTools.Serialization/Listrom.Deserializer.cs +++ b/SabreTools.Serialization/Listrom.Deserializer.cs @@ -39,8 +39,8 @@ namespace SabreTools.Serialization var dat = new MetadataFile(); Set? set = null; - var sets = new List(); - var rows = new List(); + var sets = new List(); + var rows = new List(); var additional = new List(); while (!reader.EndOfStream) @@ -93,19 +93,21 @@ namespace SabreTools.Serialization } // Split the line for the name iteratively - string[]? lineParts = line?.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); - if (lineParts?.Length == 1) - lineParts = line?.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); - if (lineParts?.Length == 1) - lineParts = line?.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); - if (lineParts?.Length == 1) - lineParts = line?.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + string[] lineParts = line.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (lineParts.Length == 1) + lineParts = line.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (lineParts.Length == 1) + lineParts = line.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (lineParts.Length == 1) + lineParts = line.Split(" ", StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); // Read the name and set the rest of the line for processing string name = lineParts[0]; string trimmedLine = line[name.Length..]; + if (trimmedLine == null) + continue; - lineParts = trimmedLine?.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + lineParts = trimmedLine.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); // The number of items in the row explains what type of row it is var row = new Row(); diff --git a/SabreTools.Serialization/Logiqx.Deserializer.cs b/SabreTools.Serialization/Logiqx.Deserializer.cs index 1b479dd6..abebbd67 100644 --- a/SabreTools.Serialization/Logiqx.Deserializer.cs +++ b/SabreTools.Serialization/Logiqx.Deserializer.cs @@ -47,9 +47,6 @@ namespace SabreTools.Serialization /// private static Header ConvertHeaderFromInternalModel(Models.Internal.Header item) { - if (item == null) - return null; - var header = new Header { Id = item.ReadString(Models.Internal.Header.IdKey), @@ -334,9 +331,6 @@ namespace SabreTools.Serialization /// private static Rom ConvertFromInternalModel(Models.Internal.Rom item) { - if (item == null) - return null; - var rom = new Rom { Name = item.ReadString(Models.Internal.Rom.NameKey),