mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 14:55:11 +00:00
Use accelerator table type
This commit is contained in:
@@ -157,7 +157,7 @@ namespace SabreTools.Data.Extensions
|
||||
/// </summary>
|
||||
/// <param name="entry">Resource data entry to parse into an accelerator table resource</param>
|
||||
/// <returns>A filled accelerator table resource on success, null on error</returns>
|
||||
public static AcceleratorTableEntry[]? AsAcceleratorTableResource(this Models.PortableExecutable.Resource.DataEntry? entry)
|
||||
public static AcceleratorTable? AsAcceleratorTableResource(this Models.PortableExecutable.Resource.DataEntry? entry)
|
||||
{
|
||||
// If we have data that's invalid for this resource type, we can't do anything
|
||||
if (entry?.Data is null || entry.Data.Length % 8 != 0)
|
||||
@@ -170,12 +170,13 @@ namespace SabreTools.Data.Extensions
|
||||
int offset = 0;
|
||||
|
||||
// Create the output object
|
||||
var table = new AcceleratorTableEntry[count];
|
||||
var table = new AcceleratorTable();
|
||||
table.Entries = new AcceleratorTableEntry[count];
|
||||
|
||||
// Read in the table
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
table[i] = ParseAcceleratorTableEntry(entry.Data, ref offset);
|
||||
table.Entries[i] = ParseAcceleratorTableEntry(entry.Data, ref offset);
|
||||
}
|
||||
|
||||
return table;
|
||||
|
||||
@@ -1317,18 +1317,18 @@ namespace SabreTools.Serialization.Wrappers
|
||||
{
|
||||
string padding = new(' ', (level + 1) * 2);
|
||||
|
||||
AcceleratorTableEntry[]? acceleratorTable = null;
|
||||
AcceleratorTable? acceleratorTable = null;
|
||||
try { acceleratorTable = entry.AsAcceleratorTableResource(); } catch { }
|
||||
|
||||
if (acceleratorTable is null)
|
||||
if (acceleratorTable?.Entries is null)
|
||||
{
|
||||
builder.AppendLine($"{padding}Accelerator table resource found, but malformed");
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < acceleratorTable.Length; i++)
|
||||
for (int i = 0; i < acceleratorTable.Entries.Length; i++)
|
||||
{
|
||||
var acceleratorTableEntry = acceleratorTable[i];
|
||||
var acceleratorTableEntry = acceleratorTable.Entries[i];
|
||||
builder.AppendLine($"{padding}Accelerator Table Entry {i}:");
|
||||
builder.AppendLine($"{padding} Flags: {acceleratorTableEntry.Flags} (0x{acceleratorTableEntry.Flags:X})");
|
||||
builder.AppendLine(acceleratorTableEntry.Ansi, $"{padding} Ansi");
|
||||
|
||||
Reference in New Issue
Block a user