예제 #1
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16((ushort)(HasTransparency ? 1 : 0));

            archive.SerialiseUInt16((ushort)Mipmaps.Count);
            foreach (var mipmap in Mipmaps)
            {
                archive.SerialiseUInt16((ushort)mipmap.ImageDimensions.Height);
                archive.SerialiseUInt16((ushort)mipmap.ImageDimensionsMinusOne.Height);
                archive.SerialiseUInt16((ushort)mipmap.ImageDimensions.Width);
                archive.SerialiseUInt16((ushort)mipmap.ImageDimensionsMinusOne.Width);

                archive.SerialiseUInt16((ushort)mipmap.Level);
                archive.SerialiseUInt32((uint)mipmap.ImageData.Length);
                archive.SerialiseBytes(mipmap.ImageData);

                var spanCounts = from s in mipmap.PixelSpans select s.Count;
                archive.SerialiseUInt32((uint)spanCounts.Sum());
                foreach (var spanList in mipmap.PixelSpans)
                {
                    archive.SerialiseUInt16((ushort)spanList.Count);
                    foreach (var pixelSpan in spanList)
                    {
                        archive.SerialiseUInt16(pixelSpan.StartIndex);
                        archive.SerialiseUInt16(pixelSpan.EndIndex);
                    }
                }

                archive.SerialiseObjectNoHeader(new TrailingBytes());
            }
        }
예제 #2
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(X1);
            archive.SerialiseUInt16(Y1);
            archive.SerialiseUInt16(X2);
            archive.SerialiseUInt16(Y2);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #3
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(X);
            archive.SerialiseUInt16(Y);
            archive.SerialiseUInt16((ushort)FacingDirection);
            archive.SerialiseUInt16(Z);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #4
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(X);
            archive.SerialiseUInt16(Y);
            archive.SerialiseUInt16((ushort)FacingDirection);
            archive.SerialiseUInt16(Z);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #5
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(X1);
            archive.SerialiseUInt16(Y1);
            archive.SerialiseUInt16(X2);
            archive.SerialiseUInt16(Y2);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #6
0
        public override void Serialise(MfcSerialiser archive)
        {
            foreach (var colour in Palette)
            {
                archive.SerialiseByte(colour.R);
                archive.SerialiseByte(colour.G);
                archive.SerialiseByte(colour.B);
                archive.SerialiseByte(0); /* Never any alpha, transparency is handled by PixelSpans */
            }

            archive.SerialiseBuggyList(Textures, 0);
            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #7
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(unknown01);
            archive.SerialiseUInt16(unknown02);
            archive.SerialiseUInt16(unknown03);
            archive.SerialiseUInt16(unknown04);

            archive.SerialiseUInt16(0);

            archive.SerialiseBytes(new byte[8]);
            archive.SerialiseBytes(new byte[8]);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #8
0
        public override void Serialise(MfcSerialiser archive)
        {
            base.Serialise(archive);

            archive.SerialiseUInt16(unknown01);
            archive.SerialiseUInt16(unknown02);
            archive.SerialiseUInt16(unknown03);
            archive.SerialiseUInt16(unknown04);

            archive.SerialiseUInt16(0);

            archive.SerialiseBytes(new byte[8]);
            archive.SerialiseBytes(new byte[8]);

            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #9
0
 public override void Serialise(MfcSerialiser archive)
 {
     archive.SerialiseString(Name);
     archive.SerialiseObjectNoHeader(new TrailingBytes());
 }
예제 #10
0
        public override void Serialise(MfcSerialiser archive)
        {
            foreach (var colour in Palette)
            {
                archive.SerialiseByte(colour.R);
                archive.SerialiseByte(colour.G);
                archive.SerialiseByte(colour.B);
                archive.SerialiseByte(0); /* Never any alpha, transparency is handled by PixelSpans */
            }

            archive.SerialiseBuggyList(Textures, 0);
            archive.SerialiseObjectNoHeader(new TrailingBytes());
        }
예제 #11
0
 public override void Serialise(MfcSerialiser archive)
 {
     archive.SerialiseString(Name);
     archive.SerialiseObjectNoHeader(new TrailingBytes());
 }