public override object Read(BinaryReader br) { var g = new Generator(); g.GeneratorType = (GeneratorEnum) br.ReadUInt16(); g.UInt16Amount = br.ReadUInt16(); data.Add(g); return g; }
public void Load(Modulator[] modulators, Generator[] generators) { // don't do the last zone, which is simply EOZ for (int zone = 0; zone < data.Count - 1; zone++) { var z = (Zone) data[zone]; z.Generators = new Generator[z.generatorCount]; Array.Copy(generators, z.generatorIndex, z.Generators, 0, z.generatorCount); z.Modulators = new Modulator[z.modulatorCount]; Array.Copy(modulators, z.modulatorIndex, z.Modulators, 0, z.modulatorCount); } // we can get rid of the EOP record now data.RemoveAt(data.Count - 1); }