| 1 | cycrow | 1 | #pragma once
 | 
        
           |  |  | 2 |   | 
        
           |  |  | 3 | #include <spk.h>
 | 
        
           |  |  | 4 |   | 
        
           |  |  | 5 | using namespace System;
 | 
        
           |  |  | 6 | using namespace System::ComponentModel;
 | 
        
           |  |  | 7 | using namespace System::Collections;
 | 
        
           |  |  | 8 | using namespace System::Windows::Forms;
 | 
        
           |  |  | 9 | using namespace System::Data;
 | 
        
           |  |  | 10 | using namespace System::Drawing;
 | 
        
           |  |  | 11 | using namespace System::Threading;
 | 
        
           |  |  | 12 |   | 
        
           |  |  | 13 | #include "About.h"
 | 
        
           |  |  | 14 | #include "PackageInstalled.h"
 | 
        
           |  |  | 15 | #include "GameLauncherFlags.h"
 | 
        
           |  |  | 16 | #include "FakePatchControl.h"
 | 
        
           | 2 | cycrow | 17 | //TODO: remove this, move to a generic shared space
 | 
        
           |  |  | 18 | #include "..\..\SpkExplorer\src\Forms\PackageInfo.h"
 | 
        
           | 1 | cycrow | 19 | #include "CheckUpdate.h"
 | 
        
           |  |  | 20 | #include "MenuBar.h"
 | 
        
           | 2 | cycrow | 21 | //TODO: remove this, move to a generic shared space
 | 
        
           |  |  | 22 | #include "..\..\Creator\src\Forms\Waiting.h"
 | 
        
           | 1 | cycrow | 23 |   | 
        
           |  |  | 24 | enum {MGUI_BACKGROUND_NONE, MGUI_BACKGROUND_INSTALL, MGUI_BACKGROUND_UNINSTALL, MGUI_BACKGROUND_DISABLE, MGUI_BACKGROUND_CHANGEDIR, MGUI_BACKGROUND_ADDDIR, MGUI_BACKGROUND_INSTALLBUILTIN, MGUI_BACKGROUND_REMOVEDIR};
 | 
        
           |  |  | 25 | enum {SORT_NAME, SORT_AUTHOR, SORT_VERSION, SORT_CREATED, SORT_TYPE, SORT_ENABLE, SORT_SIGNED};
 | 
        
           |  |  | 26 |   | 
        
           |  |  | 27 | #define MAXTIPS 1
 | 
        
           |  |  | 28 |   | 
        
           |  |  | 29 | #define TIPSECTION_YESNO		0
 | 
        
           |  |  | 30 |   | 
        
           |  |  | 31 | #define TIP_NONE				0
 | 
        
           |  |  | 32 | #define TIP_SHIPUNINSTALL		1
 | 
        
           |  |  | 33 | #define TIP_SHIPDISABLE			2
 | 
        
           |  |  | 34 |   | 
        
           |  |  | 35 | namespace PluginManager {
 | 
        
           |  |  | 36 |   | 
        
           |  |  | 37 | 	/// <summary>
 | 
        
           |  |  | 38 | 	/// Summary for MainGui
 | 
        
           |  |  | 39 | 	///
 | 
        
           |  |  | 40 | 	/// WARNING: If you change the name of this class, you will need to change the
 | 
        
           |  |  | 41 | 	///          'Resource File Name' property for the managed resource compiler tool
 | 
        
           |  |  | 42 | 	///          associated with all .resx files this class depends on.  Otherwise,
 | 
        
           |  |  | 43 | 	///          the designers will not be able to interact properly with localized
 | 
        
           |  |  | 44 | 	///          resources associated with this form.
 | 
        
           |  |  | 45 | 	/// </summary>
 | 
        
           |  |  | 46 | 	public ref class MainGui : public System::Windows::Forms::Form
 | 
        
           |  |  | 47 | 	{
 | 
        
           |  |  | 48 | 	public:
 | 
        
           |  |  | 49 | 		MainGui(CPackages *p, CyStringList *list, CyStringList *removed, bool advanced)
 | 
        
           |  |  | 50 | 		{
 | 
        
           |  |  | 51 | 			InitializeComponent();
 | 
        
           |  |  | 52 |   | 
        
           |  |  | 53 | 			// additional controls
 | 
        
           |  |  | 54 | 			m_pMenuBar = gcnew MenuBar(this, advanced);
 | 
        
           |  |  | 55 | 			m_pWait = nullptr;
 | 
        
           |  |  | 56 |   | 
        
           |  |  | 57 | 			m_bAdvanced = advanced;
 | 
        
           |  |  | 58 | 			m_iSaveGameManager = -1;
 | 
        
           |  |  | 59 |   | 
        
           |  |  | 60 | 			m_lTips = gcnew ArrayList();
 | 
        
           |  |  | 61 | 			for ( int i = 0; i < MAXTIPS; i++ )
 | 
        
           |  |  | 62 | 			{
 | 
        
           |  |  | 63 | 				STips ^t = gcnew STips;
 | 
        
           |  |  | 64 | 				t->iTips = 0;
 | 
        
           |  |  | 65 | 				m_lTips->Add(t);
 | 
        
           |  |  | 66 | 				this->SetTipStrings(i);
 | 
        
           |  |  | 67 | 			}
 | 
        
           |  |  | 68 |   | 
        
           |  |  | 69 | 			// set  pointers
 | 
        
           |  |  | 70 | 			m_pPackages = p;
 | 
        
           |  |  | 71 | 			m_pDirList = list;
 | 
        
           |  |  | 72 | 			m_pRemovedDirList = removed;
 | 
        
           |  |  | 73 | 			m_pUpdateList = NULL;
 | 
        
           |  |  | 74 | 			m_pListItem = nullptr;
 | 
        
           |  |  | 75 | 			m_pFileErrors = new CyStringList;
 | 
        
           |  |  | 76 | 			m_bDirLocked = false;
 | 
        
           |  |  | 77 |   | 
        
           |  |  | 78 | 			// default values
 | 
        
           |  |  | 79 | 			m_iBackgroundTask = MGUI_BACKGROUND_NONE;
 | 
        
           |  |  | 80 | 			m_bSortingAsc = true;
 | 
        
           |  |  | 81 | 			m_iSortingColumn = SORT_NAME;
 | 
        
           |  |  | 82 | 			m_bExperimental = m_bCheat = m_bModSelectorDetails = m_bShips = m_bDownloadable = m_bSigned = false;
 | 
        
           |  |  | 83 | 			m_bAutoUpdate = true;
 | 
        
           |  |  | 84 | 			m_bRunningBackground = false;
 | 
        
           |  |  | 85 | 			m_bDisplayDialog = false;
 | 
        
           |  |  | 86 | 			m_bDisplayMessage = false;
 | 
        
           |  |  | 87 |   | 
        
           |  |  | 88 | 			m_sGameArgs = "-noabout";
 | 
        
           |  |  | 89 | 			m_pLauncherFlags = new SGameLauncherFlags;
 | 
        
           |  |  | 90 | 			m_pLauncherFlags->iIgnoreJoy = 0;
 | 
        
           |  |  | 91 | 			m_pLauncherFlags->bNoAbout = true;
 | 
        
           |  |  | 92 |   | 
        
           |  |  | 93 | 			m_iSizeX = -1;
 | 
        
           |  |  | 94 | 			m_iSizeY = -1;
 | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 | 			this->Text = GetProgramName(m_bAdvanced) + " " + GetVersionString();
 | 
        
           |  |  | 97 |   | 
        
           |  |  | 98 | 			// update the gui
 | 
        
           |  |  | 99 | 			this->UpdateControls();
 | 
        
           |  |  | 100 |   | 
        
           |  |  | 101 | 			// update the display
 | 
        
           |  |  | 102 | 			this->UpdateDirList();
 | 
        
           |  |  | 103 | 			this->UpdatePackages();
 | 
        
           |  |  | 104 |   | 
        
           |  |  | 105 | 			// setup the events
 | 
        
           |  |  | 106 | 			this->SetupEventHandlers();
 | 
        
           |  |  | 107 |   | 
        
           |  |  | 108 | 			//this->ButRun->Hide();
 | 
        
           |  |  | 109 | 		}
 | 
        
           |  |  | 110 |   | 
        
           |  |  | 111 | 		void DisplayLocked(bool inthread);
 | 
        
           |  |  | 112 | 		void GetGameDirs(CyString &dir, bool askDir, bool askDirAddon);
 | 
        
           |  |  | 113 | 		void CheckProtectedDir();
 | 
        
           |  |  | 114 | 		void PrepareSaveGameManager()
 | 
        
           |  |  | 115 | 		{
 | 
        
           |  |  | 116 | 			// copy save games to each game dir
 | 
        
           |  |  | 117 | 		}
 | 
        
           |  |  | 118 |   | 
        
           |  |  | 119 | 		void InstallArchive()
 | 
        
           |  |  | 120 | 		{
 | 
        
           |  |  | 121 | 			if ( m_bDirLocked ) {
 | 
        
           |  |  | 122 | 				this->DisplayLocked(false);
 | 
        
           |  |  | 123 | 				return;
 | 
        
           |  |  | 124 | 			}
 | 
        
           |  |  | 125 | 			OpenFileDialog ^ofd = gcnew OpenFileDialog();
 | 
        
           |  |  | 126 | 			ofd->Filter = "All Supported Archives|*.zip; *.rar|Zip Archive (*.zip)|*.zip|Rar Archive (*.rar)|*.rar";
 | 
        
           |  |  | 127 | 			ofd->Title = "Select archive file you wish to install";
 | 
        
           |  |  | 128 | 			ofd->FilterIndex = 1;
 | 
        
           |  |  | 129 | 			ofd->RestoreDirectory = true;
 | 
        
           |  |  | 130 | 			ofd->Multiselect = false;
 | 
        
           |  |  | 131 |   | 
        
           |  |  | 132 | 			if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
 | 
        
           |  |  | 133 | 			{
 | 
        
           |  |  | 134 | 				m_sConvertFile = ofd->FileName;
 | 
        
           |  |  | 135 | 				m_pWait = gcnew Creator::Waiting("Converting: " + IO::FileInfo(m_sConvertFile).Name);
 | 
        
           |  |  | 136 | 				this->backgroundWorker2->RunWorkerAsync();
 | 
        
           |  |  | 137 | 				m_pWait->ShowDialog(this);
 | 
        
           |  |  | 138 | 			}
 | 
        
           |  |  | 139 | 		}
 | 
        
           |  |  | 140 |   | 
        
           |  |  | 141 | 		void AboutDialog()
 | 
        
           |  |  | 142 | 		{
 | 
        
           |  |  | 143 | 			 CBaseFile *pm = m_pPackages->FindScriptByAuthor("PluginManager");
 | 
        
           |  |  | 144 | 			 System::String ^scriptVer = "None";
 | 
        
           |  |  | 145 | 			 if ( pm )
 | 
        
           |  |  | 146 | 			 {
 | 
        
           | 50 | cycrow | 147 | 				 scriptVer = _US(pm->version());
 | 
        
           |  |  | 148 | 				 if ( !pm->creationDate().empty() )
 | 
        
           |  |  | 149 | 					scriptVer += " (" + _US(pm->creationDate()) + ")";
 | 
        
           | 1 | cycrow | 150 | 			 }
 | 
        
           |  |  | 151 | 			About ^about = gcnew About(GetVersionString(), PMLDATE, scriptVer, m_bAdvanced);
 | 
        
           |  |  | 152 | 			about->ShowDialog(this);
 | 
        
           |  |  | 153 | 		}
 | 
        
           |  |  | 154 |   | 
        
           |  |  | 155 | 		// config
 | 
        
           |  |  | 156 | 		void SetSize(int x, int y) { m_iSizeX = x; m_iSizeY = y; }
 | 
        
           |  |  | 157 | 		void SetTipStrings(int section);
 | 
        
           |  |  | 158 | 		void SetTips(int tip, int done)
 | 
        
           |  |  | 159 | 		{
 | 
        
           |  |  | 160 | 			if ( tip < 0 )
 | 
        
           |  |  | 161 | 				return;
 | 
        
           |  |  | 162 | 			if ( tip > (int)MAXTIPS )
 | 
        
           |  |  | 163 | 				return;
 | 
        
           |  |  | 164 | 			((STips ^)m_lTips[tip])->iTips = done;
 | 
        
           |  |  | 165 | 		}
 | 
        
           |  |  | 166 | 		void SetSaveGameManager(int i) { m_iSaveGameManager = i; }
 | 
        
           |  |  | 167 | 		void SetExperimental(bool b) { m_bExperimental = b; }
 | 
        
           |  |  | 168 | 		void SetShips(bool b) { m_bShips = b; }
 | 
        
           |  |  | 169 | 		void SetOnlySigned(bool b) { m_bSigned = b; }
 | 
        
           |  |  | 170 | 		void SetCheat(bool b) { m_bCheat = b; }
 | 
        
           |  |  | 171 | 		void SetDownloadable(bool b) { m_bDownloadable = b; }
 | 
        
           |  |  | 172 | 		void SetModSelectorDetails(bool b) { m_bModSelectorDetails = b; }
 | 
        
           |  |  | 173 | 		void SetAutoUpdate(bool b) { m_bAutoUpdate = b; }
 | 
        
           |  |  | 174 | 		void SetIgnoreJoy(long j) { m_pLauncherFlags->iIgnoreJoy = j; }
 | 
        
           |  |  | 175 | 		void ForceEMP(bool b) { m_pPackages->SetForceEMP(b); }
 | 
        
           |  |  | 176 |   | 
        
           |  |  | 177 | 		int GetSaveGameManager() { return m_iSaveGameManager; }
 | 
        
           |  |  | 178 | 		bool IsModSelectorDetailsShowing() { return m_bModSelectorDetails; }
 | 
        
           |  |  | 179 | 		bool IsShips() { return m_bShips; }
 | 
        
           |  |  | 180 | 		bool IsOnlySigned() { return m_bSigned; }
 | 
        
           |  |  | 181 | 		bool IsExperimental() { return m_bExperimental; }
 | 
        
           |  |  | 182 | 		bool IsCheat() { return m_bCheat; }
 | 
        
           |  |  | 183 | 		bool IsDownloadable() { return m_bDownloadable; }
 | 
        
           |  |  | 184 | 		bool IsAutoUpdate() { return m_bAutoUpdate; }
 | 
        
           |  |  | 185 | 		int GetTips(int tip)
 | 
        
           |  |  | 186 | 		{
 | 
        
           |  |  | 187 | 			if ( tip < 0 || tip >= MAXTIPS )
 | 
        
           |  |  | 188 | 				return -1;
 | 
        
           |  |  | 189 | 			return ((STips ^)m_lTips[tip])->iTips;
 | 
        
           |  |  | 190 | 		}
 | 
        
           |  |  | 191 | 		int GetMaxTips() { return (int)MAXTIPS; }
 | 
        
           |  |  | 192 | 		long GetIgnoreJoy() { return m_pLauncherFlags->iIgnoreJoy; }
 | 
        
           |  |  | 193 |   | 
        
           |  |  | 194 | 		// gui updates
 | 
        
           |  |  | 195 | 		void UpdateDirList();
 | 
        
           |  |  | 196 | 		void UpdatePackages();
 | 
        
           |  |  | 197 | 		void UpdateControls();
 | 
        
           |  |  | 198 | 		bool UpdateBuiltInPackages();
 | 
        
           | 86 | cycrow | 199 | 		void AddIconToPackages(String ^icon);
 | 
        
           | 1 | cycrow | 200 |   | 
        
           |  |  | 201 | 		// auto update
 | 
        
           |  |  | 202 | 		void AutoUpdate();
 | 
        
           |  |  | 203 | 		System::String ^GetDownloadFile() { return m_sDownload; }
 | 
        
           |  |  | 204 |   | 
        
           |  |  | 205 | 		// Run
 | 
        
           |  |  | 206 | 		System::String ^GetRunFile() { return m_sRun; }
 | 
        
           |  |  | 207 | 		System::String ^GetGameArgs() { return m_sGameArgs; }
 | 
        
           |  |  | 208 |   | 
        
           |  |  | 209 | 		// setup functions
 | 
        
           |  |  | 210 | 		void SetupEventHandlers();
 | 
        
           |  |  | 211 | 		void StartCheckTimer();
 | 
        
           |  |  | 212 |   | 
        
           |  |  | 213 | 		// control functions
 | 
        
           |  |  | 214 | 		bool InstallPackage(System::String ^file, bool straightAway, bool builtin, bool background);
 | 
        
           |  |  | 215 | 		void ChangeDirectory(CyString dir);
 | 
        
           |  |  | 216 |   | 
        
           |  |  | 217 | 		void SetGameArgs(System::String ^args) { m_sGameArgs = args; }
 | 
        
           |  |  | 218 | 		void AddGameArgs(System::String ^args) { m_sGameArgs += " " + args; }
 | 
        
           |  |  | 219 |   | 
        
           |  |  | 220 | 		bool DisplayTip(int tipsection, int tip);
 | 
        
           |  |  | 221 | 		void CheckUnusedShared();
 | 
        
           |  |  | 222 |   | 
        
           |  |  | 223 | 		bool CheckAccessRights(String ^dir);
 | 
        
           |  |  | 224 | 		void ClearSelectedItems();
 | 
        
           |  |  | 225 | 		void CheckFakePatchCompatability();
 | 
        
           |  |  | 226 |   | 
        
           |  |  | 227 | 		void PackageUpdates()
 | 
        
           |  |  | 228 | 		{
 | 
        
           |  |  | 229 | 			CheckUpdate ^update = gcnew CheckUpdate(m_pPackages, this->imageList1);
 | 
        
           |  |  | 230 | 			this->ClearSelectedItems();
 | 
        
           |  |  | 231 | 			if ( update->ShowDialog(this) == Windows::Forms::DialogResult::OK )
 | 
        
           |  |  | 232 | 			{
 | 
        
           |  |  | 233 | 				for ( int i = 0; i < update->GetInstallList()->Count; i++ )
 | 
        
           |  |  | 234 | 					this->InstallPackage(Convert::ToString(update->GetInstallList()[i]), false, false, true);
 | 
        
           |  |  | 235 | 				this->StartInstalling(false, true);
 | 
        
           |  |  | 236 | 			}
 | 
        
           |  |  | 237 | 		}
 | 
        
           |  |  | 238 |   | 
        
           |  |  | 239 | 		// external control events
 | 
        
           |  |  | 240 | 		void InstallEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 241 | 		void VanillaEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 242 | 		void ModifiedEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 243 | 		void AddDirectoryEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 244 | 		void ModSelectorEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 245 | 		void PackageBrowserEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 246 |   | 
        
           |  |  | 247 | 		void FindPackagesOnline();
 | 
        
           |  |  | 248 | 		void ViewFileLog();
 | 
        
           |  |  | 249 | 		void EditGlobalsDialog();
 | 
        
           | 88 | cycrow | 250 | 		void EditWaresDialog();
 | 
        
           | 89 | cycrow | 251 | 		void CommandSlotsDialog();
 | 
        
           | 1 | cycrow | 252 | 		void FakePatchControlDialog();
 | 
        
           |  |  | 253 | 		void RemoveDirectory();
 | 
        
           |  |  | 254 | 		void ExportPackageList();
 | 
        
           |  |  | 255 | 		void VerifyInstalledFiles();
 | 
        
           |  |  | 256 | 		CPackages *GetPackageControl() { return m_pPackages; }
 | 
        
           |  |  | 257 |   | 
        
           |  |  | 258 | 	protected:
 | 
        
           |  |  | 259 | 		/// <summary>
 | 
        
           |  |  | 260 | 		/// Clean up any resources being used.
 | 
        
           |  |  | 261 | 		/// </summary>
 | 
        
           |  |  | 262 | 		~MainGui()
 | 
        
           |  |  | 263 | 		{
 | 
        
           |  |  | 264 | 			if (components)
 | 
        
           |  |  | 265 | 			{
 | 
        
           |  |  | 266 | 				delete components;
 | 
        
           |  |  | 267 | 			}
 | 
        
           |  |  | 268 | 			delete m_pFileErrors;
 | 
        
           |  |  | 269 | 			delete m_pLauncherFlags;
 | 
        
           |  |  | 270 | 		}
 | 
        
           |  |  | 271 |   | 
        
           |  |  | 272 | 	private:
 | 
        
           |  |  | 273 | 		// Events
 | 
        
           |  |  | 274 | 		void ClosedEvent(System::Object ^Sender, System::EventArgs ^E) { this->Close(); }
 | 
        
           |  |  | 275 | 		void PackageListSelected(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 276 | 		void PackageListSort(System::Object ^Sender, ColumnClickEventArgs ^E);
 | 
        
           |  |  | 277 | 		void UninstallEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 278 | 		void DisableEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 279 | 		void ChangeDirectoryEvent(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 280 | 		void Background_DoWork(System::Object ^Sender, DoWorkEventArgs ^E);
 | 
        
           |  |  | 281 | 		void Background_Progress(System::Object ^Sender, ProgressChangedEventArgs ^E);
 | 
        
           |  |  | 282 | 		void Background_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E) { this->Background_Finished(); }
 | 
        
           |  |  | 283 | 		void Background_Finished();
 | 
        
           |  |  | 284 | 		void CloseEvent(System::Object ^Sender, FormClosingEventArgs ^E);
 | 
        
           |  |  | 285 | 		void Updater_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E);
 | 
        
           |  |  | 286 | 		void Updater_DoWork(System::Object ^Sender, DoWorkEventArgs ^E);
 | 
        
           |  |  | 287 | 		void TimerEvent_CheckFile(System::Object ^Sender, System::EventArgs ^E);
 | 
        
           |  |  | 288 | 		void RunItem(System::Object ^sender, System::EventArgs ^e);
 | 
        
           |  |  | 289 |   | 
        
           |  |  | 290 | 		ListViewItem ^FindSelectedItem();
 | 
        
           |  |  | 291 | 		CBaseFile *GetFileFromItem(ListViewItem ^item);
 | 
        
           |  |  | 292 |   | 
        
           |  |  | 293 | 		System::Void OpenContextMenu(System::Object ^Sender, CancelEventArgs ^E);
 | 
        
           |  |  | 294 | 		void _DisplayPackages(CBaseFile *currentParent, ListViewGroup ^addGroup);
 | 
        
           |  |  | 295 |   | 
        
           |  |  | 296 | 		void UpdateRunButton();
 | 
        
           |  |  | 297 | 		bool EnablePackage(CBaseFile *p);
 | 
        
           |  |  | 298 | 		bool StartInstallingArchive(bool builtin, bool background) { return StartInstalling(builtin, background, true); }
 | 
        
           |  |  | 299 | 		bool StartInstalling(bool builtin, bool background) { return StartInstalling(builtin, background, false); }
 | 
        
           |  |  | 300 | 		bool StartInstalling(bool builtin, bool background, bool archive);
 | 
        
           |  |  | 301 | 		void DoInstall(bool builtin, bool frombackground);
 | 
        
           |  |  | 302 | 		void DoUninstall();
 | 
        
           |  |  | 303 | 		void DoDisable();
 | 
        
           |  |  | 304 | 		bool RemoveCurrentDirectory();
 | 
        
           |  |  | 305 | 		CBaseFile *FindPackageFromList(ListViewItem ^item);
 | 
        
           |  |  | 306 |   | 
        
           |  |  | 307 | 		bool StartBackground(int type);
 | 
        
           |  |  | 308 | 		bool StartBackground(int type, System::String ^info);
 | 
        
           |  |  | 309 | 		void LaunchGame();
 | 
        
           |  |  | 310 | 		System::Windows::Forms::DialogResult DisplayMessageBox(bool inthread, System::String ^title, System::String ^text, MessageBoxButtons buttons, MessageBoxIcon icon);
 | 
        
           |  |  | 311 |   | 
        
           |  |  | 312 | 		void DisableList(ArrayList ^List);
 | 
        
           |  |  | 313 | 		void UninstallList(ArrayList ^List);
 | 
        
           |  |  | 314 |   | 
        
           |  |  | 315 | 		void RunFromToolItem(ToolStripMenuItem ^item);
 | 
        
           |  |  | 316 |   | 
        
           |  |  | 317 | 		MenuBar			^m_pMenuBar;
 | 
        
           |  |  | 318 | 		CPackages		*m_pPackages;
 | 
        
           |  |  | 319 | 		CyStringList	*m_pDirList;
 | 
        
           |  |  | 320 | 		CyStringList	*m_pRemovedDirList;
 | 
        
           |  |  | 321 | 		CyStringList	*m_pUpdateList;
 | 
        
           |  |  | 322 | 		CyStringList	*m_pFileErrors;
 | 
        
           |  |  | 323 | 		int				 m_iBackgroundTask;
 | 
        
           |  |  | 324 | 		int				 m_iSortingColumn;
 | 
        
           |  |  | 325 | 		bool			 m_bSortingAsc;
 | 
        
           |  |  | 326 |   | 
        
           |  |  | 327 | 		bool			 m_bSigned;
 | 
        
           |  |  | 328 | 		bool			 m_bShips;
 | 
        
           |  |  | 329 | 		bool			 m_bExperimental;
 | 
        
           |  |  | 330 | 		bool			 m_bCheat;
 | 
        
           |  |  | 331 | 		bool			 m_bDownloadable;
 | 
        
           |  |  | 332 | 		bool			 m_bModSelectorDetails;
 | 
        
           |  |  | 333 | 		bool			 m_bAutoUpdate;
 | 
        
           |  |  | 334 | 		bool			 m_bRunningBackground;
 | 
        
           |  |  | 335 | 		bool			 m_bAdvanced;
 | 
        
           |  |  | 336 | 		bool			 m_bDirLocked;
 | 
        
           |  |  | 337 |   | 
        
           |  |  | 338 | 		System::String	^m_sBackgroundInfo;
 | 
        
           |  |  | 339 | 		System::String	^m_sDownload;
 | 
        
           |  |  | 340 | 		System::String	^m_sRun;
 | 
        
           |  |  | 341 | 		System::String	^m_sGameArgs;
 | 
        
           |  |  | 342 |   | 
        
           |  |  | 343 | 		PackageInstalled ^m_pPi;
 | 
        
           |  |  | 344 | 		bool			m_bDisplayDialog;
 | 
        
           |  |  | 345 | 		bool			m_bDisplayMessage;
 | 
        
           |  |  | 346 | 		System::String ^m_sMessageTitle;
 | 
        
           |  |  | 347 | 		System::String ^m_sMessageText;
 | 
        
           |  |  | 348 | 		MessageBoxIcon  m_messageIcon;
 | 
        
           |  |  | 349 | 		MessageBoxButtons m_messageButtons;
 | 
        
           |  |  | 350 |   | 
        
           |  |  | 351 | 		int			m_iSizeX;
 | 
        
           |  |  | 352 | 		int			m_iSizeY;
 | 
        
           |  |  | 353 |   | 
        
           |  |  | 354 | 		SGameLauncherFlags *m_pLauncherFlags;
 | 
        
           |  |  | 355 |   | 
        
           |  |  | 356 | 		ArrayList ^m_lTips;
 | 
        
           |  |  | 357 | 		ListViewItem						^m_pListItem;
 | 
        
           |  |  | 358 |   | 
        
           |  |  | 359 | 		int			m_iSaveGameManager;
 | 
        
           |  |  | 360 | 		String			^m_sConvertFile;
 | 
        
           |  |  | 361 | 		Creator::Waiting	^m_pWait;
 | 
        
           |  |  | 362 | 		CArchiveFile	*m_pConverted;
 | 
        
           |  |  | 363 |   | 
        
           |  |  | 364 | 	private:
 | 
        
           |  |  | 365 | 	private:
 | 
        
           |  |  | 366 | 	private: System::Windows::Forms::GroupBox^  GroupDir;
 | 
        
           |  |  | 367 | 	private: System::Windows::Forms::ComboBox^  ComboDir;
 | 
        
           |  |  | 368 | 	private: System::Windows::Forms::ListView^  ListPackages;
 | 
        
           |  |  | 369 | 	private: System::Windows::Forms::ColumnHeader^  columnHeader1;
 | 
        
           |  |  | 370 | 	private: System::Windows::Forms::ColumnHeader^  columnHeader2;
 | 
        
           |  |  | 371 | 	private: System::Windows::Forms::ColumnHeader^  columnHeader3;
 | 
        
           |  |  | 372 | 	private: System::Windows::Forms::ColumnHeader^  columnHeader4;
 | 
        
           |  |  | 373 | 	private: System::Windows::Forms::ColumnHeader^  columnHeader5;
 | 
        
           |  |  | 374 | 	private: System::Windows::Forms::Panel^  panel1;
 | 
        
           |  |  | 375 | 	private: System::Windows::Forms::Button^  ButClose;
 | 
        
           |  |  | 376 | 	private: System::Windows::Forms::GroupBox^  GroupPackages;
 | 
        
           |  |  | 377 | 	private: System::Windows::Forms::ProgressBar^  ProgressBar;
 | 
        
           |  |  | 378 | 	private: System::Windows::Forms::Panel^  panel2;
 | 
        
           |  |  | 379 | 	private: System::Windows::Forms::Button^  ButUninstall;
 | 
        
           |  |  | 380 | 	private: System::Windows::Forms::Button^  ButDisable;
 | 
        
           |  |  | 381 | 	private: System::Windows::Forms::Button^  ButInstall;
 | 
        
           |  |  | 382 | 	private: System::ComponentModel::BackgroundWorker^  backgroundWorker1;
 | 
        
           |  |  | 383 | private: System::Windows::Forms::RichTextBox^  TextDesc;
 | 
        
           |  |  | 384 | private: System::Windows::Forms::Panel^  PanelDisplay;
 | 
        
           |  |  | 385 | private: System::Windows::Forms::PictureBox^  PictureDisplay;
 | 
        
           |  |  | 386 | private: System::ComponentModel::BackgroundWorker^  backgroundUpdater;
 | 
        
           |  |  | 387 | private: System::Windows::Forms::Button^  ButRun;
 | 
        
           |  |  | 388 | private: System::Windows::Forms::StatusStrip^  statusStrip1;
 | 
        
           |  |  | 389 | private: System::Windows::Forms::ToolStripStatusLabel^  LabelStatus;
 | 
        
           |  |  | 390 | private: System::Windows::Forms::ContextMenuStrip^  contextMenuStrip1;
 | 
        
           |  |  | 391 | private: System::Windows::Forms::ToolStripMenuItem^  uninstallToolStripMenuItem;
 | 
        
           |  |  | 392 | private: System::Windows::Forms::ToolStripSeparator^  ContextSeperator;
 | 
        
           |  |  | 393 | private: System::Windows::Forms::ToolStripMenuItem^  ContextEnable;
 | 
        
           |  |  | 394 | private: System::Windows::Forms::ToolStripMenuItem^  ContextDisable;
 | 
        
           |  |  | 395 | private: System::Windows::Forms::ToolStripMenuItem^  ContextName;
 | 
        
           |  |  | 396 | private: System::Windows::Forms::ToolStripSeparator^  toolStripSeparator3;
 | 
        
           |  |  | 397 | private: System::Windows::Forms::ImageList^  imageList1;
 | 
        
           |  |  | 398 | private: System::Windows::Forms::ToolStripMenuItem^  UninstallSelectedContext;
 | 
        
           |  |  | 399 | private: System::Windows::Forms::ColumnHeader^  columnHeader6;
 | 
        
           |  |  | 400 | private: System::Windows::Forms::ToolStripMenuItem^  viewReadmeToolStripMenuItem;
 | 
        
           |  |  | 401 | private: System::Windows::Forms::ToolStripMenuItem^  extrasToolStripMenuItem;
 | 
        
           |  |  | 402 | private: System::Windows::Forms::ImageList^  imageList2;
 | 
        
           |  |  | 403 | private: System::Windows::Forms::ImageList^  imageList3;
 | 
        
           |  |  | 404 | private: System::Windows::Forms::ToolStripSeparator^  ContextSeperator2;
 | 
        
           |  |  | 405 | private: System::Windows::Forms::ToolStripMenuItem^  emailAuthorToolStripMenuItem;
 | 
        
           |  |  | 406 | private: System::Windows::Forms::ToolStripMenuItem^  visitForumPageToolStripMenuItem;
 | 
        
           |  |  | 407 | private: System::Windows::Forms::ToolStripMenuItem^  visitWebSiteToolStripMenuItem;
 | 
        
           |  |  | 408 | private: System::Windows::Forms::ToolStripSeparator^  toolStripSeparator2;
 | 
        
           |  |  | 409 | private: System::Windows::Forms::ToolStripMenuItem^  checkForUpdatesToolStripMenuItem;
 | 
        
           |  |  | 410 | private: System::Windows::Forms::Button^  button1;
 | 
        
           |  |  | 411 | private: System::ComponentModel::BackgroundWorker^  backgroundWorker2;
 | 
        
           |  |  | 412 |   | 
        
           |  |  | 413 | private: System::ComponentModel::IContainer^  components;
 | 
        
           |  |  | 414 | 		 /// <summary>
 | 
        
           |  |  | 415 | 		/// Required designer variable.
 | 
        
           |  |  | 416 | 		/// </summary>
 | 
        
           |  |  | 417 |   | 
        
           |  |  | 418 |   | 
        
           |  |  | 419 | #pragma region Windows Form Designer generated code
 | 
        
           |  |  | 420 | 		/// <summary>
 | 
        
           |  |  | 421 | 		/// Required method for Designer support - do not modify
 | 
        
           |  |  | 422 | 		/// the contents of this method with the code editor.
 | 
        
           |  |  | 423 | 		/// </summary>
 | 
        
           |  |  | 424 | 		void InitializeComponent(void)
 | 
        
           |  |  | 425 | 		{
 | 
        
           |  |  | 426 | 			this->components = (gcnew System::ComponentModel::Container());
 | 
        
           |  |  | 427 | 			System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(MainGui::typeid));
 | 
        
           |  |  | 428 | 			this->GroupDir = (gcnew System::Windows::Forms::GroupBox());
 | 
        
           |  |  | 429 | 			this->ComboDir = (gcnew System::Windows::Forms::ComboBox());
 | 
        
           |  |  | 430 | 			this->ListPackages = (gcnew System::Windows::Forms::ListView());
 | 
        
           |  |  | 431 | 			this->columnHeader1 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 432 | 			this->columnHeader2 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 433 | 			this->columnHeader3 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 434 | 			this->columnHeader4 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 435 | 			this->columnHeader6 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 436 | 			this->columnHeader5 = (gcnew System::Windows::Forms::ColumnHeader());
 | 
        
           |  |  | 437 | 			this->contextMenuStrip1 = (gcnew System::Windows::Forms::ContextMenuStrip(this->components));
 | 
        
           |  |  | 438 | 			this->ContextName = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 439 | 			this->toolStripSeparator3 = (gcnew System::Windows::Forms::ToolStripSeparator());
 | 
        
           |  |  | 440 | 			this->uninstallToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 441 | 			this->UninstallSelectedContext = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 442 | 			this->ContextEnable = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 443 | 			this->ContextDisable = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 444 | 			this->ContextSeperator = (gcnew System::Windows::Forms::ToolStripSeparator());
 | 
        
           |  |  | 445 | 			this->viewReadmeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 446 | 			this->extrasToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 447 | 			this->ContextSeperator2 = (gcnew System::Windows::Forms::ToolStripSeparator());
 | 
        
           |  |  | 448 | 			this->emailAuthorToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 449 | 			this->visitForumPageToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 450 | 			this->visitWebSiteToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 451 | 			this->toolStripSeparator2 = (gcnew System::Windows::Forms::ToolStripSeparator());
 | 
        
           |  |  | 452 | 			this->checkForUpdatesToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
 | 
        
           |  |  | 453 | 			this->panel1 = (gcnew System::Windows::Forms::Panel());
 | 
        
           |  |  | 454 | 			this->ProgressBar = (gcnew System::Windows::Forms::ProgressBar());
 | 
        
           |  |  | 455 | 			this->ButRun = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 456 | 			this->ButClose = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 457 | 			this->GroupPackages = (gcnew System::Windows::Forms::GroupBox());
 | 
        
           |  |  | 458 | 			this->PanelDisplay = (gcnew System::Windows::Forms::Panel());
 | 
        
           |  |  | 459 | 			this->TextDesc = (gcnew System::Windows::Forms::RichTextBox());
 | 
        
           |  |  | 460 | 			this->PictureDisplay = (gcnew System::Windows::Forms::PictureBox());
 | 
        
           |  |  | 461 | 			this->panel2 = (gcnew System::Windows::Forms::Panel());
 | 
        
           |  |  | 462 | 			this->button1 = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 463 | 			this->ButUninstall = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 464 | 			this->ButDisable = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 465 | 			this->ButInstall = (gcnew System::Windows::Forms::Button());
 | 
        
           |  |  | 466 | 			this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
 | 
        
           |  |  | 467 | 			this->backgroundUpdater = (gcnew System::ComponentModel::BackgroundWorker());
 | 
        
           |  |  | 468 | 			this->statusStrip1 = (gcnew System::Windows::Forms::StatusStrip());
 | 
        
           |  |  | 469 | 			this->LabelStatus = (gcnew System::Windows::Forms::ToolStripStatusLabel());
 | 
        
           |  |  | 470 | 			this->imageList1 = (gcnew System::Windows::Forms::ImageList(this->components));
 | 
        
           |  |  | 471 | 			this->imageList2 = (gcnew System::Windows::Forms::ImageList(this->components));
 | 
        
           |  |  | 472 | 			this->imageList3 = (gcnew System::Windows::Forms::ImageList(this->components));
 | 
        
           |  |  | 473 | 			this->backgroundWorker2 = (gcnew System::ComponentModel::BackgroundWorker());
 | 
        
           |  |  | 474 | 			this->GroupDir->SuspendLayout();
 | 
        
           |  |  | 475 | 			this->contextMenuStrip1->SuspendLayout();
 | 
        
           |  |  | 476 | 			this->panel1->SuspendLayout();
 | 
        
           |  |  | 477 | 			this->GroupPackages->SuspendLayout();
 | 
        
           |  |  | 478 | 			this->PanelDisplay->SuspendLayout();
 | 
        
           |  |  | 479 | 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->PictureDisplay))->BeginInit();
 | 
        
           |  |  | 480 | 			this->panel2->SuspendLayout();
 | 
        
           |  |  | 481 | 			this->statusStrip1->SuspendLayout();
 | 
        
           |  |  | 482 | 			this->SuspendLayout();
 | 
        
           |  |  | 483 | 			// 
 | 
        
           |  |  | 484 | 			// GroupDir
 | 
        
           |  |  | 485 | 			// 
 | 
        
           |  |  | 486 | 			this->GroupDir->Controls->Add(this->ComboDir);
 | 
        
           |  |  | 487 | 			this->GroupDir->Dock = System::Windows::Forms::DockStyle::Top;
 | 
        
           |  |  | 488 | 			this->GroupDir->Location = System::Drawing::Point(0, 0);
 | 
        
           |  |  | 489 | 			this->GroupDir->Name = L"GroupDir";
 | 
        
           |  |  | 490 | 			this->GroupDir->Padding = System::Windows::Forms::Padding(5);
 | 
        
           |  |  | 491 | 			this->GroupDir->Size = System::Drawing::Size(626, 52);
 | 
        
           |  |  | 492 | 			this->GroupDir->TabIndex = 0;
 | 
        
           |  |  | 493 | 			this->GroupDir->TabStop = false;
 | 
        
           |  |  | 494 | 			this->GroupDir->Text = L"Current Directory";
 | 
        
           |  |  | 495 | 			// 
 | 
        
           |  |  | 496 | 			// ComboDir
 | 
        
           |  |  | 497 | 			// 
 | 
        
           |  |  | 498 | 			this->ComboDir->Dock = System::Windows::Forms::DockStyle::Fill;
 | 
        
           |  |  | 499 | 			this->ComboDir->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
 | 
        
           |  |  | 500 | 			this->ComboDir->FormattingEnabled = true;
 | 
        
           |  |  | 501 | 			this->ComboDir->Location = System::Drawing::Point(5, 18);
 | 
        
           |  |  | 502 | 			this->ComboDir->Margin = System::Windows::Forms::Padding(10);
 | 
        
           |  |  | 503 | 			this->ComboDir->Name = L"ComboDir";
 | 
        
           |  |  | 504 | 			this->ComboDir->Size = System::Drawing::Size(616, 21);
 | 
        
           |  |  | 505 | 			this->ComboDir->TabIndex = 0;
 | 
        
           |  |  | 506 | 			// 
 | 
        
           |  |  | 507 | 			// ListPackages
 | 
        
           |  |  | 508 | 			// 
 | 
        
           |  |  | 509 | 			this->ListPackages->AllowDrop = true;
 | 
        
           |  |  | 510 | 			this->ListPackages->Columns->AddRange(gcnew cli::array< System::Windows::Forms::ColumnHeader^  >(6) {this->columnHeader1, 
 | 
        
           |  |  | 511 | 				this->columnHeader2, this->columnHeader3, this->columnHeader4, this->columnHeader6, this->columnHeader5});
 | 
        
           |  |  | 512 | 			this->ListPackages->ContextMenuStrip = this->contextMenuStrip1;
 | 
        
           |  |  | 513 | 			this->ListPackages->Dock = System::Windows::Forms::DockStyle::Fill;
 | 
        
           |  |  | 514 | 			this->ListPackages->FullRowSelect = true;
 | 
        
           |  |  | 515 | 			this->ListPackages->HideSelection = false;
 | 
        
           |  |  | 516 | 			this->ListPackages->Location = System::Drawing::Point(3, 16);
 | 
        
           |  |  | 517 | 			this->ListPackages->Name = L"ListPackages";
 | 
        
           |  |  | 518 | 			this->ListPackages->ShowItemToolTips = true;
 | 
        
           |  |  | 519 | 			this->ListPackages->Size = System::Drawing::Size(620, 386);
 | 
        
           |  |  | 520 | 			this->ListPackages->TabIndex = 0;
 | 
        
           |  |  | 521 | 			this->ListPackages->UseCompatibleStateImageBehavior = false;
 | 
        
           |  |  | 522 | 			this->ListPackages->View = System::Windows::Forms::View::Details;
 | 
        
           |  |  | 523 | 			this->ListPackages->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &MainGui::ListPackages_MouseDoubleClick);
 | 
        
           |  |  | 524 | 			this->ListPackages->DragDrop += gcnew System::Windows::Forms::DragEventHandler(this, &MainGui::ListPackages_DragDrop);
 | 
        
           |  |  | 525 | 			this->ListPackages->DragOver += gcnew System::Windows::Forms::DragEventHandler(this, &MainGui::ListPackages_DragOver);
 | 
        
           | 86 | cycrow | 526 | 			this->ListPackages->DrawSubItem += gcnew System::Windows::Forms::DrawListViewSubItemEventHandler(this, &MainGui::ListPackages_DrawSubItem);
 | 
        
           | 1 | cycrow | 527 | 			// 
 | 
        
           |  |  | 528 | 			// columnHeader1
 | 
        
           |  |  | 529 | 			// 
 | 
        
           |  |  | 530 | 			this->columnHeader1->Text = L"Package";
 | 
        
           |  |  | 531 | 			// 
 | 
        
           |  |  | 532 | 			// columnHeader2
 | 
        
           |  |  | 533 | 			// 
 | 
        
           |  |  | 534 | 			this->columnHeader2->Text = L"Author";
 | 
        
           |  |  | 535 | 			// 
 | 
        
           |  |  | 536 | 			// columnHeader3
 | 
        
           |  |  | 537 | 			// 
 | 
        
           |  |  | 538 | 			this->columnHeader3->Text = L"Version";
 | 
        
           |  |  | 539 | 			this->columnHeader3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
 | 
        
           |  |  | 540 | 			// 
 | 
        
           |  |  | 541 | 			// columnHeader4
 | 
        
           |  |  | 542 | 			// 
 | 
        
           |  |  | 543 | 			this->columnHeader4->Text = L"Updated";
 | 
        
           |  |  | 544 | 			// 
 | 
        
           |  |  | 545 | 			// columnHeader6
 | 
        
           |  |  | 546 | 			// 
 | 
        
           |  |  | 547 | 			this->columnHeader6->DisplayIndex = 5;
 | 
        
           |  |  | 548 | 			this->columnHeader6->Text = L"Type";
 | 
        
           |  |  | 549 | 			// 
 | 
        
           |  |  | 550 | 			// columnHeader5
 | 
        
           |  |  | 551 | 			// 
 | 
        
           |  |  | 552 | 			this->columnHeader5->DisplayIndex = 4;
 | 
        
           |  |  | 553 | 			this->columnHeader5->Text = L"Enabled";
 | 
        
           |  |  | 554 | 			this->columnHeader5->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
 | 
        
           |  |  | 555 | 			// 
 | 
        
           |  |  | 556 | 			// contextMenuStrip1
 | 
        
           |  |  | 557 | 			// 
 | 
        
           |  |  | 558 | 			this->contextMenuStrip1->ImageScalingSize = System::Drawing::Size(24, 24);
 | 
        
           |  |  | 559 | 			this->contextMenuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(15) {this->ContextName, 
 | 
        
           |  |  | 560 | 				this->toolStripSeparator3, this->uninstallToolStripMenuItem, this->UninstallSelectedContext, this->ContextEnable, this->ContextDisable, 
 | 
        
           |  |  | 561 | 				this->ContextSeperator, this->viewReadmeToolStripMenuItem, this->extrasToolStripMenuItem, this->ContextSeperator2, this->emailAuthorToolStripMenuItem, 
 | 
        
           |  |  | 562 | 				this->visitForumPageToolStripMenuItem, this->visitWebSiteToolStripMenuItem, this->toolStripSeparator2, this->checkForUpdatesToolStripMenuItem});
 | 
        
           |  |  | 563 | 			this->contextMenuStrip1->Name = L"contextMenuStrip1";
 | 
        
           | 86 | cycrow | 564 | 			this->contextMenuStrip1->Size = System::Drawing::Size(216, 578);
 | 
        
           | 1 | cycrow | 565 | 			this->contextMenuStrip1->Opening += gcnew System::ComponentModel::CancelEventHandler(this, &MainGui::contextMenuStrip1_Opening);
 | 
        
           |  |  | 566 | 			// 
 | 
        
           |  |  | 567 | 			// ContextName
 | 
        
           |  |  | 568 | 			// 
 | 
        
           |  |  | 569 | 			this->ContextName->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextName.Image")));
 | 
        
           |  |  | 570 | 			this->ContextName->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 571 | 			this->ContextName->Name = L"ContextName";
 | 
        
           |  |  | 572 | 			this->ContextName->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 573 | 			this->ContextName->Text = L"Name";
 | 
        
           |  |  | 574 | 			this->ContextName->Click += gcnew System::EventHandler(this, &MainGui::ContextName_Click);
 | 
        
           |  |  | 575 | 			// 
 | 
        
           |  |  | 576 | 			// toolStripSeparator3
 | 
        
           |  |  | 577 | 			// 
 | 
        
           |  |  | 578 | 			this->toolStripSeparator3->Name = L"toolStripSeparator3";
 | 
        
           |  |  | 579 | 			this->toolStripSeparator3->Size = System::Drawing::Size(212, 6);
 | 
        
           |  |  | 580 | 			// 
 | 
        
           |  |  | 581 | 			// uninstallToolStripMenuItem
 | 
        
           |  |  | 582 | 			// 
 | 
        
           |  |  | 583 | 			this->uninstallToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"uninstallToolStripMenuItem.Image")));
 | 
        
           |  |  | 584 | 			this->uninstallToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 585 | 			this->uninstallToolStripMenuItem->Name = L"uninstallToolStripMenuItem";
 | 
        
           |  |  | 586 | 			this->uninstallToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 587 | 			this->uninstallToolStripMenuItem->Text = L"Uninstall";
 | 
        
           |  |  | 588 | 			this->uninstallToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::uninstallToolStripMenuItem_Click);
 | 
        
           |  |  | 589 | 			// 
 | 
        
           |  |  | 590 | 			// UninstallSelectedContext
 | 
        
           |  |  | 591 | 			// 
 | 
        
           |  |  | 592 | 			this->UninstallSelectedContext->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"UninstallSelectedContext.Image")));
 | 
        
           |  |  | 593 | 			this->UninstallSelectedContext->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 594 | 			this->UninstallSelectedContext->Name = L"UninstallSelectedContext";
 | 
        
           |  |  | 595 | 			this->UninstallSelectedContext->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 596 | 			this->UninstallSelectedContext->Text = L"Uninstall Selected";
 | 
        
           |  |  | 597 | 			this->UninstallSelectedContext->Click += gcnew System::EventHandler(this, &MainGui::UninstallSelectedContext_Click);
 | 
        
           |  |  | 598 | 			// 
 | 
        
           |  |  | 599 | 			// ContextEnable
 | 
        
           |  |  | 600 | 			// 
 | 
        
           |  |  | 601 | 			this->ContextEnable->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextEnable.Image")));
 | 
        
           |  |  | 602 | 			this->ContextEnable->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 603 | 			this->ContextEnable->Name = L"ContextEnable";
 | 
        
           |  |  | 604 | 			this->ContextEnable->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 605 | 			this->ContextEnable->Text = L"Enable";
 | 
        
           |  |  | 606 | 			this->ContextEnable->Click += gcnew System::EventHandler(this, &MainGui::ContextEnable_Click);
 | 
        
           |  |  | 607 | 			// 
 | 
        
           |  |  | 608 | 			// ContextDisable
 | 
        
           |  |  | 609 | 			// 
 | 
        
           |  |  | 610 | 			this->ContextDisable->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextDisable.Image")));
 | 
        
           |  |  | 611 | 			this->ContextDisable->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 612 | 			this->ContextDisable->Name = L"ContextDisable";
 | 
        
           |  |  | 613 | 			this->ContextDisable->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 614 | 			this->ContextDisable->Text = L"Disable";
 | 
        
           |  |  | 615 | 			this->ContextDisable->Click += gcnew System::EventHandler(this, &MainGui::ContextDisable_Click);
 | 
        
           |  |  | 616 | 			// 
 | 
        
           |  |  | 617 | 			// ContextSeperator
 | 
        
           |  |  | 618 | 			// 
 | 
        
           |  |  | 619 | 			this->ContextSeperator->Name = L"ContextSeperator";
 | 
        
           |  |  | 620 | 			this->ContextSeperator->Size = System::Drawing::Size(212, 6);
 | 
        
           |  |  | 621 | 			// 
 | 
        
           |  |  | 622 | 			// viewReadmeToolStripMenuItem
 | 
        
           |  |  | 623 | 			// 
 | 
        
           |  |  | 624 | 			this->viewReadmeToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"viewReadmeToolStripMenuItem.Image")));
 | 
        
           |  |  | 625 | 			this->viewReadmeToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 626 | 			this->viewReadmeToolStripMenuItem->Name = L"viewReadmeToolStripMenuItem";
 | 
        
           |  |  | 627 | 			this->viewReadmeToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 628 | 			this->viewReadmeToolStripMenuItem->Text = L"View Readme";
 | 
        
           |  |  | 629 | 			// 
 | 
        
           |  |  | 630 | 			// extrasToolStripMenuItem
 | 
        
           |  |  | 631 | 			// 
 | 
        
           |  |  | 632 | 			this->extrasToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"extrasToolStripMenuItem.Image")));
 | 
        
           |  |  | 633 | 			this->extrasToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 634 | 			this->extrasToolStripMenuItem->Name = L"extrasToolStripMenuItem";
 | 
        
           |  |  | 635 | 			this->extrasToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 636 | 			this->extrasToolStripMenuItem->Text = L"Extras";
 | 
        
           |  |  | 637 | 			// 
 | 
        
           |  |  | 638 | 			// ContextSeperator2
 | 
        
           |  |  | 639 | 			// 
 | 
        
           |  |  | 640 | 			this->ContextSeperator2->Name = L"ContextSeperator2";
 | 
        
           |  |  | 641 | 			this->ContextSeperator2->Size = System::Drawing::Size(212, 6);
 | 
        
           |  |  | 642 | 			// 
 | 
        
           |  |  | 643 | 			// emailAuthorToolStripMenuItem
 | 
        
           |  |  | 644 | 			// 
 | 
        
           |  |  | 645 | 			this->emailAuthorToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"emailAuthorToolStripMenuItem.Image")));
 | 
        
           |  |  | 646 | 			this->emailAuthorToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 647 | 			this->emailAuthorToolStripMenuItem->Name = L"emailAuthorToolStripMenuItem";
 | 
        
           |  |  | 648 | 			this->emailAuthorToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 649 | 			this->emailAuthorToolStripMenuItem->Text = L"Email Author";
 | 
        
           |  |  | 650 | 			this->emailAuthorToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::emailAuthorToolStripMenuItem_Click);
 | 
        
           |  |  | 651 | 			// 
 | 
        
           |  |  | 652 | 			// visitForumPageToolStripMenuItem
 | 
        
           |  |  | 653 | 			// 
 | 
        
           |  |  | 654 | 			this->visitForumPageToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"visitForumPageToolStripMenuItem.Image")));
 | 
        
           |  |  | 655 | 			this->visitForumPageToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 656 | 			this->visitForumPageToolStripMenuItem->Name = L"visitForumPageToolStripMenuItem";
 | 
        
           |  |  | 657 | 			this->visitForumPageToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 658 | 			this->visitForumPageToolStripMenuItem->Text = L"Visit Forum Page";
 | 
        
           |  |  | 659 | 			this->visitForumPageToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::visitForumPageToolStripMenuItem_Click);
 | 
        
           |  |  | 660 | 			// 
 | 
        
           |  |  | 661 | 			// visitWebSiteToolStripMenuItem
 | 
        
           |  |  | 662 | 			// 
 | 
        
           |  |  | 663 | 			this->visitWebSiteToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"visitWebSiteToolStripMenuItem.Image")));
 | 
        
           |  |  | 664 | 			this->visitWebSiteToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 665 | 			this->visitWebSiteToolStripMenuItem->Name = L"visitWebSiteToolStripMenuItem";
 | 
        
           |  |  | 666 | 			this->visitWebSiteToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 667 | 			this->visitWebSiteToolStripMenuItem->Text = L"Visit Web Site";
 | 
        
           |  |  | 668 | 			this->visitWebSiteToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::visitWebSiteToolStripMenuItem_Click);
 | 
        
           |  |  | 669 | 			// 
 | 
        
           |  |  | 670 | 			// toolStripSeparator2
 | 
        
           |  |  | 671 | 			// 
 | 
        
           |  |  | 672 | 			this->toolStripSeparator2->Name = L"toolStripSeparator2";
 | 
        
           |  |  | 673 | 			this->toolStripSeparator2->Size = System::Drawing::Size(212, 6);
 | 
        
           |  |  | 674 | 			// 
 | 
        
           |  |  | 675 | 			// checkForUpdatesToolStripMenuItem
 | 
        
           |  |  | 676 | 			// 
 | 
        
           |  |  | 677 | 			this->checkForUpdatesToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"checkForUpdatesToolStripMenuItem.Image")));
 | 
        
           |  |  | 678 | 			this->checkForUpdatesToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
 | 
        
           |  |  | 679 | 			this->checkForUpdatesToolStripMenuItem->Name = L"checkForUpdatesToolStripMenuItem";
 | 
        
           |  |  | 680 | 			this->checkForUpdatesToolStripMenuItem->Size = System::Drawing::Size(215, 50);
 | 
        
           |  |  | 681 | 			this->checkForUpdatesToolStripMenuItem->Text = L"Check For Updates";
 | 
        
           |  |  | 682 | 			this->checkForUpdatesToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::checkForUpdatesToolStripMenuItem_Click);
 | 
        
           |  |  | 683 | 			// 
 | 
        
           |  |  | 684 | 			// panel1
 | 
        
           |  |  | 685 | 			// 
 | 
        
           |  |  | 686 | 			this->panel1->AllowDrop = true;
 | 
        
           |  |  | 687 | 			this->panel1->Controls->Add(this->ProgressBar);
 | 
        
           |  |  | 688 | 			this->panel1->Controls->Add(this->ButRun);
 | 
        
           |  |  | 689 | 			this->panel1->Controls->Add(this->ButClose);
 | 
        
           |  |  | 690 | 			this->panel1->Dock = System::Windows::Forms::DockStyle::Bottom;
 | 
        
           |  |  | 691 | 			this->panel1->Location = System::Drawing::Point(0, 551);
 | 
        
           |  |  | 692 | 			this->panel1->Margin = System::Windows::Forms::Padding(5, 10, 5, 10);
 | 
        
           |  |  | 693 | 			this->panel1->Name = L"panel1";
 | 
        
           |  |  | 694 | 			this->panel1->Size = System::Drawing::Size(626, 37);
 | 
        
           |  |  | 695 | 			this->panel1->TabIndex = 2;
 | 
        
           |  |  | 696 | 			// 
 | 
        
           |  |  | 697 | 			// ProgressBar
 | 
        
           |  |  | 698 | 			// 
 | 
        
           |  |  | 699 | 			this->ProgressBar->Dock = System::Windows::Forms::DockStyle::Fill;
 | 
        
           |  |  | 700 | 			this->ProgressBar->Location = System::Drawing::Point(0, 0);
 | 
        
           |  |  | 701 | 			this->ProgressBar->Margin = System::Windows::Forms::Padding(10);
 | 
        
           |  |  | 702 | 			this->ProgressBar->MarqueeAnimationSpeed = 5;
 | 
        
           |  |  | 703 | 			this->ProgressBar->Name = L"ProgressBar";
 | 
        
           |  |  | 704 | 			this->ProgressBar->Size = System::Drawing::Size(432, 37);
 | 
        
           |  |  | 705 | 			this->ProgressBar->Style = System::Windows::Forms::ProgressBarStyle::Marquee;
 | 
        
           |  |  | 706 | 			this->ProgressBar->TabIndex = 1;
 | 
        
           |  |  | 707 | 			this->ProgressBar->Visible = false;
 | 
        
           |  |  | 708 | 			// 
 | 
        
           |  |  | 709 | 			// ButRun
 | 
        
           |  |  | 710 | 			// 
 | 
        
           |  |  | 711 | 			this->ButRun->AutoSize = true;
 | 
        
           |  |  | 712 | 			this->ButRun->Dock = System::Windows::Forms::DockStyle::Right;
 | 
        
           |  |  | 713 | 			this->ButRun->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ButRun.Image")));
 | 
        
           |  |  | 714 | 			this->ButRun->Location = System::Drawing::Point(432, 0);
 | 
        
           |  |  | 715 | 			this->ButRun->Name = L"ButRun";
 | 
        
           |  |  | 716 | 			this->ButRun->Size = System::Drawing::Size(119, 37);
 | 
        
           |  |  | 717 | 			this->ButRun->TabIndex = 2;
 | 
        
           |  |  | 718 | 			this->ButRun->Text = L"Run Game";
 | 
        
           |  |  | 719 | 			this->ButRun->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
 | 
        
           |  |  | 720 | 			this->ButRun->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 721 | 			this->ButRun->Click += gcnew System::EventHandler(this, &MainGui::ButRun_Click);
 | 
        
           |  |  | 722 | 			// 
 | 
        
           |  |  | 723 | 			// ButClose
 | 
        
           |  |  | 724 | 			// 
 | 
        
           |  |  | 725 | 			this->ButClose->Dock = System::Windows::Forms::DockStyle::Right;
 | 
        
           |  |  | 726 | 			this->ButClose->Location = System::Drawing::Point(551, 0);
 | 
        
           |  |  | 727 | 			this->ButClose->Name = L"ButClose";
 | 
        
           |  |  | 728 | 			this->ButClose->Size = System::Drawing::Size(75, 37);
 | 
        
           |  |  | 729 | 			this->ButClose->TabIndex = 0;
 | 
        
           |  |  | 730 | 			this->ButClose->Text = L"Close";
 | 
        
           |  |  | 731 | 			this->ButClose->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 732 | 			// 
 | 
        
           |  |  | 733 | 			// GroupPackages
 | 
        
           |  |  | 734 | 			// 
 | 
        
           |  |  | 735 | 			this->GroupPackages->Controls->Add(this->ListPackages);
 | 
        
           |  |  | 736 | 			this->GroupPackages->Controls->Add(this->PanelDisplay);
 | 
        
           |  |  | 737 | 			this->GroupPackages->Controls->Add(this->panel2);
 | 
        
           |  |  | 738 | 			this->GroupPackages->Dock = System::Windows::Forms::DockStyle::Fill;
 | 
        
           |  |  | 739 | 			this->GroupPackages->Location = System::Drawing::Point(0, 52);
 | 
        
           |  |  | 740 | 			this->GroupPackages->Name = L"GroupPackages";
 | 
        
           |  |  | 741 | 			this->GroupPackages->Size = System::Drawing::Size(626, 499);
 | 
        
           |  |  | 742 | 			this->GroupPackages->TabIndex = 3;
 | 
        
           |  |  | 743 | 			this->GroupPackages->TabStop = false;
 | 
        
           |  |  | 744 | 			this->GroupPackages->Text = L"Installed Packages";
 | 
        
           |  |  | 745 | 			// 
 | 
        
           |  |  | 746 | 			// PanelDisplay
 | 
        
           |  |  | 747 | 			// 
 | 
        
           |  |  | 748 | 			this->PanelDisplay->AllowDrop = true;
 | 
        
           |  |  | 749 | 			this->PanelDisplay->Controls->Add(this->TextDesc);
 | 
        
           |  |  | 750 | 			this->PanelDisplay->Controls->Add(this->PictureDisplay);
 | 
        
           |  |  | 751 | 			this->PanelDisplay->Dock = System::Windows::Forms::DockStyle::Bottom;
 | 
        
           |  |  | 752 | 			this->PanelDisplay->Location = System::Drawing::Point(3, 402);
 | 
        
           |  |  | 753 | 			this->PanelDisplay->Name = L"PanelDisplay";
 | 
        
           |  |  | 754 | 			this->PanelDisplay->Size = System::Drawing::Size(620, 68);
 | 
        
           |  |  | 755 | 			this->PanelDisplay->TabIndex = 2;
 | 
        
           |  |  | 756 | 			// 
 | 
        
           |  |  | 757 | 			// TextDesc
 | 
        
           |  |  | 758 | 			// 
 | 
        
           |  |  | 759 | 			this->TextDesc->Dock = System::Windows::Forms::DockStyle::Fill;
 | 
        
           |  |  | 760 | 			this->TextDesc->Location = System::Drawing::Point(72, 0);
 | 
        
           |  |  | 761 | 			this->TextDesc->Name = L"TextDesc";
 | 
        
           |  |  | 762 | 			this->TextDesc->ReadOnly = true;
 | 
        
           |  |  | 763 | 			this->TextDesc->Size = System::Drawing::Size(548, 68);
 | 
        
           |  |  | 764 | 			this->TextDesc->TabIndex = 1;
 | 
        
           |  |  | 765 | 			this->TextDesc->Text = L"";
 | 
        
           |  |  | 766 | 			// 
 | 
        
           |  |  | 767 | 			// PictureDisplay
 | 
        
           |  |  | 768 | 			// 
 | 
        
           |  |  | 769 | 			this->PictureDisplay->Dock = System::Windows::Forms::DockStyle::Left;
 | 
        
           |  |  | 770 | 			this->PictureDisplay->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"PictureDisplay.Image")));
 | 
        
           |  |  | 771 | 			this->PictureDisplay->Location = System::Drawing::Point(0, 0);
 | 
        
           |  |  | 772 | 			this->PictureDisplay->Name = L"PictureDisplay";
 | 
        
           |  |  | 773 | 			this->PictureDisplay->Size = System::Drawing::Size(72, 68);
 | 
        
           |  |  | 774 | 			this->PictureDisplay->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage;
 | 
        
           |  |  | 775 | 			this->PictureDisplay->TabIndex = 2;
 | 
        
           |  |  | 776 | 			this->PictureDisplay->TabStop = false;
 | 
        
           |  |  | 777 | 			// 
 | 
        
           |  |  | 778 | 			// panel2
 | 
        
           |  |  | 779 | 			// 
 | 
        
           |  |  | 780 | 			this->panel2->AllowDrop = true;
 | 
        
           |  |  | 781 | 			this->panel2->Controls->Add(this->button1);
 | 
        
           |  |  | 782 | 			this->panel2->Controls->Add(this->ButUninstall);
 | 
        
           |  |  | 783 | 			this->panel2->Controls->Add(this->ButDisable);
 | 
        
           |  |  | 784 | 			this->panel2->Controls->Add(this->ButInstall);
 | 
        
           |  |  | 785 | 			this->panel2->Dock = System::Windows::Forms::DockStyle::Bottom;
 | 
        
           |  |  | 786 | 			this->panel2->Location = System::Drawing::Point(3, 470);
 | 
        
           |  |  | 787 | 			this->panel2->Name = L"panel2";
 | 
        
           |  |  | 788 | 			this->panel2->Size = System::Drawing::Size(620, 26);
 | 
        
           |  |  | 789 | 			this->panel2->TabIndex = 0;
 | 
        
           |  |  | 790 | 			// 
 | 
        
           |  |  | 791 | 			// button1
 | 
        
           |  |  | 792 | 			// 
 | 
        
           |  |  | 793 | 			this->button1->Dock = System::Windows::Forms::DockStyle::Left;
 | 
        
           |  |  | 794 | 			this->button1->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"button1.Image")));
 | 
        
           |  |  | 795 | 			this->button1->Location = System::Drawing::Point(122, 0);
 | 
        
           |  |  | 796 | 			this->button1->Name = L"button1";
 | 
        
           |  |  | 797 | 			this->button1->Size = System::Drawing::Size(121, 26);
 | 
        
           |  |  | 798 | 			this->button1->TabIndex = 3;
 | 
        
           |  |  | 799 | 			this->button1->Text = L"Install Archive";
 | 
        
           |  |  | 800 | 			this->button1->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
 | 
        
           |  |  | 801 | 			this->button1->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 802 | 			this->button1->Click += gcnew System::EventHandler(this, &MainGui::button1_Click);
 | 
        
           |  |  | 803 | 			// 
 | 
        
           |  |  | 804 | 			// ButUninstall
 | 
        
           |  |  | 805 | 			// 
 | 
        
           |  |  | 806 | 			this->ButUninstall->AutoSize = true;
 | 
        
           |  |  | 807 | 			this->ButUninstall->Dock = System::Windows::Forms::DockStyle::Right;
 | 
        
           |  |  | 808 | 			this->ButUninstall->Location = System::Drawing::Point(357, 0);
 | 
        
           |  |  | 809 | 			this->ButUninstall->Name = L"ButUninstall";
 | 
        
           |  |  | 810 | 			this->ButUninstall->Size = System::Drawing::Size(122, 26);
 | 
        
           |  |  | 811 | 			this->ButUninstall->TabIndex = 2;
 | 
        
           |  |  | 812 | 			this->ButUninstall->Text = L"Uninstall";
 | 
        
           |  |  | 813 | 			this->ButUninstall->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 814 | 			// 
 | 
        
           |  |  | 815 | 			// ButDisable
 | 
        
           |  |  | 816 | 			// 
 | 
        
           |  |  | 817 | 			this->ButDisable->AutoSize = true;
 | 
        
           |  |  | 818 | 			this->ButDisable->Dock = System::Windows::Forms::DockStyle::Right;
 | 
        
           |  |  | 819 | 			this->ButDisable->Location = System::Drawing::Point(479, 0);
 | 
        
           |  |  | 820 | 			this->ButDisable->Name = L"ButDisable";
 | 
        
           |  |  | 821 | 			this->ButDisable->Size = System::Drawing::Size(141, 26);
 | 
        
           |  |  | 822 | 			this->ButDisable->TabIndex = 1;
 | 
        
           |  |  | 823 | 			this->ButDisable->Text = L"Disable";
 | 
        
           |  |  | 824 | 			this->ButDisable->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 825 | 			// 
 | 
        
           |  |  | 826 | 			// ButInstall
 | 
        
           |  |  | 827 | 			// 
 | 
        
           |  |  | 828 | 			this->ButInstall->AutoSize = true;
 | 
        
           |  |  | 829 | 			this->ButInstall->Dock = System::Windows::Forms::DockStyle::Left;
 | 
        
           |  |  | 830 | 			this->ButInstall->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ButInstall.Image")));
 | 
        
           |  |  | 831 | 			this->ButInstall->Location = System::Drawing::Point(0, 0);
 | 
        
           |  |  | 832 | 			this->ButInstall->Name = L"ButInstall";
 | 
        
           |  |  | 833 | 			this->ButInstall->Size = System::Drawing::Size(122, 26);
 | 
        
           |  |  | 834 | 			this->ButInstall->TabIndex = 0;
 | 
        
           |  |  | 835 | 			this->ButInstall->Text = L"Install Package";
 | 
        
           |  |  | 836 | 			this->ButInstall->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
 | 
        
           |  |  | 837 | 			this->ButInstall->UseVisualStyleBackColor = true;
 | 
        
           |  |  | 838 | 			// 
 | 
        
           |  |  | 839 | 			// statusStrip1
 | 
        
           |  |  | 840 | 			// 
 | 
        
           |  |  | 841 | 			this->statusStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(1) {this->LabelStatus});
 | 
        
           |  |  | 842 | 			this->statusStrip1->Location = System::Drawing::Point(0, 588);
 | 
        
           |  |  | 843 | 			this->statusStrip1->Name = L"statusStrip1";
 | 
        
           |  |  | 844 | 			this->statusStrip1->Size = System::Drawing::Size(626, 22);
 | 
        
           |  |  | 845 | 			this->statusStrip1->TabIndex = 5;
 | 
        
           |  |  | 846 | 			this->statusStrip1->Text = L"statusStrip1";
 | 
        
           |  |  | 847 | 			// 
 | 
        
           |  |  | 848 | 			// LabelStatus
 | 
        
           |  |  | 849 | 			// 
 | 
        
           |  |  | 850 | 			this->LabelStatus->Name = L"LabelStatus";
 | 
        
           |  |  | 851 | 			this->LabelStatus->Size = System::Drawing::Size(0, 17);
 | 
        
           |  |  | 852 | 			// 
 | 
        
           |  |  | 853 | 			// imageList1
 | 
        
           |  |  | 854 | 			// 
 | 
        
           |  |  | 855 | 			this->imageList1->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^  >(resources->GetObject(L"imageList1.ImageStream")));
 | 
        
           |  |  | 856 | 			this->imageList1->TransparentColor = System::Drawing::Color::Transparent;
 | 
        
           |  |  | 857 | 			this->imageList1->Images->SetKeyName(0, L"ship.png");
 | 
        
           |  |  | 858 | 			this->imageList1->Images->SetKeyName(1, L"package.png");
 | 
        
           |  |  | 859 | 			this->imageList1->Images->SetKeyName(2, L"fake.png");
 | 
        
           |  |  | 860 | 			this->imageList1->Images->SetKeyName(3, L"library.png");
 | 
        
           |  |  | 861 | 			this->imageList1->Images->SetKeyName(4, L"archive.png");
 | 
        
           | 86 | cycrow | 862 | 			this->imageList1->Images->SetKeyName(5, L"tick.png");
 | 
        
           |  |  | 863 | 			this->imageList1->Images->SetKeyName(6, L"no.png");
 | 
        
           | 1 | cycrow | 864 | 			// 
 | 
        
           |  |  | 865 | 			// imageList2
 | 
        
           |  |  | 866 | 			// 
 | 
        
           |  |  | 867 | 			this->imageList2->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^  >(resources->GetObject(L"imageList2.ImageStream")));
 | 
        
           |  |  | 868 | 			this->imageList2->TransparentColor = System::Drawing::Color::Transparent;
 | 
        
           |  |  | 869 | 			this->imageList2->Images->SetKeyName(0, L"application");
 | 
        
           |  |  | 870 | 			this->imageList2->Images->SetKeyName(1, L"exe");
 | 
        
           |  |  | 871 | 			this->imageList2->Images->SetKeyName(2, L"doc");
 | 
        
           |  |  | 872 | 			this->imageList2->Images->SetKeyName(3, L"pdf");
 | 
        
           |  |  | 873 | 			this->imageList2->Images->SetKeyName(4, L"xls");
 | 
        
           |  |  | 874 | 			this->imageList2->Images->SetKeyName(5, L"xlsx");
 | 
        
           |  |  | 875 | 			// 
 | 
        
           |  |  | 876 | 			// imageList3
 | 
        
           |  |  | 877 | 			// 
 | 
        
           |  |  | 878 | 			this->imageList3->ColorDepth = System::Windows::Forms::ColorDepth::Depth8Bit;
 | 
        
           |  |  | 879 | 			this->imageList3->ImageSize = System::Drawing::Size(16, 16);
 | 
        
           |  |  | 880 | 			this->imageList3->TransparentColor = System::Drawing::Color::Transparent;
 | 
        
           |  |  | 881 | 			// 
 | 
        
           |  |  | 882 | 			// backgroundWorker2
 | 
        
           |  |  | 883 | 			// 
 | 
        
           |  |  | 884 | 			this->backgroundWorker2->WorkerReportsProgress = true;
 | 
        
           |  |  | 885 | 			this->backgroundWorker2->WorkerSupportsCancellation = true;
 | 
        
           |  |  | 886 | 			this->backgroundWorker2->DoWork += gcnew System::ComponentModel::DoWorkEventHandler(this, &MainGui::backgroundWorker2_DoWork);
 | 
        
           |  |  | 887 | 			this->backgroundWorker2->RunWorkerCompleted += gcnew System::ComponentModel::RunWorkerCompletedEventHandler(this, &MainGui::backgroundWorker2_RunWorkerCompleted);
 | 
        
           |  |  | 888 | 			// 
 | 
        
           |  |  | 889 | 			// MainGui
 | 
        
           |  |  | 890 | 			// 
 | 
        
           |  |  | 891 | 			this->AllowDrop = true;
 | 
        
           |  |  | 892 | 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
 | 
        
           |  |  | 893 | 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
 | 
        
           |  |  | 894 | 			this->ClientSize = System::Drawing::Size(626, 610);
 | 
        
           |  |  | 895 | 			this->Controls->Add(this->GroupPackages);
 | 
        
           |  |  | 896 | 			this->Controls->Add(this->panel1);
 | 
        
           |  |  | 897 | 			this->Controls->Add(this->GroupDir);
 | 
        
           |  |  | 898 | 			this->Controls->Add(this->statusStrip1);
 | 
        
           |  |  | 899 | 			this->Icon = (cli::safe_cast<System::Drawing::Icon^  >(resources->GetObject(L"$this.Icon")));
 | 
        
           |  |  | 900 | 			this->Name = L"MainGui";
 | 
        
           |  |  | 901 | 			this->StartPosition = System::Windows::Forms::FormStartPosition::Manual;
 | 
        
           |  |  | 902 | 			this->Text = L"X-Universe Plugin Manager Lite";
 | 
        
           |  |  | 903 | 			this->Load += gcnew System::EventHandler(this, &MainGui::MainGui_Load);
 | 
        
           |  |  | 904 | 			this->GroupDir->ResumeLayout(false);
 | 
        
           |  |  | 905 | 			this->contextMenuStrip1->ResumeLayout(false);
 | 
        
           |  |  | 906 | 			this->panel1->ResumeLayout(false);
 | 
        
           |  |  | 907 | 			this->panel1->PerformLayout();
 | 
        
           |  |  | 908 | 			this->GroupPackages->ResumeLayout(false);
 | 
        
           |  |  | 909 | 			this->PanelDisplay->ResumeLayout(false);
 | 
        
           |  |  | 910 | 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->PictureDisplay))->EndInit();
 | 
        
           |  |  | 911 | 			this->panel2->ResumeLayout(false);
 | 
        
           |  |  | 912 | 			this->panel2->PerformLayout();
 | 
        
           |  |  | 913 | 			this->statusStrip1->ResumeLayout(false);
 | 
        
           |  |  | 914 | 			this->statusStrip1->PerformLayout();
 | 
        
           |  |  | 915 | 			this->ResumeLayout(false);
 | 
        
           |  |  | 916 | 			this->PerformLayout();
 | 
        
           |  |  | 917 |   | 
        
           |  |  | 918 | 		}
 | 
        
           |  |  | 919 | #pragma endregion
 | 
        
           |  |  | 920 | private: System::Void MainGui_Load(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 921 | 			 if ( m_iSaveGameManager == -1 )
 | 
        
           |  |  | 922 | 			 {
 | 
        
           |  |  | 923 | 				 if ( MessageBox::Show(this, "The save game manager will keep seperate save games for each directory and keeps vanilla and modified save games seperate\n\nDo you want to enable the save game manager?", "Save Game Manager", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == Windows::Forms::DialogResult::Yes )
 | 
        
           |  |  | 924 | 				 {
 | 
        
           |  |  | 925 | 					 m_iSaveGameManager = 1;
 | 
        
           |  |  | 926 | 					 this->PrepareSaveGameManager();
 | 
        
           |  |  | 927 | 				 }
 | 
        
           |  |  | 928 | 				 else
 | 
        
           |  |  | 929 | 					 m_iSaveGameManager = 0;
 | 
        
           |  |  | 930 | 			 }
 | 
        
           |  |  | 931 |   | 
        
           |  |  | 932 | 			 m_pMenuBar->SetSaveGameManager((m_iSaveGameManager == 1) ? true : false);
 | 
        
           |  |  | 933 |   | 
        
           |  |  | 934 |  			// auto update
 | 
        
           |  |  | 935 | 			if ( m_iSizeX != -1 && m_iSizeY != -1 )
 | 
        
           |  |  | 936 | 				this->Size = System::Drawing::Size(m_iSizeX, m_iSizeY);
 | 
        
           |  |  | 937 |   | 
        
           |  |  | 938 | 			this->UpdateBuiltInPackages();
 | 
        
           |  |  | 939 | 			this->AutoUpdate();
 | 
        
           |  |  | 940 |   | 
        
           |  |  | 941 | 		 }
 | 
        
           |  |  | 942 | private: System::Void ButRun_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 943 | 			 this->LaunchGame();
 | 
        
           |  |  | 944 | 		 }
 | 
        
           |  |  | 945 | private: System::Void uninstallToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 946 | 			 if ( m_pListItem )
 | 
        
           |  |  | 947 | 			 {
 | 
        
           |  |  | 948 | 				 ArrayList ^List = gcnew ArrayList();
 | 
        
           |  |  | 949 | 				 List->Add(m_pListItem);
 | 
        
           |  |  | 950 | 				 this->UninstallList(List);
 | 
        
           |  |  | 951 | 			 }
 | 
        
           |  |  | 952 | 		 }
 | 
        
           |  |  | 953 | private: System::Void ContextEnable_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 954 | 			 if ( m_pListItem )
 | 
        
           |  |  | 955 | 			 {
 | 
        
           |  |  | 956 | 				 ArrayList ^List = gcnew ArrayList();
 | 
        
           |  |  | 957 | 				 List->Add(m_pListItem);
 | 
        
           |  |  | 958 | 				 this->DisableList(List);
 | 
        
           |  |  | 959 | 			 }
 | 
        
           |  |  | 960 | 		 }
 | 
        
           |  |  | 961 | private: System::Void ContextDisable_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 962 | 			 if ( m_pListItem )
 | 
        
           |  |  | 963 | 			 {
 | 
        
           |  |  | 964 | 				 ArrayList ^List = gcnew ArrayList();
 | 
        
           |  |  | 965 | 				 List->Add(m_pListItem);
 | 
        
           |  |  | 966 | 				 this->DisableList(List);
 | 
        
           |  |  | 967 | 			 }
 | 
        
           |  |  | 968 | 		 }
 | 
        
           |  |  | 969 | private: System::Void ListPackages_DragOver(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e);
 | 
        
           |  |  | 970 | private: System::Void ListPackages_DragDrop(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e);
 | 
        
           |  |  | 971 | private: System::Void UninstallSelectedContext_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 972 | 			 UninstallEvent(sender, e);
 | 
        
           |  |  | 973 | 		 }
 | 
        
           |  |  | 974 | private: System::Void ContextName_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 975 |   | 
        
           |  |  | 976 | 			CBaseFile *p = this->GetFileFromItem(m_pListItem);
 | 
        
           |  |  | 977 | 			if ( p )
 | 
        
           |  |  | 978 | 			{
 | 
        
           |  |  | 979 | 				SpkExplorer::PackageInfo ^info = gcnew SpkExplorer::PackageInfo(p, m_pPackages->GetLanguage());
 | 
        
           |  |  | 980 | 				info->ShowDialog(this);
 | 
        
           |  |  | 981 | 			}
 | 
        
           |  |  | 982 | 		 }
 | 
        
           |  |  | 983 | private: System::Void contextMenuStrip1_Opening(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
 | 
        
           |  |  | 984 | 			 this->OpenContextMenu(sender, e);
 | 
        
           |  |  | 985 | 		 }
 | 
        
           |  |  | 986 | private: System::Void ListPackages_MouseDoubleClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
 | 
        
           |  |  | 987 | 			ListViewItem ^item = this->FindSelectedItem();
 | 
        
           |  |  | 988 | 			if ( item )
 | 
        
           |  |  | 989 | 			{
 | 
        
           |  |  | 990 | 				CBaseFile *p = this->GetFileFromItem(item);
 | 
        
           |  |  | 991 | 				if ( p )
 | 
        
           |  |  | 992 | 				{
 | 
        
           |  |  | 993 | 					SpkExplorer::PackageInfo ^info = gcnew SpkExplorer::PackageInfo(p, m_pPackages->GetLanguage());
 | 
        
           |  |  | 994 | 					info->ShowDialog(this);
 | 
        
           |  |  | 995 | 				}
 | 
        
           |  |  | 996 | 			}
 | 
        
           |  |  | 997 | 		 }
 | 
        
           |  |  | 998 | private: System::Void emailAuthorToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 999 | 			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
 | 
        
           |  |  | 1000 | 		 }
 | 
        
           |  |  | 1001 | private: System::Void visitForumPageToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 1002 | 			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
 | 
        
           |  |  | 1003 | 		 }
 | 
        
           |  |  | 1004 | private: System::Void visitWebSiteToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 1005 | 			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
 | 
        
           |  |  | 1006 | 		 }
 | 
        
           |  |  | 1007 | private: System::Void checkForUpdatesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 1008 | 			if ( m_pListItem )
 | 
        
           |  |  | 1009 | 			{
 | 
        
           |  |  | 1010 | 				CBaseFile *p = this->GetFileFromItem(m_pListItem);
 | 
        
           |  |  | 1011 | 				if ( p )
 | 
        
           |  |  | 1012 | 				{
 | 
        
           |  |  | 1013 | 					CheckUpdate ^update = gcnew CheckUpdate(m_pPackages, this->imageList1);
 | 
        
           |  |  | 1014 | 					update->OnePackage(p);
 | 
        
           |  |  | 1015 | 					this->ClearSelectedItems();
 | 
        
           |  |  | 1016 | 					if ( update->ShowDialog(this) == Windows::Forms::DialogResult::OK )
 | 
        
           |  |  | 1017 | 					{
 | 
        
           |  |  | 1018 | 						for ( int i = 0; i < update->GetInstallList()->Count; i++ )
 | 
        
           |  |  | 1019 | 							this->InstallPackage(Convert::ToString(update->GetInstallList()[i]), false, false, true);
 | 
        
           |  |  | 1020 | 						this->StartInstalling(false, true);
 | 
        
           |  |  | 1021 | 					}
 | 
        
           |  |  | 1022 | 				}
 | 
        
           |  |  | 1023 | 			}
 | 
        
           |  |  | 1024 | 		 }
 | 
        
           |  |  | 1025 | private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 | 
        
           |  |  | 1026 | 			 this->InstallArchive();
 | 
        
           |  |  | 1027 | 		 }
 | 
        
           |  |  | 1028 | private: System::Void backgroundWorker2_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) {
 | 
        
           |  |  | 1029 | 			m_pConverted = (CArchiveFile *)m_pPackages->CreateFromArchive(CyStringFromSystemString(m_sConvertFile), true);
 | 
        
           |  |  | 1030 | 		 }
 | 
        
           |  |  | 1031 | private: System::Void backgroundWorker2_RunWorkerCompleted(System::Object^  sender, System::ComponentModel::RunWorkerCompletedEventArgs^  e) {
 | 
        
           |  |  | 1032 | 				if ( m_pWait ) 
 | 
        
           |  |  | 1033 | 				{
 | 
        
           |  |  | 1034 | 					m_pWait->Close();
 | 
        
           |  |  | 1035 | 					delete m_pWait;
 | 
        
           |  |  | 1036 | 					m_pWait = nullptr;
 | 
        
           |  |  | 1037 | 				}
 | 
        
           |  |  | 1038 |   | 
        
           |  |  | 1039 | 				if ( !m_pConverted )
 | 
        
           |  |  | 1040 | 					this->DisplayMessageBox(false, "Unable to open", "Unable to open archive file, " + m_sConvertFile, MessageBoxButtons::OK, MessageBoxIcon::Error);
 | 
        
           |  |  | 1041 | 				else
 | 
        
           |  |  | 1042 | 				{
 | 
        
           |  |  | 1043 | 					bool errored = false;
 | 
        
           |  |  | 1044 | 					int errorNum = m_pPackages->PrepareInstallPackage(m_pConverted, false, false, IC_ALL);
 | 
        
           |  |  | 1045 | 					if ( errorNum != INSTALLCHECK_OK )
 | 
        
           |  |  | 1046 | 					{
 | 
        
           |  |  | 1047 | 						if ( errorNum == INSTALLCHECK_NOSHIP )
 | 
        
           |  |  | 1048 | 						{
 | 
        
           |  |  | 1049 | 							this->DisplayMessageBox(false, "No Ships", "Ships are not supported for " + SystemStringFromCyString(m_pPackages->GetGameName()), MessageBoxButtons::OK, MessageBoxIcon::Stop);
 | 
        
           |  |  | 1050 | 							errored = true;
 | 
        
           |  |  | 1051 | 						}
 | 
        
           |  |  | 1052 | 						else if ( m_pPackages->PrepareInstallPackage(m_pConverted, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
 | 
        
           |  |  | 1053 | 						{
 | 
        
           |  |  | 1054 | 							this->DisplayMessageBox(false, "Installing", "Currently in Vanilla Mode, Package is not an Vanilla Package\n" + SystemStringFromCyString(m_pConverted->GetLanguageName(m_pPackages->GetLanguage())) + "\n\nSwitch to modified mode if you wish to install this package", MessageBoxButtons::OK, MessageBoxIcon::Question);
 | 
        
           |  |  | 1055 | 							errored = true;
 | 
        
           |  |  | 1056 | 						}
 | 
        
           |  |  | 1057 | 					}
 | 
        
           |  |  | 1058 |   | 
        
           |  |  | 1059 | 					if ( !errored )
 | 
        
           |  |  | 1060 | 						this->StartInstallingArchive(false, true);
 | 
        
           |  |  | 1061 | 				}
 | 
        
           |  |  | 1062 | 		 }
 | 
        
           | 86 | cycrow | 1063 | private: System::Void ListPackages_DrawSubItem(System::Object^  sender, System::Windows::Forms::DrawListViewSubItemEventArgs^  e) {
 | 
        
           |  |  | 1064 | 			 if ( System::String::Compare(e->SubItem->Text, "Yes") == 0 ) {
 | 
        
           |  |  | 1065 | 				e->DrawDefault = false;
 | 
        
           |  |  | 1066 | 				e->DrawBackground();
 | 
        
           |  |  | 1067 |   | 
        
           |  |  | 1068 | 				Image ^img = this->imageList1->Images[this->imageList1->Images->IndexOfKey("tick.png")];
 | 
        
           |  |  | 1069 | 				e->Graphics->DrawImage(img, e->SubItem->Bounds.Location);
 | 
        
           |  |  | 1070 | 				e->Graphics->DrawString(e->SubItem->Text, e->SubItem->Font, gcnew SolidBrush(e->SubItem->ForeColor), (float)(e->SubItem->Bounds.Location.X + img->Width), (float)e->SubItem->Bounds.Location.Y);
 | 
        
           |  |  | 1071 | 			 }
 | 
        
           |  |  | 1072 | 			 else 
 | 
        
           |  |  | 1073 | 				e->DrawDefault = true;
 | 
        
           |  |  | 1074 | 		 }
 | 
        
           | 1 | cycrow | 1075 | };
 | 
        
           |  |  | 1076 | }
 |