internal ModelVariantRegionBlockBase(BinaryReader binaryReader) { this.regionNameMustMatchRegionNameInRenderModel = binaryReader.ReadStringID(); this.invalidName_ = binaryReader.ReadBytes(1); this.invalidName_0 = binaryReader.ReadBytes(1); this.parentVariant = binaryReader.ReadShortBlockIndex1(); this.permutations = ReadModelVariantPermutationBlockArray(binaryReader); this.sortOrder = (SortOrderNegativeValuesMeanCloserToTheCamera)binaryReader.ReadInt16(); this.invalidName_1 = binaryReader.ReadBytes(2); }
public ModelVariantRegionBlock(BinaryReader binaryReader) { this.regionNameMustMatchRegionNameInRenderModel = binaryReader.ReadStringID(); this.padding = binaryReader.ReadByte(); this.padding0 = binaryReader.ReadByte(); this.parentVariant = binaryReader.ReadShortBlockIndex1(); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(ModelVariantPermutationBlock)); this.permutations = new ModelVariantPermutationBlock[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.permutations[i] = new ModelVariantPermutationBlock(binaryReader); } } } this.sortOrderNegativeValuesMeanCloserToTheCamera = (SortOrderNegativeValuesMeanCloserToTheCamera)binaryReader.ReadInt16(); this.padding1 = binaryReader.ReadBytes(2); }