| 1004 |
|
} |
| 1005 |
|
} |
| 1006 |
|
} |
| 1007 |
+ |
else |
| 1008 |
+ |
{ |
| 1009 |
+ |
file.close(); |
| 1010 |
+ |
continue; |
| 1011 |
+ |
} |
| 1012 |
+ |
file.close(); |
| 1013 |
+ |
|
| 1014 |
+ |
file.open( ("packages" + install_iter->path().filename() + "/Mod_Info.cfg").c_str()); |
| 1015 |
+ |
if (!file.fail()) |
| 1016 |
+ |
{ |
| 1017 |
+ |
ModPackage installedPackage = fileToModPackage(file, install_iter->path().filename()); |
| 1018 |
+ |
} |
| 1019 |
+ |
else |
| 1020 |
+ |
{ |
| 1021 |
+ |
file.close(); |
| 1022 |
+ |
return UPDATE_THIRD_PARTY; |
| 1023 |
+ |
} |
| 1024 |
+ |
file.close(); |
| 1025 |
+ |
if(((string)INSTALLER_VERSION).compare(updatePackage.installerVersion) < 1 && updatePackage.modStringVersion > installedPackage.modStringVersion) { |
| 1026 |
+ |
return UPDATE_THIRD_PARTY; |
| 1027 |
+ |
} |
| 1028 |
|
} |
| 1029 |
|
} |
| 1030 |
|
catch (exception & ex) { |
| 1286 |
|
return true; // returning 'true' tells the Installer to quit itself ASAP so it can be replaced by the process that is now running |
| 1287 |
|
} |
| 1288 |
|
|
| 1289 |
+ |
|
| 1290 |
+ |
void CrawlPackages(string pathToUpdate, string strPathToPackages) { |
| 1291 |
+ |
try{ |
| 1292 |
+ |
directory_iterator end; |
| 1293 |
+ |
for ( directory_iterator update_iter( pathToUpdate ); |
| 1294 |
+ |
update_iter != end; |
| 1295 |
+ |
++update_iter ) |
| 1296 |
+ |
{ |
| 1297 |
+ |
|
| 1298 |
+ |
ModPackage installedPackage, updatePackage; |
| 1299 |
+ |
string updateStr = update_iter->path().string() + "/Mod_Info.cfg"; |
| 1300 |
+ |
if ( !boost::iequals(update_iter->path().filename(),"Edition") |
| 1301 |
+ |
&& !boost::iequals(update_iter->path().filename(),"Edition-patch") |
| 1302 |
+ |
&& is_directory( update_iter->path() ) |
| 1303 |
+ |
&& exists( update_iter->path().string() + "/Mod_Info.cfg" ) ) |
| 1304 |
+ |
{ |
| 1305 |
+ |
bool update = 0; |
| 1306 |
+ |
fstream file; |
| 1307 |
+ |
file.open( (update_iter->path().string() + "/Mod_Info.cfg").c_str()); |
| 1308 |
+ |
if (!file.fail()) |
| 1309 |
+ |
{ |
| 1310 |
+ |
updatePackage = fileToModPackage(file, update_iter->path().filename()); |
| 1311 |
+ |
} |
| 1312 |
+ |
else |
| 1313 |
+ |
{ |
| 1314 |
+ |
file.close(); |
| 1315 |
+ |
continue; |
| 1316 |
+ |
} |
| 1317 |
+ |
file.close(); |
| 1318 |
+ |
file.clear(); |
| 1319 |
+ |
if(exists(strPathToPackages + "/" + update_iter->path().filename() + "/Mod_Info.cfg")) |
| 1320 |
+ |
{ |
| 1321 |
+ |
file.open((strPathToPackages + "/" + update_iter->path().filename() + "/Mod_Info.cfg").c_str()); |
| 1322 |
+ |
if (!file.fail()) |
| 1323 |
+ |
{ |
| 1324 |
+ |
installedPackage = fileToModPackage(file, update_iter->path().filename()); |
| 1325 |
+ |
file.close(); |
| 1326 |
+ |
if(updatePackage.modStringVersion > installedPackage.modStringVersion) { |
| 1327 |
+ |
update = 1; |
| 1328 |
+ |
} |
| 1329 |
+ |
} |
| 1330 |
+ |
else |
| 1331 |
+ |
{ |
| 1332 |
+ |
file.close(); |
| 1333 |
+ |
update = 1; |
| 1334 |
+ |
} |
| 1335 |
+ |
file.close(); |
| 1336 |
+ |
} |
| 1337 |
+ |
else update = 1; |
| 1338 |
+ |
if(update) { |
| 1339 |
+ |
if(exists((path)(strPathToPackages + "/" + updatePackage.modStringName))) |
| 1340 |
+ |
remove_all((path)(strPathToPackages + "/" + updatePackage.modStringName)); |
| 1341 |
+ |
rename((path)(pathToUpdate + "/" + updatePackage.modStringName), (path)(strPathToPackages + "/" + updatePackage.modStringName)); |
| 1342 |
+ |
|
| 1343 |
+ |
} |
| 1344 |
+ |
} |
| 1345 |
+ |
} |
| 1346 |
+ |
} |
| 1347 |
+ |
catch (exception & ex) { |
| 1348 |
+ |
// ex.what(); |
| 1349 |
+ |
setStatusArea("Warning, handled exception: " + (string)ex.what()); |
| 1350 |
+ |
} |
| 1351 |
+ |
} |
| 1352 |
+ |
|
| 1353 |
+ |
|
| 1354 |
+ |
bool ProcessThirdPartyUpdates() { |
| 1355 |
+ |
CrawlPackages( "../updates", "./packages"); |
| 1356 |
+ |
return true; |
| 1357 |
+ |
// globalPackages = getPackages(); |
| 1358 |
+ |
// refreshMods(globalInstalledMods); |
| 1359 |
+ |
} |
| 1360 |
+ |
|
| 1361 |
+ |
|
| 1362 |
|
bool ProcessAEUpdate(Install_info_cfg *currentAE, Install_info_cfg *updateAE, bool *installerJustUpdated) |
| 1363 |
|
{ |
| 1364 |
|
fstream file; |