private void loadTOCfile(string path)
{
FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
int memsize = (int)fileStream.Length;
memory = new byte[memsize];
int count;
int sum = 0;
while ((count = fileStream.Read(memory, sum, memsize - sum)) > 0) sum += count;
fileStream.Close();
if (memsize > 0)
{
content = new List<Inventory>();
Inventory temp = new Inventory();
MemoryStream myStream = new MemoryStream(memory);
if (myStream.ReadValueU32() == 0x3AB70C13)
{
myStream.Seek(8, SeekOrigin.Begin);
uint jumpSize = myStream.ReadValueU32();
myStream.Seek(jumpSize * 8, SeekOrigin.Current);
uint blockSize;
do
{
temp = new Inventory();
long position = myStream.Position;
uint value = myStream.ReadValueU32();
blockSize = value & 0xFFFF;
uint offset = (uint)myStream.Position;
uint fileSize = myStream.ReadValueU32();
myStream.Seek(20, SeekOrigin.Current);
string filePath = myStream.ReadStringZ();
myStream.Seek(position + blockSize, SeekOrigin.Begin);
temp.name = filePath;
temp.offset = offset;
temp.size = fileSize;
content.Add(temp);
} while (blockSize != 0);
}
myStream.Close();
}
}