Exemple #1
0
        private void InitDna()
        {
            _dnaData = IntPtr.Size == 8 ? GetBulletDna64() : GetBulletDna();
            bool swap = !BitConverter.IsLittleEndian;

            using (var stream = new MemoryStream(_dnaData))
            {
                using (var reader = new BulletReader(stream))
                {
                    _dna = Dna.Load(reader, swap);
                }
            }
        }
Exemple #2
0
        private void LoadDna(FileVerboseMode verboseMode)
        {
            bool swap = (Flags & FileFlags.EndianSwap) != 0;

            using (var stream = new MemoryStream(_fileBuffer, false))
            {
                using (var reader = new BulletReader(stream))
                {
                    long dnaStart = FindDnaChunk(reader);
                    OK = dnaStart != -1;
                    if (!OK)
                    {
                        return;
                    }

                    stream.Position = dnaStart;
                    _fileDna        = Dna.Load(reader, swap);
                }
            }

            if (_fileDna.IsBroken(_version))
            {
                Console.WriteLine("Warning: broken DNA version");
                Flags |= FileFlags.BrokenDna;
            }

            //if ((verboseMode & FileVerboseMode.DumpDnaTypeDefinitions) != 0)
            //    _fileDna.DumpTypeDefinitions();

            byte[] memoryDnaData = IntPtr.Size == 8
                ? Serializer.GetBulletDna64()
                : Serializer.GetBulletDna();
            _memoryDna = Dna.Load(memoryDnaData, !BitConverter.IsLittleEndian);

            _structChanged = _fileDna.Compare(_memoryDna);
        }