private void AddFile(string pkg, D3RootEntry e)
{
string name;
switch (e.Type)
{
case 0:
SNOInfo sno1 = tocParser.GetSNO(e.SNO);
name = string.Format("{0}\\{1}{2}", sno1.GroupId, sno1.Name, sno1.Ext);
break;
case 1:
SNOInfo sno2 = tocParser.GetSNO(e.SNO);
name = string.Format("{0}\\{1}\\{2:D4}", sno2.GroupId, sno2.Name, e.FileIndex);
string ext = pkgParser.GetExtension(name);
if (ext != null)
{
name += ext;
}
else
{
CountUnknown++;
name += ".xxx";
}
break;
case 2:
name = e.Name;
break;
default:
name = "Unknown";
break;
}
RootEntry entry = new RootEntry();
entry.MD5 = e.MD5;
LocaleFlags locale;
entry.Block = new RootBlock();
if (Enum.TryParse(pkg, out locale))
{
entry.Block.LocaleFlags = locale;
}
else
{
entry.Block.LocaleFlags = LocaleFlags.All;
}
ulong fileHash = Hasher.ComputeHash(name);
CASCFile.FileNames[fileHash] = name;
RootData.Add(fileHash, entry);
}