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); }
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); }
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); }