private void ChooseNewCache(string bioPath, int buffLength)
{
if (File.Exists(MEDirectories.MEDirectories.CachePath))
{
FileInfo cacheInfo = new FileInfo(MEDirectories.MEDirectories.CachePath);
string cacheName = Path.GetFileNameWithoutExtension(MEDirectories.MEDirectories.CachePath);
string cacheFileName = Path.GetFileName(MEDirectories.MEDirectories.CachePath);
string rootFolder = Path.GetDirectoryName(MEDirectories.MEDirectories.CachePath);
if (!cacheInfo.Exists)
MakeCache(cacheInfo.FullName, bioPath);
MoveCaches(rootFolder, cacheFileName);
properties["TextureFileCacheName"].Value.StringValue = cacheName;
arcName = cacheName;
FullArcPath = cacheInfo.FullName;
}
else
{
int i = 0;
string CustCache = "CustTextures";
while (i < 100)
{
FileInfo cacheInfo = new FileInfo(Path.Combine(bioPath, "CookedPC", CustCache + i + ".tfc"));
if (!cacheInfo.Exists)
{
MakeCache(cacheInfo.FullName, bioPath);
MoveCaches(bioPath + "\\CookedPC", CustCache + i + ".tfc");
properties["TextureFileCacheName"].Value.StringValue = CustCache + i;
arcName = CustCache + i;
FullArcPath = cacheInfo.FullName;
return;
}
else if (cacheInfo.Length + buffLength + ArcDataSize < 0x80000000)
{
MoveCaches(bioPath + "\\CookedPC", CustCache + i + ".tfc");
properties["TextureFileCacheName"].Value.StringValue = CustCache + i;
arcName = CustCache + i;
FullArcPath = cacheInfo.FullName;
return;
}
i++;
}
}
}