示例#1
0
 public ArkSavegame(int?savegameMaxDegreeOfParallelism = null, ArkNameTree exclusivePropertyNameTree = null)
 {
     Objects         = new List <GameObject>();
     _arkNameCache   = new ArkNameCache();
     _arkStringCache = new ArkStringCache();
     _savegameMaxDegreeOfParallelism = savegameMaxDegreeOfParallelism;
     _exclusivePropertyNameTree      = exclusivePropertyNameTree;
 }
示例#2
0
 private bool _isInstanceInTable;    // true only for hibernation object archives
 // private bool _isSlice;              // true if this a subarchive
 public ArkArchive(MemoryMappedViewAccessor va, long size, ArkNameCache arkNameCache = null, ArkStringCache arkStringCache = null, ArkNameTree exclusivePropertyNameTree = null)
 {
     _va                        = va;
     _size                      = size;
     _arkNameCache              = arkNameCache ?? new ArkNameCache();
     _arkStringCache            = arkStringCache ?? new ArkStringCache();
     _exclusivePropertyNameTree = exclusivePropertyNameTree;
 }
示例#3
0
 public ArkArchive(ArkArchive toClone, MemoryMappedViewAccessor va)
 {
     _va                        = va;
     _size                      = toClone._size;
     _nameTable                 = toClone._nameTable;
     _arkNameCache              = toClone._arkNameCache;
     _arkStringCache            = toClone._arkStringCache;
     _exclusivePropertyNameTree = toClone._exclusivePropertyNameTree;
 }
        public ArkSavegame(string fileName, ArkNameCache arkNameCache = null, int?savegameMaxDegreeOfParallelism = null, ArkNameTree exclusivePropertyNameTree = null)
        {
            _fileName       = fileName;
            _arkNameCache   = arkNameCache ?? new ArkNameCache();
            _arkStringCache = new ArkStringCache();
            _savegameMaxDegreeOfParallelism = savegameMaxDegreeOfParallelism;
            _exclusivePropertyNameTree      = exclusivePropertyNameTree;

            var fi   = new FileInfo(_fileName);
            var size = fi.Length;

            SaveTime = fi.LastWriteTimeUtc;
            //if (size == 0) return false;

            _mmf     = MemoryMappedFile.CreateFromFile(_fileName, FileMode.Open, null, 0L, MemoryMappedFileAccess.Read);
            _va      = _mmf.CreateViewAccessor(0L, 0L, MemoryMappedFileAccess.Read);
            _archive = new ArkArchive(_va, size, _arkNameCache, _arkStringCache, _exclusivePropertyNameTree);
        }