internal TextureArchive(AssetManager manager, BinaryReader reader, string name)
: base(manager, name)
{
ByteOrder = ByteOrder.LittleEndian;
reader.RequireMagic(Magic);
var totalSize = reader.ReadInt32();
var count = reader.ReadInt32();
ByteOrder = ByteOrder.LittleEndian;
int code = reader.ReadInt32();
if (code == 0x20302) {
totalSize = totalSize.ReverseBytes();
count = count.ReverseBytes();
ByteOrder = ByteOrder.BigEndian;
Platform = DSPlatform.PS3;
} else if(code == 0x02030200) { // BigEndianBinaryReader, PS3
Platform = DSPlatform.PS3;
} else if (code != 0x20300)
throw new InvalidDataException();
for (int index = 0; index < count; index++)
new TextureArchiveRecord(this, reader, ByteOrder);
Stream = reader.BaseStream;
}