fix: dependency level prefix is ignored
This commit is contained in:
parent
3b5857ee62
commit
9b53def82a
@ -4,12 +4,13 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "constants.hpp"
|
|
||||||
#include "coders/json.hpp"
|
#include "coders/json.hpp"
|
||||||
|
#include "constants.hpp"
|
||||||
#include "data/dv.hpp"
|
#include "data/dv.hpp"
|
||||||
#include "files/engine_paths.hpp"
|
#include "files/engine_paths.hpp"
|
||||||
#include "files/files.hpp"
|
#include "files/files.hpp"
|
||||||
|
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
ContentPack ContentPack::createCore(const EnginePaths* paths) {
|
ContentPack ContentPack::createCore(const EnginePaths* paths) {
|
||||||
@ -82,9 +83,22 @@ ContentPack ContentPack::read(const fs::path& folder) {
|
|||||||
if (auto found = root.at("dependencies")) {
|
if (auto found = root.at("dependencies")) {
|
||||||
const auto& dependencies = *found;
|
const auto& dependencies = *found;
|
||||||
for (const auto& elem : dependencies) {
|
for (const auto& elem : dependencies) {
|
||||||
pack.dependencies.push_back(
|
std::string depName = elem.asString();
|
||||||
{DependencyLevel::required, elem.asString()}
|
auto level = DependencyLevel::required;
|
||||||
);
|
switch (depName.at(0)) {
|
||||||
|
case '!':
|
||||||
|
depName = depName.substr(1);
|
||||||
|
break;
|
||||||
|
case '?':
|
||||||
|
depName = depName.substr(1);
|
||||||
|
level = DependencyLevel::optional;
|
||||||
|
break;
|
||||||
|
case '~':
|
||||||
|
depName = depName.substr(1);
|
||||||
|
level = DependencyLevel::weak;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pack.dependencies.push_back({level, depName});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user