public LITE(int apiVersion, EventHandler handler, LITE basis) : base(apiVersion, handler, null) { this.version = basis.version; this.unknown1 = basis.unknown1; this.lightSources = basis.lightSources == null ? null : new LightSourceList(handler, basis.lightSources); this.occluders = basis.occluders == null ? null : new OccluderList(handler, basis.occluders); this.unknown2 = basis.unknown2; }
protected override void Parse(Stream s) { BinaryReader r = new BinaryReader(s); tag = r.ReadUInt32(); if (checking) { if (tag != (uint)FOURCC(TAG)) { throw new InvalidDataException(String.Format("Invalid Tag read: '{0}'; expected: '{1}'; at 0x{2:X8}", FOURCC(tag), TAG, s.Position)); } } version = r.ReadUInt32(); unknown1 = r.ReadUInt32(); byte lsCount = r.ReadByte(); byte ssCount = r.ReadByte(); unknown2 = r.ReadUInt16(); lightSources = new LightSourceList(handler, lsCount, s); occluders = new OccluderList(handler, ssCount, s); }
public override Stream UnParse() { MemoryStream ms = new MemoryStream(); BinaryWriter w = new BinaryWriter(ms); w.Write(tag); w.Write(version); w.Write(unknown1); if (lightSources == null) { lightSources = new LightSourceList(handler); } w.Write((byte)lightSources.Count); if (occluders == null) { occluders = new OccluderList(handler); } w.Write((byte)occluders.Count); w.Write(unknown2); lightSources.UnParse(ms); occluders.UnParse(ms); return(ms); }