Globals.Prefs.Save C# (CSharp) Method

Save() public static method

Saves this instance.
public static Save ( ) : void
return void
        public static void Save()
        {
            #region Settings File
            XmlTextWriter writer = new XmlTextWriter(FilePath, Encoding.ASCII);
            writer.Formatting = Formatting.Indented;
            writer.WriteStartDocument();

            writer.WriteStartElement("entityUserSettings");
            writer.WriteElementString(XML_NODE_MAINMENUFILE, pathMainmenu);
            writer.WriteElementString(XML_NODE_MPSHAREDFILE, pathShared);
            writer.WriteElementString(XML_NODE_SPSHAREDFILE, pathSPShared);
            writer.WriteElementString(XML_NODE_BITMAPSFILE, pathBitmaps);

            writer.WriteElementString(XML_NODE_MAPSFOLDER, pathMapsFolder);
            writer.WriteElementString(XML_NODE_FONTSFOLDER, pathFontsFolder);
            writer.WriteElementString(XML_NODE_CLEANMAPSFOLDER, pathCleanMaps);
            writer.WriteElementString(XML_NODE_PLUGINSFOLDER, pathPluginsFolder);
            writer.WriteElementString(XML_NODE_BITMAPSFOLDER, pathBitmapsFolder);
            writer.WriteElementString(XML_NODE_EXTRACTSFOLDER, pathExtractsFolder);
            writer.WriteElementString(XML_NODE_PATCHFOLDER, pathPatchFolder);

            writer.WriteElementString(XML_NODE_USEDEFMAPS, useDefaultMaps.ToString());
            writer.WriteElementString(XML_NODE_USEREGISTRY, useRegistryEntries.ToString());
            writer.WriteElementString(XML_NODE_CHECKUPDATE, checkUpdate.ToString());
            writer.WriteElementString(XML_NODE_LASTUPDATECHECK, lastCheck.ToString());

            writer.WriteStartElement(XML_NODE_RECENTMAPSLIST);
            // Only keep a list of the last 10 used maps (Entity only uses 4)
            for (int i = 0; i < Math.Min(RecentOpenedMaps.Count, 10); i++)
            {
                writer.WriteElementString(XML_NODE_RECENTMAP, RecentOpenedMaps[i].Path);
            }
            writer.WriteEndElement();

            writer.WriteStartElement(XML_NODE_QUICKACCESSTAGSLIST);
            for (int i = 0; i < QuickAccessTagTypes.Count; i++)
            {
                writer.WriteStartElement(XML_NODE_QUICKACCESSTAG);
                writer.WriteAttributeString(XML_ATTR_TAGTYPENAME, QuickAccessTagTypes[i].TagType);
                foreach (string tagPath in QuickAccessTagTypes[i].TagPaths)
                {
                    writer.WriteElementString(XML_NODE_QUICKACCESSTAGPATH, tagPath);
                }
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteStartElement(XML_NODE_USERPLUGINMASKS);
            foreach (CustomPluginMask mask in CustomPluginMasks)
            {
                writer.WriteStartElement(XML_NODE_PLUGINMASK);
                writer.WriteAttributeString(XML_ATTR_PLUGINMASKNAME, mask.Name);
                foreach (string tagType in mask.VisibleTagTypes)
                {
                    writer.WriteStartElement(XML_NODE_PLUGINMASK_VISIBLETAGTYPE);
                    writer.WriteAttributeString(XML_ATTR_TAGTYPENAME, tagType);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            writer.WriteEndElement();
            writer.Close();
            #endregion

            #region Registry Entries
            if (useRegistryEntries)
            {
                //RegistryAccess.removeValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2 + @"Entity\UseSettingsFile\", Application.StartupPath);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, "", "");

                // General Halo2 program settings
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.MainMenuFile, Prefs.pathMainmenu);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.SharedFile, Prefs.pathShared);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.SinglePlayerSharedFile, Prefs.pathSPShared);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.BitmapsFile, Prefs.pathBitmaps);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.MapsPath, Prefs.pathMapsFolder);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.FontsPath, Prefs.pathFontsFolder);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.CleanMapsPath, Prefs.pathCleanMaps);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.PluginsPath, Prefs.pathPluginsFolder);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.BitmapsPath, Prefs.pathBitmapsFolder);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2Paths, RegistryAccess.RegNames.ExtractsPath, Prefs.pathExtractsFolder);

                // Entity specific settings
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2 + @"Entity\", "PatchFolder", Prefs.pathPatchFolder);
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2 + @"Entity\", "UseDefaultMaps", Prefs.useDefaultMaps.ToString());
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2 + @"Entity\", "checkUpdate", Prefs.checkUpdate.ToString());
                RegistryAccess.setValue(Registry.CurrentUser, RegistryAccess.RegPaths.Halo2 + @"Entity\", "lastCheck", Prefs.lastCheck.ToString());

                // Save recently used maps list in the registry (max 10)
                for (int count = 0; count < Math.Min(RecentOpenedMaps.Count, 10); count++)
                {
                    RegistryAccess.setValue(
                        Registry.CurrentUser,
                        RegistryAccess.RegPaths.Halo2RecentFiles,
                        count.ToString(),
                        RecentOpenedMaps[count].Path);
                }
            }
            #endregion
        }