public GameCacheHaloOnline(DirectoryInfo directory) { Directory = directory; TagsFile = new FileInfo(Path.Combine(directory.FullName, "tags.dat")); TagNamesFile = new FileInfo(Path.Combine(directory.FullName, "tag_list.csv")); StringIdCacheFile = new FileInfo(Path.Combine(directory.FullName, "string_ids.dat")); Endianness = EndianFormat.LittleEndian; var names = TagCacheHaloOnline.LoadTagNames(TagNamesFile.FullName); using (var stream = TagsFile.OpenRead()) TagCacheGenHO = new TagCacheHaloOnline(stream, names); if (CacheVersion.Unknown == (Version = CacheVersionDetection.DetectFromTimestamp(TagCacheGenHO.Header.CreationTime, out var closestVersion))) { Version = closestVersion; } using (var stream = StringIdCacheFile.OpenRead()) StringTableHaloOnline = new StringTableHaloOnline(Version, stream); DisplayName = Version.ToString(); Deserializer = new TagDeserializer(Version); Serializer = new TagSerializer(Version); ResourceCaches = new ResourceCachesHaloOnline(this); }
public override void SaveStrings() { using (var stream = StringIdCacheFile.OpenWrite()) StringTableHaloOnline.Save(stream); }