Beispiel #1
0
        public void read(FileData f)
        {
            f.Endian = Endian;
            if (f.size() < 4)
            {
                return;
            }

            f.seek(4);
            unknown    = f.readUInt();
            frameCount = f.readUInt();
            startFrame = f.readUInt();
            endFrame   = f.readUInt();
            frameRate  = f.readUInt();
            int matCount  = f.readInt();
            int matOffset = f.readInt();
            int visCount  = f.readInt();
            int visOffset = f.readInt();
            int returnPos;

            f.seek(matOffset);
            for (int i = 0; i < matCount; i++)
            {
                returnPos = f.pos() + 4;
                f.seek(f.readInt());
                MatEntry tempMatEntry = new MatEntry();
                tempMatEntry.read(f);
                matEntries.Add(tempMatEntry);
                f.seek(returnPos);
            }
            f.seek(visOffset);
            for (int i = 0; i < visCount; i++)
            {
                returnPos = f.pos() + 4;
                f.seek(f.readInt());
                VisEntry tempVisEntry = new VisEntry();
                tempVisEntry.read(f);
                visEntries.Add(tempVisEntry);
                f.seek(returnPos);
            }
        }
Beispiel #2
0
        public void read(FileData f)
        {
            f.Endian = Endian;
            if (f.size() < 4)
            {
                throw new EndOfStreamException("Blank/Broken MTA");
            }
            f.seek(4);
            unknown   = (uint)f.readInt();
            numFrames = (uint)f.readInt();
            f.skip(8);
            frameRate = (uint)f.readInt();
            int matCount  = f.readInt();
            int matOffset = f.readInt();
            int visCount  = f.readInt();
            int visOffset = f.readInt();
            int returnPos;

            f.seek(matOffset);
            for (int i = 0; i < matCount; i++)
            {
                returnPos = f.pos() + 4;
                f.seek(f.readInt());
                MatEntry tempMatEntry = new MatEntry();
                tempMatEntry.read(f);
                matEntries.Add(tempMatEntry);
                f.seek(returnPos);
            }
            f.seek(visOffset);
            for (int i = 0; i < visCount; i++)
            {
                returnPos = f.pos() + 4;
                f.seek(f.readInt());
                VisEntry tempVisEntry = new VisEntry();
                tempVisEntry.read(f);
                visEntries.Add(tempVisEntry);
                f.seek(returnPos);
            }
        }