--- AE/Installer/trunk/source/aeinstallerapp.cpp 2009/06/19 22:46:22 360 +++ AE/Installer/trunk/source/aeinstallerapp.cpp 2009/07/05 14:11:22 382 @@ -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,30 +110,56 @@ bool AEInstallerApp::OnInit() ////@end AEInstallerApp initialisation TheWindow = mainWindow; +#ifndef WIN32 + // test for the third-party mono framework, because without it, on Mac, we are up a creek + char monoCommand[300] = "which mono >> "; + strcat(monoCommand, 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(); + globalizeData(); #endif - TheWindow->InstallButton->Enable(); - TheWindow->ReglobalizeButton->Enable(); + TheWindow->InstallButton->Enable(); + TheWindow->ReglobalizeButton->Enable(); } }