diff --git a/SabreTools.Serialization/Printer.cs b/SabreTools.Serialization/Printer.cs
index 9b366cf9..d0f6fbbd 100644
--- a/SabreTools.Serialization/Printer.cs
+++ b/SabreTools.Serialization/Printer.cs
@@ -73,7 +73,7 @@ namespace SabreTools.Serialization
Wrapper.WAD3 item => item.PrettyPrint(),
Wrapper.WiseOverlayHeader item => item.PrettyPrint(),
Wrapper.WiseScript item => item.PrettyPrint(),
- // TODO: Add implementation for WiseSectionHeader
+ Wrapper.WiseSectionHeader item => item.PrettyPrint(),
Wrapper.XeMID item => item.PrettyPrint(),
Wrapper.XMID item => item.PrettyPrint(),
Wrapper.XZP item => item.PrettyPrint(),
@@ -128,7 +128,7 @@ namespace SabreTools.Serialization
Wrapper.WAD3 item => item.ExportJSON(),
Wrapper.WiseOverlayHeader item => item.ExportJSON(),
Wrapper.WiseScript item => item.ExportJSON(),
- // TODO: Add implementation for WiseSectionHeader
+ Wrapper.WiseSectionHeader item => item.ExportJSON(),
Wrapper.XeMID item => item.ExportJSON(),
Wrapper.XMID item => item.ExportJSON(),
Wrapper.XZP item => item.ExportJSON(),
@@ -529,6 +529,16 @@ namespace SabreTools.Serialization
return builder;
}
+ ///
+ /// Export the item information as pretty-printed text
+ ///
+ private static StringBuilder PrettyPrint(this Wrapper.WiseSectionHeader item)
+ {
+ var builder = new StringBuilder();
+ WiseSectionHeader.Print(builder, item.Model);
+ return builder;
+ }
+
///
/// Export the item information as pretty-printed text
///
diff --git a/SabreTools.Serialization/Printers/WiseSectionHeader.cs b/SabreTools.Serialization/Printers/WiseSectionHeader.cs
new file mode 100644
index 00000000..bc56fe52
--- /dev/null
+++ b/SabreTools.Serialization/Printers/WiseSectionHeader.cs
@@ -0,0 +1,60 @@
+using System.Text;
+using SabreTools.Models.WiseInstaller;
+using SabreTools.Serialization.Interfaces;
+
+namespace SabreTools.Serialization.Printers
+{
+ public class WiseSectionHeader : IPrinter
+ {
+ ///
+ public void PrintInformation(StringBuilder builder, SectionHeader model)
+ => Print(builder, model);
+
+ public static void Print(StringBuilder builder, SectionHeader header)
+ {
+ builder.AppendLine("Wise Section Header Information:");
+ builder.AppendLine("-------------------------");
+ builder.AppendLine(header.UnknownDataSize, "Unknown data size");
+ builder.AppendLine(header.SecondExecutableFileEntryLength, "Second executable file entry length");
+ builder.AppendLine(header.UnknownValue2, "Unknown value 2");
+ builder.AppendLine(header.UnknownValue3, "Unknown value 3");
+ builder.AppendLine(header.UnknownValue4, "Unknown value 4");
+ builder.AppendLine(header.FirstExecutableFileEntryLength, "First executable file entry length");
+ builder.AppendLine(header.MsiFileEntryLength, "MSI file entry length");
+ builder.AppendLine(header.UnknownValue7, "Unknown value 7");
+ builder.AppendLine(header.UnknownValue8, "Unknown value 8");
+ builder.AppendLine(header.ThirdExecutableFileEntryLength, "Third executable file entry length");
+ builder.AppendLine(header.UnknownValue10, "Unknown value 10");
+ builder.AppendLine(header.UnknownValue11, "Unknown value 11");
+ builder.AppendLine(header.UnknownValue12, "Unknown value 12");
+ builder.AppendLine(header.UnknownValue13, "Unknown value 13");
+ builder.AppendLine(header.UnknownValue14, "Unknown value 14");
+ builder.AppendLine(header.UnknownValue15, "Unknown value 15");
+ builder.AppendLine(header.UnknownValue16, "Unknown value 16");
+ builder.AppendLine(header.UnknownValue17, "Unknown value 17");
+ builder.AppendLine(header.UnknownValue18, "Unknown value 18");
+ builder.AppendLine(header.Version, "Version");
+ builder.AppendLine(header.TmpString, "TMP string");
+ builder.AppendLine(header.GuidString, "GUID string");
+ builder.AppendLine(header.NonWiseVersion, "Non-Wise version");
+ builder.AppendLine(header.PreFontValue, "Pre-font value");
+ builder.AppendLine(header.FontSize, "Font size");
+ builder.AppendLine(header.PreStringValues, "Pre-string values");
+ builder.AppendLine();
+ builder.AppendLine("Strings:");
+ if (header.Strings == null || header.Strings.Length == 0)
+ {
+ builder.AppendLine(" No strings");
+ }
+ else
+ {
+ for (int i = 0; i < header.Strings.Length; i++)
+ {
+ var entry = header.Strings[i];
+ builder.AppendLine($" String {i}: {entry}");
+ }
+ }
+ builder.AppendLine();
+ }
+ }
+}
\ No newline at end of file