public void ReadFileNames()
{
FileEntryStruct e;
int f = -1;
for (int i = 0; i < Header.FileCount; i++)
{
e = Files[i];
e.FileName = "UNKNOWN";
Files[i] = e;
if (CompareByteArray(Files[i].Hash, TOCHash))
f = i;
}
if (f == -1)
return;
MemoryStream m = DecompressEntry(f);
m.Seek(0, 0);
StreamReader r = new StreamReader(m);
while (!r.EndOfStream)
{
string line = r.ReadLine();
byte[] hash = ComputeHash(line);
f = -1;
for (int i = 0; i < Header.FileCount; i++)
if (CompareByteArray(Files[i].Hash, hash))
f = i;
if (f != -1)
{
e = Files[f];
e.FileName = line;
Files[f] = e;
}
}
}