コード例 #1
0
        internal static void TestSndComparer(TestContext tc, BlamVersion game, string dir, string[] map_names)
        {
            int map_count = map_names.Length;
            List <MapSndComparer> maps = new List <MapSndComparer>(map_count);

            var thread_code = new System.Threading.WaitCallback(delegate(object param)
            {
                var args = param as CacheFileOutputInfoArgs;

                MapSndComparer cmp = SndComparerMethod(args);
                lock (maps)
                    maps.Add(cmp);

                args.SignalFinished();
            });

            CacheFileOutputInfoArgs.TestThreadedMethod(tc, thread_code,
                                                       game, dir, map_names);

            SndComparer snd_cmp = new SndComparer(map_count);

            snd_cmp.PreProcess(maps, map_count);
            snd_cmp.ScanForDiffs();
            snd_cmp.OutputDiffs(BuildResultPath(kTestResultsPath, game, null, "sound_cmp_results", "txt"));
        }
コード例 #2
0
        static MapSndComparer SndComparerMethod(CacheFileOutputInfoArgs args)
        {
            string dir = Path.GetDirectoryName(args.MapPath);

            MapSndComparer cmp;

            using (var handler = new CacheHandler <Blam.Halo3.CacheFileBase>(args.Game, args.MapPath))
            {
                handler.Read();
                var cache = handler.CacheInterface;

                cmp = new MapSndComparer(args.MapPath, cache.IndexHalo3.TagCount);
                foreach (var tag in cache.IndexHalo3)
                {
                    if (tag.GroupTag != Blam.Halo3.TagGroups.snd_)
                    {
                        continue;
                    }

                    var snd_index = cache.TagIndexManager.Open(tag.Datum);
                    var snd_man   = cache.TagIndexManager[snd_index];

                    cmp.Add(cache.References[snd_man.ReferenceName], snd_man.TagDefinition as Blam.Halo3.Tags.cache_file_sound_group);
                    cache.TagIndexManager.Unload(snd_index);
                }
            }

            return(cmp);
        }
コード例 #3
0
        void Halo2TestCacheExtraction(BlamVersion game, string dir, params string[] map_names)
        {
            (Program.GetManager(game) as Managers.IStringIdController).StringIdCacheOpen(game);
            (Program.GetManager(game) as Managers.IVertexBufferController).VertexBufferCacheOpen(game);

            CacheFileOutputInfoArgs.TestThreadedMethod(TestContext, CacheExtractionMethod, game, dir, map_names);

            (Program.GetManager(game) as Managers.IVertexBufferController).VertexBufferCacheClose(game);
            (Program.GetManager(game) as Managers.IStringIdController).StringIdCacheClose(game);
        }
コード例 #4
0
ファイル: Halo2.cs プロジェクト: yumiris/OpenSauce
        public void Halo2TestCacheOutputXboxAlpha()
        {
            (Program.GetManager(BlamVersion.Halo2_Alpha) as Managers.IStringIdController)
            .StringIdCacheOpen(BlamVersion.Halo2_Alpha);

            CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                       CacheOutputInformationMethod,
                                                       BlamVersion.Halo2_Alpha, kMapsDirectoryXboxAlpha, kMapNamesXboxAlpha);

            (Program.GetManager(BlamVersion.Halo2_Alpha) as Managers.IStringIdController)
            .StringIdCacheClose(BlamVersion.Halo2_Alpha);
        }
