diff options
author | Petr Mrázek <peterix@gmail.com> | 2014-01-18 03:32:31 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2014-01-18 03:33:04 +0100 |
commit | ecc80bd763111b0e368aa80366bd8382cd814ee6 (patch) | |
tree | 5f910b6b571653c79193e2a7a46236111d13fec5 /logic/OneSixUpdate.cpp | |
parent | 188d0d58865f5e134b5803bda2cd631a61cf2915 (diff) | |
download | PrismLauncher-ecc80bd763111b0e368aa80366bd8382cd814ee6.tar.gz PrismLauncher-ecc80bd763111b0e368aa80366bd8382cd814ee6.tar.bz2 PrismLauncher-ecc80bd763111b0e368aa80366bd8382cd814ee6.zip |
Change the native extraction/loading logic.
Diffstat (limited to 'logic/OneSixUpdate.cpp')
-rw-r--r-- | logic/OneSixUpdate.cpp | 55 |
1 files changed, 10 insertions, 45 deletions
diff --git a/logic/OneSixUpdate.cpp b/logic/OneSixUpdate.cpp index 5309a7e0..ee355308 100644 --- a/logic/OneSixUpdate.cpp +++ b/logic/OneSixUpdate.cpp @@ -340,7 +340,6 @@ void OneSixUpdate::prepareForLaunch() // delete any leftovers, if they are present. onesix_inst->cleanupAfterRun(); - // Acquire swag QString natives_dir_raw = PathCombine(onesix_inst->instanceRoot(), "natives/"); auto version = onesix_inst->getFullVersion(); if (!version) @@ -349,56 +348,22 @@ void OneSixUpdate::prepareForLaunch() "it or changing the version."); return; } - auto libs_to_extract = version->getActiveNativeLibs(); - - // Acquire bag - bool success = true; - success &= ensureFolderPathExists(natives_dir_raw + "/32"); - success &= ensureFolderPathExists(natives_dir_raw + "/64"); - if (!success) - { - emitFailed("Could not create the native library folder:\n" + natives_dir_raw + +/* + * emitFailed("Could not create the native library folder:\n" + natives_dir_raw + "\nMake sure MultiMC has appropriate permissions and there is enough space " "on the storage device."); - return; - } - - // Put swag in the bag - for (auto lib : libs_to_extract) +*/ + for (auto lib : version->getActiveNativeLibs()) { - auto f = [&](QString storage, QString arch = "") + if (!lib->extractTo(natives_dir_raw)) { - QString path = "libraries/" + storage; - QLOG_INFO() << "Will extract " << path.toLocal8Bit(); - if (JlCompress::extractWithExceptions(path, natives_dir_raw + "/" + arch, - lib->extract_excludes).isEmpty()) - { - emitFailed( - "Could not extract the native library:\n" + path + - "\nMake sure MultiMC has appropriate permissions and there is enough space " - "on the storage device."); - return false; - } - }; - QString storage = lib->storagePath(); - if (storage.contains("${arch}")) - { - QString cooked_storage = storage; - cooked_storage.replace("${arch}", "32"); - if (!f(cooked_storage, "32")) - return; - cooked_storage = storage; - cooked_storage.replace("${arch}", "64"); - if (!f(cooked_storage, "64")) - return; - } - else - { - if (!f(storage)) - return; + emitFailed("Could not extract the native library:\n" + lib->storagePath() + " to " + + natives_dir_raw + + "\nMake sure MultiMC has appropriate permissions and there is enough " + "space on the storage device."); + return; } } - // Show them your war face! emitSucceeded(); } |