示例#1
0
 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;
 }
示例#2
0
        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);
        }
示例#3
0
        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);
        }