コード例 #5
0
        public void HaloReachRebuildUnicTags()
        {
            BlamVersion game = BlamVersion.HaloReach_Xbox;

            CacheFileOutputInfoArgs.TestMethodSerial(TestContext,
                                                     CacheRebuildUnicTagsMethod,
                                                     game, kDirectoryXbox, @"Retail\maps\mainmenu.map");
            CacheFileOutputInfoArgs.TestMethodSerial(TestContext,
                                                     CacheRebuildUnicTagsMethod,
                                                     game, kDirectoryXbox, @"Retail\dlc_noble\dlc_invasion.map");

            string results_path = BuildResultPath(kTagDumpPath, game, "", "settings", "xml");
            var    xml_settings = new System.Xml.XmlWriterSettings();

            xml_settings.Indent      = true;
            xml_settings.IndentChars = "  ";
            xml_settings.Encoding    = System.Text.Encoding.ASCII;
            using (var s = System.Xml.XmlTextWriter.Create(results_path, xml_settings))
            {
                s.WriteStartDocument(true);
                s.WriteStartElement("settingsDefinitions");
                s.WriteAttributeString("game", game.ToString());

                s.WriteStartElement("options");
                foreach (var kv in Blam.HaloReach.Tags.text_value_pair_definition_group.SettingParameters)
                {
                    s.WriteStartElement("entry");
                    s.WriteAttributeString("key", kv.Key.ToString());
                    s.WriteAttributeString("value", Path.GetFileName(kv.Value));
                    s.WriteAttributeString("tagName", kv.Value);
                    s.WriteEndElement();
                }
                s.WriteEndElement();

                s.WriteStartElement("categories");
                foreach (var kv in Blam.HaloReach.Tags.multiplayer_variant_settings_interface_definition_group.SettingCategories)
                {
                    s.WriteStartElement("entry");
                    s.WriteAttributeString("key", kv.Key.ToString());
                    s.WriteAttributeString("value", Path.GetFileName(kv.Value.TagName));
                    s.WriteAttributeString("title", kv.Value.Title);
                    s.WriteAttributeString("tagName", kv.Value.TagName);
                    s.WriteEndElement();
                }
                s.WriteEndElement();


                s.WriteEndElement();
                s.WriteEndDocument();
            }
        }
コード例 #6
0
        public void Halo2TestCacheOutputPc()
        {
            (Program.GetManager(BlamVersion.Halo2_PC) as Managers.IStringIdController)
            .StringIdCacheOpen(BlamVersion.Halo2_PC);

            CacheFileOutputInfoArgs.TestMethodThreaded(TestContext,
                                                       CacheOutputInformationMethod,
                                                       BlamVersion.Halo2_PC, kMapsDirectoryPc, kMapNames);
            CacheFileOutputInfoArgs.TestMethodThreaded(TestContext,
                                                       CacheOutputInformationMethod,
                                                       BlamVersion.Halo2_PC, kMapsDirectoryPc, kMapNamesPc);

            (Program.GetManager(BlamVersion.Halo2_PC) as Managers.IStringIdController)
            .StringIdCacheClose(BlamVersion.Halo2_PC);
        }
コード例 #7
0
        static List <CacheFileOutputInfoArgs> TestMethodBuildArgs(TestContext tc,
                                                                  BlamVersion game, string dir, Blam.DatumIndex DatumIndex, bool Recursive, bool OutputDB, bool Overrite, string Ext_Dir, params string[] map_names)
        {
            var args = new List <CacheFileOutputInfoArgs>(map_names.Length);

            for (int x = 0; x < map_names.Length; x++)
            {
                var arg = new CacheFileOutputInfoArgs(tc, game, dir, DatumIndex, Recursive, OutputDB, Overrite, Ext_Dir, map_names[x]);

                if (arg.ValidateReadyStatus())
                {
                    args.Add(arg);
                }
            }

            return(args);
        }
コード例 #8
0
        static List <CacheFileOutputInfoArgs> TestMethodBuildArgs(TestContext tc,
                                                                  BlamVersion game, string dir, params string[] map_names)
        {
            var args = new List <CacheFileOutputInfoArgs>(map_names.Length);

            for (int x = 0; x < map_names.Length; x++)
            {
                var arg = new CacheFileOutputInfoArgs(tc, game, dir, map_names[x]);

                if (arg.ValidateReadyStatus())
                {
                    args.Add(arg);
                }
            }

            return(args);
        }
