Esempio n. 1
0
        TmpTDFrame[] ParseFrames(Stream s)
        {
            var start  = s.Position;
            var width  = s.ReadUInt16();
            var height = s.ReadUInt16();
            var size   = new Size(width, height);

            s.Position += 8;
            var imgStart = s.ReadUInt32();

            s.Position += 8;
            var indexEnd   = s.ReadInt32();
            var indexStart = s.ReadInt32();

            s.Position = indexStart;
            var count      = indexEnd - indexStart;
            var tiles      = new TmpTDFrame[count];
            var tilesIndex = 0;

            foreach (var b in s.ReadBytes(count))
            {
                if (b != 255)
                {
                    s.Position          = imgStart + b * width * height;
                    tiles[tilesIndex++] = new TmpTDFrame(s.ReadBytes(width * height), size);
                }
                else
                {
                    tiles[tilesIndex++] = new TmpTDFrame(null, size);
                }
            }

            s.Position = start;
            return(tiles);
        }
Esempio n. 2
0
        TmpTDFrame[] ParseFrames(Stream s)
        {
            var start = s.Position;
            var width = s.ReadUInt16();
            var height = s.ReadUInt16();
            var size = new Size(width, height);

            s.Position += 8;
            var imgStart = s.ReadUInt32();
            s.Position += 8;
            var indexEnd = s.ReadInt32();
            var indexStart = s.ReadInt32();

            s.Position = indexStart;
            var count = indexEnd - indexStart;
            var tiles = new TmpTDFrame[count];
            var tilesIndex = 0;
            foreach (var b in s.ReadBytes(count))
            {
                if (b != 255)
                {
                    s.Position = imgStart + b * width * height;
                    tiles[tilesIndex++] = new TmpTDFrame(s.ReadBytes(width * height), size);
                }
                else
                    tiles[tilesIndex++] = new TmpTDFrame(null, size);
            }

            s.Position = start;
            return tiles;
        }