diff options
author | Jamie Mansfield <jmansfield@cadixdev.org> | 2022-05-02 20:27:20 +0100 |
---|---|---|
committer | Jamie Mansfield <jmansfield@cadixdev.org> | 2022-05-21 15:18:50 +0100 |
commit | 7c251efc473ee90069d1e87a056bde64f1d6fbf7 (patch) | |
tree | d67ab67aa266e14f4eb3ff78c0b9ae3092ecb618 /launcher/modplatform/atlauncher | |
parent | f5f59203a203318371fbc5257234b8c2c5eeb300 (diff) | |
download | PrismLauncher-7c251efc473ee90069d1e87a056bde64f1d6fbf7.tar.gz PrismLauncher-7c251efc473ee90069d1e87a056bde64f1d6fbf7.tar.bz2 PrismLauncher-7c251efc473ee90069d1e87a056bde64f1d6fbf7.zip |
ATLauncher: Display mod colours in optional mod dialog
Diffstat (limited to 'launcher/modplatform/atlauncher')
4 files changed, 13 insertions, 3 deletions
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp index 4b8b8eb0..90dc1365 100644 --- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp +++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp @@ -556,7 +556,7 @@ void PackInstallTask::downloadMods() QVector<QString> selectedMods; if (!optionalMods.isEmpty()) { setStatus(tr("Selecting optional mods...")); - selectedMods = m_support->chooseOptionalMods(optionalMods); + selectedMods = m_support->chooseOptionalMods(m_version, optionalMods); } setStatus(tr("Downloading mods...")); diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.h b/launcher/modplatform/atlauncher/ATLPackInstallTask.h index 783ec19b..6bc30689 100644 --- a/launcher/modplatform/atlauncher/ATLPackInstallTask.h +++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.h @@ -37,7 +37,7 @@ public: /** * Requests a user interaction to select which optional mods should be installed. */ - virtual QVector<QString> chooseOptionalMods(QVector<ATLauncher::VersionMod> mods) = 0; + virtual QVector<QString> chooseOptionalMods(PackVersion version, QVector<ATLauncher::VersionMod> mods) = 0; /** * Requests a user interaction to select a component version from a given version list diff --git a/launcher/modplatform/atlauncher/ATLPackManifest.cpp b/launcher/modplatform/atlauncher/ATLPackManifest.cpp index 40be6d53..a8f2711b 100644 --- a/launcher/modplatform/atlauncher/ATLPackManifest.cpp +++ b/launcher/modplatform/atlauncher/ATLPackManifest.cpp @@ -178,6 +178,7 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) { p.depends.append(Json::requireString(depends)); } } + p.colour = Json::ensureString(obj, QString("colour"), ""); p.client = Json::ensureBoolean(obj, QString("client"), false); @@ -232,4 +233,9 @@ void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj) auto configsObj = Json::requireObject(obj, "configs"); loadVersionConfigs(v.configs, configsObj); } + + auto colourObj = Json::ensureObject(obj, "colours"); + for (const auto &key : colourObj.keys()) { + v.colours[key] = Json::requireString(colourObj.value(key), "colour"); + } } diff --git a/launcher/modplatform/atlauncher/ATLPackManifest.h b/launcher/modplatform/atlauncher/ATLPackManifest.h index 673f2f8b..2911107e 100644 --- a/launcher/modplatform/atlauncher/ATLPackManifest.h +++ b/launcher/modplatform/atlauncher/ATLPackManifest.h @@ -16,9 +16,10 @@ #pragma once +#include <QJsonObject> +#include <QMap> #include <QString> #include <QVector> -#include <QJsonObject> namespace ATLauncher { @@ -109,6 +110,7 @@ struct VersionMod bool library; QString group; QVector<QString> depends; + QString colour; bool client; @@ -134,6 +136,8 @@ struct PackVersion QVector<VersionLibrary> libraries; QVector<VersionMod> mods; VersionConfigs configs; + + QMap<QString, QString> colours; }; void loadVersion(PackVersion & v, QJsonObject & obj); |