diff --git a/SabreTools.Serialization/Models/SGA/Archive.cs b/SabreTools.Serialization/Models/SGA/Archive.cs
index 5dfb634c..4b444ae9 100644
--- a/SabreTools.Serialization/Models/SGA/Archive.cs
+++ b/SabreTools.Serialization/Models/SGA/Archive.cs
@@ -9,11 +9,11 @@ namespace SabreTools.Data.Models.SGA
///
///Header data
///
- public Header? Header { get; set; }
+ public Header Header { get; set; }
///
/// Directory data
///
- public Directory? Directory { get; set; }
+ public Directory Directory { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/SGA/Constants.cs b/SabreTools.Serialization/Models/SGA/Constants.cs
index 2a2579e5..c6f35d17 100644
--- a/SabreTools.Serialization/Models/SGA/Constants.cs
+++ b/SabreTools.Serialization/Models/SGA/Constants.cs
@@ -13,4 +13,4 @@ namespace SabreTools.Data.Models.SGA
///
public const int HL_SGA_CHECKSUM_LENGTH = 0x00008000;
}
-}
\ No newline at end of file
+}
diff --git a/SabreTools.Serialization/Models/SGA/Directory.cs b/SabreTools.Serialization/Models/SGA/Directory.cs
index c4dae37e..ca1935ae 100644
--- a/SabreTools.Serialization/Models/SGA/Directory.cs
+++ b/SabreTools.Serialization/Models/SGA/Directory.cs
@@ -8,7 +8,7 @@ namespace SabreTools.Data.Models.SGA
///
/// Source SGA file
///
- public Archive? File { get; set; }
+ public Archive File { get; set; }
}
///
@@ -25,26 +25,26 @@ namespace SabreTools.Data.Models.SGA
///
/// Directory header data
///
- public TDirectoryHeader? DirectoryHeader { get; set; }
+ public TDirectoryHeader DirectoryHeader { get; set; }
///
/// Sections data
///
- public TSection[]? Sections { get; set; }
+ public TSection[] Sections { get; set; }
///
/// Folders data
///
- public TFolder[]? Folders { get; set; }
+ public TFolder[] Folders { get; set; }
///
/// Files data
///
- public TFile[]? Files { get; set; }
+ public TFile[] Files { get; set; }
///
/// String table data
///
- public Dictionary? StringTable { get; set; }
+ public Dictionary StringTable { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/SGA/DirectoryHeader.cs b/SabreTools.Serialization/Models/SGA/DirectoryHeader.cs
index ad1a3510..a19914e3 100644
--- a/SabreTools.Serialization/Models/SGA/DirectoryHeader.cs
+++ b/SabreTools.Serialization/Models/SGA/DirectoryHeader.cs
@@ -7,22 +7,22 @@ namespace SabreTools.Data.Models.SGA
}
///
- public abstract class DirectoryHeader
+ public abstract class DirectoryHeader where T : notnull
{
public uint SectionOffset { get; set; }
- public T? SectionCount { get; set; }
+ public T SectionCount { get; set; }
public uint FolderOffset { get; set; }
- public T? FolderCount { get; set; }
+ public T FolderCount { get; set; }
public uint FileOffset { get; set; }
- public T? FileCount { get; set; }
+ public T FileCount { get; set; }
public uint StringTableOffset { get; set; }
- public T? StringTableCount { get; set; }
+ public T StringTableCount { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/SGA/File.cs b/SabreTools.Serialization/Models/SGA/File.cs
index d9f89b2d..b7aa0b5d 100644
--- a/SabreTools.Serialization/Models/SGA/File.cs
+++ b/SabreTools.Serialization/Models/SGA/File.cs
@@ -5,7 +5,7 @@ namespace SabreTools.Data.Models.SGA
{
public uint NameOffset { get; set; }
- public string? Name { get; set; }
+ public string Name { get; set; }
public uint Offset { get; set; }
diff --git a/SabreTools.Serialization/Models/SGA/FileHeader.cs b/SabreTools.Serialization/Models/SGA/FileHeader.cs
index e69dfb34..9adb7dec 100644
--- a/SabreTools.Serialization/Models/SGA/FileHeader.cs
+++ b/SabreTools.Serialization/Models/SGA/FileHeader.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.SGA
///
public sealed class FileHeader
{
- public string? Name { get; set; }
+ public string Name { get; set; }
public uint CRC32 { get; set; }
}
diff --git a/SabreTools.Serialization/Models/SGA/Folder.cs b/SabreTools.Serialization/Models/SGA/Folder.cs
index 7596ba25..57dd5453 100644
--- a/SabreTools.Serialization/Models/SGA/Folder.cs
+++ b/SabreTools.Serialization/Models/SGA/Folder.cs
@@ -9,14 +9,14 @@ namespace SabreTools.Data.Models.SGA
}
///
- public abstract class Folder : Folder
+ public abstract class Folder : Folder where T : notnull
{
- public T? FolderStartIndex { get; set; }
+ public T FolderStartIndex { get; set; }
- public T? FolderEndIndex { get; set; }
+ public T FolderEndIndex { get; set; }
- public T? FileStartIndex { get; set; }
+ public T FileStartIndex { get; set; }
- public T? FileEndIndex { get; set; }
+ public T FileEndIndex { get; set; }
}
}
diff --git a/SabreTools.Serialization/Models/SGA/Header.cs b/SabreTools.Serialization/Models/SGA/Header.cs
index 056068eb..4cb48900 100644
--- a/SabreTools.Serialization/Models/SGA/Header.cs
+++ b/SabreTools.Serialization/Models/SGA/Header.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.SGA
///
public abstract class Header
{
- public string? Signature { get; set; }
+ public string Signature { get; set; }
public ushort MajorVersion { get; set; }
diff --git a/SabreTools.Serialization/Models/SGA/Header4.cs b/SabreTools.Serialization/Models/SGA/Header4.cs
index 71c79d19..5a48921b 100644
--- a/SabreTools.Serialization/Models/SGA/Header4.cs
+++ b/SabreTools.Serialization/Models/SGA/Header4.cs
@@ -5,7 +5,7 @@ namespace SabreTools.Data.Models.SGA
{
public byte[] FileMD5 { get; set; } = new byte[0x10];
- public string? Name { get; set; }
+ public string Name { get; set; }
public byte[] HeaderMD5 { get; set; } = new byte[0x10];
diff --git a/SabreTools.Serialization/Models/SGA/Header6.cs b/SabreTools.Serialization/Models/SGA/Header6.cs
index 9fb2e717..3df2dec5 100644
--- a/SabreTools.Serialization/Models/SGA/Header6.cs
+++ b/SabreTools.Serialization/Models/SGA/Header6.cs
@@ -3,7 +3,7 @@ namespace SabreTools.Data.Models.SGA
///
public sealed class Header6 : Header
{
- public string? Name { get; set; }
+ public string Name { get; set; }
public uint HeaderLength { get; set; }
diff --git a/SabreTools.Serialization/Models/SGA/Section.cs b/SabreTools.Serialization/Models/SGA/Section.cs
index 6a9de629..a54a8162 100644
--- a/SabreTools.Serialization/Models/SGA/Section.cs
+++ b/SabreTools.Serialization/Models/SGA/Section.cs
@@ -3,22 +3,22 @@ namespace SabreTools.Data.Models.SGA
///
public abstract class Section
{
- public string? Alias { get; set; }
+ public string Alias { get; set; }
- public string? Name { get; set; }
+ public string Name { get; set; }
}
///
- public abstract class Section : Section
+ public abstract class Section : Section where T : notnull
{
- public T? FolderStartIndex { get; set; }
+ public T FolderStartIndex { get; set; }
- public T? FolderEndIndex { get; set; }
+ public T FolderEndIndex { get; set; }
- public T? FileStartIndex { get; set; }
+ public T FileStartIndex { get; set; }
- public T? FileEndIndex { get; set; }
+ public T FileEndIndex { get; set; }
- public T? FolderRootIndex { get; set; }
+ public T FolderRootIndex { get; set; }
}
}
diff --git a/SabreTools.Serialization/Wrappers/SGA.Printing.cs b/SabreTools.Serialization/Wrappers/SGA.Printing.cs
index eb5ae294..573310bd 100644
--- a/SabreTools.Serialization/Wrappers/SGA.Printing.cs
+++ b/SabreTools.Serialization/Wrappers/SGA.Printing.cs
@@ -26,17 +26,10 @@ namespace SabreTools.Serialization.Wrappers
// TODO: Should we print the string table?
}
- private static void Print(StringBuilder builder, Header? header)
+ private static void Print(StringBuilder builder, Header header)
{
builder.AppendLine(" Header Information:");
builder.AppendLine(" -------------------------");
- if (header == null)
- {
- builder.AppendLine(" No header");
- builder.AppendLine();
- return;
- }
-
builder.AppendLine(header.Signature, " Signature");
builder.AppendLine(header.MajorVersion, " Major version");
builder.AppendLine(header.MinorVersion, " Minor version");
@@ -62,17 +55,10 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, Directory? directory)
+ private static void Print(StringBuilder builder, Directory directory)
{
builder.AppendLine(" Directory Information:");
builder.AppendLine(" -------------------------");
- if (directory == null)
- {
- builder.AppendLine(" No directory");
- builder.AppendLine();
- return;
- }
-
switch (directory)
{
case Directory4 directory4:
@@ -111,17 +97,10 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, DirectoryHeader4? header)
+ private static void Print(StringBuilder builder, DirectoryHeader4 header)
{
builder.AppendLine(" Directory Header Information:");
builder.AppendLine(" -------------------------");
- if (header == null)
- {
- builder.AppendLine(" No directory header");
- builder.AppendLine();
- return;
- }
-
builder.AppendLine(header.SectionOffset, " Section offset");
builder.AppendLine(header.SectionCount, " Section count");
builder.AppendLine(header.FolderOffset, " Folder offset");
@@ -133,17 +112,10 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, DirectoryHeader5? header)
+ private static void Print(StringBuilder builder, DirectoryHeader5 header)
{
builder.AppendLine(" Directory Header Information:");
builder.AppendLine(" -------------------------");
- if (header == null)
- {
- builder.AppendLine(" No directory header");
- builder.AppendLine();
- return;
- }
-
builder.AppendLine(header.SectionOffset, " Section offset");
builder.AppendLine(header.SectionCount, " Section count");
builder.AppendLine(header.FolderOffset, " Folder offset");
@@ -155,17 +127,10 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, DirectoryHeader7? header)
+ private static void Print(StringBuilder builder, DirectoryHeader7 header)
{
builder.AppendLine(" Directory Header Information:");
builder.AppendLine(" -------------------------");
- if (header == null)
- {
- builder.AppendLine(" No directory header");
- builder.AppendLine();
- return;
- }
-
builder.AppendLine(header.SectionOffset, " Section offset");
builder.AppendLine(header.SectionCount, " Section count");
builder.AppendLine(header.FolderOffset, " Folder offset");
@@ -179,11 +144,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, Section4[]? sections)
+ private static void Print(StringBuilder builder, Section4[] sections)
{
builder.AppendLine(" Sections Information:");
builder.AppendLine(" -------------------------");
- if (sections == null || sections.Length == 0)
+ if (sections.Length == 0)
{
builder.AppendLine(" No sections");
builder.AppendLine();
@@ -207,11 +172,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, Section5[]? sections)
+ private static void Print(StringBuilder builder, Section5[] sections)
{
builder.AppendLine(" Sections Information:");
builder.AppendLine(" -------------------------");
- if (sections == null || sections.Length == 0)
+ if (sections.Length == 0)
{
builder.AppendLine(" No sections");
builder.AppendLine();
@@ -235,11 +200,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, Folder4[]? folders)
+ private static void Print(StringBuilder builder, Folder4[] folders)
{
builder.AppendLine(" Folders Information:");
builder.AppendLine(" -------------------------");
- if (folders == null || folders.Length == 0)
+ if (folders.Length == 0)
{
builder.AppendLine(" No folders");
builder.AppendLine();
@@ -262,11 +227,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, Folder5[]? folders)
+ private static void Print(StringBuilder builder, Folder5[] folders)
{
builder.AppendLine(" Folders Information:");
builder.AppendLine(" -------------------------");
- if (folders == null || folders.Length == 0)
+ if (folders.Length == 0)
{
builder.AppendLine(" No folders");
builder.AppendLine();
@@ -289,11 +254,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, File4[]? files)
+ private static void Print(StringBuilder builder, File4[] files)
{
builder.AppendLine(" Files Information:");
builder.AppendLine(" -------------------------");
- if (files == null || files.Length == 0)
+ if (files.Length == 0)
{
builder.AppendLine(" No files");
builder.AppendLine();
@@ -318,11 +283,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, File6[]? files)
+ private static void Print(StringBuilder builder, File6[] files)
{
builder.AppendLine(" Files Information:");
builder.AppendLine(" -------------------------");
- if (files == null || files.Length == 0)
+ if (files.Length == 0)
{
builder.AppendLine(" No files");
builder.AppendLine();
@@ -348,11 +313,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
- private static void Print(StringBuilder builder, File7[]? files)
+ private static void Print(StringBuilder builder, File7[] files)
{
builder.AppendLine(" Files Information:");
builder.AppendLine(" -------------------------");
- if (files == null || files.Length == 0)
+ if (files.Length == 0)
{
builder.AppendLine(" No files");
builder.AppendLine();
diff --git a/SabreTools.Serialization/Wrappers/SGA.cs b/SabreTools.Serialization/Wrappers/SGA.cs
index 2004ecfe..4fc26be5 100644
--- a/SabreTools.Serialization/Wrappers/SGA.cs
+++ b/SabreTools.Serialization/Wrappers/SGA.cs
@@ -18,7 +18,7 @@ namespace SabreTools.Serialization.Wrappers
///
/// Directory data
///
- public Data.Models.SGA.Directory? Directory => Model.Directory;
+ public Data.Models.SGA.Directory Directory => Model.Directory;
///
/// Number of files in the directory
@@ -29,10 +29,10 @@ namespace SabreTools.Serialization.Wrappers
{
return Directory switch
{
- Directory4 d4 => d4.Files?.Length ?? 0,
- Directory5 d5 => d5.Files?.Length ?? 0,
- Directory6 d6 => d6.Files?.Length ?? 0,
- Directory7 d7 => d7.Files?.Length ?? 0,
+ Directory4 d4 => d4.Files.Length,
+ Directory5 d5 => d5.Files.Length,
+ Directory6 d6 => d6.Files.Length,
+ Directory7 d7 => d7.Files.Length,
_ => 0,
};
}
@@ -220,10 +220,10 @@ namespace SabreTools.Serialization.Wrappers
// Get the folder
Folder? folder = Directory switch
{
- Directory4 d4 => Array.Find(d4.Folders ?? [], f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
- Directory5 d5 => Array.Find(d5.Folders ?? [], f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
- Directory6 d6 => Array.Find(d6.Folders ?? [], f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
- Directory7 d7 => Array.Find(d7.Folders ?? [], f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
+ Directory4 d4 => Array.Find(d4.Folders, f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
+ Directory5 d5 => Array.Find(d5.Folders, f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
+ Directory6 d6 => Array.Find(d6.Folders, f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
+ Directory7 d7 => Array.Find(d7.Folders, f => f != null && index >= f.FileStartIndex && index <= f.FileEndIndex),
_ => default,
};