Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
wcabus committed Feb 4, 2024
1 parent b260db6 commit 560cff8
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 65 deletions.
68 changes: 5 additions & 63 deletions src/DoomSharp.Core/Data/WadFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,64 +29,6 @@ public static FileLump ReadFromWadData(BinaryReader reader)
}
}

public static WadFile? LoadFromFile(string file)
{
var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None);
var br = new BinaryReader(fs, Encoding.ASCII, false);

DoomGame.Console.WriteLine($" adding {file}");

if (string.Equals(Path.GetExtension(file), ".wad", StringComparison.OrdinalIgnoreCase))
{
// WAD file
return LoadWad(file, br);
}
else
{
// Single lump file
// TODO
}

return null;
}

private static WadFile? LoadWad(string file, BinaryReader reader)
{
var header = new WadInfo
{
Identification = Encoding.ASCII.GetString(reader.ReadBytes(4)).TrimEnd('\0'),
NumLumps = reader.ReadInt32(),
InfoTableOfs = reader.ReadInt32()
};

var wadFile = new WadFile(reader)
{
Header = header
};

if (string.Equals(wadFile.Header.Identification, "IWAD", StringComparison.Ordinal) == false)
{
if (string.Equals(wadFile.Header.Identification, "PWAD", StringComparison.Ordinal) == false)
{
DoomGame.Error($"Wad file {file} doesn't have IWAD or PWAD id");
return null;
}
}

var fileInfo = new List<WadLump>(wadFile.LumpCount);

reader.BaseStream.Seek(wadFile.Header.InfoTableOfs, SeekOrigin.Begin);
for (var i = 0; i < wadFile.LumpCount; i++)
{
var lump = FileLump.ReadFromWadData(reader);
fileInfo.Add(new WadLump(wadFile, lump));
}

wadFile.Lumps = fileInfo;

return wadFile;
}

private readonly BinaryReader _reader;

public WadFile(BinaryReader reader)
Expand All @@ -98,14 +40,14 @@ public WadFile(BinaryReader reader)
public ICollection<WadLump> Lumps { get; set; } = Array.Empty<WadLump>();
public int LumpCount => Header.NumLumps;

public void Dispose()
{
_reader.Dispose();
}

public void ReadLumpData(WadLump destination)
{
_reader.BaseStream.Seek(destination.Lump.FilePos, SeekOrigin.Begin);
destination.Data = _reader.ReadBytes(destination.Lump.Size);
}

public void Dispose()
{
_reader.Dispose();
}
}
2 changes: 1 addition & 1 deletion src/DoomSharp.Maui/Data/WadStreamProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace DoomSharp.Maui.Data
{
internal sealed class WadStreamProvider : IWadStreamProvider
{
public async Task<WadFile> LoadFromFile(string file)
public async Task<WadFile?> LoadFromFile(string file)
{
Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync(file);
BinaryReader reader;
Expand Down
2 changes: 1 addition & 1 deletion src/DoomSharp.Windows/Data/WadStreamProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ internal sealed class WadStreamProvider : IWadStreamProvider
// TODO
}

return null;
return Task.FromResult<WadFile?>(null);
}

private static WadFile? LoadWad(string file, BinaryReader reader)
Expand Down

0 comments on commit 560cff8

Please sign in to comment.