Пример #1
0
        public void Unserialize(Net.InputMessage binaryReader, int clientVersion)
        {
            Width  = binaryReader.GetU8();
            Height = binaryReader.GetU8();
            if (Width > 1 || Height > 1)
            {
                ExactSize = binaryReader.GetU8();
            }
            else
            {
                ExactSize = 32;
            }

            Layers        = binaryReader.GetU8();
            PatternWidth  = binaryReader.GetU8();
            PatternHeight = binaryReader.GetU8();
            PatternDepth  = clientVersion >= 755 ? binaryReader.GetU8() : (byte)1;
            Phases        = binaryReader.GetU8();

            if (Phases > 1 && clientVersion >= 1050)
            {
                Animator = new FrameGroupAnimator();
                Animator.Unserialize(Phases, binaryReader);
            }

            int totalSprites = Width * Height * Layers * PatternWidth * PatternHeight * PatternDepth * Phases;

            for (int j = 0; j < totalSprites; j++)
            {
                Sprites.Add(clientVersion >= 960 ? binaryReader.GetU32() : binaryReader.GetU16());
            }
        }