1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-21 00:19:29 +02:00

allow json schema references to use relative file path

This commit is contained in:
godric3
2018-10-30 22:30:56 +01:00
parent e5397c1e23
commit 8650a8eea8
11 changed files with 37 additions and 36 deletions

View File

@ -904,7 +904,7 @@ const JsonNode & getSchemaByName(std::string name)
if (vstd::contains(loadedSchemas, name))
return loadedSchemas[name];
std::string filename = "config/schemas/" + name + ".json";
std::string filename = "config/schemas/" + name;
if (CResourceHandler::get()->existsResource(ResourceID(filename)))
{
@ -921,19 +921,20 @@ const JsonNode & JsonUtils::getSchema(std::string URI)
{
size_t posColon = URI.find(':');
size_t posHash = URI.find('#');
std::string filename;
if(posColon == std::string::npos)
{
logMod->error("Invalid schema URI:%s", URI);
return nullNode;
filename = URI.substr(0, posHash);
}
std::string protocolName = URI.substr(0, posColon);
std::string filename = URI.substr(posColon + 1, posHash - posColon - 1);
if(protocolName != "vcmi")
else
{
logMod->error("Error: unsupported URI protocol for schema: %s", URI);
return nullNode;
std::string protocolName = URI.substr(0, posColon);
filename = URI.substr(posColon + 1, posHash - posColon - 1) + ".json";
if(protocolName != "vcmi")
{
logMod->error("Error: unsupported URI protocol for schema: %s", URI);
return nullNode;
}
}
// check if json pointer if present (section after hash in string)