public PckViewForm() { InitializeComponent(); #region shared space information var consoleSharedSpace = new ConsoleSharedSpace(new SharedSpace()); console = consoleSharedSpace.GetNewConsole(); console.FormClosing += delegate(object sender, FormClosingEventArgs e) { e.Cancel = true; console.Hide(); }; FormClosed += (sender, e) => console.Close(); sharedSpace = SharedSpace.Instance; sharedSpace.GetObj("PckView", this); sharedSpace.GetObj("AppDir", Environment.CurrentDirectory); sharedSpace.GetObj("CustomDir", Environment.CurrentDirectory + "/custom"); sharedSpace.GetObj("SettingsDir", Environment.CurrentDirectory + "/settings"); xConsole.AddLine("Current directory: " + sharedSpace["AppDir"]); xConsole.AddLine("Custom directory: " + sharedSpace["CustomDir"].ToString()); #endregion _totalViewPck = new TotalViewPck(); _totalViewPck.Dock = DockStyle.Fill; DrawPanel.Controls.Add(_totalViewPck); _totalViewPck.View.DoubleClick += new EventHandler(doubleClick); _totalViewPck.ViewClicked += new PckViewMouseClicked(viewClicked); _totalViewPck.XCImageCollectionSet += new XCImageCollectionHandler(v_XCImageCollectionSet); _totalViewPck.ContextMenu = makeContextMenu(); SaveMenuItem.Visible = false; sharedSpace["Palettes"] = new Dictionary <string, Palette>(); palMI = new Dictionary <Palette, MenuItem>(); AddPalette(Palette.UFOBattle, miPalette); AddPalette(Palette.UFOGeo, miPalette); AddPalette(Palette.UFOGraph, miPalette); AddPalette(Palette.UFOResearch, miPalette); AddPalette(Palette.TFTDBattle, miPalette); AddPalette(Palette.TFTDGeo, miPalette); AddPalette(Palette.TFTDGraph, miPalette); AddPalette(Palette.TFTDResearch, miPalette); currPal = Palette.UFOBattle; // currPal = Palette.TFTDBattle; palMI[currPal].Checked = true; // kL_ufoPalette _totalViewPck.Pal = currPal; // kL_ufoPalette editor = new Editor(null); editor.Closing += new CancelEventHandler(editorClosing); if (editor != null) // kL_ufoPalette { editor.Palette = currPal; // kL_ufoPalette } RegistryInfo ri = new RegistryInfo(this, "PckView"); ri.AddProperty("FilterIndex"); ri.AddProperty("SelectedPalette"); if (!File.Exists("hq2xa.dll")) { miHq2x.Visible = false; } loadedTypes = new LoadOfType <IXCImageFile>(); loadedTypes.OnLoad += new LoadOfType <IXCImageFile> .TypeLoadDelegate(loadedTypes_OnLoad); sharedSpace["ImageMods"] = loadedTypes.AllLoaded; // loadedTypes.OnLoad += new LoadOfType<IXCFile>.TypeLoadDelegate(sortLoaded); loadedTypes.LoadFrom(Assembly.GetExecutingAssembly()); loadedTypes.LoadFrom(Assembly.GetAssembly(typeof(XCom.Interfaces.IXCImageFile))); if (Directory.Exists(sharedSpace["CustomDir"].ToString())) { //Console.WriteLine("Custom directory exists: " + sharedSpace["CustomDir"].ToString()); xConsole.AddLine("Custom directory exists: " + sharedSpace["CustomDir"].ToString()); foreach (string s in Directory.GetFiles(sharedSpace["CustomDir"].ToString())) { if (s.EndsWith(".dll")) { xConsole.AddLine("Loading dll: " + s); loadedTypes.LoadFrom(Assembly.LoadFrom(s)); } else if (s.EndsWith(xcProfile.PROFILE_EXT)) { foreach (xcProfile ip in ImgProfile.LoadFile(s)) { loadedTypes.Add(ip); } } } } osFilter = new OpenSaveFilter(); osFilter.SetFilter(IXCImageFile.Filter.Open); openDictionary = new Dictionary <int, IXCImageFile>(); saveDictionary = new Dictionary <int, IXCImageFile>(); osFilter.SetFilter(IXCImageFile.Filter.Open); string filter = loadedTypes.CreateFilter(osFilter, openDictionary); openFile.Filter = filter; }