diff --git a/BurnOutSharp.Wrappers/NewExecutable.cs b/BurnOutSharp.Wrappers/NewExecutable.cs index 9d474d09..6a74e1ab 100644 --- a/BurnOutSharp.Wrappers/NewExecutable.cs +++ b/BurnOutSharp.Wrappers/NewExecutable.cs @@ -1,4 +1,5 @@ -using System.IO; +using System.Collections.Generic; +using System.IO; namespace BurnOutSharp.Wrappers { @@ -75,7 +76,127 @@ namespace BurnOutSharp.Wrappers #endregion - // TODO: Determine what properties can be passed through + #region Header + + /// + public byte[] Magic => _executable.Header.Magic; + + /// + public byte LinkerVersion => _executable.Header.LinkerVersion; + + /// + public byte LinkerRevision => _executable.Header.LinkerRevision; + + /// + public ushort EntryTableOffset => _executable.Header.EntryTableOffset; + + /// + public ushort EntryTableSize => _executable.Header.EntryTableSize; + + /// + public uint CrcChecksum => _executable.Header.CrcChecksum; + + /// + public Models.NewExecutable.HeaderFlag FlagWord => _executable.Header.FlagWord; + + /// + public ushort AutomaticDataSegmentNumber => _executable.Header.AutomaticDataSegmentNumber; + + /// + public ushort InitialHeapAlloc => _executable.Header.InitialHeapAlloc; + + /// + public ushort InitialStackAlloc => _executable.Header.InitialStackAlloc; + + /// + public uint InitialCSIPSetting => _executable.Header.InitialCSIPSetting; + + /// + public uint InitialSSSPSetting => _executable.Header.InitialSSSPSetting; + + /// + public ushort FileSegmentCount => _executable.Header.FileSegmentCount; + + /// + public ushort ModuleReferenceTableSize => _executable.Header.ModuleReferenceTableSize; + + /// + public ushort NonResidentNameTableSize => _executable.Header.NonResidentNameTableSize; + + /// + public ushort SegmentTableOffset => _executable.Header.SegmentTableOffset; + + /// + public ushort ResourceTableOffset => _executable.Header.ResourceTableOffset; + + /// + public ushort ResidentNameTableOffset => _executable.Header.ResidentNameTableOffset; + + /// + public ushort ModuleReferenceTableOffset => _executable.Header.ModuleReferenceTableOffset; + + /// + public ushort ImportedNamesTableOffset => _executable.Header.ImportedNamesTableOffset; + + /// + public uint NonResidentNamesTableOffset => _executable.Header.NonResidentNamesTableOffset; + + /// + public ushort MovableEntriesCount => _executable.Header.MovableEntriesCount; + + /// + public ushort SegmentAlignmentShiftCount => _executable.Header.SegmentAlignmentShiftCount; + + /// + public ushort ResourceEntriesCount => _executable.Header.ResourceEntriesCount; + + /// + public Models.NewExecutable.OperatingSystem TargetOperatingSystem => _executable.Header.TargetOperatingSystem; + + /// + public Models.NewExecutable.OS2Flag AdditionalFlags => _executable.Header.AdditionalFlags; + + /// + public ushort ReturnThunkOffset => _executable.Header.ReturnThunkOffset; + + /// + public ushort SegmentReferenceThunkOffset => _executable.Header.SegmentReferenceThunkOffset; + + /// + public ushort MinCodeSwapAreaSize => _executable.Header.MinCodeSwapAreaSize; + + /// + public byte WindowsSDKRevision => _executable.Header.WindowsSDKRevision; + + /// + public byte WindowsSDKVersion => _executable.Header.WindowsSDKVersion; + + #endregion + + #region Tables + + /// + public Models.NewExecutable.SegmentTableEntry[] SegmentTable => _executable.SegmentTable; + + /// + public Models.NewExecutable.ResourceTable ResourceTable => _executable.ResourceTable; + + /// + public Models.NewExecutable.ResidentNameTableEntry[] ResidentNameTable => _executable.ResidentNameTable; + + /// + public Models.NewExecutable.ModuleReferenceTableEntry[] ModuleReferenceTable => _executable.ModuleReferenceTable; + + /// + public Dictionary ImportedNameTable => _executable.ImportedNameTable; + + /// + public Models.NewExecutable.EntryTableBundle[] EntryTable => _executable.EntryTable; + + /// + public Models.NewExecutable.NonResidentNameTableEntry[] NonResidentNameTable => _executable.NonResidentNameTable; + + #endregion #endregion