aboutsummaryrefslogtreecommitdiff
path: root/api/logic
diff options
context:
space:
mode:
authorJamie Mansfield <jmansfield@cadixdev.org>2021-05-28 23:10:02 +0100
committerJamie Mansfield <jmansfield@cadixdev.org>2021-06-21 16:29:16 +0100
commit4ba0c9c2986d9fb133db923d2da60de9272ccc0a (patch)
treea406fe6c6578170f03c9b20720399e9a559916e0 /api/logic
parent74311a54cf2f423a160ce0999bd5ad7e5c62f243 (diff)
downloadPrismLauncher-4ba0c9c2986d9fb133db923d2da60de9272ccc0a.tar.gz
PrismLauncher-4ba0c9c2986d9fb133db923d2da60de9272ccc0a.tar.bz2
PrismLauncher-4ba0c9c2986d9fb133db923d2da60de9272ccc0a.zip
NOISSUE Support mod grouping and dependencies
Diffstat (limited to 'api/logic')
-rw-r--r--api/logic/modplatform/atlauncher/ATLPackManifest.cpp13
-rw-r--r--api/logic/modplatform/atlauncher/ATLPackManifest.h8
2 files changed, 21 insertions, 0 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp b/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
index 149cb9c1..f28fd35c 100644
--- a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
+++ b/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
@@ -147,7 +147,20 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) {
p.optional = Json::ensureBoolean(obj, QString("optional"), false);
p.recommended = Json::ensureBoolean(obj, QString("recommended"), false);
p.selected = Json::ensureBoolean(obj, QString("selected"), false);
+ p.hidden = Json::ensureBoolean(obj, QString("hidden"), false);
+ p.library = Json::ensureBoolean(obj, QString("library"), false);
+ p.group = Json::ensureString(obj, QString("group"), "");
+ if(obj.contains("depends")) {
+ auto dependsArr = Json::requireArray(obj, "depends");
+ for (const auto depends : dependsArr) {
+ p.depends.append(Json::requireString(depends));
+ }
+ }
+
p.client = Json::ensureBoolean(obj, QString("client"), false);
+
+ // computed
+ p.effectively_hidden = p.hidden || p.library;
}
void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
diff --git a/api/logic/modplatform/atlauncher/ATLPackManifest.h b/api/logic/modplatform/atlauncher/ATLPackManifest.h
index 48e1d344..376587b0 100644
--- a/api/logic/modplatform/atlauncher/ATLPackManifest.h
+++ b/api/logic/modplatform/atlauncher/ATLPackManifest.h
@@ -90,7 +90,15 @@ struct VersionMod
bool optional;
bool recommended;
bool selected;
+ bool hidden;
+ bool library;
+ QString group;
+ QVector<QString> depends;
+
bool client;
+
+ // computed
+ bool effectively_hidden;
};
struct PackVersion