| 1 | 
           cycrow | 
           1 | 
           // GameLauncher.cpp : main project file.
  | 
        
        
            | 
            | 
           2 | 
              | 
        
        
            | 
            | 
           3 | 
           #include "stdafx.h"
  | 
        
        
            | 
            | 
           4 | 
           #include "Forms/Form1.h"
  | 
        
        
            | 
            | 
           5 | 
           #include "X3Data.h"
  | 
        
        
            | 
            | 
           6 | 
              | 
        
        
            | 
            | 
           7 | 
           using namespace GameLauncher;
  | 
        
        
            | 
            | 
           8 | 
              | 
        
        
            | 
            | 
           9 | 
           [STAThreadAttribute]
  | 
        
        
            | 
            | 
           10 | 
           int main(array<System::String ^> ^args)
  | 
        
        
            | 
            | 
           11 | 
           {
  | 
        
        
            | 
            | 
           12 | 
           	// Enabling Windows XP visual effects before any controls are created
  | 
        
        
            | 
            | 
           13 | 
           	Application::EnableVisualStyles();
  | 
        
        
            | 
            | 
           14 | 
           	Application::SetCompatibleTextRenderingDefault(false); 
  | 
        
        
            | 
            | 
           15 | 
              | 
        
        
            | 
            | 
           16 | 
           	System::String ^runFile;
  | 
        
        
            | 
            | 
           17 | 
           	System::String ^gameFile;
  | 
        
        
            | 
            | 
           18 | 
           	System::String ^arguments;
  | 
        
        
            | 
            | 
           19 | 
              | 
        
        
            | 
            | 
           20 | 
           	bool intoArgs = false;
  | 
        
        
            | 
            | 
           21 | 
           	for ( int i = 0; i < args->Length; i++ )
  | 
        
        
            | 
            | 
           22 | 
           	{
  | 
        
        
            | 
            | 
           23 | 
           		if ( String::Compare(args[i], "--gameargs", false) )
  | 
        
        
            | 
            | 
           24 | 
           			intoArgs;
  | 
        
        
            | 
            | 
           25 | 
           		else
  | 
        
        
            | 
            | 
           26 | 
           		{
  | 
        
        
            | 
            | 
           27 | 
           			if ( i == 0 && !intoArgs )
  | 
        
        
            | 
            | 
           28 | 
           				gameFile = args[i];
  | 
        
        
            | 
            | 
           29 | 
           			else if ( i == 1 && !intoArgs )
  | 
        
        
            | 
            | 
           30 | 
           				runFile = args[i];
  | 
        
        
            | 
            | 
           31 | 
           			else if ( arguments )
  | 
        
        
            | 
            | 
           32 | 
           				arguments += " " + args[i];
  | 
        
        
            | 
            | 
           33 | 
           			else
  | 
        
        
            | 
            | 
           34 | 
           				arguments = args[i];
  | 
        
        
            | 
            | 
           35 | 
           		}
  | 
        
        
            | 
            | 
           36 | 
           	}
  | 
        
        
            | 
            | 
           37 | 
           	if ( args->Length >= 1 )
  | 
        
        
            | 
            | 
           38 | 
           		gameFile = args[0];
  | 
        
        
            | 
            | 
           39 | 
           	if ( args->Length > 1 )
  | 
        
        
            | 
            | 
           40 | 
           		runFile = args[1];
  | 
        
        
            | 
            | 
           41 | 
           	// Create the main window and run it
  | 
        
        
            | 
            | 
           42 | 
           	if ( args->Length > 2 )
  | 
        
        
            | 
            | 
           43 | 
           		arguments = args[2];
  | 
        
        
            | 
            | 
           44 | 
              | 
        
        
            | 
            | 
           45 | 
           	if ( !runFile || !runFile->Length )
  | 
        
        
            | 
            | 
           46 | 
           	{
  | 
        
        
            | 
            | 
           47 | 
           		RegistryKey ^searchKey = Registry::CurrentUser->OpenSubKey("Software\\Egosoft\\PluginManagerSettings");
  | 
        
        
            | 
            | 
           48 | 
           		if ( searchKey )
  | 
        
        
            | 
            | 
           49 | 
           			runFile = System::Convert::ToString(searchKey->GetValue("Run"));
  | 
        
        
            | 
            | 
           50 | 
           	}
  | 
        
        
            | 
            | 
           51 | 
              | 
        
        
            | 
            | 
           52 | 
           	Form1 ^form = gcnew Form1(gameFile, arguments, runFile);
  | 
        
        
            | 
            | 
           53 | 
           	Application::Run(form);
  | 
        
        
            | 
            | 
           54 | 
              | 
        
        
            | 
            | 
           55 | 
              | 
        
        
            | 
            | 
           56 | 
           	if ( runFile && form->Resume())
  | 
        
        
            | 
            | 
           57 | 
           	{
  | 
        
        
            | 
            | 
           58 | 
           		System::Diagnostics::ProcessStartInfo ^info = gcnew System::Diagnostics::ProcessStartInfo(runFile);
  | 
        
        
            | 
            | 
           59 | 
           		info->WorkingDirectory = System::IO::FileInfo(runFile).DirectoryName;
  | 
        
        
            | 
            | 
           60 | 
           		info->UseShellExecute = false;
  | 
        
        
            | 
            | 
           61 | 
           		info->WindowStyle = System::Diagnostics::ProcessWindowStyle::Normal;
  | 
        
        
            | 
            | 
           62 | 
           		System::Diagnostics::Process ^process = System::Diagnostics::Process::Start(info);
  | 
        
        
            | 
            | 
           63 | 
           	}
  | 
        
        
            | 
            | 
           64 | 
              | 
        
        
            | 
            | 
           65 | 
           	return 0;
  | 
        
        
            | 
            | 
           66 | 
           }
  |