예제 #1
0
        /// <summary>
        /// Initialize the StringIdManager for this cache and load the dynamic id values
        /// </summary>
        /// <remarks>If this cache doesn't support string ids, this does nothing</remarks>
        protected void StringIdManagerInitializeAndRead()
        {
            // HACK:
            // TODO: We can't decrypt these yet!
            if (engineVersion == BlamVersion.HaloReach_Xbox)
            {
                return;
            }

            var sid_header = Header as ICacheHeaderStringId;

            if (sid_header == null)
            {
                return;                                 // This cache doesn't use string_ids, do nothing
            }
            var gd = Program.GetManager(engineVersion);

            (gd as Managers.IStringIdController).StringIdCacheOpen(engineVersion);
            var static_collection = gd[engineVersion].GetResource <Managers.StringIdStaticCollection>(Managers.BlamDefinition.ResourceStringIds);

            StringIds = new Managers.StringIdManager(static_collection);

            using (var indices = GetStringIdsIndicesBuffer(sid_header))
                using (var buffer = GetStringIdsBuffer(sid_header))
                {
                    StringIds.FromDebugStream(indices, buffer, true, sid_header.StringIdsCount, true);
                }

            StringIds.IsReadOnly = true;
        }
예제 #2
0
        void StringTableInitialize()
        {
            var gd = Program.GetManager(engine);

            (gd as Managers.IStringIdController).StringIdCacheOpen(engine);
            var static_collection = gd[engine].GetResource <Managers.StringIdStaticCollection>(Managers.BlamDefinition.ResourceStringIds);

            stringIdManager = new Managers.StringIdManager(static_collection);
        }
예제 #3
0
        void StringTableDispose()
        {
            if (stringIdManager != null)
            {
                stringIdManager = null;

                var gd = Program.GetManager(engine);
                (gd as Managers.IStringIdController).StringIdCacheClose(engine);
            }
        }
예제 #4
0
        void StringIdManagerDispose()
        {
            if (StringIds != null)
            {
                StringIds = null;

                var gd = Program.GetManager(engineVersion);
                (gd as Managers.IStringIdController).StringIdCacheClose(engineVersion);
            }
        }
예제 #5
0
파일: Blam.cs 프로젝트: CodeAsm/open-sauce
		static void TestNewStringIdManagerResources(string r_path, string r_name)
		{
			var sid_sc = new Managers.StringIdStaticCollection();
			sid_sc.Load(r_path, r_name);

			var sm2 = new Managers.StringIdManager(sid_sc);
			sm2.Definition.ToString();

			sm2 = null;
		}
예제 #6
0
        static void TestNewStringIdManagerResources(string r_path, string r_name)
        {
            var sid_sc = new Managers.StringIdStaticCollection();

            sid_sc.Load(r_path, r_name);

            var sm2 = new Managers.StringIdManager(sid_sc);

            sm2.Definition.ToString();

            sm2 = null;
        }