--- AE/Installer/trunk/source/installer.cpp 2010/05/29 18:51:53 557 +++ AE/Installer/trunk/source/installer.cpp 2010/05/30 17:28:34 562 @@ -390,7 +390,6 @@ ModPackage fileToModPackage(fstream &fil const string GlobalNeeded = "GlobalNeeded"; const string Category = "Category"; const string Creator = "Creator"; - package.modStringName = modName; while (!file.eof()) { getline(file,line); @@ -492,7 +491,7 @@ ModPackage fileToModPackage(fstream &fil } } } - + package.modStringName = modName; return package; } @@ -658,13 +657,11 @@ void recompileAll(vector install vector skippedfolders; ofstream BSLlog("BSL.log"); - if(exists("../GameDataFolder/BSLBackup/")) { - remove_all("../GameDataFolder/BSLBackup/"); - } - else { + if(!exists("../GameDataFolder/BSLBackup/")) { create_directory("../GameDataFolder/BSLBackup/"); + copy("../GameDataFolder/IGMD/", "../GameDataFolder/BSLBackup/"); } - copy("../GameDataFolder/IGMD/", "../GameDataFolder/BSLBackup/"); + for ( directory_iterator dir_itr( "../GameDataFolder/IGMD/" ), end_itr; dir_itr != end_itr; ++dir_itr ) { @@ -765,6 +762,8 @@ void copyBSL(string copypath, vectorpath().extension() == ".bsl" ) { + if(exists("../GameDataFolder/IGMD/" + dir_itr->path().filename() + "/" + bsl_itr->path().filename())) + remove("../GameDataFolder/IGMD/" + dir_itr->path().filename() + "/" + bsl_itr->path().filename()); copy_file(bsl_itr->path(), "../GameDataFolder/IGMD/" + dir_itr->path().filename() + "/" + bsl_itr->path().filename()); } } @@ -1479,7 +1478,7 @@ bool ProcessAEUpdate(Install_info_cfg *c #ifndef WIN32 rename((path)("../" + thePath), (path)(strTrashDir + thePath)); #else - remove((path)("../" + thePath)); + remove_all((path)("../" + thePath)); #endif } } @@ -1551,6 +1550,11 @@ bool ProcessAEUpdate(Install_info_cfg *c } catch (exception & ex) { + wxMessageDialog* DotNetDialogOfDeath = + new wxMessageDialog(TheWindow, ex.what(), "AE Installer Alert", + wxICON_EXCLAMATION , wxDefaultPosition); + + DotNetDialogOfDeath->ShowModal(); setStatusArea("Warning, handled exception: " + (string)ex.what()); return false; }