コード例 #9
0
        void CacheOutputInformation(BlamVersion game)
        {
            string dir = null;

            if (game == BlamVersion.Stubbs_PC)
            {
                dir = kMapsDirectoryPc;
            }
            else if (game == BlamVersion.Stubbs_Xbox)
            {
                dir = kMapsDirectoryXbox;
            }

            if (!string.IsNullOrEmpty(dir))
            {
                CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                           CacheOutputInformation,
                                                           game, dir, kMapNames);
            }
        }
コード例 #10
0
        public void Halo2_ExtractTagCache(Blam.DatumIndex DatumIndex, bool Recursive, bool OutputDB, bool Override, string DestinationPath, string MapPath, params string[] map_names)
        {
            BlamVersion game = BlamVersion.Halo2_PC;



            string MapsDir = "";

            if (MapPath != "")
            {
                MapsDir = MapPath;
            }
            else
            {
                MapsDir = kMapsDirectoryPc;
            }



            Program.Halo2.LoadPc(
                MapsDir + @"mainmenu.map",
                MapsDir + @"shared.map",
                MapsDir + @"single_player_shared.map");
            Assert.IsNotNull(Program.Halo2.PcMainmenu);
            Assert.IsNotNull(Program.Halo2.PcShared);
            Assert.IsNotNull(Program.Halo2.PcCampaign);


            (Program.GetManager(game) as Managers.IStringIdController).StringIdCacheOpen(game);
            (Program.GetManager(game) as Managers.IVertexBufferController)
            .VertexBufferCacheOpen(game);

            CacheFileOutputInfoArgs.TestThreadedMethod(TestContext, H2CacheExtractionMethod, BlamVersion.Halo2_PC, MapsDir, DatumIndex, Recursive, OutputDB, Override, DestinationPath, map_names);



            (Program.GetManager(game) as Managers.IVertexBufferController).VertexBufferCacheClose(game);
            (Program.GetManager(game) as Managers.IStringIdController)
            .StringIdCacheClose(game);
        }
コード例 #11
0
        public void Halo2_ExtractTagCache(Blam.DatumIndex DatumIndex, bool Recursive, bool OutputDB, bool Override, string DestinationPath, params string[] map_names)
        {
            BlamVersion game = BlamVersion.Halo2_PC;

            Program.Halo2.LoadPc(
                kMapsDirectoryPc + @"mainmenu.map",
                kMapsDirectoryPc + @"shared.map",
                kMapsDirectoryPc + @"single_player_shared.map");


            (Program.GetManager(game) as Managers.IStringIdController).StringIdCacheOpen(game);
            (Program.GetManager(game) as Managers.IVertexBufferController)
            .VertexBufferCacheOpen(game);

            CacheFileOutputInfoArgs.TestThreadedMethod(TestContext, H2CacheExtractionMethod, BlamVersion.Halo2_PC, kMapsDirectoryPc, DatumIndex, Recursive, OutputDB, Override, DestinationPath, map_names);



            (Program.GetManager(game) as Managers.IVertexBufferController).VertexBufferCacheClose(game);
            (Program.GetManager(game) as Managers.IStringIdController)
            .StringIdCacheClose(game);
        }
コード例 #12
0
ファイル: DumpZoneData.cs プロジェクト: yumiris/OpenSauce
 public void Halo3TestDumpZoneDataXboxEpsilon()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext, DumpZoneDataMethod,
                                                BlamVersion.Halo3_Epsilon, kDirectoryXbox, kMapNames_Epsilon);
 }
コード例 #13
0
 public void HaloOdstTestDumpZoneDataXbox()
 {
     CacheFileOutputInfoArgs.TestMethodThreaded(TestContext, Halo3.DumpZoneDataMethod,
                                                BlamVersion.HaloOdst_Xbox, kMapsDirectoryXbox, kMapNames);
 }
