--- AE/Installer/trunk/source/aeinstallerapp.cpp 2009/06/19 22:25:08 358 +++ AE/Installer/trunk/source/aeinstallerapp.cpp 2009/07/07 00:34:21 401 @@ -10,7 +10,7 @@ ///////////////////////////////////////////////////////////////////////////// #include "boost/thread.hpp" #include - +#include #include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations #include "boost/lexical_cast.hpp" //int -> string using namespace boost::filesystem; @@ -110,32 +110,67 @@ bool AEInstallerApp::OnInit() ////@end AEInstallerApp initialisation TheWindow = mainWindow; +#ifdef WIN32 + HKEY hKey; + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\policy\\v2.0", 0L, KEY_READ , &hKey) == ERROR_SUCCESS) { + wxMessageDialog* MonoDialogOfDeath = new wxMessageDialog(TheWindow, "You don't have .NET 2.0 installed! .NET is a framework required by the Edition. You can download it from:\nhttp://gumby.oni2.net/dotnet\nPlease install .NET 2.0, then open this Installer again. \n\nWould you like to open the download webpage?", "AE Installer Alert", wxYES_NO | wxICON_EXCLAMATION , wxDefaultPosition); + if(MonoDialogOfDeath->ShowModal() == wxID_YES) { + system("start http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5"); + } + RegCloseKey(hKey); + TheWindow->Close(); + } +#else + // test for the third-party mono framework, because without it, on Mac, we are up a creek + char monoCommand[300] = "which mono >> "; + strcat(monoCommand, escapePath(system_complete("mono_check.log").string()).c_str()); + system(monoCommand); + fstream file; + file.open("mono_check.log"); + string line; + int line_count = 0; + while (!file.eof()) + { + line_count++; + getline(file, line); + } + file.close(); + remove("mono_check.log"); + + if (line_count <= 1) // this means that "which mono" returned nothing -- abort! abort! abort! + { + wxMessageDialog* MonoDialogOfDeath = new wxMessageDialog(TheWindow, "You don't have 'mono' installed! 'mono' is a command-line tool required by the Edition. You can download it from:\nhttp://www.go-mono.com/mono-downloads/download.html (OS X 10.4+) or\nhttp://edt.oni2.net/AE/MonoFramework10.3.dmg (OS X 10.3)\n\nPlease install 'mono', then open this Installer again.", "AE Installer Alert", wxOK | wxICON_EXCLAMATION , wxDefaultPosition); + MonoDialogOfDeath->ShowModal(); + TheWindow->Close(); + return true; // it's quittin' time, Joe + } +#endif + //anything after this is done after the window appears... - if ( !exists("../GameDataFolder") ) { + + if ( !exists("../GameDataFolder") ) + { wxMessageDialog* YesNoDialog = new wxMessageDialog(TheWindow, "You haven't globalized yet! \nYou must globalize to use the Anniversary Edition framework. \nWould you like to globalize now? (This could take a while...)\n(Selecting \"No\" will exit this program...)", "AE Installer Alert", wxYES_NO | wxICON_EXCLAMATION , wxDefaultPosition); - if (YesNoDialog->ShowModal() == wxID_NO) { //if the user said no... + if (YesNoDialog->ShowModal() == wxID_NO) // if the user said no... TheWindow->Close(); - } - else { + else + { TheWindow->InstallButton->Disable(); - TheWindow->ReglobalizeButton->Disable(); + TheWindow->ReglobalizeButton->Disable(); #ifdef WIN32 - - boost::thread thrd3(globalizeData); + boost::thread thrd3(globalizeData); //globalizeData(); //boost::thread::create_thread(&globalizeData); // boost::thread_group Tg; // Tg.create_thread( &globalizeData(), this ); #else - globalizeData(); - setProgressBar(1000); - setStatusArea("Done!"); + globalizeData(); #endif - TheWindow->InstallButton->Enable(); - TheWindow->ReglobalizeButton->Enable(); + TheWindow->InstallButton->Enable(); + TheWindow->ReglobalizeButton->Enable(); } }