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); } } }
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); }