diff --git a/SabreTools.Serialization/Deserializers/WiseSectionHeader.cs b/SabreTools.Serialization/Deserializers/WiseSectionHeader.cs
index 26d8bb9b..9bd2823c 100644
--- a/SabreTools.Serialization/Deserializers/WiseSectionHeader.cs
+++ b/SabreTools.Serialization/Deserializers/WiseSectionHeader.cs
@@ -58,7 +58,7 @@ namespace SabreTools.Serialization.Deserializers
/// Filled WiseSectionHeader on success, null on error
public static SectionHeader? ParseSectionHeader(Stream data, long initialOffset)
{
- var header = new SectionHeader();
+ var obj = new SectionHeader();
// Setup required variables
int wisOffset = -1;
@@ -76,83 +76,84 @@ namespace SabreTools.Serialization.Deserializers
int versionOffset = WiseSectionVersionOffsetDictionary[offset];
data.Seek(initialOffset + offset - versionOffset, 0);
- header.Version = data.ReadBytes(versionOffset);
+ obj.Version = data.ReadBytes(versionOffset);
wisOffset = offset;
+ break;
}
//Seek back to the beginning of the section
data.Seek(initialOffset, 0);
// Read common values
- header.UnknownDataSize = data.ReadUInt32LittleEndian();
- header.SecondExecutableFileEntryLength = data.ReadUInt32LittleEndian();
- header.UnknownValue2 = data.ReadUInt32LittleEndian();
- header.UnknownValue3 = data.ReadUInt32LittleEndian();
- header.UnknownValue4 = data.ReadUInt32LittleEndian();
- header.FirstExecutableFileEntryLength = data.ReadUInt32LittleEndian();
- header.MsiFileEntryLength = data.ReadUInt32LittleEndian();
+ obj.UnknownDataSize = data.ReadUInt32LittleEndian();
+ obj.SecondExecutableFileEntryLength = data.ReadUInt32LittleEndian();
+ obj.UnknownValue2 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue3 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue4 = data.ReadUInt32LittleEndian();
+ obj.FirstExecutableFileEntryLength = data.ReadUInt32LittleEndian();
+ obj.MsiFileEntryLength = data.ReadUInt32LittleEndian();
// If the reported header information is invalid
- if (header.Version == null)
- return header;
+ if (obj.Version == null)
+ return obj;
if (wisOffset < 0)
- return header;
+ return obj;
if (headerLength < 0)
- return header;
+ return obj;
if (headerLength > 6)
{
- header.UnknownValue7 = data.ReadUInt32LittleEndian();
- header.UnknownValue8 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue7 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue8 = data.ReadUInt32LittleEndian();
}
if (headerLength > 8)
{
- header.ThirdExecutableFileEntryLength = data.ReadUInt32LittleEndian();
- header.UnknownValue10 = data.ReadUInt32LittleEndian();
- header.UnknownValue11 = data.ReadUInt32LittleEndian();
- header.UnknownValue12 = data.ReadUInt32LittleEndian();
- header.UnknownValue13 = data.ReadUInt32LittleEndian();
- header.UnknownValue14 = data.ReadUInt32LittleEndian();
- header.UnknownValue15 = data.ReadUInt32LittleEndian();
- header.UnknownValue16 = data.ReadUInt32LittleEndian();
- header.UnknownValue17 = data.ReadUInt32LittleEndian();
+ obj.ThirdExecutableFileEntryLength = data.ReadUInt32LittleEndian();
+ obj.UnknownValue10 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue11 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue12 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue13 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue14 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue15 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue16 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue17 = data.ReadUInt32LittleEndian();
}
if (headerLength > 17)
{
- header.UnknownValue18 = data.ReadUInt32LittleEndian();
+ obj.UnknownValue18 = data.ReadUInt32LittleEndian();
}
// Seek to the WIS string offset
data.Seek(initialOffset + wisOffset, SeekOrigin.Begin);
// Read the consistent strings
- header.TmpString = data.ReadNullTerminatedAnsiString();
- header.GuidString = data.ReadNullTerminatedAnsiString();
+ obj.TmpString = data.ReadNullTerminatedAnsiString();
+ obj.GuidString = data.ReadNullTerminatedAnsiString();
// Parse the pre-string section
- int preStringBytesSize = GetPreStringBytesSize(data, header, wisOffset);
+ int preStringBytesSize = GetPreStringBytesSize(data, obj, wisOffset);
if (preStringBytesSize <= 0)
- return header;
+ return obj;
// Read the pre-string bytes
- header.PreStringValues = data.ReadBytes(preStringBytesSize);
+ obj.PreStringValues = data.ReadBytes(preStringBytesSize);
// Try to read the string arrays
// TODO: Count size of string section for later size verification
- byte[][]? stringArrays = ParseStringTable(data, header.PreStringValues);
+ byte[][]? stringArrays = ParseStringTable(data, obj.PreStringValues);
if (stringArrays == null)
- return header;
+ return obj;
// Set the string arrays
- header.Strings = stringArrays;
+ obj.Strings = stringArrays;
// Not sure what this data is. Might be a wisescript?
- if (header.UnknownDataSize != 0)
- data.Seek(header.UnknownDataSize, SeekOrigin.Current);
+ if (obj.UnknownDataSize != 0)
+ data.Seek(obj.UnknownDataSize, SeekOrigin.Current);
- return header;
+ return obj;
}
///