From c7b39fe1165956d07055e7917b22d5604fb5f768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 4 Apr 2015 02:01:52 +0200 Subject: NOISSUE Remove special FTB logic from generic version patch code --- logic/ftb/FTBProfileStrategy.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'logic/ftb/FTBProfileStrategy.cpp') diff --git a/logic/ftb/FTBProfileStrategy.cpp b/logic/ftb/FTBProfileStrategy.cpp index 0a4984f7..20feba61 100644 --- a/logic/ftb/FTBProfileStrategy.cpp +++ b/logic/ftb/FTBProfileStrategy.cpp @@ -27,7 +27,7 @@ void FTBProfileStrategy::loadDefaultBuiltinPatches() { auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false); file->fileId = "net.minecraft"; - file->name = "Minecraft (FTB tracked)"; + file->name = QObject::tr("Minecraft (tracked)"); if(file->version.isEmpty()) { file->version = mcVersion; @@ -48,12 +48,33 @@ void FTBProfileStrategy::loadDefaultBuiltinPatches() // load up the base minecraft patch if(QFile::exists(mcJson)) { - auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false, true); + auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false); + + // adapt the loaded file - the FTB patch file format is different than ours. + file->addLibs = file->overwriteLibs; + file->overwriteLibs.clear(); + file->shouldOverwriteLibs = false; + file->id.clear(); + for(auto addLib: file->addLibs) + { + addLib->m_hint = "local"; + addLib->insertType = RawLibrary::Prepend; + } file->fileId = "org.multimc.ftb.pack"; - file->name = QString("%1 (FTB tracked)").arg(m_instance->name()); + file->name = QObject::tr("%1 (FTB pack)").arg(m_instance->name()); if(file->version.isEmpty()) { - file->version = mcVersion; + file->version = QObject::tr("Unknown"); + QFile versionFile (PathCombine(m_instance->instanceRoot(), "version")); + if(versionFile.exists()) + { + if(versionFile.open(QIODevice::ReadOnly)) + { + // FIXME: just guessing the encoding/charset here. + auto version = QString::fromUtf8(versionFile.readAll()); + file->version = version; + } + } } minecraftPatch = std::dynamic_pointer_cast(file); } -- cgit v1.2.3