Example #1
0
        public Scene(MpqFile file)
        {
            var stream = file.Open();

            long pos = 0; // x
            DEADBEEF = stream.ReadInt32();
            snoType = stream.ReadInt32();
            unknown1 = stream.ReadInt32();
            unknown2 = stream.ReadInt32();
            SceneSNO = stream.ReadInt32();
            unknown3 = stream.ReadInt32();
            unknown4 = stream.ReadInt32();
            i0 = stream.ReadInt32();
            aabbBounds = new AABB(stream);
            aabbMarkerSetBounds = new AABB(stream);

            //load NavMeshDef
            NavMesh = new NavMeshDef(stream);
            // end navmeshdef
            var serExclusions = new SerializeData(stream);
            stream.Position += 56;
            var serInclusions = new SerializeData(stream);
            stream.Position += 56;

            //MarkerSet Time
            var serMarkerSets = new SerializeData(stream);
            pos = stream.Position;
            stream.Position = serMarkerSets.Offset + 16;
            MarkerSets = new int[serMarkerSets.Size/4];
            for (int i = 0; i < serMarkerSets.Size/4; i++)
            {
                MarkerSets[i] = stream.ReadInt32();
            }
            stream.Position = pos + 56;

            //TODO - parse LookLink /dark
            LookLink = new char[64];
            for (int i = 0; i < 64; i++)
            {
                LookLink[i] = (char) stream.ReadByte();
            }

            var sermsgTriggeredEvents = new SerializeData(stream);
            int i1 = stream.ReadInt32();
            stream.Position += 12;

            //navzonedef
            NavZone = new NavZoneDef(stream);

            stream.Close();
        }
 public void Parse(GameBitBuffer buffer)
 {
     Field0 = buffer.ReadInt(32);
     aabbBounds = new AABB();
     aabbBounds.Parse(buffer);
     aabbMarkerSetBounds = new AABB();
     aabbMarkerSetBounds.Parse(buffer);
     Field3 = new NavMeshDef();
     Field3.Parse(buffer);
     serExclusions = new SerializeData();
     serExclusions.Parse(buffer);
     arExclusions = new DT_VARIABLEARRAY();
     arExclusions.Parse(buffer);
     serInclusions = new SerializeData();
     serInclusions.Parse(buffer);
     arInclusions = new DT_VARIABLEARRAY();
     arInclusions.Parse(buffer);
     serMarkerSets = new SerializeData();
     serMarkerSets.Parse(buffer);
     arMarkerSets = new DT_VARIABLEARRAY();
     arMarkerSets.Parse(buffer);
     Field10 = new LookLink();
     Field10.Parse(buffer);
     serMsgTriggeredEvents = new SerializeData();
     serMsgTriggeredEvents.Parse(buffer);
     Field12 = buffer.ReadInt(32);
     Field13 = new DT_VARIABLEARRAY();
     Field13.Parse(buffer);
     tNavZoneDef = new NavZoneDefinition();
     tNavZoneDef.Parse(buffer);
     snoAppearance = buffer.ReadInt(32);
     snoPhysMesh = buffer.ReadInt(32);
 }