static public ORConfig DeserializeJSON(string fileName)
        {
            ORConfig p = null;

            try
            {
                JsonSerializer serializer = new JsonSerializer();
                using (StreamReader sr = new StreamReader(fileName))
                {
                    ORConfig orConfig = JsonConvert.DeserializeObject <ORConfig>((string)sr.ReadToEnd(), new JsonSerializerSettings
                    {
                        PreserveReferencesHandling = PreserveReferencesHandling.Objects,
                        TypeNameHandling           = TypeNameHandling.Auto
                    });
                    p               = orConfig;
                    p.FileName      = fileName;
                    p.CanSaveConfig = false;
                }
            }
            catch
            {
                p               = new ORConfig();
                p.FileName      = fileName;
                p.CanSaveConfig = false;
            }
            return(p);
        }
        static public ORConfig LoadConfig(string dataFolder, ORConfig mainConfig = null)
        {
            string currentProgFolder = dataFolder;

            currentProgFolder = Path.GetDirectoryName(currentProgFolder);
            string completeFileName = Path.Combine(currentProgFolder, "Open Rails");

            if (!Directory.Exists(completeFileName))
            {
                Directory.CreateDirectory(completeFileName);
            }
            completeFileName = Path.Combine(completeFileName, "ORConfig.json");
            ORConfig loaded = DeserializeJSON(completeFileName);

            return(loaded);
        }