Distinguish between classic and crc file hashes. Fixes #3306, #3328.

This commit is contained in:
Paul Chote
2013-05-24 20:15:36 +12:00
parent d9fab238d5
commit 0dd8d7f7b6
10 changed files with 148 additions and 102 deletions

View File

@@ -80,7 +80,7 @@ namespace OpenRA.FileFormats
var NameLength = reader.ReadByte();
var FileName = new String(reader.ReadChars(NameLength));
var hash = PackageEntry.HashFilename(FileName);
var hash = PackageEntry.HashFilename(FileName, PackageHashType.Classic);
index.Add(hash, new PackageEntry(hash, AccumulatedData, CompressedSize));
filenames.Add(FileName);
AccumulatedData += CompressedSize;
@@ -104,14 +104,19 @@ namespace OpenRA.FileFormats
public Stream GetContent(string filename)
{
return GetContent(PackageEntry.HashFilename(filename));
return GetContent(PackageEntry.HashFilename(filename, PackageHashType.Classic));
}
public IEnumerable<uint> AllFileHashes()
public IEnumerable<uint> ClassicHashes()
{
return index.Keys;
}
public IEnumerable<uint> CrcHashes()
{
yield break;
}
public IEnumerable<string> AllFileNames()
{
return filenames;
@@ -119,7 +124,7 @@ namespace OpenRA.FileFormats
public bool Exists(string filename)
{
return index.ContainsKey(PackageEntry.HashFilename(filename));
return index.ContainsKey(PackageEntry.HashFilename(filename, PackageHashType.Classic));
}
public int Priority { get { return 2000 + priority; }}