fix: dependency level prefix is ignored

This commit is contained in:
MihailRis 2024-10-23 13:14:18 +03:00
parent 3b5857ee62
commit 9b53def82a

View File

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