NOISSUE Support mod grouping and dependencies

This commit is contained in:
Jamie Mansfield
2021-05-28 23:10:02 +01:00
parent 74311a54cf
commit 4ba0c9c298
4 changed files with 103 additions and 7 deletions

View File

@ -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)

View File

@ -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