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); }
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(); }