浏览代码

Compile fixes. Game doesn't even launch, however.

DjWarmonger 12 年之前
父节点
当前提交
a314a81fd5
共有 3 个文件被更改,包括 13 次插入7 次删除
  1. 1 1
      client/CVideoHandler.cpp
  2. 10 5
      lib/filesystem/AdapterLoaders.cpp
  3. 2 1
      lib/filesystem/AdapterLoaders.h

+ 1 - 1
client/CVideoHandler.cpp

@@ -412,7 +412,7 @@ bool CVideoPlayer::open(std::string name)
 		// We can handle only videos in form of single file, no archive support yet.
 		{
 			ResourceID videoID = ResourceID("VIDEO/" + name, EResType::VIDEO);
-			std::string realVideoFilename = CResourceHandler::get()->getResourceName(videoID);
+			std::string realVideoFilename = CResourceHandler::get()->getResourceName(videoID).get();
 
 			if(boost::algorithm::iends_with(realVideoFilename, ".BIK"))
 				current = &bikPlayer;

+ 10 - 5
lib/filesystem/AdapterLoaders.cpp

@@ -43,10 +43,15 @@ std::unordered_set<ResourceID> CMappedFileLoader::getFilteredFiles(std::function
 	return foundID;
 }
 
+CFilesystemList::CFilesystemList()
+{
+	loaders = new std::vector<std::unique_ptr<ISimpleResourceLoader> >;
+}
+
 std::unique_ptr<CInputStream> CFilesystemList::load(const ResourceID & resourceName) const
 {
 	// load resource from last loader that have it (last overriden version)
-	for (auto & loader : boost::adaptors::reverse(loaders))
+	for (auto & loader : boost::adaptors::reverse(*loaders))
 	{
 		if (loader->existsResource(resourceName))
 			return loader->load(resourceName);
@@ -77,7 +82,7 @@ std::unordered_set<ResourceID> CFilesystemList::getFilteredFiles(std::function<b
 {
 	std::unordered_set<ResourceID> ret;
 
-	for (auto & loader : loaders)
+	for (auto & loader : *loaders)
 		for (auto & entry : loader->getFilteredFiles(filter))
 			ret.insert(entry);
 
@@ -87,7 +92,7 @@ std::unordered_set<ResourceID> CFilesystemList::getFilteredFiles(std::function<b
 bool CFilesystemList::createResource(std::string filename, bool update)
 {
 	logGlobal->traceStream()<< "Creating " << filename;
-	for (auto & loader : boost::adaptors::reverse(loaders))
+	for (auto & loader : boost::adaptors::reverse(*loaders))
 	{
 		if (writeableLoaders.count(loader.get()) != 0                       // writeable,
 			&& loader->createResource(filename, update))          // successfully created
@@ -109,7 +114,7 @@ std::vector<const ISimpleResourceLoader *> CFilesystemList::getResourcesWithName
 {
 	std::vector<const ISimpleResourceLoader *> ret;
 
-	for (auto & loader : loaders)
+	for (auto & loader : *loaders)
 		boost::range::copy(loader->getResourcesWithName(resourceName), std::back_inserter(ret));
 
 	return ret;
@@ -117,7 +122,7 @@ std::vector<const ISimpleResourceLoader *> CFilesystemList::getResourcesWithName
 
 void CFilesystemList::addLoader(ISimpleResourceLoader * loader, bool writeable)
 {
-	loaders.push_back(std::unique_ptr<ISimpleResourceLoader>(loader));
+	loaders->push_back(std::unique_ptr<ISimpleResourceLoader>(loader));
 	if (writeable)
 		writeableLoaders.insert(loader);
 }

+ 2 - 1
lib/filesystem/AdapterLoaders.h

@@ -53,11 +53,12 @@ private:
 
 class DLL_LINKAGE CFilesystemList : public ISimpleResourceLoader
 {
-	std::vector<std::unique_ptr<ISimpleResourceLoader> > loaders;
+	std::vector<std::unique_ptr<ISimpleResourceLoader> >* loaders;
 
 	std::set<ISimpleResourceLoader *> writeableLoaders;
 
 public:
+	CFilesystemList();
 	/// Interface implementation
 	/// @see ISimpleResourceLoader
 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override;