Esempio n. 1
0
        private static MacroSet FindCurrent()
        {
            MacroConfig config  = Macros.Config;
            Mobile      player  = World.Player;
            MacroSet    current = Macros.FindCurrent(config, player);

            if (current == null && player != null)
            {
                current = Macros.FindCurrent(config, (Mobile)null);
            }
            return(current);
        }
Esempio n. 2
0
        private static MacroSet FindCurrent(MacroConfig config, Mobile mob)
        {
            int      index1   = mob == null ? 0 : mob.Serial;
            int      index2   = mob == null ? 0 : (Engine.m_ServerName == null ? 0 : Engine.m_ServerName.GetHashCode());
            MacroSet macroSet = config[index1, index2];

            if (macroSet == null && (mob == null || Macros.Exists(Macros.GetMobilePath(mob))))
            {
                macroSet        = Macros.LoadTextMacroSet(mob);
                macroSet.Serial = index1;
                macroSet.Server = index2;
                config.MacroSets.Add(macroSet);
                Macros.Save();
            }
            return(macroSet);
        }
Esempio n. 3
0
        private static MacroConfig LoadConfig()
        {
            MacroConfig macroConfig       = new MacroConfig();
            string      configurationPath = Macros.GetConfigurationPath();

            if (!File.Exists(configurationPath))
            {
                string str = Engine.FileManager.BasePath("data/ultima/macros/macros.xml");
                if (File.Exists(str))
                {
                    try
                    {
                        File.Move(str, configurationPath);
                    }
                    catch
                    {
                        File.Copy(str, configurationPath, false);
                    }
                }
                else
                {
                    ArchivedFile archivedFile = Engine.FileManager.GetArchivedFile("play/macros/macros.xml");
                    if (archivedFile != null)
                    {
                        using (FileStream fileStream = new FileStream(configurationPath, FileMode.Create, FileAccess.Write, FileShare.None))
                            archivedFile.Download((Stream)fileStream);
                    }
                }
            }
            if (File.Exists(configurationPath))
            {
                using (FileStream fileStream = new FileStream(configurationPath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    XmlPersistanceReader persistanceReader = new XmlPersistanceReader((Stream)fileStream);
                    ((PersistanceReader)persistanceReader).ReadDocument((PersistableObject)macroConfig);
                    ((PersistanceReader)persistanceReader).Close();
                }
            }
            return(macroConfig);
        }