Beispiel #1
0
 private void ParseGameStrings()
 {
     foreach (string id in GameData.GameStringIds)
     {
         if (GameStringParser.TryParseRawTooltip(id, GameData.GetGameString(id), out string parsedGamestring))
         {
             GameData.AddGameString(id, parsedGamestring);
         }
     }
 }
        public GameStringParserTests()
        {
            _gameData = new FileGameData(_modsTestFolder);
            _gameData.LoadAllData();

            _configuration = new Configuration();
            _configuration.Load();

            _gameStringParser = new GameStringParser(_configuration, _gameData);
            PreParse();

            _defaultData = new DefaultData(_gameData);
            _defaultData.Load();
        }
        public GameStringParserTests()
        {
            GameData = new FileGameData(ModsTestFolder);
            GameData.LoadAllData();

            Configuration = new Configuration();
            Configuration.Load();

            GameStringParser = new GameStringParser(Configuration, GameData);
            PreParse();

            DefaultData = new DefaultData(GameData);
            DefaultData.Load();
        }
Beispiel #4
0
        private void LoadTestData()
        {
            GameData = new FileGameData(_modsTestFolder);
            GameData.LoadAllData();

            DefaultData = new DefaultData(GameData);
            DefaultData.Load();

            Configuration = new Configuration();
            Configuration.Load();

            GameStringParser = new GameStringParser(Configuration, GameData);
            ParseGameStrings();

            XmlDataService = new XmlDataService(Configuration, GameData, DefaultData);
        }
Beispiel #5
0
        private void LoadTestData()
        {
            _gameData = new FileGameData(_modsTestFolder);
            _gameData.LoadAllData();

            _configuration = new Configuration();
            _configuration.Load();

            _gameStringParser = new GameStringParser(_configuration, _gameData);
            ParseGameStrings();

            _defaultData = new DefaultData(_gameData);
            _defaultData.Load();

            XmlDataOverriders xmlDataOverriders = XmlDataOverriders.Load(App.AssemblyPath, _gameData, _overrideFileNameSuffix);

            _heroOverrideLoader = (HeroOverrideLoader)xmlDataOverriders.GetOverrider(typeof(HeroDataParser));

            _xmlDataService = new XmlDataService(_configuration, _gameData, _defaultData);
        }
Beispiel #6
0
        private void LoadTestData()
        {
            GameData = new FileGameData(ModsTestFolder);
            GameData.LoadAllData();

            Configuration = new Configuration();
            Configuration.Load();

            GameStringParser = new GameStringParser(Configuration, GameData);
            ParseGameStrings();

            DefaultData = new DefaultData(GameData);
            DefaultData.Load();

            XmlDataOverriders xmlDataOverriders = XmlDataOverriders.Load(GameData, OverrideFileNameSuffix);

            HeroOverrideLoader = (HeroOverrideLoader)xmlDataOverriders.GetOverrider(typeof(HeroDataParser));

            XmlDataService = new XmlDataService(Configuration, GameData, DefaultData);
        }
Beispiel #7
0
        private void ParseGameStrings(Localization localization)
        {
            int           currentCount      = 0;
            int           failedCount       = 0;
            int           totalGameStrings  = GameData.GameStringCount + GameData.GameStringMapCount;
            List <string> failedGameStrings = new List <string>();

            Stopwatch time = new Stopwatch();

            GameStringParser gameStringParser = new GameStringParser(Configuration, GameData, HotsBuild);

            Console.WriteLine($"Parsing gamestrings...");

            time.Start();

            Console.Write($"\r{currentCount,6} / {totalGameStrings} total gamestrings");

            try
            {
                Parallel.ForEach(GameData.GameStringIds, new ParallelOptions {
                    MaxDegreeOfParallelism = MaxParallelism
                }, gamestringId =>
                {
                    if (!gameStringParser.TryParseRawTooltip(gamestringId, GameData.GetGameString(gamestringId), out string parsedGamestring))
                    {
                        failedGameStrings.Add($"{gamestringId}={GameData.GetGameString(gamestringId)}");
                        Interlocked.Increment(ref failedCount);
                    }

                    // always add
                    GameData.AddGameString(gamestringId, parsedGamestring);

                    Console.Write($"\r{Interlocked.Increment(ref currentCount),6} / {totalGameStrings} total gamestrings");
                });

                // map specific data
                foreach (string mapName in GameData.MapIds)
                {
                    GameData mapGameData = GameData.GetMapGameData(mapName);
                    GameData.AppendGameData(mapGameData);

                    Parallel.ForEach(mapGameData.GameStringIds, new ParallelOptions {
                        MaxDegreeOfParallelism = MaxParallelism
                    }, gamestringId =>
                    {
                        if (!gameStringParser.TryParseRawTooltip(gamestringId, mapGameData.GetGameString(gamestringId), out string parsedGamestring))
                        {
                            failedGameStrings.Add($"[{mapName}]:{gamestringId}={GameData.GetGameString(gamestringId)}");
                            Interlocked.Increment(ref failedCount);
                        }

                        // always add
                        GameData.AddMapGameString(mapName, gamestringId, parsedGamestring);

                        Console.Write($"\r{Interlocked.Increment(ref currentCount),6} / {totalGameStrings} total gamestrings");
                    });

                    GameData.RestoreGameData();
                }
            }
            catch (AggregateException ae)
            {
                WriteExceptionLog($"gamestrings_{localization.ToString().ToLower()}", ae);

                ae.Handle(ex =>
                {
                    if (ex is GameStringParseException)
                    {
                        ConsoleExceptionMessage($"{Environment.NewLine}{ex.Message}");
                    }

                    return(ex is GameStringParseException);
                });
            }

            Console.WriteLine();

            time.Stop();

            if (failedCount > 0)
            {
                WriteInvalidGameStrings(failedGameStrings, localization);
                Console.ForegroundColor = ConsoleColor.Yellow;
            }

            Console.WriteLine($"{totalGameStrings - failedCount,6} successfully parsed gamestrings");

            Console.ResetColor();
            Console.WriteLine($"Finished in {time.Elapsed.TotalSeconds} seconds");
            Console.WriteLine();
        }