ARKBreedingStats.Settings.extractSettingsFromFile C# (CSharp) Method

extractSettingsFromFile() private method

private extractSettingsFromFile ( string file ) : void
file string
return void
        private void extractSettingsFromFile(string file)
        {
            if (File.Exists(file))
            {
                string text = File.ReadAllText(file);
                double d;
                double[] multipliers;
                Match m;

                int[] statIndices = new int[] { 0, 1, 3, 4, 7, 8, 9, 2 };

                // get stat-multipliers
                for (int s = 0; s < 8; s++)
                {
                    m = Regex.Match(text, @"PerLevelStatsMultiplier_DinoTamed_Add\[" + statIndices[s] + @"\] ?= ?(\d*\.?\d+)");
                    if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                    {
                        multipliers = multSetter[s].Multipliers;
                        multipliers[0] = d;
                        multSetter[s].Multipliers = multipliers;
                    }
                    m = Regex.Match(text, @"PerLevelStatsMultiplier_DinoTamed_Affinity\[" + statIndices[s] + @"\] ?= ?(\d*\.?\d+)");
                    if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                    {
                        multipliers = multSetter[s].Multipliers;
                        multipliers[1] = d;
                        multSetter[s].Multipliers = multipliers;
                    }
                    m = Regex.Match(text, @"PerLevelStatsMultiplier_DinoTamed\[" + statIndices[s] + @"\] ?= ?(\d*\.?\d+)");
                    if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                    {
                        multipliers = multSetter[s].Multipliers;
                        multipliers[2] = d;
                        multSetter[s].Multipliers = multipliers;
                    }
                    m = Regex.Match(text, @"PerLevelStatsMultiplier_DinoWild\[" + statIndices[s] + @"\] ?= ?(\d*\.?\d+)");
                    if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                    {
                        multipliers = multSetter[s].Multipliers;
                        multipliers[3] = d;
                        multSetter[s].Multipliers = multipliers;
                    }
                }

                m = Regex.Match(text, @"EggHatchSpeedMultiplier ?= ?(\d*\.?\d+)");
                if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                {
                    numericUpDownHatching.Value = (decimal)d;
                }
                m = Regex.Match(text, @"BabyMatureSpeedMultiplier ?= ?(\d*\.?\d+)");
                if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                {
                    numericUpDownMaturation.Value = (decimal)d;
                }
                m = Regex.Match(text, @"BabyImprintingStatScaleMultiplier ?= ?(\d*\.?\d+)");
                if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                {
                    numericUpDownImprintingM.Value = (decimal)d;
                }

                // GameUserSettings.ini

                m = Regex.Match(text, @"TamingSpeedMultiplier ?= ?(\d*\.?\d+)");
                if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                {
                    numericUpDownTamingSpeed.Value = (decimal)d;
                }
                m = Regex.Match(text, @"DinoCharacterFoodDrainMultiplier ?= ?(\d*\.?\d+)");
                if (m.Success && double.TryParse(m.Groups[1].Value, out d))
                {
                    numericUpDownTamingFoodRate.Value = (decimal)d;
                }
            }
        }