示例#1
0
        /// <summary>Performs the actual cache loading logic</summary>
        /// <param name="cv"></param>
        static CacheOpenDoWorkResults CacheOpenDoWorkLoad(CacheView cv)
        {
            var results = new CacheOpenDoWorkResults();
            var engine  = cv.m_engine;

            BlamLib.Blam.CacheFile cache = null;

            var gd  = BlamLib.Program.GetManager(engine);
            var cid = BlamLib.Blam.DatumIndex.Null;

            try
            {
                cid   = gd.OpenCacheFile(engine, cv.OpenFileDlg.FileName);
                cache = gd.GetCacheFile(cid);
                cache.Read();
            }
            catch (Exception ex)
            {
                results.OpenException = ex;

                if (!cid.IsNull && cache != null)
                {
                    gd.CloseCacheFile(cache.CacheId);
                }
                cache = null;
            }

            cv.m_cache = cache;

            if (cache != null)
            {
                results.TagTreeNodes = CacheOpenDoWorkGenerateTagTreeNodes(cv, cache);
            }

            return(results);
        }
示例#2
0
		/// <summary>Performs the actual cache loading logic</summary>
		/// <param name="cv"></param>
		static CacheOpenDoWorkResults CacheOpenDoWorkLoad(CacheView cv)
		{
			var results = new CacheOpenDoWorkResults();
			var engine = cv.m_engine;
			BlamLib.Blam.CacheFile cache = null;

			var gd = BlamLib.Program.GetManager(engine);
			var cid = BlamLib.Blam.DatumIndex.Null;
			try
			{
				cid = gd.OpenCacheFile(engine, cv.OpenFileDlg.FileName);
				cache = gd.GetCacheFile(cid);
				cache.Read();
			}
			catch (Exception ex)
			{
				results.OpenException = ex;

				if (!cid.IsNull && cache != null)
					gd.CloseCacheFile(cache.CacheId);
				cache = null;
			}

			cv.m_cache = cache;

			if (cache != null)
				results.TagTreeNodes = CacheOpenDoWorkGenerateTagTreeNodes(cv, cache);

			return results;
		}