public void Clear() { CDNIndex?.Clear(); CDNIndex = null; foreach (var stream in DataStreams) { stream.Value.Dispose(); } DataStreams.Clear(); EncodingHandler?.Clear(); EncodingHandler = null; InstallHandler?.Clear(); InstallHandler = null; LocalIndex?.Clear(); LocalIndex = null; RootHandler?.Clear(); RootHandler = null; DownloadHandler?.Clear(); DownloadHandler = null; }
protected BinaryReader OpenRootFile(EncodingHandler enc, CASCHandlerBase casc) { if (!enc.GetEntry(casc.Config.RootMD5, out EncodingEntry encInfo)) { throw new FileNotFoundException("encoding info for root file missing!"); } //ExtractFile(encInfo.Key, ".", "root"); return(new BinaryReader(casc.OpenFile(encInfo.Key))); }
private CASCHandler(CASCConfig config) : base(config) { using (var fs = OpenEncodingFile(this)) EncodingHandler = new EncodingHandler(fs); if ((CASCConfig.LoadFlags & LoadFlags.Download) != 0) { using (var fs = OpenDownloadFile(EncodingHandler, this)) DownloadHandler = new DownloadHandler(fs); } using (var fs = OpenRootFile(EncodingHandler, this)) RootHandler = new WowRootHandler(fs); if ((CASCConfig.LoadFlags & LoadFlags.Install) != 0) { using (var fs = OpenInstallFile(EncodingHandler, this)) InstallHandler = new InstallHandler(fs); } }