public Wad(string path) { using (var stream = new FileStream(path, FileMode.Open)) { byte[] headerBlock = stream.ReadExact(4); Type = TypeFromBytes(headerBlock); int lumpCount = stream.ReadInt32(); int infoTableOffset = stream.ReadInt32(); stream.Seek(infoTableOffset, SeekOrigin.Begin); var entries = new DirEntry[lumpCount]; for (int i = 0; i < lumpCount; ++i) { entries[i].Address = stream.ReadInt32(); entries[i].Size = stream.ReadInt32(); entries[i].Name = stream.ReadCString(8); } mLumps = new List <Lump>(lumpCount); foreach (var entry in entries) { stream.Seek(entry.Address, SeekOrigin.Begin); mLumps.Add(new Lump(entry.Name, stream.ReadExact(entry.Size))); } } }
/// <summary> /// Constructor for a WAD. /// </summary> /// <param name="type">The WAD's type.</param> public Wad(WadType type) { this.Type = type; this.Lumps = new List <Lump>(); }
/// <summary> /// Constructor for a WAD. /// </summary> /// <param name="type">The type of WAD.</param> public WadFile(WadType type) { Type = type; Elements = new List <IElement>(); }
public WadHeader(WadType type, uint directoriesCount, uint firstDirectoryOffset) { Type = type; DirectoriesCount = directoriesCount; FirstDirectoryOffset = firstDirectoryOffset; }
public WadHeader(WadType type, uint directories, uint direactoryStart) { Type = type; Directories = directories; DirectoryPointer = direactoryStart; }