コード例 #14
0
 public void Halo3TestDumpZoneDataXbox()
 {
     CacheFileOutputInfoArgs.TestMethodThreaded(TestContext, DumpZoneDataMethod,
                                                BlamVersion.Halo3_Xbox, kDirectoryXbox, kMapNames_Retail);
 }
コード例 #15
0
 public void Halo4TestCachePatchesXbox()
 {
     CacheFileOutputInfoArgs.TestMethodSerial(TestContext,
                                              CacheOutputInformationMethod,
                                              BlamVersion.Halo4_Xbox, kDirectoryXbox, kMapNames_Retail_Patches);
 }
コード例 #16
0
 public void HaloOdstTestCacheLoadResourceXbox()
 {
     CacheFileOutputInfoArgs.TestMethodThreaded(TestContext,
                                                Halo3.CacheLoadResourceMethod,
                                                BlamVersion.HaloOdst_Xbox, kMapsDirectoryXbox, kMapNames);
 }
コード例 #17
0
 public void Halo2_ExtractTagCache(Blam.DatumIndex DatumIndex, params string[] map_names)
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext, H2CacheExtractionMethod, BlamVersion.Halo2_PC, kMapsDirectoryPc, DatumIndex, map_names);
 }
コード例 #18
0
 public void Halo4TestCacheOutputXbox()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                CacheOutputInformationMethod,
                                                BlamVersion.Halo4_Xbox, kDirectoryXbox, kMapNames_Retail);
 }
コード例 #19
0
 public CacheSymbolInterface(CacheFileOutputInfoArgs args)
 {
     cacheHandler = new CacheHandler <Blam.HaloReach.CacheFile>(args.Game, args.MapPath);
     cacheHandler.Read();
 }
コード例 #20
0
 public void HaloReachTestDumpScriptGraphs()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                CacheDumpScriptGraphs,
                                                BlamVersion.HaloReach_Xbox, kDirectoryXbox, kMapNames_Retail);
 }
コード例 #21
0
 public void HaloReachTestCacheOutputXboxBeta()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                CacheOutputInformationMethod,
                                                BlamVersion.HaloReach_Beta, kDirectoryXbox, kMapNames_Delta);
 }
コード例 #22
0
ファイル: SoundExtract.cs プロジェクト: yumiris/OpenSauce
 public void Halo3TestCacheExtractSoundXbox()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                CacheExtractSoundMethod,
                                                BlamVersion.Halo3_Xbox, kDirectoryXbox, kMapNames_Retail[0]);
 }
コード例 #23
0
 public void Halo3TestCacheOutputXboxEpsilon()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                CacheOutputInformationMethod,
                                                BlamVersion.Halo3_Epsilon, kDirectoryXbox, kMapNames_Epsilon);
 }
コード例 #24
0
 public void Halo3TestCacheLoadResourceXbox()
 {
     CacheFileOutputInfoArgs.TestMethodThreaded(TestContext,
                                                CacheLoadResourceMethod,
                                                BlamVersion.Halo3_Xbox, kDirectoryXbox, kMapNames_Retail[0]);
 }
コード例 #25
0
 public void Halo4RebuildUnicTags()
 {
     CacheFileOutputInfoArgs.TestMethodSerial(TestContext,
                                              CacheRebuildUnicTagsMethod,
                                              BlamVersion.HaloReach_Xbox, kDirectoryXbox, @"Retail\maps\mainmenu.map");
 }
コード例 #26
0
 public void HaloReachDumpMegloData()
 {
     CacheFileOutputInfoArgs.TestMethodThreaded(TestContext,
                                                CacheOutputMegaloInformationMethod,
                                                BlamVersion.HaloReach_Xbox, kDirectoryXbox, kMapNames_MegaloData);
 }
コード例 #27
0
 public void HaloOdstTestCacheOutputXbox()
 {
     CacheFileOutputInfoArgs.TestThreadedMethod(TestContext,
                                                Halo3.CacheOutputInformationMethod,
                                                BlamVersion.HaloOdst_Xbox, kMapsDirectoryXbox, kMapNames);
 }