1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-29 23:07:48 +02:00

Trying to organize mod handler a bit better.

- vcmi will now generate checksum for base game (H3 data)
- only text files in Data in config directories affect checksum
This commit is contained in:
Ivan Savenko
2013-11-11 20:11:51 +00:00
parent 237e4272da
commit 29d655c621
4 changed files with 150 additions and 106 deletions

View File

@@ -16,6 +16,7 @@
CFilesystemList * CResourceHandler::resourceLoader = nullptr;
CFilesystemList * CResourceHandler::initialLoader = nullptr;
CFilesystemList * CResourceHandler::coreDataLoader = nullptr;
CFilesystemGenerator::CFilesystemGenerator(std::string prefix):
filesystem(new CFilesystemList()),
@@ -162,13 +163,21 @@ CFilesystemList * CResourceHandler::getInitial()
return initialLoader;
}
CFilesystemList * CResourceHandler::getCoreData()
{
assert(coreDataLoader);
return coreDataLoader;
}
void CResourceHandler::load(const std::string &fsConfigURI)
{
auto fsConfigData = initialLoader->load(ResourceID(fsConfigURI, EResType::TEXT))->readAll();
const JsonNode fsConfig((char*)fsConfigData.first.get(), fsConfigData.second);
resourceLoader = createFileSystem("", fsConfig["filesystem"]);
coreDataLoader = createFileSystem("", fsConfig["filesystem"]);
resourceLoader = new CFilesystemList();
resourceLoader->addLoader(coreDataLoader, false);
// hardcoded system-specific path, may not be inside any of data directories
resourceLoader->addLoader(new CFilesystemLoader("SAVES/", VCMIDirs::get().userSavePath()), true);