aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/flame
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/modplatform/flame')
-rw-r--r--launcher/modplatform/flame/FlameInstanceCreationTask.cpp18
-rw-r--r--launcher/modplatform/flame/FlameInstanceCreationTask.h14
2 files changed, 24 insertions, 8 deletions
diff --git a/launcher/modplatform/flame/FlameInstanceCreationTask.cpp b/launcher/modplatform/flame/FlameInstanceCreationTask.cpp
index ad50597e..1e76f252 100644
--- a/launcher/modplatform/flame/FlameInstanceCreationTask.cpp
+++ b/launcher/modplatform/flame/FlameInstanceCreationTask.cpp
@@ -81,13 +81,19 @@ bool FlameCreationTask::updateInstance()
auto instance_list = APPLICATION->instances();
// FIXME: How to handle situations when there's more than one install already for a given modpack?
- auto inst = instance_list->getInstanceByManagedName(originalName());
+ InstancePtr inst;
+ if (auto original_id = originalInstanceID(); !original_id.isEmpty()) {
+ inst = instance_list->getInstanceById(original_id);
+ Q_ASSERT(inst);
+ } else {
+ inst = instance_list->getInstanceByManagedName(originalName());
- if (!inst) {
- inst = instance_list->getInstanceById(originalName());
+ if (!inst) {
+ inst = instance_list->getInstanceById(originalName());
- if (!inst)
- return false;
+ if (!inst)
+ return false;
+ }
}
QString index_path(FS::PathCombine(m_stagingPath, "manifest.json"));
@@ -233,7 +239,7 @@ bool FlameCreationTask::updateInstance()
}
}
- setOverride(true);
+ setOverride(true, inst->id());
qDebug() << "Will override instance!";
m_instance = inst;
diff --git a/launcher/modplatform/flame/FlameInstanceCreationTask.h b/launcher/modplatform/flame/FlameInstanceCreationTask.h
index 2a513602..3a1c729f 100644
--- a/launcher/modplatform/flame/FlameInstanceCreationTask.h
+++ b/launcher/modplatform/flame/FlameInstanceCreationTask.h
@@ -51,11 +51,21 @@ class FlameCreationTask final : public InstanceCreationTask {
Q_OBJECT
public:
- FlameCreationTask(const QString& staging_path, SettingsObjectPtr global_settings, QWidget* parent, QString id, QString version_id)
- : InstanceCreationTask(), m_parent(parent), m_managed_id(std::move(id)), m_managed_version_id(std::move(version_id))
+ FlameCreationTask(const QString& staging_path,
+ SettingsObjectPtr global_settings,
+ QWidget* parent,
+ QString id,
+ QString version_id,
+ QString original_instance_id = {})
+ : InstanceCreationTask()
+ , m_parent(parent)
+ , m_managed_id(std::move(id))
+ , m_managed_version_id(std::move(version_id))
{
setStagingPath(staging_path);
setParentSettings(global_settings);
+
+ m_original_instance_id = std::move(original_instance_id);
}
bool abort() override;