From af04e69bcbc957c645d6a45ec516366806a1d6a4 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 11 Apr 2020 16:09:53 -0700 Subject: [PATCH] Turn on nullable checks for parse project --- NHSE.Parsing/MSBT/LBL1.cs | 9 +++++++-- NHSE.Parsing/MSBT/MSBT.cs | 7 ++++--- NHSE.Parsing/MSBT/MSBTLabel.cs | 8 +++++++- NHSE.Parsing/MSBT/MSBTSection.cs | 8 +++++++- NHSE.Parsing/MSBT/MSBTTextString.cs | 5 ++++- NHSE.Parsing/MSBT/TXT2.cs | 9 +++++++-- NHSE.Parsing/NHSE.Parsing.csproj | 1 + 7 files changed, 37 insertions(+), 10 deletions(-) diff --git a/NHSE.Parsing/MSBT/LBL1.cs b/NHSE.Parsing/MSBT/LBL1.cs index 41a8142..21e94f2 100644 --- a/NHSE.Parsing/MSBT/LBL1.cs +++ b/NHSE.Parsing/MSBT/LBL1.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace NHSE.Parsing { @@ -8,5 +9,9 @@ public class LBL1 : MSBTSection public readonly List Groups = new List(); public readonly List Labels = new List(); + + public LBL1() : base(string.Empty, Array.Empty()) + { + } } -} \ No newline at end of file +} diff --git a/NHSE.Parsing/MSBT/MSBT.cs b/NHSE.Parsing/MSBT/MSBT.cs index 33e7b15..1976305 100644 --- a/NHSE.Parsing/MSBT/MSBT.cs +++ b/NHSE.Parsing/MSBT/MSBT.cs @@ -75,9 +75,10 @@ private void ReadLBL1(BinaryReaderX br) for (int i = 0; i < grp.NumberOfLabels; i++) { - MSBTLabel lbl = new MSBTLabel {Length = Convert.ToUInt32(br.ReadByte())}; - lbl.Name = br.ReadString((int)lbl.Length); - lbl.Index = br.ReadUInt32(); + var length = Convert.ToUInt32(br.ReadByte()); + var name = br.ReadString((int)length); + var index = br.ReadUInt32(); + var lbl = new MSBTLabel(name) {Index = index, Length = length}; LBL1.Labels.Add(lbl); } } diff --git a/NHSE.Parsing/MSBT/MSBTLabel.cs b/NHSE.Parsing/MSBT/MSBTLabel.cs index d800489..64e679d 100644 --- a/NHSE.Parsing/MSBT/MSBTLabel.cs +++ b/NHSE.Parsing/MSBT/MSBTLabel.cs @@ -5,9 +5,15 @@ namespace NHSE.Parsing public class MSBTLabel { public uint Length; - public string Name; + public readonly string Name; public MSBTTextString String; + public MSBTLabel(string name) + { + Name = name; + String = MSBTTextString.Empty; + } + public uint Index { get; set; } public override string ToString() => Length > 0 ? Name : (Index + 1).ToString(); public string ToString(Encoding encoding) => encoding.GetString(String.Value); diff --git a/NHSE.Parsing/MSBT/MSBTSection.cs b/NHSE.Parsing/MSBT/MSBTSection.cs index 734e73e..6722b50 100644 --- a/NHSE.Parsing/MSBT/MSBTSection.cs +++ b/NHSE.Parsing/MSBT/MSBTSection.cs @@ -5,5 +5,11 @@ public class MSBTSection public string Identifier; public uint SectionSize; // Begins after Unknown1 public byte[] Padding1; // Always 0x0000 0000 + + public MSBTSection(string identifier, byte[] padding) + { + Identifier = identifier; + Padding1 = padding; + } } -} \ No newline at end of file +} diff --git a/NHSE.Parsing/MSBT/MSBTTextString.cs b/NHSE.Parsing/MSBT/MSBTTextString.cs index 27fc8ce..dd78c94 100644 --- a/NHSE.Parsing/MSBT/MSBTTextString.cs +++ b/NHSE.Parsing/MSBT/MSBTTextString.cs @@ -1,4 +1,5 @@ -using System.Text; +using System; +using System.Text; namespace NHSE.Parsing { @@ -7,6 +8,8 @@ public class MSBTTextString public readonly byte[] Value; public readonly uint Index; + public static readonly MSBTTextString Empty = new MSBTTextString(Array.Empty(), 0); + public MSBTTextString(byte[] v, uint i) { Value = v; diff --git a/NHSE.Parsing/MSBT/TXT2.cs b/NHSE.Parsing/MSBT/TXT2.cs index 37de6b8..0e19041 100644 --- a/NHSE.Parsing/MSBT/TXT2.cs +++ b/NHSE.Parsing/MSBT/TXT2.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace NHSE.Parsing { @@ -7,5 +8,9 @@ public class TXT2 : MSBTSection public uint NumberOfStrings; public readonly List Strings = new List(); + + public TXT2() : base(string.Empty, Array.Empty()) + { + } } -} \ No newline at end of file +} diff --git a/NHSE.Parsing/NHSE.Parsing.csproj b/NHSE.Parsing/NHSE.Parsing.csproj index 4bb1325..a257363 100644 --- a/NHSE.Parsing/NHSE.Parsing.csproj +++ b/NHSE.Parsing/NHSE.Parsing.csproj @@ -3,6 +3,7 @@ netstandard2.0 8 + enable