private static void LocateDef() { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); switch (gam) { case "ATS": var ofd = new OpenFileDialog { Title = @"Locate the Def SCS File" }; ofd.ShowDialog(); if (!ofd.FileName.FileExists()) { return; } reg.Write(AtsRegKeys.ATS_DEF_SCS_LOCATION, ofd.FileName); break; case "ETS": ofd = new OpenFileDialog { Title = @"Locate the Def SCS File" }; ofd.ShowDialog(); if (!ofd.FileName.FileExists()) { return; } reg.Write(EtsRegKeys.ETS_DEF_SCS_LOCATION, ofd.FileName); break; } }
private void eleteModToolStripMenuItem_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); const string sortedList = "sortedFileListComplete.xml"; var gam = reg.Read(RegKeys.CURRENT_GAME); var pth = string.Empty; switch (gam) { case "ATS": pth = reg.Read(AtsRegKeys.ATS_XML) + sortedList; break; case "ETS": pth = reg.Read(EtsRegKeys.ETS_XML) + sortedList; break; case "FS15": pth = reg.Read(Fs15RegKeys.FS15_XML) + sortedList; break; case "FS17": pth = reg.Read(Fs17RegKeys.FS17_XML) + sortedList; break; } DeleteRepoMod(pth); }
/// <summary> /// Loads the ats profiles. /// </summary> /// <returns></returns> public IEnumerable <string> LoadAtsProfiles() { var ats = new AtsRegWork(true); var lst = GetFilesFolders.GetFolders(ats.Read(AtsRegKeys.ATS_PROFILES), "*.*"); return(lst); }
/// <summary> /// Edits the mod. /// </summary> /// <param name="mod">The mod.</param> /// <returns></returns> public string EditMod(string mod) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); Dictionary <string, string> dic; string xmlPath; var pth = string.Empty; string modPath; switch (gam) { case "ATS": xmlPath = reg.Read(AtsRegKeys.ATS_XML) + "sortedFileListComplete.xml"; dic = Serializer.DeserializeDictionary(xmlPath); pth = GetPath(mod, dic, pth); modPath = pth + mod; FsZip.ExtractModScs(modPath); break; case "ETS": xmlPath = reg.Read(EtsRegKeys.ETS_XML) + "sortedFileListComplete.xml"; dic = Serializer.DeserializeDictionary(xmlPath); pth = GetPath(mod, dic, pth); modPath = pth + mod; FsZip.ExtractModScs(modPath); break; case "FS15": case "FS17": FsZip.ExtractArchive(mod); break; } return(pth + mod); }
private void bSaveWork_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var outPath = reg.Read(RegKeys.CURRENT_ORIGINAL_FILE_EDIT_PATH); FsZip.CreateArchive(outPath, reg.Read(RegKeys.CURRENT_EXTRACTED_FOLDER_PATH)); DeleteFiles.DeleteFilesOrFolders(reg.Read(RegKeys.CURRENT_EXTRACTED_FOLDER_PATH)); tree.Nodes.Clear(); switch (gam) { case "ATS": FolderCreator.CreatePublicFolders(reg.Read(AtsRegKeys.ATS_WORK)); break; case "ETS": FolderCreator.CreatePublicFolders(reg.Read(EtsRegKeys.ETS_WORK)); break; case "FS15": FolderCreator.CreatePublicFolders(reg.Read(Fs15RegKeys.FS15_WORK)); break; case "FS17": FolderCreator.CreatePublicFolders(reg.Read(Fs17RegKeys.FS17_WORK)); break; } }
private static void BuildGameModsList(string pth) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); Dictionary <string, string> dic; switch (gam) { case "ATS": if (!pth.FileExists()) { return; } dic = Serializer.DeserializeDictionary(pth); Serializer.SerializeDictionary(reg.Read(AtsRegKeys.ATS_GAME_MOD_FOLDER) + reg.Read(RegKeys.CURRENT_PROFILE) + XML_EXT, dic); break; case "ETS": if (!pth.FileExists()) { return; } dic = Serializer.DeserializeDictionary(pth); Serializer.SerializeDictionary(reg.Read(EtsRegKeys.ETS_GAME_MOD_FOLDER) + reg.Read(RegKeys.CURRENT_PROFILE) + XML_EXT, dic); break; } }
/// <summary> /// Loads the ats group mods. /// </summary> /// <param name="grp">The GRP.</param> /// <returns></returns> public IEnumerable <string> LoadAtsGroupMods(string grp) { var ats = new AtsRegWork(true); var lst = GetFilesFolders.GetFiles(ats.Read(AtsRegKeys.ATS_GROUPS) + grp + "\\", "*.scs"); return(lst); }
private void copyModsToolStripMenuItem_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var prof = reg.Read(RegKeys.CURRENT_PROFILE); if (prof.IsNullOrEmpty() || gam.IsNullOrEmpty()) { MsgBx.Msg("You need to select a Game / Profile to use this Function", "Missing Data"); return; } var cm = new CopyMods(); var dic = cm.CopyProfileMods(); if (dic.IsNull()) { return; } lstProfileMods.Items.Clear(); foreach (var v in dic) { lstProfileMods.Items.Add(v.Key); } }
private static string SetGameSettingString() { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var profile = reg.Read(RegKeys.CURRENT_PROFILE) + "\\"; string profilePath; var pth = string.Empty; switch (gam) { case "FS15": profilePath = reg.Read(Fs15RegKeys.FS15_PROFILES); pth = ProfilePathPreTrue + Vars.QuoteMark + profilePath + profile + Vars.QuoteMark + " " + PROFILE_PATH_END; break; case "FS17": profilePath = reg.Read(Fs17RegKeys.FS17_PROFILES); pth = ProfilePathPreTrue + Vars.QuoteMark + profilePath + profile + Vars.QuoteMark + " " + PROFILE_PATH_END; break; } return(pth); }
private static void ModifyGameSettings() { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var fw = new FileWriter(); var tmp = new List <string>(); switch (gam) { case "FS15": tmp = fw.FileToList(reg.Read(Fs15RegKeys.FS15_GAME_SETTINGS_XML)); break; case "FS17": tmp = fw.FileToList(reg.Read(Fs17RegKeys.FS17_GAME_SETTINGS_XML)); break; } foreach (var s in tmp) { if (!s.Contains(@"<modsDirectoryOverride")) { continue; } tmp.Remove(s); tmp.Insert(6, SetGameSettingString()); break; } fw.ChangeGameSettings(tmp); }
/// <summary> /// Loads the ats groups. /// </summary> /// <returns></returns> public IEnumerable <string> LoadEtsGroups() { var ets = new AtsRegWork(true); var lst = GetFilesFolders.GetFolders(ets.Read(EtsRegKeys.ETS_GROUPS), "*.*"); return(lst); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { var gi = new GameInfo(); var reg = new AtsRegWork(true); reg.Write(RegKeys.CURRENT_PROFILE, ""); gi.SetGame(""); }
/// <summary> /// Checks the base hash. /// </summary> public void CheckBaseHash() { var reg = new AtsRegWork(true); var acGam = reg.Read(RegKeys.CURRENT_GAME); string tmp; string hsh; string newHash; switch (acGam) { case "ATS": tmp = reg.Read(AtsRegKeys.ATS_BASE_SCS_LOCATION); if (tmp.IsNullOrEmpty()) { LocateBase(); tmp = reg.Read(AtsRegKeys.ATS_BASE_SCS_LOCATION); } hsh = reg.Read(AtsRegKeys.ATS_BASE_HASH); newHash = Hasher.HashFile(tmp); if (!string.Equals(newHash, hsh, StringComparison.OrdinalIgnoreCase)) { reg.Write(AtsRegKeys.ATS_BASE_HASH, newHash); ExtractBaseFiles(); ExtractDefFiles(); } else { MsgBx.Msg("No Update Necessary", "Up to Date Base Files"); } break; case "ETS": tmp = reg.Read(EtsRegKeys.ETS_BASE_SCS_LOCATION); if (tmp.IsNullOrEmpty()) { LocateBase(); tmp = reg.Read(EtsRegKeys.ETS_BASE_SCS_LOCATION); } hsh = reg.Read(EtsRegKeys.ETS_BASE_HASH); newHash = Hasher.HashFile(tmp); if (!string.Equals(newHash, hsh, StringComparison.OrdinalIgnoreCase)) { reg.Write(EtsRegKeys.ETS_BASE_HASH, newHash); ExtractBaseFiles(); ExtractDefFiles(); } else { MsgBx.Msg("No Update Necessary", "Up to Date Base Files"); } break; } }
private void bLoadSaveGames_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); string savePath; switch (gam) { case "FS15": savePath = reg.Read(Fs15RegKeys.FS15_SAVE_GAMES); if (savePath.IsNullOrEmpty()) { var ofd = new FolderBrowserDialog { Description = @"Navigate to the FS 15 SaveGame folder", ShowNewFolderButton = false }; ofd.ShowDialog(); if (!ofd.SelectedPath.IsNullOrEmpty()) { savePath = ofd.SelectedPath; reg.Write(Fs15RegKeys.FS15_SAVE_GAMES, savePath); } else { return; } } LoadTree(savePath); break; case "FS17": savePath = reg.Read(Fs17RegKeys.FS17_SAVE_GAMES); if (savePath.IsNullOrEmpty()) { var ofd = new FolderBrowserDialog { Description = @"Navigate to the FS 17 SaveGame folder", ShowNewFolderButton = false }; ofd.ShowDialog(); if (!ofd.SelectedPath.IsNullOrEmpty()) { savePath = ofd.SelectedPath; reg.Write(Fs17RegKeys.FS17_SAVE_GAMES, savePath); } else { return; } } LoadTree(savePath); break; } }
/// <summary> /// Loads the ats mod choice. /// </summary> /// <param name="chc">The CHC.</param> /// <returns></returns> public string LoadAtsModChoice(string chc) { var ats = new AtsRegWork(true); var fnd = string.Empty; var dic = Serializer.DeserializeDictionary(ats.Read(AtsRegKeys.ATS_XML) + "sortedFileListComplete.xml"); if (dic.Any(v => string.Equals(v.Key, chc, StringComparison.OrdinalIgnoreCase))) { dic.TryGetValue(chc, out fnd); } return(fnd + chc); }
/// <summary> /// Loads the ats profile mods. /// </summary> /// <param name="prof">The PTH.</param> /// <returns></returns> public Dictionary <string, string> LoadAtsProfileMods(string prof) { var ats = new AtsRegWork(true); var pro = ats.Read(AtsRegKeys.ATS_PROFILES) + prof + "\\" + prof + ".xml"; if (!pro.FileExists()) { return(null); } var dic = Serializer.DeserializeDictionary(pro); return(dic); }
private static string GetLocation() { var gi = new GameInfo(); var tmp = gi.GetGame(); if (tmp.IsNullOrEmpty()) { return(null); } var pth = string.Empty; switch (tmp) { case "ATS": var atsp = new AtsRegWork(true); pth = atsp.Read(AtsRegKeys.ATS_GROUPS); break; case "ETS": var etsp = new EtsRegWork(true); pth = etsp.Read(EtsRegKeys.ETS_GROUPS); break; case "FS15": var fs15 = new Fs15RegWork(true); pth = fs15.Read(Fs15RegKeys.FS15_GROUPS); break; case "FS17": var fs17 = new Fs17RegWork(true); pth = fs17.Read(Fs17RegKeys.FS17_GROUPS); break; } var lst = GetFilesFolders.GetFolders(pth, "*.*"); var frm = new ModMover(); foreach (var f in lst) { frm.lstModMove.Items.Add(f); } frm.ShowDialog(); var fld = frm.lstModMove.SelectedItem.ToString(); frm.Close(); return(fld); }
private static void DeleteMods() { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); string pth; IEnumerable <string> lst; switch (gam) { case "ATS": pth = reg.Read(AtsRegKeys.ATS_GAME_MOD_FOLDER); if (!pth.FolderExists()) { return; } lst = GetFilesFolders.GetFiles(pth, "*.*"); foreach (var t in lst) { try { DeleteFile(t); } catch (Exception g) { MsgBx.Msg(g.ToString(), "Error"); } } FolderCreator.CreatePublicFolders(reg.Read(AtsRegKeys.ATS_GAME_MOD_FOLDER)); break; case "ETS": pth = reg.Read(EtsRegKeys.ETS_GAME_MOD_FOLDER); if (!pth.FolderExists()) { return; } lst = GetFilesFolders.GetFiles(pth, "*.*"); foreach (var s in lst) { try { DeleteFile(s); } catch (Exception g) { MsgBx.Msg(g.ToString(), "Error"); } } FolderCreator.CreatePublicFolders(reg.Read(EtsRegKeys.ETS_GAME_MOD_FOLDER)); break; } }
private void checkForBaseFilesUpdateToolStripMenuItem_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); switch (gam) { case "ATS": case "ETS": var bs = new BaseFileExtractor(); bs.CheckBaseHash(); break; } }
private void LoadProfileMods() { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); if (lstSortMods.SelectedItem.IsNull()) { return; } var chc = lstSortMods.SelectedItem.ToString(); lstAvailableMods.Items.Clear(); IEnumerable <string> lst = null; switch (gam) { case "ATS": var ats = new AtsLoader(); lst = ats.LoadAtsGroupMods(chc); break; case "ETS": var ets = new EtsLoader(); lst = ets.LoadEtsGroupMods(chc); break; case "FS15": var fs15 = new Fs15Loader(); lst = fs15.LoadFs15GroupMods(chc); break; case "FS17": var fs17 = new Fs17Loader(); lst = fs17.LoadFs17GroupMods(chc); break; } if (lst == null) { return; } foreach (var v in lst) { lstAvailableMods.Items.Add(v.GetFileName()); } CheckModCount(); }
private void bAddNewProfile_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); if (txtAddProfile.Text.IsNullOrEmpty()) { return; } var prof = new ProfileWorker(); prof.AddNewProfile(txtAddProfile.Text); txtAddProfile.Text = string.Empty; lblProfiles.Text = @"Active Profiles: " + lstProfiles.Items.Count; GameLoader(gam); }
/// <summary> /// Changes the game settings. /// </summary> /// <param name="tmp">The temporary.</param> public void ChangeGameSettings(IEnumerable <string> tmp) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); switch (gam) { case "FS15": File.WriteAllLines(reg.Read(Fs15RegKeys.FS15_GAME_SETTINGS_XML), tmp); break; case "FS17": File.WriteAllLines(reg.Read(Fs17RegKeys.FS17_GAME_SETTINGS_XML), tmp); break; } }
/// <summary> /// Builds the mod list. /// </summary> /// <param name="key">The key.</param> public void BuildProfileList(string key) { var reg = new AtsRegWork(true); var prof = reg.Read(RegKeys.CURRENT_PROFILE); var gam = reg.Read(RegKeys.CURRENT_GAME); string pth; string loc; var origPath = string.Empty; Dictionary <string, string> dic; const string xml = @"sortedFileListComplete.xml"; switch (gam) { case "ATS": pth = reg.Read(AtsRegKeys.ATS_PROFILES) + prof + "\\" + prof + XML_EXT; loc = reg.Read(AtsRegKeys.ATS_XML) + xml; dic = Serializer.DeserializeDictionary(loc); origPath = GetOrigPath(key, dic, origPath); BuildModList(pth, key, origPath); BuildGameModsList(pth); break; case "ETS": pth = reg.Read(EtsRegKeys.ETS_PROFILES) + prof + "\\" + prof + XML_EXT; loc = reg.Read(AtsRegKeys.ATS_XML) + xml; dic = Serializer.DeserializeDictionary(loc); origPath = GetOrigPath(key, dic, origPath); BuildModList(pth, key, origPath); BuildGameModsList(pth); break; case "FS15": pth = reg.Read(Fs15RegKeys.FS15_PROFILES) + prof + "\\" + prof + XML_EXT; loc = reg.Read(Fs15RegKeys.FS15_PROFILES) + prof + "\\"; BuildModList(pth, key, loc); break; case "FS17": pth = reg.Read(Fs17RegKeys.FS17_PROFILES) + prof + "\\" + prof + XML_EXT; loc = reg.Read(Fs17RegKeys.FS17_PROFILES) + prof + "\\"; BuildModList(pth, key, loc); break; } }
private void bLoadExtraction_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); switch (gam) { case "ATS": tree.Nodes.Clear(); LoadTree(reg.Read(AtsRegKeys.ATS_EXTRACTION)); break; case "ETS": tree.Nodes.Clear(); LoadTree(reg.Read(EtsRegKeys.ETS_EXTRACTION)); break; } }
private void addToNewHollandToolStripMenuItem_Click(object sender, EventArgs e) { if (lstAvailableMods.SelectedItem.IsNull()) { return; } var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var cProf = reg.Read(RegKeys.CURRENT_PROFILE); if (gam.IsNullOrEmpty() || cProf.IsNullOrEmpty()) { MsgBx.Msg("You need to have a Profile / Game active", "Process Error"); return; } LoadOuts.CreateLoadouts("NewHolland", lstAvailableMods.SelectedItem.ToString()); }
/// <summary> /// Removes the mod. /// </summary> /// <param name="key">The key.</param> /// <returns></returns> public Dictionary <string, string> ProfileRemoveMod(string key) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var profile = reg.Read(RegKeys.CURRENT_PROFILE); var modPath = string.Empty; switch (gam) { case "ATS": modPath = reg.Read(AtsRegKeys.ATS_PROFILES) + profile + "\\" + profile + XML_EXT; break; case "ETS": modPath = reg.Read(EtsRegKeys.ETS_PROFILES) + profile + "\\" + profile + XML_EXT; break; case "FS15": modPath = reg.Read(Fs15RegKeys.FS15_PROFILES) + profile + "\\" + profile + XML_EXT; break; case "FS17": modPath = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\" + profile + XML_EXT; break; } var dic = Serializer.DeserializeDictionary(modPath); if (dic.Any(v => string.Equals(v.Key, key, StringComparison.OrdinalIgnoreCase))) { var mod = reg.Read(Fs17RegKeys.FS17_PROFILES) + profile + "\\" + key; dic.Remove(key); DeleteFiles.DeleteFilesOrFolders(mod); var ls = new ListCreator(); ls.CreateSortedLists(); ls.SortedFileListComplete(); MsgBx.Msg("Operation completed successfully", "Mod Remover"); } Serializer.SerializeDictionary(modPath, dic); return(dic); }
/// <summary> /// Extracts the archive. /// </summary> /// <param name="arcName">Name of the arc.</param> public static void ExtractArchive(string arcName) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); var extPath = string.Empty; var archive = string.Empty; Dictionary <string, string> dic = null; switch (gam) { case "FS15": extPath = reg.Read(Fs15RegKeys.FS15_WORK); dic = Serializer.DeserializeDictionary( reg.Read(Fs15RegKeys.FS15_XML) + "sortedFileListComplete.xml"); break; case "FS17": extPath = reg.Read(Fs17RegKeys.FS17_WORK); dic = Serializer.DeserializeDictionary( reg.Read(Fs17RegKeys.FS17_XML) + "sortedFileListComplete.xml"); break; } if (dic != null && dic.Any(v => string.Equals(v.Key, arcName, StringComparison.OrdinalIgnoreCase))) { dic.TryGetValue(arcName, out archive); } var folderName = arcName.GetNameNoExtension(); reg.Write(RegKeys.CURRENT_EXTRACTED_FOLDER_PATH, extPath + folderName + "\\"); archive = archive + arcName; if (!archive.FileExists()) { MsgBx.Msg("There was a problem with the path to the Archive", "Process Error"); return; } var line = @" x " + Vars.QuoteMark + archive + Vars.QuoteMark + " -o" + Vars.QuoteMark + extPath + "\\" + folderName + Vars.QuoteMark + @" -r"; ProcessArchive(line); MsgBx.Msg("Files have been extracted", "Archive Extractor"); }
/// <summary> /// Starts the ats. /// </summary> public void StartAts() { var ats = new AtsRegWork(true); var gam = ats.Read(AtsRegKeys.ATS_START_GAME_PATH); if (gam.IsNullOrEmpty()) { var ofd = new OpenFileDialog { CheckFileExists = true, Title = @"Navigate to the American Truck Simulator Exe" }; ofd.ShowDialog(); gam = ofd.FileName; ats.Write(AtsRegKeys.ATS_START_GAME_PATH, ofd.FileName); } Process.Start(gam); }
private static void CreateFolders() { var atsw = new AtsRegWork(true); var ofd = new FolderBrowserDialog { Description = @"Navigate to where you want the top folder for ATS", ShowNewFolderButton = false }; ofd.ShowDialog(); if (!ofd.SelectedPath.FolderExists()) { return; } var pth = ofd.SelectedPath; FolderCreator.CreatePublicFolders(pth + "\\ATSRepo"); atsw.Write(AtsRegKeys.ATS_REPO, pth + "\\ATSRepo\\"); var tmp = pth + "\\ATSRepo\\"; FolderCreator.CreatePublicFolders(tmp + "ATSExtraction"); atsw.Write(AtsRegKeys.ATS_EXTRACTION, tmp + "ATSExtraction"); FolderCreator.CreatePublicFolders(tmp + "ATSProfiles"); atsw.Write(AtsRegKeys.ATS_PROFILES, tmp + "ATSProfiles\\"); FolderCreator.CreatePublicFolders(tmp + "ATSGroups"); atsw.Write(AtsRegKeys.ATS_GROUPS, tmp + "ATSGroups\\"); FolderCreator.CreatePublicFolders(tmp + "ATSXml"); atsw.Write(AtsRegKeys.ATS_XML, tmp + "ATSXml\\"); FolderCreator.CreatePublicFolders(tmp + "ATSWork"); atsw.Write(AtsRegKeys.ATS_WORK, tmp + "ATSWork\\"); ofd = new FolderBrowserDialog { Description = @"Navigate to your ATS Game Mod Folder", ShowNewFolderButton = false }; ofd.ShowDialog(); if (ofd.SelectedPath.FolderExists()) { atsw.Write(AtsRegKeys.ATS_GAME_MOD_FOLDER, ofd.SelectedPath + "\\"); } MsgBx.Msg("All folders have been created for ATS", "Game Intializer"); }
private void editModToolStripMenuItem_Click(object sender, EventArgs e) { var reg = new AtsRegWork(true); var gam = reg.Read(RegKeys.CURRENT_GAME); Dictionary <string, string> dic = null; const string sortedList = "sortedFileListComplete.xml"; var key = lstAvailableMods.SelectedItem.ToString(); var pth = string.Empty; switch (gam) { case "ATS": dic = Serializer.DeserializeDictionary(reg.Read(AtsRegKeys.ATS_XML) + sortedList); break; case "ETS": dic = Serializer.DeserializeDictionary(reg.Read(EtsRegKeys.ETS_XML) + sortedList); break; case "FS15": dic = Serializer.DeserializeDictionary(reg.Read(Fs15RegKeys.FS15_XML) + sortedList); break; case "FS17": dic = Serializer.DeserializeDictionary(reg.Read(Fs17RegKeys.FS17_XML) + sortedList); break; } if (dic != null && dic.Any(v => string.Equals(v.Key, key, StringComparison.OrdinalIgnoreCase))) { dic.TryGetValue(key, out pth); } reg.Write(RegKeys.CURRENT_ORIGINAL_FILE_EDIT_PATH, pth + "\\" + key); var mt = new ModEdit(); reg.Write(RegKeys.CURRENT_FILE_EDIT, mt.EditMod(lstAvailableMods.SelectedItem.ToString())); var frm = new EditMod(); frm.LoadTree(); frm.ShowDialog(); }