示例#1
0
        public void ClearAllMods()
        {
            Settings settings = new Settings();

            settings.LoadFrom(directory, filename);
            settings.ModEntries = new List <ModEntry>();
            settings.SaveTo(directory, filename);
        }
示例#2
0
        public void SetGameData(GameData NewGameData)
        {
            Settings settings = new Settings();

            settings.LoadFrom(directory, filename);
            settings.GameData = NewGameData;
            settings.SaveTo(directory, filename);
        }
        public void ClearAllMods()
        {
            Settings settings = new Settings();

            settings.LoadFrom(xmlFilePath);
            settings.ModEntries = new List <ModEntry>();
            settings.SaveTo(xmlFilePath);
        }
        public void SetGameData(GameData NewGameData)
        {
            Settings settings = new Settings();

            settings.LoadFrom(xmlFilePath);
            settings.GameData = NewGameData;
            settings.SaveTo(xmlFilePath);
        }
        public void SetInstalledMods(List <ModEntry> NewModData)
        {
            Settings settings = new Settings();

            settings.LoadFrom(xmlFilePath);
            settings.ModEntries = NewModData;
            settings.SaveTo(xmlFilePath);
        }
示例#6
0
        public void RemoveMod(ModEntry Mod)
        {
            Settings settings = new Settings();

            settings.LoadFrom(directory, filename);
            ModEntry remMod = settings.ModEntries.Find(entry => entry.Name == Mod.Name);

            settings.ModEntries.Remove(remMod);
            settings.SaveTo(directory, filename);
        }
        public void RemoveMod(ModEntry Mod)
        {
            Settings settings = new Settings();

            settings.LoadFrom(xmlFilePath);
            ModEntry remMod = settings.ModEntries.Find(entry => entry.Name == Mod.Name);

            settings.ModEntries.Remove(remMod);
            settings.SaveTo(xmlFilePath);
        }
示例#8
0
        public void UpdateDatHash()
        {
            Settings settings = new Settings();

            settings.LoadFrom(directory, filename);

            // Hash 01.dat and update settings file
            string datHash = Tools.GetMd5Hash(ModManager.ZeroPath) + Tools.GetMd5Hash(ModManager.OnePath);

            settings.GameData.DatHash = datHash;
            Debug.LogLine(String.Format("[UpdateDatHash] Updated 00/01 dat hash to: {0}", datHash), Debug.LogLevel.All);
            settings.SaveTo(directory, filename);
        }
示例#9
0
        public void AddMod(ModEntry Mod)
        {
            Settings settings = new Settings();

            settings.LoadFrom(directory, filename);

            foreach (ModFpkEntry f in Mod.ModFpkEntries)
            {
                f.SourceType = FileSource.Mod;
                f.FpkFile    = Tools.ToQarPath(f.FpkFile);
                f.FilePath   = Tools.ToQarPath(f.FilePath);
            }

            foreach (ModQarEntry q in Mod.ModQarEntries)
            {
                q.SourceType = FileSource.Mod;
                q.FilePath   = Tools.ToQarPath(q.FilePath);
            }

            settings.ModEntries.Add(Mod);
            settings.SaveTo(directory, filename);
        }
示例#10
0
        internal void updateQarFileNames() // snakebite supports automatically updating filenames before they're installed, but will need to update old game settings from the prior version. 1-time-check per SB update
        {
            Settings settings = new Settings();

            settings.LoadFrom(xmlFilePath);
            HashingExtended.ReadDictionary();
            List <string> noUpdateQars = new List <string>();
            Dictionary <string, string> newNameDictionary = new Dictionary <string, string>();

            int foundUpdate = 0;

            foreach (ModQarEntry QarEntry in settings.GameData.GameQarEntries)
            {
                if (QarEntry.FilePath.StartsWith("/Assets/"))
                {
                    noUpdateQars.Add(QarEntry.FilePath);  continue;
                }
                string unhashedName = HashingExtended.UpdateName(QarEntry.FilePath);
                if (unhashedName != null)
                {
                    newNameDictionary.Add(QarEntry.FilePath, unhashedName);
                    foundUpdate++;

                    QarEntry.FilePath = unhashedName;
                }
                else
                {
                    noUpdateQars.Add(QarEntry.FilePath);
                }
            }
            if (foundUpdate > 0)
            {
                foreach (ModFpkEntry modFpkEntry in settings.GameData.GameFpkEntries.Where(entry => !noUpdateQars.Contains(entry.FpkFile)))
                {
                    string unHashedName;
                    if (newNameDictionary.TryGetValue(modFpkEntry.FpkFile, out unHashedName))
                    {
                        modFpkEntry.FpkFile = unHashedName;
                    }
                }
            }
            foreach (ModEntry mod in settings.ModEntries)
            {
                noUpdateQars.Clear();
                foreach (ModQarEntry modQar in mod.ModQarEntries)
                {
                    if (modQar.FilePath.StartsWith("/Assets/"))
                    {
                        noUpdateQars.Add(modQar.FilePath); continue;
                    }
                    string unHashedName;
                    if (newNameDictionary.TryGetValue(modQar.FilePath, out unHashedName))
                    {
                        modQar.FilePath = unHashedName;
                    }
                    else
                    {
                        unHashedName = HashingExtended.UpdateName(modQar.FilePath);
                        if (unHashedName != null)
                        {
                            newNameDictionary.Add(modQar.FilePath, unHashedName);
                            modQar.FilePath = unHashedName;
                            foundUpdate++;
                        }
                        else
                        {
                            noUpdateQars.Add(modQar.FilePath);
                        }
                    }
                }
                if (foundUpdate > 0)
                {
                    foreach (ModFpkEntry modFpkEntry in mod.ModFpkEntries.Where(entry => !noUpdateQars.Contains(entry.FpkFile)))
                    {
                        string unHashedName;
                        if (newNameDictionary.TryGetValue(modFpkEntry.FpkFile, out unHashedName))
                        {
                            modFpkEntry.FpkFile = unHashedName;
                        }
                    }
                }
            }
            settings.SaveTo(xmlFilePath);
        }