Ejemplo n.º 1
0
            public static ImageChangeParts Read(BinaryReader br, int variantCount)
            {
                var parts = new ImageChangeParts();

                parts.DefaultVariant = ImageChangeData.Read(br);
                parts.Variants       = new ImageChangeData[variantCount];
                for (var i = 0; i < variantCount; i++)
                {
                    parts.Variants[i] = ImageChangeData.Read(br);
                }

                return(parts);
            }
Ejemplo n.º 2
0
        public override void LoadFile()
        {
            Count    = Reader.ReadUInt16();
            PartMask = Reader.ReadUInt16();

            var partList = new List <ImageChangeParts>();
            var parts    = 0;

            // Initialize the parts we have
            for (var i = 0; i < 8; i++)
            {
                var val = 1 << i;
                if ((PartMask & val) == val)
                {
                    parts++;
                }
            }

            // Grab the list of default variants, one for each part
            for (var i = 0; i < parts; i++)
            {
                var currentPart = new ImageChangeParts
                {
                    VariantList    = new List <ImageChangeData>(),
                    DefaultVariant = ImageChangeData.Read(Reader)
                };
                partList.Add(currentPart);
            }

            // Dish out variants 1, 2, etc... to each part
            for (var i = 0; i < Count; i++)
            {
                foreach (var imageChangeParts in partList)
                {
                    imageChangeParts.VariantList.Add(ImageChangeData.Read(Reader));
                }
            }

            Parts = new ImageChangeParts[parts];
            for (var i = 0; i < parts; i++)
            {
                var imcParts = partList[i];
                imcParts.Init();
                Parts[i] = imcParts;
            }

            partList.Clear();
        }