浏览代码

basic subdirectory support

Michael 2 年之前
父节点
当前提交
a9e895c08f
共有 2 个文件被更改,包括 5 次插入1 次删除
  1. 4 0
      lib/filesystem/CFilesystemLoader.cpp
  2. 1 1
      lib/filesystem/Filesystem.cpp

+ 4 - 0
lib/filesystem/CFilesystemLoader.cpp

@@ -85,6 +85,10 @@ bool CFilesystemLoader::createResource(std::string filename, bool update)
 
 	if (!update)
 	{
+		// create folders if not exists
+		boost::filesystem::path p((baseDirectory / filename).c_str());
+		boost::filesystem::create_directories(p.parent_path());
+
 		// create file, if not exists
 		std::ofstream file((baseDirectory / filename).c_str(), std::ofstream::binary);
 

+ 1 - 1
lib/filesystem/Filesystem.cpp

@@ -147,7 +147,7 @@ ISimpleResourceLoader * CResourceHandler::createInitial()
 	for (auto & path : VCMIDirs::get().dataPaths())
 	{
 		if (boost::filesystem::is_directory(path)) // some of system-provided paths may not exist
-			initialLoader->addLoader(new CFilesystemLoader("", path, 0, true), false);
+			initialLoader->addLoader(new CFilesystemLoader("", path, 1, true), false);
 	}
 	initialLoader->addLoader(new CFilesystemLoader("", VCMIDirs::get().userDataPath(), 0, true), false);