Changeset 355 for AE/Installer
- Timestamp:
- Jun 19, 2009, 12:30:30 AM (16 years ago)
- Location:
- AE/Installer/trunk/source
- Files:
-
- 3 edited
-
installer.h (modified) (1 diff)
-
main_window.cpp (modified) (48 diffs)
-
main_window.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
AE/Installer/trunk/source/installer.h
r325 r355 50 50 } 51 51 52 bool operator < (const ModPackage &fs) 53 { return (name < fs.name);} 54 55 bool operator > (const ModPackage &fs) 56 { return (name > fs.name);} 57 58 bool operator == (const ModPackage &fs) 59 { return (name == fs.name);} 52 60 }; 53 61 -
AE/Installer/trunk/source/main_window.cpp
r353 r355 1 1 /* 2 AE/Mod Installer3 by Gumby and Iritscen4 */5 6 // To-do: - Disable Install button when nothing (new) is selected2 AE/Mod Installer 3 by Gumby and Iritscen 4 */ 5 6 // To-do: - 7 7 // - Institute lots of checks into file-handling 8 // - Clear mod info fields when mod is de-selected 8 // - Clear mod info fields when mod is de-selected ??? 9 9 10 10 #define DEBUG … … 21 21 22 22 #include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations 23 23 #include "boost/lexical_cast.hpp" //int -> string 24 24 #include "installer.h" 25 25 … … 53 53 54 54 55 /* 56 int main(void) 57 { 58 if ( exists( "../../GameDataFolder/level0_Final.sep" ) ) splitInstances = NOT_SPLIT; 59 else splitInstances = NOT_SPLIT; 60 // SetConsoleTitle("AE Installer"); windows junk, convert to SDL 61 #ifdef WIN32 62 system("color 0A"); 63 #endif 64 cout << "\nWelcome to the AE installer!\n"; 65 cout << "\nWhat would you like to do?\n"; 66 67 return mainMenu(); 68 } 69 */ 70 71 72 73 int mainMenu(void) 74 { 75 char choice = '0'; 76 bool exit = false; 55 56 57 #include "boost/date_time/gregorian/gregorian.hpp" 58 #include "boost/date_time/date_parsing.hpp" 59 #include "boost/date_time/posix_time/posix_time.hpp" 60 61 int globalizeData(void) 62 { 63 using boost::lexical_cast; 64 using boost::bad_lexical_cast; 65 // using namespace boost::posix_time; 66 using namespace boost::gregorian; 67 using namespace boost::posix_time; 68 ptime start_time(second_clock::local_time()); 69 70 setStatusArea("Globalizing!"); 77 71 int err = 0; 78 do 79 { 80 if( exists( "../GameDataFolder" ) ) { 81 cout << "\n1. Add new packages\n"; 82 cout << "2. Remove packages\n"; 83 cout << "3. See what is installed\n"; 84 cout << "4. Globalize data\n"; 85 cout << "5. About AE\n"; 86 cout << "6. Quit\n\n"; 87 88 choice = cin.get(); 89 cin.ignore(128, '\n'); 90 switch(choice) 91 { 92 case '1': 93 err = installPackages(); 94 break; 95 case '2': 96 err = uninstallPackages(); 97 break; 98 case '3': 99 err = listInstalledPackages(); 100 break; 101 case '4': 102 err = globalizeData(); 103 break; 104 case '5': 105 err = printInstallerInfo(); 106 break; 107 case '6': 108 exit = true; 109 break; 110 default: 111 cout << "Please choose one of the above numbers, and press Enter.\n\n"; 112 } 113 if (err) // if something fatal happened 114 exit = true; 72 int parts_done = 0; 73 char Step_x_x[300]; 74 //char levels[i][5]; 75 remove("Globalize.log"); 76 ofstream logfile("Globalize.log"); 77 logfile << "Globalization started " << to_simple_string(start_time) << endl; 78 try { 79 80 char levels_cstr[15][3] = {"0", "1", "2", "3", "4", "6", "8", "9", "10", "11", "12", "13", "14", "18", "19"}; // the levels Oni has...probably should have made a string array. Oops. 81 //const vector<double> ck(cv, &cv[CvSize]); 82 vector<string> levels; 83 for (int f = 0; f < 15; f++) { 84 levels.push_back(levels_cstr[f]); 115 85 } 116 else {117 cout << "\n1. Globalize data\n";118 cout << "2. About AE\n";119 cout << "3. Quit\n\n";120 121 choice = cin.get();122 cin.ignore(128, '\n');123 switch(choice)124 {125 case '1':126 err = globalizeData();127 break;128 case '2':129 err = printInstallerInfo();130 break;131 case '3':132 exit = true;133 break;134 default:135 cout << "Please choose one of the above numbers, and press Enter.\n\n";136 }137 if (err) // if something fatal happened138 exit = true;139 }140 } while(!exit);141 142 return err;143 }144 145 int globalizeData(void)146 {147 int err = 0;148 149 try {150 int levels[15] = {0, 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19}; // the levels Oni has151 86 char choice = 0; 152 87 153 88 //SetCurrentDirectory("C:/Program Files/Oni/edition/install"); 154 char levelnum[3];89 ///char levels[i][3]; 155 90 path Characters = "../GameDataFolder/level0_Characters"; 156 91 path Particles = "../GameDataFolder/level0_Particles"; … … 161 96 path TRAC = Animations / "level0_TRAC"; 162 97 path TRAM = Animations / "level0_TRAM"; 98 99 vector<path> GDFPaths; 100 GDFPaths.push_back(Characters); 101 GDFPaths.push_back(Particles); 102 GDFPaths.push_back(Textures); 103 GDFPaths.push_back(Sounds); 104 GDFPaths.push_back(TRAC); 105 GDFPaths.push_back(TRAM); 106 107 108 path VanillaCharacters = "packages/VanillaDats/level0_Final/level0_Characters/level0_Characters.oni"; 109 path VanillaParticles = "packages/VanillaDats/level0_Final/level0_Particles/level0_Particles.oni"; 110 path VanillaTextures = "packages/VanillaDats/level0_Final/level0_Textures/level0_Textures.oni"; 111 path VanillaSounds = "packages/VanillaDats/level0_Final/level0_Sounds/level0_Sounds.oni"; 112 path VanillaAnimations = "packages/VanillaDats/level0_Final/level0_Animations/level0_Animations.oni"; 113 path VanillaTRAC = "packages/VanillaDats/level0_Final/level0_Animations/level0_TRAC.oni"; 114 path VanillaTRAM = "packages/VanillaDats/level0_Final/level0_Animations/level0_TRAM.oni"; 115 116 vector<path> VanillaPaths; 117 118 VanillaPaths.push_back(VanillaCharacters); 119 VanillaPaths.push_back(VanillaParticles); 120 VanillaPaths.push_back(VanillaTextures); 121 VanillaPaths.push_back(VanillaSounds); 122 VanillaPaths.push_back(VanillaTRAC); 123 VanillaPaths.push_back(VanillaTRAM); 124 163 125 /* 164 if (exists("../GameDataFolder/")) 165 { 166 //cout << "\nIt looks like you've already globalized Oni's data.\nDo you want to re-globalize?\n(This will erase existing mods installed to the AE's game data.)" 167 // << "\n1. Re-globalize" 168 // << "\n2. Return to main menu\n"; 169 //choice = cin.get(); 170 cin.ignore(128, '\n'); 171 if (choice == '1') 172 remove_all("../GameDataFolder"); // remove AE GDF 173 if (choice == '2') 174 return 0; 175 } 176 */ 126 if (exists("../GameDataFolder/")) 127 { 128 //cout << "\nIt looks like you've already globalized Oni's data.\nDo you want to re-globalize?\n(This will erase existing mods installed to the AE's game data.)" 129 // << "\n1. Re-globalize" 130 // << "\n2. Return to main menu\n"; 131 //choice = cin.get(); 132 cin.ignore(128, '\n'); 133 if (choice == '1') 134 remove_all("../GameDataFolder"); // remove AE GDF 135 if (choice == '2') 136 return 0; 137 } 138 */ 139 setStatusArea("Removing old GameDataFolder...\n"); 140 logfile << "Removing old GameDataFolder...\n"; 141 remove_all( "../GameDataFolder/" ); 142 setStatusArea("Creating needed directories..."); 143 logfile << "Creating needed directories...\n"; 177 144 create_directory( "../GameDataFolder/" ); 145 178 146 create_directory( "packages" ); 179 if (exists("packages/VanillaDats")) remove_all("packages/VanillaDats"); 147 148 if (exists("packages/VanillaDats")) remove_all("packages/VanillaDats"); 180 149 create_directory( "packages/VanillaDats" ); 181 150 182 151 create_directory( "packages/VanillaDats/level0_Final/" ); 152 //blah blah finish this. 153 //logfile << "packages/VanillaDats/level0_Final/ created"; 183 154 create_directory( Characters ); 184 155 create_directory( Particles ); … … 189 160 create_directory( TRAC ); 190 161 create_directory( TRAM ); 191 162 int num_levels = 0; 163 for(int i = 1; i < 15; i++) 164 { 165 if (exists("../../GameDataFolder/level" + levels[i] + "_Final.dat")) { 166 num_levels++; 167 168 } 169 } 170 logfile << "Exporting and moving...\n\n"; 171 int total_steps = 8 + 2 * num_levels; 192 172 for(int i = 0; i < 15; i++) 193 173 { 194 sprintf(levelnum,"%d",levels[i]); // int to char array195 exists("../../GameDataFolder/level" + (string)levelnum + "_Final");196 system((strOniSplit + " -export ../GameDataFolder/level" + (string)levelnum + "_Final ../../GameDataFolder/level" + (string)levelnum + "_Final.dat").c_str());197 174 198 create_directory( "packages/VanillaDats/level" + (string)levelnum + "_Final" ); //remember to cast your arrays as strings :) 199 create_directory( "packages/VanillaDats/level" + (string)levelnum + "_Final/level" + (string)levelnum + "_Final" ); 175 //printf(levels[i],"%d",levels[i]); // int to char array 200 176 201 directory_iterator end_iter; 202 for ( directory_iterator dir_itr( "../GameDataFolder/level" + (string)levelnum + "_Final" ); dir_itr != end_iter; ++dir_itr ) 203 { 204 //cout << dir_itr->path().filename(); 205 if ( is_regular_file( dir_itr->status() ) ) 177 if (exists("../../GameDataFolder/level" + levels[i] + "_Final.dat")) { 178 logfile << "level" << levels[i] << "_Final\n"; 179 logfile << "\tExporting level" << levels[i] << "_Final.dat\n"; 180 //printf(Step_x_x,"Step %d/%d: exporting level%d_final.dat", parts_done + 1,, levels[i]); setStatusArea((string)Step_x_x); 181 setStatusArea("Step " + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + " exporting level" + levels[i]+"_Final.dat"); 182 create_directory( "../GameDataFolder/level" + levels[i] + "_Final" ); 183 // setStatusArea(strOniSplit + " -export ../GameDataFolder/level" + levels[i] + "_Final ../../GameDataFolder/level" + levels[i] + "_Final.dat"); 184 system((strOniSplit + " -export ../GameDataFolder/level" + levels[i] + "_Final ../../GameDataFolder/level" + levels[i] + "_Final.dat").c_str()); 185 create_directory( "packages/VanillaDats/level" + levels[i] + "_Final" ); 186 create_directory( "packages/VanillaDats/level" + levels[i] + "_Final/level" + levels[i] + "_Final" ); 187 188 directory_iterator end_iter; 189 for ( directory_iterator dir_itr( "../GameDataFolder/level" + levels[i] + "_Final" ); dir_itr != end_iter; ++dir_itr ) 206 190 { 191 //cout << dir_itr->path().filename(); 192 if ( is_regular_file( dir_itr->status() ) ) 193 { 194 if ( dir_itr->path().filename().substr(0,8) == "TXMPfail" || 195 dir_itr->path().filename().substr(0,9) == "TXMPlevel" || 196 ( dir_itr->path().filename().substr(0,4) == "TXMP" && dir_itr->path().filename().find("intro")!=string::npos) || 197 dir_itr->path().filename().substr(0,4) == "TXMB" || 198 dir_itr->path().filename() == "M3GMpowerup_lsi.oni" || 199 dir_itr->path().filename() == "TXMPlsi_icon.oni" || 200 ( dir_itr->path().filename().substr(0,4) == "TXMB" && dir_itr->path().filename().find("splash_screen.oni")!=string::npos) ) 201 { 202 cout <<dir_itr->path().filename() << "\n"; 203 create_directory( dir_itr->path().parent_path() / "NoGlobal"); 204 if(!exists( dir_itr->path().parent_path() / "NoGlobal" / dir_itr->filename())) rename(dir_itr->path(), dir_itr->path().parent_path() / "NoGlobal" / 205 dir_itr->filename()); 206 else remove(dir_itr->path()); 207 } 208 else if (dir_itr->path().filename().substr(0,4) == "TRAC" 209 || dir_itr->path().filename().substr(0,4) == "ONVL") { 210 cout <<dir_itr->path().filename() << "\n"; 211 if(!exists( TRAC / dir_itr->filename())) rename(dir_itr->path(), TRAC / dir_itr->filename()); 212 else remove(dir_itr->path()); 213 } 214 else if (dir_itr->path().filename().substr(0,4) == "TRAM") { 215 cout <<dir_itr->path().filename() << "\n"; 216 if(!exists( TRAM / dir_itr->filename())) rename(dir_itr->path(), TRAM / dir_itr->filename()); 217 else remove(dir_itr->path()); 218 } 219 else if (dir_itr->path().filename().substr(0,4) == "ONSK" || 220 dir_itr->path().filename().substr(0,4) == "TXMP") { 221 cout <<dir_itr->path().filename() << "\n";\ 222 create_directory( dir_itr->path().parent_path() / "TexFix"); 223 if(!exists( Textures / dir_itr->filename())) rename(dir_itr->path(), Textures / dir_itr->filename()); 224 //rename(dir_itr->path(), dir_itr->path().parent_path() / "TexFix" / dir_itr->filename()); 225 } 226 else if (dir_itr->path().filename().substr(0,4) == "ONCC" 227 || dir_itr->path().filename().substr(0,4) == "TRBS" 228 || dir_itr->path().filename().substr(0,4) == "ONCV" 229 || dir_itr->path().filename().substr(0,4) == "TRMA" 230 || dir_itr->path().filename().substr(0,4) == "TRSC" 231 || dir_itr->path().filename().substr(0,4) == "TRAS") { 232 cout <<dir_itr->path().filename() << "\n"; 233 if(!exists( Characters / dir_itr->filename())) rename(dir_itr->path(), Characters / dir_itr->filename()); 234 else remove(dir_itr->path()); 235 } 236 else if (dir_itr->path().filename().substr(0,4) == "OSBD" 237 || dir_itr->path().filename().substr(0,4) == "SNDD") { 238 cout << dir_itr->path().filename() << "\n"; 239 if(!exists( Sounds / dir_itr->filename())) rename(dir_itr->path(), Sounds / dir_itr->filename()); 240 else remove(dir_itr->path()); 241 } 242 else if (dir_itr->path().filename().substr(0,5) == "BINA3" 243 || dir_itr->path().filename().substr(0,10) == "M3GMdebris" 244 || dir_itr->path().filename() == "M3GMtoxic_bubble.oni" 245 || dir_itr->path().filename().substr(0,8) == "M3GMelec" 246 || dir_itr->path().filename().substr(0,7) == "M3GMrat" 247 || dir_itr->path().filename().substr(0,7) == "M3GMjet" 248 || dir_itr->path().filename().substr(0,9) == "M3GMbomb_" 249 || dir_itr->path().filename() == "M3GMbarab_swave.oni" 250 || dir_itr->path().filename() == "M3GMbloodyfoot.oni" 251 ){ 252 cout <<dir_itr->path().filename() << "\n"; 253 if(!exists( Particles / dir_itr->filename())) rename(dir_itr->path(), Particles / dir_itr->filename()); 254 else remove(dir_itr->path()); 255 } 256 else if (dir_itr->path().filename().substr(0,4) == "AGDB" 257 || dir_itr->path().filename().substr(0,4) == "TRCM") { 258 cout <<dir_itr->path().filename() << "\n"; 207 259 208 if ( dir_itr->path().filename().substr(0,8) == "TXMPfail" || 209 dir_itr->path().filename().substr(0,9) == "TXMPlevel" || 210 ( dir_itr->path().filename().substr(0,4) == "TXMP" && dir_itr->path().filename().find("intro")!=string::npos) || 211 dir_itr->path().filename().substr(0,4) == "TXMB" || 212 dir_itr->path().filename() == "M3GMpowerup_lsi.oni" || 213 dir_itr->path().filename() == "TXMPlsi_icon.oni" || 214 ( dir_itr->path().filename().substr(0,4) == "TXMB" && dir_itr->path().filename().find("splash_screen.oni")!=string::npos) ) 215 { 216 cout <<dir_itr->path().filename() << "\n"; 217 create_directory( dir_itr->path().parent_path() / "NoGlobal"); 218 if(!exists( dir_itr->path().parent_path() / "NoGlobal" / dir_itr->filename())) rename(dir_itr->path(), dir_itr->path().parent_path() / "NoGlobal" / 219 dir_itr->filename()); 220 else remove(dir_itr->path()); 260 if(!exists( Archive / dir_itr->filename())) rename(dir_itr->path(), Archive / dir_itr->filename()); 261 else remove(dir_itr->path()); 262 } 263 if (exists(dir_itr->path())) { 264 265 } 266 else { 267 logfile << "\tMoved file: " << dir_itr->path().filename() << "\n"; 268 } 221 269 } 222 else if (dir_itr->path().filename().substr(0,4) == "TRAC") { 223 cout <<dir_itr->path().filename() << "\n"; 224 if(!exists( TRAC / dir_itr->filename())) rename(dir_itr->path(), TRAC / dir_itr->filename()); 225 else remove(dir_itr->path()); 226 } 227 else if (dir_itr->path().filename().substr(0,4) == "TRAM") { 228 cout <<dir_itr->path().filename() << "\n"; 229 if(!exists( TRAM / dir_itr->filename())) rename(dir_itr->path(), TRAM / dir_itr->filename()); 230 else remove(dir_itr->path()); 231 } 232 else if (dir_itr->path().filename().substr(0,4) == "ONSK" || 233 dir_itr->path().filename().substr(0,4) == "TXMP") { 234 cout <<dir_itr->path().filename() << "\n";\ 235 create_directory( dir_itr->path().parent_path() / "TexFix"); 236 if(!exists( Textures / dir_itr->filename())) rename(dir_itr->path(), Textures / dir_itr->filename()); 237 //rename(dir_itr->path(), dir_itr->path().parent_path() / "TexFix" / dir_itr->filename()); 238 } 239 else if (dir_itr->path().filename().substr(0,4) == "ONCC" 240 || dir_itr->path().filename().substr(0,4) == "TRBS" 241 || dir_itr->path().filename().substr(0,4) == "TRMA" 242 || dir_itr->path().filename().substr(0,4) == "TRSC" 243 || dir_itr->path().filename().substr(0,4) == "TRAS") { 244 cout <<dir_itr->path().filename() << "\n"; 245 if(!exists( Characters / dir_itr->filename())) rename(dir_itr->path(), Characters / dir_itr->filename()); 246 else remove(dir_itr->path()); 247 } 248 else if (dir_itr->path().filename().substr(0,4) == "OSBD" 249 || dir_itr->path().filename().substr(0,4) == "SNDD") { 250 cout << dir_itr->path().filename() << "\n"; 251 if(!exists( Sounds / dir_itr->filename())) rename(dir_itr->path(), Sounds / dir_itr->filename()); 252 else remove(dir_itr->path()); 253 } 254 else if (dir_itr->path().filename().substr(0,5) == "BINA3" 255 || dir_itr->path().filename().substr(0,10) == "M3GMdebris" 256 || dir_itr->path().filename() == "M3GMtoxic_bubble.oni" 257 || dir_itr->path().filename().substr(0,8) == "M3GMelec" 258 || dir_itr->path().filename().substr(0,7) == "M3GMrat" 259 || dir_itr->path().filename().substr(0,7) == "M3GMjet" 260 || dir_itr->path().filename().substr(0,9) == "M3GMbomb_" 261 || dir_itr->path().filename() == "M3GMbarab_swave.oni" 262 || dir_itr->path().filename() == "M3GMbloodyfoot.oni" 263 ){ 264 cout <<dir_itr->path().filename() << "\n"; 265 if(!exists( Particles / dir_itr->filename())) rename(dir_itr->path(), Particles / dir_itr->filename()); 266 else remove(dir_itr->path()); 267 } 268 else if (dir_itr->path().filename().substr(0,4) == "AGDB" 269 || dir_itr->path().filename().substr(0,4) == "TRCM") { 270 cout <<dir_itr->path().filename() << "\n"; 270 271 271 272 272 if(!exists( Archive / dir_itr->filename())) rename(dir_itr->path(), Archive / dir_itr->filename());273 else remove(dir_itr->path());274 }275 273 } 274 logfile << "\tCleaning up TXMPs...\n"; 275 system( (strOniSplit + " -move:delete " + Textures.string() + " ../GameDataFolder/level" + levels[i] + "_Final/TXMP*.oni").c_str()); 276 parts_done++; 277 278 setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) )); 276 279 277 278 } 279 system( (strOniSplit + " -move:delete " + Textures.string() + " ../GameDataFolder/level" + (string)levelnum + "_Final/TXMP*.oni").c_str()); 280 280 } 281 281 } 282 282 logfile << "Reimporting levels\n"; 283 283 for (int i = 0; i < 15; i++) 284 284 { 285 sprintf(levelnum,"%d",levels[i]); 286 system( (strOniSplit + " " + strImportOption + " ../GameDataFolder/level" + levelnum + "_Final packages/VanillaDats/level" + levelnum + "_Final/level" 287 + levelnum + "_Final/level" + levelnum + "_Final.oni").c_str()); 285 logfile << "\tReimporting level" << levels[i] << "_Final.oni\n"; 286 //printf(levels[i],"%d",levels[i]); 287 //printf(Step_x_x,"Step %d/%d: reimporting level", parts_done + 1, 7 + 2 * num_levels); setStatusArea((string)Step_x_x + levels[i] + (string)"_Final.dat"); 288 setStatusArea("Step " + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + " reimporting level" + levels[i]+"_Final.oni"); 289 system( (strOniSplit + " " + strImportOption + " ../GameDataFolder/level" + levels[i] + "_Final packages/VanillaDats/level" + levels[i] + "_Final/level" 290 + levels[i] + "_Final/level" + levels[i] + "_Final.oni > Globalize.oni").c_str()); 291 setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) )); 292 parts_done++; 288 293 } 289 path VanillaCharacters = "packages/VanillaDats/level0_Final/level0_Characters/level0_Characters.oni";290 path VanillaParticles = "packages/VanillaDats/level0_Final/level0_Particles/level0_Particles.oni";291 path VanillaTextures = "packages/VanillaDats/level0_Final/level0_Textures/level0_Textures.oni";292 path VanillaSounds = "packages/VanillaDats/level0_Final/level0_Sounds/level0_Sounds.oni";293 path VanillaAnimations = "packages/VanillaDats/level0_Final/level0_Animations/level0_Animations.oni";294 path VanillaTRAC = "packages/VanillaDats/level0_Final/level0_Animations/level0_TRAC.oni";295 path VanillaTRAM = "packages/VanillaDats/level0_Final/level0_Animations/level0_TRAM.oni";296 294 create_directory( VanillaCharacters.parent_path() ); 297 295 create_directory( VanillaParticles.parent_path() ); … … 299 297 create_directory( VanillaSounds.parent_path() ); 300 298 create_directory( VanillaAnimations.remove_filename() ); 299 300 for(int j = 0; j < GDFPaths.size(); j++) { 301 logfile << "\tReimporting " << GDFPaths[j].filename() << ".oni\n"; 302 setStatusArea("Step" + lexical_cast<std::string>(parts_done + 1) + "/" + lexical_cast<std::string>(total_steps) + ": reimporting " + GDFPaths[j].filename() ); 303 system((strOniSplit + " " + strImportOption + " " + GDFPaths[j].string() + " " + VanillaPaths[j].string()).c_str()); 304 parts_done++; 305 setProgressBar( (int)(1000 * (float)(parts_done) / (float)(total_steps) )); 306 } 307 /* 308 printf(Step_x_x,"Step %d/%d: reimporting level0_Characters", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 301 309 system((strOniSplit + " " + strImportOption + " " + Characters.string() + " " + VanillaCharacters.string()).c_str()); 310 parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_Particles", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 302 311 system((strOniSplit + " " + strImportOption + " " + Particles.string() + " " + VanillaParticles.string()).c_str()); 312 parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_Textures", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 303 313 system((strOniSplit + " " + strImportOption + " " + Textures.string() + " " + VanillaTextures.string()).c_str()); 304 314 //system((strOniSplit + " " + strImportOption + (string)" " + Animations.string() + (string)" " + VanillaAnimations.string()).c_str()); 315 parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_TRAC", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 305 316 system((strOniSplit + " " + strImportOption + " " + TRAC.string() + " " + VanillaTRAC.string()).c_str()); 317 parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_Sounds", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 306 318 system((strOniSplit + " " + strImportOption + " " + Sounds.string() + " " + VanillaSounds.string()).c_str()); 307 system((strOniSplit + " " + strImportOption + " " + TRAM.string() + " " + VanillaTRAM.string()).c_str()); 319 parts_done++; printf(Step_x_x,"Step %d/%d: reimporting level0_TRAM", parts_done,7 + 2 * num_levels); setStatusArea((string)Step_x_x);setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 320 system((strOniSplit + " " + strImportOption + " " + TRAM.string() + " " + VanillaTRAM.string()).c_str()); 321 //parts_done++; setStatusArea((string)"Copying level scripts...");setProgressBar( (int)(1000 * (float)(parts_done) / (float)(7 + 2 * num_levels) )); 322 if (exists("../GameDataFolder/IGMD")) remove_all("../GameDataFolder/IGMD"); 323 */ 324 create_directory((path)"../GameDataFolder/IGMD"); 325 copy((path)"packages/VanillaBSL/", (path)"../GameDataFolder"); 326 setProgressBar( 1000 ); 327 setStatusArea((string)"Done! Now select your mod packages and click install."); 328 // while(1) Sleep(-1); 308 329 309 create_directory("../GameDataFolder/IGMD");310 copy((path)"packages/VanillaBSL/IGMD", (path)"../GameDataFolder");311 330 } 312 331 catch (exception ex) { 313 cout << ex.what(); 314 } 332 setStatusArea("Warning, handled exception: " + (string)ex.what()); 333 } 334 335 ptime end_time(second_clock::local_time()); 336 time_period total_time (start_time, end_time); 337 logfile << "\n\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length(); 338 //total_time.length().hours(); 339 logfile.close(); 340 315 341 return err; 316 342 } 317 343 318 int installPackages(void)319 {320 bool installed_something = 0;321 int err = 0;322 ModPackage package;323 vector<string> installed_packages;324 vector<ModPackage> packages;325 vector<ModPackage>::iterator iter;326 vector<string> installString;327 328 iter = packages.begin();329 packages = getPackages();330 vector<string> installedMods = getInstallString();331 332 if (packages.empty())333 {334 cout << "Error: You have no packages!\n";335 return 0;336 }337 338 cout << "Detecting installed packages...\n";339 340 int index = 1;341 char choice = '0';342 343 for (vector<ModPackage>::iterator package_iter = packages.begin(); package_iter != packages.end(); ++package_iter)344 {345 if (!binary_search(installedMods.begin(), installedMods.end(), package_iter->modStringName))346 { //package_iter->isInstalled :< I forgot about this...347 //cout << index << " ";348 system(strClsCmd);349 cout << (*package_iter).name << "\n";350 for (int character = 1; character <= (*package_iter).name.length() - 1; character++) cout << '-';351 cout << "\n"352 << (*package_iter).readme << "\n\n"353 << "Please enter a number choice\n"354 << " 1. Add\n"355 << " 2. Don't Add\n"356 << "";357 index++;358 choice = 0;359 360 do361 {362 choice = cin.get();363 cin.ignore(1280, '\n');364 } while(choice == 0);365 366 if (choice == '1')367 {368 cout << "\nInstalling...\n\n";369 if (package_iter->hasOnis || (package_iter->hasDeltas /*(*package_iter).isUnpacked */ ))370 {371 installed_something = 1;372 installedMods.push_back(package_iter->modStringName);373 system(strPauseCmd);374 }375 }376 }377 }378 if (index == 1)379 {380 cout << "Warning: All packages are already installed\n";381 //would you like to recombine your data?382 return 0;383 }384 if (installed_something == 0)385 {386 cout << "Warning: You didn't add anything!\n";387 //would you like to recombine your data?388 return 0;389 }390 391 sort(installedMods.begin(), installedMods.end());392 //system(Onisplit.c_str());393 recompileAll(installedMods);394 system(strPauseCmd);395 396 return err;397 }398 399 int uninstallPackages(void)400 {401 int err = 0;402 ModPackage package;403 vector<string> installed_packages;404 vector<ModPackage> packages;405 vector<ModPackage>::iterator iter;406 vector<string> installString;407 408 iter = packages.begin();409 packages = getPackages();410 411 412 cout << "Detecting installed packages...\n";413 414 vector<string> installedMods = getInstallString();415 416 if (packages.empty())417 {418 cout << "Error: You have no packages!\n";419 return 0;420 }421 422 int index = 0;423 int uninstalled_something = 0;424 char choice = '0';425 426 for (vector<ModPackage>::iterator package_iter = packages.begin(); package_iter != packages.end(); ++package_iter)427 {428 if (binary_search(installedMods.begin(), installedMods.end(), package_iter->modStringName))429 { //package_iter->isInstalled :< I forgot about this...430 //cout << index << " ";431 system(strClsCmd);432 cout << (*package_iter).name << "\n";433 for (int character = 1; character <= (*package_iter).name.length() - 1; character++) cout << '-';434 cout << "\n"435 << (*package_iter).readme << "\n\n"436 << "Please enter a number choice\n"437 << " 1. Remove\n"438 << " 2. Don't Remove\n"439 << "";440 441 choice = 0;442 443 do444 {445 choice = cin.get();446 cin.ignore(1280, '\n');447 } while(choice == 0);448 449 if (choice == '1')450 {451 cout << "\nUninstalling...\n\n";452 installedMods.erase( installedMods.begin() + (index) );453 system(strPauseCmd);454 uninstalled_something = 1;455 456 }457 else {458 index++;459 }460 }461 }462 if ( uninstalled_something == 0 )463 {464 if (index == 0) //bad practice, I need to implement a second vector or something. Meh.465 {466 cout << "\nWarning: You have no installed packages!";467 }468 else469 {470 cout << "\nWarning: You didn't remove anything!";471 }472 //would you like to recombine your data?473 return 0;474 475 }476 sort(installedMods.begin(), installedMods.end());477 //system(Onisplit.c_str());478 recompileAll(installedMods);479 system(strPauseCmd);480 481 return err;482 }483 484 int listInstalledPackages(void)485 {486 cout << "\nThis feature not yet implemented.\n\n";487 488 return 0;489 }490 491 int printInstallerInfo(void)492 {493 cout << "\nAE/Mod Installer\n";494 cout << "version " << strInstallerVersion << "\n";495 cout << "by Gumby & Iritscen\n";496 cout << "see http://oni.bungie.org/community/forums for more info\n\n";497 498 return 0;499 }500 344 501 345 vector<ModPackage> getPackages(void) … … 506 350 string filename = "\0"; 507 351 string MODINFO_CFG = "Mod_Info.cfg"; 508 352 509 353 try 510 354 { … … 514 358 file.open((dir_itr->path().string() + "/" + MODINFO_CFG).c_str()); 515 359 //cout << filename << "\n"; 516 360 517 361 if(!file.fail()) 518 362 { … … 524 368 file.clear(); 525 369 } 370 sort(packages.begin(), packages.end()); 526 371 } 527 372 catch (const std::exception & ex) … … 529 374 cout << "Warning, something odd happened!\n"; 530 375 } 531 376 532 377 return packages; 533 378 } … … 536 381 { 537 382 /* 538 This converts a file to a ModPackage struct.539 540 A few notes...541 "iter" is the current word we are on. I should have named it "token" or something, but I don't have multiple iterators, so its ok.542 I refer to (*iter) at the beginning of each if statement block. I could probably store it as a variable, but I'm pretty sure that dereferencing a pointer\iterator isn't much543 slower than reading a variable.544 */383 This converts a file to a ModPackage struct. 384 385 A few notes... 386 "iter" is the current word we are on. I should have named it "token" or something, but I don't have multiple iterators, so its ok. 387 I refer to (*iter) at the beginning of each if statement block. I could probably store it as a variable, but I'm pretty sure that dereferencing a pointer\iterator isn't much 388 slower than reading a variable. 389 */ 545 390 ModPackage package; 546 391 string line; … … 567 412 iter = tokens.begin(); //what word we are on, starts at first word 568 413 /* 569 if (!AEInstallVersion.compare(*iter))570 If mod is too old, skip this mod.571 */414 if (!AEInstallVersion.compare(*iter)) 415 If mod is too old, skip this mod. 416 */ 572 417 /*else*/if (!NameOfMod.compare(*iter)) { //if it contains the name 573 418 for ( ; iter !=tokens.end() && SLASHSLASH.compare(*iter); iter++) { //interates through the words, ends if it reaches the end of the line or a "//" comment … … 578 423 } 579 424 } 580 425 581 426 } 582 427 else if (!ModString.compare(*iter)) { … … 590 435 if (toupper((*iter)[0]) + toupper((*iter)[1]) + toupper((*iter)[2]) == 'Y' + 'E' + 'S') package.hasOnis = 1; //Gotta love c++'s lack of a standard case-insensitive 591 436 else if (!HasBSL.compare(*iter)) { // string comparer...I know my implementation here sucks. I need to change it to check each character one by one. At the moment, 592 iter++; iter++;} // using "YFR" would probably set it off. :<593 437 iter++; iter++;} // using "YFR" would probably set it off. :< 438 594 439 if (toupper((*iter)[0]) + toupper((*iter)[1]) + toupper((*iter)[2]) == 'Y' + 'E' + 'S') package.hasBSL = 1; 595 440 } … … 638 483 } 639 484 } 640 485 641 486 } 642 487 package.doOutput(); … … 646 491 void recompileAll(vector<string> installedMods) 647 492 { 648 #ifdef WIN32 649 RedirectIOToConsole(); 650 HWND hWnd = GetConsoleWindow(); 651 ShowWindow( hWnd, SW_HIDE ); 652 #endif 493 using namespace boost::gregorian; 494 using namespace boost::posix_time; 495 653 496 setStatusArea("Importing levels..."); 654 497 //setStatusArea("Recompiling Data..."); … … 660 503 string datString; 661 504 std::stringstream out; 662 663 505 506 ptime start_time(second_clock::local_time()); 664 507 clearOldDats(); 665 remove("Onisplit.log"); 508 remove("Install.log"); 509 ofstream logfile("Install.log"); 510 logfile << "Mod Installation started " << to_simple_string(start_time) << endl; 511 logfile.close(); 666 512 if(splitInstances == SPLIT){ 667 513 recursive_directory_iterator end_iter; 668 514 669 515 for ( recursive_directory_iterator dir_itr( vanilla_dir ); 670 dir_itr != end_iter;671 ++dir_itr )516 dir_itr != end_iter; 517 ++dir_itr ) 672 518 { 673 519 try{ … … 678 524 } 679 525 catch(exception ex) { 680 526 681 527 } 682 528 } 683 529 684 530 //recursive_directory_iterator end_iter; 685 686 531 532 687 533 out << numberOfDats; 688 534 datString = out.str(); 689 535 try { 690 536 for ( recursive_directory_iterator dir_itr( vanilla_dir ); 691 dir_itr != end_iter;692 ++dir_itr )537 dir_itr != end_iter; 538 ++dir_itr ) 693 539 { 694 540 try … … 700 546 if (exists("packages/" + installedMods[i] + "/oni/" + dir_itr->path().parent_path().filename() + '/' + dir_itr->path().filename() )) 701 547 importCommand += " packages/" + installedMods[i] + "/oni/" + dir_itr->path().parent_path().filename() + '/' + dir_itr->path().filename(); 702 548 703 549 //else cout << " packages/VanillaDats/" + installedMods[i] + "/oni/"; 704 550 } 705 importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat >> Onisplit.log";706 707 sprintf(statusString,"%d/%i\0",j,numberOfDats);551 importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat >> Install.log"; 552 553 printf(statusString,"%d/%i\0",j,numberOfDats); 708 554 setProgressBar( (int)(1000 * (float)(j-1) / (float)numberOfDats) ); //100% * dat we're on / total dats 709 555 setStatusArea("Importing " + dir_itr->path().filename() + " " + statusString); 710 556 711 557 system(importCommand.c_str()); 712 558 //Sleep(1000); 713 559 //cout << importCommand << "\n"; 714 560 j++; 715 561 716 562 } 717 563 } 718 564 catch ( const std::exception & ex ) 719 565 { 720 cout << "Warning, exception " << ex.what() << "!"; 566 567 remove("Install.log"); 568 ofstream logfile("Install.log"); 569 570 571 logfile << "Warning, exception " << ex.what() << "!"; 572 setStatusArea("Warning, exception " + (string)ex.what() + "!"); 573 logfile.close(); 721 574 } 722 575 } 723 576 724 577 } 725 578 catch( const std::exception & ex ) { 726 cout << "Warning, exception " << ex.what() << "!\n" 727 << "You probably need to re-globalize."; 728 //create_directory( "./packages/VanillaDats" ); 579 580 remove("Install.log"); 581 ofstream logfile("Install.log"); 582 583 584 logfile << "Warning, exception " << ex.what() << "!"; 585 setStatusArea("Warning, exception " + (string)ex.what() + "!"); 586 logfile.close(); 729 587 } 730 588 731 589 } 732 590 else if(splitInstances == NOT_SPLIT){ 733 591 directory_iterator end_iter; 734 592 735 593 for ( directory_iterator dir_itr( vanilla_dir ); 736 dir_itr != end_iter;737 ++dir_itr )594 dir_itr != end_iter; 595 ++dir_itr ) 738 596 { 739 597 740 598 if ( is_directory( dir_itr->status() ) ) 741 599 { 742 600 numberOfDats++; 743 601 } 744 745 602 603 746 604 } 747 605 748 606 out << numberOfDats; 749 607 datString = out.str(); 750 608 751 609 for ( directory_iterator dir_itr( vanilla_dir ); 752 dir_itr != end_iter;753 ++dir_itr )610 dir_itr != end_iter; 611 ++dir_itr ) 754 612 { 755 613 try … … 758 616 { 759 617 importCommand = strOniSplit + " " + strImportOption + " " + vanilla_dir.string() + dir_itr->path().filename() + " " + "../GameDataFolder/" + dir_itr->path().filename() 760 + ".dat";618 + ".dat"; 761 619 for (int i = 0; i < installedMods.size(); ++i) { 762 620 if (exists("packages/" + installedMods[i] + "/oni/" + dir_itr->path().filename() )) 763 621 importCommand += " packages/" + installedMods[i] + "/oni/" + dir_itr->path().filename(); 764 622 } 765 importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat ";766 767 sprintf(statusString,"%d/%i\0",j,numberOfDats);623 importCommand += " ../GameDataFolder/" + dir_itr->path().filename() + ".dat >> Install.log"; 624 625 printf(statusString,"%d/%i\0",j,numberOfDats); 768 626 setProgressBar( (int)(1000 * (float)(j-1) / (float)numberOfDats) ); //100% * dat we're on / total dats 769 627 setStatusArea("Importing " + dir_itr->path().filename() + " " + statusString); 770 628 771 629 system(importCommand.c_str()); 772 630 773 631 j++; 774 632 } … … 776 634 catch ( const std::exception & ex ) 777 635 { 778 cout << "Warning, something odd happened!\n"; 779 } 780 } 781 } 636 637 remove("Install.log"); 638 ofstream logfile("Install.log"); 639 640 641 logfile << "Warning, exception " << ex.what() << "!"; 642 setStatusArea("Warning, exception " + (string)ex.what() + "!"); 643 logfile.close(); 644 }} 645 } 646 logfile << "Writing config file"; 782 647 writeInstalledMods(installedMods); 783 648 setProgressBar(1000); 784 setStatusArea("Done!"); 649 setStatusArea("Done! You can now play Oni."); 650 651 ptime end_time(second_clock::local_time()); 652 time_period total_time (start_time, end_time); 653 654 655 ofstream logfile2("Install.log", ios::app | ios::ate); 656 string outstring = (string)"\n\nGlobalization ended " + to_simple_string(end_time) + "\nThe process took ";// + (string)total_time.length(); 657 658 logfile2 << "\nGlobalization ended " << to_simple_string(end_time) << "\nThe process took " << total_time.length(); 659 660 //logfile2.write(outstring.c_str(), outstring.length()); 661 logfile2.close(); 662 663 //total_time.length().hours(); 664 785 665 Sleep(1000); 786 666 setProgressBar(0); … … 789 669 void writeInstalledMods(vector<string> installedMods) 790 670 { 791 671 792 672 if ( exists( strInstallCfg ) ) 793 673 { 794 674 remove( strInstallCfg ); 795 675 } 796 676 797 677 ofstream file(strInstallCfg.c_str()); 798 678 799 679 vector<string>list = installedMods; 800 680 vector<string>::iterator begin_iter = list.begin(); 801 681 vector<string>::iterator end_iter = list.end(); 802 682 803 683 sort( list.begin(), list.end() ); 804 684 805 685 for( ; begin_iter != end_iter; ++begin_iter) { 806 686 file << *begin_iter << " "; 807 687 } 808 688 809 689 file.close(); 810 690 file.clear(); 811 691 812 692 } 813 693 … … 816 696 //system(strPauseCmd); 817 697 vector<string> returnval; 818 698 819 699 string line; 820 700 fstream file; 821 701 822 702 if (exists( Cfg )) 823 703 { … … 830 710 } 831 711 else cout << "fail"; 832 712 833 713 return returnval; 834 714 } … … 841 721 // Find first "non-delimiter". 842 722 string::size_type pos = str.find_first_of(delimiters, lastPos); 843 723 844 724 while (string::npos != pos || string::npos != lastPos) 845 725 { … … 856 736 directory_iterator end_iter_gdf; 857 737 for ( directory_iterator dir_itr_gdf( "../GameDataFolder" ); 858 dir_itr_gdf != end_iter_gdf;859 ++dir_itr_gdf )738 dir_itr_gdf != end_iter_gdf; 739 ++dir_itr_gdf ) 860 740 { 861 741 //cout << dir_itr_gdf->path().extension() << "\n"; … … 863 743 remove( dir_itr_gdf->path() ); 864 744 } 865 866 } 867 745 746 } 747 868 748 } 869 749 … … 912 792 913 793 /* 914 * MainWindow type definition915 */794 * MainWindow type definition 795 */ 916 796 917 797 IMPLEMENT_CLASS( MainWindow, wxFrame ) … … 919 799 920 800 /* 921 * MainWindow event table definition922 */801 * MainWindow event table definition 802 */ 923 803 924 804 BEGIN_EVENT_TABLE( MainWindow, wxFrame ) 925 805 926 806 ////@begin MainWindow event table entries 927 EVT_CHECKBOX( SelectAll_Checkbox, MainWindow::OnSelectAllCheckboxClick )928 929 EVT_BUTTON( Refresh_Button, MainWindow::OnRefreshButtonClick )930 931 EVT_LISTBOX( Mods_CheckboxList1, MainWindow::OnModsCheckboxList1Selected )932 EVT_CHECKLISTBOX( Mods_CheckboxList1, MainWindow::OnModsCheckboxList1Toggled )933 934 EVT_UPDATE_UI( ID_STATUSBAR, MainWindow::OnStatusbarUpdate )935 936 EVT_BUTTON( Install_Button, MainWindow::OnInstallButtonClick )937 938 EVT_RADIOBUTTON( Sep_RadioButton, MainWindow::OnSepRadioButtonSelected )939 940 EVT_RADIOBUTTON( NoSep_RadioButton, MainWindow::OnNoSepRadioButtonSelected )941 942 EVT_RADIOBUTTON( Separated_RadioButton, MainWindow::OnSeparatedRadioButtonSelected )943 944 EVT_RADIOBUTTON( Complete_RadioButton, MainWindow::OnCompleteRadioButtonSelected )945 946 EVT_BUTTON( ReGlobalize_Button, MainWindow::OnReGlobalizeButtonClick )947 948 EVT_MENU( wxID_LOAD, MainWindow::OnLoadClick )949 950 EVT_MENU( wxID_SAVE, MainWindow::OnSaveClick )951 952 EVT_MENU( wxID_EXIT, MainWindow::OnExitClick )953 954 EVT_MENU( wxID_OPTIONS, MainWindow::OnOptionsClick )955 956 EVT_MENU( wxID_ABOUT, MainWindow::OnAboutClick )807 EVT_CHECKBOX( SelectAll_Checkbox, MainWindow::OnSelectAllCheckboxClick ) 808 809 EVT_BUTTON( Refresh_Button, MainWindow::OnRefreshButtonClick ) 810 811 EVT_LISTBOX( Mods_CheckboxList1, MainWindow::OnModsCheckboxList1Selected ) 812 EVT_CHECKLISTBOX( Mods_CheckboxList1, MainWindow::OnModsCheckboxList1Toggled ) 813 814 EVT_UPDATE_UI( ID_STATUSBAR, MainWindow::OnStatusbarUpdate ) 815 816 EVT_BUTTON( Install_Button, MainWindow::OnInstallButtonClick ) 817 818 EVT_RADIOBUTTON( Sep_RadioButton, MainWindow::OnSepRadioButtonSelected ) 819 820 EVT_RADIOBUTTON( NoSep_RadioButton, MainWindow::OnNoSepRadioButtonSelected ) 821 822 EVT_RADIOBUTTON( Separated_RadioButton, MainWindow::OnSeparatedRadioButtonSelected ) 823 824 EVT_RADIOBUTTON( Complete_RadioButton, MainWindow::OnCompleteRadioButtonSelected ) 825 826 EVT_BUTTON( ReGlobalize_Button, MainWindow::OnReGlobalizeButtonClick ) 827 828 EVT_MENU( wxID_LOAD, MainWindow::OnLoadClick ) 829 830 EVT_MENU( wxID_SAVE, MainWindow::OnSaveClick ) 831 832 EVT_MENU( wxID_EXIT, MainWindow::OnExitClick ) 833 834 EVT_MENU( wxID_OPTIONS, MainWindow::OnOptionsClick ) 835 836 EVT_MENU( wxID_ABOUT, MainWindow::OnAboutClick ) 957 837 958 838 ////@end MainWindow event table entries … … 962 842 963 843 /* 964 * MainWindow constructors965 */844 * MainWindow constructors 845 */ 966 846 967 847 MainWindow::MainWindow() 968 848 { 969 Init();849 Init(); 970 850 } 971 851 972 852 MainWindow::MainWindow( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) 973 853 { 974 Init();975 Create( parent, id, caption, pos, size, style );976 } 977 978 979 /* 980 * MainWindow creator981 */854 Init(); 855 Create( parent, id, caption, pos, size, style ); 856 } 857 858 859 /* 860 * MainWindow creator 861 */ 982 862 983 863 bool MainWindow::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) 984 864 { 985 ////@begin MainWindow creation 986 wxFrame::Create( parent, id, caption, pos, size, style ); 987 988 CreateControls(); 989 SetIcon(GetIconResource(wxT("oni_special.ico"))); 990 Centre(); 991 ////@end MainWindow creation 992 return true; 993 } 994 995 996 /* 997 * MainWindow destructor 998 */ 865 ////@begin MainWindow creation 866 wxFrame::Create( parent, id, caption, pos, size, style ); 867 868 CreateControls(); 869 SetIcon(GetIconResource(wxT("oni_special.ico"))); 870 Centre(); 871 872 873 ////@end MainWindow creation 874 return true; 875 } 876 877 878 /* 879 * MainWindow destructor 880 */ 999 881 1000 882 MainWindow::~MainWindow() 1001 883 { 1002 ////@begin MainWindow destruction1003 ////@end MainWindow destruction1004 } 1005 1006 1007 /* 1008 * Member initialisation1009 */884 ////@begin MainWindow destruction 885 ////@end MainWindow destruction 886 } 887 888 889 /* 890 * Member initialisation 891 */ 1010 892 1011 893 void MainWindow::Init() 1012 894 { 1013 ////@begin MainWindow member initialisation1014 MainSplitter = NULL;1015 SelectAll = NULL;1016 RefreshButton = NULL;1017 Mods_CheckboxList = NULL;1018 titleText = NULL;1019 creatorText = NULL;1020 descriptionText = NULL;1021 StatusArea = NULL;1022 ProgressBar = NULL;1023 InstallButton = NULL;1024 OptionsPanel = NULL;1025 SepRadio = NULL;1026 NoSepRadio = NULL;1027 SeparatedRadio = NULL;1028 CompleteRadio = NULL;1029 ReglobalizeButton = NULL;1030 ////@end MainWindow member initialisation1031 1032 } 1033 1034 1035 /* 1036 * Control creation for MainWindow1037 */895 ////@begin MainWindow member initialisation 896 MainSplitter = NULL; 897 SelectAll = NULL; 898 RefreshButton = NULL; 899 Mods_CheckboxList = NULL; 900 titleText = NULL; 901 creatorText = NULL; 902 descriptionText = NULL; 903 StatusArea = NULL; 904 ProgressBar = NULL; 905 InstallButton = NULL; 906 OptionsPanel = NULL; 907 SepRadio = NULL; 908 NoSepRadio = NULL; 909 SeparatedRadio = NULL; 910 CompleteRadio = NULL; 911 ReglobalizeButton = NULL; 912 ////@end MainWindow member initialisation 913 914 } 915 916 917 /* 918 * Control creation for MainWindow 919 */ 1038 920 wxStatusBar **TheStatusBar; 1039 921 wxButton* TheInstallButton; … … 1041 923 void MainWindow::CreateControls() 1042 924 { 1043 ////@begin MainWindow content construction1044 // Generated by DialogBlocks, 31/05/2009 19:03:55 (unregistered)1045 1046 MainWindow* itemFrame1 = this;1047 1048 wxMenuBar* menuBar = new wxMenuBar;1049 wxMenu* itemMenu37 = new wxMenu;1050 {1051 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_LOAD, _("&Load Configuration..."), wxEmptyString, wxITEM_NORMAL);1052 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("fileopen.xpm")));1053 menuItem->SetBitmap(bitmap);1054 itemMenu37->Append(menuItem);1055 }1056 {1057 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_SAVE, _("&Save Configuration..."), wxEmptyString, wxITEM_NORMAL);1058 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("filesaveas.xpm")));1059 menuItem->SetBitmap(bitmap);1060 itemMenu37->Append(menuItem);1061 }1062 itemMenu37->AppendSeparator();1063 {1064 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_EXIT, _("Exit"), wxEmptyString, wxITEM_NORMAL);1065 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("quit.xpm")));1066 menuItem->SetBitmap(bitmap);1067 itemMenu37->Append(menuItem);1068 }1069 menuBar->Append(itemMenu37, _("&File"));1070 wxMenu* itemMenu42 = new wxMenu;1071 itemMenu42->Append(wxID_OPTIONS, _("Show Advanced Options..."), wxEmptyString, wxITEM_CHECK);1072 menuBar->Append(itemMenu42, _("Options"));1073 wxMenu* itemMenu44 = new wxMenu;1074 itemMenu44->Append(wxID_HELP, _("Help"), wxEmptyString, wxITEM_NORMAL);1075 itemMenu44->Append(wxID_ABOUT, _("About"), wxEmptyString, wxITEM_NORMAL);1076 menuBar->Append(itemMenu44, _("Help"));1077 itemFrame1->SetMenuBar(menuBar);1078 1079 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);1080 itemFrame1->SetSizer(itemBoxSizer2);1081 1082 MainSplitter = new wxSplitterWindow( itemFrame1, ID_SPLITTERWINDOW, wxDefaultPosition, wxSize(100, 100), wxSP_LIVE_UPDATE|wxNO_BORDER );1083 MainSplitter->SetMinimumPaneSize(150);1084 MainSplitter->SetName(_T("MainSplitter"));1085 1086 wxPanel* itemPanel4 = new wxPanel( MainSplitter, ID_PANEL, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );1087 wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);1088 itemPanel4->SetSizer(itemBoxSizer5);1089 1090 wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxHORIZONTAL);1091 itemBoxSizer5->Add(itemBoxSizer6, 0, wxGROW|wxALL, 0);1092 SelectAll = new wxCheckBox( itemPanel4, SelectAll_Checkbox, _("Select All/None"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );1093 SelectAll->SetValue(false);1094 SelectAll->SetName(_T("SelectAll_Checkbox"));1095 itemBoxSizer6->Add(SelectAll, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);1096 1097 RefreshButton = new wxBitmapButton( itemPanel4, Refresh_Button, itemFrame1->GetBitmapResource(wxT("redo.xpm")), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW );1098 RefreshButton->SetName(_T("RefreshButton"));1099 itemBoxSizer6->Add(RefreshButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);1100 1101 wxArrayString Mods_CheckboxListStrings;1102 Mods_CheckboxList = new wxCheckListBox( itemPanel4, Mods_CheckboxList1, wxDefaultPosition, wxDefaultSize, Mods_CheckboxListStrings, wxLB_HSCROLL );1103 Mods_CheckboxList->SetName(_T("Mods_CheckboxList"));1104 itemBoxSizer5->Add(Mods_CheckboxList, 1, wxGROW|wxALL, 0);1105 1106 wxPanel* itemPanel10 = new wxPanel( MainSplitter, DescriptionHolder_Panel, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );1107 itemPanel10->SetName(_T("DescriptionHolder_Panel"));1108 wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);1109 itemPanel10->SetSizer(itemBoxSizer11);1110 1111 wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL);1112 itemBoxSizer11->Add(itemBoxSizer12, 0, wxGROW|wxALL, 0);1113 wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL);1114 itemBoxSizer12->Add(itemBoxSizer13, 1, wxALIGN_CENTER_VERTICAL|wxALL, 0);1115 titleText = new wxTextCtrl( itemPanel10, Title_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );1116 titleText->SetName(_T("Title_Text"));1117 titleText->SetBackgroundColour(wxColour(240, 240, 240));1118 itemBoxSizer13->Add(titleText, 1, wxGROW|wxLEFT, 5);1119 1120 wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL);1121 itemBoxSizer12->Add(itemBoxSizer15, 1, wxGROW|wxALL, 0);1122 creatorText = new wxTextCtrl( itemPanel10, Author_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_RIGHT );1123 creatorText->SetName(_T("Author_Text"));1124 creatorText->SetBackgroundColour(wxColour(240, 240, 240));1125 itemBoxSizer15->Add(creatorText, 1, wxGROW|wxRIGHT, 5);1126 1127 wxStaticLine* itemStaticLine17 = new wxStaticLine( itemPanel10, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );1128 itemStaticLine17->Show(false);1129 itemBoxSizer11->Add(itemStaticLine17, 0, wxGROW|wxALL, 5);1130 1131 descriptionText = new wxTextCtrl( itemPanel10, Description_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH|wxTE_AUTO_URL );1132 descriptionText->SetName(_T("DescriptionName"));1133 descriptionText->SetBackgroundColour(wxColour(240, 240, 240));1134 itemBoxSizer11->Add(descriptionText, 1, wxGROW|wxLEFT|wxRIGHT, 5);1135 1136 MainSplitter->SplitVertically(itemPanel4, itemPanel10, 150);1137 itemBoxSizer2->Add(MainSplitter, 1, wxGROW|wxALL, 0);1138 1139 StatusArea = new wxStatusBar( itemFrame1, ID_STATUSBAR, 0 );1140 StatusArea->SetName(_T("StatusArea"));1141 StatusArea->SetFieldsCount(1);1142 StatusArea->SetStatusText(_("Status Area"), 0);1143 itemBoxSizer2->Add(StatusArea, 0, wxGROW|wxALL, 0);1144 1145 wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);1146 itemBoxSizer2->Add(itemBoxSizer20, 0, wxGROW|wxALL, 0);1147 1148 ProgressBar = new wxGauge( itemFrame1, ProgressBar_Gauge, 1000, wxDefaultPosition, wxSize(-1, 30), wxGA_SMOOTH );1149 ProgressBar->SetValue(0);1150 itemBoxSizer20->Add(ProgressBar, 1, wxGROW|wxALL, 0);1151 1152 InstallButton = new wxButton( itemFrame1, Install_Button, _("Install!"), wxDefaultPosition, wxSize(-1, 30), 0 );1153 itemBoxSizer20->Add(InstallButton, 0, wxGROW|wxALL, 0);1154 1155 wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxVERTICAL);1156 itemBoxSizer2->Add(itemBoxSizer23, 0, wxGROW|wxALL, 0);1157 1158 OptionsPanel = new wxPanel( itemFrame1, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );1159 itemBoxSizer2->Add(OptionsPanel, 0, wxGROW, 0);1160 1161 wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);1162 OptionsPanel->SetSizer(itemBoxSizer25);1163 1164 wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxVERTICAL);1165 itemBoxSizer25->Add(itemBoxSizer26, 0, wxGROW|wxALL, 5);1166 1167 SepRadio = new wxRadioButton( OptionsPanel, Sep_RadioButton, _("Sep"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );1168 SepRadio->SetValue(false);1169 if (MainWindow::ShowToolTips())1170 SepRadio->SetToolTip(_("For PC Demo and Mac"));1171 itemBoxSizer26->Add(SepRadio, 0, wxALIGN_LEFT|wxALL, 5);1172 1173 NoSepRadio = new wxRadioButton( OptionsPanel, NoSep_RadioButton, _("NoSep"), wxDefaultPosition, wxDefaultSize, 0 );1174 NoSepRadio->SetValue(false);1175 if (MainWindow::ShowToolTips())1176 NoSepRadio->SetToolTip(_("For PC Retail"));1177 itemBoxSizer26->Add(NoSepRadio, 0, wxALIGN_LEFT|wxALL, 5);1178 1179 wxStaticLine* itemStaticLine29 = new wxStaticLine( OptionsPanel, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );1180 itemBoxSizer25->Add(itemStaticLine29, 0, wxGROW|wxALL, 5);1181 1182 wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxVERTICAL);1183 itemBoxSizer25->Add(itemBoxSizer30, 0, wxGROW|wxALL, 5);1184 1185 SeparatedRadio = new wxRadioButton( OptionsPanel, Separated_RadioButton, _("Separated Level0"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );1186 SeparatedRadio->SetValue(false);1187 SeparatedRadio->SetName(_T("Separated_RadioButton"));1188 itemBoxSizer30->Add(SeparatedRadio, 0, wxALIGN_LEFT|wxALL, 5);1189 1190 CompleteRadio = new wxRadioButton( OptionsPanel, Complete_RadioButton, _("Complete Level0"), wxDefaultPosition, wxDefaultSize, 0 );1191 CompleteRadio->SetValue(false);1192 CompleteRadio->SetName(_T("Complete_RadioButton"));1193 itemBoxSizer30->Add(CompleteRadio, 0, wxALIGN_LEFT|wxALL, 5);1194 1195 wxStaticLine* itemStaticLine33 = new wxStaticLine( OptionsPanel, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );1196 itemBoxSizer25->Add(itemStaticLine33, 0, wxGROW|wxALL, 5);1197 1198 wxBoxSizer* itemBoxSizer34 = new wxBoxSizer(wxVERTICAL);1199 itemBoxSizer25->Add(itemBoxSizer34, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);1200 1201 ReglobalizeButton = new wxButton( OptionsPanel, ReGlobalize_Button, _("Reglobalize"), wxDefaultPosition, wxDefaultSize, 0 );1202 ReglobalizeButton->SetName(_T("Reglobalize_Button"));1203 itemBoxSizer34->Add(ReglobalizeButton, 0, wxGROW|wxALL, 5);1204 1205 // Connect events and objects1206 Mods_CheckboxList->Connect(Mods_CheckboxList1, wxEVT_CREATE, wxWindowCreateEventHandler(MainWindow::ModList_OnCreate), NULL, this);1207 ////@end MainWindow content construction1208 925 ////@begin MainWindow content construction 926 // Generated by DialogBlocks, 31/05/2009 19:03:55 (unregistered) 927 928 MainWindow* itemFrame1 = this; 929 930 wxMenuBar* menuBar = new wxMenuBar; 931 wxMenu* itemMenu37 = new wxMenu; 932 { 933 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_LOAD, _("&Load Configuration..."), wxEmptyString, wxITEM_NORMAL); 934 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("fileopen.xpm"))); 935 menuItem->SetBitmap(bitmap); 936 itemMenu37->Append(menuItem); 937 } 938 { 939 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_SAVE, _("&Save Configuration..."), wxEmptyString, wxITEM_NORMAL); 940 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("filesaveas.xpm"))); 941 menuItem->SetBitmap(bitmap); 942 itemMenu37->Append(menuItem); 943 } 944 itemMenu37->AppendSeparator(); 945 { 946 wxMenuItem* menuItem = new wxMenuItem(itemMenu37, wxID_EXIT, _("Exit"), wxEmptyString, wxITEM_NORMAL); 947 wxBitmap bitmap(itemFrame1->GetBitmapResource(wxT("quit.xpm"))); 948 menuItem->SetBitmap(bitmap); 949 itemMenu37->Append(menuItem); 950 } 951 menuBar->Append(itemMenu37, _("&File")); 952 wxMenu* itemMenu42 = new wxMenu; 953 itemMenu42->Append(wxID_OPTIONS, _("Show Advanced Options..."), wxEmptyString, wxITEM_CHECK); 954 menuBar->Append(itemMenu42, _("Options")); 955 wxMenu* itemMenu44 = new wxMenu; 956 itemMenu44->Append(wxID_HELP, _("Help"), wxEmptyString, wxITEM_NORMAL); 957 itemMenu44->Append(wxID_ABOUT, _("About"), wxEmptyString, wxITEM_NORMAL); 958 menuBar->Append(itemMenu44, _("Help")); 959 itemFrame1->SetMenuBar(menuBar); 960 961 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); 962 itemFrame1->SetSizer(itemBoxSizer2); 963 964 MainSplitter = new wxSplitterWindow( itemFrame1, ID_SPLITTERWINDOW, wxDefaultPosition, wxSize(100, 100), wxSP_LIVE_UPDATE|wxNO_BORDER ); 965 MainSplitter->SetMinimumPaneSize(150); 966 MainSplitter->SetName(_T("MainSplitter")); 967 968 wxPanel* itemPanel4 = new wxPanel( MainSplitter, ID_PANEL, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); 969 wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL); 970 itemPanel4->SetSizer(itemBoxSizer5); 971 972 wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxHORIZONTAL); 973 itemBoxSizer5->Add(itemBoxSizer6, 0, wxGROW|wxALL, 0); 974 SelectAll = new wxCheckBox( itemPanel4, SelectAll_Checkbox, _("Select All/None"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE ); 975 SelectAll->SetValue(false); 976 SelectAll->SetName(_T("SelectAll_Checkbox")); 977 itemBoxSizer6->Add(SelectAll, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); 978 979 RefreshButton = new wxBitmapButton( itemPanel4, Refresh_Button, itemFrame1->GetBitmapResource(wxT("redo.xpm")), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW ); 980 RefreshButton->SetName(_T("RefreshButton")); 981 itemBoxSizer6->Add(RefreshButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5); 982 983 wxArrayString Mods_CheckboxListStrings; 984 Mods_CheckboxList = new wxCheckListBox( itemPanel4, Mods_CheckboxList1, wxDefaultPosition, wxDefaultSize, Mods_CheckboxListStrings, wxLB_HSCROLL ); 985 Mods_CheckboxList->SetName(_T("Mods_CheckboxList")); 986 itemBoxSizer5->Add(Mods_CheckboxList, 1, wxGROW|wxALL, 0); 987 988 wxPanel* itemPanel10 = new wxPanel( MainSplitter, DescriptionHolder_Panel, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); 989 itemPanel10->SetName(_T("DescriptionHolder_Panel")); 990 wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL); 991 itemPanel10->SetSizer(itemBoxSizer11); 992 993 wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL); 994 itemBoxSizer11->Add(itemBoxSizer12, 0, wxGROW|wxALL, 0); 995 wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxVERTICAL); 996 itemBoxSizer12->Add(itemBoxSizer13, 1, wxALIGN_CENTER_VERTICAL|wxALL, 0); 997 titleText = new wxTextCtrl( itemPanel10, Title_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); 998 titleText->SetName(_T("Title_Text")); 999 titleText->SetBackgroundColour(wxColour(240, 240, 240)); 1000 itemBoxSizer13->Add(titleText, 1, wxGROW|wxLEFT, 5); 1001 1002 wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL); 1003 itemBoxSizer12->Add(itemBoxSizer15, 1, wxGROW|wxALL, 0); 1004 creatorText = new wxTextCtrl( itemPanel10, Author_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY|wxTE_RIGHT ); 1005 creatorText->SetName(_T("Author_Text")); 1006 creatorText->SetBackgroundColour(wxColour(240, 240, 240)); 1007 itemBoxSizer15->Add(creatorText, 1, wxGROW|wxRIGHT, 5); 1008 1009 wxStaticLine* itemStaticLine17 = new wxStaticLine( itemPanel10, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); 1010 itemStaticLine17->Show(false); 1011 itemBoxSizer11->Add(itemStaticLine17, 0, wxGROW|wxALL, 5); 1012 1013 descriptionText = new wxTextCtrl( itemPanel10, Description_Text, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH|wxTE_AUTO_URL ); 1014 descriptionText->SetName(_T("DescriptionName")); 1015 descriptionText->SetBackgroundColour(wxColour(240, 240, 240)); 1016 itemBoxSizer11->Add(descriptionText, 1, wxGROW|wxLEFT|wxRIGHT, 5); 1017 1018 MainSplitter->SplitVertically(itemPanel4, itemPanel10, 150); 1019 itemBoxSizer2->Add(MainSplitter, 1, wxGROW|wxALL, 0); 1020 1021 StatusArea = new wxStatusBar( itemFrame1, ID_STATUSBAR, 0 ); 1022 StatusArea->SetName(_T("StatusArea")); 1023 StatusArea->SetFieldsCount(1); 1024 StatusArea->SetStatusText(_("Status Area"), 0); 1025 itemBoxSizer2->Add(StatusArea, 0, wxGROW|wxALL, 0); 1026 1027 wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL); 1028 itemBoxSizer2->Add(itemBoxSizer20, 0, wxGROW|wxALL, 0); 1029 1030 ProgressBar = new wxGauge( itemFrame1, ProgressBar_Gauge, 1000, wxDefaultPosition, wxSize(-1, 30), wxGA_SMOOTH ); 1031 ProgressBar->SetValue(0); 1032 itemBoxSizer20->Add(ProgressBar, 1, wxGROW|wxALL, 0); 1033 1034 InstallButton = new wxButton( itemFrame1, Install_Button, _("Install!"), wxDefaultPosition, wxSize(-1, 30), 0 ); 1035 itemBoxSizer20->Add(InstallButton, 0, wxGROW|wxALL, 0); 1036 1037 wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxVERTICAL); 1038 itemBoxSizer2->Add(itemBoxSizer23, 0, wxGROW|wxALL, 0); 1039 1040 OptionsPanel = new wxPanel( itemFrame1, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); 1041 itemBoxSizer2->Add(OptionsPanel, 0, wxGROW, 0); 1042 1043 wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL); 1044 OptionsPanel->SetSizer(itemBoxSizer25); 1045 1046 wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxVERTICAL); 1047 itemBoxSizer25->Add(itemBoxSizer26, 0, wxGROW|wxALL, 5); 1048 1049 SepRadio = new wxRadioButton( OptionsPanel, Sep_RadioButton, _("Sep"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); 1050 SepRadio->SetValue(false); 1051 if (MainWindow::ShowToolTips()) 1052 SepRadio->SetToolTip(_("For PC Demo and Mac")); 1053 itemBoxSizer26->Add(SepRadio, 0, wxALIGN_LEFT|wxALL, 5); 1054 1055 NoSepRadio = new wxRadioButton( OptionsPanel, NoSep_RadioButton, _("NoSep"), wxDefaultPosition, wxDefaultSize, 0 ); 1056 NoSepRadio->SetValue(false); 1057 if (MainWindow::ShowToolTips()) 1058 NoSepRadio->SetToolTip(_("For PC Retail")); 1059 itemBoxSizer26->Add(NoSepRadio, 0, wxALIGN_LEFT|wxALL, 5); 1060 1061 wxStaticLine* itemStaticLine29 = new wxStaticLine( OptionsPanel, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL ); 1062 itemBoxSizer25->Add(itemStaticLine29, 0, wxGROW|wxALL, 5); 1063 1064 wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxVERTICAL); 1065 itemBoxSizer25->Add(itemBoxSizer30, 0, wxGROW|wxALL, 5); 1066 1067 SeparatedRadio = new wxRadioButton( OptionsPanel, Separated_RadioButton, _("Separated Level0"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); 1068 SeparatedRadio->SetValue(false); 1069 SeparatedRadio->SetName(_T("Separated_RadioButton")); 1070 itemBoxSizer30->Add(SeparatedRadio, 0, wxALIGN_LEFT|wxALL, 5); 1071 1072 CompleteRadio = new wxRadioButton( OptionsPanel, Complete_RadioButton, _("Complete Level0"), wxDefaultPosition, wxDefaultSize, 0 ); 1073 CompleteRadio->SetValue(false); 1074 CompleteRadio->SetName(_T("Complete_RadioButton")); 1075 itemBoxSizer30->Add(CompleteRadio, 0, wxALIGN_LEFT|wxALL, 5); 1076 1077 wxStaticLine* itemStaticLine33 = new wxStaticLine( OptionsPanel, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL ); 1078 itemBoxSizer25->Add(itemStaticLine33, 0, wxGROW|wxALL, 5); 1079 1080 wxBoxSizer* itemBoxSizer34 = new wxBoxSizer(wxVERTICAL); 1081 itemBoxSizer25->Add(itemBoxSizer34, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); 1082 1083 ReglobalizeButton = new wxButton( OptionsPanel, ReGlobalize_Button, _("Reglobalize"), wxDefaultPosition, wxDefaultSize, 0 ); 1084 ReglobalizeButton->SetName(_T("Reglobalize_Button")); 1085 itemBoxSizer34->Add(ReglobalizeButton, 0, wxGROW|wxALL, 5); 1086 1087 // Connect events and objects 1088 Mods_CheckboxList->Connect(Mods_CheckboxList1, wxEVT_CREATE, wxWindowCreateEventHandler(MainWindow::ModList_OnCreate), NULL, this); 1089 ////@end MainWindow content construction 1090 1209 1091 if ( exists( "../../GameDataFolder/level0_Final.sep" ) ) { 1210 1092 static_cast<string>("-import:sep"); … … 1218 1100 globalPackages = getPackages(); 1219 1101 globalInstalledMods = getInstallString(); 1220 for (int i = 0; i < globalPackages.size(); i++) { 1221 Mods_CheckboxList->Append(globalPackages[i].name.c_str()); 1222 if( binary_search(globalInstalledMods.begin(), globalInstalledMods.end(), globalPackages[i].modStringName ) ) Mods_CheckboxList->Check(i); 1223 } 1224 TheStatusBar = &StatusArea; 1225 TheInstallButton = InstallButton; 1226 TheProgressBar = ProgressBar; 1227 OptionsPanel->Hide(); 1228 if(splitInstances == SPLIT) SeparatedRadio->SetValue(true); 1229 else CompleteRadio->SetValue(true); 1230 1231 1232 1233 if(strImportOption == "-import:nosep") NoSepRadio->SetValue(true); 1234 else SepRadio->SetValue(true); 1235 1236 //MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight() ); 1237 } 1238 1239 1240 /* 1241 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for SelectAll_Checkbox 1242 */ 1102 for (int i = 0; i < globalPackages.size(); i++) { 1103 Mods_CheckboxList->Append(globalPackages[i].name.c_str()); 1104 if( binary_search(globalInstalledMods.begin(), globalInstalledMods.end(), globalPackages[i].modStringName ) ) Mods_CheckboxList->Check(i); 1105 } 1106 1107 TheStatusBar = &StatusArea; 1108 TheInstallButton = InstallButton; 1109 TheProgressBar = ProgressBar; 1110 OptionsPanel->Hide(); 1111 if(splitInstances == SPLIT) SeparatedRadio->SetValue(true); 1112 else CompleteRadio->SetValue(true); 1113 1114 1115 1116 if(strImportOption == "-import:nosep") NoSepRadio->SetValue(true); 1117 else SepRadio->SetValue(true); 1118 1119 1120 #ifdef WIN32 1121 RedirectIOToConsole(); 1122 HWND hWnd = GetConsoleWindow(); 1123 ShowWindow( hWnd, SW_HIDE ); 1124 #endif 1125 1126 //MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight() ); 1127 } 1128 1129 1130 /* 1131 * wxEVT_COMMAND_CHECKBOX_CLICKED event handler for SelectAll_Checkbox 1132 */ 1243 1133 1244 1134 void MainWindow::OnSelectAllCheckboxClick( wxCommandEvent& event ) 1245 1135 { 1246 switch(SelectAll->Get3StateValue()) {1136 switch(SelectAll->Get3StateValue()) { 1247 1137 case wxCHK_UNCHECKED: 1248 1138 for(int i = 0; i < globalPackages.size(); i++) Mods_CheckboxList->Check(i, false); … … 1259 1149 1260 1150 } 1261 1262 } 1263 1264 1265 /* 1266 * wxEVT_CREATE event handler for Mods_CheckboxList1267 */1151 1152 } 1153 1154 1155 /* 1156 * wxEVT_CREATE event handler for Mods_CheckboxList 1157 */ 1268 1158 1269 1159 void MainWindow::ModList_OnCreate( wxWindowCreateEvent& event ) … … 1275 1165 1276 1166 /* 1277 * Should we show tooltips?1278 */1167 * Should we show tooltips? 1168 */ 1279 1169 1280 1170 bool MainWindow::ShowToolTips() 1281 1171 { 1282 return true;1283 } 1284 1285 /* 1286 * Get bitmap resources1287 */1172 return true; 1173 } 1174 1175 /* 1176 * Get bitmap resources 1177 */ 1288 1178 1289 1179 wxBitmap MainWindow::GetBitmapResource( const wxString& name ) 1290 1180 { 1291 // Bitmap retrieval1292 ////@begin MainWindow bitmap retrieval1293 wxUnusedVar(name);1294 if (name == _T("redo.xpm"))1295 {1296 wxBitmap bitmap(redo_xpm);1297 return bitmap;1298 }1299 else if (name == _T("fileopen.xpm"))1300 {1301 wxBitmap bitmap( fileopen_xpm);1302 return bitmap;1303 }1304 else if (name == _T("filesaveas.xpm"))1305 {1306 wxBitmap bitmap( filesaveas_xpm);1307 return bitmap;1308 }1309 else if (name == _T("quit.xpm"))1310 {1311 wxBitmap bitmap( quit_xpm);1312 return bitmap;1313 }1314 return wxNullBitmap;1315 ////@end MainWindow bitmap retrieval1316 } 1317 1318 /* 1319 * Get icon resources1320 */1181 // Bitmap retrieval 1182 ////@begin MainWindow bitmap retrieval 1183 wxUnusedVar(name); 1184 if (name == _T("redo.xpm")) 1185 { 1186 wxBitmap bitmap(redo_xpm); 1187 return bitmap; 1188 } 1189 else if (name == _T("fileopen.xpm")) 1190 { 1191 wxBitmap bitmap( fileopen_xpm); 1192 return bitmap; 1193 } 1194 else if (name == _T("filesaveas.xpm")) 1195 { 1196 wxBitmap bitmap( filesaveas_xpm); 1197 return bitmap; 1198 } 1199 else if (name == _T("quit.xpm")) 1200 { 1201 wxBitmap bitmap( quit_xpm); 1202 return bitmap; 1203 } 1204 return wxNullBitmap; 1205 ////@end MainWindow bitmap retrieval 1206 } 1207 1208 /* 1209 * Get icon resources 1210 */ 1321 1211 1322 1212 wxIcon MainWindow::GetIconResource( const wxString& name ) 1323 1213 { 1324 // Icon retrieval 1325 ////@begin MainWindow icon retrieval 1326 wxUnusedVar(name); 1327 if (name == _T("oni_special.ico")) 1328 { 1329 wxIcon icon(_T("oni_special.ico"), wxBITMAP_TYPE_ICO); 1330 return icon; 1331 } 1332 return wxNullIcon; 1333 ////@end MainWindow icon retrieval 1334 } 1335 1336 1337 /* 1338 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for Mods_CheckboxList1 1339 */ 1214 1215 // Icon retrieval 1216 ////@begin MainWindow icon retrieval 1217 wxUnusedVar(name); 1218 if (name == _T("oni_special.ico")) 1219 { 1220 // wxIcon icon(_T("oni_special.ico"), wxBITMAP_TYPE_ICO); 1221 // return icon; 1222 } 1223 return wxNullIcon; 1224 ////@end MainWindow icon retrieval 1225 } 1226 1227 1228 /* 1229 * wxEVT_COMMAND_LISTBOX_SELECTED event handler for Mods_CheckboxList1 1230 */ 1340 1231 1341 1232 void MainWindow::OnModsCheckboxList1Selected( wxCommandEvent& event ) … … 1351 1242 1352 1243 /* 1353 * wxEVT_COMMAND_CHECKLISTBOX_TOGGLED event handler for Mods_CheckboxList11354 */1244 * wxEVT_COMMAND_CHECKLISTBOX_TOGGLED event handler for Mods_CheckboxList1 1245 */ 1355 1246 1356 1247 void MainWindow::OnModsCheckboxList1Toggled( wxCommandEvent& event ) … … 1358 1249 SelectAll->Set3StateValue(wxCHK_UNDETERMINED); 1359 1250 if(event.GetInt()) { 1360 /*1251 /* 1361 1252 switch(SelectAll->Get3StateValue()) { 1362 case wxCHK_UNCHECKED:1253 case wxCHK_UNCHECKED: 1363 1254 break; 1364 case wxCHK_CHECKED:1255 case wxCHK_CHECKED: 1365 1256 break; 1366 case wxCHK_UNDETERMINED :1257 case wxCHK_UNDETERMINED : 1367 1258 break; 1368 }1369 */1370 } 1371 } 1372 1373 1374 /* 1375 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_OPTIONS1376 */1259 } 1260 */ 1261 } 1262 } 1263 1264 1265 /* 1266 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_OPTIONS 1267 */ 1377 1268 1378 1269 void MainWindow::OnOptionsClick( wxCommandEvent& event ) 1379 1270 { 1380 1271 1272 1273 1274 1381 1275 if (!event.GetInt() ) { 1382 1276 OptionsPanel->Hide(); 1383 1277 MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()-OptionsPanel->GetRect().GetHeight());} 1384 1278 else { 1279 //Uncomment this when we release, it gets annoying if you are testing globalization a lot ;) 1280 //wxMessageDialog* YesNoDialog = new wxMessageDialog(this, "WARNING: These options are for advanced users only, use with caution.", "AE Installer Alert", wxOK | wxICON_EXCLAMATION , wxDefaultPosition); 1281 //YesNoDialog->ShowModal(); 1385 1282 OptionsPanel->Show(); 1386 1283 MainWindow::SetSize(MainWindow::GetRect().GetWidth(), MainWindow::GetRect().GetHeight()+OptionsPanel->GetRect().GetHeight()); … … 1390 1287 1391 1288 /* 1392 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_EXIT1393 */1289 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_EXIT 1290 */ 1394 1291 1395 1292 void MainWindow::OnExitClick( wxCommandEvent& event ) 1396 1293 { 1397 exit(0);1398 } 1399 1400 1401 /* 1402 * wxEVT_COMMAND_BUTTON_CLICKED event handler for Install_Button1403 */1294 exit(0); 1295 } 1296 1297 1298 /* 1299 * wxEVT_COMMAND_BUTTON_CLICKED event handler for Install_Button 1300 */ 1404 1301 1405 1302 1406 1303 struct recompile 1407 1304 { 1408 recompile(vector<string> localPackages) : thePackages(localPackages) { }1409 void operator()()1410 {1305 recompile(vector<string> localPackages) : thePackages(localPackages) { } 1306 void operator()() 1307 { 1411 1308 TheInstallButton->Disable(); 1412 recompileAll(thePackages);1413 TheInstallButton->Enable();1414 }1415 1416 vector<string> thePackages;1309 recompileAll(thePackages); 1310 TheInstallButton->Enable(); 1311 } 1312 1313 vector<string> thePackages; 1417 1314 }; 1418 1315 1419 1316 void MainWindow::OnInstallButtonClick( wxCommandEvent& event ) 1420 1317 { 1421 1318 1422 1319 vector<string> localPackages; 1423 1320 localPackages.push_back("Globalize"); 1424 1321 for(int i = 0; i < globalPackages.size(); i++) if(Mods_CheckboxList->IsChecked(i)) localPackages.push_back( globalPackages[i].modStringName ); 1425 1322 if ( !localPackages.empty() ) { 1426 1323 1427 1324 //MainWindow::MainWindow().Hide(); 1428 // boost::thread thrd2(recompileAll(localPackages) );1325 // boost::thread thrd2(recompileAll(localPackages) ); 1429 1326 //MainWindow::MainWindow().Show(); 1430 1327 #ifdef WIN32 … … 1438 1335 1439 1336 } 1440 1441 1337 1338 1442 1339 } 1443 1340 1444 1341 /*void setStatusArea( string s ) { 1445 //TheStatusBar = MainWindow::StatusArea;1446 (**TheStatusBar).SetStatusText(_(s.c_str()), 0);1447 1448 //MainWindow::MainWindow().SetSize(MainWindow::MainWindow().GetRect().GetWidth(), MainWindow::MainWindow().GetRect().GetHeight()+1);1449 1450 //MainWindow::StatusBar->SetLabel("Importing Files...");1451 //StatusBar->SetLabel(s);1342 //TheStatusBar = MainWindow::StatusArea; 1343 (**TheStatusBar).SetStatusText(_(s.c_str()), 0); 1344 1345 //MainWindow::MainWindow().SetSize(MainWindow::MainWindow().GetRect().GetWidth(), MainWindow::MainWindow().GetRect().GetHeight()+1); 1346 1347 //MainWindow::StatusBar->SetLabel("Importing Files..."); 1348 //StatusBar->SetLabel(s); 1452 1349 //->SetLabel(s); 1453 1350 1454 1351 }*/ 1455 1352 1456 1353 void setProgressBar( int i ) { 1457 //TheProgressBar->SetValue(1354 //TheProgressBar->SetValue( 1458 1355 1459 1356 TheProgressBar->SetValue(i); … … 1463 1360 1464 1361 /* 1465 * wxEVT_UPDATE_UI event handler for ID_STATUSBAR1466 */1362 * wxEVT_UPDATE_UI event handler for ID_STATUSBAR 1363 */ 1467 1364 1468 1365 void MainWindow::OnStatusbarUpdate( wxUpdateUIEvent& event ) 1469 1366 { 1470 ////@begin wxEVT_UPDATE_UI event handler for ID_STATUSBAR in MainWindow.1471 // Before editing this code, remove the block markers.1472 event.Skip();1473 ////@end wxEVT_UPDATE_UI event handler for ID_STATUSBAR in MainWindow.1474 } 1475 1476 1477 /* 1478 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT1479 */1367 ////@begin wxEVT_UPDATE_UI event handler for ID_STATUSBAR in MainWindow. 1368 // Before editing this code, remove the block markers. 1369 event.Skip(); 1370 ////@end wxEVT_UPDATE_UI event handler for ID_STATUSBAR in MainWindow. 1371 } 1372 1373 1374 /* 1375 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT 1376 */ 1480 1377 1481 1378 void MainWindow::OnAboutClick( wxCommandEvent& event ) 1482 1379 { 1483 ////@begin wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT in MainWindow.1484 // Before editing this code, remove the block markers.1485 About* window = new About(this);1486 int returnValue = window->ShowModal();1487 window->Destroy();1488 ////@end wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT in MainWindow.1489 } 1490 1491 1492 /* 1493 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for NoSep_RadioButton1494 */1380 ////@begin wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT in MainWindow. 1381 // Before editing this code, remove the block markers. 1382 About* window = new About(this); 1383 int returnValue = window->ShowModal(); 1384 window->Destroy(); 1385 ////@end wxEVT_COMMAND_MENU_SELECTED event handler for wxID_ABOUT in MainWindow. 1386 } 1387 1388 1389 /* 1390 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for NoSep_RadioButton 1391 */ 1495 1392 1496 1393 void MainWindow::OnNoSepRadioButtonSelected( wxCommandEvent& event ) … … 1501 1398 1502 1399 /* 1503 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Sep_RadioButton1504 */1400 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Sep_RadioButton 1401 */ 1505 1402 1506 1403 void MainWindow::OnSepRadioButtonSelected( wxCommandEvent& event ) … … 1511 1408 1512 1409 /* 1513 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton1514 */1410 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton 1411 */ 1515 1412 1516 1413 void MainWindow::OnSeparatedRadioButtonSelected( wxCommandEvent& event ) 1517 1414 { 1518 splitInstances = SPLIT;1519 1520 } 1521 1522 1523 /* 1524 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Complete_RadioButton1525 */1415 splitInstances = SPLIT; 1416 1417 } 1418 1419 1420 /* 1421 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Complete_RadioButton 1422 */ 1526 1423 1527 1424 void MainWindow::OnCompleteRadioButtonSelected( wxCommandEvent& event ) 1528 1425 { 1529 splitInstances = NOT_SPLIT;1530 1531 } 1532 1533 1534 /* 1535 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BITMAPBUTTON1536 */1426 splitInstances = NOT_SPLIT; 1427 1428 } 1429 1430 1431 /* 1432 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BITMAPBUTTON 1433 */ 1537 1434 1538 1435 void MainWindow::OnRefreshButtonClick( wxCommandEvent& event ) … … 1543 1440 1544 1441 /* 1545 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_LOAD1546 */1442 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_LOAD 1443 */ 1547 1444 1548 1445 … … 1550 1447 1551 1448 void MainWindow::refreshMods (vector<string> s) { 1552 1449 1553 1450 Mods_CheckboxList->Clear(); 1554 //globalInstalledMods = getPackages();1555 for (int i = 0; i < globalPackages.size(); i++) {1556 Mods_CheckboxList->Append(globalPackages[i].name.c_str());1557 if( binary_search(s.begin(), s.end(), globalPackages[i].modStringName ) ) Mods_CheckboxList->Check(i);1558 //else Mods_CheckboxList->Check(i,0);1559 1560 }1451 //globalInstalledMods = getPackages(); 1452 for (int i = 0; i < globalPackages.size(); i++) { 1453 Mods_CheckboxList->Append(globalPackages[i].name.c_str()); 1454 if( binary_search(s.begin(), s.end(), globalPackages[i].modStringName ) ) Mods_CheckboxList->Check(i); 1455 //else Mods_CheckboxList->Check(i,0); 1456 1457 } 1561 1458 } 1562 1459 … … 1566 1463 "Mod Loadouts (*.cfg)|*.cfg|" 1567 1464 "All files (*.*)|*.*" 1568 );1569 1465 ); 1466 1570 1467 wxFileDialog* openFileDialog = 1571 1468 new wxFileDialog( this, _("Open Mod Loadout"), "", "", FILETYPES, 1572 wxOPEN, wxDefaultPosition);1573 1469 wxOPEN, wxDefaultPosition); 1470 1574 1471 if ( openFileDialog->ShowModal() == wxID_OK ) 1575 1472 { … … 1582 1479 1583 1480 /* 1584 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_SAVE1585 */1481 * wxEVT_COMMAND_MENU_SELECTED event handler for wxID_SAVE 1482 */ 1586 1483 1587 1484 void MainWindow::OnSaveClick( wxCommandEvent& event ) … … 1590 1487 "Mod Loadouts (*.cfg)|*.cfg|" 1591 1488 "All files (*.*)|*.*" 1592 );1593 1594 wxFileDialog* openFileDialog =1489 ); 1490 1491 wxFileDialog* openFileDialog = 1595 1492 new wxFileDialog( this, _("Open file"), "", "", FILETYPES, 1596 1493 wxSAVE, wxDefaultPosition); … … 1599 1496 { 1600 1497 1601 1602 //Mods_CheckboxList->1498 1499 //Mods_CheckboxList-> 1603 1500 1604 1501 1605 1502 1606 1503 // 1607 1504 1608 1505 if ( exists( openFileDialog->GetPath().c_str() ) ) 1609 {1610 remove( openFileDialog->GetPath().c_str() );1611 }1612 1613 ofstream file(openFileDialog->GetPath().c_str());1614 1615 vector<string>list;1616 for(int i = 0; i < globalPackages.size(); i++) if(Mods_CheckboxList->IsChecked(i)) list.push_back( globalPackages[i].modStringName );1617 vector<string>::iterator begin_iter = list.begin();1618 vector<string>::iterator end_iter = list.end();1619 1620 sort( list.begin(), list.end() );1621 1622 for( ; begin_iter != end_iter; ++begin_iter) {1623 file << *begin_iter << " ";1624 }1625 1626 file.close();1627 file.clear();1506 { 1507 remove( openFileDialog->GetPath().c_str() ); 1508 } 1509 1510 ofstream file(openFileDialog->GetPath().c_str()); 1511 1512 vector<string>list; 1513 for(int i = 0; i < globalPackages.size(); i++) if(Mods_CheckboxList->IsChecked(i)) list.push_back( globalPackages[i].modStringName ); 1514 vector<string>::iterator begin_iter = list.begin(); 1515 vector<string>::iterator end_iter = list.end(); 1516 1517 sort( list.begin(), list.end() ); 1518 1519 for( ; begin_iter != end_iter; ++begin_iter) { 1520 file << *begin_iter << " "; 1521 } 1522 1523 file.close(); 1524 file.clear(); 1628 1525 1629 1526 //SetCurrentFilename(openFileDialog->GetFilename()); … … 1635 1532 1636 1533 1637 /* 1638 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ReGlobalize_Button 1639 */ 1534 1535 /* 1536 * wxEVT_COMMAND_BUTTON_CLICKED event handler for ReGlobalize_Button 1537 */ 1640 1538 1641 1539 void MainWindow::OnReGlobalizeButtonClick( wxCommandEvent& event ) 1642 1540 { 1643 globalizeData(); 1644 setProgressBar(1000); 1645 setStatusArea("Done!"); 1646 } 1647 1648 1649 /* 1650 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton 1651 */ 1541 wxMessageDialog* YesNoDialog = new wxMessageDialog(this, "WARNING: This will DELETE the Edition's GameDataFolder and reglobalize all of your data. \n Are you SURE you want to do this? ", "AE Installer Alert", wxYES_NO | wxICON_EXCLAMATION , wxDefaultPosition); 1542 1543 if (YesNoDialog->ShowModal() == wxID_NO) { //if the user said no... 1544 1545 } 1546 else { 1547 1548 1549 1550 #ifdef WIN32 1551 1552 boost::thread thrd2(globalizeData); 1553 //globalizeData(); 1554 //boost::thread::create_thread(&globalizeData); 1555 // boost::thread_group Tg; 1556 // Tg.create_thread( &globalizeData(), this ); 1557 #else 1558 globalizeData(); 1559 setProgressBar(1000); 1560 setStatusArea("Done!"); 1561 #endif 1562 } 1563 1564 } 1565 /* 1566 * wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton 1567 */ 1652 1568 1653 1569 /*void MainWindow::OnSeparatedRadioButtonSelected( wxCommandEvent& event ) 1654 1570 { 1655 1571 ////@begin wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton in MainWindow. 1656 // Before editing this code, remove the block markers.1657 event.Skip();1572 // Before editing this code, remove the block markers. 1573 event.Skip(); 1658 1574 ////@end wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for Separated_RadioButton in MainWindow. 1659 1575 }*/ -
AE/Installer/trunk/source/main_window.h
r331 r355 190 190 #endif 191 191 // _MAINWINDOW_H_ 192 void doglobalizeData(void);
Note:
See TracChangeset
for help on using the changeset viewer.
